diff --git a/.eslintrc b/.eslintrc deleted file mode 100644 index 06c418a5..00000000 --- a/.eslintrc +++ /dev/null @@ -1,168 +0,0 @@ -{ - "extends": [ - "airbnb", - "plugin:react/recommended", - "plugin:jsx-a11y/strict", - "plugin:prettier/recommended", - "prettier/react" - ], - "parser": "babel-eslint", - "settings": { - "import/resolver": { - "node": { - "extensions": [ - ".js", - ".jsx", - ".ts", - ".tsx" - ] - } - } - }, - "parserOptions": { - "ecmaVersion": 2018, - // Can I remove these now? - "ecmaFeatures": { - "impliedStrict": true, - "classes": true - } - }, - "env": { - "browser": true, - "node": true, - "jquery": true, - "jest": true - }, - "rules": { - "no-debugger": 0, - "no-alert": 0, - "no-await-in-loop": 0, - "no-return-assign": [ - "error", - "except-parens" - ], - "no-restricted-syntax": [ - 2, - "ForInStatement", - "LabeledStatement", - "WithStatement" - ], - "no-unused-vars": [ - 1, - { - "vars": "all", - "ignoreRestSiblings": true, - "args": "all" - } - ], - "prefer-const": [ - "error", - { - "destructuring": "all" - } - ], - "arrow-body-style": [ - 2, - "as-needed" - ], - "no-unused-expressions": [ - 2, - { - "allowTaggedTemplates": true - } - ], - "no-param-reassign": [ - 2, - { - "props": false - } - ], - "no-console": 0, - "import/prefer-default-export": 0, - "import": 0, - "func-names": 0, - "space-before-function-paren": 0, - "comma-dangle": 0, - "max-len": 0, - "import/extensions": 0, - "no-underscore-dangle": 0, - "consistent-return": 0, - "react/display-name": 1, - "react/no-array-index-key": 0, - "react/react-in-jsx-scope": 0, - "react/prefer-stateless-function": 0, - "react/forbid-prop-types": 0, - "react/no-unescaped-entities": 0, - "jsx-a11y/accessible-emoji": 0, - "react/require-default-props": 0, - "react/jsx-filename-extension": [ - 1, - { - "extensions": [ - ".js", - ".jsx", - ".ts", - ".tsx" - ] - } - ], - "radix": 0, - "no-shadow": [ - 2, - { - "hoist": "all", - "allow": [ - "resolve", - "reject", - "done", - "next", - "err", - "error" - ] - } - ], - "quotes": [ - 2, - "double", - { - "avoidEscape": true, - "allowTemplateLiterals": true - } - ], - "prettier/prettier": [ - "error", - { - "trailingComma": "es5", - "singleQuote": false - } - ], - "jsx-a11y/href-no-hash": "off", - "jsx-a11y/anchor-is-valid": [ - "warn", - { - "aspects": [ - "invalidHref" - ] - } - ], - "react-hooks/rules-of-hooks": "error", - "react-hooks/exhaustive-deps": "warn", - "react/jsx-props-no-spreading": [ - "error", - { - "html": "enforce", - "custom": "enforce", - "exceptions": [ - "Container" - ], - } - ], - "react/jsx-no-bind": 0 - }, - "plugins": [ - "html", - "prettier", - "react-hooks", - "@typescript-eslint" - ] -} \ No newline at end of file diff --git a/package.json b/package.json index be610f15..b36070a8 100644 --- a/package.json +++ b/package.json @@ -4,64 +4,56 @@ "private": true, "license": "MIT", "dependencies": { - "@apollo/client": "^3.2.5", + "@apollo/client": "^3.7.1", "@davatar/react": "^1.8.1", "@ethersproject/abi": "5.0.0", - "@portis/web3": "^2.0.0-beta.59", "@react-hook/media-query": "^1.1.1", "@testing-library/jest-dom": "^5.11.4", "@testing-library/react": "^11.1.0", "@testing-library/user-event": "^12.1.10", + "@typeform/embed-react": "^2.1.0", "@types/jest": "^26.0.15", - "@types/node": "^14.14.2", - "@types/react": "^16.9.53", - "@types/react-dom": "^16.9.8", - "@walletconnect/web3-provider": "^1.3.6", - "authereum": "^0.1.0", + "@types/react": "^18.0.24", + "@types/react-dom": "^18.0.8", + "@web3modal/ethers5": "4.1.0", "bootstrap": "^4.5.3", - "ethers": "^5.5.2", + "compressorjs": "1.1.1", + "ethers": "5.7.2", "ethers-multicall": "^0.2.1", - "fortmatic": "^2.2.1", "graphql": "^15.4.0", - "node-sass": "^4.14.1", - "react": "^17.0.1", - "react-bootstrap": "^1.4.0", - "react-dom": "^17.0.1", + "i18next": "^21.6.6", + "i18next-browser-languagedetector": "^6.1.3", + "i18next-http-backend": "^1.3.1", + "keccak256": "^1.0.6", + "merkletreejs": "^0.2.32", + "qs": "^6.11.0", + "react": "^18.0.0", + "react-bootstrap": "^2.5.0", + "react-dom": "^18.0.0", + "react-i18next": "^11.15.3", "react-icons": "^4.3.1", "react-number-format": "^4.4.1", + "react-responsive": "^9.0.2", "react-router-dom": "^5.2.0", - "react-scripts": "4.0.0", + "react-scripts": "5.0.1", "react-swipeable": "^6.1.0", - "react-toastify": "^6.1.0", + "react-toastify": "^10.0.5", "resolve-url-loader": "^3.1.2", - "sass": "^1.27.0", - "sass-loader": "^10.0.4", + "sass": "^1.58.3", + "sass-loader": "^13.2.0", "sourcemap-codec": "^1.4.8", - "typescript": "4.0.5", "walletlink": "^2.4.2", - "web-vitals": "^0.2.4", - "web3modal": "^1.9.5" + "web-vitals": "^2.1.0" }, "devDependencies": { "@babel/core": "7.12.3", "@babel/preset-env": "7.12.1", "@types/react-router-dom": "^5.1.6", - "@typescript-eslint/parser": "^4.5.0", - "babel-eslint": "^10.1.0", "dotenv": "8.2.0", - "eslint": "7.12.0", - "eslint-config-airbnb": "^18.2.0", - "eslint-config-prettier": "^6.14.0", - "eslint-plugin-flowtype": "5.2.0", - "eslint-plugin-html": "^6.1.0", - "eslint-plugin-import": "^2.22.1", - "eslint-plugin-jsx-a11y": "^6.3.1", - "eslint-plugin-prettier": "^3.1.4", - "eslint-plugin-react": "^7.21.5", - "eslint-plugin-react-hooks": "4.2.0", + "postcss-normalize": "^10.0.1", "prettier": "^2.1.2", "pretty-quick": "3.1.0", - "ts-node": "9.0.0" + "typescript": "^5.2.2" }, "scripts": { "start": "react-scripts start", diff --git a/public/images/jpegz-green.png b/public/images/jpegz-green.png new file mode 100644 index 00000000..c4a1a089 Binary files /dev/null and b/public/images/jpegz-green.png differ diff --git a/public/images/noontide.png b/public/images/noontide.png new file mode 100644 index 00000000..63465778 Binary files /dev/null and b/public/images/noontide.png differ diff --git a/public/index.html b/public/index.html index aa79a4fc..fba173ce 100644 --- a/public/index.html +++ b/public/index.html @@ -1,102 +1,90 @@ - - - - - - - - - - - + + + + + + + - - - - - + + + + + - - - - - - - + + + - - - + + gtag("config", "G-8DS149FB10"); + + TCAP - By Cryptex Finance + - TCAP - By Cryptex Finance - - - -
- - - - - - + + + + + + \ No newline at end of file diff --git a/public/locales/de/keepers.json b/public/locales/de/keepers.json new file mode 100644 index 00000000..ac50236e --- /dev/null +++ b/public/locales/de/keepers.json @@ -0,0 +1,50 @@ +{ + "brajon.eth": { + "expertise": ["Development"], + "why": "I’ve been a Cryptex supporter since Nov 2020 and see the vision Joe and the team are trying to accomplish. My goal is to help this project reach its potential of creating institutional grade investment products that allow anyone to get exposure to currently nontradeable markets." + }, + "David R Jennings": { + "expertise": ["Investor"], + "why": "Here to invest with ctx long term" + }, + "DesertDwelr": { + "expertise": ["Development", "Operations"], + "why": "Like many of you in this community, my CTX/TCAP holdings are modest but my enthusiasm is not. I'd be honored to be the voice of other modest holders and help guide the future of this exciting organization. My approach will be to learn and listen.Learn about each proposal and be able to share the considerations of each option.Listen to your input and vote accordingly, even if that means going against the majority vote.\n\nA brief bio: I'm a software solution manager at a Fortune 50 company, leading my team throughout all stages of the product lifecycle. I'm a father of 3 boys, which is even more humbling.I am fascinated by crypto and the power of decentralization.I try to learn more every day.\n\nThanks for considering me! Regardless of who you select as your delegate, congratulations on staking and being part of this great community!" + }, + "dnkta.eth": { + "expertise": ["Operations"], + "why": "Take decisions in best faith for the protocol." + }, + "Huntsman": { + "expertise": ["Economics/Retail Investing"], + "why": "Huntsman is a relative newcomer to cryptocurrency investing, and while he only discovered Cryptex when it was listed on Gemini, his Cryptex journey has seen him allocate over 10% of his investment portfolio into collateralizing vaults, minting TCAP, and providing liquidity on Sushiswap. He is very excited about the potential of this DAO and its community, as well as its flagship TCAP. He is humbly asking for your delegation for those who want to place their stake with a retail everyman who can't wait for the Moon but wants to invest decades into this project to see it to its maximum potential." + }, + "indigo.eth": { + "expertise": ["Development", "Operations"], + "why": "I'm a security expert who specializes in smart contract and operational security auditing.\n\nI will vote for incentivized liquidity and staking, expansion to new projects/networks, and supporting operations that will drive adoption of TCAP." + }, + "Joshua Britt": { + "expertise": ["Development", "Operations"], + "why": "Here to make Ctx better for the future" + }, + "Leo": { + "expertise": ["Operations"], + "why": "I am a long-term crypto investor and builder. I am a big supporter of the cryptex project from the very beginning. I have promoted the project to a large Chinese crypto community with a few thousand people. I have initiated the debank.com integration and get it supported recently.\n\nI would like to represent the Chinese crypto investors in the project and continue supporting and promoting the cryptex project." + }, + "MediumArchibald": { + "expertise": ["Investigative journalist", "Freelance political/legal researcher"], + "why": "My profession is trust- and referral-based. I either present verifiable information, or I don’t get future clients." + }, + "Mr. Brightside": { + "expertise": ["Operations"], + "why": "Passionate about project, mission and vision. Multi-disciplinary background leading my own project and developments including a separate ERC-20 token." + }, + "scottie33": { + "expertise": ["Operations"], + "why": "I am super responsive, trustworthy, and support Cryptex 100%." + }, + "TheyCallMeJim": { + "expertise": ["Development", "Operations"], + "why": "Experienced crypto trader and audit analysis" + } +} \ No newline at end of file diff --git a/public/locales/de/translation.json b/public/locales/de/translation.json new file mode 100644 index 00000000..b63aac50 --- /dev/null +++ b/public/locales/de/translation.json @@ -0,0 +1,230 @@ +{ + "add": "Add", + "all-vaults": "All Vaults", + "amount-tcap": "Amount of TCAP", + "approve": "Approve", + "balance": "Balance", + "balance2": "Current Balance", + "burn": "Burn", + "choose-network": "Choose Network", + "claim": "Claim", + "claiming": "Claimin", + "claim-vest":"Claim Vest", + "click-copy": "Click to Copy", + "collateral": "Collateral", + "connect": "Connect Wallet", + "contract": "Contract", + "create": "Create", + "debt": "Debt", + "deposit": "Deposit", + "deposited": "Deposited", + "description": "Description", + "exit": "Exit", + "farm": "Farm", + "history": "History", + "inactive": "Inative", + "infinite-approve": "Infinite Approve", + "max": "MAX", + "max-safe": "MAX SAFE", + "mint": "Mint", + "my-vaults": "My Vaults", + "mode": "Mode", + "last": "Last", + "loading": "Loading", + "out-of-range": "Out of range", + "pending": "Pending", + "pool": "Pool", + "stake": "Stake", + "stake2": "Amount to Stake", + "staked": "Staked", + "status": "Status", + "ready": "Ready", + "remove": "Remove", + "required-tcap": "Required TCAP", + "token": "Token", + "tokens": "Tokens", + "totals": "Totals", + "trade": "Trade", + "tran-sent": "⏰ Transaction Sent!", + "tran-confirmed": "✔️ Transaction Confirmed!", + "tran-wait": "Plz wait for the transaction confirmation.", + "tran-wait2": "All set, please wait for another confirmation", + "unstake": "Unstake", + "unstaked": "Unstaked", + "update": "Update", + "vault-warning": "⚠️ Make sure to always have a ratio above the minimum ratio to avoid getting liquidated.", + "vaults": "Vauts", + "view": "View", + "votes": "Votes", + "wait": "Please wait", + "warning": "This project is in beta. Use at your own risk.", + "welcome": { + "tcap": "Total Cryptocurrency Market Capitalization", + "tcap-token": "Total Cryptocurrency Market Capitalization Token", + "tcap-info": "Total Crypto Market Capitalization is updated on-chain on every 1% movement", + "title1": "My Total Balance", + "subtitle1": "Connected Account", + "title2": "Use TCAP", + "subtitle2": "Trade TCAP using Uniswap or create new supply using a vault", + "title3": "Connect Your Account", + "subtitle3": "Mint TCAP, or check your balance connecting your account", + "tcap-balance": "TCAP Balance", + "ctx-balance": "CTX Balance", + "tcap-price": "TCAP Price", + "ctx-price": "CTX Price", + "summary": { + "title": "Protocol Summary", + "staked-usd": "Total Staked USD", + "staked-eth": "Staked in ETH", + "staked-dai": "Staked in DAI", + "staked-aave": "Staked in AAVE", + "staked-link": "Staked in LINK", + "staked-matic": "Staked in MATIC", + "staked-wbtc": "Staked in WBTC", + "staked-usdc": "Staked in USDC", + "staked-uni": "Staked in UNI", + "staked-snx": "Staked in SNX", + "total-supply": "TCAP Supply" + } + }, + "vault": { + "warning": "", + "loading": "Loading Vault", + "title1": "Vaults", + "subtitle1": "Select your Collateral", + "no-connected": "No wallet connected. Please Connect your wallet to Create a Vault and approve your collateral to start minting TCAP tokens.", + "approve": "Approve Vault", + "approve-text": "Vault not approved. Please approve your collateral to start minting TCAP tokens.", + "create": "Create Vault", + "create-text": "No vault Created. Please Create a Vault and approve your collateral to start minting TCAP tokens.", + "balance-title": "{{vault}} Balance", + "ratio-title": "Vault Ratio", + "ratio-warning": "Ratio must be > {{minRatio}}% or you will be liquidated.", + "hard-mode-info": "Hard mode vaults have a minimum required ratio of 110%.", + "hard-mode-info2": "You're required to mint a minimum of 20 TCAP on hard mode.", + "collateral": { + "title": "Staked Collateral", + "add": "Add {{collateral}}", + "remove": "Remove {{collateral}}" + }, + "debt": { + "title": "Vault Debt", + "mint": "Mint TCAP", + "burn": "Burn TCAP", + "fee": "Burn Fee" + }, + "status": { + "na": "N/A", + "safe": "safe", + "warning": "warning", + "danger": "danger", + "error": "error" + }, + "errors": { + "no-collateral": "Not enough collateral on vault", + "burn-too-high": "Burn value too high", + "burn-balance-low": "Burn value is greater than your balance.", + "min-tcap": "You need to mint a minimum of 20 TCAP on hard mode.", + "min-tcap2": "Afte burning the minimum amount of debt should be 20 TCAP." + } + }, + "farming": { + "current-info": "Early adopters rewards are issued over 14 days for a total of 500,000 CTX. Assuming approximately 6500 Ethereum blocks per day over 14 days (91,000 Ethereum blocks), the per block reward would be 5.4945 CTX split across the debtors at that point in time. 100% of the reward is immediately available.", + "current-mint": "Current mint", + "current-reward": "Current Reward", + "eth-tcap-pool": "ETH/TCAP Pool", + "eth-ctx-pool": "ETH/CTX Pool", + "farming": "Farming", + "liquidity": "Liquidity Rewards", + "locked": "Locked Reward", + "locked-info": "Available to claim immediately.", + "minting": "Minting Rewards", + "token-vault": "{{token}} Vault", + "unlocked": "Unlocked Reward", + "unlocked-info": "Available to claim immediately.", + "univ3": { + "amount-claim": "Amount to claim", + "available-claim": "Available to claim", + "claim-info": "In order to claim rewards, you need to unstake your token.", + "claim-reward": "Claim Reward", + "current-reward": "Current Reward", + "current-reward-info": "Amount of CTX that it's been earn while the LP token is staked. You must unstake the LP token in order to claim the reward.", + "deposited-info": "LP token needs to be stake to earn rewards. ", + "pending-info": "LP token needs to be approved in order to be staked.", + "position": "Position", + "position-info1": "Position Min and Max price represents TCAP per WETH.", + "position-info2": "Current price is", + "staked-info": "LP token is staked and earning rewards.", + "unstaked-info": "LP token hasn't been staked or deposited.", + "out-of-range-info": "You aren't earning rewards because the price is out of your position range." + } + }, + "monitoring": { + "active-info": "Vault is minting TCAP.", + "empty-info": "There is not collateral on the vault.", + "liquidation-info": "Ratio is less than min required.", + "liquidate-vault": "Liquidate Vault", + "liquidating": "Liquidating", + "ratio": "Ratio", + "ready-info": "Vault has collateral and it is ready to mint TCAP.", + "reward": "Reward", + "reward-info": "Collateral amount in USD you are getting for liquidating the vault.", + "tcap-amount-info": "Amount of TCAP in USD you need to provide to liquidate vault.", + "net-reward": "Net Reward", + "net-reward-info1": "Actual profit in USD you earn after liquidation", + "net-reward-info2": "Net Reward = Reward - TCAP Amount - Burn Fee." + }, + "governance": { + "amount-stake": "Amount to Stake", + "amount-remove": "Amount to Remove", + "new": "New Crypt Keeper", + "respresented": "Represented", + "stake-reward": "Stake Reward", + "staked-reward": "Staked Reward", + "why-me": "Why me?", + "expertise": "Expertise", + "delegate-to": "Delegate to Keeper", + "delegating": "Delegating", + "stake-delegate": "Stake & Delegate", + "stake-info": "Stake and Delegate CTX to this Crypt Keeper. Each time you Stake and Delegate, you must wait a minimum of 7 days before you can withdraw.", + "stake-info2": "Approve delegating CTX tokens. You only have to do this once.", + "withdraw": "Withdraw", + "withdrawing": "Withdrawing", + "withdraw-info": "Remove delegated votes from this Crypt Keeper. CTX must be staked and delegated for a minimum of 7 days before you are eligible to withdraw.", + "withdraw-info2": "* Eligible to withdraw on {{date}}", + "form": { + "create": "Create Crypt Keeper", + "keeper": "Keeper eth name or address", + "name": "Name", + "why": "Why should users delegate to you?" + }, + "success": { + "title": "Crypt. Keepers", + "message": "Crypt Keeper updated" + }, + "errors": { + "creating-keeper": "Error creating keeper.", + "exists": "Crypt Keeper for this address already exists.", + "invalid-amount": "Invalid amount to withdraw", + "invalid-ens-address": "Please enter a valid eth name or address", + "invalid-twitter": "It is not a valid twitter username", + "invalid-discord": "It is not a valid discord id", + "need-to-wait": "Need to wait the minimum staking period", + "too-long": "Field is too long ({{max}} characters max)" + } + }, + "errors": { + "empty": "Field can't be empty", + "invalid-address": "Please enter a valid address", + "invalid-ens": "Please enter a valid ENS name", + "invalid-file-type": "Invalid file type.", + "invalid-image-size": "Image max size is {{size}} KB", + "less-tcap": "Tcap amount is less than required.", + "no-ctx": "Not enough CTX balance.", + "no-tcap": "Not enough TCAP balance.", + "no-funds": "Insufficient funds to stake", + "not-approve": "Token not Approved", + "tran-rejected": "Transaction rejected", + "unexpected": "Unexpected error" + } +} \ No newline at end of file diff --git a/public/locales/en/keepers.json b/public/locales/en/keepers.json new file mode 100644 index 00000000..ac50236e --- /dev/null +++ b/public/locales/en/keepers.json @@ -0,0 +1,50 @@ +{ + "brajon.eth": { + "expertise": ["Development"], + "why": "I’ve been a Cryptex supporter since Nov 2020 and see the vision Joe and the team are trying to accomplish. My goal is to help this project reach its potential of creating institutional grade investment products that allow anyone to get exposure to currently nontradeable markets." + }, + "David R Jennings": { + "expertise": ["Investor"], + "why": "Here to invest with ctx long term" + }, + "DesertDwelr": { + "expertise": ["Development", "Operations"], + "why": "Like many of you in this community, my CTX/TCAP holdings are modest but my enthusiasm is not. I'd be honored to be the voice of other modest holders and help guide the future of this exciting organization. My approach will be to learn and listen.Learn about each proposal and be able to share the considerations of each option.Listen to your input and vote accordingly, even if that means going against the majority vote.\n\nA brief bio: I'm a software solution manager at a Fortune 50 company, leading my team throughout all stages of the product lifecycle. I'm a father of 3 boys, which is even more humbling.I am fascinated by crypto and the power of decentralization.I try to learn more every day.\n\nThanks for considering me! Regardless of who you select as your delegate, congratulations on staking and being part of this great community!" + }, + "dnkta.eth": { + "expertise": ["Operations"], + "why": "Take decisions in best faith for the protocol." + }, + "Huntsman": { + "expertise": ["Economics/Retail Investing"], + "why": "Huntsman is a relative newcomer to cryptocurrency investing, and while he only discovered Cryptex when it was listed on Gemini, his Cryptex journey has seen him allocate over 10% of his investment portfolio into collateralizing vaults, minting TCAP, and providing liquidity on Sushiswap. He is very excited about the potential of this DAO and its community, as well as its flagship TCAP. He is humbly asking for your delegation for those who want to place their stake with a retail everyman who can't wait for the Moon but wants to invest decades into this project to see it to its maximum potential." + }, + "indigo.eth": { + "expertise": ["Development", "Operations"], + "why": "I'm a security expert who specializes in smart contract and operational security auditing.\n\nI will vote for incentivized liquidity and staking, expansion to new projects/networks, and supporting operations that will drive adoption of TCAP." + }, + "Joshua Britt": { + "expertise": ["Development", "Operations"], + "why": "Here to make Ctx better for the future" + }, + "Leo": { + "expertise": ["Operations"], + "why": "I am a long-term crypto investor and builder. I am a big supporter of the cryptex project from the very beginning. I have promoted the project to a large Chinese crypto community with a few thousand people. I have initiated the debank.com integration and get it supported recently.\n\nI would like to represent the Chinese crypto investors in the project and continue supporting and promoting the cryptex project." + }, + "MediumArchibald": { + "expertise": ["Investigative journalist", "Freelance political/legal researcher"], + "why": "My profession is trust- and referral-based. I either present verifiable information, or I don’t get future clients." + }, + "Mr. Brightside": { + "expertise": ["Operations"], + "why": "Passionate about project, mission and vision. Multi-disciplinary background leading my own project and developments including a separate ERC-20 token." + }, + "scottie33": { + "expertise": ["Operations"], + "why": "I am super responsive, trustworthy, and support Cryptex 100%." + }, + "TheyCallMeJim": { + "expertise": ["Development", "Operations"], + "why": "Experienced crypto trader and audit analysis" + } +} \ No newline at end of file diff --git a/public/locales/en/translation.json b/public/locales/en/translation.json new file mode 100644 index 00000000..27869697 --- /dev/null +++ b/public/locales/en/translation.json @@ -0,0 +1,231 @@ +{ + "add": "Add", + "all-vaults": "All Vaults", + "amount-tcap": "Amount of TCAP", + "approve": "Approve", + "balance": "Balance", + "balance2": "Current Balance", + "burn": "Burn", + "choose-network": "Choose Network", + "claim": "Claim", + "claiming": "Claiming", + "claim-vest":"Claim Vest", + "click-copy": "Click to Copy", + "collateral": "Collateral", + "connect": "Connect Wallet", + "contract": "Contract", + "create": "Create", + "debt": "Debt", + "deposit": "Deposit", + "deposited": "Deposited", + "description": "Description", + "exit": "Exit", + "farm": "Farm", + "history": "History", + "inactive": "Inative", + "infinite-approve": "Infinite Approve", + "max": "MAX", + "max-safe": "MAX SAFE", + "mint": "Mint", + "my-vaults": "My Vaults", + "mode": "Mode", + "last": "Last", + "loading": "Loading", + "out-of-range": "Out of range", + "pending": "Pending", + "pool": "Pool", + "stake": "Stake", + "stake2": "Amount to Stake", + "staked": "Staked", + "status": "Status", + "ready": "Ready", + "remove": "Remove", + "required-tcap": "Required {{indexName}} ", + "token": "Token", + "tokens": "Tokens", + "totals": "Totals", + "trade": "Trade", + "tran-sent": "⏰ Transaction Sent!", + "tran-confirmed": "✔️ Transaction Confirmed!", + "tran-wait": "Plz wait for the transaction confirmation.", + "tran-wait2": "All set, please wait for another confirmation", + "unstake": "Unstake", + "unstaked": "Unstaked", + "update": "Update", + "vault-warning": "⚠️ Make sure to always have a ratio above the minimum ratio to avoid getting liquidated.", + "vaults": "Vaults", + "view": "View", + "votes": "Votes", + "wait": "Please wait", + "warning": "This project is in beta. Use at your own risk.", + "welcome": { + "tcap": "Total Cryptocurrency Market Capitalization", + "jpegz": "Total NFT Market Cap.", + "tcap-token": "Total Cryptocurrency Market Capitalization Token", + "tcap-info": "Total Crypto Market Capitalization is updated on-chain on every 1% movement", + "title1": "My Total Balance", + "subtitle1": "Connected Account", + "title2": "Use TCAP", + "subtitle2": "Trade TCAP using Uniswap or create new supply using a vault", + "title3": "Connect Your Account", + "subtitle3": "Mint TCAP, or check your balance connecting your account", + "tcap-balance": "TCAP Balance", + "ctx-balance": "CTX Balance", + "tcap-price": "TCAP Price", + "ctx-price": "CTX Price", + "summary": { + "title": "Protocol Summary", + "staked-usd": "Total Staked USD", + "staked-eth": "Staked in ETH", + "staked-dai": "Staked in DAI", + "staked-aave": "Staked in AAVE", + "staked-link": "Staked in LINK", + "staked-matic": "Staked in MATIC", + "staked-wbtc": "Staked in WBTC", + "staked-usdc": "Staked in USDC", + "staked-uni": "Staked in UNI", + "staked-snx": "Staked in SNX", + "total-supply": "TCAP Supply" + } + }, + "vault": { + "warning": "Warning", + "loading": "Loading Vault", + "title1": "Vaults", + "subtitle1": "Select your Collateral", + "no-connected": "No wallet connected. Please Connect your wallet to Create a Vault and approve your collateral to start minting TCAP tokens.", + "approve": "Approve Vault", + "approve-text": "Vault not approved. Please approve your collateral to start minting {{asset}} tokens.", + "create": "Create Vault", + "create-text": "No vault Created. Please Create a Vault and approve your collateral to start minting {{asset}} tokens.", + "balance-title": "{{vault}} Balance", + "ratio-title": "Vault Ratio", + "ratio-warning": "Ratio must be > {{minRatio}}% or you will be liquidated.", + "hard-mode-info": "Hard mode vaults have a minimum required ratio of 125%.", + "hard-mode-info2": "You're required to mint a minimum of 20 TCAP on hard mode.", + "collateral": { + "title": "Staked Collateral", + "add": "Add {{collateral}}", + "remove": "Remove {{collateral}}" + }, + "debt": { + "title": "Vault Debt", + "mint": "Mint TCAP", + "burn": "Burn TCAP", + "fee": "Burn Fee" + }, + "status": { + "na": "N/A", + "safe": "safe", + "warning": "warning", + "danger": "danger", + "error": "error" + }, + "errors": { + "no-collateral": "Not enough collateral on vault", + "burn-too-high": "Burn value too high", + "burn-balance-low": "Burn value is greater than your balance.", + "min-tcap": "You need to mint a minimum of 20 TCAP on hard mode.", + "min-tcap2": "Afte burning the minimum amount of debt should be 20 TCAP." + } + }, + "farming": { + "current-info": "Early adopters rewards are issued over 14 days for a total of 500,000 CTX. Assuming approximately 6500 Ethereum blocks per day over 14 days (91,000 Ethereum blocks), the per block reward would be 5.4945 CTX split across the debtors at that point in time. 100% of the reward is immediately available.", + "current-mint": "Current mint", + "current-reward": "Current Reward", + "eth-tcap-pool": "ETH/TCAP Pool", + "eth-ctx-pool": "ETH/CTX Pool", + "farming": "Farming", + "liquidity": "Liquidity Rewards", + "locked": "Locked Reward", + "locked-info": "Available to claim immediately.", + "minting": "Minting Rewards", + "token-vault": "{{token}} Vault", + "unlocked": "Unlocked Reward", + "unlocked-info": "Available to claim immediately.", + "univ3": { + "amount-claim": "Amount to claim", + "available-claim": "Available to claim", + "claim-info": "In order to claim rewards, you need to unstake your token.", + "claim-reward": "Claim Reward", + "current-reward": "Current Reward", + "current-reward-info": "Amount of CTX that it's been earn while the LP token is staked. You must unstake the LP token in order to claim the reward.", + "deposited-info": "LP token needs to be stake to earn rewards. ", + "pending-info": "LP token needs to be approved in order to be staked.", + "position": "Position", + "position-info1": "Position Min and Max price represents TCAP per WETH.", + "position-info2": "Current price is", + "staked-info": "LP token is staked and earning rewards.", + "unstaked-info": "LP token hasn't been staked or deposited.", + "out-of-range-info": "You aren't earning rewards because the price is out of your position range." + } + }, + "monitoring": { + "active-info": "Vault is minting {{indexName}}.", + "empty-info": "There is not collateral on the vault.", + "liquidation-info": "Ratio is less than min required.", + "liquidate-vault": "Liquidate Vault", + "liquidating": "Liquidating", + "ratio": "Ratio", + "ready-info": "Vault has collateral and it is ready to mint {{indexName}}.", + "reward": "Reward", + "reward-info": "Collateral amount in USD you are getting for liquidating the vault.", + "tcap-amount-info": "Amount of {{indexName}} in USD you need to provide to liquidate vault.", + "net-reward": "Net Reward", + "net-reward-info1": "Actual profit in USD you earn after liquidation", + "net-reward-info2": "Net Reward = Reward - {{indexName}} Amount - Burn Fee." + }, + "governance": { + "amount-stake": "Amount to Stake", + "amount-remove": "Amount to Remove", + "new": "New Crypt Keeper", + "respresented": "Represented", + "stake-reward": "Stake Reward", + "staked-reward": "Staked Reward", + "why-me": "Why me?", + "expertise": "Expertise", + "delegate-to": "Delegate to Keeper", + "delegating": "Delegating", + "stake-delegate": "Stake & Delegate", + "stake-info": "Stake and Delegate CTX to this Crypt Keeper. Each time you Stake and Delegate, you must wait a minimum of 7 days before you can withdraw.", + "stake-info2": "Approve delegating CTX tokens. You only have to do this once.", + "withdraw": "Withdraw", + "withdrawing": "Withdrawing", + "withdraw-info": "Remove delegated votes from this Crypt Keeper. CTX must be staked and delegated for a minimum of 7 days before you are eligible to withdraw.", + "withdraw-info2": "* Eligible to withdraw on {{date}}", + "form": { + "create": "Create Crypt Keeper", + "keeper": "Keeper eth name or address", + "name": "Name", + "why": "Why should users delegate to you?" + }, + "success": { + "title": "Crypt. Keepers", + "message": "Crypt Keeper updated" + }, + "errors": { + "creating-keeper": "Error creating keeper.", + "exists": "Crypt Keeper for this address already exists.", + "invalid-amount": "Invalid amount to withdraw", + "invalid-ens-address": "Please enter a valid eth name or address", + "invalid-twitter": "It is not a valid twitter username", + "invalid-discord": "It is not a valid discord id", + "need-to-wait": "Need to wait the minimum staking period", + "too-long": "Field is too long ({{max}} characters max)" + } + }, + "errors": { + "empty": "Field can't be empty", + "invalid-address": "Please enter a valid address", + "invalid-ens": "Please enter a valid ENS name", + "invalid-file-type": "Invalid file type.", + "invalid-image-size": "Image max size is {{size}} KB", + "less-tcap": "Tcap amount is less than required.", + "not-approve": "Token not Approved", + "no-ctx": "Not enough CTX balance.", + "no-funds": "Insufficient funds to stake", + "no-tcap": "Not enough TCAP balance.", + "tran-rejected": "Transaction rejected", + "unexpected": "Unexpected error" + } +} diff --git a/public/locales/es/keepers.json b/public/locales/es/keepers.json new file mode 100644 index 00000000..ac50236e --- /dev/null +++ b/public/locales/es/keepers.json @@ -0,0 +1,50 @@ +{ + "brajon.eth": { + "expertise": ["Development"], + "why": "I’ve been a Cryptex supporter since Nov 2020 and see the vision Joe and the team are trying to accomplish. My goal is to help this project reach its potential of creating institutional grade investment products that allow anyone to get exposure to currently nontradeable markets." + }, + "David R Jennings": { + "expertise": ["Investor"], + "why": "Here to invest with ctx long term" + }, + "DesertDwelr": { + "expertise": ["Development", "Operations"], + "why": "Like many of you in this community, my CTX/TCAP holdings are modest but my enthusiasm is not. I'd be honored to be the voice of other modest holders and help guide the future of this exciting organization. My approach will be to learn and listen.Learn about each proposal and be able to share the considerations of each option.Listen to your input and vote accordingly, even if that means going against the majority vote.\n\nA brief bio: I'm a software solution manager at a Fortune 50 company, leading my team throughout all stages of the product lifecycle. I'm a father of 3 boys, which is even more humbling.I am fascinated by crypto and the power of decentralization.I try to learn more every day.\n\nThanks for considering me! Regardless of who you select as your delegate, congratulations on staking and being part of this great community!" + }, + "dnkta.eth": { + "expertise": ["Operations"], + "why": "Take decisions in best faith for the protocol." + }, + "Huntsman": { + "expertise": ["Economics/Retail Investing"], + "why": "Huntsman is a relative newcomer to cryptocurrency investing, and while he only discovered Cryptex when it was listed on Gemini, his Cryptex journey has seen him allocate over 10% of his investment portfolio into collateralizing vaults, minting TCAP, and providing liquidity on Sushiswap. He is very excited about the potential of this DAO and its community, as well as its flagship TCAP. He is humbly asking for your delegation for those who want to place their stake with a retail everyman who can't wait for the Moon but wants to invest decades into this project to see it to its maximum potential." + }, + "indigo.eth": { + "expertise": ["Development", "Operations"], + "why": "I'm a security expert who specializes in smart contract and operational security auditing.\n\nI will vote for incentivized liquidity and staking, expansion to new projects/networks, and supporting operations that will drive adoption of TCAP." + }, + "Joshua Britt": { + "expertise": ["Development", "Operations"], + "why": "Here to make Ctx better for the future" + }, + "Leo": { + "expertise": ["Operations"], + "why": "I am a long-term crypto investor and builder. I am a big supporter of the cryptex project from the very beginning. I have promoted the project to a large Chinese crypto community with a few thousand people. I have initiated the debank.com integration and get it supported recently.\n\nI would like to represent the Chinese crypto investors in the project and continue supporting and promoting the cryptex project." + }, + "MediumArchibald": { + "expertise": ["Investigative journalist", "Freelance political/legal researcher"], + "why": "My profession is trust- and referral-based. I either present verifiable information, or I don’t get future clients." + }, + "Mr. Brightside": { + "expertise": ["Operations"], + "why": "Passionate about project, mission and vision. Multi-disciplinary background leading my own project and developments including a separate ERC-20 token." + }, + "scottie33": { + "expertise": ["Operations"], + "why": "I am super responsive, trustworthy, and support Cryptex 100%." + }, + "TheyCallMeJim": { + "expertise": ["Development", "Operations"], + "why": "Experienced crypto trader and audit analysis" + } +} \ No newline at end of file diff --git a/public/locales/es/translation.json b/public/locales/es/translation.json new file mode 100644 index 00000000..7e1d2cdb --- /dev/null +++ b/public/locales/es/translation.json @@ -0,0 +1,230 @@ +{ + "add": "Add", + "all-vaults": "All Vaults", + "amount-tcap": "Amount of TCAP", + "approve": "Approve", + "balance": "Balance", + "balance2": "Current Balance", + "burn": "Burn", + "choose-network": "Choose Network", + "claim": "Claim", + "claiming": "Claimin", + "claim-vest":"Claim Vest", + "click-copy": "Click to Copy", + "collateral": "Collateral", + "connect": "Connect Wallet", + "contract": "Contract", + "create": "Create", + "debt": "Debt", + "deposit": "Deposit", + "deposited": "Deposited", + "description": "Description", + "exit": "Exit", + "farm": "Farm", + "history": "History", + "inactive": "Inative", + "infinite-approve": "Infinite Approve", + "max": "MAX", + "max-safe": "MAX SAFE", + "mint": "Mint", + "my-vaults": "My Vaults", + "mode": "Mode", + "last": "Last", + "loading": "Loading", + "out-of-range": "Out of range", + "pending": "Pending", + "pool": "Pool", + "stake": "Stake", + "stake2": "Amount to Stake", + "staked": "Staked", + "status": "Status", + "ready": "Ready", + "remove": "Remove", + "required-tcap": "Required TCAP", + "token": "Token", + "tokens": "Tokens", + "totals": "Totals", + "trade": "Trade", + "tran-sent": "⏰ Transaction Sent!", + "tran-confirmed": "✔️ Transaction Confirmed!", + "tran-wait": "Plz wait for the transaction confirmation.", + "tran-wait2": "All set, please wait for another confirmation", + "unstake": "Unstake", + "unstaked": "Unstaked", + "update": "Update", + "vault-warning": "⚠️ Make sure to always have a ratio above the minimum ratio to avoid getting liquidated.", + "vaults": "Vauts", + "view": "View", + "votes": "Votes", + "wait": "Please wait", + "warning": "This project is in beta. Use at your own risk.", + "welcome": { + "tcap": "Total Cryptocurrency Market Capitalization", + "tcap-token": "Total Cryptocurrency Market Capitalization Token", + "tcap-info": "Total Crypto Market Capitalization is updated on-chain on every 1% movement", + "title1": "My Total Balance", + "subtitle1": "Connected Account", + "title2": "Use TCAP", + "subtitle2": "Trade TCAP using Uniswap or create new supply using a vault", + "title3": "Connect Your Account", + "subtitle3": "Mint TCAP, or check your balance connecting your account", + "tcap-balance": "TCAP Balance", + "ctx-balance": "CTX Balance", + "tcap-price": "TCAP Price", + "ctx-price": "CTX Price", + "summary": { + "title": "Protocol Summary", + "staked-usd": "Total Staked USD", + "staked-eth": "Staked in ETH", + "staked-dai": "Staked in DAI", + "staked-aave": "Staked in AAVE", + "staked-link": "Staked in LINK", + "staked-matic": "Staked in MATIC", + "staked-wbtc": "Staked in WBTC", + "staked-usdc": "Staked in USDC", + "staked-uni": "Staked in UNI", + "staked-snx": "Staked in SNX", + "total-supply": "TCAP Supply" + } + }, + "vault": { + "warning": "", + "loading": "Loading Vault", + "title1": "Vaults", + "subtitle1": "Select your Collateral", + "no-connected": "No wallet connected. Please Connect your wallet to Create a Vault and approve your collateral to start minting TCAP tokens.", + "approve": "Approve Vault", + "approve-text": "Vault not approved. Please approve your collateral to start minting {{asset}} tokens.", + "create": "Create Vault", + "create-text": "No vault Created. Please Create a Vault and approve your collateral to start minting {{asset}} tokens.", + "balance-title": "{{vault}} Balance", + "ratio-title": "Vault Ratio", + "ratio-warning": "Ratio must be > {{minRatio}}% or you will be liquidated.", + "hard-mode-info": "Hard mode vaults have a minimum required ratio of 125%.", + "hard-mode-info2": "You're required to mint a minimum of 20 TCAP on hard mode.", + "collateral": { + "title": "Staked Collateral", + "add": "Add {{collateral}}", + "remove": "Remove {{collateral}}" + }, + "debt": { + "title": "Vault Debt", + "mint": "Mint TCAP", + "burn": "Burn TCAP", + "fee": "Burn Fee" + }, + "status": { + "na": "N/A", + "safe": "safe", + "warning": "warning", + "danger": "danger", + "error": "error" + }, + "errors": { + "no-collateral": "Not enough collateral on vault", + "burn-too-high": "Burn value too high", + "burn-balance-low": "Burn value is greater than your balance.", + "min-tcap": "You need to mint a minimum of 20 TCAP on hard mode.", + "min-tcap2": "Afte burning the minimum amount of debt should be 20 TCAP." + } + }, + "farming": { + "current-info": "Early adopters rewards are issued over 14 days for a total of 500,000 CTX. Assuming approximately 6500 Ethereum blocks per day over 14 days (91,000 Ethereum blocks), the per block reward would be 5.4945 CTX split across the debtors at that point in time. 100% of the reward is immediately available.", + "current-mint": "Current mint", + "current-reward": "Current Reward", + "eth-tcap-pool": "ETH/TCAP Pool", + "eth-ctx-pool": "ETH/CTX Pool", + "farming": "Farming", + "liquidity": "Liquidity Rewards", + "locked": "Locked Reward", + "locked-info": "Available to claim immediately.", + "minting": "Minting Rewards", + "token-vault": "{{token}} Vault", + "unlocked": "Unlocked Reward", + "unlocked-info": "Available to claim immediately.", + "univ3": { + "amount-claim": "Amount to claim", + "available-claim": "Available to claim", + "claim-info": "In order to claim rewards, you need to unstake your token.", + "claim-reward": "Claim Reward", + "current-reward": "Current Reward", + "current-reward-info": "Amount of CTX that it's been earn while the LP token is staked. You must unstake the LP token in order to claim the reward.", + "deposited-info": "LP token needs to be stake to earn rewards. ", + "pending-info": "LP token needs to be approved in order to be staked.", + "position": "Position", + "position-info1": "Position Min and Max price represents TCAP per WETH.", + "position-info2": "Current price is", + "staked-info": "LP token is staked and earning rewards.", + "unstaked-info": "LP token hasn't been staked or deposited.", + "out-of-range-info": "You aren't earning rewards because the price is out of your position range." + } + }, + "monitoring": { + "active-info": "Vault is minting TCAP.", + "empty-info": "There is not collateral on the vault.", + "liquidation-info": "Ratio is less than min required.", + "liquidate-vault": "Liquidate Vault", + "liquidating": "Liquidating", + "ratio": "Ratio", + "ready-info": "Vault has collateral and it is ready to mint TCAP.", + "reward": "Reward", + "reward-info": "Collateral amount in USD you are getting for liquidating the vault.", + "tcap-amount-info": "Amount of TCAP in USD you need to provide to liquidate vault.", + "net-reward": "Net Reward", + "net-reward-info1": "Actual profit in USD you earn after liquidation", + "net-reward-info2": "Net Reward = Reward - TCAP Amount - Burn Fee." + }, + "governance": { + "amount-stake": "Amount to Stake", + "amount-remove": "Amount to Remove", + "new": "New Crypt Keeper", + "respresented": "Represented", + "stake-reward": "Stake Reward", + "staked-reward": "Staked Reward", + "why-me": "Why me?", + "expertise": "Expertise", + "delegate-to": "Delegate to Keeper", + "delegating": "Delegating", + "stake-delegate": "Stake & Delegate", + "stake-info": "Stake and Delegate CTX to this Crypt Keeper. Each time you Stake and Delegate, you must wait a minimum of 7 days before you can withdraw.", + "stake-info2": "Approve delegating CTX tokens. You only have to do this once.", + "withdraw": "Withdraw", + "withdrawing": "Withdrawing", + "withdraw-info": "Remove delegated votes from this Crypt Keeper. CTX must be staked and delegated for a minimum of 7 days before you are eligible to withdraw.", + "withdraw-info2": "* Eligible to withdraw on {{date}}", + "form": { + "create": "Create Crypt Keeper", + "keeper": "Keeper eth name or address", + "name": "Name", + "why": "Why should users delegate to you?" + }, + "success": { + "title": "Crypt. Keepers", + "message": "Crypt Keeper updated" + }, + "errors": { + "creating-keeper": "Error creating keeper.", + "exists": "Crypt Keeper for this address already exists.", + "invalid-amount": "Invalid amount to withdraw", + "invalid-ens-address": "Please enter a valid eth name or address", + "invalid-twitter": "It is not a valid twitter username", + "invalid-discord": "It is not a valid discord id", + "need-to-wait": "Need to wait the minimum staking period", + "too-long": "Field is too long ({{max}} characters max)" + } + }, + "errors": { + "empty": "Field can't be empty", + "invalid-address": "Please enter a valid address", + "invalid-ens": "Please enter a valid ENS name", + "invalid-file-type": "Invalid file type.", + "invalid-image-size": "Image max size is {{size}} KB", + "less-tcap": "Tcap amount is less than required.", + "no-ctx": "Not enough CTX balance.", + "no-tcap": "Not enough TCAP balance.", + "no-funds": "Insufficient funds to stake", + "not-approve": "Token not Approved", + "tran-rejected": "Transaction rejected", + "unexpected": "Unexpected error" + } +} \ No newline at end of file diff --git a/public/locales/fr/keepers.json b/public/locales/fr/keepers.json new file mode 100644 index 00000000..ac50236e --- /dev/null +++ b/public/locales/fr/keepers.json @@ -0,0 +1,50 @@ +{ + "brajon.eth": { + "expertise": ["Development"], + "why": "I’ve been a Cryptex supporter since Nov 2020 and see the vision Joe and the team are trying to accomplish. My goal is to help this project reach its potential of creating institutional grade investment products that allow anyone to get exposure to currently nontradeable markets." + }, + "David R Jennings": { + "expertise": ["Investor"], + "why": "Here to invest with ctx long term" + }, + "DesertDwelr": { + "expertise": ["Development", "Operations"], + "why": "Like many of you in this community, my CTX/TCAP holdings are modest but my enthusiasm is not. I'd be honored to be the voice of other modest holders and help guide the future of this exciting organization. My approach will be to learn and listen.Learn about each proposal and be able to share the considerations of each option.Listen to your input and vote accordingly, even if that means going against the majority vote.\n\nA brief bio: I'm a software solution manager at a Fortune 50 company, leading my team throughout all stages of the product lifecycle. I'm a father of 3 boys, which is even more humbling.I am fascinated by crypto and the power of decentralization.I try to learn more every day.\n\nThanks for considering me! Regardless of who you select as your delegate, congratulations on staking and being part of this great community!" + }, + "dnkta.eth": { + "expertise": ["Operations"], + "why": "Take decisions in best faith for the protocol." + }, + "Huntsman": { + "expertise": ["Economics/Retail Investing"], + "why": "Huntsman is a relative newcomer to cryptocurrency investing, and while he only discovered Cryptex when it was listed on Gemini, his Cryptex journey has seen him allocate over 10% of his investment portfolio into collateralizing vaults, minting TCAP, and providing liquidity on Sushiswap. He is very excited about the potential of this DAO and its community, as well as its flagship TCAP. He is humbly asking for your delegation for those who want to place their stake with a retail everyman who can't wait for the Moon but wants to invest decades into this project to see it to its maximum potential." + }, + "indigo.eth": { + "expertise": ["Development", "Operations"], + "why": "I'm a security expert who specializes in smart contract and operational security auditing.\n\nI will vote for incentivized liquidity and staking, expansion to new projects/networks, and supporting operations that will drive adoption of TCAP." + }, + "Joshua Britt": { + "expertise": ["Development", "Operations"], + "why": "Here to make Ctx better for the future" + }, + "Leo": { + "expertise": ["Operations"], + "why": "I am a long-term crypto investor and builder. I am a big supporter of the cryptex project from the very beginning. I have promoted the project to a large Chinese crypto community with a few thousand people. I have initiated the debank.com integration and get it supported recently.\n\nI would like to represent the Chinese crypto investors in the project and continue supporting and promoting the cryptex project." + }, + "MediumArchibald": { + "expertise": ["Investigative journalist", "Freelance political/legal researcher"], + "why": "My profession is trust- and referral-based. I either present verifiable information, or I don’t get future clients." + }, + "Mr. Brightside": { + "expertise": ["Operations"], + "why": "Passionate about project, mission and vision. Multi-disciplinary background leading my own project and developments including a separate ERC-20 token." + }, + "scottie33": { + "expertise": ["Operations"], + "why": "I am super responsive, trustworthy, and support Cryptex 100%." + }, + "TheyCallMeJim": { + "expertise": ["Development", "Operations"], + "why": "Experienced crypto trader and audit analysis" + } +} \ No newline at end of file diff --git a/public/locales/fr/translation.json b/public/locales/fr/translation.json new file mode 100644 index 00000000..c6074e9f --- /dev/null +++ b/public/locales/fr/translation.json @@ -0,0 +1,225 @@ +{ + "add": "Add", + "all-vaults": "All Vaults", + "amount-tcap": "Amount of TCAP", + "approve": "Approve", + "balance": "Solde", + "balance2": "Solde actuel", + "burn": "Burn", + "choose-network": "Choix de réseau", + "claim": "Collecter", + "claiming": "Claiming", + "click-copy": "Cliquer pour copier", + "collateral": "Collateral", + "connect": "Connecter son Wallet", + "contract": "Contrat", + "create": "Créer", + "debt": "Debt", + "deposit": "Deposit", + "deposited": "Deposited", + "description": "Description", + "exit": "Quitter", + "farm": "Farm", + "history": "Historique", + "inactive": "Inactif", + "infinite-approve": "Approuver à l'infini", + "max": "MAX", + "max-safe": "MAX SAFE", + "mint": "Produire", + "my-vaults": "My Vaults", + "mode": "Mode", + "last": "Dernier", + "loading": "Chargement", + "out-of-range": "Out of range", + "pending": "Pending", + "pool": "Pool", + "stake": "Epargner", + "stake2": "Montant à épargner", + "staked": "Epargné", + "status": "Status", + "ready": "Ready", + "remove": "Remove", + "required-tcap": "Required TCAP", + "token": "Token", + "tokens": "Tokens", + "totals": "Totals", + "trade": "Trader", + "tran-sent": "⏰ Transaction envoyée!", + "tran-confirmed": "✔️ Transaction Confirmée!", + "tran-wait": "En attente d'une confirmation de la transaction.", + "tran-wait2": "Tout est prêt, en attente d'une seconde confirmation", + "unstake": "Unstake", + "unstaked": "Unstaked", + "update": "Actualiser", + "vault-warning": "⚠️ Soyez sûr d'avoir un collatéral au dessus du ratio minimum pour éviter que votre position soit liquidée.", + "vaults": "Vauts", + "view": "View", + "votes": "Votes", + "wait": "Attendez s'il vous plait...", + "warning": "This project is in beta. Use at your own risk.", + "welcome": { + "tcap": "Capitalisation boursière totale du marché des crypto-monnaies", + "tcap-token": "Le token de capitalisation boursière totale du marché crypto", + "tcap-info": "La capitalisation boursière totale du marché des crypto-monnaies est actualisée sur la blockchain à chaque mouvement de 1%", + "title1": "Mon solde total", + "subtitle1": "Compte connécté", + "title2": "Utiliser TCAP", + "subtitle2": "Trader TCAP sur SushiSwap ou créer de nouveaux tokens en utilisant le Coffre-fort", + "title3": "Connecter votre compte", + "subtitle3": "Produire du TCAP, ou verifier votre solde en connectant votre compte", + "tcap-balance": "Solde de TCAP", + "tcap-price": "TCAP Price", + "ctx-balance": "Solde de CTX", + "summary": { + "title": "Protocol Summary", + "staked-usd": "Total Staked USD", + "staked-eth": "Staked in ETH", + "staked-dai": "Staked in DAI", + "staked-aave": "Staked in AAVE", + "staked-link": "Staked in LINK", + "staked-matic": "Staked in MATIC", + "staked-wbtc": "Staked in WBTC", + "staked-usdc": "Staked in USDC", + "staked-uni": "Staked in UNI", + "staked-snx": "Staked in SNX", + "total-supply": "TCAP Supply" + } + }, + "vault": { + "warning": "Attention", + "loading": "Chargement du Coffre-fort", + "title1": "Le Coffre-fort", + "subtitle1": "Séléctionner votre garantie collatéralisée/collatéral", + "no-connected": "Aucun Wallet connécté. Connectez votre Wallet pour créer un Coffre-fort, approuver votre collatéral et commencer à produire des tokens TCAP", + "approve": "Approuver Coffre-fort", + "approve-text": "Coffre-fort non approuvé. Approuvez votre collatéral pour commencer à produire des tokens TCAP.", + "create": "Créer Coffre-fort", + "create-text": "Aucun Coffre-fort créé. Créez un Coffre-fort et approuvez votre collatéral pour commencer à produire des tokens TCAP.", + "balance-title": "{{vault}} Solde", + "ratio-title": "Proportion de collatéral", + "ratio-warning": "Le ratio de collatéral doit être > {{minRatio}}% ou votre collatéral sera liquidé.", + "hard-mode-info": "Hard mode vaults have a minimum required ratio of 110%.", + "hard-mode-info2": "You're required to mint a minimum of 20 TCAP on hard mode.", + "collateral": { + "title": "Collatéral Bloqué", + "add": "Ajouter du Collatéral", + "remove": "Enlever du Collatéral" + }, + "debt": { + "title": "Dette du Coffre-fort", + "mint": "Créer du TCAP", + "burn": "Bruler du TCAP", + "fee": "Frais pour bruler" + }, + "status": { + "na": "N/A", + "safe": "Position Sans Danger/En sécurité", + "warning": "Avertissement/Alerte", + "danger": "Position en Danger", + "error": "Erreur" + }, + "errors": { + "no-collateral": "Pas assez de collatéral dans le Coffre-fort", + "burn-too-high": "La valeur à bruler est trop élevée", + "min-tcap": "You need to mint a minimum of 20 TCAP on hard mode.", + "min-tcap2": "Afte burning the minimum amount of debt should be 20 TCAP." + } + }, + "farming": { + "current-info": "Les récompenses des premiers investisseurs sont distribuées sur 14 jours pour un total de 500,000 CTX. En supposant que 6500 blocs Ethereum sont validés par jour sur 14 jours (91,000 blocs Ethereum), les récompenses par bloc seraient de 5.4945 CTX distribués entre les débiteurs à chaque bloc. 100% des récompenses seront disponibles immédiatement.", + "current-mint": "Production Actuelle", + "current-reward": "Récompenses Actuelles", + "eth-tcap-pool": "ETH/TCAP Pool", + "eth-ctx-pool": "ETH/CTX Pool", + "farming": "Farming", + "liquidity": "Récompenses de liquidité", + "locked": "Récompenses Vérrouillées", + "locked-info": "Les récompenses sont débloquées 6 mois après le début de la pool.", + "minting": "Production des récompenses", + "unlocked": "Récompenses Dévérrouillez", + "unlocked-info": "Disponible pour collecter immédiatement.", + "univ3": { + "amount-claim": "Amount to claim", + "available-claim": "Available to claim", + "claim-info": "In order to claim rewards, you need to unstake your token.", + "claim-reward": "Claim Reward", + "current-reward": "Current Reward", + "current-reward-info": "Amount of CTX that it's been earn while the LP token is staked. You must unstake the LP token in order to claim the reward.", + "deposited-info": "LP token needs to be stake to earn rewards. ", + "pending-info": "LP token needs to be approved in order to be staked.", + "position": "Position", + "position-info1": "Position Min and Max price represents TCAP per WETH.", + "position-info2": "Current price is", + "staked-info": "LP token is staked and earning rewards.", + "unstaked-info": "LP token hasn't been staked or deposited.", + "out-of-range-info": "You aren't earning rewards because the price is out of your position range." + } + }, + "monitoring": { + "active-info": "Vault is minting TCAP.", + "empty-info": "There is not collateral on the vault.", + "liquidation-info": "Ratio is less than min required.", + "liquidate-vault": "Liquidate Vault", + "liquidating": "Liquidating", + "ratio": "Ratio", + "ready-info": "Vault has collateral and it is ready to mint TCAP.", + "reward": "Reward", + "reward-info": "Collateral amount in USD you are getting for liquidating the vault.", + "tcap-amount-info": "Amount of TCAP in USD you need to provide to liquidate vault.", + "net-reward": "Net Reward", + "net-reward-info1": "Actual profit in USD you earn after liquidation", + "net-reward-info2": "Net Reward = Reward - TCAP Amount - Burn Fee." + }, + "governance": { + "amount-stake": "Montant à Epargner", + "amount-remove": "Montant à Récupérer", + "new": "Nouveau Gardien de la Crypte", + "respresented": "Représenté", + "stake-reward": "Epargner ses Récompenses", + "staked-reward": "Récompenses Epargnées", + "why-me": "Pourquoi moi?", + "expertise": "Expertise", + "delegate-to": "Déléguer au Gardien", + "delegating": "Déléguation", + "stake-delegate": "Épargner & Déléguer", + "stake-info": "Épargner et déléguer vos CTX à ce Gardien de la Crypte. A chaque fois que vous épargnez et déléguez, vous devez attendre un minimum de 7 jours avant de pouvoir retirer vos CTX.", + "stake-info2": "Approuver la délégation de vos CTX tokens. Vous aurez à faire ceci qu'une seul fois.", + "withdraw": "Retirer", + "withdrawing": "Retirage en cours", + "withdraw-info": "Retirer des votes délégués à ce Gardien de la Crypte. Vos CTX doivent être épargnés et délégués pendant un minimum de 7 jours avant de pouvoir les retirer.", + "withdraw-info2": "* Vous pourrez retirer le {{date}}", + "form": { + "create": "Créer votre identité de Gardien de la Crypte", + "keeper": "Nom ou addresse eth du Gardien", + "name": "Nom" + }, + "success": { + "title": "Gardien de la Crypte", + "message": "Gardien de la Crypte mis à jour" + }, + "errors": { + "creating-keeper": "Erreur en créant un Gardien.", + "exists": "Un Gardien avec cette addresse existe déjà.", + "invalid-amount": "Montant invalide à retirer", + "invalid-ens-address": "Veuillez entrer un nom ou une addresse eth valide", + "invalid-twitter": "Ceci n'est pas un nom d'utilisateur twitter valide.", + "invalid-discord": "Ceci n'est pas un identifiant discord valide", + "need-to-wait": "Vous devez attendre le temps/la période d'épargne minimum", + "too-long": "Ce champ est trop long ({{max}} caractères maximum)" + } + }, + "errors": { + "empty": "Ces champs ne peuvent être vides", + "invalid-address": "Veuillez entrer une addresse valide", + "invalid-ens": "Veuillez entrer un nom ENS valide", + "invalid-file-type": "Type de fichier invalide.", + "invalid-image-size": "La taille maximale du fichier peut être de {{size}} KB", + "less-tcap": "Tcap amount is less than required.", + "not-approve": "Tokens non Approuvés", + "no-ctx": "Solde de CTX insuffisant.", + "no-funds": "Fonds insuffisants pour épargner", + "no-tcap": "Not enough TCAP balance.", + "tran-rejected": "Transaction rejetée", + "unexpected": "Erreur inattendue" + } +} \ No newline at end of file diff --git a/public/locales/hi_IN/keepers.json b/public/locales/hi_IN/keepers.json new file mode 100644 index 00000000..ac50236e --- /dev/null +++ b/public/locales/hi_IN/keepers.json @@ -0,0 +1,50 @@ +{ + "brajon.eth": { + "expertise": ["Development"], + "why": "I’ve been a Cryptex supporter since Nov 2020 and see the vision Joe and the team are trying to accomplish. My goal is to help this project reach its potential of creating institutional grade investment products that allow anyone to get exposure to currently nontradeable markets." + }, + "David R Jennings": { + "expertise": ["Investor"], + "why": "Here to invest with ctx long term" + }, + "DesertDwelr": { + "expertise": ["Development", "Operations"], + "why": "Like many of you in this community, my CTX/TCAP holdings are modest but my enthusiasm is not. I'd be honored to be the voice of other modest holders and help guide the future of this exciting organization. My approach will be to learn and listen.Learn about each proposal and be able to share the considerations of each option.Listen to your input and vote accordingly, even if that means going against the majority vote.\n\nA brief bio: I'm a software solution manager at a Fortune 50 company, leading my team throughout all stages of the product lifecycle. I'm a father of 3 boys, which is even more humbling.I am fascinated by crypto and the power of decentralization.I try to learn more every day.\n\nThanks for considering me! Regardless of who you select as your delegate, congratulations on staking and being part of this great community!" + }, + "dnkta.eth": { + "expertise": ["Operations"], + "why": "Take decisions in best faith for the protocol." + }, + "Huntsman": { + "expertise": ["Economics/Retail Investing"], + "why": "Huntsman is a relative newcomer to cryptocurrency investing, and while he only discovered Cryptex when it was listed on Gemini, his Cryptex journey has seen him allocate over 10% of his investment portfolio into collateralizing vaults, minting TCAP, and providing liquidity on Sushiswap. He is very excited about the potential of this DAO and its community, as well as its flagship TCAP. He is humbly asking for your delegation for those who want to place their stake with a retail everyman who can't wait for the Moon but wants to invest decades into this project to see it to its maximum potential." + }, + "indigo.eth": { + "expertise": ["Development", "Operations"], + "why": "I'm a security expert who specializes in smart contract and operational security auditing.\n\nI will vote for incentivized liquidity and staking, expansion to new projects/networks, and supporting operations that will drive adoption of TCAP." + }, + "Joshua Britt": { + "expertise": ["Development", "Operations"], + "why": "Here to make Ctx better for the future" + }, + "Leo": { + "expertise": ["Operations"], + "why": "I am a long-term crypto investor and builder. I am a big supporter of the cryptex project from the very beginning. I have promoted the project to a large Chinese crypto community with a few thousand people. I have initiated the debank.com integration and get it supported recently.\n\nI would like to represent the Chinese crypto investors in the project and continue supporting and promoting the cryptex project." + }, + "MediumArchibald": { + "expertise": ["Investigative journalist", "Freelance political/legal researcher"], + "why": "My profession is trust- and referral-based. I either present verifiable information, or I don’t get future clients." + }, + "Mr. Brightside": { + "expertise": ["Operations"], + "why": "Passionate about project, mission and vision. Multi-disciplinary background leading my own project and developments including a separate ERC-20 token." + }, + "scottie33": { + "expertise": ["Operations"], + "why": "I am super responsive, trustworthy, and support Cryptex 100%." + }, + "TheyCallMeJim": { + "expertise": ["Development", "Operations"], + "why": "Experienced crypto trader and audit analysis" + } +} \ No newline at end of file diff --git a/public/locales/hi_IN/translation.json b/public/locales/hi_IN/translation.json new file mode 100644 index 00000000..b63aac50 --- /dev/null +++ b/public/locales/hi_IN/translation.json @@ -0,0 +1,230 @@ +{ + "add": "Add", + "all-vaults": "All Vaults", + "amount-tcap": "Amount of TCAP", + "approve": "Approve", + "balance": "Balance", + "balance2": "Current Balance", + "burn": "Burn", + "choose-network": "Choose Network", + "claim": "Claim", + "claiming": "Claimin", + "claim-vest":"Claim Vest", + "click-copy": "Click to Copy", + "collateral": "Collateral", + "connect": "Connect Wallet", + "contract": "Contract", + "create": "Create", + "debt": "Debt", + "deposit": "Deposit", + "deposited": "Deposited", + "description": "Description", + "exit": "Exit", + "farm": "Farm", + "history": "History", + "inactive": "Inative", + "infinite-approve": "Infinite Approve", + "max": "MAX", + "max-safe": "MAX SAFE", + "mint": "Mint", + "my-vaults": "My Vaults", + "mode": "Mode", + "last": "Last", + "loading": "Loading", + "out-of-range": "Out of range", + "pending": "Pending", + "pool": "Pool", + "stake": "Stake", + "stake2": "Amount to Stake", + "staked": "Staked", + "status": "Status", + "ready": "Ready", + "remove": "Remove", + "required-tcap": "Required TCAP", + "token": "Token", + "tokens": "Tokens", + "totals": "Totals", + "trade": "Trade", + "tran-sent": "⏰ Transaction Sent!", + "tran-confirmed": "✔️ Transaction Confirmed!", + "tran-wait": "Plz wait for the transaction confirmation.", + "tran-wait2": "All set, please wait for another confirmation", + "unstake": "Unstake", + "unstaked": "Unstaked", + "update": "Update", + "vault-warning": "⚠️ Make sure to always have a ratio above the minimum ratio to avoid getting liquidated.", + "vaults": "Vauts", + "view": "View", + "votes": "Votes", + "wait": "Please wait", + "warning": "This project is in beta. Use at your own risk.", + "welcome": { + "tcap": "Total Cryptocurrency Market Capitalization", + "tcap-token": "Total Cryptocurrency Market Capitalization Token", + "tcap-info": "Total Crypto Market Capitalization is updated on-chain on every 1% movement", + "title1": "My Total Balance", + "subtitle1": "Connected Account", + "title2": "Use TCAP", + "subtitle2": "Trade TCAP using Uniswap or create new supply using a vault", + "title3": "Connect Your Account", + "subtitle3": "Mint TCAP, or check your balance connecting your account", + "tcap-balance": "TCAP Balance", + "ctx-balance": "CTX Balance", + "tcap-price": "TCAP Price", + "ctx-price": "CTX Price", + "summary": { + "title": "Protocol Summary", + "staked-usd": "Total Staked USD", + "staked-eth": "Staked in ETH", + "staked-dai": "Staked in DAI", + "staked-aave": "Staked in AAVE", + "staked-link": "Staked in LINK", + "staked-matic": "Staked in MATIC", + "staked-wbtc": "Staked in WBTC", + "staked-usdc": "Staked in USDC", + "staked-uni": "Staked in UNI", + "staked-snx": "Staked in SNX", + "total-supply": "TCAP Supply" + } + }, + "vault": { + "warning": "", + "loading": "Loading Vault", + "title1": "Vaults", + "subtitle1": "Select your Collateral", + "no-connected": "No wallet connected. Please Connect your wallet to Create a Vault and approve your collateral to start minting TCAP tokens.", + "approve": "Approve Vault", + "approve-text": "Vault not approved. Please approve your collateral to start minting TCAP tokens.", + "create": "Create Vault", + "create-text": "No vault Created. Please Create a Vault and approve your collateral to start minting TCAP tokens.", + "balance-title": "{{vault}} Balance", + "ratio-title": "Vault Ratio", + "ratio-warning": "Ratio must be > {{minRatio}}% or you will be liquidated.", + "hard-mode-info": "Hard mode vaults have a minimum required ratio of 110%.", + "hard-mode-info2": "You're required to mint a minimum of 20 TCAP on hard mode.", + "collateral": { + "title": "Staked Collateral", + "add": "Add {{collateral}}", + "remove": "Remove {{collateral}}" + }, + "debt": { + "title": "Vault Debt", + "mint": "Mint TCAP", + "burn": "Burn TCAP", + "fee": "Burn Fee" + }, + "status": { + "na": "N/A", + "safe": "safe", + "warning": "warning", + "danger": "danger", + "error": "error" + }, + "errors": { + "no-collateral": "Not enough collateral on vault", + "burn-too-high": "Burn value too high", + "burn-balance-low": "Burn value is greater than your balance.", + "min-tcap": "You need to mint a minimum of 20 TCAP on hard mode.", + "min-tcap2": "Afte burning the minimum amount of debt should be 20 TCAP." + } + }, + "farming": { + "current-info": "Early adopters rewards are issued over 14 days for a total of 500,000 CTX. Assuming approximately 6500 Ethereum blocks per day over 14 days (91,000 Ethereum blocks), the per block reward would be 5.4945 CTX split across the debtors at that point in time. 100% of the reward is immediately available.", + "current-mint": "Current mint", + "current-reward": "Current Reward", + "eth-tcap-pool": "ETH/TCAP Pool", + "eth-ctx-pool": "ETH/CTX Pool", + "farming": "Farming", + "liquidity": "Liquidity Rewards", + "locked": "Locked Reward", + "locked-info": "Available to claim immediately.", + "minting": "Minting Rewards", + "token-vault": "{{token}} Vault", + "unlocked": "Unlocked Reward", + "unlocked-info": "Available to claim immediately.", + "univ3": { + "amount-claim": "Amount to claim", + "available-claim": "Available to claim", + "claim-info": "In order to claim rewards, you need to unstake your token.", + "claim-reward": "Claim Reward", + "current-reward": "Current Reward", + "current-reward-info": "Amount of CTX that it's been earn while the LP token is staked. You must unstake the LP token in order to claim the reward.", + "deposited-info": "LP token needs to be stake to earn rewards. ", + "pending-info": "LP token needs to be approved in order to be staked.", + "position": "Position", + "position-info1": "Position Min and Max price represents TCAP per WETH.", + "position-info2": "Current price is", + "staked-info": "LP token is staked and earning rewards.", + "unstaked-info": "LP token hasn't been staked or deposited.", + "out-of-range-info": "You aren't earning rewards because the price is out of your position range." + } + }, + "monitoring": { + "active-info": "Vault is minting TCAP.", + "empty-info": "There is not collateral on the vault.", + "liquidation-info": "Ratio is less than min required.", + "liquidate-vault": "Liquidate Vault", + "liquidating": "Liquidating", + "ratio": "Ratio", + "ready-info": "Vault has collateral and it is ready to mint TCAP.", + "reward": "Reward", + "reward-info": "Collateral amount in USD you are getting for liquidating the vault.", + "tcap-amount-info": "Amount of TCAP in USD you need to provide to liquidate vault.", + "net-reward": "Net Reward", + "net-reward-info1": "Actual profit in USD you earn after liquidation", + "net-reward-info2": "Net Reward = Reward - TCAP Amount - Burn Fee." + }, + "governance": { + "amount-stake": "Amount to Stake", + "amount-remove": "Amount to Remove", + "new": "New Crypt Keeper", + "respresented": "Represented", + "stake-reward": "Stake Reward", + "staked-reward": "Staked Reward", + "why-me": "Why me?", + "expertise": "Expertise", + "delegate-to": "Delegate to Keeper", + "delegating": "Delegating", + "stake-delegate": "Stake & Delegate", + "stake-info": "Stake and Delegate CTX to this Crypt Keeper. Each time you Stake and Delegate, you must wait a minimum of 7 days before you can withdraw.", + "stake-info2": "Approve delegating CTX tokens. You only have to do this once.", + "withdraw": "Withdraw", + "withdrawing": "Withdrawing", + "withdraw-info": "Remove delegated votes from this Crypt Keeper. CTX must be staked and delegated for a minimum of 7 days before you are eligible to withdraw.", + "withdraw-info2": "* Eligible to withdraw on {{date}}", + "form": { + "create": "Create Crypt Keeper", + "keeper": "Keeper eth name or address", + "name": "Name", + "why": "Why should users delegate to you?" + }, + "success": { + "title": "Crypt. Keepers", + "message": "Crypt Keeper updated" + }, + "errors": { + "creating-keeper": "Error creating keeper.", + "exists": "Crypt Keeper for this address already exists.", + "invalid-amount": "Invalid amount to withdraw", + "invalid-ens-address": "Please enter a valid eth name or address", + "invalid-twitter": "It is not a valid twitter username", + "invalid-discord": "It is not a valid discord id", + "need-to-wait": "Need to wait the minimum staking period", + "too-long": "Field is too long ({{max}} characters max)" + } + }, + "errors": { + "empty": "Field can't be empty", + "invalid-address": "Please enter a valid address", + "invalid-ens": "Please enter a valid ENS name", + "invalid-file-type": "Invalid file type.", + "invalid-image-size": "Image max size is {{size}} KB", + "less-tcap": "Tcap amount is less than required.", + "no-ctx": "Not enough CTX balance.", + "no-tcap": "Not enough TCAP balance.", + "no-funds": "Insufficient funds to stake", + "not-approve": "Token not Approved", + "tran-rejected": "Transaction rejected", + "unexpected": "Unexpected error" + } +} \ No newline at end of file diff --git a/public/locales/it/keepers.json b/public/locales/it/keepers.json new file mode 100644 index 00000000..ac50236e --- /dev/null +++ b/public/locales/it/keepers.json @@ -0,0 +1,50 @@ +{ + "brajon.eth": { + "expertise": ["Development"], + "why": "I’ve been a Cryptex supporter since Nov 2020 and see the vision Joe and the team are trying to accomplish. My goal is to help this project reach its potential of creating institutional grade investment products that allow anyone to get exposure to currently nontradeable markets." + }, + "David R Jennings": { + "expertise": ["Investor"], + "why": "Here to invest with ctx long term" + }, + "DesertDwelr": { + "expertise": ["Development", "Operations"], + "why": "Like many of you in this community, my CTX/TCAP holdings are modest but my enthusiasm is not. I'd be honored to be the voice of other modest holders and help guide the future of this exciting organization. My approach will be to learn and listen.Learn about each proposal and be able to share the considerations of each option.Listen to your input and vote accordingly, even if that means going against the majority vote.\n\nA brief bio: I'm a software solution manager at a Fortune 50 company, leading my team throughout all stages of the product lifecycle. I'm a father of 3 boys, which is even more humbling.I am fascinated by crypto and the power of decentralization.I try to learn more every day.\n\nThanks for considering me! Regardless of who you select as your delegate, congratulations on staking and being part of this great community!" + }, + "dnkta.eth": { + "expertise": ["Operations"], + "why": "Take decisions in best faith for the protocol." + }, + "Huntsman": { + "expertise": ["Economics/Retail Investing"], + "why": "Huntsman is a relative newcomer to cryptocurrency investing, and while he only discovered Cryptex when it was listed on Gemini, his Cryptex journey has seen him allocate over 10% of his investment portfolio into collateralizing vaults, minting TCAP, and providing liquidity on Sushiswap. He is very excited about the potential of this DAO and its community, as well as its flagship TCAP. He is humbly asking for your delegation for those who want to place their stake with a retail everyman who can't wait for the Moon but wants to invest decades into this project to see it to its maximum potential." + }, + "indigo.eth": { + "expertise": ["Development", "Operations"], + "why": "I'm a security expert who specializes in smart contract and operational security auditing.\n\nI will vote for incentivized liquidity and staking, expansion to new projects/networks, and supporting operations that will drive adoption of TCAP." + }, + "Joshua Britt": { + "expertise": ["Development", "Operations"], + "why": "Here to make Ctx better for the future" + }, + "Leo": { + "expertise": ["Operations"], + "why": "I am a long-term crypto investor and builder. I am a big supporter of the cryptex project from the very beginning. I have promoted the project to a large Chinese crypto community with a few thousand people. I have initiated the debank.com integration and get it supported recently.\n\nI would like to represent the Chinese crypto investors in the project and continue supporting and promoting the cryptex project." + }, + "MediumArchibald": { + "expertise": ["Investigative journalist", "Freelance political/legal researcher"], + "why": "My profession is trust- and referral-based. I either present verifiable information, or I don’t get future clients." + }, + "Mr. Brightside": { + "expertise": ["Operations"], + "why": "Passionate about project, mission and vision. Multi-disciplinary background leading my own project and developments including a separate ERC-20 token." + }, + "scottie33": { + "expertise": ["Operations"], + "why": "I am super responsive, trustworthy, and support Cryptex 100%." + }, + "TheyCallMeJim": { + "expertise": ["Development", "Operations"], + "why": "Experienced crypto trader and audit analysis" + } +} \ No newline at end of file diff --git a/public/locales/it/translation.json b/public/locales/it/translation.json new file mode 100644 index 00000000..b63aac50 --- /dev/null +++ b/public/locales/it/translation.json @@ -0,0 +1,230 @@ +{ + "add": "Add", + "all-vaults": "All Vaults", + "amount-tcap": "Amount of TCAP", + "approve": "Approve", + "balance": "Balance", + "balance2": "Current Balance", + "burn": "Burn", + "choose-network": "Choose Network", + "claim": "Claim", + "claiming": "Claimin", + "claim-vest":"Claim Vest", + "click-copy": "Click to Copy", + "collateral": "Collateral", + "connect": "Connect Wallet", + "contract": "Contract", + "create": "Create", + "debt": "Debt", + "deposit": "Deposit", + "deposited": "Deposited", + "description": "Description", + "exit": "Exit", + "farm": "Farm", + "history": "History", + "inactive": "Inative", + "infinite-approve": "Infinite Approve", + "max": "MAX", + "max-safe": "MAX SAFE", + "mint": "Mint", + "my-vaults": "My Vaults", + "mode": "Mode", + "last": "Last", + "loading": "Loading", + "out-of-range": "Out of range", + "pending": "Pending", + "pool": "Pool", + "stake": "Stake", + "stake2": "Amount to Stake", + "staked": "Staked", + "status": "Status", + "ready": "Ready", + "remove": "Remove", + "required-tcap": "Required TCAP", + "token": "Token", + "tokens": "Tokens", + "totals": "Totals", + "trade": "Trade", + "tran-sent": "⏰ Transaction Sent!", + "tran-confirmed": "✔️ Transaction Confirmed!", + "tran-wait": "Plz wait for the transaction confirmation.", + "tran-wait2": "All set, please wait for another confirmation", + "unstake": "Unstake", + "unstaked": "Unstaked", + "update": "Update", + "vault-warning": "⚠️ Make sure to always have a ratio above the minimum ratio to avoid getting liquidated.", + "vaults": "Vauts", + "view": "View", + "votes": "Votes", + "wait": "Please wait", + "warning": "This project is in beta. Use at your own risk.", + "welcome": { + "tcap": "Total Cryptocurrency Market Capitalization", + "tcap-token": "Total Cryptocurrency Market Capitalization Token", + "tcap-info": "Total Crypto Market Capitalization is updated on-chain on every 1% movement", + "title1": "My Total Balance", + "subtitle1": "Connected Account", + "title2": "Use TCAP", + "subtitle2": "Trade TCAP using Uniswap or create new supply using a vault", + "title3": "Connect Your Account", + "subtitle3": "Mint TCAP, or check your balance connecting your account", + "tcap-balance": "TCAP Balance", + "ctx-balance": "CTX Balance", + "tcap-price": "TCAP Price", + "ctx-price": "CTX Price", + "summary": { + "title": "Protocol Summary", + "staked-usd": "Total Staked USD", + "staked-eth": "Staked in ETH", + "staked-dai": "Staked in DAI", + "staked-aave": "Staked in AAVE", + "staked-link": "Staked in LINK", + "staked-matic": "Staked in MATIC", + "staked-wbtc": "Staked in WBTC", + "staked-usdc": "Staked in USDC", + "staked-uni": "Staked in UNI", + "staked-snx": "Staked in SNX", + "total-supply": "TCAP Supply" + } + }, + "vault": { + "warning": "", + "loading": "Loading Vault", + "title1": "Vaults", + "subtitle1": "Select your Collateral", + "no-connected": "No wallet connected. Please Connect your wallet to Create a Vault and approve your collateral to start minting TCAP tokens.", + "approve": "Approve Vault", + "approve-text": "Vault not approved. Please approve your collateral to start minting TCAP tokens.", + "create": "Create Vault", + "create-text": "No vault Created. Please Create a Vault and approve your collateral to start minting TCAP tokens.", + "balance-title": "{{vault}} Balance", + "ratio-title": "Vault Ratio", + "ratio-warning": "Ratio must be > {{minRatio}}% or you will be liquidated.", + "hard-mode-info": "Hard mode vaults have a minimum required ratio of 110%.", + "hard-mode-info2": "You're required to mint a minimum of 20 TCAP on hard mode.", + "collateral": { + "title": "Staked Collateral", + "add": "Add {{collateral}}", + "remove": "Remove {{collateral}}" + }, + "debt": { + "title": "Vault Debt", + "mint": "Mint TCAP", + "burn": "Burn TCAP", + "fee": "Burn Fee" + }, + "status": { + "na": "N/A", + "safe": "safe", + "warning": "warning", + "danger": "danger", + "error": "error" + }, + "errors": { + "no-collateral": "Not enough collateral on vault", + "burn-too-high": "Burn value too high", + "burn-balance-low": "Burn value is greater than your balance.", + "min-tcap": "You need to mint a minimum of 20 TCAP on hard mode.", + "min-tcap2": "Afte burning the minimum amount of debt should be 20 TCAP." + } + }, + "farming": { + "current-info": "Early adopters rewards are issued over 14 days for a total of 500,000 CTX. Assuming approximately 6500 Ethereum blocks per day over 14 days (91,000 Ethereum blocks), the per block reward would be 5.4945 CTX split across the debtors at that point in time. 100% of the reward is immediately available.", + "current-mint": "Current mint", + "current-reward": "Current Reward", + "eth-tcap-pool": "ETH/TCAP Pool", + "eth-ctx-pool": "ETH/CTX Pool", + "farming": "Farming", + "liquidity": "Liquidity Rewards", + "locked": "Locked Reward", + "locked-info": "Available to claim immediately.", + "minting": "Minting Rewards", + "token-vault": "{{token}} Vault", + "unlocked": "Unlocked Reward", + "unlocked-info": "Available to claim immediately.", + "univ3": { + "amount-claim": "Amount to claim", + "available-claim": "Available to claim", + "claim-info": "In order to claim rewards, you need to unstake your token.", + "claim-reward": "Claim Reward", + "current-reward": "Current Reward", + "current-reward-info": "Amount of CTX that it's been earn while the LP token is staked. You must unstake the LP token in order to claim the reward.", + "deposited-info": "LP token needs to be stake to earn rewards. ", + "pending-info": "LP token needs to be approved in order to be staked.", + "position": "Position", + "position-info1": "Position Min and Max price represents TCAP per WETH.", + "position-info2": "Current price is", + "staked-info": "LP token is staked and earning rewards.", + "unstaked-info": "LP token hasn't been staked or deposited.", + "out-of-range-info": "You aren't earning rewards because the price is out of your position range." + } + }, + "monitoring": { + "active-info": "Vault is minting TCAP.", + "empty-info": "There is not collateral on the vault.", + "liquidation-info": "Ratio is less than min required.", + "liquidate-vault": "Liquidate Vault", + "liquidating": "Liquidating", + "ratio": "Ratio", + "ready-info": "Vault has collateral and it is ready to mint TCAP.", + "reward": "Reward", + "reward-info": "Collateral amount in USD you are getting for liquidating the vault.", + "tcap-amount-info": "Amount of TCAP in USD you need to provide to liquidate vault.", + "net-reward": "Net Reward", + "net-reward-info1": "Actual profit in USD you earn after liquidation", + "net-reward-info2": "Net Reward = Reward - TCAP Amount - Burn Fee." + }, + "governance": { + "amount-stake": "Amount to Stake", + "amount-remove": "Amount to Remove", + "new": "New Crypt Keeper", + "respresented": "Represented", + "stake-reward": "Stake Reward", + "staked-reward": "Staked Reward", + "why-me": "Why me?", + "expertise": "Expertise", + "delegate-to": "Delegate to Keeper", + "delegating": "Delegating", + "stake-delegate": "Stake & Delegate", + "stake-info": "Stake and Delegate CTX to this Crypt Keeper. Each time you Stake and Delegate, you must wait a minimum of 7 days before you can withdraw.", + "stake-info2": "Approve delegating CTX tokens. You only have to do this once.", + "withdraw": "Withdraw", + "withdrawing": "Withdrawing", + "withdraw-info": "Remove delegated votes from this Crypt Keeper. CTX must be staked and delegated for a minimum of 7 days before you are eligible to withdraw.", + "withdraw-info2": "* Eligible to withdraw on {{date}}", + "form": { + "create": "Create Crypt Keeper", + "keeper": "Keeper eth name or address", + "name": "Name", + "why": "Why should users delegate to you?" + }, + "success": { + "title": "Crypt. Keepers", + "message": "Crypt Keeper updated" + }, + "errors": { + "creating-keeper": "Error creating keeper.", + "exists": "Crypt Keeper for this address already exists.", + "invalid-amount": "Invalid amount to withdraw", + "invalid-ens-address": "Please enter a valid eth name or address", + "invalid-twitter": "It is not a valid twitter username", + "invalid-discord": "It is not a valid discord id", + "need-to-wait": "Need to wait the minimum staking period", + "too-long": "Field is too long ({{max}} characters max)" + } + }, + "errors": { + "empty": "Field can't be empty", + "invalid-address": "Please enter a valid address", + "invalid-ens": "Please enter a valid ENS name", + "invalid-file-type": "Invalid file type.", + "invalid-image-size": "Image max size is {{size}} KB", + "less-tcap": "Tcap amount is less than required.", + "no-ctx": "Not enough CTX balance.", + "no-tcap": "Not enough TCAP balance.", + "no-funds": "Insufficient funds to stake", + "not-approve": "Token not Approved", + "tran-rejected": "Transaction rejected", + "unexpected": "Unexpected error" + } +} \ No newline at end of file diff --git a/public/locales/pt/keepers.json b/public/locales/pt/keepers.json new file mode 100644 index 00000000..ac50236e --- /dev/null +++ b/public/locales/pt/keepers.json @@ -0,0 +1,50 @@ +{ + "brajon.eth": { + "expertise": ["Development"], + "why": "I’ve been a Cryptex supporter since Nov 2020 and see the vision Joe and the team are trying to accomplish. My goal is to help this project reach its potential of creating institutional grade investment products that allow anyone to get exposure to currently nontradeable markets." + }, + "David R Jennings": { + "expertise": ["Investor"], + "why": "Here to invest with ctx long term" + }, + "DesertDwelr": { + "expertise": ["Development", "Operations"], + "why": "Like many of you in this community, my CTX/TCAP holdings are modest but my enthusiasm is not. I'd be honored to be the voice of other modest holders and help guide the future of this exciting organization. My approach will be to learn and listen.Learn about each proposal and be able to share the considerations of each option.Listen to your input and vote accordingly, even if that means going against the majority vote.\n\nA brief bio: I'm a software solution manager at a Fortune 50 company, leading my team throughout all stages of the product lifecycle. I'm a father of 3 boys, which is even more humbling.I am fascinated by crypto and the power of decentralization.I try to learn more every day.\n\nThanks for considering me! Regardless of who you select as your delegate, congratulations on staking and being part of this great community!" + }, + "dnkta.eth": { + "expertise": ["Operations"], + "why": "Take decisions in best faith for the protocol." + }, + "Huntsman": { + "expertise": ["Economics/Retail Investing"], + "why": "Huntsman is a relative newcomer to cryptocurrency investing, and while he only discovered Cryptex when it was listed on Gemini, his Cryptex journey has seen him allocate over 10% of his investment portfolio into collateralizing vaults, minting TCAP, and providing liquidity on Sushiswap. He is very excited about the potential of this DAO and its community, as well as its flagship TCAP. He is humbly asking for your delegation for those who want to place their stake with a retail everyman who can't wait for the Moon but wants to invest decades into this project to see it to its maximum potential." + }, + "indigo.eth": { + "expertise": ["Development", "Operations"], + "why": "I'm a security expert who specializes in smart contract and operational security auditing.\n\nI will vote for incentivized liquidity and staking, expansion to new projects/networks, and supporting operations that will drive adoption of TCAP." + }, + "Joshua Britt": { + "expertise": ["Development", "Operations"], + "why": "Here to make Ctx better for the future" + }, + "Leo": { + "expertise": ["Operations"], + "why": "I am a long-term crypto investor and builder. I am a big supporter of the cryptex project from the very beginning. I have promoted the project to a large Chinese crypto community with a few thousand people. I have initiated the debank.com integration and get it supported recently.\n\nI would like to represent the Chinese crypto investors in the project and continue supporting and promoting the cryptex project." + }, + "MediumArchibald": { + "expertise": ["Investigative journalist", "Freelance political/legal researcher"], + "why": "My profession is trust- and referral-based. I either present verifiable information, or I don’t get future clients." + }, + "Mr. Brightside": { + "expertise": ["Operations"], + "why": "Passionate about project, mission and vision. Multi-disciplinary background leading my own project and developments including a separate ERC-20 token." + }, + "scottie33": { + "expertise": ["Operations"], + "why": "I am super responsive, trustworthy, and support Cryptex 100%." + }, + "TheyCallMeJim": { + "expertise": ["Development", "Operations"], + "why": "Experienced crypto trader and audit analysis" + } +} \ No newline at end of file diff --git a/public/locales/pt/translation.json b/public/locales/pt/translation.json new file mode 100644 index 00000000..b63aac50 --- /dev/null +++ b/public/locales/pt/translation.json @@ -0,0 +1,230 @@ +{ + "add": "Add", + "all-vaults": "All Vaults", + "amount-tcap": "Amount of TCAP", + "approve": "Approve", + "balance": "Balance", + "balance2": "Current Balance", + "burn": "Burn", + "choose-network": "Choose Network", + "claim": "Claim", + "claiming": "Claimin", + "claim-vest":"Claim Vest", + "click-copy": "Click to Copy", + "collateral": "Collateral", + "connect": "Connect Wallet", + "contract": "Contract", + "create": "Create", + "debt": "Debt", + "deposit": "Deposit", + "deposited": "Deposited", + "description": "Description", + "exit": "Exit", + "farm": "Farm", + "history": "History", + "inactive": "Inative", + "infinite-approve": "Infinite Approve", + "max": "MAX", + "max-safe": "MAX SAFE", + "mint": "Mint", + "my-vaults": "My Vaults", + "mode": "Mode", + "last": "Last", + "loading": "Loading", + "out-of-range": "Out of range", + "pending": "Pending", + "pool": "Pool", + "stake": "Stake", + "stake2": "Amount to Stake", + "staked": "Staked", + "status": "Status", + "ready": "Ready", + "remove": "Remove", + "required-tcap": "Required TCAP", + "token": "Token", + "tokens": "Tokens", + "totals": "Totals", + "trade": "Trade", + "tran-sent": "⏰ Transaction Sent!", + "tran-confirmed": "✔️ Transaction Confirmed!", + "tran-wait": "Plz wait for the transaction confirmation.", + "tran-wait2": "All set, please wait for another confirmation", + "unstake": "Unstake", + "unstaked": "Unstaked", + "update": "Update", + "vault-warning": "⚠️ Make sure to always have a ratio above the minimum ratio to avoid getting liquidated.", + "vaults": "Vauts", + "view": "View", + "votes": "Votes", + "wait": "Please wait", + "warning": "This project is in beta. Use at your own risk.", + "welcome": { + "tcap": "Total Cryptocurrency Market Capitalization", + "tcap-token": "Total Cryptocurrency Market Capitalization Token", + "tcap-info": "Total Crypto Market Capitalization is updated on-chain on every 1% movement", + "title1": "My Total Balance", + "subtitle1": "Connected Account", + "title2": "Use TCAP", + "subtitle2": "Trade TCAP using Uniswap or create new supply using a vault", + "title3": "Connect Your Account", + "subtitle3": "Mint TCAP, or check your balance connecting your account", + "tcap-balance": "TCAP Balance", + "ctx-balance": "CTX Balance", + "tcap-price": "TCAP Price", + "ctx-price": "CTX Price", + "summary": { + "title": "Protocol Summary", + "staked-usd": "Total Staked USD", + "staked-eth": "Staked in ETH", + "staked-dai": "Staked in DAI", + "staked-aave": "Staked in AAVE", + "staked-link": "Staked in LINK", + "staked-matic": "Staked in MATIC", + "staked-wbtc": "Staked in WBTC", + "staked-usdc": "Staked in USDC", + "staked-uni": "Staked in UNI", + "staked-snx": "Staked in SNX", + "total-supply": "TCAP Supply" + } + }, + "vault": { + "warning": "", + "loading": "Loading Vault", + "title1": "Vaults", + "subtitle1": "Select your Collateral", + "no-connected": "No wallet connected. Please Connect your wallet to Create a Vault and approve your collateral to start minting TCAP tokens.", + "approve": "Approve Vault", + "approve-text": "Vault not approved. Please approve your collateral to start minting TCAP tokens.", + "create": "Create Vault", + "create-text": "No vault Created. Please Create a Vault and approve your collateral to start minting TCAP tokens.", + "balance-title": "{{vault}} Balance", + "ratio-title": "Vault Ratio", + "ratio-warning": "Ratio must be > {{minRatio}}% or you will be liquidated.", + "hard-mode-info": "Hard mode vaults have a minimum required ratio of 110%.", + "hard-mode-info2": "You're required to mint a minimum of 20 TCAP on hard mode.", + "collateral": { + "title": "Staked Collateral", + "add": "Add {{collateral}}", + "remove": "Remove {{collateral}}" + }, + "debt": { + "title": "Vault Debt", + "mint": "Mint TCAP", + "burn": "Burn TCAP", + "fee": "Burn Fee" + }, + "status": { + "na": "N/A", + "safe": "safe", + "warning": "warning", + "danger": "danger", + "error": "error" + }, + "errors": { + "no-collateral": "Not enough collateral on vault", + "burn-too-high": "Burn value too high", + "burn-balance-low": "Burn value is greater than your balance.", + "min-tcap": "You need to mint a minimum of 20 TCAP on hard mode.", + "min-tcap2": "Afte burning the minimum amount of debt should be 20 TCAP." + } + }, + "farming": { + "current-info": "Early adopters rewards are issued over 14 days for a total of 500,000 CTX. Assuming approximately 6500 Ethereum blocks per day over 14 days (91,000 Ethereum blocks), the per block reward would be 5.4945 CTX split across the debtors at that point in time. 100% of the reward is immediately available.", + "current-mint": "Current mint", + "current-reward": "Current Reward", + "eth-tcap-pool": "ETH/TCAP Pool", + "eth-ctx-pool": "ETH/CTX Pool", + "farming": "Farming", + "liquidity": "Liquidity Rewards", + "locked": "Locked Reward", + "locked-info": "Available to claim immediately.", + "minting": "Minting Rewards", + "token-vault": "{{token}} Vault", + "unlocked": "Unlocked Reward", + "unlocked-info": "Available to claim immediately.", + "univ3": { + "amount-claim": "Amount to claim", + "available-claim": "Available to claim", + "claim-info": "In order to claim rewards, you need to unstake your token.", + "claim-reward": "Claim Reward", + "current-reward": "Current Reward", + "current-reward-info": "Amount of CTX that it's been earn while the LP token is staked. You must unstake the LP token in order to claim the reward.", + "deposited-info": "LP token needs to be stake to earn rewards. ", + "pending-info": "LP token needs to be approved in order to be staked.", + "position": "Position", + "position-info1": "Position Min and Max price represents TCAP per WETH.", + "position-info2": "Current price is", + "staked-info": "LP token is staked and earning rewards.", + "unstaked-info": "LP token hasn't been staked or deposited.", + "out-of-range-info": "You aren't earning rewards because the price is out of your position range." + } + }, + "monitoring": { + "active-info": "Vault is minting TCAP.", + "empty-info": "There is not collateral on the vault.", + "liquidation-info": "Ratio is less than min required.", + "liquidate-vault": "Liquidate Vault", + "liquidating": "Liquidating", + "ratio": "Ratio", + "ready-info": "Vault has collateral and it is ready to mint TCAP.", + "reward": "Reward", + "reward-info": "Collateral amount in USD you are getting for liquidating the vault.", + "tcap-amount-info": "Amount of TCAP in USD you need to provide to liquidate vault.", + "net-reward": "Net Reward", + "net-reward-info1": "Actual profit in USD you earn after liquidation", + "net-reward-info2": "Net Reward = Reward - TCAP Amount - Burn Fee." + }, + "governance": { + "amount-stake": "Amount to Stake", + "amount-remove": "Amount to Remove", + "new": "New Crypt Keeper", + "respresented": "Represented", + "stake-reward": "Stake Reward", + "staked-reward": "Staked Reward", + "why-me": "Why me?", + "expertise": "Expertise", + "delegate-to": "Delegate to Keeper", + "delegating": "Delegating", + "stake-delegate": "Stake & Delegate", + "stake-info": "Stake and Delegate CTX to this Crypt Keeper. Each time you Stake and Delegate, you must wait a minimum of 7 days before you can withdraw.", + "stake-info2": "Approve delegating CTX tokens. You only have to do this once.", + "withdraw": "Withdraw", + "withdrawing": "Withdrawing", + "withdraw-info": "Remove delegated votes from this Crypt Keeper. CTX must be staked and delegated for a minimum of 7 days before you are eligible to withdraw.", + "withdraw-info2": "* Eligible to withdraw on {{date}}", + "form": { + "create": "Create Crypt Keeper", + "keeper": "Keeper eth name or address", + "name": "Name", + "why": "Why should users delegate to you?" + }, + "success": { + "title": "Crypt. Keepers", + "message": "Crypt Keeper updated" + }, + "errors": { + "creating-keeper": "Error creating keeper.", + "exists": "Crypt Keeper for this address already exists.", + "invalid-amount": "Invalid amount to withdraw", + "invalid-ens-address": "Please enter a valid eth name or address", + "invalid-twitter": "It is not a valid twitter username", + "invalid-discord": "It is not a valid discord id", + "need-to-wait": "Need to wait the minimum staking period", + "too-long": "Field is too long ({{max}} characters max)" + } + }, + "errors": { + "empty": "Field can't be empty", + "invalid-address": "Please enter a valid address", + "invalid-ens": "Please enter a valid ENS name", + "invalid-file-type": "Invalid file type.", + "invalid-image-size": "Image max size is {{size}} KB", + "less-tcap": "Tcap amount is less than required.", + "no-ctx": "Not enough CTX balance.", + "no-tcap": "Not enough TCAP balance.", + "no-funds": "Insufficient funds to stake", + "not-approve": "Token not Approved", + "tran-rejected": "Transaction rejected", + "unexpected": "Unexpected error" + } +} \ No newline at end of file diff --git a/public/locales/tr/keepers.json b/public/locales/tr/keepers.json new file mode 100644 index 00000000..ac50236e --- /dev/null +++ b/public/locales/tr/keepers.json @@ -0,0 +1,50 @@ +{ + "brajon.eth": { + "expertise": ["Development"], + "why": "I’ve been a Cryptex supporter since Nov 2020 and see the vision Joe and the team are trying to accomplish. My goal is to help this project reach its potential of creating institutional grade investment products that allow anyone to get exposure to currently nontradeable markets." + }, + "David R Jennings": { + "expertise": ["Investor"], + "why": "Here to invest with ctx long term" + }, + "DesertDwelr": { + "expertise": ["Development", "Operations"], + "why": "Like many of you in this community, my CTX/TCAP holdings are modest but my enthusiasm is not. I'd be honored to be the voice of other modest holders and help guide the future of this exciting organization. My approach will be to learn and listen.Learn about each proposal and be able to share the considerations of each option.Listen to your input and vote accordingly, even if that means going against the majority vote.\n\nA brief bio: I'm a software solution manager at a Fortune 50 company, leading my team throughout all stages of the product lifecycle. I'm a father of 3 boys, which is even more humbling.I am fascinated by crypto and the power of decentralization.I try to learn more every day.\n\nThanks for considering me! Regardless of who you select as your delegate, congratulations on staking and being part of this great community!" + }, + "dnkta.eth": { + "expertise": ["Operations"], + "why": "Take decisions in best faith for the protocol." + }, + "Huntsman": { + "expertise": ["Economics/Retail Investing"], + "why": "Huntsman is a relative newcomer to cryptocurrency investing, and while he only discovered Cryptex when it was listed on Gemini, his Cryptex journey has seen him allocate over 10% of his investment portfolio into collateralizing vaults, minting TCAP, and providing liquidity on Sushiswap. He is very excited about the potential of this DAO and its community, as well as its flagship TCAP. He is humbly asking for your delegation for those who want to place their stake with a retail everyman who can't wait for the Moon but wants to invest decades into this project to see it to its maximum potential." + }, + "indigo.eth": { + "expertise": ["Development", "Operations"], + "why": "I'm a security expert who specializes in smart contract and operational security auditing.\n\nI will vote for incentivized liquidity and staking, expansion to new projects/networks, and supporting operations that will drive adoption of TCAP." + }, + "Joshua Britt": { + "expertise": ["Development", "Operations"], + "why": "Here to make Ctx better for the future" + }, + "Leo": { + "expertise": ["Operations"], + "why": "I am a long-term crypto investor and builder. I am a big supporter of the cryptex project from the very beginning. I have promoted the project to a large Chinese crypto community with a few thousand people. I have initiated the debank.com integration and get it supported recently.\n\nI would like to represent the Chinese crypto investors in the project and continue supporting and promoting the cryptex project." + }, + "MediumArchibald": { + "expertise": ["Investigative journalist", "Freelance political/legal researcher"], + "why": "My profession is trust- and referral-based. I either present verifiable information, or I don’t get future clients." + }, + "Mr. Brightside": { + "expertise": ["Operations"], + "why": "Passionate about project, mission and vision. Multi-disciplinary background leading my own project and developments including a separate ERC-20 token." + }, + "scottie33": { + "expertise": ["Operations"], + "why": "I am super responsive, trustworthy, and support Cryptex 100%." + }, + "TheyCallMeJim": { + "expertise": ["Development", "Operations"], + "why": "Experienced crypto trader and audit analysis" + } +} \ No newline at end of file diff --git a/public/locales/tr/translation.json b/public/locales/tr/translation.json new file mode 100644 index 00000000..b63aac50 --- /dev/null +++ b/public/locales/tr/translation.json @@ -0,0 +1,230 @@ +{ + "add": "Add", + "all-vaults": "All Vaults", + "amount-tcap": "Amount of TCAP", + "approve": "Approve", + "balance": "Balance", + "balance2": "Current Balance", + "burn": "Burn", + "choose-network": "Choose Network", + "claim": "Claim", + "claiming": "Claimin", + "claim-vest":"Claim Vest", + "click-copy": "Click to Copy", + "collateral": "Collateral", + "connect": "Connect Wallet", + "contract": "Contract", + "create": "Create", + "debt": "Debt", + "deposit": "Deposit", + "deposited": "Deposited", + "description": "Description", + "exit": "Exit", + "farm": "Farm", + "history": "History", + "inactive": "Inative", + "infinite-approve": "Infinite Approve", + "max": "MAX", + "max-safe": "MAX SAFE", + "mint": "Mint", + "my-vaults": "My Vaults", + "mode": "Mode", + "last": "Last", + "loading": "Loading", + "out-of-range": "Out of range", + "pending": "Pending", + "pool": "Pool", + "stake": "Stake", + "stake2": "Amount to Stake", + "staked": "Staked", + "status": "Status", + "ready": "Ready", + "remove": "Remove", + "required-tcap": "Required TCAP", + "token": "Token", + "tokens": "Tokens", + "totals": "Totals", + "trade": "Trade", + "tran-sent": "⏰ Transaction Sent!", + "tran-confirmed": "✔️ Transaction Confirmed!", + "tran-wait": "Plz wait for the transaction confirmation.", + "tran-wait2": "All set, please wait for another confirmation", + "unstake": "Unstake", + "unstaked": "Unstaked", + "update": "Update", + "vault-warning": "⚠️ Make sure to always have a ratio above the minimum ratio to avoid getting liquidated.", + "vaults": "Vauts", + "view": "View", + "votes": "Votes", + "wait": "Please wait", + "warning": "This project is in beta. Use at your own risk.", + "welcome": { + "tcap": "Total Cryptocurrency Market Capitalization", + "tcap-token": "Total Cryptocurrency Market Capitalization Token", + "tcap-info": "Total Crypto Market Capitalization is updated on-chain on every 1% movement", + "title1": "My Total Balance", + "subtitle1": "Connected Account", + "title2": "Use TCAP", + "subtitle2": "Trade TCAP using Uniswap or create new supply using a vault", + "title3": "Connect Your Account", + "subtitle3": "Mint TCAP, or check your balance connecting your account", + "tcap-balance": "TCAP Balance", + "ctx-balance": "CTX Balance", + "tcap-price": "TCAP Price", + "ctx-price": "CTX Price", + "summary": { + "title": "Protocol Summary", + "staked-usd": "Total Staked USD", + "staked-eth": "Staked in ETH", + "staked-dai": "Staked in DAI", + "staked-aave": "Staked in AAVE", + "staked-link": "Staked in LINK", + "staked-matic": "Staked in MATIC", + "staked-wbtc": "Staked in WBTC", + "staked-usdc": "Staked in USDC", + "staked-uni": "Staked in UNI", + "staked-snx": "Staked in SNX", + "total-supply": "TCAP Supply" + } + }, + "vault": { + "warning": "", + "loading": "Loading Vault", + "title1": "Vaults", + "subtitle1": "Select your Collateral", + "no-connected": "No wallet connected. Please Connect your wallet to Create a Vault and approve your collateral to start minting TCAP tokens.", + "approve": "Approve Vault", + "approve-text": "Vault not approved. Please approve your collateral to start minting TCAP tokens.", + "create": "Create Vault", + "create-text": "No vault Created. Please Create a Vault and approve your collateral to start minting TCAP tokens.", + "balance-title": "{{vault}} Balance", + "ratio-title": "Vault Ratio", + "ratio-warning": "Ratio must be > {{minRatio}}% or you will be liquidated.", + "hard-mode-info": "Hard mode vaults have a minimum required ratio of 110%.", + "hard-mode-info2": "You're required to mint a minimum of 20 TCAP on hard mode.", + "collateral": { + "title": "Staked Collateral", + "add": "Add {{collateral}}", + "remove": "Remove {{collateral}}" + }, + "debt": { + "title": "Vault Debt", + "mint": "Mint TCAP", + "burn": "Burn TCAP", + "fee": "Burn Fee" + }, + "status": { + "na": "N/A", + "safe": "safe", + "warning": "warning", + "danger": "danger", + "error": "error" + }, + "errors": { + "no-collateral": "Not enough collateral on vault", + "burn-too-high": "Burn value too high", + "burn-balance-low": "Burn value is greater than your balance.", + "min-tcap": "You need to mint a minimum of 20 TCAP on hard mode.", + "min-tcap2": "Afte burning the minimum amount of debt should be 20 TCAP." + } + }, + "farming": { + "current-info": "Early adopters rewards are issued over 14 days for a total of 500,000 CTX. Assuming approximately 6500 Ethereum blocks per day over 14 days (91,000 Ethereum blocks), the per block reward would be 5.4945 CTX split across the debtors at that point in time. 100% of the reward is immediately available.", + "current-mint": "Current mint", + "current-reward": "Current Reward", + "eth-tcap-pool": "ETH/TCAP Pool", + "eth-ctx-pool": "ETH/CTX Pool", + "farming": "Farming", + "liquidity": "Liquidity Rewards", + "locked": "Locked Reward", + "locked-info": "Available to claim immediately.", + "minting": "Minting Rewards", + "token-vault": "{{token}} Vault", + "unlocked": "Unlocked Reward", + "unlocked-info": "Available to claim immediately.", + "univ3": { + "amount-claim": "Amount to claim", + "available-claim": "Available to claim", + "claim-info": "In order to claim rewards, you need to unstake your token.", + "claim-reward": "Claim Reward", + "current-reward": "Current Reward", + "current-reward-info": "Amount of CTX that it's been earn while the LP token is staked. You must unstake the LP token in order to claim the reward.", + "deposited-info": "LP token needs to be stake to earn rewards. ", + "pending-info": "LP token needs to be approved in order to be staked.", + "position": "Position", + "position-info1": "Position Min and Max price represents TCAP per WETH.", + "position-info2": "Current price is", + "staked-info": "LP token is staked and earning rewards.", + "unstaked-info": "LP token hasn't been staked or deposited.", + "out-of-range-info": "You aren't earning rewards because the price is out of your position range." + } + }, + "monitoring": { + "active-info": "Vault is minting TCAP.", + "empty-info": "There is not collateral on the vault.", + "liquidation-info": "Ratio is less than min required.", + "liquidate-vault": "Liquidate Vault", + "liquidating": "Liquidating", + "ratio": "Ratio", + "ready-info": "Vault has collateral and it is ready to mint TCAP.", + "reward": "Reward", + "reward-info": "Collateral amount in USD you are getting for liquidating the vault.", + "tcap-amount-info": "Amount of TCAP in USD you need to provide to liquidate vault.", + "net-reward": "Net Reward", + "net-reward-info1": "Actual profit in USD you earn after liquidation", + "net-reward-info2": "Net Reward = Reward - TCAP Amount - Burn Fee." + }, + "governance": { + "amount-stake": "Amount to Stake", + "amount-remove": "Amount to Remove", + "new": "New Crypt Keeper", + "respresented": "Represented", + "stake-reward": "Stake Reward", + "staked-reward": "Staked Reward", + "why-me": "Why me?", + "expertise": "Expertise", + "delegate-to": "Delegate to Keeper", + "delegating": "Delegating", + "stake-delegate": "Stake & Delegate", + "stake-info": "Stake and Delegate CTX to this Crypt Keeper. Each time you Stake and Delegate, you must wait a minimum of 7 days before you can withdraw.", + "stake-info2": "Approve delegating CTX tokens. You only have to do this once.", + "withdraw": "Withdraw", + "withdrawing": "Withdrawing", + "withdraw-info": "Remove delegated votes from this Crypt Keeper. CTX must be staked and delegated for a minimum of 7 days before you are eligible to withdraw.", + "withdraw-info2": "* Eligible to withdraw on {{date}}", + "form": { + "create": "Create Crypt Keeper", + "keeper": "Keeper eth name or address", + "name": "Name", + "why": "Why should users delegate to you?" + }, + "success": { + "title": "Crypt. Keepers", + "message": "Crypt Keeper updated" + }, + "errors": { + "creating-keeper": "Error creating keeper.", + "exists": "Crypt Keeper for this address already exists.", + "invalid-amount": "Invalid amount to withdraw", + "invalid-ens-address": "Please enter a valid eth name or address", + "invalid-twitter": "It is not a valid twitter username", + "invalid-discord": "It is not a valid discord id", + "need-to-wait": "Need to wait the minimum staking period", + "too-long": "Field is too long ({{max}} characters max)" + } + }, + "errors": { + "empty": "Field can't be empty", + "invalid-address": "Please enter a valid address", + "invalid-ens": "Please enter a valid ENS name", + "invalid-file-type": "Invalid file type.", + "invalid-image-size": "Image max size is {{size}} KB", + "less-tcap": "Tcap amount is less than required.", + "no-ctx": "Not enough CTX balance.", + "no-tcap": "Not enough TCAP balance.", + "no-funds": "Insufficient funds to stake", + "not-approve": "Token not Approved", + "tran-rejected": "Transaction rejected", + "unexpected": "Unexpected error" + } +} \ No newline at end of file diff --git a/public/locales/zh/keepers.json b/public/locales/zh/keepers.json new file mode 100644 index 00000000..ac50236e --- /dev/null +++ b/public/locales/zh/keepers.json @@ -0,0 +1,50 @@ +{ + "brajon.eth": { + "expertise": ["Development"], + "why": "I’ve been a Cryptex supporter since Nov 2020 and see the vision Joe and the team are trying to accomplish. My goal is to help this project reach its potential of creating institutional grade investment products that allow anyone to get exposure to currently nontradeable markets." + }, + "David R Jennings": { + "expertise": ["Investor"], + "why": "Here to invest with ctx long term" + }, + "DesertDwelr": { + "expertise": ["Development", "Operations"], + "why": "Like many of you in this community, my CTX/TCAP holdings are modest but my enthusiasm is not. I'd be honored to be the voice of other modest holders and help guide the future of this exciting organization. My approach will be to learn and listen.Learn about each proposal and be able to share the considerations of each option.Listen to your input and vote accordingly, even if that means going against the majority vote.\n\nA brief bio: I'm a software solution manager at a Fortune 50 company, leading my team throughout all stages of the product lifecycle. I'm a father of 3 boys, which is even more humbling.I am fascinated by crypto and the power of decentralization.I try to learn more every day.\n\nThanks for considering me! Regardless of who you select as your delegate, congratulations on staking and being part of this great community!" + }, + "dnkta.eth": { + "expertise": ["Operations"], + "why": "Take decisions in best faith for the protocol." + }, + "Huntsman": { + "expertise": ["Economics/Retail Investing"], + "why": "Huntsman is a relative newcomer to cryptocurrency investing, and while he only discovered Cryptex when it was listed on Gemini, his Cryptex journey has seen him allocate over 10% of his investment portfolio into collateralizing vaults, minting TCAP, and providing liquidity on Sushiswap. He is very excited about the potential of this DAO and its community, as well as its flagship TCAP. He is humbly asking for your delegation for those who want to place their stake with a retail everyman who can't wait for the Moon but wants to invest decades into this project to see it to its maximum potential." + }, + "indigo.eth": { + "expertise": ["Development", "Operations"], + "why": "I'm a security expert who specializes in smart contract and operational security auditing.\n\nI will vote for incentivized liquidity and staking, expansion to new projects/networks, and supporting operations that will drive adoption of TCAP." + }, + "Joshua Britt": { + "expertise": ["Development", "Operations"], + "why": "Here to make Ctx better for the future" + }, + "Leo": { + "expertise": ["Operations"], + "why": "I am a long-term crypto investor and builder. I am a big supporter of the cryptex project from the very beginning. I have promoted the project to a large Chinese crypto community with a few thousand people. I have initiated the debank.com integration and get it supported recently.\n\nI would like to represent the Chinese crypto investors in the project and continue supporting and promoting the cryptex project." + }, + "MediumArchibald": { + "expertise": ["Investigative journalist", "Freelance political/legal researcher"], + "why": "My profession is trust- and referral-based. I either present verifiable information, or I don’t get future clients." + }, + "Mr. Brightside": { + "expertise": ["Operations"], + "why": "Passionate about project, mission and vision. Multi-disciplinary background leading my own project and developments including a separate ERC-20 token." + }, + "scottie33": { + "expertise": ["Operations"], + "why": "I am super responsive, trustworthy, and support Cryptex 100%." + }, + "TheyCallMeJim": { + "expertise": ["Development", "Operations"], + "why": "Experienced crypto trader and audit analysis" + } +} \ No newline at end of file diff --git a/public/locales/zh/translation.json b/public/locales/zh/translation.json new file mode 100644 index 00000000..2b0ce798 --- /dev/null +++ b/public/locales/zh/translation.json @@ -0,0 +1,205 @@ +{ + "balance": "余额", + "balance2": "当前余额", + "choose-network": "选择网络", + "claim": "认领", + "claim-vest":"Claim Vest", + "click-copy": "点击复制", + "connect": "连接", + "contract": "合约", + "create": "创建", + "description": "描述", + "exit": "退出", + "farm": "农场", + "history": "历史", + "inactive": "未激活", + "infinite-approve": "无限授权", + "max": "最大", + "max-safe": "最大安全", + "mint": "铸造", + "last": "最后", + "loading": "加载中", + "pool": "池", + "stake": "抵押", + "stake2": "抵押数量", + "staked": "已抵押", + "token": "代币", + "tokens": "代币", + "trade": "交易", + "tran-sent": "⏰ 交易已发送!", + "tran-confirmed": "✔️ 交易已确认!", + "tran-wait": "请等待交易确认。", + "tran-wait2": "一切就绪,请等待另一次确认。", + "update": "更新", + "vault-warning": "⚠️ 确保始终有一个高于最低比率的比率,以避免被清算。", + "votes": "投票", + "wait": "请等待", + "warning": "This project is in beta. Use at your own risk.", + "welcome": { + "tcap": "加密货币总市值", + "tcap-token": "加密货币总市值代币", + "tcap-info": "加密货币总市值每移动1%就会在链上更新", + "title1": "我的总余额", + "subtitle1": "连接的账户", + "title2": "使用TCAP", + "subtitle2": "使用SushiSwap交易TCAP或使用保险库创建新的供应量", + "title3": "连接您的账户", + "subtitle3": "铸造TCAP,或检查你的余额连接你的账户", + "tcap-balance": "TCAP余额", + "tcap-price": "TCAP Price", + "ctx-balance": "CTX余额", + "summary": { + "title": "Protocol Summary", + "staked-usd": "Total Staked USD", + "staked-eth": "Staked in ETH", + "staked-dai": "Staked in DAI", + "staked-aave": "Staked in AAVE", + "staked-link": "Staked in LINK", + "staked-matic": "Staked in MATIC", + "staked-wbtc": "Staked in WBTC", + "staked-usdc": "Staked in USDC", + "staked-uni": "Staked in UNI", + "staked-snx": "Staked in SNX", + "total-supply": "TCAP Supply" + } + }, + "vault": { + "warning": "警告", + "loading": "加载保险库", + "title1": "保险库", + "subtitle1": "选择你的抵押品", + "no-connected": "没有连接钱包。请连接您的钱包,创建一个保险库,并批准您的抵押品,开始铸造TCAP代币。", + "approve": "批准保险库", + "approve-text": "保险库未获批准。请批准你的抵押品以开始铸造TCAP代币。", + "create": "创建保险库", + "create-text": "没有创建保险库。请创建一个保险库并批准你的抵押品,以开始铸造TCAP代币。", + "balance-title": "{{vault}} 余额", + "ratio-title": "保险库比率", + "ratio-warning": "比率必须大于 {{minRatio}}% 以避免被清算。", + "hard-mode-info": "Hard mode vaults have a minimum required ratio of 110%.", + "hard-mode-info2": "You're required to mint a minimum of 20 TCAP on hard mode.", + "collateral": { + "title": "抵押担保品", + "add": "添加抵押品", + "remove": "删除抵押品" + }, + "debt": { + "title": "保险库债务", + "mint": "铸造TCAP", + "burn": "销毁TCAP", + "fee": "销毁费用" + }, + "status": { + "na": "不适用", + "safe": "安全", + "warning": "警告", + "danger": "危险", + "error": "错误" + }, + "errors": { + "no-collateral": "保险库没有足够的抵押品", + "burn-too-high": "销毁值太高", + "burn-balance-low": "Burn value is greater than your balance.", + "min-tcap": "You need to mint a minimum of 20 TCAP on hard mode.", + "min-tcap2": "Afte burning the minimum amount of debt should be 20 TCAP." + } + }, + "farming": { + "current-info": "早期采用者的奖励在14天内发放,共计500,000 CTX。假设14天内每天大约6500个以太坊区块(91,000个以太坊区块),每个区块的奖励将是5.4945 CTX,分给当时的债务人。100%的奖励是立即可用的。", + "current-mint": "当前铸造", + "current-reward": "当前奖励", + "eth-tcap-pool": "ETH/TCAP Pool", + "eth-ctx-pool": "ETH/CTX Pool", + "farming": "挖矿", + "liquidity": "流动性奖励", + "locked": "锁定的奖赏", + "locked-info": "奖励在池子开始6个月后解锁。", + "minting": "铸币奖励", + "unlocked": "解锁的奖励", + "unlocked-info": "可立即领取。", + "token-vault": "{{token}} Vault", + "univ3": { + "amount-claim": "Amount to claim", + "available-claim": "Available to claim", + "claim-info": "In order to claim rewards, you need to unstake your token.", + "claim-reward": "Claim Reward", + "current-reward": "Current Reward", + "current-reward-info": "Amount of CTX that it's been earn while the LP token is staked. You must unstake the LP token in order to claim the reward.", + "deposited-info": "LP token needs to be stake to earn rewards. ", + "pending-info": "LP token needs to be approved in order to be staked.", + "position": "Position", + "position-info1": "Position Min and Max price represents TCAP per WETH.", + "position-info2": "Current price is", + "staked-info": "LP token is staked and earning rewards.", + "unstaked-info": "LP token hasn't been staked or deposited.", + "out-of-range-info": "You aren't earning rewards because the price is out of your position range." + } + }, + "monitoring": { + "active-info": "Vault is minting TCAP.", + "empty-info": "There is not collateral on the vault.", + "liquidation-info": "Ratio is less than min required.", + "liquidate-vault": "Liquidate Vault", + "liquidating": "Liquidating", + "ratio": "Ratio", + "ready-info": "Vault has collateral and it is ready to mint TCAP.", + "reward": "Reward", + "reward-info": "Collateral amount in USD you are getting for liquidating the vault.", + "tcap-amount-info": "Amount of TCAP in USD you need to provide to liquidate vault.", + "net-reward": "Net Reward", + "net-reward-info1": "Actual profit in USD you earn after liquidation", + "net-reward-info2": "Net Reward = Reward - TCAP Amount - Burn Fee." + }, + "governance": { + "amount-stake": "质押金额", + "amount-remove": "移除质押金额", + "new": "新的治理代表", + "respresented": "代表", + "stake-reward": "质押奖励", + "staked-reward": "已质押奖励", + "why-me": "为什么是我?", + "expertise": "专业知识", + "delegate-to": "委托给治理代表", + "delegating": "授权", + "stake-delegate": "质押并委托", + "stake-info": "质押并委托CTX给这个代表。每次质押并委托,你必须等待至少7天后才能提款。", + "stake-info2": "批准委托CTX代币。你只需这样做一次。", + "withdraw": "提取", + "withdrawing": "提取", + "withdraw-info": "移除该代表的委托票。CTX必须被押注和委托至少7天才有资格退出。", + "withdraw-info2": "* 有资格在以下时间退出 {{date}}", + "form": { + "create": "创建Cryptex的治理代表", + "keeper": "代表人的以太坊域名或者地址", + "name": "姓名" + }, + "success": { + "title": "治理代表", + "message": "治理代表已更新" + }, + "errors": { + "creating-keeper": "创建治理代表时出错。", + "exists": "该地址的治理代表已经存在。", + "invalid-amount": "无效的提款金额", + "invalid-ens-address": "请输入一个有效的以太域名或地址", + "invalid-twitter": "这不是一个有效的Twitter用户名", + "invalid-discord": "这不是一个有效的Discord ID", + "need-to-wait": "需要等待最短的质押时间", + "too-long": "字段太长。最长 ({{max}} 字符。)" + } + }, + "errors": { + "empty": "字段不能为空", + "invalid-address": "请输入一个有效的地址", + "invalid-ens": "请输入一个有效的ENS名称", + "invalid-file-type": "无效的文件类型。", + "invalid-image-size": "图像的最大尺寸是 {{size}} KB", + "less-tcap": "Tcap amount is less than required.", + "not-approve": "未批准的代币", + "no-ctx": "没有足够的CTX余额。", + "no-funds": "没有足够的资金质押", + "no-tcap": "Not enough TCAP balance.", + "tran-rejected": "交易被拒绝", + "unexpected": "意外的错误" + } +} diff --git a/src/App.tsx b/src/App.tsx index 83325919..908d43bd 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,47 +1,56 @@ /* eslint-disable prefer-destructuring */ -import React, { useState, useContext, useEffect } from "react"; -import { Switch, Route, useRouteMatch, useLocation } from "react-router-dom"; +import React, { Suspense, useState, useEffect } from "react"; +import { Switch, Route, useRouteMatch } from "react-router-dom"; import { ethers } from "ethers"; import { Provider, Contract, setMulticallAddress } from "ethers-multicall"; import { ToastContainer } from "react-toastify"; import { ApolloProvider, ApolloClient, InMemoryCache } from "@apollo/client"; +import { createWeb3Modal } from '@web3modal/ethers5/react' +import { useWeb3ModalProvider, useWeb3ModalAccount } from '@web3modal/ethers5/react' + +import "./i18n"; import "react-toastify/dist/ReactToastify.css"; import "./styles/toast.scss"; import { useSwipeable } from "react-swipeable"; import { useMediaQuery } from "@react-hook/media-query"; import Container from "react-bootstrap/esm/Container"; -import Alert from "react-bootstrap/esm/Alert"; import Header from "./components/Header"; import Sidebar from "./components/Sidebar"; import Topbar from "./components/Topbar"; -import Wrapper from "./components/Welcome/index"; -import Graph from "./components/Graph"; -import Vault from "./components/Vault/Vault"; -import Pool from "./components/Pool"; +import SummaryPage from "./components/Summary/index"; +import Vaults from "./components/Vaults"; import Delegators from "./components/Governance/Delegators"; +import MushroomNft from "./components/SewageFruitz"; import Loading from "./components/Loading"; import Farm from "./components/Farm"; -import { useSigner } from "./hooks/useSigner"; -import { useNetworks } from "./hooks/useNetworks"; -import { useVaults } from "./hooks/useVaults"; -import { useTokens } from "./hooks/useTokens"; -import { useOracles } from "./hooks/useOracles"; -import { useGovernance } from "./hooks/useGovernance"; -import { useRewards } from "./hooks/useRewards"; -import signerContext from "./state/SignerContext"; -import NetworkContext from "./state/NetworkContext"; -import vaultsContext from "./state/VaultsContext"; -import tokensContext from "./state/TokensContext"; -import oraclesContext from "./state/OraclesContext"; -import governanceContext from "./state/GovernanceContext"; -import rewardsContext from "./state/RewardsContext"; -import { Web3ModalContext } from "./state/Web3ModalContext"; +import { Warnings } from "./components/Warnings/index"; +import * as hooks from "./hooks"; +import { + governanceContext, + hardVaultsContext, + mushroomNftContext, + networkContext, + oraclesContext, + rewardsContext, + signerContext, + tokensContext, + vaultsContext, +} from "./state"; import cryptexJson from "./contracts/cryptex.json"; import ERC20 from "./contracts/ERC20.json"; import WETH from "./contracts/WETH.json"; import UniV2Pair from "./contracts/UniswapV2Pair.json"; -import { isValidNetwork, getDefaultProvider, toFragment } from "./utils/utils"; +import Mushroom from "./contracts/Mushroom.json"; +import { + isInLayer1, + isValidNetwork, + getDefaultProvider, + toFragment, + isArbitrum, + isGoerli, +} from "./utils/utils"; import { GRAPHQL_ENDPOINT, NETWORKS } from "./utils/constants"; +import { arbitrum, mainnet, walletIds, web3ModalEthersConfig } from "./utils/web3ModalConfig"; const clientOracle = (graphqlEndpoint: string) => new ApolloClient({ @@ -49,67 +58,98 @@ const clientOracle = (graphqlEndpoint: string) => cache: new InMemoryCache(), }); + +const projectId = process.env.REACT_APP_WALLET_CONNECT_ID || ""; + +createWeb3Modal({ + ethersConfig: web3ModalEthersConfig, + chains: [mainnet, arbitrum], + projectId, + themeMode: 'dark', + featuredWalletIds: walletIds, + themeVariables: { + '--w3m-font-family': "Nineteen Ninety Seven", + '--w3m-accent': "#1d1d3c", + '--w3m-color-mix': "#212138", + '--w3m-color-mix-strength': 10, + '--w3m-font-size-master': "11px", + '--w3m-border-radius-master': "5", + } +}) + + const App = () => { - const signer = useSigner(); - const web3Modal = useContext(Web3ModalContext); - const [isLoading, setLoading] = useState(false); + const signer = hooks.useSigner(); + const [isLoadingContracts, setLoadingContracts] = useState(false); const [invalidNetwork, setInvalidNetwork] = useState(false); - const [show, setShow] = useState(true); - const [vaultWarning, setVaultWarning] = useState(true); const isMobile = useMediaQuery("only screen and (max-width: 600px)"); const [showSidebar, setShowSidebar] = useState(true); const [apolloClient, setApolloClient] = useState( clientOracle( - process.env.REACT_APP_NETWORK_ID === "1" ? GRAPHQL_ENDPOINT.mainnet : GRAPHQL_ENDPOINT.rinkeby + process.env.REACT_APP_NETWORK_ID === "1" ? GRAPHQL_ENDPOINT.mainnet : GRAPHQL_ENDPOINT.goerli ) ); - const networks = useNetworks(); + const { chainId: walletChainId, isConnected } = useWeb3ModalAccount() + const { walletProvider } = useWeb3ModalProvider() + + const networks = hooks.useNetworks(); const [currentSignerAddress, setCurrentSignerAddress] = useState(""); - const vaults = useVaults(); - const tokens = useTokens(); - const oracles = useOracles(); - const governance = useGovernance(); - const rewards = useRewards(); + const vaults = hooks.useVaults(); + const hardVaults = hooks.useHardVaults(); + const tokens = hooks.useTokens(); + const oracles = hooks.useOracles(); + const governance = hooks.useGovernance(); + const rewards = hooks.useRewards(); + const mushroomNft = hooks.useMushroomNft(); const match = useRouteMatch(); - const location = useLocation(); - setMulticallAddress(NETWORKS.okovan.chainId, "0x4EFBb8983D5C18A8b6B5084D936B7D12A0BEe2c9"); + setMulticallAddress(NETWORKS.arbitrum.chainId, "0x842eC2c7D803033Edf55E478F461FC547Bc54EB2"); + setMulticallAddress( + NETWORKS.arbitrum_goerli.chainId, + "0x108B25170319f38DbED14cA9716C54E5D1FF4623" + ); - const setCurrentNetwork = (networkId: number, walletName: string) => { + const setCurrentNetwork = (networkId: number, walletName: string, isBrowserWallet: boolean) => { let cNetwork; switch (networkId) { - case 1: + case NETWORKS.mainnet.chainId: cNetwork = NETWORKS.mainnet; setApolloClient(clientOracle(GRAPHQL_ENDPOINT.mainnet)); break; - case 4: - cNetwork = NETWORKS.rinkeby; - setApolloClient(clientOracle(GRAPHQL_ENDPOINT.rinkeby)); - break; - case 69: - cNetwork = NETWORKS.okovan; - setApolloClient(clientOracle(GRAPHQL_ENDPOINT.okovan)); - break; - case 137: - cNetwork = NETWORKS.polygon; - setApolloClient(clientOracle(GRAPHQL_ENDPOINT.polygon)); + case NETWORKS.arbitrum.chainId: + cNetwork = NETWORKS.arbitrum; + setApolloClient(clientOracle(GRAPHQL_ENDPOINT.arbitrum)); break; default: - cNetwork = NETWORKS.rinkeby; - setApolloClient(clientOracle(GRAPHQL_ENDPOINT.rinkeby)); + cNetwork = NETWORKS.mainnet; + setApolloClient(clientOracle(GRAPHQL_ENDPOINT.mainnet)); break; } networks.setCurrentChainId(networkId); networks.setCurrentName(cNetwork.name); - networks.setCurrentWETHAddress(cNetwork.weth); networks.setCurrentDAIAddress(cNetwork.dai); + networks.setCurrentIsBrowserWallet(isBrowserWallet); if (walletName !== "") networks.setCurrentWallet(walletName); }; + const setMushroomContracts = async (chainId: number, currentSigner: ethers.Signer) => { + let mushroomNftAddress = NETWORKS.mainnet.mushroomNft; + if (isGoerli(chainId)) { + mushroomNftAddress = NETWORKS.goerli.mushroomNft; + } + + // Set Mushroom contracts + const currentMushroomNft = new ethers.Contract(mushroomNftAddress, Mushroom.abi, currentSigner); + mushroomNft.setCurrentMushroomNft(currentMushroomNft); + + const currentMushroomNftRead = new Contract(mushroomNftAddress, Mushroom.abi); + mushroomNft.setCurrentMushroomNftRead(currentMushroomNftRead); + }; + const setEthereumContracts = async (chainId: number, currentSigner: ethers.Signer) => { let contracts; - let ethPoolAddress = NETWORKS.rinkeby.ethPool; - let daiPoolAddress = NETWORKS.rinkeby.daiPool; - let ctxPoolAddress = NETWORKS.rinkeby.ctxPool; + let ethPoolAddress; + let daiPoolAddress; + let ctxPoolAddress; switch (chainId) { case 1: contracts = cryptexJson[1].mainnet.contracts; @@ -117,11 +157,14 @@ const App = () => { daiPoolAddress = NETWORKS.mainnet.daiPool; ctxPoolAddress = NETWORKS.mainnet.ctxPool; break; - case 4: - contracts = cryptexJson[4].rinkeby.contracts; + case 5: + contracts = cryptexJson[5].goerli.contracts; break; default: - contracts = cryptexJson[4].rinkeby.contracts; + contracts = cryptexJson[1].mainnet.contracts; + ethPoolAddress = NETWORKS.mainnet.ethPool; + daiPoolAddress = NETWORKS.mainnet.daiPool; + ctxPoolAddress = NETWORKS.mainnet.ctxPool; break; } @@ -132,22 +175,67 @@ const App = () => { currentSigner ); vaults.setCurrentAAVEVault(currentAAVEVault); - const currentLINKVault = new ethers.Contract( - contracts.LinkVaultHandler.address, - contracts.LinkVaultHandler.abi, + const currentHardWETHVault = new ethers.Contract( + contracts.HardWETHVaultHandler.address, + contracts.HardWETHVaultHandler.abi, currentSigner ); - vaults.setCurrentLINKVault(currentLINKVault); + hardVaults.setCurrentWETHVault(currentHardWETHVault); + const currentWBTCVault = new ethers.Contract( + contracts.WBTCVaultHandler.address, + contracts.WBTCVaultHandler.abi, + currentSigner + ); + vaults.setCurrentWBTCVault(currentWBTCVault); + const currentHardDAIVault = new ethers.Contract( + contracts.HardDaiVaultHandler.address, + contracts.HardDaiVaultHandler.abi, + currentSigner + ); + hardVaults.setCurrentDAIVault(currentHardDAIVault); + const currentHardUSDCVault = new ethers.Contract( + contracts.HardUSDCVaultHandler.address, + contracts.HardUSDCVaultHandler.abi, + currentSigner + ); + hardVaults.setCurrentUSDCVault(currentHardUSDCVault); + const currentHardWBTCVault = new ethers.Contract( + contracts.HardWBTCVaultHandler.address, + contracts.HardWBTCVaultHandler.abi, + currentSigner + ); + hardVaults.setCurrentWBTCVault(currentHardWBTCVault); + const currentAVEEVaultRead = new Contract( contracts.AaveVaultHandler.address, contracts.AaveVaultHandler.abi ); vaults.setCurrentAAVEVaultRead(currentAVEEVaultRead); - const currentLINKVaultRead = new Contract( - contracts.LinkVaultHandler.address, - contracts.LinkVaultHandler.abi + const currentHardWETHVaultRead = new Contract( + contracts.HardWETHVaultHandler.address, + toFragment(contracts.HardWETHVaultHandler.abi) ); - vaults.setCurrentLINKVaultRead(currentLINKVaultRead); + hardVaults.setCurrentWETHVaultRead(currentHardWETHVaultRead); + const currentWBTCVaultRead = new Contract( + contracts.WBTCVaultHandler.address, + contracts.WBTCVaultHandler.abi + ); + vaults.setCurrentWBTCVaultRead(currentWBTCVaultRead); + const currentHardDAIVaultRead = new Contract( + contracts.HardDaiVaultHandler.address, + toFragment(contracts.HardDaiVaultHandler.abi) + ); + hardVaults.setCurrentDAIVaultRead(currentHardDAIVaultRead); + const currentHardUSDCVaultRead = new Contract( + contracts.HardUSDCVaultHandler.address, + toFragment(contracts.HardUSDCVaultHandler.abi) + ); + hardVaults.setCurrentUSDCVaultRead(currentHardUSDCVaultRead); + const currentHardWBTCVaultRead = new Contract( + contracts.HardWBTCVaultHandler.address, + toFragment(contracts.HardWBTCVaultHandler.abi) + ); + hardVaults.setCurrentWBTCVaultRead(currentHardWBTCVaultRead); // Tokens const currentAAVEToken = new ethers.Contract( @@ -156,17 +244,59 @@ const App = () => { currentSigner ); tokens.setCurrentAAVEToken(currentAAVEToken); - const currentLINKToken = new ethers.Contract( - contracts.LINK.address, - contracts.LINK.abi, + const currentWBTCToken = new ethers.Contract( + contracts.WBTC.address, + contracts.WBTC.abi, currentSigner ); - tokens.setCurrentLINKToken(currentLINKToken); + tokens.setCurrentWBTCToken(currentWBTCToken); + const currentUSDCToken = new ethers.Contract( + contracts.USDC.address, + contracts.USDC.abi, + currentSigner + ); + tokens.setCurrentUSDCToken(currentUSDCToken); const currentAAVETokenRead = new Contract(contracts.AAVE.address, contracts.AAVE.abi); tokens.setCurrentAAVETokenRead(currentAAVETokenRead); - const currentLINKTokenRead = new Contract(contracts.LINK.address, contracts.LINK.abi); - tokens.setCurrentLINKTokenRead(currentLINKTokenRead); + const currentWBTCTokenRead = new Contract(contracts.WBTC.address, ERC20.abi); + tokens.setCurrentWBTCTokenRead(currentWBTCTokenRead); + const currentUSDCTokenRead = new Contract(contracts.USDC.address, contracts.USDC.abi); + tokens.setCurrentUSDCTokenRead(currentUSDCTokenRead); + + // Set Rewards + const currentWETHReward = new ethers.Contract( + // @ts-ignore + contracts.WETHRewardHandler.address, + // @ts-ignore + contracts.WETHRewardHandler.abi, + currentSigner + ); + rewards.setCurrentWETHReward(currentWETHReward); + const currentDAIReward = new ethers.Contract( + // @ts-ignore + contracts.DAIRewardHandler.address, + // @ts-ignore + contracts.DAIRewardHandler.abi, + currentSigner + ); + rewards.setCurrentDAIReward(currentDAIReward); + + const currentWETHRewardRead = new Contract( + // @ts-ignore + contracts.WETHRewardHandler.address, + // @ts-ignore + contracts.WETHRewardHandler.abi + ); + rewards.setCurrentWETHRewardRead(currentWETHRewardRead); + + const currentDAIRewardRead = new Contract( + // @ts-ignore + contracts.DAIRewardHandler.address, + // @ts-ignore + contracts.DAIRewardHandler.abi + ); + rewards.setCurrentDAIRewardRead(currentDAIRewardRead); // Set Liquidity Rewards const currentWETHPoolReward = new ethers.Contract( @@ -203,22 +333,33 @@ const App = () => { currentSigner ); oracles.setCurrentAAVEOracle(currentAAVEOracle); - const currentLINKOracle = new ethers.Contract( - contracts.LinkOracle.address, - contracts.LinkOracle.abi, + const currentWBTCOracle = new ethers.Contract( + contracts.WBTCOracle.address, + contracts.WBTCOracle.abi, currentSigner ); - oracles.setCurrentLINKOracle(currentLINKOracle); + oracles.setCurrentWBTCOracle(currentWBTCOracle); + const currentUSDCOracle = new ethers.Contract( + contracts.USDCOracle.address, + contracts.USDCOracle.abi, + currentSigner + ); + oracles.setCurrentUSDCOracle(currentUSDCOracle); const currentAAVEOracleRead = new Contract( contracts.AaveOracle.address, contracts.AaveOracle.abi ); oracles.setCurrentAAVEOracleRead(currentAAVEOracleRead); - const currentLINKOracleRead = new Contract( - contracts.LinkOracle.address, - contracts.LinkOracle.abi + const currentWBTCOracleRead = new Contract( + contracts.WBTCOracle.address, + contracts.WBTCOracle.abi ); - oracles.setCurrentLINKOracleRead(currentLINKOracleRead); + oracles.setCurrentWBTCOracleRead(currentWBTCOracleRead); + const currentUSDCOracleRead = new Contract( + contracts.USDCOracle.address, + contracts.USDCOracle.abi + ); + oracles.setCurrentUSDCOracleRead(currentUSDCOracleRead); // Set Governance const currentDelegatorFactory = new ethers.Contract( @@ -256,42 +397,154 @@ const App = () => { const currentDAIPoolToken = new ethers.Contract(daiPoolAddress, UniV2Pair.abi, currentSigner); tokens.setCurrentDAIPoolToken(currentDAIPoolToken); } + + // Set Governance + // @ts-ignore + const currentCtx = new ethers.Contract(contracts.Ctx.address, contracts.Ctx.abi, currentSigner); + tokens.setCurrentCtxToken(currentCtx); + const currentGovernorAlpha = new ethers.Contract( + // @ts-ignore + contracts.GovernorAlpha.address, + // @ts-ignore + contracts.GovernorAlpha.abi, + currentSigner + ); + governance.setCurrentGovernorAlpha(currentGovernorAlpha); + const currentTimelock = new ethers.Contract( + // @ts-ignore + contracts.Timelock.address, + // @ts-ignore + contracts.Timelock.abi, + currentSigner + ); + governance.setCurrentTimelock(currentTimelock); + // @ts-ignore + const currentCtxRead = new Contract(contracts.Ctx.address, contracts.Ctx.abi); + tokens.setCurrentCtxTokenRead(currentCtxRead); + + const currentGovernorAlphaRead = new Contract( + // @ts-ignore + contracts.GovernorAlpha.address, + // @ts-ignore + contracts.GovernorAlpha.abi + ); + governance.setCurrentGovernorAlphaRead(currentGovernorAlphaRead); + const currentTimelockRead = new Contract( + // @ts-ignore + contracts.Timelock.address, + // @ts-ignore + toFragment(contracts.Timelock.abi) + ); + governance.setCurrentTimelockRead(currentTimelockRead); + await setMushroomContracts(chainId, currentSigner); }; - const setPolygonContracts = async (currentSigner: ethers.Signer) => { - const contracts = cryptexJson[137].polygon.contracts; + const setArbitrumContracts = async ( + chainId: number, + currentSigner: ethers.Signer, + ethcallProvider: Provider + ) => { + await ethcallProvider.init(); + signer.setCurrentEthcallProvider(ethcallProvider); + let contracts; + let wethAddress; + let daiAddress; + + switch (chainId) { + case NETWORKS.arbitrum.chainId: + contracts = cryptexJson[42161].arbitrum.contracts; + wethAddress = NETWORKS.arbitrum.weth; + daiAddress = NETWORKS.arbitrum.dai; + break; + case NETWORKS.arbitrum_goerli.chainId: + contracts = cryptexJson[421613].arbitrum_goerli.contracts; + wethAddress = NETWORKS.arbitrum_goerli.weth; + daiAddress = NETWORKS.arbitrum_goerli.dai; + break; + default: + contracts = cryptexJson[42161].arbitrum.contracts; + wethAddress = NETWORKS.arbitrum.weth; + daiAddress = NETWORKS.arbitrum.dai; + break; + } // Set Vaults - const currentMaticVault = new ethers.Contract( - contracts.MATICVaultHandler.address, - contracts.MATICVaultHandler.abi, + const currentWETHVault = new ethers.Contract( + contracts.WETHVaultHandler.address, + contracts.WETHVaultHandler.abi, currentSigner ); - vaults.setCurrentMaticVault(currentMaticVault); + vaults.setCurrentWETHVault(currentWETHVault); + const currentDAIVault = new ethers.Contract( + contracts.DAIVaultHandler.address, + contracts.DAIVaultHandler.abi, + currentSigner + ); + vaults.setCurrentDAIVault(currentDAIVault); - const currentMATICVaultRead = new Contract( - contracts.MATICVaultHandler.address, - toFragment(contracts.MATICVaultHandler.abi) + const currentWETHVaultRead = new Contract( + contracts.WETHVaultHandler.address, + toFragment(contracts.WETHVaultHandler.abi) + ); + vaults.setCurrentWETHVaultRead(currentWETHVaultRead); + const currentDAIVaultRead = new Contract( + contracts.DAIVaultHandler.address, + contracts.DAIVaultHandler.abi ); - vaults.setCurrentMaticVaultRead(currentMATICVaultRead); + vaults.setCurrentDAIVaultRead(currentDAIVaultRead); // Set Tokens - const currentMATICToken = new ethers.Contract(NETWORKS.polygon.matic, ERC20.abi, currentSigner); - tokens.setCurrentMATICToken(currentMATICToken); - const currentMATICTokenRead = new Contract(NETWORKS.polygon.matic, ERC20.abi); - tokens.setCurrentMATICTokenRead(currentMATICTokenRead); + const currentWETHToken = new ethers.Contract(wethAddress, ERC20.abi, currentSigner); + tokens.setCurrentWETHToken(currentWETHToken); + const currentDAIToken = new ethers.Contract(daiAddress, WETH.abi, currentSigner); + tokens.setCurrentDAIToken(currentDAIToken); + const currentJPEGZToken = new ethers.Contract( + contracts.JPEGZ.address, + contracts.JPEGZ.abi, + currentSigner + ); + tokens.setCurrentJPEGZToken(currentJPEGZToken); + + const currentWETHTokenRead = new Contract(wethAddress, ERC20.abi); + tokens.setCurrentWETHTokenRead(currentWETHTokenRead); + const currentDAITokenRead = new Contract(daiAddress, WETH.abi); + tokens.setCurrentDAITokenRead(currentDAITokenRead); + const currentJPEGZTokenRead = new Contract(contracts.JPEGZ.address, contracts.JPEGZ.abi); + tokens.setCurrentJPEGZTokenRead(currentJPEGZTokenRead); + // Set Oracles - const currentMATICOracle = new ethers.Contract( - contracts.MATICOracle.address, - contracts.MATICOracle.abi, + const currentWETHOracle = new ethers.Contract( + contracts.WETHOracle.address, + contracts.WETHOracle.abi, currentSigner ); - oracles.setCurrentMATICOracle(currentMATICOracle); - const currentMATICOracleRead = new Contract( - contracts.MATICOracle.address, - contracts.MATICOracle.abi + oracles.setCurrentWETHOracle(currentWETHOracle); + const currentDAIOracle = new ethers.Contract( + contracts.DAIOracle.address, + contracts.DAIOracle.abi, + currentSigner ); - oracles.setCurrentMATICOracleRead(currentMATICOracleRead); + oracles.setCurrentDAIOracle(currentDAIOracle); + + const currentJPEGZOracle = new ethers.Contract( + contracts.JPEGZOracle.address, + contracts.JPEGZOracle.abi, + currentSigner + ); + oracles.setCurrentJPEGZOracle(currentJPEGZOracle); + + const currentWETHOracleRead = new Contract( + contracts.WETHOracle.address, + contracts.WETHOracle.abi + ); + oracles.setCurrentWETHOracleRead(currentWETHOracleRead); + const currentDAIOracleRead = new Contract(contracts.DAIOracle.address, contracts.DAIOracle.abi); + oracles.setCurrentDAIOracleRead(currentDAIOracleRead); + const currentJPEGZOracleRead = new Contract( + contracts.JPEGZOracle.address, + contracts.JPEGZOracle.abi + ); + oracles.setCurrentJPEGZOracleRead(currentJPEGZOracleRead); }; const setContracts = async ( @@ -304,31 +557,25 @@ const App = () => { let contracts; let wethAddress; let daiAddress; + let linkAddress; switch (chainId) { - case 1: + case NETWORKS.mainnet.chainId: contracts = cryptexJson[1].mainnet.contracts; wethAddress = NETWORKS.mainnet.weth; daiAddress = NETWORKS.mainnet.dai; + linkAddress = contracts.LINK.address; break; - case 4: - contracts = cryptexJson[4].rinkeby.contracts; - wethAddress = NETWORKS.rinkeby.weth; - daiAddress = NETWORKS.rinkeby.dai; - break; - case 69: - contracts = cryptexJson[69].okovan.contracts; - wethAddress = NETWORKS.okovan.weth; - daiAddress = NETWORKS.okovan.dai; - break; - case 137: - contracts = cryptexJson[137].polygon.contracts; - wethAddress = NETWORKS.polygon.weth; - daiAddress = NETWORKS.polygon.dai; + case NETWORKS.goerli.chainId: + contracts = cryptexJson[5].goerli.contracts; + wethAddress = NETWORKS.goerli.weth; + daiAddress = NETWORKS.goerli.dai; + linkAddress = contracts.LINK.address; break; default: - contracts = cryptexJson[4].rinkeby.contracts; - wethAddress = NETWORKS.rinkeby.weth; - daiAddress = NETWORKS.rinkeby.dai; + contracts = cryptexJson[1].mainnet.contracts; + wethAddress = NETWORKS.mainnet.weth; + daiAddress = NETWORKS.mainnet.dai; + linkAddress = contracts.LINK.address; break; } @@ -345,6 +592,12 @@ const App = () => { currentSigner ); vaults.setCurrentDAIVault(currentDAIVault); + const currentLINKVault = new ethers.Contract( + contracts.LinkVaultHandler.address, + contracts.LinkVaultHandler.abi, + currentSigner + ); + vaults.setCurrentLINKVault(currentLINKVault); const currentWETHVaultRead = new Contract( contracts.WETHVaultHandler.address, @@ -356,6 +609,11 @@ const App = () => { contracts.DAIVaultHandler.abi ); vaults.setCurrentDAIVaultRead(currentDAIVaultRead); + const currentLINKVaultRead = new Contract( + contracts.LinkVaultHandler.address, + contracts.LinkVaultHandler.abi + ); + vaults.setCurrentLINKVaultRead(currentLINKVaultRead); // Set Tokens const currentWETHToken = new ethers.Contract(wethAddress, ERC20.abi, currentSigner); @@ -368,6 +626,8 @@ const App = () => { currentSigner ); tokens.setCurrentTCAPToken(currentTCAPToken); + const currentLINKToken = new ethers.Contract(linkAddress, ERC20.abi, currentSigner); + tokens.setCurrentLINKToken(currentLINKToken); const currentWETHTokenRead = new Contract(wethAddress, ERC20.abi); tokens.setCurrentWETHTokenRead(currentWETHTokenRead); @@ -375,40 +635,8 @@ const App = () => { tokens.setCurrentDAITokenRead(currentDAITokenRead); const currentTCAPTokenRead = new Contract(contracts.TCAP.address, contracts.TCAP.abi); tokens.setCurrentTCAPTokenRead(currentTCAPTokenRead); - - // Set Rewards - const currentWETHReward = new ethers.Contract( - // @ts-ignore - contracts.WETHRewardHandler.address, - // @ts-ignore - contracts.WETHRewardHandler.abi, - currentSigner - ); - rewards.setCurrentWETHReward(currentWETHReward); - const currentDAIReward = new ethers.Contract( - // @ts-ignore - contracts.DAIRewardHandler.address, - // @ts-ignore - contracts.DAIRewardHandler.abi, - currentSigner - ); - rewards.setCurrentDAIReward(currentDAIReward); - - const currentWETHRewardRead = new Contract( - // @ts-ignore - contracts.WETHRewardHandler.address, - // @ts-ignore - contracts.WETHRewardHandler.abi - ); - rewards.setCurrentWETHRewardRead(currentWETHRewardRead); - - const currentDAIRewardRead = new Contract( - // @ts-ignore - contracts.DAIRewardHandler.address, - // @ts-ignore - contracts.DAIRewardHandler.abi - ); - rewards.setCurrentDAIRewardRead(currentDAIRewardRead); + const currentLINKTokenRead = new Contract(linkAddress, ERC20.abi); + tokens.setCurrentLINKTokenRead(currentLINKTokenRead); // Set Oracles const currentWETHOracle = new ethers.Contract( @@ -423,6 +651,12 @@ const App = () => { currentSigner ); oracles.setCurrentDAIOracle(currentDAIOracle); + const currentLINKOracle = new ethers.Contract( + contracts.LinkOracle.address, + contracts.LinkOracle.abi, + currentSigner + ); + oracles.setCurrentLINKOracle(currentLINKOracle); const currentTCAPOracle = new ethers.Contract( contracts.TCAPOracle.address, contracts.TCAPOracle.abi, @@ -437,107 +671,76 @@ const App = () => { oracles.setCurrentWETHOracleRead(currentWETHOracleRead); const currentDAIOracleRead = new Contract(contracts.DAIOracle.address, contracts.DAIOracle.abi); oracles.setCurrentDAIOracleRead(currentDAIOracleRead); + const currentLINKOracleRead = new Contract( + contracts.LinkOracle.address, + contracts.LinkOracle.abi + ); + oracles.setCurrentLINKOracleRead(currentLINKOracleRead); const currentTCAPOracleRead = new Contract( contracts.TCAPOracle.address, contracts.TCAPOracle.abi ); oracles.setCurrentTCAPOracleRead(currentTCAPOracleRead); - // Set Governance - // @ts-ignore - const currentCtx = new ethers.Contract(contracts.Ctx.address, contracts.Ctx.abi, currentSigner); - tokens.setCurrentCtxToken(currentCtx); - const currentGovernorAlpha = new ethers.Contract( - // @ts-ignore - contracts.GovernorAlpha.address, - // @ts-ignore - contracts.GovernorAlpha.abi, - currentSigner - ); - governance.setCurrentGovernorAlpha(currentGovernorAlpha); - const currentTimelock = new ethers.Contract( - // @ts-ignore - contracts.Timelock.address, - // @ts-ignore - contracts.Timelock.abi, - currentSigner - ); - governance.setCurrentTimelock(currentTimelock); - // @ts-ignore - const currentCtxRead = new Contract(contracts.Ctx.address, contracts.Ctx.abi); - tokens.setCurrentCtxTokenRead(currentCtxRead); - - const currentGovernorAlphaRead = new Contract( - // @ts-ignore - contracts.GovernorAlpha.address, - // @ts-ignore - contracts.GovernorAlpha.abi - ); - governance.setCurrentGovernorAlphaRead(currentGovernorAlphaRead); - const currentTimelockRead = new Contract( - // @ts-ignore - contracts.Timelock.address, - // @ts-ignore - toFragment(contracts.Timelock.abi) - ); - governance.setCurrentTimelockRead(currentTimelockRead); - - if (chainId === NETWORKS.mainnet.chainId || chainId === NETWORKS.rinkeby.chainId) { + if (isInLayer1(chainId)) { setEthereumContracts(chainId, currentSigner); } - if (chainId === NETWORKS.polygon.chainId) { - setPolygonContracts(currentSigner); - } }; - web3Modal.on("connect", async (networkProvider) => { - setLoading(true); - const currentProvider = new ethers.providers.Web3Provider(networkProvider); - const network = await currentProvider.getNetwork(); - if (!isValidNetwork(network.chainId)) { + const onConnectWallet = async () => { + if (!walletProvider || !walletChainId) return; + + setLoadingContracts(true); + const currentProvider = new ethers.providers.Web3Provider(walletProvider); + const isNftFruit = + window.location.toString().includes("sewagefruitz") && isGoerli(walletChainId); + + if (!isValidNetwork(walletChainId) && !isNftFruit) { setInvalidNetwork(true); } const walletName = currentProvider.provider.isMetaMask ? "metamask" : "other"; const currentSigner = currentProvider.getSigner(); signer.setCurrentSigner(currentSigner); const ethcallProvider = new Provider(currentProvider); - await setContracts(currentSigner, ethcallProvider, network.chainId || 4); + if (isArbitrum(walletChainId)) { + await setArbitrumContracts(walletChainId, currentSigner, ethcallProvider); + } else { + await setContracts(currentSigner, ethcallProvider, walletChainId || 5); + } + + const isBrowserWallet = !!walletProvider.isMetaMask; const cAddress = await currentSigner.getAddress(); setCurrentSignerAddress(cAddress); - setCurrentNetwork(network.chainId, walletName); - // @ts-ignore - /* networkProvider.on("chainChanged", (chainId: number) => { - // web3Modal.clearCachedProvider(); - setCurrentNetwork(chainId, ""); - window.location.reload(); - }); */ - setLoading(false); - }); + setCurrentNetwork(walletChainId, walletName, isBrowserWallet); + + setLoadingContracts(false); + }; useEffect(() => { - const savedAlert = localStorage.getItem("alert"); - if (savedAlert) setShow(false); async function loadProvider() { - if (web3Modal.cachedProvider && !signer.signer) { - // const networkProvider = - if (!isLoading) { - await web3Modal.connect(); + if (isConnected) { + if (!isLoadingContracts && walletProvider) { + onConnectWallet(); } } else { - setLoading(true); - const chainId = process.env.REACT_APP_NETWORK_ID || "4"; - const provider = getDefaultProvider(parseInt(chainId), NETWORKS.mainnet.name); + setLoadingContracts(true); + const chainId = process.env.REACT_APP_NETWORK_ID || "5"; + const provider = getDefaultProvider(parseInt(chainId)); const randomSigner = ethers.Wallet.createRandom().connect(provider); const ethcallProvider = new Provider(randomSigner.provider); - setContracts(randomSigner, ethcallProvider, parseInt(chainId)); - setCurrentNetwork(parseInt(chainId), ""); - setLoading(false); + if (isArbitrum(parseInt(chainId))) { + setArbitrumContracts(parseInt(chainId), randomSigner, ethcallProvider); + } else { + setContracts(randomSigner, ethcallProvider, parseInt(chainId)); + } + setCurrentNetwork(parseInt(chainId), "", false); + setLoadingContracts(false); } } // Execute the created function directly loadProvider(); // eslint-disable-next-line - }, [web3Modal]); + }, [isConnected, walletChainId]); const handlers = useSwipeable({ onSwipedLeft: () => setShowSidebar(true), @@ -547,7 +750,7 @@ const App = () => { trackMouse: true, }); - if (isLoading) { + if (isLoadingContracts) { return ( <> @@ -576,80 +779,58 @@ const App = () => { return ( - + - - - - - - {show && ( - { - setShow(false); - localStorage.setItem("alert", "false"); - }} - dismissible - > - 💀 This project is in beta. Use at your own risk. - - )} - {vaultWarning && location.pathname === "/vault" && ( - { - setVaultWarning(false); - localStorage.setItem("alert", "false"); - }} - dismissible - > - - ⚠️ Make sure to always have a ratio above the minimum ratio to avoid - getting liquidated. - - - )} - -
- - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + }> + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + - + ); }; diff --git a/src/api/constants.tsx b/src/api/constants.tsx new file mode 100644 index 00000000..31d1bed4 --- /dev/null +++ b/src/api/constants.tsx @@ -0,0 +1,9 @@ +export const API_ENDPOINT = process.env.REACT_APP_API_URL || "https://api.cryptex.finance"; + +export const OAUTH_TOKEN_ENDPOINT = API_ENDPOINT.concat("o/token/"); + +export const KEEPER_ALL_ENDPOINT = API_ENDPOINT.concat("cryptkeeper/all/"); + +export const KEEPER_CREATE_ENDPOINT = API_ENDPOINT.concat("cryptkeeper/create/"); + +export const KEEPER_UPDATE_ENDPOINT = API_ENDPOINT.concat("cryptkeeper/update/"); diff --git a/src/api/index.tsx b/src/api/index.tsx new file mode 100644 index 00000000..191d8b7e --- /dev/null +++ b/src/api/index.tsx @@ -0,0 +1,3 @@ +export * from "./constants"; + +export * from "./oauth"; diff --git a/src/api/oauth.tsx b/src/api/oauth.tsx new file mode 100644 index 00000000..df1e3db1 --- /dev/null +++ b/src/api/oauth.tsx @@ -0,0 +1,37 @@ +import { OAUTH_TOKEN_ENDPOINT } from "./constants"; + +const qs = require("qs"); + +const OAUTH_HEADER = { + Accept: "application/json", + "Content-Type": "application/x-www-form-urlencoded;", +}; + +export const getAccessToken = async () => { + let returnData = { success: false, accessToken: "" }; + const params = qs.stringify({ + grant_type: "client_credentials", + client_id: process.env.REACT_APP_API_CLIENT_ID, + client_secret: process.env.REACT_APP_API_CLIENT_SECRET, + }); + + await fetch(OAUTH_TOKEN_ENDPOINT, { + method: "POST", + headers: OAUTH_HEADER, + body: params, + }) + .then((response) => response.json()) + .then((responseJson) => { + if (!responseJson.error) { + returnData = { + success: true, + accessToken: responseJson.access_token, + }; + } + }) + .catch((error) => { + console.error(error); + }); + + return returnData; +}; diff --git a/src/assets/images/arbitrum.svg b/src/assets/images/arbitrum.svg new file mode 100644 index 00000000..965cc713 --- /dev/null +++ b/src/assets/images/arbitrum.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/images/down-arrow.svg b/src/assets/images/down-arrow.svg new file mode 100644 index 00000000..d7064951 --- /dev/null +++ b/src/assets/images/down-arrow.svg @@ -0,0 +1,3 @@ + + diff --git a/src/assets/images/graph/optimism.svg b/src/assets/images/graph/optimism.svg index 58841017..10af787f 100644 --- a/src/assets/images/graph/optimism.svg +++ b/src/assets/images/graph/optimism.svg @@ -1,2 +1,2 @@ - \ No newline at end of file diff --git a/src/assets/images/graph/snx.svg b/src/assets/images/graph/snx.svg new file mode 100644 index 00000000..5e718784 --- /dev/null +++ b/src/assets/images/graph/snx.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/images/graph/uni.svg b/src/assets/images/graph/uni.svg new file mode 100644 index 00000000..65780623 --- /dev/null +++ b/src/assets/images/graph/uni.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/src/assets/images/graph/usdc.svg b/src/assets/images/graph/usdc.svg new file mode 100644 index 00000000..6893f752 --- /dev/null +++ b/src/assets/images/graph/usdc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/images/graph/WBTC.svg b/src/assets/images/graph/wbtc.svg similarity index 100% rename from src/assets/images/graph/WBTC.svg rename to src/assets/images/graph/wbtc.svg diff --git a/src/assets/images/jpegz-coin.png b/src/assets/images/jpegz-coin.png new file mode 100755 index 00000000..11d0f8c9 Binary files /dev/null and b/src/assets/images/jpegz-coin.png differ diff --git a/src/assets/images/noti-error.png b/src/assets/images/noti-error.png new file mode 100644 index 00000000..9bf3c032 Binary files /dev/null and b/src/assets/images/noti-error.png differ diff --git a/src/assets/images/noti-success.png b/src/assets/images/noti-success.png new file mode 100644 index 00000000..0cd606bf Binary files /dev/null and b/src/assets/images/noti-success.png differ diff --git a/src/assets/images/okx.jpg b/src/assets/images/okx.jpg new file mode 100644 index 00000000..f57c063a Binary files /dev/null and b/src/assets/images/okx.jpg differ diff --git a/src/assets/images/okx.png b/src/assets/images/okx.png new file mode 100644 index 00000000..f57c063a Binary files /dev/null and b/src/assets/images/okx.png differ diff --git a/src/assets/images/plus.svg b/src/assets/images/plus.svg new file mode 100644 index 00000000..fe2d74fc --- /dev/null +++ b/src/assets/images/plus.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/assets/images/sewage-fruit.png b/src/assets/images/sewage-fruit.png new file mode 100644 index 00000000..3a749cd5 Binary files /dev/null and b/src/assets/images/sewage-fruit.png differ diff --git a/src/assets/images/sort-down.svg b/src/assets/images/sort-down.svg new file mode 100644 index 00000000..0921ab72 --- /dev/null +++ b/src/assets/images/sort-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/images/sort-up.svg b/src/assets/images/sort-up.svg new file mode 100644 index 00000000..2c1361fe --- /dev/null +++ b/src/assets/images/sort-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/images/sort.svg b/src/assets/images/sort.svg new file mode 100644 index 00000000..8d89467d --- /dev/null +++ b/src/assets/images/sort.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/images/tcap-coin.svg b/src/assets/images/tcap-coin.svg index d0154dc2..e9f6c3ae 100644 --- a/src/assets/images/tcap-coin.svg +++ b/src/assets/images/tcap-coin.svg @@ -1 +1 @@ - + \ No newline at end of file diff --git a/src/assets/images/vault/bitcoin.svg b/src/assets/images/vault/bitcoin.svg index e0de2b5c..953e6cd6 100644 --- a/src/assets/images/vault/bitcoin.svg +++ b/src/assets/images/vault/bitcoin.svg @@ -1,5 +1,5 @@ diff --git a/src/assets/images/vault/snx.svg b/src/assets/images/vault/snx.svg new file mode 100644 index 00000000..4e2dccaa --- /dev/null +++ b/src/assets/images/vault/snx.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/src/assets/images/vault/snx2.svg b/src/assets/images/vault/snx2.svg new file mode 100644 index 00000000..62bc0066 --- /dev/null +++ b/src/assets/images/vault/snx2.svg @@ -0,0 +1,3 @@ + + \ No newline at end of file diff --git a/src/assets/images/vault/uni.svg b/src/assets/images/vault/uni.svg new file mode 100644 index 00000000..63214d38 --- /dev/null +++ b/src/assets/images/vault/uni.svg @@ -0,0 +1,4 @@ + + + diff --git a/src/assets/images/vault/usdc.svg b/src/assets/images/vault/usdc.svg new file mode 100644 index 00000000..650001e5 --- /dev/null +++ b/src/assets/images/vault/usdc.svg @@ -0,0 +1,4 @@ + \ No newline at end of file diff --git a/src/assets/images/welcome/vault-monitoring.svg b/src/assets/images/welcome/vault-monitoring.svg new file mode 100644 index 00000000..7c0a871b --- /dev/null +++ b/src/assets/images/welcome/vault-monitoring.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/assets/images/x-symbol.svg b/src/assets/images/x-symbol.svg new file mode 100644 index 00000000..e3f22c75 --- /dev/null +++ b/src/assets/images/x-symbol.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/components/Farm.tsx b/src/components/Farm.tsx deleted file mode 100644 index 7c551823..00000000 --- a/src/components/Farm.tsx +++ /dev/null @@ -1,1017 +0,0 @@ -import React, { useContext, useEffect, useState } from "react"; -import Card from "react-bootstrap/esm/Card"; -import Button from "react-bootstrap/esm/Button"; -import Row from "react-bootstrap/esm/Row"; -import Table from "react-bootstrap/esm/Table"; -import OverlayTrigger from "react-bootstrap/esm/OverlayTrigger"; -import Tooltip from "react-bootstrap/esm/Tooltip"; -import { ethers } from "ethers"; -import NumberFormat from "react-number-format"; -import { useQuery, gql } from "@apollo/client"; -import SignerContext from "../state/SignerContext"; -import TokensContext from "../state/TokensContext"; -import VaultsContext from "../state/VaultsContext"; -import OraclesContext from "../state/OraclesContext"; -import GovernanceContext from "../state/GovernanceContext"; -import RewardsContext from "../state/RewardsContext"; - -import "../styles/farm.scss"; -import { ReactComponent as CtxIcon } from "../assets/images/ctx-coin.svg"; -import { ReactComponent as TcapIcon } from "../assets/images/tcap-coin.svg"; -import { ReactComponent as WETHIcon } from "../assets/images/graph/weth.svg"; -import { ReactComponent as DAIIcon } from "../assets/images/graph/DAI.svg"; -import Loading from "./Loading"; -import { - notifyUser, - errorNotification, - tsToDateString, - getPriceInUSDFromPair, -} from "../utils/utils"; -import { Stake } from "./modals/Stake"; - -const ctxClaimVestShowDate = new Date(1634511235 * 1000); - -const Farm = () => { - const [address, setAddress] = useState(""); - const [isLoading, setIsLoading] = useState(true); - const [ethRewards, setEthRewards] = useState("0"); - const [daiRewards, setDaiRewards] = useState("0"); - const [ethPoolRewards, setEthPoolRewards] = useState("0.0"); - const [ctxPoolRewards, setCtxPoolRewards] = useState("0.0"); - const [vethPoolRewards, setVEthPoolRewards] = useState("0.0"); - const [vctxPoolRewards, setVCtxPoolRewards] = useState("0.0"); - const [ethDebt, setEthDebt] = useState("0.0"); - const [daiDebt, setDaiDebt] = useState("0.0"); - const [ethPoolStake, setEthPoolStake] = useState("0.0"); - const [ctxPoolStake, setCtxPoolStake] = useState("0.0"); - const [ethPoolBalance, setEthPoolBalance] = useState("0.0"); - const [ctxPoolBalance, setCtxPoolBalance] = useState("0.0"); - const [ethVestAmount, setEthVestAmount] = useState(ethers.BigNumber.from(0)); - const [ctxVestAmount, setCtxVestAmount] = useState(ethers.BigNumber.from(0)); - const [vestingEndTime, setVestingEndTime] = useState(0); - const [ctxVestingEndTime, setCtxVestingEndTime] = useState(0); - const [updateData, setUpdateData] = useState(false); - const signer = useContext(SignerContext); - const tokens = useContext(TokensContext); - const vaults = useContext(VaultsContext); - const oracles = useContext(OraclesContext); - const governance = useContext(GovernanceContext); - const rewards = useContext(RewardsContext); - const [stakeShow, setStakeShow] = useState(false); - const [stakeBalance, setStakeBalance] = useState("0"); - const [selectedPoolTitle, setSelectedPoolTitle] = useState(""); - const [selectedPool, setSelectedPool] = useState(); - const [selectedPoolToken, setSelectedPoolToken] = useState(); - // APY - const [, setEthVaultAPY] = useState("0"); - const [, setDaiVaultAPY] = useState("0"); - const [ethPoolAPY, setEthPoolAPY] = useState("0"); - const [ctxPoolAPY, setCtxPoolAPY] = useState("0"); - - const oneYear = 60 * 60 * 24 * 365; - - const lpURL = "https://app.sushi.com"; - const phase = process.env.REACT_APP_PHASE ? parseInt(process.env.REACT_APP_PHASE) : 0; - - const USER_VAULTS = gql` - query getVault($owner: String!) { - vaults(where: { owner: $owner }) { - id - vaultId - owner - collateral - debt - currentRatio - address - owner - } - } - `; - - async function getAPYFromVaultRewards( - totalTcapDebt: number, - rate: number, - ctxPrice: number, - tcapPrice: number - ) { - const apy = ((rate * oneYear * ctxPrice) / (tcapPrice * totalTcapDebt)) * 100; - return apy.toString(); - } - - async function getAPYFromLPRewards( - rate: number, - LPsStaked: number, - reserves: any, - totalSupplyPool: number, - ctxPrice: number, - ethPrice: number - ) { - const token0Price = await getPriceInUSDFromPair(reserves[0], reserves[1], ethPrice); - const valuePerLPToken = (token0Price * reserves[0] + ethPrice * reserves[1]) / totalSupplyPool; - const apy = ((rate * oneYear * ctxPrice) / (valuePerLPToken * LPsStaked)) * 100; - - if (Number.isNaN(apy)) { - return "0"; - } - - return apy.toString(); - } - - async function setDebt(vaultData: any) { - // TODO: fix if no graph - await vaultData.vaults.forEach((v: any) => { - switch (v.address.toLowerCase()) { - case vaults?.wethVault?.address.toLowerCase(): - setEthDebt(ethers.utils.formatEther(v.debt)); - break; - case vaults?.wbtcVault?.address.toLowerCase(): - // setWbtcDebt(ethers.utils.formatEther(v.debt)); - break; - case vaults?.daiVault?.address.toLowerCase(): - setDaiDebt(ethers.utils.formatEther(v.debt)); - break; - default: - break; - } - }); - } - - const { data, refetch } = useQuery(USER_VAULTS, { - variables: { owner: address }, - fetchPolicy: "no-cache", - notifyOnNetworkStatusChange: true, - onCompleted: () => { - setDebt(data); - }, - }); - - const refresh = async () => { - try { - setUpdateData(!updateData); - await refetch(); - } catch (error) { - // catch error in case the vault screen is changed - } - }; - - useEffect(() => { - const loadAddress = async () => { - if ( - tokens.tcapToken && - tokens.wethPoolToken && - oracles.tcapOracle && - tokens.ctxToken && - oracles.wethOracle && - governance.governorAlpha && - governance.timelock && - rewards.wethReward && - rewards.daiReward && - rewards.wethPoolReward - ) { - // Batch Calls - const wethOracleCall = oracles.wethOracleRead?.getLatestAnswer(); - const tcapOracleCall = oracles.tcapOracleRead?.getLatestAnswer(); - const totalTcapDebtWethCall = await rewards.wethRewardRead?.totalSupply(); - const rateWethCall = await rewards.wethRewardRead?.rewardRate(); - const totalTcapDebtDaihCall = await rewards.daiRewardRead?.totalSupply(); - const rateDaiCall = await rewards.daiRewardRead?.rewardRate(); - const reservesEthPoolCall = await tokens.wethPoolTokenRead?.getReserves(); - const totalSupplyEthPoolCall = await tokens.wethPoolTokenRead?.totalSupply(); - const rateEthPoolCall = await rewards.wethPoolRewardRead?.rewardRate(); - const LPsStakedCall = await rewards.wethPoolRewardRead?.totalSupply(); - const reservesCtxPoolCall = await tokens.ctxPoolTokenRead?.getReserves(); - const totalSupplyCtxPoolCall = await tokens.ctxPoolTokenRead?.totalSupply(); - const rateCtxPoolCall = await rewards.ctxPoolRewardRead?.rewardRate(); - const ctxLPsStakedCall = await rewards.ctxPoolRewardRead?.totalSupply(); - const wethPoolVestingRatioCall = await rewards.wethPoolRewardRead?.vestingRatio(); - const wethPoolVestingTimeCall = await rewards.wethPoolRewardRead?.vestingEnd(); - const ctxVestingRatioCall = await rewards.ctxPoolRewardRead?.vestingRatio(); - const ctxVestingTimeCall = await rewards.ctxPoolRewardRead?.vestingEnd(); - - // @ts-ignore - const [ - wethOraclePrice, - tcapPrice, - totalTcapDebtWeth, - rateWeth, - totalTcapDebtDai, - rateDai, - reservesEthPool, - totalSupplyEthPool, - rateEthPool, - LPsStaked, - reservesCtxPool, - totalSupplyCtxPool, - rateCtxPool, - ctxLPsStaked, - wethPoolVestingRatio, - wethPoolVestingTime, - ctxVestingRatio, - ctxVestingTime, - ] = await signer.ethcallProvider?.all([ - wethOracleCall, - tcapOracleCall, - totalTcapDebtWethCall, - rateWethCall, - totalTcapDebtDaihCall, - rateDaiCall, - reservesEthPoolCall, - totalSupplyEthPoolCall, - rateEthPoolCall, - LPsStakedCall, - reservesCtxPoolCall, - totalSupplyCtxPoolCall, - rateCtxPoolCall, - ctxLPsStakedCall, - wethPoolVestingRatioCall, - wethPoolVestingTimeCall, - ctxVestingRatioCall, - ctxVestingTimeCall, - ]); - - const currentPriceTCAP = ethers.utils.formatEther(tcapPrice); - const currentPriceETH = ethers.utils.formatEther(wethOraclePrice.mul(10000000000)); - - // REACT_APP_POOL_CTX - const currentPriceCTX = await getPriceInUSDFromPair( - reservesCtxPool[0], - reservesCtxPool[1], - parseFloat(currentPriceETH) - ); - // ETH VAULT APY - setEthVaultAPY( - await getAPYFromVaultRewards( - totalTcapDebtWeth, - rateWeth, - currentPriceCTX, - parseFloat(currentPriceTCAP) - ) - ); - - // DAI VAULT APY - setDaiVaultAPY( - await getAPYFromVaultRewards( - totalTcapDebtDai, - rateDai, - currentPriceCTX, - parseFloat(currentPriceTCAP) - ) - ); - - // ETH Pool APY - setEthPoolAPY( - await getAPYFromLPRewards( - rateEthPool, - LPsStaked, - reservesEthPool, - totalSupplyEthPool, - currentPriceCTX, - parseFloat(currentPriceETH) - ) - ); - - // CTX Pool APY - setCtxPoolAPY( - await getAPYFromLPRewards( - rateCtxPool, - ctxLPsStaked, - reservesCtxPool, - totalSupplyCtxPool, - currentPriceCTX, - parseFloat(currentPriceETH) - ) - ); - - setVestingEndTime(wethPoolVestingTime); - setCtxVestingEndTime(ctxVestingTime); - - if (signer.signer) { - const currentAddress = await signer.signer.getAddress(); - setAddress(currentAddress); - - const currentEthRewardCall = await rewards?.wethRewardRead?.earned(currentAddress); - const currentDaiRewardCall = await rewards?.daiRewardRead?.earned(currentAddress); - const currentEthPoolRewardCall = await rewards.wethPoolRewardRead?.earned(currentAddress); - const currentVEthPoolRewardCall = await rewards.wethPoolRewardRead?.vestingAmounts( - currentAddress - ); - const currentEthPoolStakeCall = await rewards.wethPoolRewardRead?.balanceOf( - currentAddress - ); - const currentEthPoolBalanceCall = await tokens.wethPoolTokenRead?.balanceOf( - currentAddress - ); - const currentCtxPoolRewardCall = await rewards.ctxPoolRewardRead?.earned(currentAddress); - const currentVCtxPoolRewardCall = await rewards.ctxPoolRewardRead?.vestingAmounts( - currentAddress - ); - const currentCtxPoolStakeCall = await rewards.ctxPoolRewardRead?.balanceOf( - currentAddress - ); - const currentCtxPoolBalanceCall = await tokens.ctxPoolTokenRead?.balanceOf( - currentAddress - ); - - // @ts-ignore - const [ - currentEthReward, - currentDaiReward, - currentEthPoolReward, - currentVEthPoolReward, - currentEthPoolStake, - currentEthPoolBalance, - currentCtxPoolReward, - currentVCtxPoolReward, - currentCtxPoolStake, - currentCtxPoolBalance, - ] = await signer.ethcallProvider?.all([ - currentEthRewardCall, - currentDaiRewardCall, - currentEthPoolRewardCall, - currentVEthPoolRewardCall, - currentEthPoolStakeCall, - currentEthPoolBalanceCall, - currentCtxPoolRewardCall, - currentVCtxPoolRewardCall, - currentCtxPoolStakeCall, - currentCtxPoolBalanceCall, - ]); - - setEthRewards(ethers.utils.formatEther(currentEthReward)); - setDaiRewards(ethers.utils.formatEther(currentDaiReward)); - - setEthVestAmount(currentVEthPoolReward); - setCtxVestAmount(currentVCtxPoolReward); - if (phase > 1) { - setEthPoolRewards( - ethers.utils.formatEther( - currentEthPoolReward.mul(100 - wethPoolVestingRatio).div(100) - ) - ); - setVEthPoolRewards( - ethers.utils.formatEther( - currentVEthPoolReward.add(currentEthPoolReward.mul(wethPoolVestingRatio).div(100)) - ) - ); - setEthPoolStake(ethers.utils.formatEther(currentEthPoolStake)); - setEthPoolBalance(ethers.utils.formatEther(currentEthPoolBalance)); - setCtxPoolRewards( - ethers.utils.formatEther(currentCtxPoolReward.mul(100 - ctxVestingRatio).div(100)) - ); - setVCtxPoolRewards( - ethers.utils.formatEther( - currentVCtxPoolReward.add(currentCtxPoolReward.mul(ctxVestingRatio).div(100)) - ) - ); - setCtxPoolStake(ethers.utils.formatEther(currentCtxPoolStake)); - setCtxPoolBalance(ethers.utils.formatEther(currentCtxPoolBalance)); - } - } - } - setIsLoading(false); - }; - - loadAddress(); - // eslint-disable-next-line - }, [data, updateData]); - - if (isLoading) { - return ; - } - - const showCtxClaimVest = (): boolean => { - const today = new Date(); - return today > ctxClaimVestShowDate; - }; - - const claimRewards = async (vaultType: string) => { - try { - let tx: ethers.ContractTransaction; - switch (vaultType) { - case "ETH": - tx = await rewards?.wethReward?.getReward(); - break; - case "WBTC": - tx = await rewards?.wbtcReward?.getReward(); - break; - case "DAI": - tx = await rewards?.daiReward?.getReward(); - break; - case "ETHPOOL": - tx = await rewards?.wethPoolReward?.getReward(); - break; - case "WBTCPOOL": - tx = await rewards?.wbtcPoolReward?.getReward(); - break; - case "DAIPOOL": - tx = await rewards?.daiPoolReward?.getReward(); - break; - case "CTXPOOL": - tx = await rewards?.ctxPoolReward?.getReward(); - break; - default: - tx = await rewards?.wethReward?.getReward(); - break; - } - notifyUser(tx, refresh); - } catch (error) { - if (error.code === 4001) { - errorNotification("Transaction rejected"); - } else { - errorNotification("Insufficient funds to stake"); - } - } - }; - - const claimVest = async (vaultType: string) => { - try { - let tx: ethers.ContractTransaction; - switch (vaultType) { - case "ETH": - tx = await rewards?.wethReward?.claimVest(); - break; - case "WBTC": - tx = await rewards?.wbtcReward?.claimVest(); - break; - case "DAI": - tx = await rewards?.daiReward?.claimVest(); - break; - case "ETHPOOL": - tx = await rewards?.wethPoolReward?.claimVest(); - break; - case "WBTCPOOL": - tx = await rewards?.wbtcPoolReward?.claimVest(); - break; - case "DAIPOOL": - tx = await rewards?.daiPoolReward?.claimVest(); - break; - case "CTXPOOL": - tx = await rewards?.ctxPoolReward?.claimVest(); - break; - default: - tx = await rewards?.wethReward?.claimVest(); - break; - } - notifyUser(tx, refresh); - } catch (error) { - if (error.code === 4001) { - errorNotification("Transaction rejected"); - } else { - errorNotification("Error claiming vest"); - } - } - }; - - const exitRewards = async (vaultType: string) => { - try { - let tx: ethers.ContractTransaction; - switch (vaultType) { - case "ETHPOOL": - tx = await rewards?.wethPoolReward?.exit(); - break; - case "WBTCPOOL": - tx = await rewards?.wbtcPoolReward?.exit(); - break; - case "DAIPOOL": - tx = await rewards?.daiPoolReward?.exit(); - break; - case "CTXPOOL": - tx = await rewards?.ctxPoolReward?.exit(); - break; - default: - tx = await rewards?.wethPoolReward?.exit(); - break; - } - notifyUser(tx, refresh); - } catch (error) { - if (error.code === 4001) { - errorNotification("Transaction rejected"); - } else { - errorNotification("Insufficient funds to exit"); - } - } - }; - - return ( -
-
-

Farming

{" "} - - - -

Minting Rewards

- - - - - - {" "} - - - - - - - - - - - - - - - - - - - {" "} - - -
- DescriptionCurrent Mint -
-
Current Reward
-
- - Early adopters rewards are issued over 14 days for a total of - 500,000 CTX. Assuming approximately 6500 Ethereum blocks per day - over 14 days (91,000 Ethereum blocks), the per block reward would be - 5.4945 CTX split across the debtors at that point in time. 100% of - the reward is immediately available. - - } - > - - -
-
-
APY -
- - - ETH Vault - - {" "} - TCAP - - {" "} - CTX - - Inactive - - {address === "" ? ( - <> - - - - - ) : ( - <> - - - - - )} -
- - - DAI Vault - - {" "} - TCAP - - {" "} - CTX - - Inactive - - {address === "" ? ( - <> - - - - - ) : ( - <> - - - - - )} -
-
- - {phase > 1 && ( - -

Liquidity Rewards

- - - - - - - - {" "} - - - - - - - - - - - - - - - - - - {" "} - - {" "} - - - - - -
- DescriptionBalanceStake -
-
Unlocked Reward
-
- - Available to claim immediately. - - } - > - - -
-
-
-
-
Locked Reward
-
- - Rewards are unlocked 6 months after the start of the pool. - - } - > - - -
-
-
APY -
- - - - - ETH/TCAP Pool
SushiSwap -
-
- {" "} - - {" "} - - {" "} - CTX - -
- {" "} - CTX -
-
- - {tsToDateString(vestingEndTime)} - -
-
- - - % - - - {address === "" ? ( - <> - - - - - ) : ( - <> - - {ethVestAmount.eq(0) ? ( - - ) : ( - - )} - - - )} -
- - - - - ETH/CTX Pool
SushiSwap -
-
- {" "} - - {" "} - - {" "} - CTX - -
- {" "} - CTX -
-
- - {tsToDateString(ctxVestingEndTime)} - -
-
- - - % - - - {address === "" ? ( - <> - - - - - ) : ( - <> - - {ctxVestAmount.gt(0) && showCtxClaimVest() ? ( - - ) : ( - - )} - - - )} -
-
- )} -
-
-
- setStakeShow(false)} - refresh={() => refresh()} - /> -
- ); -}; -export default Farm; diff --git a/src/components/Farm/LiquidityRewards/index.tsx b/src/components/Farm/LiquidityRewards/index.tsx new file mode 100644 index 00000000..88ae306b --- /dev/null +++ b/src/components/Farm/LiquidityRewards/index.tsx @@ -0,0 +1,842 @@ +import React, { useContext, useEffect, useState } from "react"; +import { Button, Card, Table, OverlayTrigger, Tooltip } from "react-bootstrap/esm"; +import { ethers } from "ethers"; +import NumberFormat from "react-number-format"; +import { useTranslation } from "react-i18next"; +import { useMediaQuery } from "react-responsive"; +import { + governanceContext, + oraclesContext, + rewardsContext, + signerContext, + tokensContext, +} from "../../../state"; +import { ReactComponent as CtxIcon } from "../../../assets/images/ctx-coin.svg"; +import { ReactComponent as TcapIcon } from "../../../assets/images/tcap-coin.svg"; +import { ReactComponent as WETHIcon } from "../../../assets/images/graph/weth.svg"; +import Loading from "../../Loading"; +import { notifyUser, errorNotification, getPriceInUSDFromPair } from "../../../utils/utils"; + +const ctxClaimVestShowDate = new Date(1634511235 * 1000); + +const LiquidityRewards = () => { + const { t } = useTranslation(); + const isMobile = useMediaQuery({ query: "(max-width: 850px)" }); + const signer = useContext(signerContext); + const tokens = useContext(tokensContext); + const oracles = useContext(oraclesContext); + const governance = useContext(governanceContext); + const rewards = useContext(rewardsContext); + const [address, setAddress] = useState(""); + const [isLoading, setIsLoading] = useState(true); + const [ethPoolRewards, setEthPoolRewards] = useState("0.0"); + const [ctxPoolRewards, setCtxPoolRewards] = useState("0.0"); + const [vethPoolRewards, setVEthPoolRewards] = useState("0.0"); + const [vctxPoolRewards, setVCtxPoolRewards] = useState("0.0"); + const [ethPoolStake, setEthPoolStake] = useState("0.0"); + const [ctxPoolStake, setCtxPoolStake] = useState("0.0"); + const [ethPoolBalance, setEthPoolBalance] = useState("0.0"); + const [ctxPoolBalance, setCtxPoolBalance] = useState("0.0"); + const [ethVestAmount, setEthVestAmount] = useState(ethers.BigNumber.from(0)); + const [ctxVestAmount, setCtxVestAmount] = useState(ethers.BigNumber.from(0)); + const [updateData, setUpdateData] = useState(false); + + // APY + const [, setEthVaultAPY] = useState("0"); + const [, setDaiVaultAPY] = useState("0"); + + const oneYear = 60 * 60 * 24 * 365; + + const lpURL = "https://app.sushi.com"; + const phase = process.env.REACT_APP_PHASE ? parseInt(process.env.REACT_APP_PHASE) : 0; + + async function getAPYFromVaultRewards( + totalTcapDebt: number, + rate: number, + ctxPrice: number, + tcapPrice: number + ) { + const apy = ((rate * oneYear * ctxPrice) / (tcapPrice * totalTcapDebt)) * 100; + return apy.toString(); + } + + const refresh = async () => { + try { + setUpdateData(!updateData); + } catch (error: any) { + // catch error in case the vault screen is changed + } + }; + + useEffect(() => { + const loadAddress = async () => { + if ( + tokens.tcapToken && + tokens.wethPoolToken && + oracles.tcapOracle && + tokens.ctxToken && + oracles.wethOracle && + governance.governorAlpha && + governance.timelock && + rewards.wethReward && + rewards.daiReward && + rewards.wethPoolReward + ) { + // Batch Calls + const wethOracleCall = oracles.wethOracleRead?.getLatestAnswer(); + const tcapOracleCall = oracles.tcapOracleRead?.getLatestAnswer(); + const totalTcapDebtWethCall = await rewards.wethRewardRead?.totalSupply(); + const rateWethCall = await rewards.wethRewardRead?.rewardRate(); + const totalTcapDebtDaihCall = await rewards.daiRewardRead?.totalSupply(); + const rateDaiCall = await rewards.daiRewardRead?.rewardRate(); + const reservesCtxPoolCall = await tokens.ctxPoolTokenRead?.getReserves(); + const wethPoolVestingRatioCall = await rewards.wethPoolRewardRead?.vestingRatio(); + const ctxVestingRatioCall = await rewards.ctxPoolRewardRead?.vestingRatio(); + + // @ts-ignore + const [ + wethOraclePrice, + tcapPrice, + totalTcapDebtWeth, + rateWeth, + totalTcapDebtDai, + rateDai, + reservesCtxPool, + wethPoolVestingRatio, + ctxVestingRatio, + ] = await signer.ethcallProvider?.all([ + wethOracleCall, + tcapOracleCall, + totalTcapDebtWethCall, + rateWethCall, + totalTcapDebtDaihCall, + rateDaiCall, + reservesCtxPoolCall, + wethPoolVestingRatioCall, + ctxVestingRatioCall, + ]); + + const currentPriceTCAP = ethers.utils.formatEther(tcapPrice); + const currentPriceETH = ethers.utils.formatEther(wethOraclePrice.mul(10000000000)); + + // REACT_APP_POOL_CTX + const currentPriceCTX = await getPriceInUSDFromPair( + reservesCtxPool[0], + reservesCtxPool[1], + parseFloat(currentPriceETH) + ); + // ETH VAULT APY + setEthVaultAPY( + await getAPYFromVaultRewards( + totalTcapDebtWeth, + rateWeth, + currentPriceCTX, + parseFloat(currentPriceTCAP) + ) + ); + + // DAI VAULT APY + setDaiVaultAPY( + await getAPYFromVaultRewards( + totalTcapDebtDai, + rateDai, + currentPriceCTX, + parseFloat(currentPriceTCAP) + ) + ); + + if (signer.signer) { + const currentAddress = await signer.signer.getAddress(); + setAddress(currentAddress); + + const currentEthPoolRewardCall = await rewards.wethPoolRewardRead?.earned(currentAddress); + const currentVEthPoolRewardCall = await rewards.wethPoolRewardRead?.vestingAmounts( + currentAddress + ); + const currentEthPoolStakeCall = await rewards.wethPoolRewardRead?.balanceOf( + currentAddress + ); + const currentEthPoolBalanceCall = await tokens.wethPoolTokenRead?.balanceOf( + currentAddress + ); + const currentCtxPoolRewardCall = await rewards.ctxPoolRewardRead?.earned(currentAddress); + const currentVCtxPoolRewardCall = await rewards.ctxPoolRewardRead?.vestingAmounts( + currentAddress + ); + const currentCtxPoolStakeCall = await rewards.ctxPoolRewardRead?.balanceOf( + currentAddress + ); + const currentCtxPoolBalanceCall = await tokens.ctxPoolTokenRead?.balanceOf( + currentAddress + ); + + // @ts-ignore + const [ + currentEthPoolReward, + currentVEthPoolReward, + currentEthPoolStake, + currentEthPoolBalance, + currentCtxPoolReward, + currentVCtxPoolReward, + currentCtxPoolStake, + currentCtxPoolBalance, + ] = await signer.ethcallProvider?.all([ + currentEthPoolRewardCall, + currentVEthPoolRewardCall, + currentEthPoolStakeCall, + currentEthPoolBalanceCall, + currentCtxPoolRewardCall, + currentVCtxPoolRewardCall, + currentCtxPoolStakeCall, + currentCtxPoolBalanceCall, + ]); + + setEthVestAmount(currentVEthPoolReward); + setCtxVestAmount(currentVCtxPoolReward); + if (phase > 1) { + setEthPoolRewards( + ethers.utils.formatEther( + currentEthPoolReward.mul(100 - wethPoolVestingRatio).div(100) + ) + ); + setVEthPoolRewards( + ethers.utils.formatEther( + currentVEthPoolReward.add(currentEthPoolReward.mul(wethPoolVestingRatio).div(100)) + ) + ); + setEthPoolStake(ethers.utils.formatEther(currentEthPoolStake)); + setEthPoolBalance(ethers.utils.formatEther(currentEthPoolBalance)); + setCtxPoolRewards( + ethers.utils.formatEther(currentCtxPoolReward.mul(100 - ctxVestingRatio).div(100)) + ); + setVCtxPoolRewards( + ethers.utils.formatEther( + currentVCtxPoolReward.add(currentCtxPoolReward.mul(ctxVestingRatio).div(100)) + ) + ); + setCtxPoolStake(ethers.utils.formatEther(currentCtxPoolStake)); + setCtxPoolBalance(ethers.utils.formatEther(currentCtxPoolBalance)); + } + } + } + setIsLoading(false); + }; + + loadAddress(); + // eslint-disable-next-line + }, [updateData]); + + const showCtxClaimVest = (): boolean => { + const today = new Date(); + return today > ctxClaimVestShowDate; + }; + + const claimRewards = async (vaultType: string) => { + try { + let tx: ethers.ContractTransaction; + switch (vaultType) { + case "ETH": + tx = await rewards?.wethReward?.getReward(); + break; + case "WBTC": + tx = await rewards?.wbtcReward?.getReward(); + break; + case "DAI": + tx = await rewards?.daiReward?.getReward(); + break; + case "ETHPOOL": + tx = await rewards?.wethPoolReward?.getReward(); + break; + case "WBTCPOOL": + tx = await rewards?.wbtcPoolReward?.getReward(); + break; + case "DAIPOOL": + tx = await rewards?.daiPoolReward?.getReward(); + break; + case "CTXPOOL": + tx = await rewards?.ctxPoolReward?.getReward(); + break; + default: + tx = await rewards?.wethReward?.getReward(); + break; + } + notifyUser(tx, refresh); + } catch (error: any) { + if (error.code === 4001) { + errorNotification(t("errors.tran-rejected")); + } else { + errorNotification(t("errors.no-funds")); + } + } + }; + + const claimVest = async (vaultType: string) => { + try { + let tx: ethers.ContractTransaction; + switch (vaultType) { + case "ETH": + tx = await rewards?.wethReward?.claimVest(); + break; + case "WBTC": + tx = await rewards?.wbtcReward?.claimVest(); + break; + case "DAI": + tx = await rewards?.daiReward?.claimVest(); + break; + case "ETHPOOL": + tx = await rewards?.wethPoolReward?.claimVest(); + break; + case "WBTCPOOL": + tx = await rewards?.wbtcPoolReward?.claimVest(); + break; + case "DAIPOOL": + tx = await rewards?.daiPoolReward?.claimVest(); + break; + case "CTXPOOL": + tx = await rewards?.ctxPoolReward?.claimVest(); + break; + default: + tx = await rewards?.wethReward?.claimVest(); + break; + } + notifyUser(tx, refresh); + } catch (error: any) { + if (error.code === 4001 || error.code === -32603) { + errorNotification("Transaction rejected"); + } else { + errorNotification("Error claiming vest"); + } + } + }; + + const exitRewards = async (vaultType: string) => { + try { + let tx: ethers.ContractTransaction; + switch (vaultType) { + case "ETHPOOL": + tx = await rewards?.wethPoolReward?.exit(); + break; + case "WBTCPOOL": + tx = await rewards?.wbtcPoolReward?.exit(); + break; + case "DAIPOOL": + tx = await rewards?.daiPoolReward?.exit(); + break; + case "CTXPOOL": + tx = await rewards?.ctxPoolReward?.exit(); + break; + default: + tx = await rewards?.wethPoolReward?.exit(); + break; + } + notifyUser(tx, refresh); + } catch (error: any) { + if (error.code === 4001 || error.code === -32603) { + errorNotification("Transaction rejected"); + } else { + errorNotification("Insufficient funds to exit"); + } + } + }; + + const RenderEthTcapBtnActions = () => ( + <> + {ethVestAmount.eq(0) ? ( + + ) : ( + + )} + + + ); + + const RenderEthCtxBtnActions = () => ( + <> + {ctxVestAmount.gt(0) && showCtxClaimVest() ? ( + + ) : ( + + )} + + + ); + + const RenderMobile = () => ( +
+ + +
+ + +
+ +
+ +
+
+
+ <>{t("balance")}: +
+
+
+ +
+
+
+
+
+ <>{t("stake")}: +
+
+
+ +
+
+
+
+
+ <>{t("farming.unlocked")}: +
+
+
+ +
+
+
+
+
+ <>{t("farming.locked")}: +
+
+
+ +
+
+
+
+
APR:
+
+
+ Expired +
+
+
+ + + +
+ + +
+ + +
+ +
+ +
+
+
+ <>{t("balance")}: +
+
+
+ +
+
+
+
+
+ <>{t("stake")}: +
+
+
+ +
+
+
+
+
+ <>{t("farming.unlocked")}: +
+
+
+ +
+
+
+
+
+ <>{t("farming.locked")}: +
+
+
+ +
+
+
+
+
APR:
+
+
+ Expired +
+
+
+ + + +
+
+ ); + + if (isLoading) { + return ( + + + + ); + } + + return ( + +

+ <>{t("farming.liquidity")} +

+ {!isMobile ? ( + + + + + + + + {" "} + + + + + + + + + + + + + + + + + + {" "} + + {" "} + + + + + +
+ + <>{t("description")} + + <>{t("balance")} + + <>{t("stake")} + +
+
+ <>{t("farming.unlocked")} +
+
+ + <>{t("farming.unlocked-info")} + + } + > + + +
+
+
+
+
+ <>{t("farming.locked")} +
+
+ + <>{t("farming.locked-info")} + + } + > + + +
+
+
APR +
+ + + + + <> + {t("farming.eth-tcap-pool")}
SushiSwap + +
+
+ {" "} + + {" "} + + {" "} + CTX + +
+ {" "} + CTX +
+
+ Expired + + +
+ + + + + <> + {t("farming.eth-ctx-pool")}
SushiSwap + +
+
+ {" "} + + {" "} + + {" "} + CTX + +
+ {" "} + CTX +
+
+ + Expired + + + +
+ ) : ( + + )} +
+ ); +}; + +export default LiquidityRewards; diff --git a/src/components/Farm/UniV3Rewards/Apr.tsx b/src/components/Farm/UniV3Rewards/Apr.tsx new file mode 100644 index 00000000..d1362687 --- /dev/null +++ b/src/components/Farm/UniV3Rewards/Apr.tsx @@ -0,0 +1,146 @@ +import React, { useContext, useState } from "react"; +import { useQuery, gql } from "@apollo/client"; +import { ethers } from "ethers"; +import { Contract } from "ethers-multicall"; +import NumberFormat from "react-number-format"; +import { oraclesContext, signerContext, tokensContext } from "../../../state"; +import { getPriceInUSDFromPair } from "../../../utils/utils"; +import { computeIncentiveId } from "../../../utils/univ3"; +import { IncentiveType } from "./types"; + +type props = { + incentive: IncentiveType; + stakerContractRead: Contract | undefined; +}; + +const Apr = ({ incentive, stakerContractRead }: props) => { + const signer = useContext(signerContext); + const oracles = useContext(oraclesContext); + const tokens = useContext(tokensContext); + const [apr, setApr] = useState(0); + + const TVL = gql` + query aprs { + apr(id: "1") { + id + totalAmount0 + totalAmount1 + } + positions(where: { staked: true, stakedBlockNumber_gt: 16678120 }) { + id + } + } + `; + + const calculateClaimableRewards = async (stakedLpTokens: any) => { + let claimableReward = ethers.BigNumber.from("0"); + const rewardCalls = new Array(); + if (stakedLpTokens.length > 0) { + for (let i = 0; i < stakedLpTokens.length; i += 1) { + rewardCalls.push(await stakerContractRead?.getRewardInfo(incentive, stakedLpTokens[i].id)); + } + const rewards = await signer.ethcallProvider?.all(rewardCalls); + + rewards?.forEach((reward) => { + claimableReward = claimableReward.add(reward[0]); + }); + } + + return claimableReward; + }; + + const calculateApr = async (lpData: any) => { + if ( + signer && + oracles.wethOracleRead && + oracles.tcapOracleRead && + tokens.ctxPoolTokenRead && + stakerContractRead && + lpData && + incentive + ) { + const incentiveId = computeIncentiveId(incentive); + const wethOraclePriceCall = await oracles.wethOracleRead?.getLatestAnswer(); + const tcapOraclePriceCall = await oracles.tcapOracleRead?.getLatestAnswer(); + const reservesCtxPoolCall = await tokens.ctxPoolTokenRead?.getReserves(); + const incentivesCall = await stakerContractRead?.incentives(incentiveId); + + // @ts-ignore + const [wethOraclePrice, tcapOraclePrice, reservesCtxPool, incentivesInfo] = + await signer.ethcallProvider?.all([ + wethOraclePriceCall, + tcapOraclePriceCall, + reservesCtxPoolCall, + incentivesCall, + ]); + + const currentPriceETH = ethers.utils.formatEther(wethOraclePrice.mul(10000000000)); + const tcapPrice = ethers.utils.formatEther(tcapOraclePrice); + const currentPriceCTX = await getPriceInUSDFromPair( + reservesCtxPool[0], + reservesCtxPool[1], + parseFloat(currentPriceETH) + ); + const incentiveReward = ethers.BigNumber.from(incentivesInfo[0]); + const claimableReward = await calculateClaimableRewards(lpData.positions); + const unclaimedReward = ethers.utils.formatEther(incentiveReward.sub(claimableReward)); + + let tvlUsd = 0; + if (lpData.apr) { + tvlUsd = + parseFloat(tcapPrice) * lpData.apr.totalAmount0 + + parseFloat(currentPriceETH) * lpData.apr.totalAmount1; + } + const remainingSeconds = incentive.endTime - Date.now() / 1000; + if (remainingSeconds > 0) { + const remainingDays = remainingSeconds / (3600 * 24); + const rewardRate = parseFloat(unclaimedReward) / remainingDays; + const ONE_YEAR = 365; + const aprNumerator = rewardRate * currentPriceCTX * ONE_YEAR * 100; + if (tvlUsd === 0) { + setApr(10); + } else { + const aprValue = aprNumerator / tvlUsd; + setApr(aprValue); + } + } else { + setApr(-1); + } + } + }; + + const { loading } = useQuery(TVL, { + fetchPolicy: "no-cache", + pollInterval: 400000, + notifyOnNetworkStatusChange: true, + onError: (error) => { + console.log(error); + }, + onCompleted: (data: any) => { + if (signer && data) { + calculateApr(data); + } else { + setApr(10); + } + }, + }); + + return ( + <> + {apr >= 0 ? ( + + ) : ( + Expired + )} + + ); +}; + +export default Apr; diff --git a/src/components/Farm/UniV3Rewards/ClaimReward.tsx b/src/components/Farm/UniV3Rewards/ClaimReward.tsx new file mode 100644 index 00000000..872dc59a --- /dev/null +++ b/src/components/Farm/UniV3Rewards/ClaimReward.tsx @@ -0,0 +1,117 @@ +import React, { useState } from "react"; +import { Button, Form } from "react-bootstrap"; +import { ethers } from "ethers"; +import Modal from "react-bootstrap/esm/Modal"; +import { useTranslation } from "react-i18next"; +import "../../../styles/modal.scss"; +import { errorNotification, notifyUser } from "../../../utils/utils"; +import { IncentiveType } from "./types"; + +type props = { + show: boolean; + ownerAddress: string; + currentReward: number; + incentive: IncentiveType; + stakerContract?: ethers.Contract; + onHide: () => void; + refresh: () => void; +}; + +const ClaimReward = ({ + show, + ownerAddress, + currentReward, + incentive, + stakerContract, + onHide, + refresh, +}: props) => { + const { t } = useTranslation(); + const [rewardText, setRewardText] = useState(""); + const [canClaim, setCanClaim] = useState(true); + + const onChangeReward = (event: React.ChangeEvent) => { + setRewardText(event.target.value); + }; + + const maxReward = async (e: React.MouseEvent) => { + e.preventDefault(); + setRewardText(currentReward.toString()); + }; + + const claim = async (event: React.MouseEvent) => { + event.preventDefault(); + if (stakerContract && canClaim) { + setCanClaim(false); + if (rewardText && parseFloat(rewardText) > 0) { + if (parseFloat(rewardText) <= currentReward) { + try { + const tx = await stakerContract.claimReward( + incentive.rewardToken, + ownerAddress, + ethers.utils.parseEther(rewardText) + ); + notifyUser(tx, refresh); + setRewardText(""); + onHide(); + } catch (error: any) { + errorNotification(t("errors.tran-rejected")); + } + } else { + errorNotification("Not enough CTX reward"); + } + } else { + errorNotification(t("errors.empty")); + } + setCanClaim(true); + } + }; + + return ( + { + setRewardText(""); + onHide(); + }} + > + + + <>{t("farming.univ3.claim-reward")} + + + +
+
+ + + <>{t("farming.univ3.amount-claim")} + + + + MAX + + + + +
+ + + + + + ); +}; + +export default ClaimReward; diff --git a/src/components/Farm/UniV3Rewards/Rewards.tsx b/src/components/Farm/UniV3Rewards/Rewards.tsx new file mode 100644 index 00000000..a7b90fd6 --- /dev/null +++ b/src/components/Farm/UniV3Rewards/Rewards.tsx @@ -0,0 +1,830 @@ +import React, { useContext, useState } from "react"; +import Button from "react-bootstrap/esm/Button"; +import Card from "react-bootstrap/esm/Card"; +import OverlayTrigger from "react-bootstrap/esm/OverlayTrigger"; +import Table from "react-bootstrap/esm/Table"; +import Tooltip from "react-bootstrap/esm/Tooltip"; +import Spinner from "react-bootstrap/Spinner"; +import { useMediaQuery } from "react-responsive"; +import { useTranslation } from "react-i18next"; +import { BigNumber, ethers } from "ethers"; +import NumberFormat from "react-number-format"; +import { Contract } from "ethers-multicall"; +import { useQuery, gql } from "@apollo/client"; +import { FaArrowsAltH, FaExternalLinkAlt } from "react-icons/fa"; +import { ReactComponent as TcapIcon } from "../../../assets/images/tcap-coin.svg"; +import { ReactComponent as CtxIcon } from "../../../assets/images/ctx-coin.svg"; +import { ReactComponent as WETHIcon } from "../../../assets/images/graph/weth.svg"; +import { ReactComponent as UNIIconSmall } from "../../../assets/images/vault/uni.svg"; +import { ISignerContext, networkContext, tokensContext } from "../../../state"; +import { NETWORKS } from "../../../utils/constants"; +import { UNIV3, computeIncentiveId } from "../../../utils/univ3"; +import { + capitalize, + calculateCumulativePrice, + errorNotification, + notifyUser, + numberFormatStr, + isOptimism, +} from "../../../utils/utils"; +import { IncentiveType, PositionType, positionDefaultValues, StakeStatus } from "./types"; +import ClaimReward from "./ClaimReward"; +import Stake from "./Stake"; +import Apr from "./Apr"; + +type props = { + ownerAddress: string; + signer: ISignerContext; + stakerContract: ethers.Contract | undefined; + stakerContractRead: Contract | undefined; + nfpmContract: ethers.Contract | undefined; + nfpmContractRead: Contract | undefined; + poolContractRead: Contract | undefined; +}; + +type btnProps = { + position: PositionType; +}; + +const Rewards = ({ + ownerAddress, + signer, + stakerContract, + stakerContractRead, + nfpmContract, + nfpmContractRead, + poolContractRead, +}: props) => { + const { t } = useTranslation(); + const tokens = useContext(tokensContext); + const currentNetwork = useContext(networkContext); + const disableActions = isOptimism(currentNetwork.chainId); + const isMobile = useMediaQuery({ query: "(max-width: 850px)" }); + const [ethTcapIncentive, setEthTcapIncentive] = useState>([]); + const [ethTcapPositions, setEthTcapPositions] = useState>([]); + const [cumulativePrice, setCumulativePrice] = useState(0); + const [availableReward, setAvailableReward] = useState(0); + const [showClaim, setShowClaim] = useState(false); + const [firstLoad, setFirstLoad] = useState(true); + + const OWNER_POSITIONS = gql` + query ownerPools($owner: String!) { + positions(where: { owner: $owner, liquidity_gt: 0 }, orderBy: id) { + id + poolAddress + tickLower { + tickIdx + price0 + price1 + } + tickUpper { + tickIdx + price0 + price1 + } + liquidity + } + } + `; + + const confIncetive = (): any => { + let ethTcapPool = UNIV3.mainnet.tcapPool; + switch (currentNetwork.chainId) { + case NETWORKS.goerli.chainId: + ethTcapPool = UNIV3.goerli.tcapPool; + break; + default: + ethTcapPool = UNIV3.mainnet.tcapPool; + break; + } + setEthTcapIncentive(ethTcapPool.incentives); + + return ethTcapPool; + }; + + const loadData = async (positionsData: any) => { + const ethTcapPool = confIncetive(); + const ethPositions = new Array(); + + // Read pool price + const poolObserveCall = await poolContractRead?.observe([0, 10]); + // Read available to claim reward + const availableRewardCall = await stakerContractRead?.rewards( + ethTcapPool.incentives[0].rewardToken, + ownerAddress + ); + + // @ts-ignore + const [observations, availableRewardWei] = await signer.ethcallProvider?.all([ + poolObserveCall, + availableRewardCall, + ]); + const tickCumulative0 = observations.tickCumulatives[0]; + const tickCumulative1 = observations.tickCumulatives[1]; + + const currentCumPrice = calculateCumulativePrice(tickCumulative0, tickCumulative1, 10); + setCumulativePrice(currentCumPrice); + setAvailableReward(parseFloat(ethers.utils.formatEther(availableRewardWei))); + + positionsData.positions.forEach(async (p: any) => { + if (p.poolAddress === ethTcapPool.id.toLowerCase()) { + const position = { ...positionDefaultValues }; + const incentiveId = computeIncentiveId(ethTcapPool.incentives[0]); + + let incentiveIdBefore = ""; + let incentiveIdBefore2 = ""; + let incentiveIdBefore3 = ""; + if (ethTcapPool.incentives.length > 1) { + incentiveIdBefore = computeIncentiveId(ethTcapPool.incentives[1]); + incentiveIdBefore2 = computeIncentiveId(ethTcapPool.incentives[2]); + incentiveIdBefore3 = computeIncentiveId(ethTcapPool.incentives[3]); + } + position.lpTokenId = p.id; + position.poolId = p.poolAddress; + position.tickLower = parseInt(p.tickLower.tickIdx); + position.tickLowerPrice0 = p.tickLower.price0; + position.tickLowerPrice1 = p.tickLower.price1; + position.tickUpper = parseInt(p.tickUpper.tickIdx); + position.tickUpperPrice0 = p.tickUpper.price0; + position.tickUpperPrice1 = p.tickUpper.price1; + position.incetiveId = incentiveId; + position.incentiveIndex = 0; + position.liquidity = ethers.utils.formatEther(p.liquidity); + + const nfpCall = await nfpmContractRead?.getApproved(p.id); + const lpDepositsCall = await stakerContractRead?.deposits(p.id); + const lpStakesCall = await stakerContractRead?.stakes(p.id, incentiveId); + const lpStakesCallBefore = await stakerContractRead?.stakes(p.id, incentiveIdBefore); + const lpStakesCallBefore2 = await stakerContractRead?.stakes(p.id, incentiveIdBefore2); + const lpStakesCallBefore3 = await stakerContractRead?.stakes(p.id, incentiveIdBefore3); + + // @ts-ignore + const [ + nfpAddress, + depositsEth, + stakesEth, + stakesEthBefore, + stakesEthBefore2, + stakesEthBefore3, + ] = await signer.ethcallProvider?.all([ + nfpCall, + lpDepositsCall, + lpStakesCall, + lpStakesCallBefore, + lpStakesCallBefore2, + lpStakesCallBefore3, + ]); + + if ( + depositsEth.owner === ownerAddress && + depositsEth.tickLower === position.tickLower && + depositsEth.tickUpper === position.tickUpper + ) { + position.status = StakeStatus.deposited; + // Check if it is staked on the previous Incentive + if (stakesEthBefore3.liquidity > BigNumber.from("0")) { + position.status = StakeStatus.staked; + position.incetiveId = incentiveIdBefore3; + position.incentiveIndex = 3; + const rewardInfoCall = await stakerContractRead?.getRewardInfo( + ethTcapPool.incentives[3], + p.id + ); + // @ts-ignore + const [rewardInfo] = await signer.ethcallProvider?.all([rewardInfoCall]); + position.reward = parseFloat(ethers.utils.formatEther(rewardInfo.reward)); + } else if (stakesEthBefore2.liquidity > BigNumber.from("0")) { + // Check if it is staked on the previous Incentive + position.status = StakeStatus.staked; + position.incetiveId = incentiveIdBefore2; + position.incentiveIndex = 2; + const rewardInfoCall = await stakerContractRead?.getRewardInfo( + ethTcapPool.incentives[2], + p.id + ); + // @ts-ignore + const [rewardInfo] = await signer.ethcallProvider?.all([rewardInfoCall]); + position.reward = parseFloat(ethers.utils.formatEther(rewardInfo.reward)); + } else if (stakesEthBefore.liquidity > BigNumber.from("0")) { + // Check if it is staked on the previous Incentive + position.status = StakeStatus.staked; + position.incetiveId = incentiveIdBefore; + position.incentiveIndex = 1; + const rewardInfoCall = await stakerContractRead?.getRewardInfo( + ethTcapPool.incentives[1], + p.id + ); + // @ts-ignore + const [rewardInfo] = await signer.ethcallProvider?.all([rewardInfoCall]); + position.reward = parseFloat(ethers.utils.formatEther(rewardInfo.reward)); + } else if (stakesEth.liquidity > BigNumber.from("0")) { + position.status = StakeStatus.staked; + const rewardInfoCall = await stakerContractRead?.getRewardInfo( + ethTcapPool.incentives[0], + p.id + ); + // @ts-ignore + const [rewardInfo] = await signer.ethcallProvider?.all([rewardInfoCall]); + position.reward = parseFloat(ethers.utils.formatEther(rewardInfo.reward)); + } + } else if (nfpAddress.toLowerCase() !== UNIV3.stakerAddress.toLowerCase()) { + position.status = StakeStatus.not_approved; + } + + // Check if it is in range + position.priceInRange = + currentCumPrice >= position.tickUpperPrice1 && + currentCumPrice <= position.tickLowerPrice1; + + ethPositions.push(position); + setEthTcapPositions([...ethPositions]); + } + }); + }; + + const { loading, refetch } = useQuery(OWNER_POSITIONS, { + fetchPolicy: "no-cache", + pollInterval: 90000, + notifyOnNetworkStatusChange: true, + variables: { owner: ownerAddress.toLowerCase() }, + onError: (error) => { + console.log(error); + }, + onCompleted: (data: any) => { + if (signer.signer && ownerAddress !== "") { + if (!disableActions) { + loadData(data); + setFirstLoad(false); + } + } else { + confIncetive(); + } + }, + }); + + const refresh = async () => { + try { + await refetch(); + } catch (error: any) { + console.log(error); + } + }; + + const lpUrl = () => { + if (disableActions) { + return "https://app.uniswap.org/"; + } + const tcapAddress = tokens.tcapToken?.address; + let { feeTier } = UNIV3.mainnet.tcapPool; + let wethAddress = NETWORKS.mainnet.eth; + if (currentNetwork.chainId === NETWORKS.goerli.chainId) { + feeTier = UNIV3.goerli.tcapPool.feeTier; + wethAddress = "0xc778417E063141139Fce010982780140Aa0cD5Ab"; + } + + return `https://app.uniswap.org/#/add/${wethAddress}/${tcapAddress}/${feeTier}?chain=${currentNetwork.name}`; + }; + + const incentiveEndDate = () => { + if (ethTcapIncentive.length > 0) { + const d = new Date(ethTcapIncentive[0].endTime * 1000); + return d.toLocaleDateString(); + } + return "-"; + }; + + const withdraw = async (lpTokenId: number) => { + if (stakerContract) { + try { + const tx = await stakerContract.withdrawToken(lpTokenId, ownerAddress, "0x"); + notifyUser(tx, refresh); + refresh(); + } catch (error: any) { + errorNotification("Transaction Rejected"); + console.log(error); + } + } + }; + + const ClaimButton = () => { + const btnDisabled = !(availableReward > 0); + return ( + + ); + }; + + const WithdrawButton = ({ position }: btnProps) => { + const title = t("exit"); + let btnDisabled = true; + + // eslint-disable-next-line + if (position.status === StakeStatus.deposited) { + btnDisabled = false; + } + + return ( + + ); + }; + + const sortPositions = (p1: PositionType, p2: PositionType) => p1.lpTokenId - p2.lpTokenId; + + const AprOverlayTrigger = (): React.ReactElement => ( + + Incentive ends on {incentiveEndDate()} + + } + > + + + ); + + const StatusToolTip = (): React.ReactElement => ( + <> + Pending: LP token needs to be approved in + order to be staked.
+ Unstaked: LP token hasn't been staked or deposited.{" "} +
+ Deposited: LP token needs to be stake to earn + rewards.
+ Staked: LP token is staked and earning rewards.{" "} +
+ Out of range: You aren't earning rewards + because the price is out of your position range.
+ Expired: LP token is staked on an incentive + that already ended. + + ); + + const CurrentRewardToolTip = (): React.ReactElement => ( + <> + Amount of CTX that it's been earn while the LP token is staked. You must unstake the LP token + in order to claim the reward.s + + ); + + const RenderHeader = (): React.ReactElement => ( +
+
+
+
+
Fee tier:
+
+
+ +
+
+
+
+
TCAP/WETH Price:
+
+
+ +
+
+
+
+
APR:
+ {isMobile && } +
+
+ + {!isMobile && } +
+
+
+
+
+
Available to Claim
+ + In order to claim rewards, you need to unstake your token. + + } + > + + +
:
+
+
+
+ + +
+
+ +
+
+
+
+ ); + + const RenderTableHeader = () => ( + + + + + Position + + Position Min and Max price represents TCAP per WETH.
+ + } + > + +
+ + + Status + + + + } + > + + + + +
+
Current Reward
+
+ + + + } + > + + +
+
+ + + + + ); + + const RenderStatusLabel = (p: PositionType) => { + let lbl = capitalize(p.status); + let classN = p.status; + if (p.status === StakeStatus.not_approved) { + lbl = "Pending"; + } + if (!p.priceInRange) { + lbl = "Out of range"; + classN = StakeStatus.out_range; + } + if (p.incentiveIndex === 1) { + lbl = "Expired"; + classN = StakeStatus.out_range; + } + + return ( +
+ {lbl} +
+ ); + }; + + const RenderRewards = () => ( + <> + + + + + {ethTcapPositions.sort(sortPositions).map((position, index) => ( + + + + + + + + ))} + +
+ + + +
+
+ Min: {numberFormatStr(position.tickUpperPrice1.toString(), 4, 4)} +
+ +
+ Max: {numberFormatStr(position.tickLowerPrice1.toString(), 4, 4)} +
+
+
+ TCAP/WETH Pool + Uniswap +
+
{RenderStatusLabel(position)} + {" "} + CTX + + <> + + Position + + refresh()} + /> + + +
+ + ); + + const RenderRewardsMobile = () => ( +
+ {ethTcapPositions.sort(sortPositions).map((position, index) => ( + + +
+
+ + +
+
+ TCAP/WETH Position + + Uniswap + +
+
+
+ +
+
Range
+
+
+
+ Min: {numberFormatStr(position.tickUpperPrice1.toString(), 4, 4)} +
+ +
+ Max: {numberFormatStr(position.tickLowerPrice1.toString(), 4, 4)} +
+
+
+
+
Status:
+ + + + } + > + + +
+
{RenderStatusLabel(position)}
+
+
+
+
Reward:
+ + + + } + > + + +
+
+ +
+
+
+ + refresh()} + /> + + +
+ ))} +
+ ); + + const RenderEmptyLP = () => ( +
+
+
+ +
+
Current APR:
+ +
+
+
End Date:
+ {incentiveEndDate()} +
+
+ + Create Position + +
+
+ ); + + const RenderMobile = () => ( + <> + + + + + + + + ); + + return ( + + {!isMobile ? ( + <> + +

Uniswap V3 Liquidity Rewards

+ {availableReward > 0.001 && ethTcapPositions.length === 0 && ( +
+
Unclaimed Reward:
+
+ + +
+
+ +
+
+ )} +
+ + {ownerAddress !== "" ? ( + <> + {loading && firstLoad ? ( + + ) : ( + <>{ethTcapPositions.length === 0 ? RenderEmptyLP() : RenderRewards()} + )} + + ) : ( + + )} + + + ) : ( + <> + {ownerAddress !== "" ? ( + <> + {loading && firstLoad ? ( + + ) : ( + <>{ethTcapPositions.length === 0 ? RenderEmptyLP() : RenderMobile()} + )} + + ) : ( + + )} + + )} + { + setShowClaim(false); + }} + refresh={() => refresh()} + /> +
+ ); +}; + +export default Rewards; diff --git a/src/components/Farm/UniV3Rewards/Stake.tsx b/src/components/Farm/UniV3Rewards/Stake.tsx new file mode 100644 index 00000000..d53b2e23 --- /dev/null +++ b/src/components/Farm/UniV3Rewards/Stake.tsx @@ -0,0 +1,158 @@ +import React, { useEffect, useState } from "react"; +import Button from "react-bootstrap/esm/Button"; +import OverlayTrigger from "react-bootstrap/OverlayTrigger"; +import Tooltip from "react-bootstrap/Tooltip"; +import { BigNumber, ethers } from "ethers"; +import { useTranslation } from "react-i18next"; +import { UNIV3, encodeIncentive } from "../../../utils/univ3"; +import { IncentiveType, PositionType, StakeStatus } from "./types"; +import { notifyUser, errorNotification } from "../../../utils/utils"; + +type props = { + ownerAddress: string; + position: PositionType; + incentive: IncentiveType; + nfpmContract: ethers.Contract | undefined; + stakerContract: ethers.Contract | undefined; + refresh: () => void; +}; + +const Stake = ({ + ownerAddress, + position, + incentive, + nfpmContract, + stakerContract, + refresh, +}: props) => { + const { t } = useTranslation(); + const [title, setTitle] = useState("Stake"); + const [btnDisabled, setBtnDisabled] = useState(true); + const [showToolTip, setShowToolTip] = useState(true); + + useEffect(() => { + const cDate = new Date(); + const currentTime = cDate.getTime() / 1000; + let btnTitle = "Stake"; + let bDisabled = true; + if (position.status === StakeStatus.not_approved) { + btnTitle = t("approve"); + bDisabled = false; + } else if (position.status === StakeStatus.staked) { + bDisabled = false; + btnTitle = t("unstake"); + } else if (currentTime < incentive.startTime) { + bDisabled = false; + btnTitle = t("deposit"); + } else if (currentTime >= incentive.startTime && currentTime <= incentive.endTime) { + // eslint-disable-next-line + bDisabled = !(position.status === StakeStatus.empty || position.status === StakeStatus.deposited); + // eslint-disable-next-line + } else { + bDisabled = true; + } + setTitle(btnTitle); + setBtnDisabled(bDisabled); + // eslint-disable-next-line + }, [position]); + + const approve = async () => { + try { + setBtnDisabled(true); + const tx = await nfpmContract?.approve(UNIV3.stakerAddress, position.lpTokenId); + notifyUser(tx, refresh); + } catch (error: any) { + console.log(error); + errorNotification(t("errors.tran-rejected")); + } + setBtnDisabled(false); + }; + + const deposit = async () => { + try { + setBtnDisabled(true); + const tx = await nfpmContract?.safeTransferFrom( + ownerAddress, + UNIV3.stakerAddress, + BigNumber.from(position.lpTokenId), + encodeIncentive(incentive) + ); + notifyUser(tx, refresh); + } catch (error: any) { + console.log(error); + errorNotification(t("errors.tran-rejected")); + } + setBtnDisabled(false); + }; + + const stake = async () => { + try { + setBtnDisabled(true); + const tx = await stakerContract?.stakeToken(incentive, position.lpTokenId); + notifyUser(tx, refresh); + } catch (error: any) { + console.log(error); + errorNotification(t("errors.tran-rejected")); + } + setBtnDisabled(false); + }; + + const unstake = async () => { + try { + setBtnDisabled(true); + const tx = await stakerContract?.unstakeToken(incentive, position.lpTokenId); + notifyUser(tx, refresh); + } catch (error: any) { + console.log(error); + errorNotification(t("errors.tran-rejected")); + } + setBtnDisabled(false); + }; + + const handleOnClick = () => { + if (position.status === StakeStatus.not_approved) { + approve(); + } else if (position.status === StakeStatus.empty) { + deposit(); + } else if (position.status === StakeStatus.deposited) { + stake(); + } else if (position.status === StakeStatus.staked) { + unstake(); + } + }; + + return ( + <> + {position.incentiveIndex === 0 ? ( + + ) : ( + + You aren't earning rewards because your LP token is staked on an incentive that + already ended. + + } + > + + + )} + + ); +}; + +export default Stake; diff --git a/src/components/Farm/UniV3Rewards/index.tsx b/src/components/Farm/UniV3Rewards/index.tsx new file mode 100644 index 00000000..3fba6c68 --- /dev/null +++ b/src/components/Farm/UniV3Rewards/index.tsx @@ -0,0 +1,101 @@ +import React, { useContext, useEffect, useState } from "react"; +import { ApolloProvider, ApolloClient, InMemoryCache } from "@apollo/client"; +import { ethers } from "ethers"; +import { Contract } from "ethers-multicall"; +import UniswapV3Staker from "../../../contracts/UniswapV3Staker.json"; +import NonfungiblePositionManager from "../../../contracts/NonfungiblePositionManager.json"; +import UniV3Pool from "../../../contracts/UniV3Pool.json"; +import { networkContext, ISignerContext } from "../../../state"; +import { NETWORKS } from "../../../utils/constants"; +import { GRAPHQL_UNIV3_ENDPOINT, UNIV3 } from "../../../utils/univ3"; +import { isOptimism, toFragment } from "../../../utils/utils"; + +import Rewards from "./Rewards"; + +const clientOracle = (graphqlEndpoint: string) => + new ApolloClient({ + uri: graphqlEndpoint, + cache: new InMemoryCache(), + }); + +type props = { + signer: ISignerContext; +}; + +const UniV3Rewards = ({ signer }: props) => { + const currentNetwork = useContext(networkContext); + const [ownerAddress, setOwnerAddress] = useState(""); + const [stakerContract, setStakerContract] = useState(); + const [stakerContractRead, setStakerContractRead] = useState(); + const [nfpmContract, setNfpmContract] = useState(); + const [nfpmContractRead, setNfpmContractRead] = useState(); + const [poolContractRead, setPoolContractRead] = useState(); + const [apolloClient, setApolloClient] = useState( + clientOracle( + process.env.REACT_APP_NETWORK_ID === "1" + ? GRAPHQL_UNIV3_ENDPOINT.mainnet + : GRAPHQL_UNIV3_ENDPOINT.goerli + ) + ); + + useEffect(() => { + const load = async () => { + switch (currentNetwork.chainId) { + case NETWORKS.mainnet.chainId: + setApolloClient(clientOracle(GRAPHQL_UNIV3_ENDPOINT.mainnet)); + break; + case NETWORKS.goerli.chainId: + setApolloClient(clientOracle(GRAPHQL_UNIV3_ENDPOINT.goerli)); + break; + default: + setApolloClient(clientOracle(GRAPHQL_UNIV3_ENDPOINT.mainnet)); + break; + } + if (signer && !isOptimism(currentNetwork.chainId)) { + const stakerRead = new Contract(UNIV3.stakerAddress, UniswapV3Staker); + const staker = new ethers.Contract(UNIV3.stakerAddress, UniswapV3Staker, signer.signer); + const nfpmRead = new Contract( + UNIV3.NFPositionManagerAddress, + toFragment(NonfungiblePositionManager) + ); + const nfpm = new ethers.Contract( + UNIV3.NFPositionManagerAddress, + NonfungiblePositionManager, + signer.signer + ); + let poolRead = new Contract(UNIV3.mainnet.tcapPool.id, toFragment(UniV3Pool)); + if (currentNetwork.chainId === NETWORKS.goerli.chainId) { + poolRead = new Contract(UNIV3.goerli.tcapPool.id, toFragment(UniV3Pool)); + } + + setStakerContractRead(stakerRead); + setStakerContract(staker); + setNfpmContract(nfpm); + setNfpmContractRead(nfpmRead); + setPoolContractRead(poolRead); + if (signer.signer) { + const oAddress = await signer.signer.getAddress(); + setOwnerAddress(oAddress); + } + } + }; + load(); + // eslint-disable-next-line + }, [currentNetwork.chainId]); + + return ( + + + + ); +}; + +export default UniV3Rewards; diff --git a/src/components/Farm/UniV3Rewards/types.tsx b/src/components/Farm/UniV3Rewards/types.tsx new file mode 100644 index 00000000..3104f2b5 --- /dev/null +++ b/src/components/Farm/UniV3Rewards/types.tsx @@ -0,0 +1,50 @@ +export const StakeStatus = { + not_approved: "not_approved", + empty: "unstaked", + deposited: "deposited", + staked: "staked", + out_range: "out_range", + expired: "Expired", +}; + +export type IncentiveType = { + rewardToken: string; + pool: string; + startTime: number; + endTime: number; + refundee: string; +}; + +export type PositionType = { + lpTokenId: number; + poolId: string; + liquidity: string; + tickLower: number; + tickLowerPrice0: number; + tickLowerPrice1: number; + tickUpper: number; + tickUpperPrice0: number; + tickUpperPrice1: number; + priceInRange: boolean; + incetiveId: string; + incentiveIndex: number; + reward: number; + status: string; +}; + +export const positionDefaultValues = { + lpTokenId: 0, + poolId: "", + liquidity: "0.00", + tickLower: 0, + tickLowerPrice0: 1, + tickLowerPrice1: 1, + tickUpper: 0, + tickUpperPrice0: 1, + tickUpperPrice1: 1, + priceInRange: true, + incetiveId: "", + incentiveIndex: 0, + reward: 0, + status: StakeStatus.empty, +}; diff --git a/src/components/Farm/index.tsx b/src/components/Farm/index.tsx new file mode 100644 index 00000000..370fcd6b --- /dev/null +++ b/src/components/Farm/index.tsx @@ -0,0 +1,36 @@ +import React, { useContext } from "react"; +import Row from "react-bootstrap/esm/Row"; +import { useTranslation } from "react-i18next"; +import { useMediaQuery } from "react-responsive"; +import { networkContext, signerContext } from "../../state"; +import UniV3Rewards from "./UniV3Rewards/index"; +import LiquidityRewards from "./LiquidityRewards/index"; +import "../../styles/farm.scss"; +import { NETWORKS } from "../../utils/constants"; + +const Farm = () => { + const { t } = useTranslation(); + const isMobile = useMediaQuery({ query: "(max-width: 850px)" }); + const currentNetwork = useContext(networkContext); + const signer = useContext(signerContext); + + return ( +
+
+ {!isMobile ? ( +

+ <>{t("farming.farming")} +

+ ) : ( +
Uniswap V3 Liquidity Rewards
+ )} + + + {currentNetwork.chainId === NETWORKS.mainnet.chainId && } + +
+
+ ); +}; + +export default Farm; diff --git a/src/components/Faucet.tsx b/src/components/Faucet.tsx deleted file mode 100644 index 2981d9df..00000000 --- a/src/components/Faucet.tsx +++ /dev/null @@ -1,189 +0,0 @@ -import React, { useState, useContext } from "react"; -import Button from "react-bootstrap/esm/Button"; -import Card from "react-bootstrap/esm/Card"; -import Form from "react-bootstrap/esm/Form"; -import InputGroup from "react-bootstrap/esm/InputGroup"; -import { ethers } from "ethers"; -import TokensContext from "../state/TokensContext"; -import "../styles/faucet.scss"; -import { isValidAddress, errorNotification } from "../utils/utils"; - -const Faucet = () => { - const tokens = useContext(TokensContext); - const [walletAddress, setWalletAddress] = useState(""); - const [amount, setAmount] = useState(""); - - const onChangeWallet = (event: React.ChangeEvent) => { - setWalletAddress(event.target.value); - }; - - const onChangeAmount = (event: React.ChangeEvent) => { - setAmount(event.target.value); - }; - - const printDAI = async (event: React.MouseEvent) => { - event.preventDefault(); - if (tokens) { - const validAddress = await isValidAddress(walletAddress); - if (validAddress && tokens.daiToken) { - if (parseFloat(amount) < 1000) { - const value = ethers.utils.parseEther(amount.toString()); - await tokens.daiToken.mint(validAddress, value); - setWalletAddress(""); - setAmount(""); - } else { - errorNotification("Mint amount too high, try 1000 DAI"); - } - } - } - }; - - const printWBTC = async (event: React.MouseEvent) => { - event.preventDefault(); - if (tokens) { - const validAddress = await isValidAddress(walletAddress); - if (validAddress && tokens.wbtcToken) { - if (parseFloat(amount) <= 1) { - const value = ethers.utils.parseEther(amount.toString()); - await tokens.wbtcToken.mint(validAddress, value); - } else { - errorNotification("Mint amount too high, try 1 WBTC"); - } - - setWalletAddress(""); - setAmount(""); - } - } - }; - - const wrapETH = async (event: React.MouseEvent) => { - event.preventDefault(); - if (tokens) { - const validAddress = await isValidAddress(walletAddress); - if (validAddress && tokens.wethToken) { - const value = ethers.utils.parseEther(amount.toString()); - await tokens.wethToken.deposit({ value }); - setWalletAddress(""); - setAmount(""); - } - } - }; - - return ( -
-
-

Faucet

-
- -
-

Print DAI

-

Fake DAI will be created

-
-
- - Wallet Address - - - - - - Amount to Print - - - - - -
-
- -
-

Print WBTC

-

Fake WBTC will be created

-
-
- - Wallet Address - - - - - - Amount to Print - - - - - -
-
- -
-

Wrap ETH

-

You ETH will be turned into WETH

-
-
- - Wallet Address - - - - - - Amount to Print - - - - - - -
-
-
-
-
- ); -}; - -export default Faucet; diff --git a/src/components/Governance.tsx b/src/components/Governance.tsx deleted file mode 100644 index dc70ae85..00000000 --- a/src/components/Governance.tsx +++ /dev/null @@ -1,547 +0,0 @@ -import React, { useContext, useEffect, useState } from "react"; -import Card from "react-bootstrap/esm/Card"; -import Button from "react-bootstrap/esm/Button"; -import Col from "react-bootstrap/esm/Col"; -import Row from "react-bootstrap/esm/Row"; -import OverlayTrigger from "react-bootstrap/esm/OverlayTrigger"; -import Tooltip from "react-bootstrap/esm/Tooltip"; -import Table from "react-bootstrap/esm/Table"; -import ProgressBar from "react-bootstrap/esm/ProgressBar"; -import { ethers } from "ethers"; -import NumberFormat from "react-number-format"; -import { useQuery, gql } from "@apollo/client"; -import SignerContext from "../state/SignerContext"; -import TokensContext from "../state/TokensContext"; -import OraclesContext from "../state/OraclesContext"; -import GovernanceContext from "../state/GovernanceContext"; -import { Web3ModalContext } from "../state/Web3ModalContext"; -import { makeShortAddress, getProposalStatus, notifyUser, errorNotification } from "../utils/utils"; -import "../styles/governance.scss"; -import { ReactComponent as CtxIcon } from "../assets/images/ctx-coin.svg"; -import Loading from "./Loading"; -import { NewProposal } from "./modals/NewProposal"; -import { Delegate } from "./modals/Delegate"; -import { Vote } from "./modals/Vote"; - -const Governance = () => { - const [address, setAddress] = useState(""); - const [ctxBalance, setCtxBalance] = useState("0"); - const [currentVotes, setCurrentVotes] = useState("0"); - const [isLoading, setIsLoading] = useState(true); - const signer = useContext(SignerContext); - const web3Modal = useContext(Web3ModalContext); - const tokens = useContext(TokensContext); - const oracles = useContext(OraclesContext); - const governance = useContext(GovernanceContext); - const [noDelegate, setNoDelegate] = useState(false); - const [proposals, setProposals] = useState([]); - const [newProposalShow, setNewProposalShow] = useState(false); - const [delegateShow, setDelegateShow] = useState(false); - const [proposerThreshold, setProposerThreshold] = useState("0"); - const [quorumVotes, setQuorumVotes] = useState("0"); - const [currentBlock, setCurrentBlock] = useState(0); - const [currentTimestamp, setCurrentTimestamp] = useState(0); - const [gracePeriod, setGracePeriod] = useState(0); - - // Vote Modal - const [voteShow, setVoteShow] = useState(false); - const [voteProposal, setVoteProposal] = useState(); - const [voteFor, setVoteFor] = useState(0); - const [voteAgainst, setVoteAgainst] = useState(0); - const [voteEndTime, setVoteEndTime] = useState(""); - const [voteStatus, setVoteStatus] = useState(""); - - const etherscanURL = process?.env?.REACT_APP_ETHERSCAN; - - function clickVote( - proposal: any, - forVote: number, - against: number, - endTime: string, - status: string - ) { - setVoteProposal(proposal); - setVoteFor(forVote); - setVoteAgainst(against); - setVoteEndTime(endTime); - setVoteStatus(status); - setVoteShow(true); - } - - const PROPOSALS = gql` - query { - proposals(orderBy: id, orderDirection: desc) { - id - proposer { - id - } - targets - values - signatures - calldatas - status - description - startBlock - endBlock - executionETA - votes { - id - support - votes - } - } - } - `; - - const { data } = useQuery(PROPOSALS); - - const refresh = async () => { - try { - if (signer.signer && tokens.tcapToken && oracles.tcapOracle && tokens.ctxToken) { - const currentAddress = await signer.signer.getAddress(); - const delegateAddress = await tokens.ctxToken.delegates(currentAddress); - if (delegateAddress === ethers.constants.AddressZero) { - setNoDelegate(true); - } else { - setNoDelegate(false); - } - setAddress(makeShortAddress(delegateAddress)); - const currentCtxBalance = await tokens.ctxToken.balanceOf(currentAddress); - const tcapString = ethers.utils.formatEther(currentCtxBalance); - setCtxBalance(tcapString); - const votes = await tokens.ctxToken.getCurrentVotes(currentAddress); - setCurrentVotes(votes.toString()); - } - } catch (error) { - // catch error in case the vault screen is changed - } - }; - - useEffect(() => { - const loadAddress = async () => { - if ( - signer.signer && - tokens.tcapToken && - oracles.tcapOracle && - tokens.ctxToken && - governance.governorAlpha && - governance.timelock - ) { - const currentAddress = await signer.signer.getAddress(); - - const delegateAddress = await tokens.ctxToken.delegates(currentAddress); - if (delegateAddress === ethers.constants.AddressZero) { - setNoDelegate(true); - } else { - setNoDelegate(false); - } - setAddress(makeShortAddress(delegateAddress)); - const currentCtxBalance = await tokens.ctxToken.balanceOf(currentAddress); - const tcapString = ethers.utils.formatEther(currentCtxBalance); - setCtxBalance(tcapString); - const votes = await tokens.ctxToken.getCurrentVotes(currentAddress); - setCurrentVotes(ethers.utils.formatEther(votes)); - const currentThreshold = await governance.governorAlpha.proposalThreshold(); - setProposerThreshold(ethers.utils.formatEther(currentThreshold)); - const currentQuorum = await governance.governorAlpha.quorumVotes(); - setQuorumVotes(ethers.utils.formatEther(currentQuorum)); - const currentGrace = await governance.timelock.GRACE_PERIOD(); - setGracePeriod(currentGrace); - } - if (data) { - const currentProposals: any[] = []; - await data.proposals.forEach((p: any) => { - currentProposals.push(p); - }); - setProposals(currentProposals); - const network = process.env.REACT_APP_NETWORK_NAME; - const provider = ethers.getDefaultProvider(network, { - infura: process.env.REACT_APP_INFURA_ID, - alchemy: process.env.REACT_APP_ALCHEMY_KEY, - }); - const block = await provider.getBlockNumber(); - setCurrentBlock(block); - const timestamp = Date.now(); - setCurrentTimestamp(timestamp); - setIsLoading(false); - } - }; - - loadAddress(); - // eslint-disable-next-line - }, [data]); - - async function queueTransaction(id: number) { - if (governance.governorAlpha) { - try { - const tx = await governance.governorAlpha.queue(id); - notifyUser(tx, refresh); - } catch (error) { - if (error.code === 4001) { - errorNotification("Transaction rejected"); - } - } - } - } - - async function executeTransaction(id: number) { - if (governance.governorAlpha) { - try { - const tx = await governance.governorAlpha.execute(id); - notifyUser(tx, refresh); - } catch (error) { - if (error.code === 4001) { - errorNotification("Transaction rejected"); - } - } - } - } - - if (isLoading) { - return ; - } - - return ( -
-
-

Governance Portal

- - -

- - {" "} -

-

Total Supply

- - -

- - {" "} -

-

Quorum Required

- - -

- - -

-

Proposal Threshold

- - -

- {" "} - days -

-

Voting Period

- -
- - - {address !== "" ? ( - -
-

Balance

-

- {noDelegate ? ( - <> - ) : ( - <> - Delegated Account {address} - - )} -

-
- - -

- - -

-

CTX Balance

- -
- {currentVotes !== "0" && currentVotes !== "0.0" && ( - <> - - -

- - -

-

Delegated Votes

- -
- - )} -
- - {" "} -
- ) : ( - -
-

Connect Your Account

-

Vote and delegate with your CTX tokens connecting your account

-
- - - - - -
- )} - - - -

Proposals

-

Delegate CTX to yourself or others, to vote on the future of the protocol.

- - - - - - - - - - - - - {proposals.map((proposal, i) => { - let forVotes = 0; - let againstVotes = 0; - let { - id, - description, - status, - executionETA, - startBlock, - endBlock, - votes, - proposer, - } = proposal; - votes.forEach((vote: any) => { - if (vote.support) { - forVotes += parseInt(vote.votes); - } else { - againstVotes += parseInt(vote.votes); - } - }); - - const denominator = forVotes + againstVotes; - const forRate = denominator !== 0 ? (forVotes / denominator) * 100 : 0; - const againstRate = - denominator !== 0 ? (againstVotes / denominator) * 100 : 0; - - const timeBlock = endBlock - currentBlock; - const eta = executionETA || 0; - const endTimeMili = currentTimestamp + timeBlock * 13 * 1000; - let endTime = new Date(endTimeMili).toDateString(); - if (status !== "EXECUTED") { - status = getProposalStatus( - startBlock, - endBlock, - currentBlock, - forVotes, - againstVotes, - parseInt(quorumVotes), - eta, - gracePeriod - ); - } - - if (eta !== 0) { - endTime = new Date(eta * 1000).toDateString(); - } - - const animated = status === "PENDING" || status === "ACTIVE"; - const row = ( - - - - - - - - - ); - return row; - })} - -
#DescriptionProposerVotesStatus -
{id}{description} - - {makeShortAddress(proposer.id)} - - - - 👍: {forVotes.toLocaleString()} -
👎: {againstVotes.toLocaleString()} - - } - > - - - - -
-
- Closes on {endTime}} - > - - {status.charAt(0) + status.slice(1).toLowerCase()} - {(status === "PENDING" || - status === "ACTIVE" || - status === "QUEUED") && } - - - - {(() => { - switch (status) { - case "SUCCEEDED": - return ( - - ); - case "READY": - return ( - - ); - default: - return ( - - ); - } - })()} -
-
-
- -
-
- setDelegateShow(false)} - refresh={() => refresh()} - /> - setNewProposalShow(false)} - refresh={() => refresh()} - /> - { - setVoteShow(false); - }} - proposal={voteProposal} - forVote={voteFor} - against={voteAgainst} - endTime={voteEndTime} - status={voteStatus} - /> -
- ); -}; -export default Governance; diff --git a/src/components/Governance/Delegate.tsx b/src/components/Governance/Delegate.tsx index 393b7301..385448a1 100644 --- a/src/components/Governance/Delegate.tsx +++ b/src/components/Governance/Delegate.tsx @@ -3,8 +3,7 @@ import { Button, Form } from "react-bootstrap"; import { ethers, BigNumber } from "ethers"; import Modal from "react-bootstrap/esm/Modal"; import "../../styles/modal.scss"; -import SignerContext from "../../state/SignerContext"; -import TokensContext from "../../state/TokensContext"; +import { tokensContext, signerContext } from "../../state"; import { errorNotification, notifyUser } from "../../utils/utils"; type props = { @@ -14,6 +13,7 @@ type props = { addTodayWithdrawTime: () => void; onHide: () => void; refresh: () => void; + t: any; }; const Delegate = ({ @@ -23,47 +23,62 @@ const Delegate = ({ addTodayWithdrawTime, onHide, refresh, + t, }: props) => { - const tokens = useContext(TokensContext); - const signer = useContext(SignerContext); + const tokens = useContext(tokensContext); + const signer = useContext(signerContext); const [stakeText, setStakeText] = useState(""); const [ctxBalance, setCtxBalance] = useState(""); - const [isApproved, setIsApproved] = useState(false); const [canDelegate, setCanDelegate] = useState(true); + const [allowance, setAllowance] = useState(0n); + const [ctxAmount, setCtxAmount] = useState(BigNumber.from("0")); - // Infinite Approval - const infiniteApproveValue = BigNumber.from("39614081250000000000000000000"); + const loadData = async () => { + if (signer.signer && tokens.ctxTokenRead && delegatorFactory && delegatorAddress) { + const currentAddress = await signer.signer.getAddress(); + const currentCtxBalanceCall = await tokens.ctxTokenRead?.balanceOf(currentAddress); + const delegatorAllowanceCall = await tokens.ctxTokenRead?.allowance( + currentAddress, + delegatorFactory?.address + ); - useEffect(() => { - async function load() { - if (signer.signer && tokens.ctxTokenRead && delegatorFactory && delegatorAddress) { - const currentAddress = await signer.signer.getAddress(); - const currentCtxBalanceCall = await tokens.ctxTokenRead?.balanceOf(currentAddress); - const delegatorAllowanceCall = await tokens.ctxTokenRead?.allowance( - currentAddress, - delegatorFactory?.address - ); - // @ts-ignore - const [currentCtxBalance, delegatorAllowance] = await signer.ethcallProvider?.all([ - currentCtxBalanceCall, - delegatorAllowanceCall, - ]); - const ctxString = ethers.utils.formatEther(currentCtxBalance); - setCtxBalance(ctxString); - setIsApproved(delegatorAllowance.toString() !== "0"); - } + // @ts-ignore + const [currentCtxBalance, delegatorAllowance] = await signer.ethcallProvider?.all([ + currentCtxBalanceCall, + delegatorAllowanceCall, + ]); + + const ctxString = ethers.utils.formatEther(currentCtxBalance); + setCtxBalance(ctxString); + setAllowance(delegatorAllowance); + // setIsApproved(delegatorAllowance.toString() !== "0"); } - load(); + } + + useEffect(() => { + loadData(); // eslint-disable-next-line }, [delegatorAddress]); const onChangeStake = (event: React.ChangeEvent) => { setStakeText(event.target.value); + try { + const ctxAmount = ethers.utils.parseEther(event.target.value); + setCtxAmount(ctxAmount); + } catch (error) { + setCtxAmount(BigNumber.from("0")); + } }; const maxStake = async (e: React.MouseEvent) => { e.preventDefault(); setStakeText(ctxBalance); + try { + const ctxAmount = ethers.utils.parseEther(ctxBalance); + setCtxAmount(ctxAmount); + } catch (error) { + setCtxAmount(BigNumber.from("0")); + } }; const stake = async (event: React.MouseEvent) => { @@ -81,14 +96,15 @@ const Delegate = ({ setStakeText(""); onHide(); addTodayWithdrawTime(); - } catch (error) { - errorNotification("Not enough CTX balance."); + } catch (error: any) { + console.error("Transaction error: ", error); + errorNotification("Transaction error."); } } else { - errorNotification("Not enough CTX balance"); + errorNotification(t("errors.not-ctx")); } } else { - errorNotification("Field can't be empty"); + errorNotification(t("errors.empty")); } setCanDelegate(true); } @@ -97,18 +113,19 @@ const Delegate = ({ const infiniteApproveTokens = async (event: React.MouseEvent) => { event.preventDefault(); if (tokens.ctxToken) { + setCanDelegate(false); try { - const tx = await tokens.ctxToken.approve(delegatorFactory?.address, infiniteApproveValue); + const tx = await tokens.ctxToken.approve(delegatorFactory?.address, ctxAmount.add(10000)); + setTimeout(() => loadData(), 5000); notifyUser(tx, refresh); - setStakeText(""); - setIsApproved(true); - } catch (error) { + } catch (error: any) { if (error.code === 4001) { - errorNotification("Transaction rejected"); + errorNotification(t("errors.tran-rejected")); } else { - errorNotification("Transaction rejected"); + errorNotification(t("errors.tran-rejected")); } } + setCanDelegate(true); } }; @@ -124,51 +141,51 @@ const Delegate = ({ }} > - Stake & Delegate + + {t("governance.stake-delegate")} +
- {isApproved ? ( - <> -

- Stake and Delegate CTX to this Crypt Keeper. Each time you Stake and Delegate, you - must wait a minimum of 7 days before you can withdraw. -

- Amount to Stake - - - MAX - - - - - ) : ( -

Approve delegating CTX tokens. You only have to do this once.

- )} + <> +

{t("governance.stake-info")}

+ {t("governance.amount-stake")} + + + {t("max")} + + + +
- {isApproved ? ( + {ctxAmount.lte(allowance) ? ( ) : ( - )} diff --git a/src/components/Governance/Delegators.tsx b/src/components/Governance/Delegators.tsx index 1cca8d2d..835808b5 100644 --- a/src/components/Governance/Delegators.tsx +++ b/src/components/Governance/Delegators.tsx @@ -1,31 +1,53 @@ import React, { useContext, useState, useEffect } from "react"; -import { Button } from "react-bootstrap"; +import { Button, Dropdown } from "react-bootstrap"; import Row from "react-bootstrap/esm/Row"; import { useQuery, gql } from "@apollo/client"; +import { useTranslation } from "react-i18next"; import ProfileCard from "./ProfileCard"; import KeeperForm from "./KeeperForm"; import Delegate from "./Delegate"; import Withdraw from "./Withdraw"; import StakerStats from "./StakerStats"; -import SignerContext from "../../state/SignerContext"; -import GovernanceContext from "../../state/GovernanceContext"; -import { API_ENDPOINT, FEATURES } from "../../utils/constants"; -import { delegatorsInfo } from "./data"; +import { governanceContext, networkContext, signerContext } from "../../state"; +import { KEEPER_ALL_ENDPOINT } from "../../api"; +import { isInLayer1 } from "../../utils/utils"; type props = { currentSignerAddress: string; }; -type delegatorType = { +type keeperType = { id: string; delegatee: string; delegatedVotes: string; delegatedVotesRaw: string; tokenOwners: { stake: string; stakeRaw: string }[]; - totalHoldersRepresented: Number; + totalHoldersRepresented: number; +}; + +type keepeInfoType = { + id: number; + address: string; + name: string; + eth_name: string; + image: string; + expertise: string[]; + why: string; + discord: string; + twitter: string; + delegatedVotes: number; + totalHoldersRepresented: number; }; const Delegators = ({ currentSignerAddress }: props) => { - const [delegators, setDelegators] = useState([]); + const { t } = useTranslation(); + const sortOptions = [ + { key: "0", name: "Votes Descending" }, + { key: "1", name: "Votes Ascending" }, + { key: "2", name: "Delegates Descending" }, + { key: "3", name: "Delegates Ascending" }, + ]; + const [currentSorting, setCurrentSorting] = useState(sortOptions[0]); + const [keepers, setKeepers] = useState([]); const [keepersInfo, setKeepersInfo] = useState([]); const [keeperIndex, setKeeperIndex] = useState(-1); const [showKeeperForm, setShowKeeperForm] = useState(false); @@ -37,8 +59,9 @@ const Delegators = ({ currentSignerAddress }: props) => { const [withdrawTimes, setWithdrawTimes] = useState([]); const [updateData, setUpdateData] = useState(false); const [updateTimes, setUpdateTimes] = useState(false); - const signer = useContext(SignerContext); - const governance = useContext(GovernanceContext); + const currentNetwork = useContext(networkContext); + const signer = useContext(signerContext); + const governance = useContext(governanceContext); const DELEGATORS = gql` query DELEGATORS($currentSignerAddress: String!) { @@ -59,38 +82,89 @@ const Delegators = ({ currentSignerAddress }: props) => { variables: { currentSignerAddress }, }); + const getDelegatorData = (address: string, currentKeepers: any): keeperType | null => { + const index = currentKeepers.findIndex( + // @ts-ignore + (item) => item.delegatee.toLowerCase() === address.toLowerCase() + ); + if (index !== -1) { + return currentKeepers[index]; + } + return null; + }; + + const sortVotesDesc = (a: keepeInfoType, b: keepeInfoType) => b.delegatedVotes - a.delegatedVotes; + + const sortVotesAsc = (a: keepeInfoType, b: keepeInfoType) => a.delegatedVotes - b.delegatedVotes; + + const sortRepresentedDesc = (a: keepeInfoType, b: keepeInfoType) => + b.totalHoldersRepresented - a.totalHoldersRepresented; + + const sortRepresentedAsc = (a: keepeInfoType, b: keepeInfoType) => + a.totalHoldersRepresented - b.totalHoldersRepresented; + + const buildKeeperInfo = (dbInfo: any, currentDelegators: any) => { + const kInfo = new Array(); + for (let i = 0; i < dbInfo.length; i += 1) { + const kData = getDelegatorData(dbInfo[i].address, currentDelegators); + if (kData !== null) { + const info = { + id: dbInfo[i].id, + address: dbInfo[i].address, + name: dbInfo[i].name, + eth_name: dbInfo[i].eth_name, + image: dbInfo[i].image, + expertise: dbInfo[i].expertise, + why: dbInfo[i].why, + discord: dbInfo[i].discord, + twitter: dbInfo[i].twitter, + delegatedVotes: parseInt(kData.delegatedVotes), + totalHoldersRepresented: kData.totalHoldersRepresented, + }; + kInfo.push(info); + } + } + setKeepersInfo(kInfo.sort(sortVotesDesc)); + }; + useEffect(() => { - const loadKeepers = async () => { - if (governance.delegatorFactoryRead) { - if (data) { - const currentDelegators: any[] = []; - await data.delegators.forEach((d: any) => { - currentDelegators.push(d); + const loadData = async () => { + const loadKeepersFromDB = async (currentDelegators: any) => { + await fetch(KEEPER_ALL_ENDPOINT, { + method: "GET", + }) + .then((response) => response.json()) + .then((responseJson) => { + // console.log("responseJson: ", responseJson); + buildKeeperInfo(responseJson, currentDelegators); + }) + .catch((error) => { + console.error(error); + setKeepersInfo([]); }); - setDelegators(currentDelegators); + }; + const loadKeepers = async () => { + if (governance.delegatorFactoryRead) { + if (data) { + const currentDelegators: any[] = []; + await data.delegators.forEach((d: any) => { + currentDelegators.push(d); + }); + setKeepers(currentDelegators); + loadKeepersFromDB(currentDelegators); + } } - } + }; + await loadKeepers(); }; - const loadKeepersFromDB = async () => { - await fetch(`${API_ENDPOINT}/cryptkeeper/all`, { - method: "GET", - }) - .then((response) => response.json()) - .then((responseJson) => { - setKeepersInfo(responseJson); - }) - .catch((error) => { - console.error("Error getting all"); - console.error(error); - setKeepersInfo([]); - }); - }; - loadKeepers(); - if (FEATURES.KEEPERS_API) { + if (isInLayer1(currentNetwork.chainId)) { + loadData(); + } + /* if (FEATURES.KEEPERS_API) { loadKeepersFromDB(); } else { setKeepersInfo(delegatorsInfo); - } + } */ // eslint-disable-next-line }, [updateData, data, currentSignerAddress]); @@ -129,15 +203,15 @@ const Delegators = ({ currentSignerAddress }: props) => { setShowKeeperForm(false); }; - const getDelegatorData = (address: string): delegatorType | null => { - const index = delegators.findIndex( - (item) => item.delegatee.toLowerCase() === address.toLowerCase() + /* const getKeepersData = (address: string): infoType | null => { + const index = keepersInfo.findIndex( + (item) => item.address.toLowerCase() === address.toLowerCase() ); if (index !== -1) { - return delegators[index]; + return keepersInfo[index]; } return null; - }; + }; */ const addWithdrawTime = (wTime: number) => { const wtimes = withdrawTimes; @@ -153,41 +227,85 @@ const Delegators = ({ currentSignerAddress }: props) => { addWithdrawTime(stakeDate.getTime()); }; + const handleSortingChange = (option: string) => { + const sortO = parseInt(option); + const kInfo = keepersInfo; + if (sortO === 0) { + kInfo.sort(sortVotesDesc); + } else if (sortO === 1) { + kInfo.sort(sortVotesAsc); + } else if (sortO === 2) { + kInfo.sort(sortRepresentedDesc); + } else { + kInfo.sort(sortRepresentedAsc); + } + + setKeepersInfo(kInfo); + setCurrentSorting(sortOptions[parseInt(option)]); + }; + return (
- {signer.signer && ( - <> - {FEATURES.KEEPERS_API && ( -
- -
- )} - - - - - )} + + + +
+
+
+
Sort by:
+ handleSortingChange(eventKey || "0")}> + +
+ {currentSorting.name} +
+
+ + {sortOptions.map((item) => ( + + {item.name} + + ))} + +
+
+
+
+ +
+
- {keepersInfo.map((kInfo, index) => { - const delegator = getDelegatorData(kInfo.address); - if (delegator) { + {keepersInfo.map((keeperInfo, index) => { + const keeper = getDelegatorData(keeperInfo.address, keepers); + if (keeper) { return ( showUpdateKeeper(index)} openDelegate={openDelegate} openWithdraw={openWithdraw} addWithdrawTime={addWithdrawTime} - isSigner={delegator.delegatee.toLowerCase() !== currentSignerAddress.toLowerCase()} + isSigner={keeper.delegatee.toLowerCase() === currentSignerAddress.toLowerCase()} + t={t} /> ); } @@ -199,10 +317,11 @@ const Delegators = ({ currentSignerAddress }: props) => { show={showKeeperForm} currentAddress={currentSignerAddress} delegatorFactory={governance.delegatorFactory} - keepers={delegators} + keepers={keepers} keeperInfo={keeperIndex !== -1 ? keepersInfo[keeperIndex] : null} onHide={() => hideKeeperForm()} refresh={() => refresh()} + t={t} /> { setShowDelegate(false); }} refresh={() => refresh()} + t={t} /> { setShowWithdraw(false); }} refresh={() => refresh()} + t={t} />
); diff --git a/src/components/Governance/KeeperForm.tsx b/src/components/Governance/KeeperForm.tsx index 6569d7e7..0fa62336 100644 --- a/src/components/Governance/KeeperForm.tsx +++ b/src/components/Governance/KeeperForm.tsx @@ -6,7 +6,12 @@ import { ethers } from "ethers"; import Modal from "react-bootstrap/esm/Modal"; import { ProfileImage } from "./common"; import "../../styles/modal.scss"; -import { API_ENDPOINT } from "../../utils/constants"; +import { + API_ENDPOINT, + KEEPER_CREATE_ENDPOINT, + KEEPER_UPDATE_ENDPOINT, + getAccessToken, +} from "../../api"; import { errorNotification, getAddressFromENS, @@ -24,6 +29,7 @@ type props = { keeperInfo: any | null; onHide: () => void; refresh: () => void; + t: any; }; const KeeperForm = ({ @@ -35,6 +41,7 @@ const KeeperForm = ({ keeperInfo, onHide, refresh, + t, }: props) => { const [saving, setSaving] = useState(false); const [delegatee, setDelegatee] = useState(""); @@ -66,7 +73,7 @@ const KeeperForm = ({ }; useEffect(() => { - if (keeperInfo !== null) { + if (keeperInfo !== null && typeof keeperInfo !== "undefined") { setDelegatee(keeperInfo.eth_name); setAddress(keeperInfo.address); setName(keeperInfo.name); @@ -74,7 +81,7 @@ const KeeperForm = ({ setDiscord(keeperInfo.discord); setExpertise(keeperInfo.expertise); setWhy(keeperInfo.why); - setImageUrl(`${API_ENDPOINT}/${keeperInfo.image}`); + setImageUrl(`${API_ENDPOINT}${keeperInfo.image}`); } else { setDelegatee(""); setAddress(""); @@ -110,11 +117,11 @@ const KeeperForm = ({ if (re2.test(value.trim())) { add = await getAddressFromENS(value); if (add === null) { - setDelegateeError("Please enter a valid ENS name"); + setDelegateeError(t("errors.invalid-ens")); return false; } if (keeperExists(add)) { - setDelegateeError("Crypt keeper already exists for this address."); + setDelegateeError(t("governance.errors.exists")); return false; } @@ -126,11 +133,11 @@ const KeeperForm = ({ add = await isValidAddress(value.trim()); if (add === null) { - setDelegateeError("Please enter a valid address"); + setDelegateeError(t("errors.invalid-address")); return false; } if (keeperExists(add)) { - setDelegateeError("Crypt keeper already exists for this address."); + setDelegateeError(t("governance.errors.exists")); return false; } setIsEthName(false); @@ -138,17 +145,17 @@ const KeeperForm = ({ setDelegateeError(""); return true; } - setDelegateeError("Please enter a valid eth name or address"); + setDelegateeError(t("governance.errors.invalid-ens-address")); return false; }; const isNameValid = (value: string): boolean => { if (value.trim().length === 0) { - setNameError("Name cannot be empty"); + setNameError(t("errors.empty")); return false; } if (value.trim().length > 25) { - setNameError("Name is too long (25 characters max)"); + setNameError(t("governance.errors.too-long", { max: "25" })); return false; } setNameError(""); @@ -159,7 +166,7 @@ const KeeperForm = ({ const re = /^[a-zA-Z0-9_]{1,15}$/; if (value.trim().length > 0) { if (!re.test(value.trim())) { - setTwitterError("It is not a valid twitter username)"); + setTwitterError(t("governance.errors.invalid-twitter")); return false; } } @@ -168,10 +175,10 @@ const KeeperForm = ({ }; const isDiscordValid = (value: string): boolean => { - const re = /^.{3,32}#[0-9]{4}$/; + const re = /^.{3,35}$/; if (value.trim().length > 0) { if (!re.test(value.trim())) { - setDiscordError("It is not a valid twitter username)"); + setDiscordError(t("governance.errors.invalid-discord")); return false; } } @@ -181,11 +188,11 @@ const KeeperForm = ({ const isExpertiseValid = (value: string): boolean => { if (value.trim().length === 0) { - setExpertiseError("Expertise cannot be empty"); + setExpertiseError(t("errors.empty")); return false; } if (value.trim().length > 120) { - setExpertiseError("Expertise is too loong (120 characters max)"); + setExpertiseError(t("governance.errors.too-long", { max: "25" })); return false; } setExpertiseError(""); @@ -194,11 +201,11 @@ const KeeperForm = ({ const isWhyValid = (value: string): boolean => { if (value.trim().length === 0) { - setWhyError("Why field cannot be empty"); + setWhyError(t("errors.empty")); return false; } if (value.trim().length > 2500) { - setWhyError("Why field is too loong (2500 characters max)"); + setWhyError(t("governance.errors.too-long", { max: "2500" })); return false; } setWhyError(""); @@ -207,17 +214,21 @@ const KeeperForm = ({ const isImageValid = (value: File | null): boolean => { if (value === null) { - if (isNew) { - setImageError("Image cannot be empty"); - } - return !isNew; + /* if (isNew) { + // setImageError(t("errors.empty")); + errorNotification(t("errors.empty")); + } */ + return true; } if (value.type !== "image/png" && value.type !== "image/jpg" && value.type !== "image/jpeg") { - setImageError("Invalid file type"); + // setImageError(t("errors.invalid-file-type")); + errorNotification(t("errors.invalid-file-type")); return false; } - if (value.size > 100000) { - setImageError("Image max size is 100 KB"); + const maxSize = 250000; + if (value.size > maxSize) { + errorNotification(t("errors.invalid-image-size", { size: Math.round(maxSize / 1000) })); + // setImageError(t("errors.invalid-image-size", { size: Math.round(maxSize / 1000) })); setImageUrl(""); return false; } @@ -268,8 +279,8 @@ const KeeperForm = ({ } }; - const isFormDataValid = (): boolean => - isValidKeeper(delegatee) && + const isFormDataValid = async (): Promise => + await isValidKeeper(delegatee) && isNameValid(name) && isExpertiseValid(expertise) && isWhyValid(why) && @@ -277,7 +288,7 @@ const KeeperForm = ({ isDiscordValid(discord) && isImageValid(image); - const saveKeeper = async () => { + const saveKeeper = async (accessToken: string) => { const formData = new FormData(); formData.append("address", address); formData.append("name", name); @@ -286,21 +297,26 @@ const KeeperForm = ({ formData.append("why", why); formData.append("discord", discord); formData.append("twitter", twitter); - // @ts-ignore - formData.append("file", image); - await fetch(`${API_ENDPOINT}/cryptkeeper/create`, { + if (image !== null) { + // @ts-ignore + formData.append("file", image); + } + await fetch(KEEPER_CREATE_ENDPOINT, { method: "POST", + headers: { + Authorization: "Bearer ".concat(accessToken), + }, body: formData, }) .then((response) => response.json()) .then((responseJson) => { + console.log(responseJson.errors); if (responseJson.status === "error") { console.log(responseJson.errors); } }) .catch((error) => { - console.error("Error creating"); - errorNotification("Error creating keeper."); + errorNotification(t("governance.errors.creating-keeper")); console.error(error); }); }; @@ -308,23 +324,24 @@ const KeeperForm = ({ const createKeeper = async (event: React.MouseEvent) => { event.preventDefault(); setSaving(true); - /* if (delegatorFactory && isFormDataValid() && currentAddress !== "") { - saveKeeper(); - } */ - if (delegatorFactory && isFormDataValid() && currentAddress !== "") { - if (delegatee) { + const isValid = await isFormDataValid(); + + if (delegatorFactory && isValid && currentAddress !== "") { + const accessTokenResp = await getAccessToken(); + if (address && delegatee && accessTokenResp.success) { try { - const tx = await delegatorFactory.createDelegator(delegatee); + const tx = await delegatorFactory.createDelegator(address); notifyUser(tx, refresh); setDelegatee(""); - await saveKeeper(); + await saveKeeper(accessTokenResp.accessToken); refresh(); onHide(); - } catch (error) { - errorNotification("Delegator for the address already exists."); + } catch (error: any) { + console.log(error); + errorNotification(t("governance.errors.creating-keeper")); } } else { - errorNotification("Field can't be empty"); + errorNotification(t("errors.empty")); } } setSaving(false); @@ -332,7 +349,8 @@ const KeeperForm = ({ const updateKeeper = async () => { setSaving(true); - if (isFormDataValid() && currentAddress !== "") { + const iValid = await isFormDataValid(); + if (iValid && currentAddress !== "") { const formData = new FormData(); formData.append("keeper_id", keeperInfo.id); formData.append("name", name); @@ -340,34 +358,42 @@ const KeeperForm = ({ formData.append("why", why); formData.append("discord", discord); formData.append("twitter", twitter); - // @ts-ignore - formData.append("file", image); - - await fetch(`${API_ENDPOINT}/cryptkeeper/update`, { - method: "POST", - body: formData, - }) - .then((response) => response.json()) - .then((responseJson) => { - if (responseJson.status === "success") { - refresh(); - sendNotification( - "Crypt. Keepers", - "Crypt Keeper updated", - 3000, - onHide(), - 1000, - "success" - ); - } else { - console.log(responseJson.errors); - } + if (image !== null){ + // @ts-ignore + formData.append("file", image); + } + const accessTokenResp = await getAccessToken(); + if (accessTokenResp.success) { + await fetch(KEEPER_UPDATE_ENDPOINT, { + method: "POST", + headers: { + Authorization: "Bearer ".concat(accessTokenResp.accessToken), + }, + body: formData, }) - .catch((error) => { - errorNotification("Unexpected error saving to DB"); - console.error("Unexpected error"); - console.error(error); - }); + .then((response) => response.json()) + .then((responseJson) => { + if (responseJson.status === "success") { + refresh(); + sendNotification( + t("governance.success.title"), + t("governance.success.message"), + 3000, + onHide(), + 1000, + "success" + ); + } else { + console.log(responseJson.errors); + } + }) + .catch((error) => { + errorNotification(t("errors.unexpected")); + console.error(error); + }); + } else { + errorNotification("Couldn't retrieve API access token."); + } } setSaving(false); }; @@ -384,7 +410,7 @@ const KeeperForm = ({ }} > - Create Crypt Keeper + {t("governance.form.create")}
@@ -400,24 +426,22 @@ const KeeperForm = ({ size={120} /> )} - {imageError} - + @@ -453,7 +477,7 @@ const KeeperForm = ({ type="text" required className={expertiseError === "" ? "neon-green" : "neon-orange"} - placeholder="Expertise" + placeholder={t("governance.expertise")} value={expertise} onChange={onChangeExpertise} /> @@ -469,7 +493,7 @@ const KeeperForm = ({ as="textarea" rows={7} className={whyError === "" ? "neon-green" : "neon-orange"} - placeholder="Why?" + placeholder={t("governance.form.why")} value={why} onChange={onChangeWhy} /> diff --git a/src/components/Governance/ProfileCard.tsx b/src/components/Governance/ProfileCard.tsx index 0a25d0c0..da0fd694 100644 --- a/src/components/Governance/ProfileCard.tsx +++ b/src/components/Governance/ProfileCard.tsx @@ -12,12 +12,12 @@ import ethereumImg from "../../assets/images/Ethereum-ETH-icon.png"; import discordImg from "../../assets/images/discord-icon.jpg"; import twitterImg from "../../assets/images/twitter.svg"; import tallyImg from "../../assets/images/tally.png"; -import SignerContext from "../../state/SignerContext"; -import GovernanceContext from "../../state/GovernanceContext"; +import { governanceContext, signerContext } from "../../state"; import { VoteBadge, ProfileImage } from "./common"; import { ReactComponent as CtxIcon } from "../../assets/images/ctx-coin.svg"; import { infoType } from "./data"; -import { API_ENDPOINT, FEATURES } from "../../utils/constants"; +import { API_ENDPOINT } from "../../api/constants"; +import { FEATURES } from "../../utils/constants"; type props = { delegator: { @@ -34,6 +34,7 @@ type props = { openWithdraw: (currentDelegator: string, ownerStake: string, withdrawTime: number) => void; addWithdrawTime: (waitingTime: number) => void; isSigner: boolean; + t: any; }; const ProfileCard = ({ @@ -44,26 +45,27 @@ const ProfileCard = ({ openWithdraw, addWithdrawTime, isSigner, + t, }: props) => { const [shortAddress, setShortAddress] = useState(""); const [actionText, setActionText] = useState(""); const [briefLength, setBriefLength] = useState(239); const [tokenOwnerStake, setTokenOwnerStake] = useState<{ stake: string; stakeRaw: string }>(); const [withdrawTime, setWithdrawTime] = useState(0); - const signer = useContext(SignerContext); - const governance = useContext(GovernanceContext); + const signer = useContext(signerContext); + const governance = useContext(governanceContext); const mediaQuery = useMediaQuery("only screen and (max-height: 850px)"); const etherscanUrl = () => { if (process.env.REACT_APP_NETWORK_ID === "1") { return "https://etherscan.io"; } - return "https://rinkeby.etherscan.io"; + return "https://goerli.etherscan.io"; }; // @ts-ignore // eslint-disable-next-line react-hooks/exhaustive-deps - useEffect(async () => { + useEffect(() => { async function getProvider() { if (mediaQuery) { setBriefLength(143); @@ -88,8 +90,9 @@ const ProfileCard = ({ setActionText("Stake & Delegate"); } - await getProvider(); - }, [signer, delegator, governance, mediaQuery, addWithdrawTime]); + getProvider(); + // eslint-disable-next-line + }, [signer, delegator, governance, mediaQuery]); const onRemoveClick = async () => { if (tokenOwnerStake) { @@ -156,169 +159,165 @@ const ProfileCard = ({ }; return ( - <> - -
- - - - -
-
-
{info && info.name}
- {isSigner && FEATURES.KEEPERS_API && ( - - )} -
- - {ethNameFormat()} - + +
+ + + + +
+
+
{info && info.name}
+ {isSigner && ( + + )}
- -
-
- {shortAddress && ( - <> - {tokenOwnerStake && ( - - - - {round2(parseFloat(tokenOwnerStake.stake))} Staked - - - )} - - - - tally logo - - History - + + {ethNameFormat()} + +
+ +
+
+ {shortAddress && ( + <> + {tokenOwnerStake && ( + + + + {round2(parseFloat(tokenOwnerStake.stake))} {t("staked")} + - - ethereum logo - - Contract + )} + + + + tally logo + + {t("history")} + + + + ethereum logo + + {t("contract")} + + + + )} +
+ {info.discord && ( + {t("click-copy")}} + > + + discord logo + + {info.discord} - + )} -
- {info.discord && ( - Click to Copy} + {info.twitter && ( + + twitter logo + - - discord logo - - {info.discord} - - - - )} - {info.twitter && ( - - twitter logo - - {info.twitter} - - - )} -
-
-
-
-
-
Why me?
+ {info.twitter} + + + )}
- - {whyHtml(info.why)} - - } - > -

- {whyBrief()} - {info.why.length > briefLength && ...} -

-
-
- -
-
Expertise
-

{info?.expertise}

-
- +
+
+
+
{t("governance.why-me")}
- - - - {signer.signer && ( -
- {isTokenOwner() && ( - - - - )} - -
+
+ +
+
{t("governance.expertise")}
+

{info?.expertise}

+
+ +
+ + + + {signer.signer && ( +
+ {isTokenOwner() && ( + + -
- )} -
- - + )} + + + +
+ )} + + ); }; diff --git a/src/components/Governance/StakerStats.tsx b/src/components/Governance/StakerStats.tsx index 6b776419..51f5e049 100644 --- a/src/components/Governance/StakerStats.tsx +++ b/src/components/Governance/StakerStats.tsx @@ -1,77 +1,103 @@ import React, { useContext, useState, useEffect } from "react"; -import { Button } from "react-bootstrap"; +import { Accordion, Button } from "react-bootstrap"; import { ethers } from "ethers"; import Table from "react-bootstrap/esm/Table"; import NumberFormat from "react-number-format"; -import GovernanceContext from "../../state/GovernanceContext"; -import SignerContext from "../../state/SignerContext"; -import { errorNotification, notifyUser } from "../../utils/utils"; +import { useMediaQuery } from "react-responsive"; +import { governanceContext, networkContext, signerContext } from "../../state"; +import { errorNotification, isInLayer1, notifyUser } from "../../utils/utils"; -const sixMonthCtxRewardAmount = 60000; +const sixMonthCtxRewardAmount = 12654; const apyShowDate = new Date(1633654800 * 1000); type props = { refresh: () => void; updateData: boolean; withdrawTimes: number[]; updateTimes: boolean; + t: any; }; -const StakerStats = ({ refresh, updateData, withdrawTimes, updateTimes }: props) => { - const signer = useContext(SignerContext); - const governance = useContext(GovernanceContext); +const StakerStats = ({ refresh, updateData, withdrawTimes, updateTimes, t }: props) => { + const isMobile = useMediaQuery({ query: "(max-width: 850px)" }); + const currentNetwork = useContext(networkContext); + const signer = useContext(signerContext); + const governance = useContext(governanceContext); const [totalStaked, setTotalStaked] = useState("0.0"); const [stake, setStake] = useState("0.0"); const [rewards, setRewards] = useState("0.0"); const [waitTime, setWaitTime] = useState(604800); const [lastStakeDate, setLastStakeDate] = useState(); + const [periodEnds, setPeriodEnds] = useState(new Date()); useEffect(() => { async function load() { let currentWT = waitTime; - if (signer.signer && governance.delegatorFactoryRead) { - const currentSignerAddress = await signer.signer.getAddress(); + if ( + signer.ethcallProvider && + isInLayer1(currentNetwork.chainId) && + governance.delegatorFactoryRead + ) { + let currentSignerAddress = "0x0000000000000000000000000000000000000000"; + if (signer.signer) { + currentSignerAddress = await signer.signer.getAddress(); + } + const totalSupplyCall = await governance.delegatorFactoryRead?.totalSupply(); + const currentStakeCall = await governance.delegatorFactoryRead?.balanceOf( currentSignerAddress ); const currentRewardCall = await governance.delegatorFactoryRead?.earned( currentSignerAddress ); + const currentWaitTimeCall = await governance.delegatorFactoryRead?.waitTime(); + const currentPeriodEndsCall = await governance.delegatorFactoryRead?.periodFinish(); + // @ts-ignore - const [totalSupply, currentStake, currentReward, currentWaitTime] = + const [totalSupply, currentStake, currentReward, currentWaitTime, currentPeriodEnds] = await signer.ethcallProvider?.all([ totalSupplyCall, currentStakeCall, currentRewardCall, currentWaitTimeCall, + currentPeriodEndsCall, ]); + setTotalStaked(ethers.utils.formatEther(totalSupply)); setStake(ethers.utils.formatEther(currentStake)); setRewards(ethers.utils.formatEther(currentReward)); currentWT = parseInt(currentWaitTime.toString()); setWaitTime(currentWT); + + setPeriodEnds(new Date(currentPeriodEnds.toNumber() * 1000)); } + } + load(); + // eslint-disable-next-line + }, [signer, updateData,]); + + useEffect(() => { + async function load() { if (withdrawTimes.length > 0) { const lastDate = new Date(); - lastDate.setTime(withdrawTimes[0] - currentWT * 1000); + lastDate.setTime(withdrawTimes[0] - waitTime * 1000); setLastStakeDate(lastDate); } } load(); - // eslint-disable-next-line - }, [signer, updateData, withdrawTimes, updateTimes]); + }, [withdrawTimes, updateTimes, waitTime]); const claimRewards = async () => { if (governance.delegatorFactory) { try { const tx = await governance.delegatorFactory.getReward(); notifyUser(tx, refresh); - } catch (error) { + } catch (error: any) { if (error.code === 4001) { - errorNotification("Transaction rejected"); + errorNotification(t("errors.tran-rejected")); } else { - errorNotification("Insufficient funds to stake"); + errorNotification(t("errors.no-funds")); } } } @@ -80,7 +106,7 @@ const StakerStats = ({ refresh, updateData, withdrawTimes, updateTimes }: props) const apy = (): string => { const currentDate = new Date(); if (parseFloat(totalStaked) > 0 && currentDate > apyShowDate) { - const a = Math.round(((2 * sixMonthCtxRewardAmount) / parseFloat(totalStaked)) * 100); + const a = Math.round(((4 * sixMonthCtxRewardAmount) / parseFloat(totalStaked)) * 100); return a .toString() .replace(/\B(?=(\d{3})+(?!\d))/g, ",") @@ -89,61 +115,139 @@ const StakerStats = ({ refresh, updateData, withdrawTimes, updateTimes }: props) return "-"; }; + const StakedValue = () => ( + <> + + + ); + + const LastStakeDate = () => ( + <>{lastStakeDate != null ? lastStakeDate?.toLocaleDateString() : "-"} + ); + + const StakeReward = () => ( + + ); + + const ClaimButton = () => ( + + ); + + const RenderMobile = () => ( + + + +

{t("governance.stake-reward")}

+
+ +
+
{t("staked")}
+
+ +
+
+
+
+ {t("last")} {t("staked")} +
+
+
+ +
+
+
+
+
{t("governance.staked-reward")}
+
+ +
+
+
+
APR
+
+ {apy()} +
+
+
+
End Date
+
+
{periodEnds.toLocaleDateString()}
+
+
+ +
+
+
+ ); + return (
-

Stake Reward

- - - - - - - - - - - - - - - - - - -
StakedLast StakedStaked RewardAPY -
- {" "} - CTX - {lastStakeDate != null ? lastStakeDate?.toLocaleDateString() : "-"} - {" "} - CTX - - {apy()} - - -
+ {isMobile ? ( + + ) : ( + <> +

{t("governance.stake-reward")}

+ + + + + + + + + + + + + + + + + + + + +
{t("staked")} + <> + {t("last")} {t("staked")} + + {t("governance.staked-reward")}APREnd Date +
+ + + + + + + {apy()} + {periodEnds.toLocaleDateString()} + +
+ + )}
); }; diff --git a/src/components/Governance/Withdraw.tsx b/src/components/Governance/Withdraw.tsx index aa8f1e22..19a27e21 100644 --- a/src/components/Governance/Withdraw.tsx +++ b/src/components/Governance/Withdraw.tsx @@ -13,6 +13,7 @@ type props = { currentWithdrawTime: number; onHide: () => void; refresh: () => void; + t: any; }; const Withdraw = ({ @@ -23,6 +24,7 @@ const Withdraw = ({ currentWithdrawTime, onHide, refresh, + t, }: props) => { const [withdrawText, setWithdrawText] = useState(""); const [canWithdraw, setCanWithdraw] = useState(true); @@ -50,14 +52,14 @@ const Withdraw = ({ notifyUser(tx, refresh); setWithdrawText(""); onHide(); - } catch (error) { - errorNotification("Need to wait the minimum staking period"); + } catch (error: any) { + errorNotification(t("governance.errors.need-to-wait")); } } else { - errorNotification("Invalid amount to withdraw"); + errorNotification(t("governance.errors.invalid-amount")); } } else { - errorNotification("Field can't be empty"); + errorNotification(t("empty")); } setCanWithdraw(true); } @@ -80,20 +82,17 @@ const Withdraw = ({ }} > - Withdraw + {t("governance.withdraw")}
-

- Remove delegated votes from this Crypt Keeper. CTX must be staked and delegated for a - minimum of 7 days before you are eligible to withdraw. -

- Amount to remove +

{t("governance.withdraw-info")}

+ {t("governance.amount-remove")} - MAX + {t("max")} {currentWithdrawTime !== 0 && ( - * Eligible to withdraw on {withdrawDate()} + + {t("governance.withdraw-info2", { date: withdrawDate() })} + )}
@@ -116,7 +117,7 @@ const Withdraw = ({ onClick={withdraw} disabled={!canWithdraw} > - {canWithdraw ? "Withdraw" : "Withdrawing"} + {canWithdraw ? t("governance.withdraw") : t("governance.withdrawing")} diff --git a/src/components/Governance/common.tsx b/src/components/Governance/common.tsx index 06f56625..6e282936 100644 --- a/src/components/Governance/common.tsx +++ b/src/components/Governance/common.tsx @@ -23,7 +23,7 @@ const etherscanUrl = () => { }; export const VoteBadge = ({ address, amount, label }: badgeProps) => ( - + ethereum logo {amount} {label} diff --git a/src/components/Governance/data.tsx b/src/components/Governance/data.tsx index b4d0860d..6f410d62 100644 --- a/src/components/Governance/data.tsx +++ b/src/components/Governance/data.tsx @@ -69,7 +69,7 @@ export const delegatorsInfo = [ image: "indigo.png", expertise: ["Development", "Operations"], why: "I'm a security expert who specializes in smart contract and operational security auditing.\n\nI will vote for incentivized liquidity and staking, expansion to new projects/networks, and supporting operations that will drive adoption of TCAP.", - discord: " Indigo#3132", + discord: "Indigo#3132", twitter: "", }, { @@ -132,4 +132,14 @@ export const delegatorsInfo = [ discord: "PlayChessAndScrew#4369", twitter: "", }, + { + address: "0x3DE2EE1A6f7397653C8C7981ca7473487dE30c39", + name: "Noon", + eth_name: "0x3DE2EE1A6f7397653C8C7981ca7473487dE30c39", + image: "noontide.png", + expertise: ["Brand", "Market and Customer Analysis"], + why: "My academic background is in logical analysis and psychology. My professional expertise is market management and customer analysis via bleeding edge psychometric science in conjunction with psychoanalytic pragmatics.My essential aim is to ensure that the Cryptex system is continually moving towards a higher intrinsic value to the crypto community through rigorous analysis of its potential use cases. I believe Cryptex has not only the potential to become a fundamental institution of the future of finance, but it is incumbent upon it to do so as a consequence of its profoundly innovative architecture.What are my principles?1. My first and foremost priority is the development of potential use cases for the Cryptex system2. Priority two is the in-depth analysis of the needs of the Crypto community as it pertains to the potential use cases of the Cryptex System that are most desirable to it3. Priority three is ensuring the long term stability and profitability of Cryptex as a decentralized platform through", + discord: "Noon#0954", + twitter: "", + }, ]; diff --git a/src/components/Graph.tsx b/src/components/Graph.tsx deleted file mode 100644 index 00af3fb7..00000000 --- a/src/components/Graph.tsx +++ /dev/null @@ -1,377 +0,0 @@ -import React, { useContext, useEffect, useState } from "react"; -import "../styles/graph.scss"; -import Card from "react-bootstrap/esm/Card"; -import { BigNumber, ethers } from "ethers"; -import NumberFormat from "react-number-format"; -import { useQuery, gql } from "@apollo/client"; -import NetworkContext from "../state/NetworkContext"; -import TokensContext from "../state/TokensContext"; -import SignerContext from "../state/SignerContext"; -import OraclesContext from "../state/OraclesContext"; -import { ReactComponent as StakeIcon } from "../assets/images/graph/stake.svg"; -import { ReactComponent as H24Icon } from "../assets/images/graph/24h.svg"; -import { ReactComponent as TcapIcon } from "../assets/images/tcap-coin.svg"; -import { ReactComponent as WETHIcon } from "../assets/images/graph/weth.svg"; -import { ReactComponent as POLYGONIcon } from "../assets/images/graph/polygon3.svg"; -import { ReactComponent as DAIIcon } from "../assets/images/graph/DAI.svg"; -import { ReactComponent as AAVEIcon } from "../assets/images/graph/aave.svg"; -import { ReactComponent as LINKIcon } from "../assets/images/graph/chainlink.svg"; -import { ReactComponent as CtxIcon } from "../assets/images/ctx-coin.svg"; -import cryptexJson from "../contracts/cryptex.json"; -import { getPriceInUSDFromPair, isInLayer1, isUndefined, toUSD } from "../utils/utils"; -import { FEATURES, NETWORKS } from "../utils/constants"; -import Loading from "./Loading"; - -const Graph = () => { - const currentNetwork = useContext(NetworkContext); - const tokens = useContext(TokensContext); - const signer = useContext(SignerContext); - const oracles = useContext(OraclesContext); - const [tcapPrice, setTcapPrice] = useState("0.0"); - const [ctxPrice, setCtxPrice] = useState("0.0"); - const [ETHStake, setETHStake] = useState("0"); - const [DAIStake, setDAIStake] = useState("0"); - const [MATICStake, setMATICStake] = useState("0"); - const [aaveStake, setAaveStake] = useState("0"); - const [linkStake, setLinkStake] = useState("0"); - const [TotalStake, setTotalStake] = useState("0"); - const [totalSupply, setTotalSupply] = useState("0.0"); - const [loading, setLoading] = useState(true); - - const VAULTS_STATE = gql` - { - states { - amountStaked - id - } - } - `; - - const { data } = useQuery(VAULTS_STATE, { - notifyOnNetworkStatusChange: true, - pollInterval: 5000, - fetchPolicy: "no-cache", - }); - - const validOracles = (): boolean => { - let valid = - !isUndefined(oracles.wethOracleRead) && - !isUndefined(oracles.daiOracleRead) && - !isUndefined(oracles.tcapOracleRead) && - !isUndefined(tokens.tcapTokenRead); - - if ( - currentNetwork.chainId === NETWORKS.mainnet.chainId || - currentNetwork.chainId === NETWORKS.rinkeby.chainId - ) { - valid = - valid && - !isUndefined(oracles.aaveOracle) && - !isUndefined(oracles.linkOracle) && - !isUndefined(tokens.ctxPoolTokenRead); - } - if (currentNetwork.chainId === NETWORKS.polygon.chainId) { - valid = valid && !isUndefined(oracles.maticOracle) && !isUndefined(oracles.maticOracleRead); - } - return valid; - }; - - const getMaticUSD = async () => { - const maticOraclePriceCall = await oracles.maticOracleRead?.getLatestAnswer(); - // @ts-ignore - const [maticOraclePrice] = await signer.ethcallProvider?.all([maticOraclePriceCall]); - const maticUSD = ethers.utils.formatEther(maticOraclePrice.mul(10000000000)); - return maticUSD; - }; - - useEffect(() => { - const load = async () => { - if (oracles && tokens && data && signer && validOracles()) { - const currentTotalPriceCall = await oracles.tcapOracleRead?.getLatestAnswer(); - const wethOraclePriceCall = await oracles.wethOracleRead?.getLatestAnswer(); - const daiOraclePriceCall = await oracles.daiOracleRead?.getLatestAnswer(); - const currentTotalSupplyCall = await tokens.tcapTokenRead?.totalSupply(); - const ethcalls = [ - currentTotalPriceCall, - wethOraclePriceCall, - daiOraclePriceCall, - currentTotalSupplyCall, - ]; - - if ( - currentNetwork.chainId === NETWORKS.mainnet.chainId || - currentNetwork.chainId === NETWORKS.rinkeby.chainId - ) { - const aaveOraclePriceCall = await oracles.aaveOracleRead?.getLatestAnswer(); - const linkOraclePriceCall = await oracles.linkOracleRead?.getLatestAnswer(); - const reservesCtxPoolCall = await tokens.ctxPoolTokenRead?.getReserves(); - ethcalls.push(aaveOraclePriceCall); - ethcalls.push(linkOraclePriceCall); - ethcalls.push(reservesCtxPoolCall); - } - let currentTotalPrice; - let wethOraclePrice; - let daiOraclePrice; - let currentTotalSupply; - let aaveOraclePrice; - let linkOraclePrice; - let reservesCtxPool; - - if ( - currentNetwork.chainId === NETWORKS.mainnet.chainId || - currentNetwork.chainId === NETWORKS.rinkeby.chainId - ) { - // @ts-ignore - [ - currentTotalPrice, - wethOraclePrice, - daiOraclePrice, - currentTotalSupply, - aaveOraclePrice, - linkOraclePrice, - reservesCtxPool, - ] = await signer.ethcallProvider?.all(ethcalls); - } else { - // @ts-ignore - [currentTotalPrice, wethOraclePrice, daiOraclePrice, currentTotalSupply] = - await signer.ethcallProvider?.all(ethcalls); - } - - const TotalTcapPrice = currentTotalPrice.mul(10000000000); - setTcapPrice(ethers.utils.formatEther(TotalTcapPrice.div(10000000000))); - let currentDAIStake = BigNumber.from(0); - let currentWETHStake = BigNumber.from(0); - let currentAAVEStake = BigNumber.from(0); - let currentLINKStake = BigNumber.from(0); - let currentMATICStake = BigNumber.from(0); - - await data.states.forEach((s: any) => { - const networkId = currentNetwork.chainId; - let contracts; - switch (networkId) { - case NETWORKS.mainnet.chainId: - contracts = cryptexJson[1].mainnet.contracts; - break; - case NETWORKS.rinkeby.chainId: - contracts = cryptexJson[4].rinkeby.contracts; - break; - case NETWORKS.okovan.chainId: - contracts = cryptexJson[69].okovan.contracts; - break; - case NETWORKS.polygon.chainId: - contracts = cryptexJson[137].polygon.contracts; - break; - default: - contracts = cryptexJson[4].rinkeby.contracts; - break; - } - switch (s.id.toLowerCase()) { - case contracts.DAIVaultHandler.address.toLowerCase(): - currentDAIStake = s.amountStaked ? s.amountStaked : BigNumber.from(0); - break; - case contracts.WETHVaultHandler.address.toLowerCase(): - currentWETHStake = s.amountStaked ? s.amountStaked : BigNumber.from(0); - break; - // @ts-ignore - case contracts.AaveVaultHandler.address.toLowerCase(): - currentAAVEStake = s.amountStaked ? s.amountStaked : BigNumber.from(0); - break; - // @ts-ignore - case contracts.LinkVaultHandler.address.toLowerCase(): - currentLINKStake = s.amountStaked ? s.amountStaked : BigNumber.from(0); - break; - // @ts-ignore - case contracts.MATICVaultHandler.address.toLowerCase(): - currentMATICStake = s.amountStaked ? s.amountStaked : BigNumber.from(0); - break; - default: - break; - } - }); - - const formatDAI = ethers.utils.formatEther(currentDAIStake); - setDAIStake(formatDAI); - const formatETH = ethers.utils.formatEther(currentWETHStake); - setETHStake(formatETH); - const formatAAVE = ethers.utils.formatEther(currentAAVEStake); - setAaveStake(formatAAVE); - const formatLINK = ethers.utils.formatEther(currentLINKStake); - setLinkStake(formatLINK); - const formatMATIC = ethers.utils.formatEther(currentMATICStake); - setMATICStake(formatMATIC); - - const ethUSD = ethers.utils.formatEther(wethOraclePrice.mul(10000000000)); - const daiUSD = ethers.utils.formatEther(daiOraclePrice.mul(10000000000)); - let aaveUSD = "0"; - let linkUSD = "0"; - let maticUSD = "0"; - if ( - currentNetwork.chainId === NETWORKS.mainnet.chainId || - currentNetwork.chainId === NETWORKS.rinkeby.chainId - ) { - aaveUSD = ethers.utils.formatEther(aaveOraclePrice.mul(10000000000)); - linkUSD = ethers.utils.formatEther(linkOraclePrice.mul(10000000000)); - } - if (currentNetwork.chainId === NETWORKS.polygon.chainId) { - maticUSD = await getMaticUSD(); - } - - const totalUSD = - toUSD(ethUSD, formatETH) + - toUSD(daiUSD, formatDAI) + - toUSD(aaveUSD, formatAAVE) + - toUSD(linkUSD, formatLINK) + - toUSD(maticUSD, formatMATIC); - setTotalStake(totalUSD.toString()); - setTotalSupply(ethers.utils.formatEther(currentTotalSupply)); - if (signer) { - const currentPriceETH = ethers.utils.formatEther(wethOraclePrice.mul(10000000000)); - if ( - currentNetwork.chainId === NETWORKS.mainnet.chainId || - currentNetwork.chainId === NETWORKS.rinkeby.chainId - ) { - const currentPriceCTX = getPriceInUSDFromPair( - reservesCtxPool[0], - reservesCtxPool[1], - parseFloat(currentPriceETH) - ); - setCtxPrice(currentPriceCTX.toString()); - } - } - } - setLoading(false); - }; - load(); - // eslint-disable-next-line - }, [data]); - - if (loading) { - return ; - } - - return ( -
-
- - -

Total Staked in USD

-
- -
-
- - -

Total Supply

-
- {" "} - TCAP -
-
- - -

TCAP Price

-
- -
-
- - -

Total Staked in ETH

-
- {" "} - ETH -
-
- - -

Total Staked in DAI

-
- {" "} - DAI -
-
- {isInLayer1(currentNetwork.chainId) && ( - <> - - -

CTX Price

-
- {" "} -
-
- {FEATURES.NEW_VAULTS && ( - <> - - -

Total Staked in AAVE

-
- {" "} - AAVE -
-
- - -

Total Staked in LINK

-
- {" "} - LINK -
-
- - )} - - )} - {currentNetwork.chainId === NETWORKS.polygon.chainId && ( - - -

Total Staked in MATIC

-
- {" "} - MATIC -
-
- )} -
-
- ); -}; - -export default Graph; diff --git a/src/components/Header.tsx b/src/components/Header.tsx index 9b6d2b0a..60eb0115 100644 --- a/src/components/Header.tsx +++ b/src/components/Header.tsx @@ -1,214 +1,78 @@ -import React, { useContext, useEffect, useState } from "react"; +import React, { useContext } from "react"; import Nav from "react-bootstrap/esm/Nav"; -import Button from "react-bootstrap/esm/Button"; -import OverlayTrigger from "react-bootstrap/esm/OverlayTrigger"; -import Tooltip from "react-bootstrap/esm/Tooltip"; +import { useWeb3Modal } from '@web3modal/ethers5/react' +import { useTranslation } from "react-i18next"; import "../styles/header.scss"; -import { ethers } from "ethers"; -import Davatar from "@davatar/react"; -import NumberFormat from "react-number-format"; -import { ChangeNetwork } from "./modals/ChangeNetwork"; -import SignerContext from "../state/SignerContext"; -import { Web3ModalContext } from "../state/Web3ModalContext"; -import TokensContext from "../state/TokensContext"; -import NetworkContext from "../state/NetworkContext"; -import { makeShortAddress, getENS } from "../utils/utils"; -import { FEATURES, NETWORKS } from "../utils/constants"; -import { ReactComponent as TcapIcon } from "../assets/images/tcap-coin.svg"; -import { ReactComponent as ETHIcon } from "../assets/images/graph/weth.svg"; -import { ReactComponent as OPTIMISMIcon } from "../assets/images/graph/optimism.svg"; -import { ReactComponent as POLYGONIcon } from "../assets/images/polygon2.svg"; +import { signerContext } from "../state"; +import { Button } from "react-bootstrap"; type props = { signerAddress: string; + isMobile: boolean; }; -const Header = ({ signerAddress }: props) => { - const web3Modal = useContext(Web3ModalContext); - const signer = useContext(SignerContext); - const tokens = useContext(TokensContext); - const currentNetwork = useContext(NetworkContext); - const [showChangeNetwork, setShowChangeNetwork] = useState(false); - const [address, setAddress] = useState("0x0000000000000000000000000000000000000000"); - const [addressField, setAddressField] = useState(""); - const [tokenBalance, setTokenBalance] = useState("0.0"); +const Header = ({ signerAddress, isMobile }: props) => { + const { t } = useTranslation(); + const { open } = useWeb3Modal() + const signer = useContext(signerContext); + // const [language, setLanguage] = useState("EN"); - const copyCodeToClipboard = (e: React.MouseEvent) => { - e.preventDefault(); - // Create new element - const el = document.createElement("textarea"); - // Set value (string to be copied) - el.value = address; - // Set non-editable to avoid focus and move outside of view - el.setAttribute("readonly", ""); - document.body.appendChild(el); - // Select text inside element - el.select(); - // Copy text to clipboard - document.execCommand("copy"); - // Remove temporary element - document.body.removeChild(el); - }; - - async function changeNetwork(newChainId: string) { - if (currentNetwork.wallet === "metamask") { - try { - await window.ethereum.request({ - method: "wallet_switchEthereumChain", - params: [{ chainId: newChainId }], - }); - } catch (error) { - // This error code indicates that the chain has not been added to MetaMask. - if ( - error.code === 4902 && - (newChainId === NETWORKS.okovan.hexChainId || newChainId === NETWORKS.polygon.hexChainId) - ) { - try { - await window.ethereum.request({ - method: "wallet_addEthereumChain", - params: [ - { - chainId: newChainId, - chainName: - newChainId === NETWORKS.okovan.hexChainId - ? "Optimistic Ethereum (Kovan)" - : "Polygon Mainnet", - nativeCurrency: { - name: newChainId === NETWORKS.okovan.hexChainId ? "Ether (ETH)" : "Matic Token", - symbol: newChainId === NETWORKS.okovan.hexChainId ? "ETH" : "MATIC", - decimals: 18, - }, - rpcUrls: - newChainId === NETWORKS.okovan.hexChainId - ? ["https://kovan.optimism.io"] - : ["https://rpc-mainnet.maticvigil.com/"], - blockExplorerUrls: - newChainId === NETWORKS.okovan.hexChainId - ? ["https://kovan-optimistic.etherscan.io"] - : ["https://polygonscan.com/"], - }, - ], - }); - } catch (addError) { - // handle "add" error - } - } - } - } - } - - useEffect(() => { + /* useEffect(() => { const loadAddress = async () => { - if (signerAddress !== "" && signer.signer && tokens.tcapToken) { - const filterMint = tokens.tcapToken.filters.Transfer(null, signerAddress); - const filterBurn = tokens.tcapToken.filters.Transfer(signerAddress, null); - tokens.tcapToken.on(filterMint, async () => { - const currentBalance = await tokens.tcapToken?.balanceOf(signerAddress); - setTokenBalance(ethers.utils.formatEther(currentBalance)); - }); - - tokens.tcapToken.on(filterBurn, async () => { - const currentBalance = await tokens.tcapToken?.balanceOf(signerAddress); - setTokenBalance(ethers.utils.formatEther(currentBalance)); - }); - const ens = await getENS(signerAddress); - if (ens) { - setAddressField(ens); - } else { - setAddressField(makeShortAddress(signerAddress)); - } - - setAddress(signerAddress); - const currentTcapBalance = await tokens.tcapToken.balanceOf(signerAddress); - setTokenBalance(ethers.utils.formatEther(currentTcapBalance)); + setLoading(true); + if (signerAddress !== "" && signer.signer) { + setLoading(false); } + /* let lng = localStorage.getItem("language"); + if (lng) { + if (lng === "en-US") lng = "en"; + setLanguage(lng.toUpperCase()); + } }; loadAddress(); // eslint-disable-next-line - }, [signerAddress, currentNetwork.chainId]); + }, [signerAddress, currentNetwork.chainId]); */ + + // const showDropdown = (): boolean => !isMobile || (isMobile && !loading); + + /* const ArbitrumToggle = () => ( + <> + +
{process.env.REACT_APP_NETWORK_ID === "1" ? "Arbitrum" : "A. Goerli"}
+ + ); */ + return (
diff --git a/src/components/Loading.tsx b/src/components/Loading.tsx index 71773b62..bf01c4c7 100644 --- a/src/components/Loading.tsx +++ b/src/components/Loading.tsx @@ -1,19 +1,45 @@ import React from "react"; -import logo from "../assets/images/tcap-logo.svg"; +import logo from "../assets/images/logo.svg"; import "../styles/loading.scss"; type props = { - title: string; + title?: string; message?: string; position?: string; }; -const Loading = ({ title, message, position }: props) => ( -
- tcap logo -

{title}

-

{message}

-
-); +const Loading = ({ title, message, position }: props) => { + const lng = localStorage.getItem("language"); + + const translateTitle = () => { + switch (lng) { + case "en": + return "Loading"; + case "zh": + return "加载中"; + default: + return "Loading"; + } + }; + + const translateMsg = () => { + switch (lng) { + case "en": + return "Please Wait"; + case "zh": + return "请等待"; + default: + return "Please Wait"; + } + }; + + return ( +
+ tcap logo +

{title || translateTitle()}

+

{message || translateMsg()}

+
+ ); +}; export default Loading; diff --git a/src/components/Pool.tsx b/src/components/Pool.tsx deleted file mode 100644 index 2867823e..00000000 --- a/src/components/Pool.tsx +++ /dev/null @@ -1,291 +0,0 @@ -import React, { useContext, useEffect, useState } from "react"; -import Card from "react-bootstrap/esm/Card"; -import Button from "react-bootstrap/esm/Button"; -import Row from "react-bootstrap/esm/Row"; -import Table from "react-bootstrap/esm/Table"; -import { ethers } from "ethers"; -import NumberFormat from "react-number-format"; -import SignerContext from "../state/SignerContext"; -import TokensContext from "../state/TokensContext"; -import OraclesContext from "../state/OraclesContext"; -import GovernanceContext from "../state/GovernanceContext"; -import NetworkContext from "../state/NetworkContext"; -import { toUSD } from "../utils/utils"; -import { NETWORKS } from "../utils/constants"; -import "../styles/farm.scss"; -import { ReactComponent as CtxIcon } from "../assets/images/ctx-coin.svg"; -import { ReactComponent as TcapIcon } from "../assets/images/tcap-coin.svg"; -import { ReactComponent as WETHIcon } from "../assets/images/graph/weth.svg"; -import { ReactComponent as FarmIcon } from "../assets/images/welcome/farm.svg"; -import Loading from "./Loading"; - -const Farm = () => { - const [isLoading, setIsLoading] = useState(true); - const [ethLiquidity, setEthLiquidity] = useState("0"); - const [ethLiquidityUNI, setEthLiquidityUNI] = useState("0"); - const [ctxLiquidity, setCtxLiquidity] = useState("0"); - const currentNetwork = useContext(NetworkContext); - const signer = useContext(SignerContext); - const tokens = useContext(TokensContext); - const oracles = useContext(OraclesContext); - const governance = useContext(GovernanceContext); - - const lpURL = NETWORKS.mainnet.lpUrl; - const lpUniURL = "https://app.uniswap.org"; - const visionURL = "https://analytics.sushi.com/pairs"; - const uniVisionURL = "https://info.uniswap.org/pair"; - - const one = ethers.utils.parseEther("1"); - - async function getPriceInUSDFromPair( - reserves0: ethers.BigNumber, - reservesWETH: ethers.BigNumber, - ethPrice: number - ) { - // if ((await pair.token1()) != WETH) { - // throw "UniswapV2Pair must be paired with WETH"; // Being lazy for now. - // } - - // const reserves0 = resp[0]; - // const reservesWETH = resp[1]; - - // amount of token0 required to by 1 WETH - const amt = parseFloat(ethers.utils.formatEther(one.mul(reserves0).div(reservesWETH))); - return ethPrice / amt; - } - - useEffect(() => { - const loadAddress = async () => { - if ( - signer && - tokens.tcapToken && - tokens.ctxToken && - oracles.tcapOracle && - governance.governorAlpha && - governance.timelock && - tokens.ctxTokenRead - ) { - let ethPoolAddress = NETWORKS.mainnet.ethPool; - let ethUniPoolAddress = NETWORKS.mainnet.ethUniPool; - let ethCtxAddress = NETWORKS.mainnet.ctxPool; - if (currentNetwork.chainId === NETWORKS.rinkeby.chainId) { - ethPoolAddress = NETWORKS.rinkeby.ethPool; - ethUniPoolAddress = NETWORKS.rinkeby.ethUniPool; - ethCtxAddress = NETWORKS.rinkeby.ctxPool; - } - - const reservesCtxPoolCall = await tokens.ctxPoolTokenRead?.getReserves(); - const wethOraclePriceCall = await oracles.wethOracleRead?.getLatestAnswer(); - const tcapOraclePriceCall = await oracles.tcapOracleRead?.getLatestAnswer(); - const currentPoolWethCall = await tokens.wethTokenRead?.balanceOf(ethPoolAddress); - const currentWethTCAPCall = await tokens.tcapTokenRead?.balanceOf(ethPoolAddress); - const currentPoolWethCtxCall = await tokens.wethTokenRead?.balanceOf(ethCtxAddress); - const currentPoolCtxCall = await tokens.ctxTokenRead?.balanceOf(ethCtxAddress); - const currentPoolWethUNICall = await tokens.wethTokenRead?.balanceOf(ethUniPoolAddress); - const currentWethTCAPUNICall = await tokens.tcapTokenRead?.balanceOf(ethUniPoolAddress); - - // @ts-ignore - const [ - reservesCtxPool, - wethOraclePrice, - tcapOraclePrice, - currentPoolWeth, - currentWethTCAP, - currentPoolWethCtx, - currentPoolCtx, - currentPoolWethUNI, - currentWethTCAPUNI, - ] = await signer.ethcallProvider?.all([ - reservesCtxPoolCall, - wethOraclePriceCall, - tcapOraclePriceCall, - currentPoolWethCall, - currentWethTCAPCall, - currentPoolWethCtxCall, - currentPoolCtxCall, - currentPoolWethUNICall, - currentWethTCAPUNICall, - ]); - - const ethUSD = ethers.utils.formatEther(wethOraclePrice.mul(10000000000)); - - const currentPriceCTX = await getPriceInUSDFromPair( - reservesCtxPool[0], - reservesCtxPool[1], - parseFloat(ethUSD) - ); - - const tcapUSD = ethers.utils.formatEther(tcapOraclePrice); - let formatPair1 = ethers.utils.formatEther(currentPoolWeth); - let formatPair2 = ethers.utils.formatEther(currentWethTCAP); - let totalUSD = toUSD(formatPair1, ethUSD) + toUSD(formatPair2, tcapUSD); - setEthLiquidity(totalUSD.toString()); - - formatPair1 = ethers.utils.formatEther(currentPoolWethCtx); - formatPair2 = ethers.utils.formatEther(currentPoolCtx); - totalUSD = toUSD(formatPair1, ethUSD) + toUSD(formatPair2, currentPriceCTX.toString()); - setCtxLiquidity(totalUSD.toString()); - - formatPair1 = ethers.utils.formatEther(currentPoolWethUNI); - formatPair2 = ethers.utils.formatEther(currentWethTCAPUNI); - - totalUSD = toUSD(formatPair1, ethUSD) + toUSD(formatPair2, tcapUSD); - setEthLiquidityUNI(totalUSD.toString()); - } - setIsLoading(false); - }; - - loadAddress(); - // eslint-disable-next-line - }, [tokens]); - - if (isLoading) { - return ; - } - - return ( -
-
-

Pools

{" "} - - <> - -

Enabled Pools

- - - - - - - - - - - - - - - - - - {" "} - - - - - - - - - -
- Available PoolsLiquidity -
- - - - - ETH/TCAP
- SushiSwap -
- - - -
- $ - {" "} - - -
- - - - - ETH/CTX
- SushiSwap -
- - - -
- $ - {" "} - - -
- - - - - ETH/TCAP
- UniSwap V2 -
-
- $ - {" "} - - -
-
- -
-
-
- ); -}; -export default Farm; diff --git a/src/components/SewageFruitz/Sewagefruitz.tsx b/src/components/SewageFruitz/Sewagefruitz.tsx new file mode 100644 index 00000000..4946341a --- /dev/null +++ b/src/components/SewageFruitz/Sewagefruitz.tsx @@ -0,0 +1,367 @@ +import React, { useContext, useEffect, useState } from "react"; +import Button from "react-bootstrap/Button"; +import Card from "react-bootstrap/esm/Card"; +import Spinner from "react-bootstrap/Spinner"; +import { useTranslation } from "react-i18next"; +import "../../styles/sewagefruit.scss"; +import Loading from "../Loading"; +import { mushroomNftContext, networkContext, signerContext } from "../../state"; +import { useMerkleTree } from "../../hooks/useMerkleTree"; +import { NETWORKS } from "../../utils/constants"; +import { errorNotification, isGoerli, notifyUser } from "../../utils/utils"; +import mushroomMan from "../../assets/images/noti-error.png"; +import sewageFruit from "../../assets/images/sewage-fruit.png"; +import { whitelist, whitelistGoerli } from "./whitelist"; + +type SewageFruitType = { + name: string; + description: string; + image: string; + revealed: boolean; +}; + +type UserStatusType = { + verified: boolean; + claimed: boolean; + tokenURI: string; +}; + +const SewageFruitz = () => { + const { t } = useTranslation(); + const revealedDate = new Date(1667245715000); + const currentNetwork = useContext(networkContext); + const signer = useContext(signerContext); + const mushroom = useContext(mushroomNftContext); + const merkleTree = useMerkleTree(isGoerli(currentNetwork.chainId) ? whitelistGoerli : whitelist); + const [signerAddress, setSignerAddress] = useState(""); + const [loading, setLoading] = useState(true); + const [refreshing, setRefreshing] = useState(false); + const [minting, setMinting] = useState(false); + const [loadingFruit, setLoadingFruit] = useState(false); + const [merkleProof, setMerkleProof] = useState(); + const [publicMint, setPublicMint] = useState(false); + const [maxSupplyReached, setMaxSupplyReached] = useState(false); + const [userStatus, setUserStatus] = useState({ + verified: false, + claimed: false, + tokenURI: "", + }); + const [fruitInfo, setFruitInfo] = useState(); + + const getTokenId = async (currentAddress: string): Promise => { + const apiUrl = new URL(`https://deep-index.moralis.io/api/v2/${currentAddress}/nft`); + + apiUrl.search = new URLSearchParams({ + chain: isGoerli(currentNetwork.chainId) ? "goerli" : "eth", + format: "decimal", + token_addresses: isGoerli(currentNetwork.chainId) + ? NETWORKS.goerli.mushroomNft + : NETWORKS.mainnet.mushroomNft, + }).toString(); + + const response = await fetch(apiUrl.toString(), { + method: "GET", + headers: { + "X-API-Key": process.env.REACT_APP_MORALIS_API_KEY || "", + accept: "application/json", + }, + }); + + if (!response.ok) { + const message = `An error has occured: ${response.status}`; + throw new Error(message); + } + + const responseJson = await response.json(); + let tokenId = 0; + if (responseJson && responseJson.result) { + if (responseJson.result.length > 0) { + tokenId = parseInt(responseJson.result[0].token_id); + } + } + + return tokenId; + }; + + const loadFruitData = async (tokenURI: string) => { + setLoadingFruit(true); + fetch(tokenURI, { + method: "GET", + }) + .then((response) => response.json()) + .then((resp) => { + if (resp) { + let isRevealed = true; + if (resp.attributes.length > 0) { + if (resp.attributes[0].trait_type === "Status") { + isRevealed = resp.attributes[0].value !== "Unrevealed"; + } + } + setFruitInfo({ + name: resp.name.replace("#", ""), + description: resp.description, + image: resp.image, + revealed: isRevealed, + }); + } + setLoadingFruit(false); + }) + .catch((error) => { + console.error(error); + setLoadingFruit(false); + }); + }; + + const loadUserStatus = async (currentAddress: string, isPublic: boolean) => { + const currentUserStatus = userStatus; + + if (!isPublic) { + currentUserStatus.verified = merkleTree.verify(currentAddress); + if (currentUserStatus.verified) { + setMerkleProof(merkleTree.getProof(currentAddress)); + } + } else { + currentUserStatus.verified = true; + } + + const userToClaimsCall = await mushroom.mushroomNftRead?.userToClaims(currentAddress); + // @ts-ignore + const [userClaims] = await signer.ethcallProvider?.all([userToClaimsCall]); + + currentUserStatus.claimed = userClaims; + if (currentUserStatus.claimed) { + let tokenId = 0; + try { + tokenId = await getTokenId(currentAddress); + } catch (error: any) { + console.log(error); + } + if (tokenId > 0) { + const tokenURICall = await mushroom.mushroomNftRead?.tokenURI(tokenId); + // @ts-ignore + const [tokenURI] = await signer.ethcallProvider?.all([tokenURICall]); + currentUserStatus.tokenURI = tokenURI; + await loadFruitData(tokenURI); + } + } + + setUserStatus(currentUserStatus); + }; + + const loadData = async () => { + const currentTokenIdCall = await mushroom.mushroomNftRead?.currentTokenId(); + const maxSupplyCall = await mushroom.mushroomNftRead?.maxSupply(); + const mintPeriodCall = await mushroom.mushroomNftRead?.mintPeriod(); + + // @ts-ignore + const [currentTokenId, maxSupply, mintPeriod] = await signer.ethcallProvider?.all([ + currentTokenIdCall, + maxSupplyCall, + mintPeriodCall, + ]); + + const today = new Date(); + const endDateMS = mintPeriod.toNumber() * 1000; + + setPublicMint(today.getTime() > endDateMS); + setMaxSupplyReached(currentTokenId.toNumber() + 1 > maxSupply.toNumber()); + + if (signer.signer) { + const currentAddress = await signer.signer.getAddress(); + if (currentAddress !== "") { + setSignerAddress(currentAddress); + await loadUserStatus(currentAddress, today.getTime() > endDateMS); + } + } + }; + + useEffect(() => { + const load = async () => { + if (signer && mushroom.mushroomNftRead) { + setLoading(true); + await loadData(); + setLoading(false); + } else { + setLoading(false); + } + }; + load(); + // eslint-disable-next-line + }, [signer.signer]); + + if (loading) { + return ; + } + + const refresh = async () => { + setRefreshing(true); + await loadData(); + setRefreshing(false); + }; + + const handleMint = async () => { + try { + setMinting(true); + const tx = await mushroom.mushroomNft?.mint(signerAddress, merkleProof); + notifyUser(tx, refresh); + setMinting(false); + } catch (error: any) { + console.log(error.message); + errorNotification(t("errors.tran-rejected")); + setMinting(false); + } + }; + + const handlePublicMint = async () => { + setMinting(true); + try { + const tx = await mushroom.mushroomNft?.publicMint(); + notifyUser(tx, refresh); + } catch (error: any) { + console.log(error.message); + errorNotification(t("errors.tran-rejected")); + } + setMinting(false); + }; + + const openseaUrl = (): string => { + let nftUrl = "https://opensea.io/assets/ethereum/".concat(NETWORKS.mainnet.mushroomNft); + if (isGoerli(currentNetwork.chainId)) { + nftUrl = "https://testnets.opensea.io/assets/goerli/".concat(NETWORKS.goerli.mushroomNft); + } + if (fruitInfo) { + nftUrl = nftUrl.concat("/").concat(fruitInfo.name); + } + + return nftUrl; + }; + + const renderImage = () => { + if (userStatus.verified) { + if (userStatus.claimed && fruitInfo) { + return Sewage Fruit; + } + return Sewage Fruit; + } + return Sewage Fruit; + }; + + const renderMintInfo = () => { + if (userStatus.verified) { + if (userStatus.claimed && fruitInfo) { + if (!fruitInfo.revealed) { + return ( +

+ Sewage Fruitz MINTED. It will be revealed on{" "} + {revealedDate.toLocaleDateString()}. You can check + out the collection{" "} + + here. + +

+ ); + } + return ( +

+ Sewage Fruitz MINTED. You can also check it out{" "} + + here. + +

+ ); + } + + if (!maxSupplyReached) { + return ( +

+ Congrats! You're eligible to mint a Sewage Fruitz. +

+ ); + } + return ( +

+ Sorry! all Sewage Fruitz have been minted. +

+ ); + } + return ( +

+ Sorry! You're not eligible to mint. +

+ ); + }; + + return ( +
+

Sewage Fruitz

+
+ {signerAddress !== "" && ( + + {!refreshing && !loadingFruit && renderMintInfo()} + + {refreshing || loadingFruit ? ( + + ) : ( + renderImage() + )} + + {userStatus.verified && !userStatus.claimed && !maxSupplyReached && ( + + + + )} + + )} + + +

+ Sewage Fruitz are a collection of 2,500 upgradable NFTs created from the depths of the + Ethereum Blockchain and were a reward to all members of the Cryptex Finance community. +

+
+

+ Keep an eye out for upcoming quests within the Cryptex Finance ecosystem. By going on + quests, Sewage Fruitz holders can earn upgrades, badges and burn them in the future + based on their achievements to earn CTX. +

+
+

+ Read more in the announcement blog post:{" "} + + https://cryptex.finance/blog/2022-10-22-introducing-sewage-fruitz/ + +

+

+ Check out the collection: + + https://opensea.io/collection/sewage-fruitz + +

+
+
+
+
+ ); +}; + +export default SewageFruitz; diff --git a/src/components/SewageFruitz/index.tsx b/src/components/SewageFruitz/index.tsx new file mode 100644 index 00000000..1647e3a3 --- /dev/null +++ b/src/components/SewageFruitz/index.tsx @@ -0,0 +1,6 @@ +import React from "react"; +import Sewagefruitz from "./Sewagefruitz"; + +const MushroomNft = () => ; + +export default MushroomNft; diff --git a/src/components/SewageFruitz/whitelist.tsx b/src/components/SewageFruitz/whitelist.tsx new file mode 100644 index 00000000..a220b54b --- /dev/null +++ b/src/components/SewageFruitz/whitelist.tsx @@ -0,0 +1,2760 @@ +export const whitelist = [ + "0x881622798f53EAD0743170de035C64EE03f3F172", + "0xeF13101C5bbD737cFb2bF00Bbd38c626AD6952F7", + "0x6Fcc2b221922A1d4753899aF1b38c95CDf8c6d6A", + "0xcCec0e34D80106687B654313AcD1B6d0185B1CDf", + "0xc3552007F946CEE7B87E542011f20016feb8CBd4", + "0x77158DAB6bAceE69a66218FDd295C8fD3D78d79F", + "0x9f444Eb9dA99aEa41E8800b694821DEe9a986568", + "0x5b5bC1Cc56508eE85353E2483B496746fB3fC2b0", + "0x469561f5b1e37143430417732093Fc132C6aB337", + "0xdfcB919A925D00E53B7CAf3A2c6406B6a5FB5B43", + "0x82c64871666C28b5eFE453324f77344643F78B77", + "0x7e0eD7e4e71F1e4CcA535Dd98C3C93C8d3CD596f", + "0x89778fDB388A0CC83b19B51F0b50E78100540B43", + "0x297d0f5e5a4F80A86e0aAF8D26e64D4837be513E", + "0x72866E0FB4a66BC5e15e15E763b447b77AC30D59", + "0xafA96ad5AfA419A0Cf881Db8d3109078506cF6B8", + "0x99CFd045A577b2e256979c322e4f56735Db09D9c", + "0xEa07627731bebd106D62E3662d1a4C27c038DC68", + "0xE4aC8a1bE6c373B300F46Fab9e360865E65ffda5", + "0x6E44D9950D4E7004F78685d77005fFF66DD63b97", + "0x049808d5EAA90a2665b9703d2246DDed34F1EB73", + "0x3fB95B3E51927ba7B15cb56cEA014DD4C16b3De7", + "0x1fec79A7c67a1b8F659853c64124e67EE9D06686", + "0xb37d882730eCc495a1FAA4937eF3645790B00e89", + "0xc3C49F73499160A3B31D91F0f4c5A0774E4635a6", + "0xc1f3eBe56FE3a32ADAC585e7379882cf0e5a6D87", + "0x1FD1de7E6BD35950a05db410F871aE6E4736c3b3", + "0x1A216490B4aD42B616C4Bc0Df6F1A179399380d4", + "0xc893bF334641d27B0C5BdF714F8facA80403E978", + "0xed83A6d734627d1229e08Db5E7b8c0687D2Ae3D3", + "0x41D194b1d7e9b9542145d894E391CE87235cBd3c", + "0x8860bA33913573Ef24fDa8a860C3727319B6D7A3", + "0xc4Ed448E7D7bdD954e943954459017BE63584F69", + "0x8471578E189eAC49d866E43c81BB240e52Fc2650", + "0x8DA1674D16fa5E5c8F4eFBC4540888BA9f1Fda4E", + "0xcF7Dbe8e50620C0b5f466FeF79ac8C17feb022D5", + "0xcb1222F00019f4B5c1ecD7f07fc2fac88adb9fAE", + "0x91C3A85d1aa494eED31e70C0b4005719AFDd6BF3", + "0x96c195F6643A3D797cb90cb6BA0Ae2776D51b5F3", + "0xBe30DA02D0C9eba55d7f7eBb207729e285d11c63", + "0xabEc103490266045706B44F83cFaF73Bc6532150", + "0xc5C5B53438A7Fc9CddEA4f0DED2D12FBF75b6c76", + "0x58320A62fAe62C5Dc45B9919d583d4B0f955EB3A", + "0xf92d29Ab6f4fc6fC615E53f9787C986731eEc496", + "0x313d535a3FC31E897fcDCF66f3c382Fbd634bC16", + "0xb6735D328C513aB41ff127DD1E24c53B0D6493D6", + "0x5eB2b16e1De28E6A8f8291cCbF9B9AE1b1384654", + "0x93D5078a85CDB34e42b0365EADc1e7bA0c32dE61", + "0x665B835fdf8B546d0c5FE6757349F3413E009141", + "0xd4DCabba4332C2A2c67324F8d3D7621f4249E2E1", + "0x48c856F10d5930DaE3CF338173247aB8DA94d308", + "0xfC026910d15b70A4b2d969A7386A03b86D7b505b", + "0x127bBc2904Dbb53Cf601782fC12fa4fD633394E4", + "0x8b168eeCa29a5AB4fBCb68653d3CFff3f41F96C6", + "0xF7d422DC96C31dE6D10f2957B14a7D888BA3820A", + "0x6694FC7DaB2F34B010bb87467f6CC6C2d4534f81", + "0xF274D54Aa1bcD43312dfd4B95601b789395A7c5E", + "0x9dabb8374d0c9bf5a925eeEd7a519Dcc6B41D8FE", + "0x37CC28F835EA2337DD49f22d2d982Dc9b6b4DF55", + "0x74a64c78657F0b753035CAE35cbCa76Ac029827E", + "0x4632D39cB2b64aCDBF1Df5bE19dAA1B77158CbFB", + "0x691a283b546864875EFBcAC16eCD4fc7BB945581", + "0xB2d436EBaCA07Dcd5A226e737671859a6794d7A0", + "0xce36A6d60D79b2AfC4CEBbf146Ba935e598F0Db8", + "0x54C6AC745D042bcBA90674E0a378f266aE12E8f1", + "0x3F6fDA73BD15a8C410AEb84C893888bde4877F9F", + "0xEEB009194435C51E1D2e1C8c424EDCb0dDEB7723", + "0xE8205e04A86D11856cdAf51375C251c1badFB60B", + "0x3c3556d4c53eAcD293C354beD43016dFB606026d", + "0x5357C45dF0cB13aD1Ee75091b870E7f2c5B12f78", + "0xDe334424169796f928ACe6e13066FFEeBF1a622d", + "0x71083690c37E75cCCa9229e99D79E3ec35b5C643", + "0xa5dA33624882a27CfbA77CdBd764d1f112DeAfC1", + "0x94EE08f03e6D61F30175403190266F4703a94D18", + "0x9d2203cd3E400d84F9973fe3C04689b6C8d36b6E", + "0x1311C89f7B461403714Fdd12e9B9A5d845220e9e", + "0x29e7cB9B7Ba9545f893549a227eb3CA4545F090d", + "0x6ef13909698e4b287aB35A39088f0E7A57588C22", + "0x4493bB7375442430afCCD32733d24ac722595ae6", + "0xA0E2c637B6a865ef258E4404d90d3Fec78aD34F5", + "0xF2B49BB95Af806EeA00ba6CAaFc76A77853F8BA6", + "0xdBF12DA73B3Fa72835acE6C943a0A59fDA69E48a", + "0xB090f0B407dD6A88A7Fbf72a994A7c1d29eCdedA", + "0x6265cAde2b6D84e9b1C198200451eD8358C6c9F9", + "0xb75e6A898F4D7dD32EfEA8D27094432b0f90618D", + "0x97a10cF1E3380EDC4064A3c1105F2d62aac38fBB", + "0x204DF3850Ffc4dABC99e32eAA66806E1886aE758", + "0x4B10fB28c326357d943392Bb5F9E27c02C25200E", + "0xA30C7dB0aF173dB67E95F32CC2b56Bfc51053Eb2", + "0x23cF923e6587977dDaF1c9b61f032FB91b3c4262", + "0x1081d3833eAf0e68A2cd0d18ff69d8D1DA72B50A", + "0x3aEF8c8C3BcFb75708a69aa9219917030E302cce", + "0xfD3e41d48E3B87469C15EB4F0aF30A8F297a335D", + "0xf71E9C766Cdf169eDFbE2749490943C1DC6b8A55", + "0x2A530801b38a01F69EC06615ffDc384545a8c432", + "0xB01941a667a9F2a7c5900ed5a922321ef9f19275", + "0xBE4d3C4974Ae2C3d30527c4B6e35e762e1CA32D2", + "0x26C0a53B1531263C3b3a2C56F266616B5791eC78", + "0x5FFAfC65f0014f3Fd4f6f14178503f90Fc655c4E", + "0x6eF3f0fF397C3de367C6cA2Cc3e6B6955E7993A5", + "0x9A36466098954C7f175e8A0fb796EA7d28A57487", + "0x218584B6B67e2C5ED5d09BDa46E4796B1fb64ADd", + "0xc9F625c82F248558948705360624A502FB957C54", + "0x1CA00BC58f90509c41baA84b77eb0D63a579a639", + "0xb16C05965a678605551A1f2D22cb2e5CcD5ceaa0", + "0x15DB696b8827983f9f83626062a17d9e6a3161BA", + "0xA6e8321FD36a5CE212D9fDB75c6167DD934Ac64d", + "0x77BC51c7Dd3DDDAC29f865541f7F54bF2CBa5536", + "0xeed85Ddd6828B8C714141d34A12D0c07F7553182", + "0xE6c9Fd025Bc17ee3E306f8a409D872eB8a273E5e", + "0xaB0004ac87541f54D4bF3DDC577ea59a5B400646", + "0x7b867A8220043c142356695434E09E12F0F191c2", + "0x75438097FCA6Eb4dc0355B23E6B597ae4868e722", + "0xF4068204DC08aa0aa4615CA1F2e2ad506fB3a669", + "0x559739f8706957c7da3770B95c84CAaE9B138F1E", + "0xa9d9CF65CC076348fA89fd076F0006a57681a767", + "0x73Ca72175401d86A6015B4797937bB0009091d13", + "0xAF1fD55Ea07CAf8aDe7549b21E34B838cDf4Cd65", + "0xcB4D38e12cebccb0C15b9b660BAbAe7b9494E8F6", + "0x147FaC3b51429Ab39F9f371170751bfbDb92a430", + "0x64792EA7C648ecCc079494764DB42398C0251d12", + "0x93Fc5D7295a0F7Ac4ec7838530ed93EDCFF93b5F", + "0x0A75B714dc3C51770e715b78e637bFE53DE3602A", + "0x3d5a749bD9E701Ef6f046306cA713b4537e4ecFe", + "0x9FfD0a5b5438B95861167422E745D34d151bcc3b", + "0x0BaE7d98E1d67741Bfcba5d90b17a9856b1bf82E", + "0x23EFC62a60Bfe4f0186cf19a57116780F86F1aa9", + "0x68039E09CFeBc8eb057a0014c1290531475a94A2", + "0xaE770616364a7a2D91a987Db1AC11Be21e3473E3", + "0xd60E5738C23183739357B37f4E60f9D10B19E62F", + "0x5F066D7A7a8d0Ba68A2D38718AAf2A45953f160f", + "0x59aed46e47Ef7A88862EB1d5F0B2342D8c6eBe93", + "0x6127cb39Ac8e6066C469aCE0edcC3506feaAbF94", + "0xDc51DB13FC0c4546965ac28fADd062A23092F32C", + "0x1C4Ab7A8D9a41D8d3fF39ED4FcdCb66A11E9011d", + "0xD92E0FF8Cec18E9De46e32436641e751c1a9c7Db", + "0x6166d5F406745CFE2Ff0a80310480a328Bf726F8", + "0xf64c1d5aCfc379921505775C1Fd2dbb0F62DD9Cb", + "0xe3BB6C25E7962338De3c4566125005a1eCEc688D", + "0xaBE2Cd0e03fF6ABE8BA46D5EA2Ad13497Eb46edc", + "0xF188CCdD5107fc2C04eDe0Ec04afBbf45DAe275D", + "0x588b6Bc07CA1d3d882d73b2393E692E42553cd12", + "0xb74e5e06f50fa9e4eF645eFDAD9d996D33cc2d9D", + "0x1Fe93ADD99A5492AAdB8210bd8BF7F2756265536", + "0xDe79a3D11e7D31Fd9952FDd078C28547DD86fBF7", + "0xE7AFE9D6b50D684176Ba7225a8668f29D17A1486", + "0xeC49ff898172a72212988740669F596e81246411", + "0x34f2B150432044e2133B2445b28B723D30885164", + "0xA4392347602C9EB1eA91a1492459812Cb5DD3a58", + "0xa357Cb3CE710a4f90fB9d56979C2C3634E3965bA", + "0x82140b0F9716E16f2c10bf4f31bC73a46B69aC04", + "0xF66866C2e3649B2e150221a283e9367c662D75cb", + "0x026C04a22AbbD0e52d30b55C3c4326214Eb45475", + "0x8cBa29DbeC29c2458f29f50C1e2b9A909846f52C", + "0x8FB4A947f0BF71951b9D3E0C667629a5802ffe14", + "0xe6C207cDf316233fa9aa4b79DD98e07F1a256f7e", + "0xC28B043c5B4cc596761491685873c670dBEDb74A", + "0x70a12fd75368140Af1D3122768954690c31cA93F", + "0xe7203E9A54E8384Cc341311EfF209e7F6D53B015", + "0x30741289523c2e4d2A62c7D6722686D14E723851", + "0x6d12765D14a44E64c60dFe778c2eA8593A75373E", + "0x9309a24Bf08aB2F5327d2B488982e8318717e92c", + "0x0f11F3CB8FCFC784374d435aeB4C637b3c2e4a22", + "0xB550fbcFAe4d99136337EEA3aCcaA6038E838dbD", + "0xeE620a0991D57f464aaD452789a4564Ba51245E8", + "0x6a1eB61EF517A717b6Edc1A9e130C9090bEF3067", + "0xEd67023222687F6412697F11E24c036dA35859Ed", + "0xFe1a00487DD9EB84a7363a1c827a6f045fB121E4", + "0xcF3E2Ee2b0cD1194ba33cD1c7d9614DC635a1714", + "0xd7f97ADAC7b0aC5b2855dD814263a894F356E5e0", + "0xf89c2Db21e00b80BB2d0699Ef99c464A391bCF52", + "0x4498c72Ca32564a41D2F9f136f447Cd77f6aFBfC", + "0x64a63d01D9Cf8beadEB072bA564543B326D10aF4", + "0x2900e0eC5EA04c69b5f80f58B48fCA5C44A92E34", + "0xa69c9BE0f0a515Ddc8Ac57350cdd40a36A93E914", + "0xe3B0f7AaBA333929d6c76d4602ee11D88D61f40F", + "0xdFC0ED701CaE22293d809db9Bb295F5C268Ea7D6", + "0xb13C38dDCf7AFB7B60Cb5Ce7D1208E4B32d8057d", + "0x23c043a293b302E146Aa9fcf9a9CA937b895dd56", + "0x32c6B5db05b98907A29BAeb7d09C79c95498B17a", + "0x6e90789B5EF0B28710951Aae7D8024f1eb46DD37", + "0x3eC7Db0c256127b80aBB725827DE4cf596f34D1A", + "0x3F106B32A9B26C07AA6e44923510909Fc1b030b9", + "0xD438519711b9AAE3E15e33c33387ec2F0Aeb5Fa7", + "0xbC65d4C8a841Dfb701be13c4054b9521E5778342", + "0xCA75804Fa43eA23fB65829C8212465A7145f213b", + "0xf5A8501009aDCD92A144E081cDCbF40ed598299C", + "0x184BC1fdfE6A947fa09EF97B84d8990d52c7acc8", + "0xfF59f3a717DEbc1baa57ed7fE643979E0349490c", + "0x3D5DFe8b4a6b9E6206ba6343e87bfda1f4Dc48CB", + "0xb17a16a37673e99323f3d05a92b9B7Ecc21B1b84", + "0xE5dF788C8E6C9cD7a019D44A086E896865f6F1A2", + "0xB62cE87B2e18a3c85666Da2a7970032f433D843F", + "0xda147543503bff1ed4bB737d97a00e3f9De6Ab62", + "0xA02789210589674e72a5F780635Cd7788E190810", + "0xd4fa23307a181B9ca567886eB5bCd5c8f8f8bB3E", + "0xdfa3955344b1aDA04A218129B08FbF70823B1801", + "0x7d45858853Cec6F4Bc15202aEc46c25549d4D9a1", + "0x18e4a567E36451d514bfe024726131f9557f4156", + "0x0E624Ef9C461E9b7C5bFaD5D608C11B6C315E77d", + "0x4c4e7c040896D1E09BFe29Da02B0591Ae2f244b9", + "0x00493aA44BCfd6F0c2EcC7F8B154e4fB352d1c81", + "0x79B786d1A98eaEab375AE6DAb606cC3125AeD13C", + "0xEe90c0C2C66cE93a0Db3372aC4c6776DFFD0A357", + "0x2cA7f846c00989a80c977f02e87f2aB5D8c44A09", + "0x579883A4092A239d8fAC7370F4b9A96377AE7174", + "0x1BD11A33F17Deb442612ef4fd3cd1632E5C553B5", + "0x681120E861BDDa1032f0Ac978b1D9b8e294bF408", + "0x9C979B94C398f559002e70Ed626C9CbAe16e8078", + "0xCa98043835fa23F2Ec98A404c293d5fF547a19f0", + "0x14eb133B16DC5b7696895292936f34B5dC239F1D", + "0x4ada43DB92c99b2fc721bFad4163C21e86cc1BDE", + "0xBbB1C9a4ea0c16069364948e4002D3A7361358D5", + "0xA1a5f57D568AeA5573d5ea70dC603fcd80370a01", + "0x3436d87664964DF8A1825F826f127deC13117B0b", + "0xc784aa191b4562D4AE860b851461d7faC80ACf33", + "0x63e6717826F680F4e50d9824bAb93F95D8d46Fe7", + "0x516ED1228d4b85a3710fDce71c7fBdAAc05caB4b", + "0x8F10B2CE0868965f47B74aC9950af395Ce976168", + "0xFe6f8b49F6FC5a02629c5F57915d2a154e252857", + "0xcbae730CA53EbAe199488f880EFAbE96bfB439f0", + "0x6f5C740747337c89BeCae490e62d0df0cc4Bf151", + "0x1FABFd51EE05201300Ca025E60Bd3310DB691333", + "0x022079E00421b117B3A99A857019A2B1271C1501", + "0xEA32Cf979bDAf8D3bB4121d58515D4623A27f3E0", + "0x1F413AAFaE36cb17fd03b771Ac9bE217d1846277", + "0xACfC319B29D15C6D0aF85ef84347A50131C0e547", + "0x33413d420fF4bB2496fE3327a70f84C14Ee9f92a", + "0xA5A846f077A6134A38A532ee3e6d0bde30713554", + "0x2FB787b4539abbA0dB651Cdfdc74a5379857C8fa", + "0x0Af3d96fA1c43D9000A99b03551c0A8F7320E922", + "0x95922F89a3626d8db042461B00e17ed7cE31eb09", + "0x4c79D8aaA05333CC3Cb841162580502F871ed0E9", + "0x082Bc09347362D8a9Ac03eFb372EA891f4e1Ef2a", + "0xbb7748b4c8A590EdC75fCAED24c6001DB10C09B5", + "0x6e9ab59FD86AadF885856e4e0512f7CF8CC873b2", + "0xde0634a1F956Df8580f18C955B3e9EE957e552C6", + "0x6ca0C13222EA09A54119564028B702fAed716B8E", + "0xbb8758556aE9d9B9E1937CE21f1792762D9A907A", + "0x3597FE5f85ef4c23c94B8A53Dd94C8106B90bfDd", + "0xf9B77855BdDfccaea266413A589345f34368a8f2", + "0xe299Da75b9d1daB6a5Eed3B32112A13b0cc3C0D5", + "0x5e2d9c534870a686cF7d1dbb10f2B8b9a384BF29", + "0xa09CE3aF7c2DD44088855734EcCEcFfdCC79B6E7", + "0x73D396a8A851f93D989E127a4F411A682640B7bc", + "0xF3FE121f304Fe3E56dc93eFD1645B48056FeE914", + "0xDec2d9d0AaaBB2A70B96a433328CCdF6C24199B6", + "0xf0434A50864ff2B1Be67813635210Ad36e34E8f6", + "0xE3346dDC3d4d64e16FBBda1cd82466d2BD7570D9", + "0x97AA869e59f62B511bea0A1DE61b4D67d92e0de2", + "0xd6F8cD019Dc78E8CA33139b26da3447394eb12C7", + "0x662AE464b3e4E34Bc2068931e8E7d265c5C27453", + "0x4BD26CC6072DC2c58DA7AdB7065Ea744382092d4", + "0xe000E18D2968345c240228EcAd2Bf63F9eF09fd1", + "0x38500B07E5Da793a80754495d65A3ac798D994F4", + "0x04f25Fa5a6BAf777335ed518b881Ab7569239BA9", + "0xD57419e256f2e9050c2Fb224dE66600534DC2e73", + "0x77908f9a959F0A311c8408b447bDc17B296E1Ea2", + "0x905382d7BF939Eb13E34eAaA31fFC6C4E51bbAa0", + "0x40BCB1ABdF0927D0730F4D446638F3716e7b78d0", + "0xAaF85980B3f10169bc293AF74986cA99e56efd31", + "0x7D90cc30d013B5a87BC9a8145628E900210d7028", + "0xed561e40A66e791988977c21fDC7f083E9Bf24B0", + "0xe80C8a0d7bb5889831aA9F1b92Bf57Ac4D72f90e", + "0x1bc6955e458927B30eEeb6daCe42887798E69B3b", + "0xe01820007845681997B21A3384aaAeD335e95772", + "0x7556831CdE1E9Cc65557074c3a3F5F46F7D171B8", + "0xE147307B9A973ACC16701d56B6BC83bf20623B0E", + "0x277D9B33e774560f4d391c148C9e4E24cfb77F8F", + "0x25f677051626fC7e1d0674c36c3bCC945Ea990A0", + "0xd783947ce4924147f35b319BD247eE628E7fB0BE", + "0xF8354bbaea2aC7fDe2928768ca2D45CDF6Fc4343", + "0x581b3d2CdCd3911d9Bbf503550C3f6C1f3c997b1", + "0xD39a47B55d7b51d8533f763176b47adb86e896e3", + "0xaC26F44c3560CED60638EE73E96CD44969526f3B", + "0x7C224beeb6064D7ca376Dc66A8D1245ad5926aa6", + "0xF76ac368666e9EF0327Ba70DfB730b247C24a431", + "0x78704a9Ddb658Fa225F78e719D1503702609DA5d", + "0x7de00E45D162365aED8115Cea9E55fA7a2b3F298", + "0xbDfA4f4492dD7b7Cf211209C4791AF8d52BF5c50", + "0x790c7F75aC962D3f4e80566C87A24285BAd3bC7e", + "0x29E663B6c1f24c3D17Eeb8d39d222AF865943B1f", + "0x74052fb4D5dF7b18C3da6e529ECeC84eE7cBa8c6", + "0x0E192Bc356fC8a94AFf4dCEc7d96f7502EB239Fb", + "0xD08BD78cA3369A45E3D23bed18bDAf5E3B8c98BA", + "0x106Fd74D4cFcABc4a2b70983d48Ddb6420f2A185", + "0xc65D0b3E71B436a16cFB44b8D18385E1cccE8b05", + "0xb685E33ed438594a789f84D59c7163CC761533d2", + "0x3821f061F9ba3d4A18213D89820A894f24EeF861", + "0x23A1a13CE201D3F71Ab4637a937c80935B104583", + "0x425839aaEEC910aCF89C1A48358A126D0f3ba052", + "0x9134f2236793333841595309F80a0Cb58032e757", + "0xfA10e528C0A3b209e832aA2c233e70fd766cB26c", + "0x30EeB48d670900Ac1995Ac70f0fB638892103538", + "0xa85D49F557541bF1b838C2c3dB9e2b118f26490c", + "0xD7FCD7c92D184c2C3d84721dF201f9BC95B32f4E", + "0x4A8E2E8cAfd4dc0563803868cD362Edbdc8E68A3", + "0xb7b9916E59cee95a98D07ec560a93B46D39a9135", + "0x5d1F1a62B52E4C7DBAba67E30479BFb91b03CFB8", + "0x8f894791d6122012818520ce95c92D1b6ef1d3eA", + "0x28f00731408efd5851AdBe89748c047FB94abd35", + "0x7FbdabB2dB96465C821a7e546e81294082D633e1", + "0x368247207aA443e8Fe18Df18C266D67C4db56313", + "0x492eB92bA16fe2c875C39E96F97AeaB192F66594", + "0x558247e365be655f9144e1a0140D793984372Ef3", + "0xE9096eC0c19cD0345D8474dE9E26C166Cd08CfB4", + "0x69571a679D302F510dF83b7e262f015e6D865C6F", + "0x4b12c77A4be728aD21cd1328E45443802232bEe3", + "0xA23D00D0d4DE689FB872cE4A514ADF58dcE2cdF0", + "0xe00f3C3277DBDE8AE2Aa546BDD5998F0a2A0dbF5", + "0x3A79C7eB98d9CED2e7d7292aCAf526C3880D83F9", + "0x1CBbFdD079139C8922248ACBcC62174e6B08Ef52", + "0xd5D6242177279596B2672B9110c0771eD2E941E6", + "0x3DE2EE1A6f7397653C8C7981ca7473487dE30c39", + "0x849Fd5fff945b0Fb552BF123243C00EEDf476c2f", + "0x5a519f6239C496CeB7F76399A96CB5E850e69645", + "0xc0c2387bC5Ef8CD1E5Ca3897FfeB26E664632ecD", + "0x04bb958eABd3Eb9CA4B9DceC8be858175bF9a4C8", + "0x263F1Fce39438e46d2fdCBf9AbBb27D4861C3C78", + "0xF532d25600012D78c14B3f7bFdf6688096D8753a", + "0xE6c7858D13Ed0563be862e7A0F0BA38b9EE7209A", + "0x07Bb32dFfdEa27436177dDc90D96476659F23497", + "0x53Ac9D82EBf90BF03c539119fADB82b86293aB7B", + "0xFDF469a0260032eCC5Be420A4fBb057E80D4ba5c", + "0xB7B2050e12Dea380Cb9Dd238B663627Fb00EDaeD", + "0x1027b7aa689ea0c4b48B17D85b2A5093Ee8f051E", + "0xfD1c0251c29a81748662d553904cA9aA9bA66510", + "0x10f7c77Fab0AcBfB5629807aaf35344dC1207142", + "0xb632566e8e1B50ccfE325e5D4F5f9Ec807A3568b", + "0xc6085484F780C075a2188542594db5e6FF3Ec36C", + "0xc0A2f3b3990De10a22a00377df0F3e7503c3a14d", + "0x1Ffb0334C86D69dcC0bCbf78538956097Fa9c550", + "0xd51b5e6256B34Ce3a13d8600D05478bf8b87d2Ce", + "0x7C51640BB61607F1d43969573491fD4f5e243779", + "0x5dA5F4c020f856aBdB168fd35c957D6006ba2edE", + "0x00C32d28d7529eC4cbB7514229C8B80F404aeB52", + "0x6bCbC6Fa460241AC1dfa7588160B51ff94f88733", + "0xC7C377C11Ad9825B17C072FC2e17E9B9f319aF7B", + "0xFa9aB3Bde88463CE8F3BbE6596924fe3cEeD5510", + "0x5eF0D55F04074930E11753F5a49D139cB8cD49DF", + "0x0289E441bAfE0c1eF096eb2799dd97B351499978", + "0x14288773c9df9a1b669de2324187f678d7C1aB4B", + "0x774bd7c89bf43a9fcB342797C8e061c808C38A0f", + "0x81ac0B00F02B7df66f3800D0dFd8622c74d78E62", + "0x0F6686A7a49f5055E69d7B1caE7d8f19843Bc15E", + "0x3f127201440602A02F808f0057C7FfF92E6bE60f", + "0x754C29780eE17a7250457E3523f0720B256e92E2", + "0x4ab491E11Db7138A005eABF0B0ca248431D5889E", + "0x3d4d735f65f626AEe161479D55D476765E4110BF", + "0xfa50671B1e38945774F0A5224160B45c8b545f29", + "0x929A5753C41eaed288F946bCBFe4a954Ad341797", + "0xe358A4Dc52B306b7C7261EaD577B9E140239f2d3", + "0xDf09357b015e130070c95716E427ac2345268882", + "0x09670585Fb16Cd64f25C025A48c19aA034cA1298", + "0x1300B31AdfafB54d340541dd8EDf852bfA49d9Af", + "0xf1080A6365123EF783F3ebB4981f9d220402213b", + "0xBea392Ab5E7427CcB2FC45A407A0A59C0cE80430", + "0x35e4eC20F42924B945DB48C1e1b11Cbc04957c76", + "0x4fC70107D2B3eDD22c6dF9067D711a93ad4C3b77", + "0x961986481f76e94195f66191EfC73b3D6FDEb31D", + "0x4730F5dDE6dAAd4B9381F261c9f6f76CE6A9B4d3", + "0x3704941276c3049a740214F6df50A0fCEF1A1bE1", + "0x4a11167B3cCbC6E0dA04FbeD42b55e79AEaEAC2e", + "0x5EA755F7dD3752e83950c298Ad5fAeA684b9738a", + "0xA93cf81692Bc895A3d1F2198F2617ebdED589cC1", + "0x203ACE9D16Df2Fe9658296c97193661A809C3e02", + "0xB7E3Fb83555089b5a33ba7cf5a1110cB40F8310A", + "0x4e38789d10f009E8B80A514aCD90191AF8675E20", + "0xf8a3D3462a3893c809F62f8CD7C30daAC58D7391", + "0x88145DD75e933e9ac89cd8F6DBb0c8F0186c836a", + "0x4858ce44BE65A79811F32417801B832b423DE0B5", + "0xDaaCD0D4ad7306618E05a0DfF4BcC9A3Af8c48B6", + "0x209b9eEB1336Cb5FFedD8D4e474840e553E812bD", + "0x2510eB2aB631bfc2156bFc12f991d2C0FFc711d5", + "0xcdd164ed67987AC6d00292F1903D836BB514d084", + "0xfB8e4Dd7fda377bdDFD08401616d997502564214", + "0xdcd31f2167d3dA86304c046725016676215066C2", + "0xb8b713e162C5a923E35430Ad2E4279D19699285E", + "0xeFa51c4e7F3F8a97B5507d6c89767f2ff44CA8AB", + "0x39bB99c99715EC6252F5c2713D949E7BB44C9214", + "0xdef158dB79ea76beCa386334F76AAb897a31A059", + "0x0704e9724dBc2e8Bc519dDf6EC2946E9b03B5a03", + "0xAD575e50c162Ce12D6bD4da878a066238E005398", + "0x62721087a6082c5336a36B7cAae7Ae416ee2cFF1", + "0x68575571E75D2CfA4222e0F8E7053F056EB91d6C", + "0xA99C4F924a167cdEc1486aa9920de70A48455Ab2", + "0x46f8B8d97Aa29eD884CC3e51b5878e8F8D15Ac07", + "0xDA3377e2e3Bb2106C9d915257DbFE31B934854AE", + "0x342E2741626E114a2171744206403F4Ce432e74c", + "0x18f299021e83D4016435e53b30BB328A326d6a14", + "0xfBF75933e01B75B154Ef0669076BE87F62DffAE1", + "0xCf68483aD0e14162937C6d32245610d3891C630b", + "0x85e9a235F911Cd1593cc1F3e837cA5B005D5891f", + "0xBC0DdD3e509ca30BF45F6202183064075Cc53071", + "0x343AC8Eed9b30265CBCe4606bda2a6f13ecD2F37", + "0x53eA62C15acA0b574B2a2b982EbA977c730c9E70", + "0xe9404Dc46cb03e1Ce11252e2B3e6c0efb98A34D6", + "0x4806688DFcCEa461b645f08b9CD2F695999276F4", + "0x8aE6422631292c31aeeB2efe154d6326f703F46b", + "0xdE654740ec9d0AD6D9fC85EBf813A77A7A7719B5", + "0xB3e1b74963301D2ebd72ECeae539007c3Aff3424", + "0x908E8E8084d660f8f9054AA8Ad1B31380d04B08F", + "0xcD229d3B59Ee4beBe9a09c528857BEE35B2999b9", + "0xc59E1a6F7C10cBF856E69fE237e51e674A250aa2", + "0x5a9952D56f0F4bd32e53478fd3e56D91B9545FAE", + "0x7541C52985AF993160fD84203841A4E9a95C1510", + "0xc5245E2e4AD3b2E9e58dF25accbb21A80C6D0926", + "0x235666094AEf43816978aaf56B9802B5fC19de2e", + "0xd2418EBEa04866892a3d50b75b7298875E02660f", + "0xe3e3bc5896092Baf5cD46507342911514E945148", + "0x00000000E4fE87d59da8286C93649643bC68F996", + "0x2c315E93ED4233Fd531f88E2A8ec25Ed8822F382", + "0xAf1Fd82B52490810280e20906433Ee7f720B7879", + "0x5CDe5A8fC18eD8addf11E9782a0790E79a63e2e1", + "0x90CC65cd2842d53e49c2037db2440Baf0B72221D", + "0x0d3ba0C0BAE1Ee218A84a97567F893fb76E9C330", + "0xA1336a90b288715CcE8Bc4d5624c9526e0751B42", + "0x97b93Fa9a692467619Db12Cb4860E6a5B12BC0aC", + "0x534A6B31078Ae68C1C4fa2a3547Cd8b3520255eb", + "0x3A7d75B460a9177747f19691F2A4D1D68baf88f3", + "0xE728d3aF18DE2041D8239F4600DEEE1E5372F53F", + "0xf05F8e1A75C854D6Faf26230378EA73c630EA1c2", + "0xd84E11beE5D555CCd905817Cb8CBBd5b6e6C4f0D", + "0x0A9435a5919933e643620C25ffE80b742DaAE9C7", + "0x6dE3e46cCE02A39D74e55EB8D23E5b175cab882a", + "0x90fd836Aae334d42b85fd7CE0b8c4A43afaa1C69", + "0xFA95a23d38F162EFA06f7e84618bBa4b99a08cF4", + "0x5Ec9eA9045977C521CDdFF6DB054FD63AB40b24F", + "0x9Ec162Ea326F93C81FB3790Eafb2f049AF800b4d", + "0x32ae635F5136AdB181A442Cc890be39263bC13c8", + "0x1090E8096681Ecb96389c40e8Ab00d5c88997985", + "0x8286f706F194FbA0413aD13A7C3962a1Fe0df191", + "0xdD4db6De516dA7391745A9017F2A231a5A38Dfe0", + "0x7d9Ae024734B83E2e07E4F3494359B728Bb790b5", + "0x43764aeE49dA3d3a877E3326A83BC182A5e0019C", + "0xCba1A275e2D858EcffaF7a87F606f74B719a8A93", + "0x1C914539A754A2DeF114239dc1B1F3D15E9d5723", + "0x624DCdE294C4239fbD1c0895A24fb9dD49471138", + "0x608e48e4BD6C76940c67963e0833cb1990e17bAF", + "0x6516F67345e46F2C1A69d0aE8C8Dcb8F245d5daE", + "0xe93fD4e3661A7ea54cd7810150670a803D5a48CA", + "0xAC170cac4025043621178F9D2b5436cd96f0579f", + "0x80333801FeB4e0D92C1B0643054Cb0341B35D232", + "0x4821C31842bB7cb5A4980411F7E03BCD0BBDA539", + "0xDa223731DC769f3D704063C6104bFD7372DEA5A7", + "0xd1d0D74D94f291e8D82024B1A74D785bA57BB555", + "0xdD9f24EfC84D93deeF3c8745c837ab63E80Abd27", + "0x3f6121301D1E82F52285f601C3720Ca6514090a1", + "0x38d33A5bE320c9b9fb99D9Ba5745775b8C54f2cD", + "0xe692fBf20924DDED9dA3798855095740b39C9291", + "0x09592a83D3bf5900E0b784eeDcEb8E91bAa56C90", + "0xFd89b87dcd3Ae8FE7d3B255e362b3c61ecB25ced", + "0x44A07B71398423e12bC6a9Dc9e3B71D878d42517", + "0xf0763EdF0DDAFEefE22D09fBD06D6b39CB991116", + "0xF5a1F491DFe91e4078a05B30CC477de7888F5310", + "0x0F46540678c7e6D2eF983B382CC07Fa815AB148c", + "0x452B8aee94894b8FF6eeAB179F67ED8d51576579", + "0x44662200446ACE5e18422E4f87F93159eE3476D0", + "0x3250A2576611f3bFbdeAd0005b9E3A2a1F6FAf50", + "0x0279E9366d3eB3eb8720117fC901211386114f6c", + "0xe1827D434538752cA08ABd2C75d44E3522C772a5", + "0x50c491ffDa25f9E472d467d60835468C522E7d3a", + "0xad2F6779eea963051869df83A651165a5b4f8D8b", + "0x1FE9Fd1156688699F4ca017E72ee0D9873f9d758", + "0x2A53c87A0887fD3251a42828FbDC45844a6ffBef", + "0x40E8960E0fc7D7876B997f18d0303A8ac7b233AB", + "0x39BAaA8cF7ad06E7e0c5A0A2BdcBCFA2B0879FCe", + "0xa785e5bD1cd918a6F4CFC2DF48e675716F84d9EF", + "0x1c4C46b64fF12A6afd91D8B52db95d2fB45c9fF5", + "0xE5964Efe4e250c677f1F474509dE728a82D4Bd37", + "0x615a838ACcede19E85703B105CB7d021550BD824", + "0xe27E7c50773Ca859875107ef7dB5E22Aa2e248fD", + "0x997ba4Cc40BB6A463E21AdCb9981FCdF64EC2e3D", + "0xF46423C8042C676C4f806e01Aa3563f728299248", + "0x655e7B3E2De362FdF8bBa51d7707a839F56a7D87", + "0xF2801eA7E173B0d2AC57Aa2A0759b96dbc853CCb", + "0x6a9DC4bc6d13F51Be5A7d2B02F35F1519A22E0f7", + "0xE23CD65ac0253f67Aa75666765E3350D14117866", + "0x6bfd13c44eFB8a72D8C6457d620d9352d8aDa621", + "0x4e8A511f117C80B97db153Fd0AdF77986078e175", + "0x3899D712ad2438dd4C4177DFEb84A4F6d7007E1C", + "0x5564E4Fbd35F37D889973eB1AF427A6a555e8ebC", + "0x53225f42D69BEf93cBe0550f7c2A81A99792072a", + "0xE43a1bcf660A07F2CCA3331346da3d75284Ffc84", + "0xcc0a036bF25f67478750b20F825B90a811E3E217", + "0x92c20F715472AAd2c7fc7284F0C2e4fAd39e28Af", + "0xc835aE05691ca5357bF6b4d3fDdAe4C3339e0c83", + "0x0154d25120Ed20A516fE43991702e7463c5A6F6e", + "0xb3942710dc30161B69B9ebB11B6F3aDa0E211DA9", + "0x9567963A5439cb8740dD2F20bCDD5eeD288beB7f", + "0xD8680B048e3F417433F587320850a310FF92759B", + "0x20c18421CfDd70d451b2887a50846fEF78C23E65", + "0x5d9606EE1a677bdeC13Fa4d62989076B943A6EBd", + "0x8c227B0b7C5Fb768E039FA05A77Bb825Fdf65690", + "0xfaFc1b38cB32C642bB30EE71B6e9a612d4F4fC46", + "0x4322AA46ffEd67809862Da613725728e2fb8eAe3", + "0x71f0E51Cd819a94bb7277559f8A9c8Bf3955b720", + "0xB6798c96E14C379C79fC19D37cdE013be25D0d15", + "0x70BeAeC43A24cB0587e03Fe396728F5A2A140f2A", + "0x91B64B13a7Df73438b552da8104Ab1f65BD8114b", + "0xE08487309E3105411B2520eE80cc74cA760F7a6F", + "0x6a42F3F399E7E001FC8277a11cE009593397ef9E", + "0x7e6F711E46AA8A02980831b7eFaC0FaC5a5317dd", + "0x69B07Fc8eD33596c261bd234652841235467a79E", + "0x7e1789c0d2a88A7cA022a6ad5f51f860C45BE84C", + "0x90D061e6cC636F700bd578dB01CdcF5d464EB1a8", + "0xc36176c1B0316CdA0711F522c6AF3428f744f7bc", + "0xF183d7fb6D86f60c1D6794Ed29CE9cB3919EfEAf", + "0xB3F98E92D4EFAc021497682BF3685A121157E7AB", + "0x609932AE0365219c05069232d38a4015C26e9F0E", + "0x670BB3B8099099aB380A071303F3cd57B3a08D9b", + "0x29A469d0f973A91085AE5a589731439c40cb0273", + "0x4eF68Fe47A7E5cca2449E87fd327adD1b5eAEc22", + "0x6B407f20a5FD127b3bA85ADEC219380E6a74524B", + "0xB77e77Dfb8F0f27379B1bdc5D17da612E2854D19", + "0xD8bbb01D0137187D726D073D1b2560901Ef20B8f", + "0xeBF442A15094289f7483C1a9D12367Fc1531c4F6", + "0xF5A228295fBFbD2Bed744fF354Dbabbf20938e89", + "0x51D79f656f5107c852027ADAdFa7bda8670d754A", + "0xa2Dc67bc24A8C356E94932d53A859e0Bc9Dc0d15", + "0x44f979aFcC29D19f71cfC04A31E4754b36f6df85", + "0xe12c95Faf4656bb4482A9a840901d688F90bfe72", + "0xfD0A10A4caAE2F0A88e04B909C782487EB268eE6", + "0x41381649B2231caFc8293F501Bb3dF422aeBA5E4", + "0x1C494f1919C1512ebE74a5dCc17DAC9A64069023", + "0x636dB5602E67E3d17C9E6019f29B0F9BA8c18b2e", + "0xEE5A82516DC71BA3Cb0Cc2056095E41FB894ae2D", + "0x2DB66a069a3525c72282188324209C1e90Ec0FA9", + "0x0c2E9A64c9382BC2f99b092B3D0c3164375536D3", + "0x90aBCf1598ed3077861bCFb3B11EFcd1D7277223", + "0x8997433bD96e1e2A691832AaB7e5a2aF6D20Cd98", + "0x97b9B29552317867368A9F0234DC768fb6a27fd9", + "0xdf018AC6efc4E9E39515c0fA67e5ba66d5e366D0", + "0x6722c3b2564f565DEefe16405DeD07fA71Ce76aC", + "0xef14db00cD66CB91c9304377b58c258c56a8885f", + "0xCf83D441D8838acb8C4d77f7Dbc661aD9aAea7Da", + "0x5823443272C330e1A28cEa0038e70196b785dBdd", + "0xD5984141cf9DcbE80d48b836A95C65E998579ED3", + "0x1D955A33594E54eB50C9b35B3efEcd4bC74d6D5B", + "0xdD70fc7959a24335b8Ee1a072C3d9B0dDAD07540", + "0xA36baB9f9e2392c00A2251caF382f5559C00f4De", + "0xB27d6D2dC7DB331450c827a7bad3FC0e97Bf386f", + "0xe31ce47F1A20388a47E75F064a58864CD2Fb8E9B", + "0x652d9aB89B17e8B08466Ad5021bBEe06e33b9aD7", + "0x1Aa6Cc699152Ef516B165F2A682347f5eCD4F74E", + "0x0bD5f1a9cFd8bc9e059490234611fB5EA760518E", + "0x3Cf1a1512149B5e6dd0e29aafFe5400f0848f5D6", + "0xF5DAa6D36462f9D4DBe1dd9194527f5492df394e", + "0x3235A9D04DAE99CEaEB82784E654DBdFc5C8E916", + "0x10fD5111c1C03119E891F4704c411CFD2715Af87", + "0x3b89b260D0884363D8cad623d3554fa3e211F0B3", + "0xCe53A0bdA1979B451Df4B85954d8762cbC881bD8", + "0xAa2f7D0ede7d326C69A339e46406CCfFCb725Ddc", + "0x42C503F0F57a7235937C493E4455559CB13B6E68", + "0x73C0481d5EaCDFC453aE9b2300490DC6Abb078C9", + "0xdEffc2c48d3b476c51E0b6eF84B02a3D6060ffC2", + "0xbA12Ff309847676e2dDC0239633B7A082339d7eD", + "0x11456b3750E991383bB8943118ed79C1afdEE192", + "0x888888E4Af0B9124c2519a27E57bdA4C4f062ECd", + "0x3f11495ac8be907e7Bb6891C43e4FcfAC162bc4a", + "0xC326F07A4Af1F78022ab7cF5bBF5c36C0Db4f586", + "0x290C8782E77877Cdf32A67F40F460E3F13F230B8", + "0x70E819f313A62f31825C2b112E3A9246fdf8e400", + "0x02Fd85e93f38660623F0E3228a319A0Dafab8901", + "0x54c375c481f95ba43e2cEcd6Ef30631f55518f57", + "0xb45cE332B0B464aAB34B68a8fc6bB7fa453fe93E", + "0x0F25809d8E83AbC5Ff0f4Ceb8A8C39c79746d0B6", + "0xf0754756E71aac7aD2B6497E7006F5E44D68D592", + "0xfd6a9CFa6775E6F13C390ac76d5952eda61c8a9F", + "0x3255B0780e34215fcbAE5b7433a21389d2e9f327", + "0xa87E2c5D5964955242989B954474ff2EB08Dd2f5", + "0x1C95Fec51174eE74CaE7958a9FfC7d62a0eE0F65", + "0x29ebCD4aCfd3fF9AA028377A8b1330D452694fC1", + "0x6eB98A84dd1556D98B9A8cc7aC146057c5DC7685", + "0x383EFb5836051Fa6b9b319BaE8F5886a21167C98", + "0x57067C480F39cdAa21cc4A02638519D0A42cB5ba", + "0xbC6A734F367846C557eB1C8419a9e5aA31b614AE", + "0x06dd29F9115500c16F8060638b6197E20492f69d", + "0xB3cFe70f6545a04e2700BA71f4EF5a37d36b25dd", + "0x2143Aa8C34e55785528B6cB4D1d413106bdffC92", + "0xD60Af91Bfdb5dAADA1B3788FDd1C86d6d5259331", + "0x9EEd5fCBb5384c98Af8413d31C4a716AB5387f8e", + "0x9137C27f09e12C2525f5b612af21f047d7f01Bba", + "0xe1E7C13abD171eD127834C3F73D0E2daB4d35692", + "0x3941Bd5327276732c231f7cDE8DBAF458f33b918", + "0xD5D32F516Bab81dc118b14FDb76AD0502CaECa80", + "0x4E00c74831bd2ddDF1856426Cd6fdf97d20c332E", + "0x0eee57D2D76C60C2F70A16Aa5cFD4afc161536F6", + "0xd9ea180CcBE02A7a1e40703FC01E6A86B46B4416", + "0xda1D08EdC09a3D65C8Ec52461066d8614542E532", + "0xF55c5DF700dE999d461c6547634253d5e9710C0A", + "0x2B2bcbB92F195A44268531178Aa5D2D077f01400", + "0x2a0059610c92842DC2eF84aF76b244C28687e647", + "0x4D06925D1783D350a120fE955467248315E42D5c", + "0x08C07A9F134931a2F826f631329F71D392466879", + "0xafAc95116fF5116cdF8b6128f509b8fc16Dc5ee3", + "0x308Bff328370FC4a9683aB9fCd79A21be6dC5eE4", + "0x15086a450dd14CbDb5bb4688e2295b1a817DD96C", + "0x069f0C61D636aFaDE33DB095D5d69b8f230daf80", + "0x34da75D6f52608c168Eb4172A903E3f721080F01", + "0x9cd217abA9774baC83c0b4dC104B39955cBfeA45", + "0xa668Ac5abeF2c9Cc7FD786250c9BaeACEC8D31D5", + "0x71fbA518Ca86d6DeFeC196D1B15a7e1600f178b5", + "0x321F602B63338C674B63239821f17A83eF63e5C6", + "0x651D5A6eEEF435250F3bd8c02B3c6Ef18f4BBF62", + "0xBb57a3FF7a31582c2988e12Bab244c526E3869B9", + "0xB3156Ea0c0eC03D4E8A6F6a126F7f100073B3EC9", + "0xd6A0EE305A4Cfcd3f4b2e34Ae4C2a8d81E9DC608", + "0x7eC9FbB246F296da07E09d2867E45bF40F8EA9E0", + "0x04F4bdc7E478e94E6E334b2b09C867E255E9C1ca", + "0xfF0092b5f8cC4Fe7d86CC779cCeF6CA449E12596", + "0x34cC54f3C65E6e6CfD1f05E2AD0540624A5EfF24", + "0xDc319a6cF62cE6afa30B9bcf5BfC9CFf92B8Ec8a", + "0x58e52c2F983d78Cff50861c59eEd1273C83B327c", + "0x0BD1454fa01dD11bF6646BF8bc17a3E48Fda3734", + "0xf7A834B3Ca5Dfb1684792446C30dBF619E553eA3", + "0x934A3231e52875AE84fB3e6c6c42F8849Bca3530", + "0x40323700111f1CA44F6D1Cc151b6c37034325415", + "0xECBe274B81146E5065982bEac5c76f2F27EB2418", + "0x506e229770622b1749be688ac093e98F18bCdd96", + "0x14Fe1c6ADb626A8235b079d4ff66C6b0a3a2E68a", + "0x8652fd2e74d2276f58C30aD232DBeE5467AbcE4e", + "0x49C243cc07dA0eF410fF1cB0155ADC80EF046c1f", + "0xf83421f83d9144245510DaBBA675E85A7382EF85", + "0xF1C77Ebf0259344bBBbc62004b0853389Ec41EB8", + "0xA1fF30a2448536712C68FEa0d74198Ac13F7d290", + "0xBBe8e2EA7173095325034Beb7F44ABeCc54cCCb9", + "0x484851Ab627539F443Ca8eb7Fb7e0e06dECbB0BB", + "0x23272896f6f5a00a1e6238db600c8fFAedf9d948", + "0x0c7AE63DcC322eA3B580a4b3B378861f26ccfB87", + "0x065C85dCbeaDA4DA3F4A389Fcfc9665DFfa1D490", + "0x403CD03C31513C1F896a7C9e04C5e9F470A486Ea", + "0x59a99FC6a39Fd944c9e70b2dB4138b58d1954EDb", + "0xd187cB06753b747688960c7926d5de8f16F0545b", + "0x4C4ecF6973b8Ae95F4189053955d0Fc8938aec37", + "0xCCa15a0c3bAFfa318C25bC001065008B62682491", + "0xaEecaEDE7f29b4dC35571Cbe63573d3D5Ca24865", + "0x767D222a509D107522e50161CA17FfCF0e5AA3dE", + "0x4DCe05A53E15EDB22729f585F2A8f0EA199408b9", + "0x3c922Da1D136B7c247788274fA822AFC4cAbf1C7", + "0x458766AD6Da34Fd6A309FEBE57885dAb16224193", + "0x293d9eAb4a6b6DCD263d71e74C1bD7d83Fef5063", + "0x5294049fcAfe8CEB76B382785e5494f0B11D5668", + "0xe590F02553b7e140ef191dcE5101d802BBD0b22f", + "0x8b865742d0Ee022696A4Bcb00Fd13AABA8B9e9D3", + "0x7eD5a7af23497c8948D386C2B0a2b806F54B3e92", + "0xA4FDC2103B412cC142bd7715DabAB06F08eF842B", + "0xA0204DC8B4e33Bd976DF5f7a2E6a0e9f019db621", + "0x6AF31aB2538753Eb2900b9B57358D742bc6CF178", + "0x59a78b4ec8cF6b13082E3C2c7eAA6B92eD2C6CdE", + "0xe9D9F8c4Fc96829339c3d94796Db68f0562E29A7", + "0x60E95F7b9e3783906Cfb6101F2b6073175D078a8", + "0x71e2e53CD5AAC14E3Acb563D5A1B20108D0b967B", + "0x24046f8fa6b91DadbD468aB5D5aD574A54E43793", + "0x6E420a95b4546858e8D3237D7Af5977b57340503", + "0x14D499d5409d670Cb853112176146b2C4BD47089", + "0xe2A835CA86dcFEA83c93a6c636192A730C0b5651", + "0x8d8629128c6F801a1d873012bAB63C0198a5Bf0b", + "0x0712d172D2A75906Ff9C7d3052DdB2568877aeE9", + "0x2b7798A793ED99d06767945954226c73Da2553AC", + "0x3D6E381035Ab5995e06a5B1661Ee58E92bE755a9", + "0x9Ba7Ec4C0D21974C6d5582D3b58A81B9102F2bCC", + "0x6B7A4166a06B988E90042F4259741B48870e1647", + "0x529Ed027942aDA5d0a71d8e1e0006F123eAaa472", + "0x9Ac1Ed9517c7a24C745C2B7E7FaE95595Fa2f7eC", + "0x2F3a1F7668a9F8B640DD498A6A6392c6a0E851C0", + "0x6367bf1269db8cE122d282c9a932Ba69a6C59C02", + "0x1FdD5814d3d23fBF93849B530c825eAd5f83D63f", + "0x3F75C65C231bf747D26c49E61840F872A50128ab", + "0x1A51bD2D1eBcD646F398D8a6608bB3741a7bE613", + "0xC95397deF63F9D141Be35DDa9335263745e28340", + "0x97E261255b95AD980F597714ba28A11FacB207F3", + "0x0611bf5A24c05264A940DA19E98235C3b873eBAA", + "0xFB21cb4818866aB675C80ED8233eaFfB45535d58", + "0xe4e83194ba5cD16f6e3C81833A0C0Dc904718DE5", + "0x2564Df404f696ABD2a52d811307C54196A1f75c2", + "0xb23BB3bAD506180046d060FF77dFe0185B6A032b", + "0xffF139923963D4b181E100E303cF58ba320Cf2E7", + "0xf06e77fd9289763C1EfdA7B6901f388F47656102", + "0x3D945Da47eaeF43C4257DdEd7431F637807a6a38", + "0xe781549d8DD50FAbe211d2298370FabAB87d6e56", + "0xC8B0CBfd9b87CB59b0aa7B0c5BFc57AfFBa25Da5", + "0xE5dF8c7f12D450518402281EE4627Aa105b5DD58", + "0x0aC4C291fbB28a640d9d8896AB043803FE367Cf2", + "0xDBcCc870cdCB2077AE8A62D1CaE9C6e7F2caC4cF", + "0xc9248b5F037E36626d00c858bdd4E69F7e70064D", + "0x0bDb7A4862Dfe5e50b55c0496f60c5fad75146A4", + "0xF068d38f341F04E58210fD2CF3790530edfd4f86", + "0x1C727a55eA3c11B0ab7D3a361Fe0F3C47cE6de5d", + "0xCBe7cD986eE76724D47586Be4D65195a61e7a84c", + "0x55f48966E93a75a6DC14a372a86DeC46447CBC6C", + "0x7B542649Be9307660d5A1CF757d64A189c071870", + "0x3c57f6239CF0202436E253170A6E69D54731ad12", + "0x7dd52Be395aBF2109E42c715425168d3c4D6e7C8", + "0xF0a5293B7282C0407B04fCf15b5D64DB0ff3d2f3", + "0xC6C7E6B7e463F6b4F5849D0e6Ecd95194b8A85EC", + "0xdC822485f112d3A4339c05694AaD9c381c9AF2c1", + "0x8a3db8E88DbA75038f32d98dAEe70dc7812a8f0E", + "0xa70b638B70154EdfCbb8DbbBd04900F328F32c35", + "0x74ee6AF6E98A640Ca94aC9d27A9472EC125215e9", + "0x6fD11Fb810f69B01Ffd1a715E1b9e9d52F13a483", + "0x6724578f7cd48090922C04a75BeB56740e23F850", + "0xcE801BC537cB24aE7Fac4aaC75d0a1e18D642c83", + "0x9B84dB09103116A221BEE2748400ac3eE77DfB53", + "0xaBbcDf57b274155793FD8D17Ca62c95f2C70Eb1C", + "0xFAD763Da9051953fEa58C2304395719A3B6BA361", + "0x1921DB674F1368fE9F66610897bE5bDa1E7Bf903", + "0x02e0AB5a0b8Ae2aA8dA79D6c2c9DbcCaF9f725C3", + "0xa825d6Efb812F06CFCB4e98c037CEaaF3Ae0cB8a", + "0x77c02ebD56E120d4747b84fF7144Cc036DB71952", + "0xe0A531054D5d7c292FECF01ABA92F6Ad96fd6866", + "0xA0fa93efB404d4083AcA0F958E10A42d16521A70", + "0x19323A6C0AA8C6F420E7b3F68A83F4BE5d8afAAA", + "0x420379067FC6e0748ea1e7CAe070217F2F653BE1", + "0xB95a62bfc6347e808751354653C95780550771Fe", + "0x11eDedebF63bef0ea2d2D071bdF88F71543ec6fB", + "0x6024BA5de8424837577a77F258D65c629ACF8447", + "0x71520E1E4D1Ed73157829E5C2be4B7d411a8aDdd", + "0x4eB428B14bF2Dda8c947896f1d33caaD9BdCAc85", + "0xB4B04564f56f4795EA4e14d566aF78dA54a99980", + "0xCD531Ae9EFCCE479654c4926dec5F6209531Ca7b", + "0x064C2725b6e3450d7B3AAD53230a34eB1342327a", + "0x757d7BDba0c5c73255779C16f80EaFc12Ddea576", + "0xEEB125CF629835670b4C59D37fc3dbF6bC1fbb93", + "0x97889E94368F11a82e536dC4ba3AAeFf17145e55", + "0x3c5a11717e263F0e7caEcde34ceE12c0230ba4E5", + "0xd565Ed001Af98ad11a055802b71754063e92F7d2", + "0x9cB021Fae45c1E24dA22563cA49DBDBe1b0866CE", + "0x61F81e08d7B20989544af009A3148aED79319196", + "0x01E0D769d32bbd11adc8168fc25Ce911dc798905", + "0x673743bba95f6960f0b51918e091EBB8F5E9a00E", + "0xc21AB17BE2bAb6D8456EeE72439e9B3d569c7C5d", + "0x78C017A627B78186aff4102B06d6405aFBFB9d7F", + "0x075e72a5eDf65F0A5f44699c7654C1a76941Ddc8", + "0x52e081BdB1a9e975fe6e6d0549228E6F23506839", + "0x5eD06523f9195bB6E69aE22040E85ae006915e7f", + "0xb6b9AC35e6201AeCf28fC277bBb46A200Ec9ab47", + "0xde7ef44ee1016821Cb3E5bB16Bf0555a24D5318F", + "0xF0F54FCb2F7FD9ce39B8e258Ff22A0b1faAB5f1a", + "0x2458f163c231BeaA673C903894060430cCA101be", + "0xaDAAF294A870FF2a89eBb08E7e155813150c386a", + "0x1A22dFd1efbCFC1ad64048A74cead55EB5893Db8", + "0x2289D6FD181F9Af14F201c8DC81BecCb3E05a7e7", + "0xc1377e2312cC6CF1B7CFB99337Bdf7d82c501f6c", + "0xea06c959c985Ba421e4e2d9C2E461Aa909169A32", + "0xEB4BD5231274aA4C2B97a4fA06bAD9eCFCdad5E0", + "0x997C4fBA52CD694e1E953A356771c0022A564A3D", + "0x942c49Ee2D4F100050fdd2656d0322AAf7B789ec", + "0x9d9647f1a50fE04096C0483e91B173176EED0CEC", + "0xA45E8cE63444f7552fdBB3501f01DB2b1c2F6278", + "0x2E727a110b0256E26E1311b557D53FF47a53F573", + "0x31BAB9b137CAc23a08D67048Ae6c21E5FBa7029A", + "0x0fBaD79C4468A074aC0972Bed4E6FBFC85fe73A4", + "0x64c3cB32a504911C9b2C7C2A6fE426a599208f85", + "0x2F223C4854Fb916523c2639Be5877588A2D8Bd99", + "0x3954A503BF87f49443Af1e37a23393B77ffaF1Cd", + "0x5ea81D079E26F14731e0E430D6a4FA959b48Ece2", + "0x9831309D0707104dFF90642010e1f83B8231C18C", + "0x1218740616C54E17Fa5fe84a119975d182B82c69", + "0xcdfF4EFe95d497834595E85CCaA6c4e07503c4D1", + "0x9FCf8AF7b438ca64027aeEEe2100227b6b16a223", + "0x91Cd02F918B53B813cDfde9B006187ab864BF4da", + "0x7eC938B7f8848c45f2FF5024c8f84e93968Fa05E", + "0x49aad95Fb8dD95bfc47a16675755184A1bDf433c", + "0x78522630b279949fd9c5F375C2387e4D75292aCf", + "0x3aE4a45aB246c90b9811E3147EFc830A701a735d", + "0x8D802D950916E44a846128B938f393C15E1d7Eb8", + "0xe0D69dA77f8A50218c9102dAF166f8FbF4106672", + "0x98C11a4edB5C9D4caf127aEC82aFdC57D93F2011", + "0x79d18aD92231A1efedCd36E10997f7a7b3bC22f1", + "0x386aa438255692EAD400A2f41311A2Ff558C1638", + "0xF4DDf881f1F2a98A33791cCae1D0A9dE9D583490", + "0xe088AF7f0d5097C155096559950f1D4087608ceF", + "0x677Ad574799e5D71151F8DfFdF8DA69bA51d6311", + "0x5c921767aEd882522760d7c34A6A4A06140f0899", + "0x5d61FddC41d8970d9238332D26BC8108a6F58133", + "0x3Eb4307B110bF10c15FE748337ac2d3420D26c03", + "0x930A7CD60A633128B7c5181307781e6d033BA51a", + "0x46276503Dde4608D8e99f7fCee1FddF3B7C0e476", + "0x0b14bbd67612E1e06E55F0492b26998B4E7f355D", + "0x005ebE6Ac77c3d8a6B166F6dEf485d3E3F10e6fB", + "0xE2e4F2A725E42D0F0EF6291F46c430F963482001", + "0xA85291BCAFB061e61edAc9B234CCB27864d6C6a5", + "0x0817963eaA830f1C9B276C7a4401D66A8dd3f6f3", + "0x215b39C252BAD01905F065058b14436135257432", + "0x58eb02f60B99489D76b6Ea63a916591404c2036c", + "0x4e65175f05B4140a0747c29cce997CD4BB7190d4", + "0xf128177634f2A9E74658dbfe74d9Ddb0f2D24F3D", + "0x0076a7a180308486f70117aE53a75DF5988D60aC", + "0x15d37a2C7E4a88aDb0ef5a6C85866a54D261201D", + "0x5867a5e7E59339C58191334BE6C32E6885b6fCa6", + "0xD93B43B3345FE73039fbEf789B0D32beD046b352", + "0x1444dcBe80760DBa40033ba16644BA4Fe3022D56", + "0x1b651249802bF6ac59d4794025d7cebdabfCdd38", + "0x01954251DA19711c354f144DB0D0add3d37121be", + "0xFEE5717F50769c148dF42bA9b2DC2D8BB9eceFf7", + "0xeA99bF156F30bdC748d452D8A4e178fBE762762d", + "0x3e62E286485352Ff5d356FB5c69e2bb54a9FaD28", + "0xf0e9aad71740CC39bA113C45C9d3482DbB9C05fd", + "0xb0e95A31c073BE2388720686f6Ca4cd77B991Ef7", + "0x9c2653890dc1d2B060c8B7254dDe42FDD0f39cbE", + "0x84B5cA902F5AE0F1CD17AAaD3F8A2aA73725138f", + "0x4B066A1703Af1C4410743EF81Df6fed359a9D32A", + "0x6873aeC9B7CE47c0d32205C1f132f66b29635BB2", + "0x4E926f4580A5221D32e8d27D59C0c88F160b620b", + "0x46ebB553C048150Fb8AC25749e0e521cf27b1bDd", + "0x3E7D9f4edDAa08D6c12E0E95BDF86e6Eb58a858C", + "0xbBe844467051fE04CCE050efB42cF824431d1e52", + "0xfEB90f1aC4Ca82569FCEd3fBf91A9DE3CB767B78", + "0xA113381bB2cf0849eC63C053d16B3f6956D6d680", + "0x7B520906313690f9b93E86Bfb0E380eBb862C268", + "0xf24Cb17dB77821f52504d65Bb3340e5b6379783F", + "0x602fA030c301C97734970db71bd0C8437AD179D8", + "0x4cED7CF98c5C588C160ed27676c9BC2d00332403", + "0x735bb9AAe8c9417D87799A10Ac9a97708FCBd242", + "0xf1E04cf8bC4A651EFa9E1DF7F0239754d6497B3C", + "0x05348c9cd6eB9cff8f1c442714CC0a556f176d7B", + "0x067D12492268cCEa4711303773e778aDc783ca9d", + "0x5AD4178Fb0BF0E9ca1D2ceFd6D7d7F9636897dC6", + "0x5685bFdA07C502Bb85cEBE507B9B9481C6409C4E", + "0xcfF2e4d778FcF4412F1F276504Ce941e9232F85f", + "0x29c25Cee4e390ba6eA51161aABE814c9A2B0a8F4", + "0xa39413D7129E9377A54399b39B7f37f04119B904", + "0x1900Eb03efBC633d9ab2F23bad0aCB7109415d6e", + "0x583F39C19370FFb104bb013f305168a6F5Ca4a47", + "0x6a342b28fea0f96238364E580a5f9783a690bbd1", + "0x9Eb61591e9BE76c4175fBa2358A54da75b5dd40C", + "0xeF03d86C04eEc601EA63d084B6340202d3BF60eF", + "0xf181e9B1c0B7Bdc782d0d1A929A2A35A616C87D3", + "0x9709173Ed6F194a953a77204359DbFD0e88a54D0", + "0x91B9a8e151A6DedC98A986e4A38D815e2664d385", + "0x543DC1Ee988931dB4Fa3BadEe217A1194775Ad47", + "0x49C87BBe3Eb97d398b5E77eA5B0944b79AB78E8f", + "0x755fD3fA2a4bd8C67f405894a3B1992771cc1D2B", + "0x10276eE2D57Bb73D8CC5cC39EDA1a4a37E820250", + "0xf3847D4e4b16Cf584c41DB173f518915Bbc66C8E", + "0xb2031bEF6CBB0344971d140473239Cc145f78272", + "0x27381d11b3E12D44dDD652D69AB4A9cfcD8C54f1", + "0xFa68C2896B5d74f4569d17A6A39e60FAA49433DF", + "0xA4C83C3053376E9Ce06C05032c6a758c235A5d1A", + "0x6386288A0045f652Fd3733Bb8dDD7fb0FB3e4B33", + "0xD04C7D9C28e3b35F2866e1B681F4d13102c1bE46", + "0x2E40Fe6bAbeA94ca946971aE0afE2543db981631", + "0xb89d08E9159d746F93a31ED41Aa9A4d3C62e8390", + "0x979d23bE1b72641decB830398659994B93d4b897", + "0x5480B68025EddA9C03Ea4c9165FB64E0a1f2c1E4", + "0xc079b6bcf2FeF7405c0dFda8375F2a269EDD24f6", + "0x51FC91DCB9fCC0f01d1Aa4e659a3748688cc0730", + "0xcF75f542Dae11B1951Fe1B45C68760dFD0151109", + "0x04bb9e05dc0e749878439315F7933e4C9f7a3eE1", + "0x09eF0D98Eb6359bC1A2a1a7bFa49BCEc76FB3F99", + "0xea492e5c2A980D004680C543a57CB6bA3d88d890", + "0x93C6b693C14155dA0971c4cE5a41Bbf9A72b85a6", + "0x94479f0e32C3397f9BE5521184cACAD1Bc0fC0F3", + "0xC3c5ac9C328323e53DbdF064D94779436B91C49A", + "0x08D1d02A037E93b8584f927A27F7F6277EE2De30", + "0xEdE040A7E37C6eAa3a6E0Dbf4b60a4b729b84741", + "0x50a4a104Da74B1B8C77a671f2ac90b2062687173", + "0xd2AB1A62d2435d90775aEe5b5643B1cBb4E7baDD", + "0x20705521636F874837E21689BDdf003A54e9B555", + "0x1B3853443592283Daa3801f07c1C6F71BF66561e", + "0xa0268C016fEA0d29cf5Aad13d361eF3265BA2313", + "0xF2B304563D41Dd210747743866Cb3F5C2B228e8c", + "0x9E9C5a1A731192e51FDFdbBab5383d031F07Db71", + "0x2bBA0F7eF4837af2b02BcD81C55C88D8c26A2C60", + "0x9CF6e56c72Aa9DB3A811D84E8C05aA454E561Ff7", + "0x426A04b46e1052712b021213A63Fe40e5376F8Cf", + "0xCBAF0cE12BE328b14a65482305536E0eeEE4D6C2", + "0xC5fa796bC0E6A6e78a736a6c878B8a941146c3b5", + "0x793aCdce9DB7bc3269513652923d543b4818e817", + "0x0ED04A0ce758BCfd3FbEd18Eff24ABD9d6DEF44f", + "0xc1E35b955D8e956c0C9B7dFEE7Ca8EE8861402E5", + "0x61406c9Fd8d96C31484d9B3e60fed285DbE88D00", + "0x6a309bdb3d2d1D0B3d4A2a6CAC0F07d568593FFF", + "0xAa9F78E757B7a71a7620175C90F7C936d688D33A", + "0x63f07bedF4f43C4bb68BC1e57aD9c29889A2d267", + "0x2AF625dE7ee407a5bAf76cf4F89535302792D962", + "0x8F895DAA3aaF44F00b57ba60b366EFE481e50De1", + "0x731D5aFA11F26D1678750D5489EE4463D792D302", + "0xD55C4680C1D8aF543763B8E6E522FEBD7c8A99E4", + "0x7E8D9704a750CAaC505d4A7D8F5d5782C909735C", + "0xA6e1c5b55b6BE38DF3c96473974D135cd280e3E9", + "0xD7709e76154e34693b5865a395C30b44025b502C", + "0x7BBBb27b5d0E081A95829c333eaac50364802160", + "0xc763a82f81A0C5D525b1Af74A23E996751735307", + "0xF0177F327dcA75588B96c96b4418064894Ee234F", + "0x3d316B25363A04e870FbFba989416767274a6F7D", + "0xCe1DAce77636B2F24E16D4B10631e61f42003622", + "0x7B68F600f6c75b7a3F639cAbb53E4D2450b65779", + "0x33ee1FA9eD670001D1740419192142931e088e79", + "0xEE9A0ef4CE0aB1b11d8ce00f0E4520b9F5A116D6", + "0xc8B50f9FAa79b1Be1dE6c8714309050229E0a691", + "0x16F5bE82A44c150E8EFEB7941c4BAF0d43CCf01F", + "0xB7c02b1559761ff327bA7068566110E63bEa3FA8", + "0xf75b0E97BbDF16c69AC06f527835Be671d34a124", + "0xcd478940097C87892B3D5fbeF262bE453fD8C621", + "0xC677D6F9085d6E2558cB2C7e541A3c7B778C26cF", + "0x7C4A4734DE9278982e0Fbad7974615ab2b55f896", + "0x1b5395B1BE577287a42Aa4fAB0a874AA957E7e1a", + "0xC62780F9b05038726d0c8dbbf0D3e9abA5A7289e", + "0x43476733C3125413B6985FC940Ef37F6690245Af", + "0xb67Ed406fB511cCA5763Dd02F9B11CBAd8991c17", + "0x99F4f03F53dc5Cb4A1bb01EBBE29a5A4104C1Ead", + "0xE49506Ff4ED3E22645f2bd8b8F15Cf83Db44dff2", + "0x000115381cC9C35060F9300da231f54782671bd2", + "0x564BcA365D62BCC22dB53d032F8dbD35439C9206", + "0xDA03207429D8c74bE1F033E296542B529c95fB4a", + "0x6323f49D0497e66370675EAe765cCA42125cF60c", + "0x0848F011d99C5aA0abf0E8a43c72d8b573383f2B", + "0x4A35Dd01B9e259902996f7c436F379c2cE77e047", + "0xBe09fFC532834F7aD35a2f6813951980EeE84E7e", + "0x0056D1fd2ca3c0F3A7B6ed6CDd1F1F104B4BF9A9", + "0xcaA8fe71D6D97Cc8EAf2E83FF9974d2A579177A1", + "0x10271D0D0E9b1f3b79aD0DFd1612190fba1A1c38", + "0x405Ec040e3753677d1Dcf62Ef2750C29C45b21a4", + "0x664dd5bcf28bBB3518fF532a384849830f2154ea", + "0xaAcEcD1130acA21F14118a78E75A47756b79B602", + "0x21C4EE05bD3cb332dc961f09A979194A9FD81153", + "0xc70CDA39AE512Bf08f83Ded8Bc4Eb143B5169A0c", + "0xBa174EA358dB7a9F03cEa9Dc1Cf3B0ACbE0E14Cf", + "0xB97CE27b123B05D8A52A633AF7f1D183C093603c", + "0x0015A636bf58a20dE1193995C1c4d42b7f68f525", + "0x0FDc77a3432fCDD187b19A820AafD5225915eDCA", + "0x188502B2C3cF130B46cA18F9e35147c16685e9d2", + "0x9f6C7Ee09DB4c6BD5d3A52CEF903184A5D1B94Ab", + "0x1cEf359009F0D12CA26bf2e4F9506Dc12f13EC55", + "0xd778555AFA02aF57F077bD48b1204C5405d28887", + "0x239EeC9EC218f71cEf5CC14D88b142ed4fF44110", + "0xCA365C6868c9D1Ee41f331fCDd7dA197343BDEb7", + "0x89808C49F858b86E80B892506CF11606Fb25fCDC", + "0x727290476387e9bf01c8b442CdA1D6AE5C77a593", + "0x57CC54493F60f2f821610c82D0F4f7BeEf7777C1", + "0x89956D7c94447adfc0E9f8BdB51cd400e0dFD9f5", + "0xeF8b8f123711d35DC4b7924B3461e00D38c8A2d6", + "0x0DEB845dE6Dd1399Cd704aC10E07e8bAA8b80472", + "0x5eC1d1d7318518A17c7106BC25C4ce16428bE626", + "0x34417E7A17b28C11BBF1A50596538FA2e202c2a3", + "0x2Da80Ff7e1008a386Dd3A77846500089A05ADd0c", + "0xf957E8bb6aC674901549Be7761327dA602EBec5A", + "0xfBaCc44585ce38D28832f71033dE1b2E9F879525", + "0x33277E03921216b414e2DBf735bbAc307122e71e", + "0x6F83d7e5C7FEE67775e8a77643a98F584eE3fc61", + "0xFC0D0ECC018a8df10843C0c996140E212cbD7a1e", + "0x2a6F1FF63Aba4Ce7eBE7dFFefbd64F272EC3b983", + "0x533261D362Cf14EB4cCd95D2Faa0c11Bd07E115b", + "0x23E28B775Ab9fb982d60D4c9475b696A5A97B45B", + "0x4D037ca248Ccf0768844ce52cD122baa9d80552b", + "0x11114FeDD4408BBe4Ea79e2Dda913919CF67829c", + "0x8a9D46d28003673Cd4FE7a56EcFCFA2BE6372e64", + "0x9A8c97683Ae248Bc157bC1c14154FF2bbC990378", + "0xcF8f6C3c6856cb3b13704f7a0c509a6B7fa03F09", + "0x8c3360b0f8692b212762c45c3deE9A61CF0eA93A", + "0x46B756702b865AF30Cc0edba27e6d550e775A904", + "0xbafBF27E8626f5b76BB84F848BAaf9cFEF73Ad50", + "0x05CEdD3FdaA8997f9300526Ff6A354B8654Ad0a9", + "0x60991340ed005009611eE30daF82ba6E894d5616", + "0x8D15E3a9c96Ac9734d77448e55Df69e244a49774", + "0xCFd5b324F8be3CCC762a3eF29898b398B623D043", + "0x75e8609c69869c5CB298cE5B1872bDe088A73330", + "0x5D3d94dDC4bfE72019C0750dC4a55B175A8777fB", + "0x1d13c15cc9e19deB00c713b8242535b5F3f3e890", + "0x8e32b9eee4307634A62f3A0Ef756641c8AABad10", + "0xb4F888f064042A8A1c72e1B605d0AaaE40009603", + "0xe53ecA73fC23b395d4a6A5C652202923A7d0b240", + "0x382fFCe2287252F930E1C8DC9328dac5BF282bA1", + "0x88bbC65ce4703f6E44B7C308851c1D636B9d5568", + "0x7B7a7D5D758B83C900CED4047d67da89Cd7157f1", + "0x0fd2030A3A66bD322BdDfBF9818D883722CD3d6c", + "0xBf1589d1Bd22493cC015e48aad4B9f7Fe2358FD9", + "0x1a316a779cEC8Af3be9888c9f7D6C800fc713381", + "0x932B160016616255b85396E966cB3b6351727d72", + "0xc2D496215e4261c0dA0b437063CF15E3528BC545", + "0x20c70d385535127a71A35d34712fDc0EF63cb818", + "0x9835D114Cd3A7f567e7C046e59b46a6846874282", + "0x685F9caf0eaaF3fed78E187a2Bf9f59c4F8FC342", + "0x0be4c5fcCa0d670F63c4EAA3119Caf30832551Ee", + "0x9f2c46a6F95ec4E62e5619407C789F127f8982C3", + "0x79ea836AdD40618f3762189D6d9F752610289b1c", + "0x46761f1D443531afc94080E9F93d7aAd7C75aE87", + "0xa3D5691D67873a2f77138c02e9178FF2e91Dd35a", + "0x56F293B529DE0Aa91B5A90882946dD78aAa1DD04", + "0x5fA7aabFAF1a7104559508958d4Ab4A70926625e", + "0x9ba5C3e4f8f841588DBfD3303cd96987f1a8EDbb", + "0xC51447aD3B831DFC5603B92bFa46A06637250851", + "0x896C801DD263806Ba8F0B72C4Ab4332fDDb15bBD", + "0x8540F80Fab2AFCAe8d8FD6b1557B1Cf943A0999b", + "0x66056F248583A0A6df5b52fF0e2E268C5196Db0C", + "0x3f4C6350a1002a90a3e9cC77936f84c0BB889d96", + "0x863995027dF749f4929186b392aA8Faf73A86375", + "0x918052Be73127df51C822d4E857e84Ea7Cb4C8b6", + "0x6078883215ee548a180899fEf1141Fa3c5aD2299", + "0x9b6EaeaD2C50Aa55932865dD9CA9dDbeCff047B5", + "0x93cE3113649003952DF881248e84964283770B80", + "0x0fa0911F3323126Db7c897A54bcaC983E6075266", + "0xa260f03062FF9EFbff1C6bC8DE000a8D6e27910F", + "0x3ed335cFaE1fb9F439B55B837f70aa031C0b6A14", + "0x0DC6794F2eC9DC2E9B23aB2B1aeD26D48BEB78B9", + "0xe8Be88ee7BaF938ce05AFF2aF45A1bC013C14D0e", + "0xEb5B6185b4E5BC9B3A1190BE8FfdAE7475e76e89", + "0xBD356A9C20771d2be448bc7a556Cfc0930C726FD", + "0x21112Be375D4046f7B1A4ce6f5ED10C74DDe1058", + "0x965177185B510D11Fa609DeD158dfA2Bb797425b", + "0x71CD8d0AA36fDb8af2D9dE5B4da014c202b92a92", + "0x87Df884d84cfefe7B12c579e86b16E819F8e6aBD", + "0xd38C197B862DaCD0aB6b1e18c9fc8CDf8a8731e1", + "0x11F972eEc0F529cF6c5714d5bBfbc3146c23dFd5", + "0xe9F56631C86539E232EcB8C957343795600F1a33", + "0xD8F9A1c16AaaD3cF3C5de43379941d98302b314a", + "0xEBED693576DbC1EE2692a414e2Fc37d1117fC40C", + "0x6aEAe34ca64bd9778351853c8Cc1A1D9307238Fd", + "0xABB2F16C26766715F9c0281c509d39eE139fBE0C", + "0xdd3f3f81521DD910D9EB1fbec40A1713a67643b9", + "0x8dB3F233F00C16F5c29347c308AC6C21D15BC450", + "0x2447807136Dc8224e3Dd865680B837820D14229E", + "0x2fD93906DC0e917b33385e477E1B70Ad5Ca502BC", + "0x3Ec6732676dB7996c1b34E64b0503F941025Cb63", + "0x58531045854C0C2548ce0A192800558808c57c1a", + "0xC04Bc1996320f27c0A6018cB370c9469a9Dd3a4C", + "0xC9A664eB00eB6f6c0Eaf26f3cAE664A0c48AB718", + "0xaa995cC7c7D5C141B51b8Bb66233BF04D9934638", + "0x4AdA1B9D9fe28aBd9585f58cfEeD2169A39e1c6b", + "0x94ee23c8316fE744a7568B2Ab145728B633cd60D", + "0x5ad6211CD3fdE39A9cECB5df6f380b8263d1e277", + "0x57EE25EAFB8A18bAf347F792D86c26550bd45C43", + "0x96A64786A31993ab07D3Dd628b21a296874057b5", + "0xa7195291d9758b738e18D708Eb5d4b7A1bb8B942", + "0xE4bb6F84e5353Ce688955d1a17A6a3E3f4Cc1106", + "0xf4c2CF15cF3930BA586A8d729bDb4E15a3ba0371", + "0xfca8cf85Cf7915127fcc190235b5E46756872Fc4", + "0x795EF5EB0927628Cddd16DB66Ca4135118B39D71", + "0x8C42874173b51674a9e4C18998Fa6B86070Ea2da", + "0x12B52e25bc0a78269a37dAd59D672702f324c3c6", + "0x197A78Fe1bD3BBb64c1325c027bdE8F67Bac1770", + "0xc27E010ed652dD352d16Ca10BD17cc4892711DE8", + "0xD6ac395afB603ee7f952AaF340c37C63F2988A4a", + "0xD2cbCc062eE2663Dc2790159b29FA689403d0e53", + "0xdaE3B357B18854eBeeCfE94199ab4BA21DC1c3a1", + "0xB86046290Df993def99BB1c132f53fA47bC6cC8C", + "0x2961768cc229226e7D83c0141C133789487bA763", + "0xbC147973709A9f8F25B5f45021CAb1EA030D3885", + "0x3427Fe04fCBFdfC0D5e3D4bB28E5D17c7D05dadc", + "0xf5E72997437415D42273F664826822f0453B2E5E", + "0xA808Ba63710fB2f052871EDdD6ac7F453Df609aE", + "0xbA3a63489878D2F9DA285108d97f10E6D5BD6E42", + "0x346827DD9e3090b6d43b38Cad98fa0633EAda622", + "0xf948A0520674A9b28E54FcBBaFf82eFea0CC7403", + "0x62b3364ea3558C3A7d1597c5C5cC4D0d584C6ea0", + "0xb0896bFe1A8C45e032F401392aa7822CdE89e296", + "0xc2d3cDf331CC047c4264E536346492C6E47ad5Da", + "0xDBF5E9c5206d0dB70a90108bf936DA60221dC080", + "0x2c4b7B742309d6ab26723881A357A43d691F0baf", + "0x4380d6E5477Bc2e601D465CdaDf9B8a9E3702d58", + "0xEDA3DE89C760ad664e985BdC2661eE7e2f71d25B", + "0xcb53DC69f0F435dD29B49AF2dB8A32f7aBC1E9c7", + "0x9DB1C5A0f6519c4C694b35Fab580fD875C424573", + "0xC087168E843Ac55c492d44CCBB0f0355D0c3Aa06", + "0xc1b55a0EBbc527A03b52541d5c38c14571b04Cfa", + "0x37b699d7eeAD58433d352D1c77b2dB1391F11Ce5", + "0xe1DF6bbD7D7a26b586c601ac17d4173b629A476d", + "0xaaCaEC1b466E8FAD895030f5F30fd7cB087b2db4", + "0x7513A8B75F236F37aCed82f33Cd7e0b96DE8adaE", + "0xE756E7f14BE3270d918b576E40C21aaC1f80dEe2", + "0xCBcf63c193866aD82AE05db88Ac51047AB2B64Cf", + "0xF0bB3B93552edF481a54B9e3937ad8eBcde892f1", + "0xB833E7294A4dBac2c784d7b529C388918D6588af", + "0x1b212FF5b739C009b3eBaF3e681E3889b52C839D", + "0x8A7E95a4C8645cFBe52d7CDC2Ca060235a8F889e", + "0x4717f20F534C1732a2F987a126181eeF5413Cad3", + "0x41Cc4e569099506c4255317972948B26bC92519d", + "0xd08CD15D59fE43371E9BC74713227c7940A84E89", + "0x4a77676f96E90b4e3BC113D90Cf958fef2D0b8e7", + "0x4D928359E8556197f161F4927a928DFDE9c3d1a8", + "0x53C765C75ab37587EA3d2a6b0BD23D66d39394E7", + "0xE6A74139EE6A226136744a451400c0550F5873E1", + "0x0FEf682990c99003acf47CB9CD872b43544547c9", + "0xb1720612D0131839DC489fCf20398Ea925282fCa", + "0x74d85b145A1a1531fb527aDd04d41018E12df746", + "0xF55A646dc8302cd5cac290eBEfEc97853f88967d", + "0x7251e81E85B41b561ff1b67f09969fCDe566A343", + "0x975a171033dd940CFd165d1AB361552F2B985014", + "0x6392D61B9E60cD9C0198054f44f00Be03F8d2A5F", + "0xA2A4f8D679C4cC7f2A05997549eFAcf629BD96b6", + "0xcfbc091F167bBa962790E23Ee2DDA557938b8BAf", + "0xA660db2b20b58A448e848d0Ea8799595C482F773", + "0x9634445e293A87aB77Ca3Cf5B43da94AaBc544B6", + "0x8CBaA30c7FEFa60Db2b8775ad0B2E25bb3fbc91f", + "0x3dA9D70305B83Db1f545A5d50B19208b93cD0C21", + "0x16Ed0fe6952DAB8Bb1f1c1dD132A24d15b094419", + "0xfA6C4eF9E978Bbb3a8C7ea39eB9AE83E138B2161", + "0x2287B42b2F1c24B09309a6344CA931524E5BF3C6", + "0xf41FA837908c0318A9A2b739C8fb990BfD4AC8A7", + "0xccD4c202AB2CD6DE8fA3158553f1c679559cA65E", + "0x9d576ac210F3d07A3302D1EaF171663AD8fc8ee2", + "0x7849f7f35EBdD8B42ba37d9dF9A24DE0fe19D5e4", + "0x4082150aBBEbE4F63AC77e9Db6FB7Dd65eEA7E69", + "0x1B929E3F52C3D1666cDDAc4F93484067BF83AE31", + "0xb45E2B252969394a48E46616378f19B1F1f32BdD", + "0x27F9579727c7f7827b531B0f11aD2e21e3cA812a", + "0xbfDD5A28B6A717959304e25953B4bdbD84c5Fe1b", + "0xb891B774B82417E9D17af3CDf4Ea9B6512521966", + "0x86C703E247dDcd6780ecC8EdAC0cd4F32940db8E", + "0x47113e4B6477aCAfF6700841b80b9B65c7Bd13D7", + "0x622A13daC538a0505BBdCCb4f634A3aCb949ac6E", + "0x9557c6ead96d4a82FDCBa44e2988f968745B0C5D", + "0x69c33A9690298ee69a69C56794dEC82bffFc9685", + "0xbd25FB9b5f4005be6A92d60E8c87BB266bD44cB1", + "0x1e14940Fca5d7B3105A0115dD0747C3EBC649Fa8", + "0xA18fB9312eF2d98219F169653d8ad9e21dF1fAbC", + "0xE6F1f2F9201f2460D188435992Ab5349868B6c71", + "0xB5562f954B3573d91416032508307b5eD19dBC74", + "0x724De45f9dc3030c04c8A8De00bFe9524e12A9F9", + "0x1128cDB6DF17E282cE448e7770d0f02CE1299e1a", + "0xf50af7BF2604D09b4C81Bd16177De6D8ca0B5614", + "0x2fc80bd59Ad459E2151c78e191533E947656E71E", + "0xbFd87B843962115b5249a4272Dd577C412e7Cc30", + "0xc3b787e6bE77A72D01dbC0B7cEb9688c58e5a776", + "0xc46bf9cEEB7e691DD38E6c19921292d95AE63Df4", + "0x3a021BA306d8E595d120BBb1a0dC05dd9F2af5d9", + "0xfB3D39F3314CDC4B0993b6E9023D741Db7b75e5E", + "0x660508082e2E15B6660044f414C42d36e1E846Fc", + "0xc865Dc459dDF06bDCbc4522dD80002D443300d0F", + "0x4E0414bE95C0ED8Acd6928b6BdEC2BfdA719335D", + "0x57a290Fe30fb61b6f9743Fae660f3748EeEe4D88", + "0xFb934C5fa224675Ddc9Eed88a36EFd5b310e6F2C", + "0x8090487fcA05bbEe5f30117DF57dCA5630919A50", + "0x7bB1ca29B883c99184E3C1c534f0E42E3E267Dd5", + "0x59F837001752c5b00c5FccCD38de2e9404f71D3D", + "0x0Dec6D4f8806fD465Da765511a1020E4B5583F9F", + "0xdD73105e3Fa04636c133F2ebd55b82B2646560BC", + "0x46DC80055Cf48C5EDbF2196487BBa169678ac9F6", + "0xF983d6045cB1B5ebdeA6F233159F269d63b055D3", + "0x121B7935d05638b7e61dCcb597778c4398c77C52", + "0x7e7bc2DE2598db1197D86c6f404AbeF6775d9930", + "0xBa722D9279591723ecde46b7980a007B2e263481", + "0xCFcfEe2C6845a39dFC9D5403413B53b6Ff5D585C", + "0x60d1DF05426B3d7400db3aEDa1824c287cf48BB0", + "0x4A15BF39c18C8812B6D19FC76540798247AaF2aF", + "0xF31098aEa34f7c94997DCCD3a1880c8c9389F2e6", + "0x66f5922f6E0D799F45111D8Ea6Bc673Aae628718", + "0x53C4bDf99890D71B6AD8A00f343F408E10dc7a16", + "0x0311E2D31b39c8889A56a252760828d54c5092dD", + "0x883E44059Fb1fEa221a6EA9E5fD654C91801b4a8", + "0xEFFe47642C3674FD20f41d57FAF114ffe121E63F", + "0x5E00b5255e81aA506d95534c3C0Aa493E7309641", + "0x8aF1Ab22Ef2C0d681Eb29b5D7A9B107be564648b", + "0xd8950d147acf919305Ad1c50C4a010348D844aec", + "0x1C03523F40eC2A7E1b1CCb7D3A3Cb719C3A86beD", + "0x15907073f8f2a81f58610031D31FC8f74f790bdD", + "0x136A27249af210fE3dB926aa707Eb8B837e6c25e", + "0x3bfBB3C71723FE1e60dEb2B4312c6a1528bC73Ab", + "0x6cc8dCbCA746a6E4Fdefb98E1d0DF903b107fd21", + "0xB388fF93E354bF385808A2896424495203fC79B9", + "0x7a8aD491245364AeF7E2573F58f7774c711469E1", + "0xc57919A187cC4393C84af22a049FA6ec61BAa7b3", + "0x17f72db9EBCfdCF3f2BDB7C6C1487DF6C60d3BDB", + "0x5acab12D21b1aD94f6F17d1218847f9CD8d70f24", + "0x446386C4152618254286Bd3b6FEE38F18B1fe537", + "0x81593a4f5fc8458caEe6b828f3b204af2792302d", + "0xa35Fc49447445168E74AC4Ce0dC4383e27e1b3ef", + "0xf97020862f4282dFb21B781E7B760eE63E212dfE", + "0x2cAd6658aE641A6CEE952739323F52eea0a0b730", + "0x9BE96A6e861D2e5aFF1Fe0738BeD664b6F0B543e", + "0x6B0f87051Ad03397868e9B52Abac55C55aCaf7c7", + "0x68c81D07ed36Dc168cF073AA668d6d2DdE8f11ef", + "0x28F5e4C9d45d16D8364Ed42DC6e11423C7F745bA", + "0xD27e8256196d6f794c4329644C225b7b81a260f7", + "0x1CEB9Ed30ACe1aeED4c85b7cBddF161fF1D5B4aB", + "0xe5A8654631B3729F73ca3503bA09a5d3e11b46da", + "0xfd5249686231c383aE767eBa17Bd4c0433FbD2e1", + "0xe74b28c2eAe8679e3cCc3a94d5d0dE83CCB84705", + "0xC3D461aE8e3B29a1DCA37729C4575e0D309E620D", + "0x9bDB2651e53aDDe0a79B030F6dd87c52296476Db", + "0x692d82E74cBff5bA5Ed08B36b4334136Fa1aF035", + "0xdFc364b7024E48C6DE6b30c6b703DE0BC2e391B8", + "0xC63b0D887ed0335699354dB687C5fa0b37cb0D96", + "0x5B10c77f716cc369FB29d28F04e96c9D340db198", + "0x6240b12B430744a665c0dEdb9Dc0F54A6b7d435f", + "0xB3a2186359Ae7C6ba09dAa80Ad5e0Bed3456Ee78", + "0x6718F2430cc9299328c10deaBf78cf22B4c32225", + "0xfd3241f1707286f8Aa6287aCD3a79dB68823f1B9", + "0xc2E77881f1a839Ccba5208515b81a159888c9319", + "0x8BA2bBF4E6B12921DA48888dA9C0508e0301081D", + "0x1597a8339579033D2398630e2F370C8205E42fF3", + "0x1aca3E1d77a938F82faa91dc72Bd6547ce50f80C", + "0xCD04183A0220E28A6197dfcC78081Dc2E0815AC7", + "0xBf891E7eFCC98A8239385D3172bA10AD593c7886", + "0xa2DDf8E0847F91e91265947A52A96A09541c7603", + "0x253fb3EBa7fEfA5d018b3AAA6f7BE27BAB93FccE", + "0x63339e991d4B23042cc48fC910A5cEbaF4A35276", + "0xf639fFF07E0ef4e885B9Cb298CC5E25D0D7A09b6", + "0xABD138543ACCA939a4bA18CB5B0d3E575Eb62fC3", + "0x62Afc3C3d85A16CF30EcA5EB8467f997767ab019", + "0x93Fe13Bb5cDdd95766Bf6d0E5720d8d768276408", + "0xeA37869916007789dA842c5710c7d9Ca999A85Ae", + "0x34a23100DdcCe23013372701f1C7691aBCcC3f08", + "0xeB5060f8a749926872Bd2cC5AFc549F20Fe9bfd3", + "0x43F85176A75d72e5318D7fbc139bB2FB281bb050", + "0xdE3E20234Ee87291C195bbb31F4b7Af7351F8398", + "0xA2Db3CB712158e489481B734b25a9F7d49888ff3", + "0x9fAB0795da805A5f7cb766fDa61aC8E6FE2D712b", + "0xE140a89CA6c074975d045613674eCC978F5AA4f8", + "0xfFb08B3fc542b2389df5B387f236650EBBB8De2C", + "0x9324bc6728fAbFc7c789050A08af1bc8F2a8d0e7", + "0xd30e0c2c3B5CEB878b70052EEd2B28A61cE84374", + "0x8b6A8804d284c8D9bCf1465250E00621092D35ce", + "0x3Fe37054cAc9691aF52509158B039cA74740845B", + "0x72aD60856935f7F1605481444A0886e99EB2FB2e", + "0xA9925A2cA46CFBA3323A7DF03A85AcF3a13d2504", + "0x9008D19f58AAbD9eD0D60971565AA8510560ab41", + "0xBd551c14a92C0eff6EB1E417Ee7E818573a7fAAb", + "0x5aED268d7FB15c435A3C27a34C3A7394D8F8C814", + "0x427F2De3579131F8C81e3CDE10374E3f9760ff02", + "0xBfd869C62815B8063a2e4FdFbf437Ee4891da031", + "0x7Cd7bcAe383BC3f676cc213b57f9110702Ac7234", + "0xFe568475CFc25563B5A5E9769f56b61dF85e7Dec", + "0x42703d57290C883d30CCFBA2fD95cfDD6Ad43389", + "0x96B8a02dad59E319fA44Ca634228f9e4Cc7B9A75", + "0xF45F7D6cc1D79dd677C3e976711cF29Fc306f929", + "0xb5565f9e0ff5fe4b911779dED17A70766591A00b", + "0x05A1ff0a32bc24265BCB39499d0c5D9A6cb2011c", + "0xF161E1Ad51fccD598e5C44a536F6659f33D6e0f4", + "0xfeE5f64C87eEC05E83DE4Ca73534484066f9c5c7", + "0x1BeDF678eA91476731Ee1b32Ff8111bB1e822251", + "0x60523EFa6EeFAD0E2e93F6134313F4BF0b5B3DC6", + "0x77566dB619bC48AB58404AE495910bff9380CB9C", + "0xeB32693454a578Ed678fa08d7Dd7ec494b3dB97a", + "0x63e1E141871e9d1AB390664a05532dF2F0b3ADdE", + "0xB3Bf95Aa39c4eB5772923c61693f35FC39e35fe0", + "0x4d3877aBc39d131a39Ce21Dd0675aD3c1E3f3f32", + "0xc47B507e2A1EC30241B81fA34f884f2905EBD636", + "0xBc1891925a6e4EdCC722656b81bdb2A340C0DDaf", + "0x2c7e26caC08Ca83DF4399c10CB025c854AC591ae", + "0xEb075d294FdfA3cC79D75cec7545CbfBdc5b0093", + "0x1E5139c78050D014f05968Dc5c0755dAe958481B", + "0x5C5Af069B848fe904A14DC8Ed70f3d0DCA6dcA60", + "0x8d972b3c67C8bB301DC5E5AD3075b026CC6b5b8E", + "0xc0a4352241F4eFBad1A919398Ad1F77Bd591c5de", + "0xb2f6129b4B2fa2061BBf6d136BEE016A66D821Fb", + "0xe8342F3F61E8fDB281061A79506Ba4F39ad32c0B", + "0xb0cADC95f1B0F6791E190CBC3c54826Ca1FdeEd5", + "0x68224861d426eb0418cA9589a96A80b0084e5318", + "0x19131C3Aa44A344396492c85E4858B7505a794e6", + "0x3Df53E90B28c00021F751a560017Bf9f62642634", + "0xfA912046abB0eb3511bE6443738e4899Acf335f8", + "0x162B5AA3f35e51C84fafD41B8beaF155687C736b", + "0x722d357338fD91cB8c2F92C0a768F5a20E40896d", + "0xc7f8575b1B29D156a627FE01748d650584AbdaA8", + "0xBDF1B202Cc44bc45B472EF2E0dfEa0dc0147254E", + "0x8C25045cD7849C85bF034E08Eb206948D39e60C2", + "0x9943BF0a358ac35ACEa7a6B311a36E894d05c92c", + "0xF6Ef125721FE2c429d1722624F196bA4E04C48eE", + "0xaD13238A3e9EDA25f9Af105FC297CbD7301db76E", + "0x854622fFfFE9dDd587316D7bF3eF280E14af218b", + "0x76927E2CCAb0084BD19cEe74F78B63134b9d181E", + "0x746DFF22206CE4e3Da6D7eB4D537398bE8f236d6", + "0xC3F2bdc871B9d2aFd5Bf22d4a6397a637F94DA29", + "0x395c21e566FBca61074fA0304C21C5729FF4D5FB", + "0xAd88d33506A991e07Be595F43C84D74d72489cbE", + "0x47a2752Fa7869e40734B0918F059207da885D43e", + "0x4a183b7ED67B9E14b3f45Abfb2Cf44ed22c29E54", + "0x5eeA118E75f247014c6D0E990f02a0c254EDC852", + "0x87921997Ffa6Cd9cfE582444e21184cba1bAf068", + "0xE3017d50Df837058991010361a714ff95F2AE9A0", + "0xC2254206eDb9f55Eef46dCa0e85f5B8Cbcd2bB91", + "0xEE1093DFa78540e5294fbBB73AA1108cdDe56AC7", + "0x7a0EF482134aa53468850A7b117EcA38A6a3003D", + "0xcF3C6C6196883498D15f7d59C41DC6c844EefBF4", + "0x31a249bdaE239eB983B4b717B361C43DF7ee8bE0", + "0x176Ac51621057eab1f563E42016336e16F7A75A1", + "0x54667925d845234fceBe846782B57Df2DBfd127c", + "0xA531B15b12EC023b91B1a31e9DDd9e2fA674c3c9", + "0xB90bB40397eECE494A08de9118B32dcf2b37346D", + "0x1E7b56e1375FFbc659a188BFBD588eA1d53Dc630", + "0x883Ab2aE1BDDa0531078b27dd45600193aba1F34", + "0xfE60d742cD7A92701D6eA196c40A10ae36c2Cd0E", + "0xbd5975d969a5590b663c329490add6030c28A9aE", + "0x61758E9425d116A0Ac2cF643a07dD66886314228", + "0x7731F1e4cF3367F462e1FA20D356061A5C4Ec169", + "0xc172e6Cd78B3745f7DA7805ec44E2428a4d504c0", + "0x5fBAbcBE85836609a79429fad2FB06518842cA34", + "0xEA7D443EcB40E2189d674256DfF3CC32b35C1430", + "0x1c0f24C98b35181Fe6610da44252E8Ba8e18FF88", + "0x7783F8D4064C5DAcC253d9c0DE4a9675d74b373B", + "0x4Dd227258EAd37Cc097770915852bFe96b083c57", + "0x74543f888C8ACc629DAaBda5758d966F58982AaE", + "0xC2554Fd4E06826460998F9cB7f10dc10e2450F22", + "0xC21D934f57a7511B9c1d34240cB35C8ef3Cba6b8", + "0x0cb961e87f6b7a7Ce4E92d1ba653E2A2b5b1D9B9", + "0x9272A47d977ae2196412e93fC1d9926b34b6f8C6", + "0x64e2965226ae776f4a76ac5AA2110393e82ED2E3", + "0xFbDcaC72fC96eE6E10fdA3145008CDBf81602354", + "0xe24F5c68074BfA08ED8a26636Ee76da928296adb", + "0x2a009Ff3Fae39b035F2368d077fE485e7761341E", + "0x252B99F1873fb67cC07c092ff7E772C608180F13", + "0x2c7F8156a82c4A8040DBDCd96bA025b25ddbf9Fa", + "0xCA73BA1C197BC5E263b81650Fb6511a97f501Ec8", + "0x053eE0A7275bB79B4AeB57f900892A839dd6F9A5", + "0xe35a7cC9EEC709790d27255d3b12dAefA3346806", + "0x59F44e629FFfCd2517162bB618E36c89DECfFDef", + "0xe3Fd02Fc12cB38A8074BA8bC4a77C5de9aaBf0C9", + "0x1337794a4361674953B53eD6cdc88357097aa5c7", + "0x91f445b30C707E9B2D151dd6fD24Da098e78c8Ae", + "0xB9D0a141822254047A6f3CbA698C50119151b6E9", + "0x66613F90c76fECc8D8e8D9Bba49C146c48cCbeC7", + "0x8E26A3428B5A881AC0A1dE376C7e08B04314DF93", + "0x5735026C9b2DFdeC3F522d634FB4224b96444D59", + "0x1C42F2fCc9c7F4a30dC15ACf9C047DDeCF39de06", + "0xEA4BfBBF972e681b7d373672820C4F81377A89f9", + "0x5F6e8cF2da87a8B2241BA20eBBc00086422C577D", + "0xb6767A89b0EFF73874987EcC502F0e664d5d544b", + "0x9123f42C45cC8E25F9f171C58B91847a8A48BE8d", + "0x6B5516E2c614FCEd1f54f6fe3083657C8B95ad93", + "0x0f9F99c219d501a1aaC3d4d1cfeD5205602075d6", + "0x0a210a948635055B9b9Fe7cD182dB895c36199B3", + "0x9bE3A81988EE07A5A54a24cD2767Ca9309878F66", + "0x0E0d9BC22910eDB19155760Ad960E99Dd74ba904", + "0x23B37371D63945E817455630E2861d010C8Fb350", + "0x146DB7e5d6D25B1302292e0603E3154904163e07", + "0x90d4B323C3b1E5b4dD15F5CB9FceA2a5E8e4D15d", + "0xD4E26683635bf3dc9EAD5F31B935c33cC1Ce1838", + "0x6689B9D1642bb413C74c35EeBA13165F755f26FE", + "0x07A5e7208617128eb73C07E0351b791f00cFD47B", + "0xec6d3046Bf57Fb18899E78d4EA4d2Df1e0A864D2", + "0x857Be2b9Ccf18fa3445047e53BE9B3212518E7A0", + "0x2fe8E10633eAe71b503C60180C4190710a132237", + "0x27791168b406FF0bEA643DB65f21FE75C1f3bBeb", + "0x7723000de847d13856Aa46993e6D1d499D13af1B", + "0xDbf187C53B650ee2123212952721beB40B5831A3", + "0xbE7fF9356D8820e720c514698BAb556eD5ad59dc", + "0x53118829B1CBb004c1975178EC763b2737253472", + "0x4779c6a1cB190221Fc152AF4B6adB2eA5c5DBd88", + "0xb297D1f48a52a2532CBAfFcEC1850B949f71e1e1", + "0x87Ba3C38282409e6D13156303c43DD73B264010B", + "0x8f531ee3190c32467f19a693A3222bA8A9D7d165", + "0x6Ea37ED3c988c215957fcDEb7C381fD827B9BF5c", + "0xe6fEC001F65f4ea94eBcc26E51b80A900DcEbae4", + "0x935E1408c083d2885536737D4C4CCdf97BA017f5", + "0xf923B5cBbd47Ea6778FA9c025Dd6238c26464B30", + "0x39ff6bA01eD00cB38EBaA5a1ed9E4d13b7912B88", + "0xaf0EcB650Dc88Fe38DC3873B9f40F017F1B72063", + "0xe92A662f93aEC1504A8013013533E9Fc6edfD550", + "0x1D930F8d630b22F034305016Bf54A4A0C03B0619", + "0xC877418547FD558F713215a5b0F1CCb11442436C", + "0x4c0afBC4851E8f519acE8CbFe69960Ea72fA2BDc", + "0x28f164f27Cb7D8829cd390086eFa65DB1FEAA5bb", + "0x4c37f89682C04e0f657063b4163D9a5C8e903984", + "0x7B0d20c3738bff1F9a9Ee6f5239623C4953DE51F", + "0xed3907d129EdAf90f5b2e821416019452314b650", + "0xf810a0AfE1A5047B59DEE4d150be354918a03eE6", + "0xC8c29B1E95Fd332b1729509Df2d8871CC8eB139B", + "0x88a76452288266480e120eb10d8739148db85159", + "0xac33bFd55edc07b49D9082A29fD18E28123eb1dd", + "0x575478a33CbA6c3c99D7F534fc450C2A8Ecce756", + "0x17E50EFC7Fdba2065e8dD3FD36F90c90930c0872", + "0x0C5a2C72C009252f0E7312f5a1Ab87de02be6FBE", + "0x8B260701716b85c686755683849B379F63B48745", + "0x29bf45B62F13b7a0F413a1252DC2056014ec45Bc", + "0x85FCeBb2B4E0564a2430C0755f5567a61768540D", + "0xC534129554F89a3eD26818B5277B1E9F9F7881cE", + "0xC70f26184fc556bBbA9c3078ee35411e42E7B1ac", + "0x44D6173CAEf5Ed74dD7A439fc08aA0f8C1946595", + "0x051f77FfD586C9Ef26d990E536A1E7861CDaE9E1", + "0xaF07579793D3acF89aFd719cCbcaF4317B9A94c3", + "0xE7e4f9a12525fc5e7a214819F868767407A05fd9", + "0x1adC376b6d299BE2312D8E4915151F2b17942e83", + "0xdCC40e2C3BC2a449Edd30C4c2074B9129a0eaFF8", + "0x5E1b03a7f15e17B59d9b3b630DC6b40144baB7e6", + "0x4c979b7648044a198E7E918f88F2C72F9544f37d", + "0x5d62f5f89C6a945EE3F86ABbcDDb16C325718091", + "0x1Fb0934bc8B650B9869034eac4aD4d4382020C13", + "0x5B5aC4512400cF1798c23926B0cC73bBeaCbA35A", + "0xf8e2dC6435bA1D6d2cfDd8001d505a85545e8fE3", + "0xeE2A1695C264B88A20f8e2eFb27E3f054384c4fb", + "0x237ae6d5CCC085782951D9deBb5Ce0EDc4245b5c", + "0x444b518557D133D964f7adcCfc5E80dB9dd635af", + "0x9F70DC33C6903650453478E43Ec61C7457eFc30b", + "0x2A16E92eceEfA1026ecB9eb0e10cBe7E9fAe1f90", + "0xC09aC4D550474c8B2259A188431e6bAC7ec1A698", +]; + +export const whitelistGoerli = [ + "0x444b518557D133D964f7adcCfc5E80dB9dd635af", + "0x237ae6d5CCC085782951D9deBb5Ce0EDc4245b5c", + "0x484624a2e0Ea9D1AE01Ad4EFDD7B52F83329f3c7", + "0x07459Ac5608C8f5E81666dC9647F444889a75662", + "0x881622798f53EAD0743170de035C64EE03f3F172", + "0xeF13101C5bbD737cFb2bF00Bbd38c626AD6952F7", + "0x6Fcc2b221922A1d4753899aF1b38c95CDf8c6d6A", + "0xcCec0e34D80106687B654313AcD1B6d0185B1CDf", + "0xc3552007F946CEE7B87E542011f20016feb8CBd4", + "0x77158DAB6bAceE69a66218FDd295C8fD3D78d79F", + "0x9f444Eb9dA99aEa41E8800b694821DEe9a986568", + "0x5b5bC1Cc56508eE85353E2483B496746fB3fC2b0", + "0x469561f5b1e37143430417732093Fc132C6aB337", + "0xdfcB919A925D00E53B7CAf3A2c6406B6a5FB5B43", + "0x82c64871666C28b5eFE453324f77344643F78B77", + "0x7e0eD7e4e71F1e4CcA535Dd98C3C93C8d3CD596f", + "0x89778fDB388A0CC83b19B51F0b50E78100540B43", + "0x297d0f5e5a4F80A86e0aAF8D26e64D4837be513E", + "0x72866E0FB4a66BC5e15e15E763b447b77AC30D59", + "0xafA96ad5AfA419A0Cf881Db8d3109078506cF6B8", + "0x99CFd045A577b2e256979c322e4f56735Db09D9c", + "0xEa07627731bebd106D62E3662d1a4C27c038DC68", + "0xE4aC8a1bE6c373B300F46Fab9e360865E65ffda5", + "0x6E44D9950D4E7004F78685d77005fFF66DD63b97", + "0x049808d5EAA90a2665b9703d2246DDed34F1EB73", + "0x3fB95B3E51927ba7B15cb56cEA014DD4C16b3De7", + "0x1fec79A7c67a1b8F659853c64124e67EE9D06686", + "0xb37d882730eCc495a1FAA4937eF3645790B00e89", + "0xc3C49F73499160A3B31D91F0f4c5A0774E4635a6", + "0xc1f3eBe56FE3a32ADAC585e7379882cf0e5a6D87", + "0x1FD1de7E6BD35950a05db410F871aE6E4736c3b3", + "0x1A216490B4aD42B616C4Bc0Df6F1A179399380d4", + "0xc893bF334641d27B0C5BdF714F8facA80403E978", + "0xed83A6d734627d1229e08Db5E7b8c0687D2Ae3D3", + "0x41D194b1d7e9b9542145d894E391CE87235cBd3c", + "0x8860bA33913573Ef24fDa8a860C3727319B6D7A3", + "0xc4Ed448E7D7bdD954e943954459017BE63584F69", + "0x8471578E189eAC49d866E43c81BB240e52Fc2650", + "0x8DA1674D16fa5E5c8F4eFBC4540888BA9f1Fda4E", + "0xcF7Dbe8e50620C0b5f466FeF79ac8C17feb022D5", + "0xcb1222F00019f4B5c1ecD7f07fc2fac88adb9fAE", + "0x91C3A85d1aa494eED31e70C0b4005719AFDd6BF3", + "0x96c195F6643A3D797cb90cb6BA0Ae2776D51b5F3", + "0xBe30DA02D0C9eba55d7f7eBb207729e285d11c63", + "0xabEc103490266045706B44F83cFaF73Bc6532150", + "0xc5C5B53438A7Fc9CddEA4f0DED2D12FBF75b6c76", + "0x58320A62fAe62C5Dc45B9919d583d4B0f955EB3A", + "0xf92d29Ab6f4fc6fC615E53f9787C986731eEc496", + "0x313d535a3FC31E897fcDCF66f3c382Fbd634bC16", + "0xb6735D328C513aB41ff127DD1E24c53B0D6493D6", + "0x5eB2b16e1De28E6A8f8291cCbF9B9AE1b1384654", + "0x93D5078a85CDB34e42b0365EADc1e7bA0c32dE61", + "0x665B835fdf8B546d0c5FE6757349F3413E009141", + "0xd4DCabba4332C2A2c67324F8d3D7621f4249E2E1", + "0x48c856F10d5930DaE3CF338173247aB8DA94d308", + "0xfC026910d15b70A4b2d969A7386A03b86D7b505b", + "0x127bBc2904Dbb53Cf601782fC12fa4fD633394E4", + "0x8b168eeCa29a5AB4fBCb68653d3CFff3f41F96C6", + "0xF7d422DC96C31dE6D10f2957B14a7D888BA3820A", + "0x6694FC7DaB2F34B010bb87467f6CC6C2d4534f81", + "0xF274D54Aa1bcD43312dfd4B95601b789395A7c5E", + "0x9dabb8374d0c9bf5a925eeEd7a519Dcc6B41D8FE", + "0x37CC28F835EA2337DD49f22d2d982Dc9b6b4DF55", + "0x74a64c78657F0b753035CAE35cbCa76Ac029827E", + "0x4632D39cB2b64aCDBF1Df5bE19dAA1B77158CbFB", + "0x691a283b546864875EFBcAC16eCD4fc7BB945581", + "0xB2d436EBaCA07Dcd5A226e737671859a6794d7A0", + "0xce36A6d60D79b2AfC4CEBbf146Ba935e598F0Db8", + "0x54C6AC745D042bcBA90674E0a378f266aE12E8f1", + "0x3F6fDA73BD15a8C410AEb84C893888bde4877F9F", + "0xEEB009194435C51E1D2e1C8c424EDCb0dDEB7723", + "0xE8205e04A86D11856cdAf51375C251c1badFB60B", + "0x3c3556d4c53eAcD293C354beD43016dFB606026d", + "0x5357C45dF0cB13aD1Ee75091b870E7f2c5B12f78", + "0xDe334424169796f928ACe6e13066FFEeBF1a622d", + "0x71083690c37E75cCCa9229e99D79E3ec35b5C643", + "0xa5dA33624882a27CfbA77CdBd764d1f112DeAfC1", + "0x94EE08f03e6D61F30175403190266F4703a94D18", + "0x9d2203cd3E400d84F9973fe3C04689b6C8d36b6E", + "0x1311C89f7B461403714Fdd12e9B9A5d845220e9e", + "0x29e7cB9B7Ba9545f893549a227eb3CA4545F090d", + "0x6ef13909698e4b287aB35A39088f0E7A57588C22", + "0x4493bB7375442430afCCD32733d24ac722595ae6", + "0xA0E2c637B6a865ef258E4404d90d3Fec78aD34F5", + "0xF2B49BB95Af806EeA00ba6CAaFc76A77853F8BA6", + "0xdBF12DA73B3Fa72835acE6C943a0A59fDA69E48a", + "0xB090f0B407dD6A88A7Fbf72a994A7c1d29eCdedA", + "0x6265cAde2b6D84e9b1C198200451eD8358C6c9F9", + "0xb75e6A898F4D7dD32EfEA8D27094432b0f90618D", + "0x97a10cF1E3380EDC4064A3c1105F2d62aac38fBB", + "0x204DF3850Ffc4dABC99e32eAA66806E1886aE758", + "0x4B10fB28c326357d943392Bb5F9E27c02C25200E", + "0xA30C7dB0aF173dB67E95F32CC2b56Bfc51053Eb2", + "0x23cF923e6587977dDaF1c9b61f032FB91b3c4262", + "0x1081d3833eAf0e68A2cd0d18ff69d8D1DA72B50A", + "0x3aEF8c8C3BcFb75708a69aa9219917030E302cce", + "0xfD3e41d48E3B87469C15EB4F0aF30A8F297a335D", + "0xf71E9C766Cdf169eDFbE2749490943C1DC6b8A55", + "0x2A530801b38a01F69EC06615ffDc384545a8c432", + "0xB01941a667a9F2a7c5900ed5a922321ef9f19275", + "0xBE4d3C4974Ae2C3d30527c4B6e35e762e1CA32D2", + "0x26C0a53B1531263C3b3a2C56F266616B5791eC78", + "0x5FFAfC65f0014f3Fd4f6f14178503f90Fc655c4E", + "0x6eF3f0fF397C3de367C6cA2Cc3e6B6955E7993A5", + "0x9A36466098954C7f175e8A0fb796EA7d28A57487", + "0x218584B6B67e2C5ED5d09BDa46E4796B1fb64ADd", + "0xc9F625c82F248558948705360624A502FB957C54", + "0x1CA00BC58f90509c41baA84b77eb0D63a579a639", + "0xb16C05965a678605551A1f2D22cb2e5CcD5ceaa0", + "0x15DB696b8827983f9f83626062a17d9e6a3161BA", + "0xA6e8321FD36a5CE212D9fDB75c6167DD934Ac64d", + "0x77BC51c7Dd3DDDAC29f865541f7F54bF2CBa5536", + "0xeed85Ddd6828B8C714141d34A12D0c07F7553182", + "0xE6c9Fd025Bc17ee3E306f8a409D872eB8a273E5e", + "0xaB0004ac87541f54D4bF3DDC577ea59a5B400646", + "0x7b867A8220043c142356695434E09E12F0F191c2", + "0x75438097FCA6Eb4dc0355B23E6B597ae4868e722", + "0xF4068204DC08aa0aa4615CA1F2e2ad506fB3a669", + "0x559739f8706957c7da3770B95c84CAaE9B138F1E", + "0xa9d9CF65CC076348fA89fd076F0006a57681a767", + "0x73Ca72175401d86A6015B4797937bB0009091d13", + "0xAF1fD55Ea07CAf8aDe7549b21E34B838cDf4Cd65", + "0xcB4D38e12cebccb0C15b9b660BAbAe7b9494E8F6", + "0x147FaC3b51429Ab39F9f371170751bfbDb92a430", + "0x64792EA7C648ecCc079494764DB42398C0251d12", + "0x93Fc5D7295a0F7Ac4ec7838530ed93EDCFF93b5F", + "0x0A75B714dc3C51770e715b78e637bFE53DE3602A", + "0x3d5a749bD9E701Ef6f046306cA713b4537e4ecFe", + "0x9FfD0a5b5438B95861167422E745D34d151bcc3b", + "0x0BaE7d98E1d67741Bfcba5d90b17a9856b1bf82E", + "0x23EFC62a60Bfe4f0186cf19a57116780F86F1aa9", + "0x68039E09CFeBc8eb057a0014c1290531475a94A2", + "0xaE770616364a7a2D91a987Db1AC11Be21e3473E3", + "0xd60E5738C23183739357B37f4E60f9D10B19E62F", + "0x5F066D7A7a8d0Ba68A2D38718AAf2A45953f160f", + "0x59aed46e47Ef7A88862EB1d5F0B2342D8c6eBe93", + "0x6127cb39Ac8e6066C469aCE0edcC3506feaAbF94", + "0xDc51DB13FC0c4546965ac28fADd062A23092F32C", + "0x1C4Ab7A8D9a41D8d3fF39ED4FcdCb66A11E9011d", + "0xD92E0FF8Cec18E9De46e32436641e751c1a9c7Db", + "0x6166d5F406745CFE2Ff0a80310480a328Bf726F8", + "0xf64c1d5aCfc379921505775C1Fd2dbb0F62DD9Cb", + "0xe3BB6C25E7962338De3c4566125005a1eCEc688D", + "0xaBE2Cd0e03fF6ABE8BA46D5EA2Ad13497Eb46edc", + "0xF188CCdD5107fc2C04eDe0Ec04afBbf45DAe275D", + "0x588b6Bc07CA1d3d882d73b2393E692E42553cd12", + "0xb74e5e06f50fa9e4eF645eFDAD9d996D33cc2d9D", + "0x1Fe93ADD99A5492AAdB8210bd8BF7F2756265536", + "0xDe79a3D11e7D31Fd9952FDd078C28547DD86fBF7", + "0xE7AFE9D6b50D684176Ba7225a8668f29D17A1486", + "0xeC49ff898172a72212988740669F596e81246411", + "0x34f2B150432044e2133B2445b28B723D30885164", + "0xA4392347602C9EB1eA91a1492459812Cb5DD3a58", + "0xa357Cb3CE710a4f90fB9d56979C2C3634E3965bA", + "0x82140b0F9716E16f2c10bf4f31bC73a46B69aC04", + "0xF66866C2e3649B2e150221a283e9367c662D75cb", + "0x026C04a22AbbD0e52d30b55C3c4326214Eb45475", + "0x8cBa29DbeC29c2458f29f50C1e2b9A909846f52C", + "0x8FB4A947f0BF71951b9D3E0C667629a5802ffe14", + "0xe6C207cDf316233fa9aa4b79DD98e07F1a256f7e", + "0xC28B043c5B4cc596761491685873c670dBEDb74A", + "0x70a12fd75368140Af1D3122768954690c31cA93F", + "0xe7203E9A54E8384Cc341311EfF209e7F6D53B015", + "0x30741289523c2e4d2A62c7D6722686D14E723851", + "0x6d12765D14a44E64c60dFe778c2eA8593A75373E", + "0x9309a24Bf08aB2F5327d2B488982e8318717e92c", + "0x0f11F3CB8FCFC784374d435aeB4C637b3c2e4a22", + "0xB550fbcFAe4d99136337EEA3aCcaA6038E838dbD", + "0xeE620a0991D57f464aaD452789a4564Ba51245E8", + "0x6a1eB61EF517A717b6Edc1A9e130C9090bEF3067", + "0xEd67023222687F6412697F11E24c036dA35859Ed", + "0xFe1a00487DD9EB84a7363a1c827a6f045fB121E4", + "0xcF3E2Ee2b0cD1194ba33cD1c7d9614DC635a1714", + "0xd7f97ADAC7b0aC5b2855dD814263a894F356E5e0", + "0xf89c2Db21e00b80BB2d0699Ef99c464A391bCF52", + "0x4498c72Ca32564a41D2F9f136f447Cd77f6aFBfC", + "0x64a63d01D9Cf8beadEB072bA564543B326D10aF4", + "0x2900e0eC5EA04c69b5f80f58B48fCA5C44A92E34", + "0xa69c9BE0f0a515Ddc8Ac57350cdd40a36A93E914", + "0xe3B0f7AaBA333929d6c76d4602ee11D88D61f40F", + "0xdFC0ED701CaE22293d809db9Bb295F5C268Ea7D6", + "0xb13C38dDCf7AFB7B60Cb5Ce7D1208E4B32d8057d", + "0x23c043a293b302E146Aa9fcf9a9CA937b895dd56", + "0x32c6B5db05b98907A29BAeb7d09C79c95498B17a", + "0x6e90789B5EF0B28710951Aae7D8024f1eb46DD37", + "0x3eC7Db0c256127b80aBB725827DE4cf596f34D1A", + "0x3F106B32A9B26C07AA6e44923510909Fc1b030b9", + "0xD438519711b9AAE3E15e33c33387ec2F0Aeb5Fa7", + "0xbC65d4C8a841Dfb701be13c4054b9521E5778342", + "0xCA75804Fa43eA23fB65829C8212465A7145f213b", + "0xf5A8501009aDCD92A144E081cDCbF40ed598299C", + "0x184BC1fdfE6A947fa09EF97B84d8990d52c7acc8", + "0xfF59f3a717DEbc1baa57ed7fE643979E0349490c", + "0x3D5DFe8b4a6b9E6206ba6343e87bfda1f4Dc48CB", + "0xb17a16a37673e99323f3d05a92b9B7Ecc21B1b84", + "0xE5dF788C8E6C9cD7a019D44A086E896865f6F1A2", + "0xB62cE87B2e18a3c85666Da2a7970032f433D843F", + "0xda147543503bff1ed4bB737d97a00e3f9De6Ab62", + "0xA02789210589674e72a5F780635Cd7788E190810", + "0xd4fa23307a181B9ca567886eB5bCd5c8f8f8bB3E", + "0xdfa3955344b1aDA04A218129B08FbF70823B1801", + "0x7d45858853Cec6F4Bc15202aEc46c25549d4D9a1", + "0x18e4a567E36451d514bfe024726131f9557f4156", + "0x0E624Ef9C461E9b7C5bFaD5D608C11B6C315E77d", + "0x4c4e7c040896D1E09BFe29Da02B0591Ae2f244b9", + "0x00493aA44BCfd6F0c2EcC7F8B154e4fB352d1c81", + "0x79B786d1A98eaEab375AE6DAb606cC3125AeD13C", + "0xEe90c0C2C66cE93a0Db3372aC4c6776DFFD0A357", + "0x2cA7f846c00989a80c977f02e87f2aB5D8c44A09", + "0x579883A4092A239d8fAC7370F4b9A96377AE7174", + "0x1BD11A33F17Deb442612ef4fd3cd1632E5C553B5", + "0x681120E861BDDa1032f0Ac978b1D9b8e294bF408", + "0x9C979B94C398f559002e70Ed626C9CbAe16e8078", + "0xCa98043835fa23F2Ec98A404c293d5fF547a19f0", + "0x14eb133B16DC5b7696895292936f34B5dC239F1D", + "0x4ada43DB92c99b2fc721bFad4163C21e86cc1BDE", + "0xBbB1C9a4ea0c16069364948e4002D3A7361358D5", + "0xA1a5f57D568AeA5573d5ea70dC603fcd80370a01", + "0x3436d87664964DF8A1825F826f127deC13117B0b", + "0xc784aa191b4562D4AE860b851461d7faC80ACf33", + "0x63e6717826F680F4e50d9824bAb93F95D8d46Fe7", + "0x516ED1228d4b85a3710fDce71c7fBdAAc05caB4b", + "0x8F10B2CE0868965f47B74aC9950af395Ce976168", + "0xFe6f8b49F6FC5a02629c5F57915d2a154e252857", + "0xcbae730CA53EbAe199488f880EFAbE96bfB439f0", + "0x6f5C740747337c89BeCae490e62d0df0cc4Bf151", + "0x1FABFd51EE05201300Ca025E60Bd3310DB691333", + "0x022079E00421b117B3A99A857019A2B1271C1501", + "0xEA32Cf979bDAf8D3bB4121d58515D4623A27f3E0", + "0x1F413AAFaE36cb17fd03b771Ac9bE217d1846277", + "0xACfC319B29D15C6D0aF85ef84347A50131C0e547", + "0x33413d420fF4bB2496fE3327a70f84C14Ee9f92a", + "0xA5A846f077A6134A38A532ee3e6d0bde30713554", + "0x2FB787b4539abbA0dB651Cdfdc74a5379857C8fa", + "0x0Af3d96fA1c43D9000A99b03551c0A8F7320E922", + "0x95922F89a3626d8db042461B00e17ed7cE31eb09", + "0x4c79D8aaA05333CC3Cb841162580502F871ed0E9", + "0x082Bc09347362D8a9Ac03eFb372EA891f4e1Ef2a", + "0xbb7748b4c8A590EdC75fCAED24c6001DB10C09B5", + "0x6e9ab59FD86AadF885856e4e0512f7CF8CC873b2", + "0xde0634a1F956Df8580f18C955B3e9EE957e552C6", + "0x6ca0C13222EA09A54119564028B702fAed716B8E", + "0xbb8758556aE9d9B9E1937CE21f1792762D9A907A", + "0x3597FE5f85ef4c23c94B8A53Dd94C8106B90bfDd", + "0xf9B77855BdDfccaea266413A589345f34368a8f2", + "0xe299Da75b9d1daB6a5Eed3B32112A13b0cc3C0D5", + "0x5e2d9c534870a686cF7d1dbb10f2B8b9a384BF29", + "0xa09CE3aF7c2DD44088855734EcCEcFfdCC79B6E7", + "0x73D396a8A851f93D989E127a4F411A682640B7bc", + "0xF3FE121f304Fe3E56dc93eFD1645B48056FeE914", + "0xDec2d9d0AaaBB2A70B96a433328CCdF6C24199B6", + "0xf0434A50864ff2B1Be67813635210Ad36e34E8f6", + "0xE3346dDC3d4d64e16FBBda1cd82466d2BD7570D9", + "0x97AA869e59f62B511bea0A1DE61b4D67d92e0de2", + "0xd6F8cD019Dc78E8CA33139b26da3447394eb12C7", + "0x662AE464b3e4E34Bc2068931e8E7d265c5C27453", + "0x4BD26CC6072DC2c58DA7AdB7065Ea744382092d4", + "0xe000E18D2968345c240228EcAd2Bf63F9eF09fd1", + "0x38500B07E5Da793a80754495d65A3ac798D994F4", + "0x04f25Fa5a6BAf777335ed518b881Ab7569239BA9", + "0xD57419e256f2e9050c2Fb224dE66600534DC2e73", + "0x77908f9a959F0A311c8408b447bDc17B296E1Ea2", + "0x905382d7BF939Eb13E34eAaA31fFC6C4E51bbAa0", + "0x40BCB1ABdF0927D0730F4D446638F3716e7b78d0", + "0xAaF85980B3f10169bc293AF74986cA99e56efd31", + "0x7D90cc30d013B5a87BC9a8145628E900210d7028", + "0xed561e40A66e791988977c21fDC7f083E9Bf24B0", + "0xe80C8a0d7bb5889831aA9F1b92Bf57Ac4D72f90e", + "0x1bc6955e458927B30eEeb6daCe42887798E69B3b", + "0xe01820007845681997B21A3384aaAeD335e95772", + "0x7556831CdE1E9Cc65557074c3a3F5F46F7D171B8", + "0xE147307B9A973ACC16701d56B6BC83bf20623B0E", + "0x277D9B33e774560f4d391c148C9e4E24cfb77F8F", + "0x25f677051626fC7e1d0674c36c3bCC945Ea990A0", + "0xd783947ce4924147f35b319BD247eE628E7fB0BE", + "0xF8354bbaea2aC7fDe2928768ca2D45CDF6Fc4343", + "0x581b3d2CdCd3911d9Bbf503550C3f6C1f3c997b1", + "0xD39a47B55d7b51d8533f763176b47adb86e896e3", + "0xaC26F44c3560CED60638EE73E96CD44969526f3B", + "0x7C224beeb6064D7ca376Dc66A8D1245ad5926aa6", + "0xF76ac368666e9EF0327Ba70DfB730b247C24a431", + "0x78704a9Ddb658Fa225F78e719D1503702609DA5d", + "0x7de00E45D162365aED8115Cea9E55fA7a2b3F298", + "0xbDfA4f4492dD7b7Cf211209C4791AF8d52BF5c50", + "0x790c7F75aC962D3f4e80566C87A24285BAd3bC7e", + "0x29E663B6c1f24c3D17Eeb8d39d222AF865943B1f", + "0x74052fb4D5dF7b18C3da6e529ECeC84eE7cBa8c6", + "0x0E192Bc356fC8a94AFf4dCEc7d96f7502EB239Fb", + "0xD08BD78cA3369A45E3D23bed18bDAf5E3B8c98BA", + "0x106Fd74D4cFcABc4a2b70983d48Ddb6420f2A185", + "0xc65D0b3E71B436a16cFB44b8D18385E1cccE8b05", + "0xb685E33ed438594a789f84D59c7163CC761533d2", + "0x3821f061F9ba3d4A18213D89820A894f24EeF861", + "0x23A1a13CE201D3F71Ab4637a937c80935B104583", + "0x425839aaEEC910aCF89C1A48358A126D0f3ba052", + "0x9134f2236793333841595309F80a0Cb58032e757", + "0xfA10e528C0A3b209e832aA2c233e70fd766cB26c", + "0x30EeB48d670900Ac1995Ac70f0fB638892103538", + "0xa85D49F557541bF1b838C2c3dB9e2b118f26490c", + "0xD7FCD7c92D184c2C3d84721dF201f9BC95B32f4E", + "0x4A8E2E8cAfd4dc0563803868cD362Edbdc8E68A3", + "0xb7b9916E59cee95a98D07ec560a93B46D39a9135", + "0x5d1F1a62B52E4C7DBAba67E30479BFb91b03CFB8", + "0x8f894791d6122012818520ce95c92D1b6ef1d3eA", + "0x28f00731408efd5851AdBe89748c047FB94abd35", + "0x7FbdabB2dB96465C821a7e546e81294082D633e1", + "0x368247207aA443e8Fe18Df18C266D67C4db56313", + "0x492eB92bA16fe2c875C39E96F97AeaB192F66594", + "0x558247e365be655f9144e1a0140D793984372Ef3", + "0xE9096eC0c19cD0345D8474dE9E26C166Cd08CfB4", + "0x69571a679D302F510dF83b7e262f015e6D865C6F", + "0x4b12c77A4be728aD21cd1328E45443802232bEe3", + "0xA23D00D0d4DE689FB872cE4A514ADF58dcE2cdF0", + "0xe00f3C3277DBDE8AE2Aa546BDD5998F0a2A0dbF5", + "0x3A79C7eB98d9CED2e7d7292aCAf526C3880D83F9", + "0x1CBbFdD079139C8922248ACBcC62174e6B08Ef52", + "0xd5D6242177279596B2672B9110c0771eD2E941E6", + "0x3DE2EE1A6f7397653C8C7981ca7473487dE30c39", + "0x849Fd5fff945b0Fb552BF123243C00EEDf476c2f", + "0x5a519f6239C496CeB7F76399A96CB5E850e69645", + "0xc0c2387bC5Ef8CD1E5Ca3897FfeB26E664632ecD", + "0x04bb958eABd3Eb9CA4B9DceC8be858175bF9a4C8", + "0x263F1Fce39438e46d2fdCBf9AbBb27D4861C3C78", + "0xF532d25600012D78c14B3f7bFdf6688096D8753a", + "0xE6c7858D13Ed0563be862e7A0F0BA38b9EE7209A", + "0x07Bb32dFfdEa27436177dDc90D96476659F23497", + "0x53Ac9D82EBf90BF03c539119fADB82b86293aB7B", + "0xFDF469a0260032eCC5Be420A4fBb057E80D4ba5c", + "0xB7B2050e12Dea380Cb9Dd238B663627Fb00EDaeD", + "0x1027b7aa689ea0c4b48B17D85b2A5093Ee8f051E", + "0xfD1c0251c29a81748662d553904cA9aA9bA66510", + "0x10f7c77Fab0AcBfB5629807aaf35344dC1207142", + "0xb632566e8e1B50ccfE325e5D4F5f9Ec807A3568b", + "0xc6085484F780C075a2188542594db5e6FF3Ec36C", + "0xc0A2f3b3990De10a22a00377df0F3e7503c3a14d", + "0x1Ffb0334C86D69dcC0bCbf78538956097Fa9c550", + "0xd51b5e6256B34Ce3a13d8600D05478bf8b87d2Ce", + "0x7C51640BB61607F1d43969573491fD4f5e243779", + "0x5dA5F4c020f856aBdB168fd35c957D6006ba2edE", + "0x00C32d28d7529eC4cbB7514229C8B80F404aeB52", + "0x6bCbC6Fa460241AC1dfa7588160B51ff94f88733", + "0xC7C377C11Ad9825B17C072FC2e17E9B9f319aF7B", + "0xFa9aB3Bde88463CE8F3BbE6596924fe3cEeD5510", + "0x5eF0D55F04074930E11753F5a49D139cB8cD49DF", + "0x0289E441bAfE0c1eF096eb2799dd97B351499978", + "0x14288773c9df9a1b669de2324187f678d7C1aB4B", + "0x774bd7c89bf43a9fcB342797C8e061c808C38A0f", + "0x81ac0B00F02B7df66f3800D0dFd8622c74d78E62", + "0x0F6686A7a49f5055E69d7B1caE7d8f19843Bc15E", + "0x3f127201440602A02F808f0057C7FfF92E6bE60f", + "0x754C29780eE17a7250457E3523f0720B256e92E2", + "0x4ab491E11Db7138A005eABF0B0ca248431D5889E", + "0x3d4d735f65f626AEe161479D55D476765E4110BF", + "0xfa50671B1e38945774F0A5224160B45c8b545f29", + "0x929A5753C41eaed288F946bCBFe4a954Ad341797", + "0xe358A4Dc52B306b7C7261EaD577B9E140239f2d3", + "0xDf09357b015e130070c95716E427ac2345268882", + "0x09670585Fb16Cd64f25C025A48c19aA034cA1298", + "0x1300B31AdfafB54d340541dd8EDf852bfA49d9Af", + "0xf1080A6365123EF783F3ebB4981f9d220402213b", + "0xBea392Ab5E7427CcB2FC45A407A0A59C0cE80430", + "0x35e4eC20F42924B945DB48C1e1b11Cbc04957c76", + "0x4fC70107D2B3eDD22c6dF9067D711a93ad4C3b77", + "0x961986481f76e94195f66191EfC73b3D6FDEb31D", + "0x4730F5dDE6dAAd4B9381F261c9f6f76CE6A9B4d3", + "0x3704941276c3049a740214F6df50A0fCEF1A1bE1", + "0x4a11167B3cCbC6E0dA04FbeD42b55e79AEaEAC2e", + "0x5EA755F7dD3752e83950c298Ad5fAeA684b9738a", + "0xA93cf81692Bc895A3d1F2198F2617ebdED589cC1", + "0x203ACE9D16Df2Fe9658296c97193661A809C3e02", + "0xB7E3Fb83555089b5a33ba7cf5a1110cB40F8310A", + "0x4e38789d10f009E8B80A514aCD90191AF8675E20", + "0xf8a3D3462a3893c809F62f8CD7C30daAC58D7391", + "0x88145DD75e933e9ac89cd8F6DBb0c8F0186c836a", + "0x4858ce44BE65A79811F32417801B832b423DE0B5", + "0xDaaCD0D4ad7306618E05a0DfF4BcC9A3Af8c48B6", + "0x209b9eEB1336Cb5FFedD8D4e474840e553E812bD", + "0x2510eB2aB631bfc2156bFc12f991d2C0FFc711d5", + "0xcdd164ed67987AC6d00292F1903D836BB514d084", + "0xfB8e4Dd7fda377bdDFD08401616d997502564214", + "0xdcd31f2167d3dA86304c046725016676215066C2", + "0xb8b713e162C5a923E35430Ad2E4279D19699285E", + "0xeFa51c4e7F3F8a97B5507d6c89767f2ff44CA8AB", + "0x39bB99c99715EC6252F5c2713D949E7BB44C9214", + "0xdef158dB79ea76beCa386334F76AAb897a31A059", + "0x0704e9724dBc2e8Bc519dDf6EC2946E9b03B5a03", + "0xAD575e50c162Ce12D6bD4da878a066238E005398", + "0x62721087a6082c5336a36B7cAae7Ae416ee2cFF1", + "0x68575571E75D2CfA4222e0F8E7053F056EB91d6C", + "0xA99C4F924a167cdEc1486aa9920de70A48455Ab2", + "0x46f8B8d97Aa29eD884CC3e51b5878e8F8D15Ac07", + "0xDA3377e2e3Bb2106C9d915257DbFE31B934854AE", + "0x342E2741626E114a2171744206403F4Ce432e74c", + "0x18f299021e83D4016435e53b30BB328A326d6a14", + "0xfBF75933e01B75B154Ef0669076BE87F62DffAE1", + "0xCf68483aD0e14162937C6d32245610d3891C630b", + "0x85e9a235F911Cd1593cc1F3e837cA5B005D5891f", + "0xBC0DdD3e509ca30BF45F6202183064075Cc53071", + "0x343AC8Eed9b30265CBCe4606bda2a6f13ecD2F37", + "0x53eA62C15acA0b574B2a2b982EbA977c730c9E70", + "0xe9404Dc46cb03e1Ce11252e2B3e6c0efb98A34D6", + "0x4806688DFcCEa461b645f08b9CD2F695999276F4", + "0x8aE6422631292c31aeeB2efe154d6326f703F46b", + "0xdE654740ec9d0AD6D9fC85EBf813A77A7A7719B5", + "0xB3e1b74963301D2ebd72ECeae539007c3Aff3424", + "0x908E8E8084d660f8f9054AA8Ad1B31380d04B08F", + "0xcD229d3B59Ee4beBe9a09c528857BEE35B2999b9", + "0xc59E1a6F7C10cBF856E69fE237e51e674A250aa2", + "0x5a9952D56f0F4bd32e53478fd3e56D91B9545FAE", + "0x7541C52985AF993160fD84203841A4E9a95C1510", + "0xc5245E2e4AD3b2E9e58dF25accbb21A80C6D0926", + "0x235666094AEf43816978aaf56B9802B5fC19de2e", + "0xd2418EBEa04866892a3d50b75b7298875E02660f", + "0xe3e3bc5896092Baf5cD46507342911514E945148", + "0x00000000E4fE87d59da8286C93649643bC68F996", + "0x2c315E93ED4233Fd531f88E2A8ec25Ed8822F382", + "0xAf1Fd82B52490810280e20906433Ee7f720B7879", + "0x5CDe5A8fC18eD8addf11E9782a0790E79a63e2e1", + "0x90CC65cd2842d53e49c2037db2440Baf0B72221D", + "0x0d3ba0C0BAE1Ee218A84a97567F893fb76E9C330", + "0xA1336a90b288715CcE8Bc4d5624c9526e0751B42", + "0x97b93Fa9a692467619Db12Cb4860E6a5B12BC0aC", + "0x534A6B31078Ae68C1C4fa2a3547Cd8b3520255eb", + "0x3A7d75B460a9177747f19691F2A4D1D68baf88f3", + "0xE728d3aF18DE2041D8239F4600DEEE1E5372F53F", + "0xf05F8e1A75C854D6Faf26230378EA73c630EA1c2", + "0xd84E11beE5D555CCd905817Cb8CBBd5b6e6C4f0D", + "0x0A9435a5919933e643620C25ffE80b742DaAE9C7", + "0x6dE3e46cCE02A39D74e55EB8D23E5b175cab882a", + "0x90fd836Aae334d42b85fd7CE0b8c4A43afaa1C69", + "0xFA95a23d38F162EFA06f7e84618bBa4b99a08cF4", + "0x5Ec9eA9045977C521CDdFF6DB054FD63AB40b24F", + "0x9Ec162Ea326F93C81FB3790Eafb2f049AF800b4d", + "0x32ae635F5136AdB181A442Cc890be39263bC13c8", + "0x1090E8096681Ecb96389c40e8Ab00d5c88997985", + "0x8286f706F194FbA0413aD13A7C3962a1Fe0df191", + "0xdD4db6De516dA7391745A9017F2A231a5A38Dfe0", + "0x7d9Ae024734B83E2e07E4F3494359B728Bb790b5", + "0x43764aeE49dA3d3a877E3326A83BC182A5e0019C", + "0xCba1A275e2D858EcffaF7a87F606f74B719a8A93", + "0x1C914539A754A2DeF114239dc1B1F3D15E9d5723", + "0x624DCdE294C4239fbD1c0895A24fb9dD49471138", + "0x608e48e4BD6C76940c67963e0833cb1990e17bAF", + "0x6516F67345e46F2C1A69d0aE8C8Dcb8F245d5daE", + "0xe93fD4e3661A7ea54cd7810150670a803D5a48CA", + "0xAC170cac4025043621178F9D2b5436cd96f0579f", + "0x80333801FeB4e0D92C1B0643054Cb0341B35D232", + "0x4821C31842bB7cb5A4980411F7E03BCD0BBDA539", + "0xDa223731DC769f3D704063C6104bFD7372DEA5A7", + "0xd1d0D74D94f291e8D82024B1A74D785bA57BB555", + "0xdD9f24EfC84D93deeF3c8745c837ab63E80Abd27", + "0x3f6121301D1E82F52285f601C3720Ca6514090a1", + "0x38d33A5bE320c9b9fb99D9Ba5745775b8C54f2cD", + "0xe692fBf20924DDED9dA3798855095740b39C9291", + "0x09592a83D3bf5900E0b784eeDcEb8E91bAa56C90", + "0xFd89b87dcd3Ae8FE7d3B255e362b3c61ecB25ced", + "0x44A07B71398423e12bC6a9Dc9e3B71D878d42517", + "0xf0763EdF0DDAFEefE22D09fBD06D6b39CB991116", + "0xF5a1F491DFe91e4078a05B30CC477de7888F5310", + "0x0F46540678c7e6D2eF983B382CC07Fa815AB148c", + "0x452B8aee94894b8FF6eeAB179F67ED8d51576579", + "0x44662200446ACE5e18422E4f87F93159eE3476D0", + "0x3250A2576611f3bFbdeAd0005b9E3A2a1F6FAf50", + "0x0279E9366d3eB3eb8720117fC901211386114f6c", + "0xe1827D434538752cA08ABd2C75d44E3522C772a5", + "0x50c491ffDa25f9E472d467d60835468C522E7d3a", + "0xad2F6779eea963051869df83A651165a5b4f8D8b", + "0x1FE9Fd1156688699F4ca017E72ee0D9873f9d758", + "0x2A53c87A0887fD3251a42828FbDC45844a6ffBef", + "0x40E8960E0fc7D7876B997f18d0303A8ac7b233AB", + "0x39BAaA8cF7ad06E7e0c5A0A2BdcBCFA2B0879FCe", + "0xa785e5bD1cd918a6F4CFC2DF48e675716F84d9EF", + "0x1c4C46b64fF12A6afd91D8B52db95d2fB45c9fF5", + "0xE5964Efe4e250c677f1F474509dE728a82D4Bd37", + "0x615a838ACcede19E85703B105CB7d021550BD824", + "0xe27E7c50773Ca859875107ef7dB5E22Aa2e248fD", + "0x997ba4Cc40BB6A463E21AdCb9981FCdF64EC2e3D", + "0xF46423C8042C676C4f806e01Aa3563f728299248", + "0x655e7B3E2De362FdF8bBa51d7707a839F56a7D87", + "0xF2801eA7E173B0d2AC57Aa2A0759b96dbc853CCb", + "0x6a9DC4bc6d13F51Be5A7d2B02F35F1519A22E0f7", + "0xE23CD65ac0253f67Aa75666765E3350D14117866", + "0x6bfd13c44eFB8a72D8C6457d620d9352d8aDa621", + "0x4e8A511f117C80B97db153Fd0AdF77986078e175", + "0x3899D712ad2438dd4C4177DFEb84A4F6d7007E1C", + "0x5564E4Fbd35F37D889973eB1AF427A6a555e8ebC", + "0x53225f42D69BEf93cBe0550f7c2A81A99792072a", + "0xE43a1bcf660A07F2CCA3331346da3d75284Ffc84", + "0xcc0a036bF25f67478750b20F825B90a811E3E217", + "0x92c20F715472AAd2c7fc7284F0C2e4fAd39e28Af", + "0xc835aE05691ca5357bF6b4d3fDdAe4C3339e0c83", + "0x0154d25120Ed20A516fE43991702e7463c5A6F6e", + "0xb3942710dc30161B69B9ebB11B6F3aDa0E211DA9", + "0x9567963A5439cb8740dD2F20bCDD5eeD288beB7f", + "0xD8680B048e3F417433F587320850a310FF92759B", + "0x20c18421CfDd70d451b2887a50846fEF78C23E65", + "0x5d9606EE1a677bdeC13Fa4d62989076B943A6EBd", + "0x8c227B0b7C5Fb768E039FA05A77Bb825Fdf65690", + "0xfaFc1b38cB32C642bB30EE71B6e9a612d4F4fC46", + "0x4322AA46ffEd67809862Da613725728e2fb8eAe3", + "0x71f0E51Cd819a94bb7277559f8A9c8Bf3955b720", + "0xB6798c96E14C379C79fC19D37cdE013be25D0d15", + "0x70BeAeC43A24cB0587e03Fe396728F5A2A140f2A", + "0x91B64B13a7Df73438b552da8104Ab1f65BD8114b", + "0xE08487309E3105411B2520eE80cc74cA760F7a6F", + "0x6a42F3F399E7E001FC8277a11cE009593397ef9E", + "0x7e6F711E46AA8A02980831b7eFaC0FaC5a5317dd", + "0x69B07Fc8eD33596c261bd234652841235467a79E", + "0x7e1789c0d2a88A7cA022a6ad5f51f860C45BE84C", + "0x90D061e6cC636F700bd578dB01CdcF5d464EB1a8", + "0xc36176c1B0316CdA0711F522c6AF3428f744f7bc", + "0xF183d7fb6D86f60c1D6794Ed29CE9cB3919EfEAf", + "0xB3F98E92D4EFAc021497682BF3685A121157E7AB", + "0x609932AE0365219c05069232d38a4015C26e9F0E", + "0x670BB3B8099099aB380A071303F3cd57B3a08D9b", + "0x29A469d0f973A91085AE5a589731439c40cb0273", + "0x4eF68Fe47A7E5cca2449E87fd327adD1b5eAEc22", + "0x6B407f20a5FD127b3bA85ADEC219380E6a74524B", + "0xB77e77Dfb8F0f27379B1bdc5D17da612E2854D19", + "0xD8bbb01D0137187D726D073D1b2560901Ef20B8f", + "0xeBF442A15094289f7483C1a9D12367Fc1531c4F6", + "0xF5A228295fBFbD2Bed744fF354Dbabbf20938e89", + "0x51D79f656f5107c852027ADAdFa7bda8670d754A", + "0xa2Dc67bc24A8C356E94932d53A859e0Bc9Dc0d15", + "0x44f979aFcC29D19f71cfC04A31E4754b36f6df85", + "0xe12c95Faf4656bb4482A9a840901d688F90bfe72", + "0xfD0A10A4caAE2F0A88e04B909C782487EB268eE6", + "0x41381649B2231caFc8293F501Bb3dF422aeBA5E4", + "0x1C494f1919C1512ebE74a5dCc17DAC9A64069023", + "0x636dB5602E67E3d17C9E6019f29B0F9BA8c18b2e", + "0xEE5A82516DC71BA3Cb0Cc2056095E41FB894ae2D", + "0x2DB66a069a3525c72282188324209C1e90Ec0FA9", + "0x0c2E9A64c9382BC2f99b092B3D0c3164375536D3", + "0x90aBCf1598ed3077861bCFb3B11EFcd1D7277223", + "0x8997433bD96e1e2A691832AaB7e5a2aF6D20Cd98", + "0x97b9B29552317867368A9F0234DC768fb6a27fd9", + "0xdf018AC6efc4E9E39515c0fA67e5ba66d5e366D0", + "0x6722c3b2564f565DEefe16405DeD07fA71Ce76aC", + "0xef14db00cD66CB91c9304377b58c258c56a8885f", + "0xCf83D441D8838acb8C4d77f7Dbc661aD9aAea7Da", + "0x5823443272C330e1A28cEa0038e70196b785dBdd", + "0xD5984141cf9DcbE80d48b836A95C65E998579ED3", + "0x1D955A33594E54eB50C9b35B3efEcd4bC74d6D5B", + "0xdD70fc7959a24335b8Ee1a072C3d9B0dDAD07540", + "0xA36baB9f9e2392c00A2251caF382f5559C00f4De", + "0xB27d6D2dC7DB331450c827a7bad3FC0e97Bf386f", + "0xe31ce47F1A20388a47E75F064a58864CD2Fb8E9B", + "0x652d9aB89B17e8B08466Ad5021bBEe06e33b9aD7", + "0x1Aa6Cc699152Ef516B165F2A682347f5eCD4F74E", + "0x0bD5f1a9cFd8bc9e059490234611fB5EA760518E", + "0x3Cf1a1512149B5e6dd0e29aafFe5400f0848f5D6", + "0xF5DAa6D36462f9D4DBe1dd9194527f5492df394e", + "0x3235A9D04DAE99CEaEB82784E654DBdFc5C8E916", + "0x10fD5111c1C03119E891F4704c411CFD2715Af87", + "0x3b89b260D0884363D8cad623d3554fa3e211F0B3", + "0xCe53A0bdA1979B451Df4B85954d8762cbC881bD8", + "0xAa2f7D0ede7d326C69A339e46406CCfFCb725Ddc", + "0x42C503F0F57a7235937C493E4455559CB13B6E68", + "0x73C0481d5EaCDFC453aE9b2300490DC6Abb078C9", + "0xdEffc2c48d3b476c51E0b6eF84B02a3D6060ffC2", + "0xbA12Ff309847676e2dDC0239633B7A082339d7eD", + "0x11456b3750E991383bB8943118ed79C1afdEE192", + "0x888888E4Af0B9124c2519a27E57bdA4C4f062ECd", + "0x3f11495ac8be907e7Bb6891C43e4FcfAC162bc4a", + "0xC326F07A4Af1F78022ab7cF5bBF5c36C0Db4f586", + "0x290C8782E77877Cdf32A67F40F460E3F13F230B8", + "0x70E819f313A62f31825C2b112E3A9246fdf8e400", + "0x02Fd85e93f38660623F0E3228a319A0Dafab8901", + "0x54c375c481f95ba43e2cEcd6Ef30631f55518f57", + "0xb45cE332B0B464aAB34B68a8fc6bB7fa453fe93E", + "0x0F25809d8E83AbC5Ff0f4Ceb8A8C39c79746d0B6", + "0xf0754756E71aac7aD2B6497E7006F5E44D68D592", + "0xfd6a9CFa6775E6F13C390ac76d5952eda61c8a9F", + "0x3255B0780e34215fcbAE5b7433a21389d2e9f327", + "0xa87E2c5D5964955242989B954474ff2EB08Dd2f5", + "0x1C95Fec51174eE74CaE7958a9FfC7d62a0eE0F65", + "0x29ebCD4aCfd3fF9AA028377A8b1330D452694fC1", + "0x6eB98A84dd1556D98B9A8cc7aC146057c5DC7685", + "0x383EFb5836051Fa6b9b319BaE8F5886a21167C98", + "0x57067C480F39cdAa21cc4A02638519D0A42cB5ba", + "0xbC6A734F367846C557eB1C8419a9e5aA31b614AE", + "0x06dd29F9115500c16F8060638b6197E20492f69d", + "0xB3cFe70f6545a04e2700BA71f4EF5a37d36b25dd", + "0x2143Aa8C34e55785528B6cB4D1d413106bdffC92", + "0xD60Af91Bfdb5dAADA1B3788FDd1C86d6d5259331", + "0x9EEd5fCBb5384c98Af8413d31C4a716AB5387f8e", + "0x9137C27f09e12C2525f5b612af21f047d7f01Bba", + "0xe1E7C13abD171eD127834C3F73D0E2daB4d35692", + "0x3941Bd5327276732c231f7cDE8DBAF458f33b918", + "0xD5D32F516Bab81dc118b14FDb76AD0502CaECa80", + "0x4E00c74831bd2ddDF1856426Cd6fdf97d20c332E", + "0x0eee57D2D76C60C2F70A16Aa5cFD4afc161536F6", + "0xd9ea180CcBE02A7a1e40703FC01E6A86B46B4416", + "0xda1D08EdC09a3D65C8Ec52461066d8614542E532", + "0xF55c5DF700dE999d461c6547634253d5e9710C0A", + "0x2B2bcbB92F195A44268531178Aa5D2D077f01400", + "0x2a0059610c92842DC2eF84aF76b244C28687e647", + "0x4D06925D1783D350a120fE955467248315E42D5c", + "0x08C07A9F134931a2F826f631329F71D392466879", + "0xafAc95116fF5116cdF8b6128f509b8fc16Dc5ee3", + "0x308Bff328370FC4a9683aB9fCd79A21be6dC5eE4", + "0x15086a450dd14CbDb5bb4688e2295b1a817DD96C", + "0x069f0C61D636aFaDE33DB095D5d69b8f230daf80", + "0x34da75D6f52608c168Eb4172A903E3f721080F01", + "0x9cd217abA9774baC83c0b4dC104B39955cBfeA45", + "0xa668Ac5abeF2c9Cc7FD786250c9BaeACEC8D31D5", + "0x71fbA518Ca86d6DeFeC196D1B15a7e1600f178b5", + "0x321F602B63338C674B63239821f17A83eF63e5C6", + "0x651D5A6eEEF435250F3bd8c02B3c6Ef18f4BBF62", + "0xBb57a3FF7a31582c2988e12Bab244c526E3869B9", + "0xB3156Ea0c0eC03D4E8A6F6a126F7f100073B3EC9", + "0xd6A0EE305A4Cfcd3f4b2e34Ae4C2a8d81E9DC608", + "0x7eC9FbB246F296da07E09d2867E45bF40F8EA9E0", + "0x04F4bdc7E478e94E6E334b2b09C867E255E9C1ca", + "0xfF0092b5f8cC4Fe7d86CC779cCeF6CA449E12596", + "0x34cC54f3C65E6e6CfD1f05E2AD0540624A5EfF24", + "0xDc319a6cF62cE6afa30B9bcf5BfC9CFf92B8Ec8a", + "0x58e52c2F983d78Cff50861c59eEd1273C83B327c", + "0x0BD1454fa01dD11bF6646BF8bc17a3E48Fda3734", + "0xf7A834B3Ca5Dfb1684792446C30dBF619E553eA3", + "0x934A3231e52875AE84fB3e6c6c42F8849Bca3530", + "0x40323700111f1CA44F6D1Cc151b6c37034325415", + "0xECBe274B81146E5065982bEac5c76f2F27EB2418", + "0x506e229770622b1749be688ac093e98F18bCdd96", + "0x14Fe1c6ADb626A8235b079d4ff66C6b0a3a2E68a", + "0x8652fd2e74d2276f58C30aD232DBeE5467AbcE4e", + "0x49C243cc07dA0eF410fF1cB0155ADC80EF046c1f", + "0xf83421f83d9144245510DaBBA675E85A7382EF85", + "0xF1C77Ebf0259344bBBbc62004b0853389Ec41EB8", + "0xA1fF30a2448536712C68FEa0d74198Ac13F7d290", + "0xBBe8e2EA7173095325034Beb7F44ABeCc54cCCb9", + "0x484851Ab627539F443Ca8eb7Fb7e0e06dECbB0BB", + "0x23272896f6f5a00a1e6238db600c8fFAedf9d948", + "0x0c7AE63DcC322eA3B580a4b3B378861f26ccfB87", + "0x065C85dCbeaDA4DA3F4A389Fcfc9665DFfa1D490", + "0x403CD03C31513C1F896a7C9e04C5e9F470A486Ea", + "0x59a99FC6a39Fd944c9e70b2dB4138b58d1954EDb", + "0xd187cB06753b747688960c7926d5de8f16F0545b", + "0x4C4ecF6973b8Ae95F4189053955d0Fc8938aec37", + "0xCCa15a0c3bAFfa318C25bC001065008B62682491", + "0xaEecaEDE7f29b4dC35571Cbe63573d3D5Ca24865", + "0x767D222a509D107522e50161CA17FfCF0e5AA3dE", + "0x4DCe05A53E15EDB22729f585F2A8f0EA199408b9", + "0x3c922Da1D136B7c247788274fA822AFC4cAbf1C7", + "0x458766AD6Da34Fd6A309FEBE57885dAb16224193", + "0x293d9eAb4a6b6DCD263d71e74C1bD7d83Fef5063", + "0x5294049fcAfe8CEB76B382785e5494f0B11D5668", + "0xe590F02553b7e140ef191dcE5101d802BBD0b22f", + "0x8b865742d0Ee022696A4Bcb00Fd13AABA8B9e9D3", + "0x7eD5a7af23497c8948D386C2B0a2b806F54B3e92", + "0xA4FDC2103B412cC142bd7715DabAB06F08eF842B", + "0xA0204DC8B4e33Bd976DF5f7a2E6a0e9f019db621", + "0x6AF31aB2538753Eb2900b9B57358D742bc6CF178", + "0x59a78b4ec8cF6b13082E3C2c7eAA6B92eD2C6CdE", + "0xe9D9F8c4Fc96829339c3d94796Db68f0562E29A7", + "0x60E95F7b9e3783906Cfb6101F2b6073175D078a8", + "0x71e2e53CD5AAC14E3Acb563D5A1B20108D0b967B", + "0x24046f8fa6b91DadbD468aB5D5aD574A54E43793", + "0x6E420a95b4546858e8D3237D7Af5977b57340503", + "0x14D499d5409d670Cb853112176146b2C4BD47089", + "0xe2A835CA86dcFEA83c93a6c636192A730C0b5651", + "0x8d8629128c6F801a1d873012bAB63C0198a5Bf0b", + "0x0712d172D2A75906Ff9C7d3052DdB2568877aeE9", + "0x2b7798A793ED99d06767945954226c73Da2553AC", + "0x3D6E381035Ab5995e06a5B1661Ee58E92bE755a9", + "0x9Ba7Ec4C0D21974C6d5582D3b58A81B9102F2bCC", + "0x6B7A4166a06B988E90042F4259741B48870e1647", + "0x529Ed027942aDA5d0a71d8e1e0006F123eAaa472", + "0x9Ac1Ed9517c7a24C745C2B7E7FaE95595Fa2f7eC", + "0x2F3a1F7668a9F8B640DD498A6A6392c6a0E851C0", + "0x6367bf1269db8cE122d282c9a932Ba69a6C59C02", + "0x1FdD5814d3d23fBF93849B530c825eAd5f83D63f", + "0x3F75C65C231bf747D26c49E61840F872A50128ab", + "0x1A51bD2D1eBcD646F398D8a6608bB3741a7bE613", + "0xC95397deF63F9D141Be35DDa9335263745e28340", + "0x97E261255b95AD980F597714ba28A11FacB207F3", + "0x0611bf5A24c05264A940DA19E98235C3b873eBAA", + "0xFB21cb4818866aB675C80ED8233eaFfB45535d58", + "0xe4e83194ba5cD16f6e3C81833A0C0Dc904718DE5", + "0x2564Df404f696ABD2a52d811307C54196A1f75c2", + "0xb23BB3bAD506180046d060FF77dFe0185B6A032b", + "0xffF139923963D4b181E100E303cF58ba320Cf2E7", + "0xf06e77fd9289763C1EfdA7B6901f388F47656102", + "0x3D945Da47eaeF43C4257DdEd7431F637807a6a38", + "0xe781549d8DD50FAbe211d2298370FabAB87d6e56", + "0xC8B0CBfd9b87CB59b0aa7B0c5BFc57AfFBa25Da5", + "0xE5dF8c7f12D450518402281EE4627Aa105b5DD58", + "0x0aC4C291fbB28a640d9d8896AB043803FE367Cf2", + "0xDBcCc870cdCB2077AE8A62D1CaE9C6e7F2caC4cF", + "0xc9248b5F037E36626d00c858bdd4E69F7e70064D", + "0x0bDb7A4862Dfe5e50b55c0496f60c5fad75146A4", + "0xF068d38f341F04E58210fD2CF3790530edfd4f86", + "0x1C727a55eA3c11B0ab7D3a361Fe0F3C47cE6de5d", + "0xCBe7cD986eE76724D47586Be4D65195a61e7a84c", + "0x55f48966E93a75a6DC14a372a86DeC46447CBC6C", + "0x7B542649Be9307660d5A1CF757d64A189c071870", + "0x3c57f6239CF0202436E253170A6E69D54731ad12", + "0x7dd52Be395aBF2109E42c715425168d3c4D6e7C8", + "0xF0a5293B7282C0407B04fCf15b5D64DB0ff3d2f3", + "0xC6C7E6B7e463F6b4F5849D0e6Ecd95194b8A85EC", + "0xdC822485f112d3A4339c05694AaD9c381c9AF2c1", + "0x8a3db8E88DbA75038f32d98dAEe70dc7812a8f0E", + "0xa70b638B70154EdfCbb8DbbBd04900F328F32c35", + "0x74ee6AF6E98A640Ca94aC9d27A9472EC125215e9", + "0x6fD11Fb810f69B01Ffd1a715E1b9e9d52F13a483", + "0x6724578f7cd48090922C04a75BeB56740e23F850", + "0xcE801BC537cB24aE7Fac4aaC75d0a1e18D642c83", + "0x9B84dB09103116A221BEE2748400ac3eE77DfB53", + "0xaBbcDf57b274155793FD8D17Ca62c95f2C70Eb1C", + "0xFAD763Da9051953fEa58C2304395719A3B6BA361", + "0x1921DB674F1368fE9F66610897bE5bDa1E7Bf903", + "0x02e0AB5a0b8Ae2aA8dA79D6c2c9DbcCaF9f725C3", + "0xa825d6Efb812F06CFCB4e98c037CEaaF3Ae0cB8a", + "0x77c02ebD56E120d4747b84fF7144Cc036DB71952", + "0xe0A531054D5d7c292FECF01ABA92F6Ad96fd6866", + "0xA0fa93efB404d4083AcA0F958E10A42d16521A70", + "0x19323A6C0AA8C6F420E7b3F68A83F4BE5d8afAAA", + "0x420379067FC6e0748ea1e7CAe070217F2F653BE1", + "0xB95a62bfc6347e808751354653C95780550771Fe", + "0x11eDedebF63bef0ea2d2D071bdF88F71543ec6fB", + "0x6024BA5de8424837577a77F258D65c629ACF8447", + "0x71520E1E4D1Ed73157829E5C2be4B7d411a8aDdd", + "0x4eB428B14bF2Dda8c947896f1d33caaD9BdCAc85", + "0xB4B04564f56f4795EA4e14d566aF78dA54a99980", + "0xCD531Ae9EFCCE479654c4926dec5F6209531Ca7b", + "0x064C2725b6e3450d7B3AAD53230a34eB1342327a", + "0x757d7BDba0c5c73255779C16f80EaFc12Ddea576", + "0xEEB125CF629835670b4C59D37fc3dbF6bC1fbb93", + "0x97889E94368F11a82e536dC4ba3AAeFf17145e55", + "0x3c5a11717e263F0e7caEcde34ceE12c0230ba4E5", + "0xd565Ed001Af98ad11a055802b71754063e92F7d2", + "0x9cB021Fae45c1E24dA22563cA49DBDBe1b0866CE", + "0x61F81e08d7B20989544af009A3148aED79319196", + "0x01E0D769d32bbd11adc8168fc25Ce911dc798905", + "0x673743bba95f6960f0b51918e091EBB8F5E9a00E", + "0xc21AB17BE2bAb6D8456EeE72439e9B3d569c7C5d", + "0x78C017A627B78186aff4102B06d6405aFBFB9d7F", + "0x075e72a5eDf65F0A5f44699c7654C1a76941Ddc8", + "0x52e081BdB1a9e975fe6e6d0549228E6F23506839", + "0x5eD06523f9195bB6E69aE22040E85ae006915e7f", + "0xb6b9AC35e6201AeCf28fC277bBb46A200Ec9ab47", + "0xde7ef44ee1016821Cb3E5bB16Bf0555a24D5318F", + "0xF0F54FCb2F7FD9ce39B8e258Ff22A0b1faAB5f1a", + "0x2458f163c231BeaA673C903894060430cCA101be", + "0xaDAAF294A870FF2a89eBb08E7e155813150c386a", + "0x1A22dFd1efbCFC1ad64048A74cead55EB5893Db8", + "0x2289D6FD181F9Af14F201c8DC81BecCb3E05a7e7", + "0xc1377e2312cC6CF1B7CFB99337Bdf7d82c501f6c", + "0xea06c959c985Ba421e4e2d9C2E461Aa909169A32", + "0xEB4BD5231274aA4C2B97a4fA06bAD9eCFCdad5E0", + "0x997C4fBA52CD694e1E953A356771c0022A564A3D", + "0x942c49Ee2D4F100050fdd2656d0322AAf7B789ec", + "0x9d9647f1a50fE04096C0483e91B173176EED0CEC", + "0xA45E8cE63444f7552fdBB3501f01DB2b1c2F6278", + "0x2E727a110b0256E26E1311b557D53FF47a53F573", + "0x31BAB9b137CAc23a08D67048Ae6c21E5FBa7029A", + "0x0fBaD79C4468A074aC0972Bed4E6FBFC85fe73A4", + "0x64c3cB32a504911C9b2C7C2A6fE426a599208f85", + "0x2F223C4854Fb916523c2639Be5877588A2D8Bd99", + "0x3954A503BF87f49443Af1e37a23393B77ffaF1Cd", + "0x5ea81D079E26F14731e0E430D6a4FA959b48Ece2", + "0x9831309D0707104dFF90642010e1f83B8231C18C", + "0x1218740616C54E17Fa5fe84a119975d182B82c69", + "0xcdfF4EFe95d497834595E85CCaA6c4e07503c4D1", + "0x9FCf8AF7b438ca64027aeEEe2100227b6b16a223", + "0x91Cd02F918B53B813cDfde9B006187ab864BF4da", + "0x7eC938B7f8848c45f2FF5024c8f84e93968Fa05E", + "0x49aad95Fb8dD95bfc47a16675755184A1bDf433c", + "0x78522630b279949fd9c5F375C2387e4D75292aCf", + "0x3aE4a45aB246c90b9811E3147EFc830A701a735d", + "0x8D802D950916E44a846128B938f393C15E1d7Eb8", + "0xe0D69dA77f8A50218c9102dAF166f8FbF4106672", + "0x98C11a4edB5C9D4caf127aEC82aFdC57D93F2011", + "0x79d18aD92231A1efedCd36E10997f7a7b3bC22f1", + "0x386aa438255692EAD400A2f41311A2Ff558C1638", + "0xF4DDf881f1F2a98A33791cCae1D0A9dE9D583490", + "0xe088AF7f0d5097C155096559950f1D4087608ceF", + "0x677Ad574799e5D71151F8DfFdF8DA69bA51d6311", + "0x5c921767aEd882522760d7c34A6A4A06140f0899", + "0x5d61FddC41d8970d9238332D26BC8108a6F58133", + "0x3Eb4307B110bF10c15FE748337ac2d3420D26c03", + "0x930A7CD60A633128B7c5181307781e6d033BA51a", + "0x46276503Dde4608D8e99f7fCee1FddF3B7C0e476", + "0x0b14bbd67612E1e06E55F0492b26998B4E7f355D", + "0x005ebE6Ac77c3d8a6B166F6dEf485d3E3F10e6fB", + "0xE2e4F2A725E42D0F0EF6291F46c430F963482001", + "0xA85291BCAFB061e61edAc9B234CCB27864d6C6a5", + "0x0817963eaA830f1C9B276C7a4401D66A8dd3f6f3", + "0x215b39C252BAD01905F065058b14436135257432", + "0x58eb02f60B99489D76b6Ea63a916591404c2036c", + "0x4e65175f05B4140a0747c29cce997CD4BB7190d4", + "0xf128177634f2A9E74658dbfe74d9Ddb0f2D24F3D", + "0x0076a7a180308486f70117aE53a75DF5988D60aC", + "0x15d37a2C7E4a88aDb0ef5a6C85866a54D261201D", + "0x5867a5e7E59339C58191334BE6C32E6885b6fCa6", + "0xD93B43B3345FE73039fbEf789B0D32beD046b352", + "0x1444dcBe80760DBa40033ba16644BA4Fe3022D56", + "0x1b651249802bF6ac59d4794025d7cebdabfCdd38", + "0x01954251DA19711c354f144DB0D0add3d37121be", + "0xFEE5717F50769c148dF42bA9b2DC2D8BB9eceFf7", + "0xeA99bF156F30bdC748d452D8A4e178fBE762762d", + "0x3e62E286485352Ff5d356FB5c69e2bb54a9FaD28", + "0xf0e9aad71740CC39bA113C45C9d3482DbB9C05fd", + "0xb0e95A31c073BE2388720686f6Ca4cd77B991Ef7", + "0x9c2653890dc1d2B060c8B7254dDe42FDD0f39cbE", + "0x84B5cA902F5AE0F1CD17AAaD3F8A2aA73725138f", + "0x4B066A1703Af1C4410743EF81Df6fed359a9D32A", + "0x6873aeC9B7CE47c0d32205C1f132f66b29635BB2", + "0x4E926f4580A5221D32e8d27D59C0c88F160b620b", + "0x46ebB553C048150Fb8AC25749e0e521cf27b1bDd", + "0x3E7D9f4edDAa08D6c12E0E95BDF86e6Eb58a858C", + "0xbBe844467051fE04CCE050efB42cF824431d1e52", + "0xfEB90f1aC4Ca82569FCEd3fBf91A9DE3CB767B78", + "0xA113381bB2cf0849eC63C053d16B3f6956D6d680", + "0x7B520906313690f9b93E86Bfb0E380eBb862C268", + "0xf24Cb17dB77821f52504d65Bb3340e5b6379783F", + "0x602fA030c301C97734970db71bd0C8437AD179D8", + "0x4cED7CF98c5C588C160ed27676c9BC2d00332403", + "0x735bb9AAe8c9417D87799A10Ac9a97708FCBd242", + "0xf1E04cf8bC4A651EFa9E1DF7F0239754d6497B3C", + "0x05348c9cd6eB9cff8f1c442714CC0a556f176d7B", + "0x067D12492268cCEa4711303773e778aDc783ca9d", + "0x5AD4178Fb0BF0E9ca1D2ceFd6D7d7F9636897dC6", + "0x5685bFdA07C502Bb85cEBE507B9B9481C6409C4E", + "0xcfF2e4d778FcF4412F1F276504Ce941e9232F85f", + "0x29c25Cee4e390ba6eA51161aABE814c9A2B0a8F4", + "0xa39413D7129E9377A54399b39B7f37f04119B904", + "0x1900Eb03efBC633d9ab2F23bad0aCB7109415d6e", + "0x583F39C19370FFb104bb013f305168a6F5Ca4a47", + "0x6a342b28fea0f96238364E580a5f9783a690bbd1", + "0x9Eb61591e9BE76c4175fBa2358A54da75b5dd40C", + "0xeF03d86C04eEc601EA63d084B6340202d3BF60eF", + "0xf181e9B1c0B7Bdc782d0d1A929A2A35A616C87D3", + "0x9709173Ed6F194a953a77204359DbFD0e88a54D0", + "0x91B9a8e151A6DedC98A986e4A38D815e2664d385", + "0x543DC1Ee988931dB4Fa3BadEe217A1194775Ad47", + "0x49C87BBe3Eb97d398b5E77eA5B0944b79AB78E8f", + "0x755fD3fA2a4bd8C67f405894a3B1992771cc1D2B", + "0x10276eE2D57Bb73D8CC5cC39EDA1a4a37E820250", + "0xf3847D4e4b16Cf584c41DB173f518915Bbc66C8E", + "0xb2031bEF6CBB0344971d140473239Cc145f78272", + "0x27381d11b3E12D44dDD652D69AB4A9cfcD8C54f1", + "0xFa68C2896B5d74f4569d17A6A39e60FAA49433DF", + "0xA4C83C3053376E9Ce06C05032c6a758c235A5d1A", + "0x6386288A0045f652Fd3733Bb8dDD7fb0FB3e4B33", + "0xD04C7D9C28e3b35F2866e1B681F4d13102c1bE46", + "0x2E40Fe6bAbeA94ca946971aE0afE2543db981631", + "0xb89d08E9159d746F93a31ED41Aa9A4d3C62e8390", + "0x979d23bE1b72641decB830398659994B93d4b897", + "0x5480B68025EddA9C03Ea4c9165FB64E0a1f2c1E4", + "0xc079b6bcf2FeF7405c0dFda8375F2a269EDD24f6", + "0x51FC91DCB9fCC0f01d1Aa4e659a3748688cc0730", + "0xcF75f542Dae11B1951Fe1B45C68760dFD0151109", + "0x04bb9e05dc0e749878439315F7933e4C9f7a3eE1", + "0x09eF0D98Eb6359bC1A2a1a7bFa49BCEc76FB3F99", + "0xea492e5c2A980D004680C543a57CB6bA3d88d890", + "0x93C6b693C14155dA0971c4cE5a41Bbf9A72b85a6", + "0x94479f0e32C3397f9BE5521184cACAD1Bc0fC0F3", + "0xC3c5ac9C328323e53DbdF064D94779436B91C49A", + "0x08D1d02A037E93b8584f927A27F7F6277EE2De30", + "0xEdE040A7E37C6eAa3a6E0Dbf4b60a4b729b84741", + "0x50a4a104Da74B1B8C77a671f2ac90b2062687173", + "0xd2AB1A62d2435d90775aEe5b5643B1cBb4E7baDD", + "0x20705521636F874837E21689BDdf003A54e9B555", + "0x1B3853443592283Daa3801f07c1C6F71BF66561e", + "0xa0268C016fEA0d29cf5Aad13d361eF3265BA2313", + "0xF2B304563D41Dd210747743866Cb3F5C2B228e8c", + "0x9E9C5a1A731192e51FDFdbBab5383d031F07Db71", + "0x2bBA0F7eF4837af2b02BcD81C55C88D8c26A2C60", + "0x9CF6e56c72Aa9DB3A811D84E8C05aA454E561Ff7", + "0x426A04b46e1052712b021213A63Fe40e5376F8Cf", + "0xCBAF0cE12BE328b14a65482305536E0eeEE4D6C2", + "0xC5fa796bC0E6A6e78a736a6c878B8a941146c3b5", + "0x793aCdce9DB7bc3269513652923d543b4818e817", + "0x0ED04A0ce758BCfd3FbEd18Eff24ABD9d6DEF44f", + "0xc1E35b955D8e956c0C9B7dFEE7Ca8EE8861402E5", + "0x61406c9Fd8d96C31484d9B3e60fed285DbE88D00", + "0x6a309bdb3d2d1D0B3d4A2a6CAC0F07d568593FFF", + "0xAa9F78E757B7a71a7620175C90F7C936d688D33A", + "0x63f07bedF4f43C4bb68BC1e57aD9c29889A2d267", + "0x2AF625dE7ee407a5bAf76cf4F89535302792D962", + "0x8F895DAA3aaF44F00b57ba60b366EFE481e50De1", + "0x731D5aFA11F26D1678750D5489EE4463D792D302", + "0xD55C4680C1D8aF543763B8E6E522FEBD7c8A99E4", + "0x7E8D9704a750CAaC505d4A7D8F5d5782C909735C", + "0xA6e1c5b55b6BE38DF3c96473974D135cd280e3E9", + "0xD7709e76154e34693b5865a395C30b44025b502C", + "0x7BBBb27b5d0E081A95829c333eaac50364802160", + "0xc763a82f81A0C5D525b1Af74A23E996751735307", + "0xF0177F327dcA75588B96c96b4418064894Ee234F", + "0x3d316B25363A04e870FbFba989416767274a6F7D", + "0xCe1DAce77636B2F24E16D4B10631e61f42003622", + "0x7B68F600f6c75b7a3F639cAbb53E4D2450b65779", + "0x33ee1FA9eD670001D1740419192142931e088e79", + "0xEE9A0ef4CE0aB1b11d8ce00f0E4520b9F5A116D6", + "0xc8B50f9FAa79b1Be1dE6c8714309050229E0a691", + "0x16F5bE82A44c150E8EFEB7941c4BAF0d43CCf01F", + "0xB7c02b1559761ff327bA7068566110E63bEa3FA8", + "0xf75b0E97BbDF16c69AC06f527835Be671d34a124", + "0xcd478940097C87892B3D5fbeF262bE453fD8C621", + "0xC677D6F9085d6E2558cB2C7e541A3c7B778C26cF", + "0x7C4A4734DE9278982e0Fbad7974615ab2b55f896", + "0x1b5395B1BE577287a42Aa4fAB0a874AA957E7e1a", + "0xC62780F9b05038726d0c8dbbf0D3e9abA5A7289e", + "0x43476733C3125413B6985FC940Ef37F6690245Af", + "0xb67Ed406fB511cCA5763Dd02F9B11CBAd8991c17", + "0x99F4f03F53dc5Cb4A1bb01EBBE29a5A4104C1Ead", + "0xE49506Ff4ED3E22645f2bd8b8F15Cf83Db44dff2", + "0x000115381cC9C35060F9300da231f54782671bd2", + "0x564BcA365D62BCC22dB53d032F8dbD35439C9206", + "0xDA03207429D8c74bE1F033E296542B529c95fB4a", + "0x6323f49D0497e66370675EAe765cCA42125cF60c", + "0x0848F011d99C5aA0abf0E8a43c72d8b573383f2B", + "0x4A35Dd01B9e259902996f7c436F379c2cE77e047", + "0xBe09fFC532834F7aD35a2f6813951980EeE84E7e", + "0x0056D1fd2ca3c0F3A7B6ed6CDd1F1F104B4BF9A9", + "0xcaA8fe71D6D97Cc8EAf2E83FF9974d2A579177A1", + "0x10271D0D0E9b1f3b79aD0DFd1612190fba1A1c38", + "0x405Ec040e3753677d1Dcf62Ef2750C29C45b21a4", + "0x664dd5bcf28bBB3518fF532a384849830f2154ea", + "0xaAcEcD1130acA21F14118a78E75A47756b79B602", + "0x21C4EE05bD3cb332dc961f09A979194A9FD81153", + "0xc70CDA39AE512Bf08f83Ded8Bc4Eb143B5169A0c", + "0xBa174EA358dB7a9F03cEa9Dc1Cf3B0ACbE0E14Cf", + "0xB97CE27b123B05D8A52A633AF7f1D183C093603c", + "0x0015A636bf58a20dE1193995C1c4d42b7f68f525", + "0x0FDc77a3432fCDD187b19A820AafD5225915eDCA", + "0x188502B2C3cF130B46cA18F9e35147c16685e9d2", + "0x9f6C7Ee09DB4c6BD5d3A52CEF903184A5D1B94Ab", + "0x1cEf359009F0D12CA26bf2e4F9506Dc12f13EC55", + "0xd778555AFA02aF57F077bD48b1204C5405d28887", + "0x239EeC9EC218f71cEf5CC14D88b142ed4fF44110", + "0xCA365C6868c9D1Ee41f331fCDd7dA197343BDEb7", + "0x89808C49F858b86E80B892506CF11606Fb25fCDC", + "0x727290476387e9bf01c8b442CdA1D6AE5C77a593", + "0x57CC54493F60f2f821610c82D0F4f7BeEf7777C1", + "0x89956D7c94447adfc0E9f8BdB51cd400e0dFD9f5", + "0xeF8b8f123711d35DC4b7924B3461e00D38c8A2d6", + "0x0DEB845dE6Dd1399Cd704aC10E07e8bAA8b80472", + "0x5eC1d1d7318518A17c7106BC25C4ce16428bE626", + "0x34417E7A17b28C11BBF1A50596538FA2e202c2a3", + "0x2Da80Ff7e1008a386Dd3A77846500089A05ADd0c", + "0xf957E8bb6aC674901549Be7761327dA602EBec5A", + "0xfBaCc44585ce38D28832f71033dE1b2E9F879525", + "0x33277E03921216b414e2DBf735bbAc307122e71e", + "0x6F83d7e5C7FEE67775e8a77643a98F584eE3fc61", + "0xFC0D0ECC018a8df10843C0c996140E212cbD7a1e", + "0x2a6F1FF63Aba4Ce7eBE7dFFefbd64F272EC3b983", + "0x533261D362Cf14EB4cCd95D2Faa0c11Bd07E115b", + "0x23E28B775Ab9fb982d60D4c9475b696A5A97B45B", + "0x4D037ca248Ccf0768844ce52cD122baa9d80552b", + "0x11114FeDD4408BBe4Ea79e2Dda913919CF67829c", + "0x8a9D46d28003673Cd4FE7a56EcFCFA2BE6372e64", + "0x9A8c97683Ae248Bc157bC1c14154FF2bbC990378", + "0xcF8f6C3c6856cb3b13704f7a0c509a6B7fa03F09", + "0x8c3360b0f8692b212762c45c3deE9A61CF0eA93A", + "0x46B756702b865AF30Cc0edba27e6d550e775A904", + "0xbafBF27E8626f5b76BB84F848BAaf9cFEF73Ad50", + "0x05CEdD3FdaA8997f9300526Ff6A354B8654Ad0a9", + "0x60991340ed005009611eE30daF82ba6E894d5616", + "0x8D15E3a9c96Ac9734d77448e55Df69e244a49774", + "0xCFd5b324F8be3CCC762a3eF29898b398B623D043", + "0x75e8609c69869c5CB298cE5B1872bDe088A73330", + "0x5D3d94dDC4bfE72019C0750dC4a55B175A8777fB", + "0x1d13c15cc9e19deB00c713b8242535b5F3f3e890", + "0x8e32b9eee4307634A62f3A0Ef756641c8AABad10", + "0xb4F888f064042A8A1c72e1B605d0AaaE40009603", + "0xe53ecA73fC23b395d4a6A5C652202923A7d0b240", + "0x382fFCe2287252F930E1C8DC9328dac5BF282bA1", + "0x88bbC65ce4703f6E44B7C308851c1D636B9d5568", + "0x7B7a7D5D758B83C900CED4047d67da89Cd7157f1", + "0x0fd2030A3A66bD322BdDfBF9818D883722CD3d6c", + "0xBf1589d1Bd22493cC015e48aad4B9f7Fe2358FD9", + "0x1a316a779cEC8Af3be9888c9f7D6C800fc713381", + "0x932B160016616255b85396E966cB3b6351727d72", + "0xc2D496215e4261c0dA0b437063CF15E3528BC545", + "0x20c70d385535127a71A35d34712fDc0EF63cb818", + "0x9835D114Cd3A7f567e7C046e59b46a6846874282", + "0x685F9caf0eaaF3fed78E187a2Bf9f59c4F8FC342", + "0x0be4c5fcCa0d670F63c4EAA3119Caf30832551Ee", + "0x9f2c46a6F95ec4E62e5619407C789F127f8982C3", + "0x79ea836AdD40618f3762189D6d9F752610289b1c", + "0x46761f1D443531afc94080E9F93d7aAd7C75aE87", + "0xa3D5691D67873a2f77138c02e9178FF2e91Dd35a", + "0x56F293B529DE0Aa91B5A90882946dD78aAa1DD04", + "0x5fA7aabFAF1a7104559508958d4Ab4A70926625e", + "0x9ba5C3e4f8f841588DBfD3303cd96987f1a8EDbb", + "0xC51447aD3B831DFC5603B92bFa46A06637250851", + "0x896C801DD263806Ba8F0B72C4Ab4332fDDb15bBD", + "0x8540F80Fab2AFCAe8d8FD6b1557B1Cf943A0999b", + "0x66056F248583A0A6df5b52fF0e2E268C5196Db0C", + "0x3f4C6350a1002a90a3e9cC77936f84c0BB889d96", + "0x863995027dF749f4929186b392aA8Faf73A86375", + "0x918052Be73127df51C822d4E857e84Ea7Cb4C8b6", + "0x6078883215ee548a180899fEf1141Fa3c5aD2299", + "0x9b6EaeaD2C50Aa55932865dD9CA9dDbeCff047B5", + "0x93cE3113649003952DF881248e84964283770B80", + "0x0fa0911F3323126Db7c897A54bcaC983E6075266", + "0xa260f03062FF9EFbff1C6bC8DE000a8D6e27910F", + "0x3ed335cFaE1fb9F439B55B837f70aa031C0b6A14", + "0x0DC6794F2eC9DC2E9B23aB2B1aeD26D48BEB78B9", + "0xe8Be88ee7BaF938ce05AFF2aF45A1bC013C14D0e", + "0xEb5B6185b4E5BC9B3A1190BE8FfdAE7475e76e89", + "0xBD356A9C20771d2be448bc7a556Cfc0930C726FD", + "0x21112Be375D4046f7B1A4ce6f5ED10C74DDe1058", + "0x965177185B510D11Fa609DeD158dfA2Bb797425b", + "0x71CD8d0AA36fDb8af2D9dE5B4da014c202b92a92", + "0x87Df884d84cfefe7B12c579e86b16E819F8e6aBD", + "0xd38C197B862DaCD0aB6b1e18c9fc8CDf8a8731e1", + "0x11F972eEc0F529cF6c5714d5bBfbc3146c23dFd5", + "0xe9F56631C86539E232EcB8C957343795600F1a33", + "0xD8F9A1c16AaaD3cF3C5de43379941d98302b314a", + "0xEBED693576DbC1EE2692a414e2Fc37d1117fC40C", + "0x6aEAe34ca64bd9778351853c8Cc1A1D9307238Fd", + "0xABB2F16C26766715F9c0281c509d39eE139fBE0C", + "0xdd3f3f81521DD910D9EB1fbec40A1713a67643b9", + "0x8dB3F233F00C16F5c29347c308AC6C21D15BC450", + "0x2447807136Dc8224e3Dd865680B837820D14229E", + "0x2fD93906DC0e917b33385e477E1B70Ad5Ca502BC", + "0x3Ec6732676dB7996c1b34E64b0503F941025Cb63", + "0x58531045854C0C2548ce0A192800558808c57c1a", + "0xC04Bc1996320f27c0A6018cB370c9469a9Dd3a4C", + "0xC9A664eB00eB6f6c0Eaf26f3cAE664A0c48AB718", + "0xaa995cC7c7D5C141B51b8Bb66233BF04D9934638", + "0x4AdA1B9D9fe28aBd9585f58cfEeD2169A39e1c6b", + "0x94ee23c8316fE744a7568B2Ab145728B633cd60D", + "0x5ad6211CD3fdE39A9cECB5df6f380b8263d1e277", + "0x57EE25EAFB8A18bAf347F792D86c26550bd45C43", + "0x96A64786A31993ab07D3Dd628b21a296874057b5", + "0xa7195291d9758b738e18D708Eb5d4b7A1bb8B942", + "0xE4bb6F84e5353Ce688955d1a17A6a3E3f4Cc1106", + "0xf4c2CF15cF3930BA586A8d729bDb4E15a3ba0371", + "0xfca8cf85Cf7915127fcc190235b5E46756872Fc4", + "0x795EF5EB0927628Cddd16DB66Ca4135118B39D71", + "0x8C42874173b51674a9e4C18998Fa6B86070Ea2da", + "0x12B52e25bc0a78269a37dAd59D672702f324c3c6", + "0x197A78Fe1bD3BBb64c1325c027bdE8F67Bac1770", + "0xc27E010ed652dD352d16Ca10BD17cc4892711DE8", + "0xD6ac395afB603ee7f952AaF340c37C63F2988A4a", + "0xD2cbCc062eE2663Dc2790159b29FA689403d0e53", + "0xdaE3B357B18854eBeeCfE94199ab4BA21DC1c3a1", + "0xB86046290Df993def99BB1c132f53fA47bC6cC8C", + "0x2961768cc229226e7D83c0141C133789487bA763", + "0xbC147973709A9f8F25B5f45021CAb1EA030D3885", + "0x3427Fe04fCBFdfC0D5e3D4bB28E5D17c7D05dadc", + "0xf5E72997437415D42273F664826822f0453B2E5E", + "0xA808Ba63710fB2f052871EDdD6ac7F453Df609aE", + "0xbA3a63489878D2F9DA285108d97f10E6D5BD6E42", + "0x346827DD9e3090b6d43b38Cad98fa0633EAda622", + "0xf948A0520674A9b28E54FcBBaFf82eFea0CC7403", + "0x62b3364ea3558C3A7d1597c5C5cC4D0d584C6ea0", + "0xb0896bFe1A8C45e032F401392aa7822CdE89e296", + "0xc2d3cDf331CC047c4264E536346492C6E47ad5Da", + "0xDBF5E9c5206d0dB70a90108bf936DA60221dC080", + "0x2c4b7B742309d6ab26723881A357A43d691F0baf", + "0x4380d6E5477Bc2e601D465CdaDf9B8a9E3702d58", + "0xEDA3DE89C760ad664e985BdC2661eE7e2f71d25B", + "0xcb53DC69f0F435dD29B49AF2dB8A32f7aBC1E9c7", + "0x9DB1C5A0f6519c4C694b35Fab580fD875C424573", + "0xC087168E843Ac55c492d44CCBB0f0355D0c3Aa06", + "0xc1b55a0EBbc527A03b52541d5c38c14571b04Cfa", + "0x37b699d7eeAD58433d352D1c77b2dB1391F11Ce5", + "0xe1DF6bbD7D7a26b586c601ac17d4173b629A476d", + "0xaaCaEC1b466E8FAD895030f5F30fd7cB087b2db4", + "0x7513A8B75F236F37aCed82f33Cd7e0b96DE8adaE", + "0xE756E7f14BE3270d918b576E40C21aaC1f80dEe2", + "0xCBcf63c193866aD82AE05db88Ac51047AB2B64Cf", + "0xF0bB3B93552edF481a54B9e3937ad8eBcde892f1", + "0xB833E7294A4dBac2c784d7b529C388918D6588af", + "0x1b212FF5b739C009b3eBaF3e681E3889b52C839D", + "0x8A7E95a4C8645cFBe52d7CDC2Ca060235a8F889e", + "0x4717f20F534C1732a2F987a126181eeF5413Cad3", + "0x41Cc4e569099506c4255317972948B26bC92519d", + "0xd08CD15D59fE43371E9BC74713227c7940A84E89", + "0x4a77676f96E90b4e3BC113D90Cf958fef2D0b8e7", + "0x4D928359E8556197f161F4927a928DFDE9c3d1a8", + "0x53C765C75ab37587EA3d2a6b0BD23D66d39394E7", + "0xE6A74139EE6A226136744a451400c0550F5873E1", + "0x0FEf682990c99003acf47CB9CD872b43544547c9", + "0xb1720612D0131839DC489fCf20398Ea925282fCa", + "0x74d85b145A1a1531fb527aDd04d41018E12df746", + "0xF55A646dc8302cd5cac290eBEfEc97853f88967d", + "0x7251e81E85B41b561ff1b67f09969fCDe566A343", + "0x975a171033dd940CFd165d1AB361552F2B985014", + "0x6392D61B9E60cD9C0198054f44f00Be03F8d2A5F", + "0xA2A4f8D679C4cC7f2A05997549eFAcf629BD96b6", + "0xcfbc091F167bBa962790E23Ee2DDA557938b8BAf", + "0xA660db2b20b58A448e848d0Ea8799595C482F773", + "0x9634445e293A87aB77Ca3Cf5B43da94AaBc544B6", + "0x8CBaA30c7FEFa60Db2b8775ad0B2E25bb3fbc91f", + "0x3dA9D70305B83Db1f545A5d50B19208b93cD0C21", + "0x16Ed0fe6952DAB8Bb1f1c1dD132A24d15b094419", + "0xfA6C4eF9E978Bbb3a8C7ea39eB9AE83E138B2161", + "0x2287B42b2F1c24B09309a6344CA931524E5BF3C6", + "0xf41FA837908c0318A9A2b739C8fb990BfD4AC8A7", + "0xccD4c202AB2CD6DE8fA3158553f1c679559cA65E", + "0x9d576ac210F3d07A3302D1EaF171663AD8fc8ee2", + "0x7849f7f35EBdD8B42ba37d9dF9A24DE0fe19D5e4", + "0x4082150aBBEbE4F63AC77e9Db6FB7Dd65eEA7E69", + "0x1B929E3F52C3D1666cDDAc4F93484067BF83AE31", + "0xb45E2B252969394a48E46616378f19B1F1f32BdD", + "0x27F9579727c7f7827b531B0f11aD2e21e3cA812a", + "0xbfDD5A28B6A717959304e25953B4bdbD84c5Fe1b", + "0xb891B774B82417E9D17af3CDf4Ea9B6512521966", + "0x86C703E247dDcd6780ecC8EdAC0cd4F32940db8E", + "0x47113e4B6477aCAfF6700841b80b9B65c7Bd13D7", + "0x622A13daC538a0505BBdCCb4f634A3aCb949ac6E", + "0x9557c6ead96d4a82FDCBa44e2988f968745B0C5D", + "0x69c33A9690298ee69a69C56794dEC82bffFc9685", + "0xbd25FB9b5f4005be6A92d60E8c87BB266bD44cB1", + "0x1e14940Fca5d7B3105A0115dD0747C3EBC649Fa8", + "0xA18fB9312eF2d98219F169653d8ad9e21dF1fAbC", + "0xE6F1f2F9201f2460D188435992Ab5349868B6c71", + "0xB5562f954B3573d91416032508307b5eD19dBC74", + "0x724De45f9dc3030c04c8A8De00bFe9524e12A9F9", + "0x1128cDB6DF17E282cE448e7770d0f02CE1299e1a", + "0xf50af7BF2604D09b4C81Bd16177De6D8ca0B5614", + "0x2fc80bd59Ad459E2151c78e191533E947656E71E", + "0xbFd87B843962115b5249a4272Dd577C412e7Cc30", + "0xc3b787e6bE77A72D01dbC0B7cEb9688c58e5a776", + "0xc46bf9cEEB7e691DD38E6c19921292d95AE63Df4", + "0x3a021BA306d8E595d120BBb1a0dC05dd9F2af5d9", + "0xfB3D39F3314CDC4B0993b6E9023D741Db7b75e5E", + "0x660508082e2E15B6660044f414C42d36e1E846Fc", + "0xc865Dc459dDF06bDCbc4522dD80002D443300d0F", + "0x4E0414bE95C0ED8Acd6928b6BdEC2BfdA719335D", + "0x57a290Fe30fb61b6f9743Fae660f3748EeEe4D88", + "0xFb934C5fa224675Ddc9Eed88a36EFd5b310e6F2C", + "0x8090487fcA05bbEe5f30117DF57dCA5630919A50", + "0x7bB1ca29B883c99184E3C1c534f0E42E3E267Dd5", + "0x59F837001752c5b00c5FccCD38de2e9404f71D3D", + "0x0Dec6D4f8806fD465Da765511a1020E4B5583F9F", + "0xdD73105e3Fa04636c133F2ebd55b82B2646560BC", + "0x46DC80055Cf48C5EDbF2196487BBa169678ac9F6", + "0xF983d6045cB1B5ebdeA6F233159F269d63b055D3", + "0x121B7935d05638b7e61dCcb597778c4398c77C52", + "0x7e7bc2DE2598db1197D86c6f404AbeF6775d9930", + "0xBa722D9279591723ecde46b7980a007B2e263481", + "0xCFcfEe2C6845a39dFC9D5403413B53b6Ff5D585C", + "0x60d1DF05426B3d7400db3aEDa1824c287cf48BB0", + "0x4A15BF39c18C8812B6D19FC76540798247AaF2aF", + "0xF31098aEa34f7c94997DCCD3a1880c8c9389F2e6", + "0x66f5922f6E0D799F45111D8Ea6Bc673Aae628718", + "0x53C4bDf99890D71B6AD8A00f343F408E10dc7a16", + "0x0311E2D31b39c8889A56a252760828d54c5092dD", + "0x883E44059Fb1fEa221a6EA9E5fD654C91801b4a8", + "0xEFFe47642C3674FD20f41d57FAF114ffe121E63F", + "0x5E00b5255e81aA506d95534c3C0Aa493E7309641", + "0x8aF1Ab22Ef2C0d681Eb29b5D7A9B107be564648b", + "0xd8950d147acf919305Ad1c50C4a010348D844aec", + "0x1C03523F40eC2A7E1b1CCb7D3A3Cb719C3A86beD", + "0x15907073f8f2a81f58610031D31FC8f74f790bdD", + "0x136A27249af210fE3dB926aa707Eb8B837e6c25e", + "0x3bfBB3C71723FE1e60dEb2B4312c6a1528bC73Ab", + "0x6cc8dCbCA746a6E4Fdefb98E1d0DF903b107fd21", + "0xB388fF93E354bF385808A2896424495203fC79B9", + "0x7a8aD491245364AeF7E2573F58f7774c711469E1", + "0xc57919A187cC4393C84af22a049FA6ec61BAa7b3", + "0x17f72db9EBCfdCF3f2BDB7C6C1487DF6C60d3BDB", + "0x5acab12D21b1aD94f6F17d1218847f9CD8d70f24", + "0x446386C4152618254286Bd3b6FEE38F18B1fe537", + "0x81593a4f5fc8458caEe6b828f3b204af2792302d", + "0xa35Fc49447445168E74AC4Ce0dC4383e27e1b3ef", + "0xf97020862f4282dFb21B781E7B760eE63E212dfE", + "0x2cAd6658aE641A6CEE952739323F52eea0a0b730", + "0x9BE96A6e861D2e5aFF1Fe0738BeD664b6F0B543e", + "0x6B0f87051Ad03397868e9B52Abac55C55aCaf7c7", + "0x68c81D07ed36Dc168cF073AA668d6d2DdE8f11ef", + "0x28F5e4C9d45d16D8364Ed42DC6e11423C7F745bA", + "0xD27e8256196d6f794c4329644C225b7b81a260f7", + "0x1CEB9Ed30ACe1aeED4c85b7cBddF161fF1D5B4aB", + "0xe5A8654631B3729F73ca3503bA09a5d3e11b46da", + "0xfd5249686231c383aE767eBa17Bd4c0433FbD2e1", + "0xe74b28c2eAe8679e3cCc3a94d5d0dE83CCB84705", + "0xC3D461aE8e3B29a1DCA37729C4575e0D309E620D", + "0x9bDB2651e53aDDe0a79B030F6dd87c52296476Db", + "0x692d82E74cBff5bA5Ed08B36b4334136Fa1aF035", + "0xdFc364b7024E48C6DE6b30c6b703DE0BC2e391B8", + "0xC63b0D887ed0335699354dB687C5fa0b37cb0D96", + "0x5B10c77f716cc369FB29d28F04e96c9D340db198", + "0x6240b12B430744a665c0dEdb9Dc0F54A6b7d435f", + "0xB3a2186359Ae7C6ba09dAa80Ad5e0Bed3456Ee78", + "0x6718F2430cc9299328c10deaBf78cf22B4c32225", + "0xfd3241f1707286f8Aa6287aCD3a79dB68823f1B9", + "0xc2E77881f1a839Ccba5208515b81a159888c9319", + "0x8BA2bBF4E6B12921DA48888dA9C0508e0301081D", + "0x1597a8339579033D2398630e2F370C8205E42fF3", + "0x1aca3E1d77a938F82faa91dc72Bd6547ce50f80C", + "0xCD04183A0220E28A6197dfcC78081Dc2E0815AC7", + "0xBf891E7eFCC98A8239385D3172bA10AD593c7886", + "0xa2DDf8E0847F91e91265947A52A96A09541c7603", + "0x253fb3EBa7fEfA5d018b3AAA6f7BE27BAB93FccE", + "0x63339e991d4B23042cc48fC910A5cEbaF4A35276", + "0xf639fFF07E0ef4e885B9Cb298CC5E25D0D7A09b6", + "0xABD138543ACCA939a4bA18CB5B0d3E575Eb62fC3", + "0x62Afc3C3d85A16CF30EcA5EB8467f997767ab019", + "0x93Fe13Bb5cDdd95766Bf6d0E5720d8d768276408", + "0xeA37869916007789dA842c5710c7d9Ca999A85Ae", + "0x34a23100DdcCe23013372701f1C7691aBCcC3f08", + "0xeB5060f8a749926872Bd2cC5AFc549F20Fe9bfd3", + "0x43F85176A75d72e5318D7fbc139bB2FB281bb050", + "0xdE3E20234Ee87291C195bbb31F4b7Af7351F8398", + "0xA2Db3CB712158e489481B734b25a9F7d49888ff3", + "0x9fAB0795da805A5f7cb766fDa61aC8E6FE2D712b", + "0xE140a89CA6c074975d045613674eCC978F5AA4f8", + "0xfFb08B3fc542b2389df5B387f236650EBBB8De2C", + "0x9324bc6728fAbFc7c789050A08af1bc8F2a8d0e7", + "0xd30e0c2c3B5CEB878b70052EEd2B28A61cE84374", + "0x8b6A8804d284c8D9bCf1465250E00621092D35ce", + "0x3Fe37054cAc9691aF52509158B039cA74740845B", + "0x72aD60856935f7F1605481444A0886e99EB2FB2e", + "0xA9925A2cA46CFBA3323A7DF03A85AcF3a13d2504", + "0x9008D19f58AAbD9eD0D60971565AA8510560ab41", + "0xBd551c14a92C0eff6EB1E417Ee7E818573a7fAAb", + "0x5aED268d7FB15c435A3C27a34C3A7394D8F8C814", + "0x427F2De3579131F8C81e3CDE10374E3f9760ff02", + "0xBfd869C62815B8063a2e4FdFbf437Ee4891da031", + "0x7Cd7bcAe383BC3f676cc213b57f9110702Ac7234", + "0xFe568475CFc25563B5A5E9769f56b61dF85e7Dec", + "0x42703d57290C883d30CCFBA2fD95cfDD6Ad43389", + "0x96B8a02dad59E319fA44Ca634228f9e4Cc7B9A75", + "0xF45F7D6cc1D79dd677C3e976711cF29Fc306f929", + "0xb5565f9e0ff5fe4b911779dED17A70766591A00b", + "0x05A1ff0a32bc24265BCB39499d0c5D9A6cb2011c", + "0xF161E1Ad51fccD598e5C44a536F6659f33D6e0f4", + "0xfeE5f64C87eEC05E83DE4Ca73534484066f9c5c7", + "0x1BeDF678eA91476731Ee1b32Ff8111bB1e822251", + "0x60523EFa6EeFAD0E2e93F6134313F4BF0b5B3DC6", + "0x77566dB619bC48AB58404AE495910bff9380CB9C", + "0xeB32693454a578Ed678fa08d7Dd7ec494b3dB97a", + "0x63e1E141871e9d1AB390664a05532dF2F0b3ADdE", + "0xB3Bf95Aa39c4eB5772923c61693f35FC39e35fe0", + "0x4d3877aBc39d131a39Ce21Dd0675aD3c1E3f3f32", + "0xc47B507e2A1EC30241B81fA34f884f2905EBD636", + "0xBc1891925a6e4EdCC722656b81bdb2A340C0DDaf", + "0x2c7e26caC08Ca83DF4399c10CB025c854AC591ae", + "0xEb075d294FdfA3cC79D75cec7545CbfBdc5b0093", + "0x1E5139c78050D014f05968Dc5c0755dAe958481B", + "0x5C5Af069B848fe904A14DC8Ed70f3d0DCA6dcA60", + "0x8d972b3c67C8bB301DC5E5AD3075b026CC6b5b8E", + "0xc0a4352241F4eFBad1A919398Ad1F77Bd591c5de", + "0xb2f6129b4B2fa2061BBf6d136BEE016A66D821Fb", + "0xe8342F3F61E8fDB281061A79506Ba4F39ad32c0B", + "0xb0cADC95f1B0F6791E190CBC3c54826Ca1FdeEd5", + "0x68224861d426eb0418cA9589a96A80b0084e5318", + "0x19131C3Aa44A344396492c85E4858B7505a794e6", + "0x3Df53E90B28c00021F751a560017Bf9f62642634", + "0xfA912046abB0eb3511bE6443738e4899Acf335f8", + "0x162B5AA3f35e51C84fafD41B8beaF155687C736b", + "0x722d357338fD91cB8c2F92C0a768F5a20E40896d", + "0xc7f8575b1B29D156a627FE01748d650584AbdaA8", + "0xBDF1B202Cc44bc45B472EF2E0dfEa0dc0147254E", + "0x8C25045cD7849C85bF034E08Eb206948D39e60C2", + "0x9943BF0a358ac35ACEa7a6B311a36E894d05c92c", + "0xF6Ef125721FE2c429d1722624F196bA4E04C48eE", + "0xaD13238A3e9EDA25f9Af105FC297CbD7301db76E", + "0x854622fFfFE9dDd587316D7bF3eF280E14af218b", + "0x76927E2CCAb0084BD19cEe74F78B63134b9d181E", + "0x746DFF22206CE4e3Da6D7eB4D537398bE8f236d6", + "0xC3F2bdc871B9d2aFd5Bf22d4a6397a637F94DA29", + "0x395c21e566FBca61074fA0304C21C5729FF4D5FB", + "0xAd88d33506A991e07Be595F43C84D74d72489cbE", + "0x47a2752Fa7869e40734B0918F059207da885D43e", + "0x4a183b7ED67B9E14b3f45Abfb2Cf44ed22c29E54", + "0x5eeA118E75f247014c6D0E990f02a0c254EDC852", + "0x87921997Ffa6Cd9cfE582444e21184cba1bAf068", + "0xE3017d50Df837058991010361a714ff95F2AE9A0", + "0xC2254206eDb9f55Eef46dCa0e85f5B8Cbcd2bB91", + "0xEE1093DFa78540e5294fbBB73AA1108cdDe56AC7", + "0x7a0EF482134aa53468850A7b117EcA38A6a3003D", + "0xcF3C6C6196883498D15f7d59C41DC6c844EefBF4", + "0x31a249bdaE239eB983B4b717B361C43DF7ee8bE0", + "0x176Ac51621057eab1f563E42016336e16F7A75A1", + "0x54667925d845234fceBe846782B57Df2DBfd127c", + "0xA531B15b12EC023b91B1a31e9DDd9e2fA674c3c9", + "0xB90bB40397eECE494A08de9118B32dcf2b37346D", + "0x1E7b56e1375FFbc659a188BFBD588eA1d53Dc630", + "0x883Ab2aE1BDDa0531078b27dd45600193aba1F34", + "0xfE60d742cD7A92701D6eA196c40A10ae36c2Cd0E", + "0xbd5975d969a5590b663c329490add6030c28A9aE", + "0x61758E9425d116A0Ac2cF643a07dD66886314228", + "0x7731F1e4cF3367F462e1FA20D356061A5C4Ec169", + "0xc172e6Cd78B3745f7DA7805ec44E2428a4d504c0", + "0x5fBAbcBE85836609a79429fad2FB06518842cA34", + "0xEA7D443EcB40E2189d674256DfF3CC32b35C1430", + "0x1c0f24C98b35181Fe6610da44252E8Ba8e18FF88", + "0x7783F8D4064C5DAcC253d9c0DE4a9675d74b373B", + "0x4Dd227258EAd37Cc097770915852bFe96b083c57", + "0x74543f888C8ACc629DAaBda5758d966F58982AaE", + "0xC2554Fd4E06826460998F9cB7f10dc10e2450F22", + "0xC21D934f57a7511B9c1d34240cB35C8ef3Cba6b8", + "0x0cb961e87f6b7a7Ce4E92d1ba653E2A2b5b1D9B9", + "0x9272A47d977ae2196412e93fC1d9926b34b6f8C6", + "0x64e2965226ae776f4a76ac5AA2110393e82ED2E3", + "0xFbDcaC72fC96eE6E10fdA3145008CDBf81602354", + "0xe24F5c68074BfA08ED8a26636Ee76da928296adb", + "0x2a009Ff3Fae39b035F2368d077fE485e7761341E", + "0x252B99F1873fb67cC07c092ff7E772C608180F13", + "0x2c7F8156a82c4A8040DBDCd96bA025b25ddbf9Fa", + "0xCA73BA1C197BC5E263b81650Fb6511a97f501Ec8", + "0x053eE0A7275bB79B4AeB57f900892A839dd6F9A5", + "0xe35a7cC9EEC709790d27255d3b12dAefA3346806", + "0x59F44e629FFfCd2517162bB618E36c89DECfFDef", + "0xe3Fd02Fc12cB38A8074BA8bC4a77C5de9aaBf0C9", + "0x1337794a4361674953B53eD6cdc88357097aa5c7", + "0x91f445b30C707E9B2D151dd6fD24Da098e78c8Ae", + "0xB9D0a141822254047A6f3CbA698C50119151b6E9", + "0x66613F90c76fECc8D8e8D9Bba49C146c48cCbeC7", + "0x8E26A3428B5A881AC0A1dE376C7e08B04314DF93", + "0x5735026C9b2DFdeC3F522d634FB4224b96444D59", + "0x1C42F2fCc9c7F4a30dC15ACf9C047DDeCF39de06", + "0xEA4BfBBF972e681b7d373672820C4F81377A89f9", + "0x5F6e8cF2da87a8B2241BA20eBBc00086422C577D", + "0xb6767A89b0EFF73874987EcC502F0e664d5d544b", + "0x9123f42C45cC8E25F9f171C58B91847a8A48BE8d", + "0x6B5516E2c614FCEd1f54f6fe3083657C8B95ad93", + "0x0f9F99c219d501a1aaC3d4d1cfeD5205602075d6", + "0x0a210a948635055B9b9Fe7cD182dB895c36199B3", + "0x9bE3A81988EE07A5A54a24cD2767Ca9309878F66", + "0x0E0d9BC22910eDB19155760Ad960E99Dd74ba904", + "0x23B37371D63945E817455630E2861d010C8Fb350", + "0x146DB7e5d6D25B1302292e0603E3154904163e07", + "0x90d4B323C3b1E5b4dD15F5CB9FceA2a5E8e4D15d", + "0xD4E26683635bf3dc9EAD5F31B935c33cC1Ce1838", + "0x6689B9D1642bb413C74c35EeBA13165F755f26FE", + "0x07A5e7208617128eb73C07E0351b791f00cFD47B", + "0xec6d3046Bf57Fb18899E78d4EA4d2Df1e0A864D2", + "0x857Be2b9Ccf18fa3445047e53BE9B3212518E7A0", + "0x2fe8E10633eAe71b503C60180C4190710a132237", + "0x27791168b406FF0bEA643DB65f21FE75C1f3bBeb", + "0x7723000de847d13856Aa46993e6D1d499D13af1B", + "0xDbf187C53B650ee2123212952721beB40B5831A3", + "0xbE7fF9356D8820e720c514698BAb556eD5ad59dc", + "0x53118829B1CBb004c1975178EC763b2737253472", + "0x4779c6a1cB190221Fc152AF4B6adB2eA5c5DBd88", + "0xb297D1f48a52a2532CBAfFcEC1850B949f71e1e1", + "0x87Ba3C38282409e6D13156303c43DD73B264010B", + "0x8f531ee3190c32467f19a693A3222bA8A9D7d165", + "0x6Ea37ED3c988c215957fcDEb7C381fD827B9BF5c", + "0xe6fEC001F65f4ea94eBcc26E51b80A900DcEbae4", + "0x935E1408c083d2885536737D4C4CCdf97BA017f5", + "0xf923B5cBbd47Ea6778FA9c025Dd6238c26464B30", + "0x39ff6bA01eD00cB38EBaA5a1ed9E4d13b7912B88", + "0xaf0EcB650Dc88Fe38DC3873B9f40F017F1B72063", + "0xe92A662f93aEC1504A8013013533E9Fc6edfD550", + "0x1D930F8d630b22F034305016Bf54A4A0C03B0619", + "0xC877418547FD558F713215a5b0F1CCb11442436C", + "0x4c0afBC4851E8f519acE8CbFe69960Ea72fA2BDc", + "0x28f164f27Cb7D8829cd390086eFa65DB1FEAA5bb", + "0x4c37f89682C04e0f657063b4163D9a5C8e903984", + "0x7B0d20c3738bff1F9a9Ee6f5239623C4953DE51F", + "0xed3907d129EdAf90f5b2e821416019452314b650", + "0xf810a0AfE1A5047B59DEE4d150be354918a03eE6", + "0xC8c29B1E95Fd332b1729509Df2d8871CC8eB139B", + "0x88a76452288266480e120eb10d8739148db85159", + "0xac33bFd55edc07b49D9082A29fD18E28123eb1dd", + "0x575478a33CbA6c3c99D7F534fc450C2A8Ecce756", + "0x17E50EFC7Fdba2065e8dD3FD36F90c90930c0872", + "0x0C5a2C72C009252f0E7312f5a1Ab87de02be6FBE", + "0x8B260701716b85c686755683849B379F63B48745", + "0x29bf45B62F13b7a0F413a1252DC2056014ec45Bc", + "0x85FCeBb2B4E0564a2430C0755f5567a61768540D", + "0xC534129554F89a3eD26818B5277B1E9F9F7881cE", + "0xC70f26184fc556bBbA9c3078ee35411e42E7B1ac", + "0x44D6173CAEf5Ed74dD7A439fc08aA0f8C1946595", + "0x051f77FfD586C9Ef26d990E536A1E7861CDaE9E1", + "0xaF07579793D3acF89aFd719cCbcaF4317B9A94c3", + "0xE7e4f9a12525fc5e7a214819F868767407A05fd9", + "0x1adC376b6d299BE2312D8E4915151F2b17942e83", + "0xdCC40e2C3BC2a449Edd30C4c2074B9129a0eaFF8", + "0x5E1b03a7f15e17B59d9b3b630DC6b40144baB7e6", + "0x4c979b7648044a198E7E918f88F2C72F9544f37d", + "0x5d62f5f89C6a945EE3F86ABbcDDb16C325718091", + "0x1Fb0934bc8B650B9869034eac4aD4d4382020C13", + "0x5B5aC4512400cF1798c23926B0cC73bBeaCbA35A", + "0xf8e2dC6435bA1D6d2cfDd8001d505a85545e8fE3", + "0xeE2A1695C264B88A20f8e2eFb27E3f054384c4fb", +]; diff --git a/src/components/Sidebar.tsx b/src/components/Sidebar.tsx index 93345fbd..d8c8e457 100644 --- a/src/components/Sidebar.tsx +++ b/src/components/Sidebar.tsx @@ -1,17 +1,12 @@ -import React, { useContext, useState } from "react"; +import React, { useEffect, useState } from "react"; import Nav from "react-bootstrap/esm/Nav"; +import { GiSpottedMushroom } from "react-icons/gi"; import "../styles/sidebar.scss"; import { Link, useLocation } from "react-router-dom"; -import { Web3ModalContext } from "../state/Web3ModalContext"; -import NetworkContext from "../state/NetworkContext"; -import { isInLayer1 } from "../utils/utils"; import { ReactComponent as Logo } from "../assets/images/favicon.svg"; import { ReactComponent as MenuLogo } from "../assets/images/menu.svg"; import { ReactComponent as DashboardIcon } from "../assets/images/welcome/dashboard.svg"; import { ReactComponent as VaultIcon } from "../assets/images/welcome/vault.svg"; -import { ReactComponent as PoolsIcon } from "../assets/images/welcome/pool.svg"; -import { ReactComponent as LogoutIcon } from "../assets/images/welcome/logout.svg"; -import { ReactComponent as GraphIcon } from "../assets/images/welcome/graph.svg"; import { ReactComponent as StakeIcon } from "../assets/images/welcome/stake.svg"; import { ReactComponent as FarmIcon } from "../assets/images/welcome/farm.svg"; @@ -22,7 +17,6 @@ type props = { }; const Sidebar = ({ showSidebar, setShowSidebar, isMobile }: props) => { - const currentNetwork = useContext(NetworkContext); const location = useLocation(); let activeVal = "dashboard"; switch (location.pathname) { @@ -32,6 +26,9 @@ const Sidebar = ({ showSidebar, setShowSidebar, isMobile }: props) => { case "/vault": activeVal = "vault"; break; + case "/vault-monitoring": + activeVal = "/vault-monitoring"; + break; case "/graph": activeVal = "graph"; break; @@ -44,17 +41,34 @@ const Sidebar = ({ showSidebar, setShowSidebar, isMobile }: props) => { case "/governance": activeVal = "governance"; break; + case "/sewagefruit": + activeVal = "sewagefruit"; + break; default: activeVal = "dashboard"; break; } const [active, setActive] = useState(activeVal); - const web3Modal = useContext(Web3ModalContext); + + useEffect( + () => { + const path = window.location.pathname.replace("/", ""); + if (path !== "") { + setActive(path); + } else { + setActive(activeVal); + } + }, + // eslint-disable-next-line + [window.location.pathname] + ); + const sidebarClass = () => { if (!isMobile) return "sidebar"; if (showSidebar) return "sidebar mobile slide-out"; return "sidebar mobile slide-in"; }; + const sideBarLogo = () => { if (isMobile) return setShowSidebar(true)} />; return ; @@ -65,142 +79,68 @@ const Sidebar = ({ showSidebar, setShowSidebar, isMobile }: props) => { ); diff --git a/src/components/Summary/Balance.tsx b/src/components/Summary/Balance.tsx new file mode 100644 index 00000000..e1c2f4cd --- /dev/null +++ b/src/components/Summary/Balance.tsx @@ -0,0 +1,202 @@ +import React, { useContext, useEffect, useState } from "react"; +import { Image, Spinner } from "react-bootstrap/esm/"; +// import { useTranslation } from "react-i18next"; +import NumberFormat from "react-number-format"; +import { Provider } from "ethers-multicall"; +import jpegzIcon from "../../assets/images/jpegz-coin.png"; +import { ReactComponent as CtxIcon } from "../../assets/images/ctx-coin.svg"; +import { ReactComponent as TcapIcon } from "../../assets/images/tcap-coin.svg"; +import { BalancesType, OraclePricesType } from "../../hooks/types"; +import { ethereumContext } from "../../state"; +import { getPriceInUSDFromPair, isArbitrum, isInLayer1 } from "../../utils/utils"; +import { NETWORKS, TOKENS_SYMBOLS } from "../../utils/constants"; +// import { VaultsWarning } from "./warnings/index"; + +type props = { + currentChainId: number; + ethCallProvider: Provider | undefined; + signerAddress: string; + balances: BalancesType; + prices: OraclePricesType; +}; + +const Balance = ({ currentChainId, ethCallProvider, signerAddress, balances, prices }: props) => { + // const { t } = useTranslation(); + const currentIndexName = isArbitrum(currentChainId) ? TOKENS_SYMBOLS.JPEGz : TOKENS_SYMBOLS.TCAP; + const ethereumContracts = useContext(ethereumContext); + const [loading, setLoading] = useState(true); + const [indexBalance, setIndexBalance] = useState("0.0"); + const [ctxBalance, setCtxBalance] = useState("0.0"); + const [indexUsdBalance, setIndexUsdBalance] = useState("0.0"); + const [ctxUsdBalance, setCtxUsdBalance] = useState("0.0"); + const [indexPrice, setIndexPrice] = useState("0.0"); + const [ctxPrice, setCtxPrice] = useState("0.0"); + + const loadData = async () => { + if (ethCallProvider) { + let currentPriceCTX = 0; + if (signerAddress === "" || currentChainId === NETWORKS.mainnet.chainId) { + const reservesCtxPoolCall = await ethereumContracts.ctxPoolTokenRead?.getReserves(); + // @ts-ignore + const [reservesCtxPool] = await ethCallProvider?.all([reservesCtxPoolCall]); + currentPriceCTX = await getPriceInUSDFromPair( + reservesCtxPool[0], + reservesCtxPool[1], + parseFloat(prices.wethOraclePrice) + ); + } + + let indexUSD = 0; + if (isArbitrum(currentChainId)) { + indexUSD = parseFloat(balances.jpegzBalance) * parseFloat(prices.jpegzOraclePrice); + setIndexBalance(balances.jpegzBalance); + setIndexPrice(prices.jpegzOraclePrice); + } else { + indexUSD = parseFloat(balances.tcapBalance) * parseFloat(prices.tcapOraclePrice); + setIndexBalance(balances.tcapBalance); + setIndexPrice(prices.tcapOraclePrice); + } + if (indexUSD < 0.0001) { + setIndexUsdBalance("0.0"); + } else { + setIndexUsdBalance(indexUSD.toString()); + } + + if (currentChainId === NETWORKS.mainnet.chainId) { + setCtxBalance(balances.ctxBalance); + const ctxUSD = parseFloat(balances.ctxBalance) * currentPriceCTX; + setCtxUsdBalance(ctxUSD.toString()); + setCtxPrice(currentPriceCTX.toFixed(8)); + } + } + }; + + useEffect(() => { + const load = async () => { + setLoading(true); + await loadData(); + setLoading(false); + }; + load(); + // eslint-disable-next-line + }, [ethCallProvider, signerAddress, balances]); + + const IndexIcon = () => { + if (!isArbitrum(currentChainId)) { + return ; + } + return JPEGz icon; + }; + + return ( +
+ {loading ? ( +
+ +
+ ) : ( + <> +
+
+ +
+ {/*
{currentIndexName} Balance
*/} +
+
+ +
+
/
+
+ +
+
+
+
+
+ +
+
{currentIndexName} Oracle Price
+
+ +
+
+
+ {isInLayer1(currentChainId) && ( + <> +
+ +
+ {/*
+ <>{t("welcome.ctx-balance")} +
*/} +
+
+ +
+
/
+
+ +
+
+
+
+
+ +
+
CTX Price
+
+ +
+
+
+ + )} +
+ {/* +
+ +
+ */} + + )} +
+ ); +}; + +export default Balance; diff --git a/src/components/Summary/Features.tsx b/src/components/Summary/Features.tsx new file mode 100644 index 00000000..f72a8574 --- /dev/null +++ b/src/components/Summary/Features.tsx @@ -0,0 +1,82 @@ +import React from "react"; +import { Button, Card } from "react-bootstrap/esm"; +import { GiSpottedMushroom } from "react-icons/gi"; +import { FaArrowRight } from "react-icons/fa"; +import { useHistory } from "react-router-dom"; +import { ReactComponent as VaultIcon } from "../../assets/images/welcome/vault.svg"; +import { ReactComponent as StakeIcon } from "../../assets/images/welcome/stake.svg"; +import { ReactComponent as FarmIcon } from "../../assets/images/welcome/farm.svg"; + +const Features = () => { + const history = useHistory(); + + return ( +
+ + +

Use Cryptex For

+
+ + + + + + +
+
+ ); +}; + +export default Features; diff --git a/src/components/Summary/Indexes.tsx b/src/components/Summary/Indexes.tsx new file mode 100644 index 00000000..f129c301 --- /dev/null +++ b/src/components/Summary/Indexes.tsx @@ -0,0 +1,163 @@ +import React, { useEffect, useState } from "react"; +import { Image, Spinner } from "react-bootstrap/esm/"; +import { useTranslation } from "react-i18next"; +import NumberFormat from "react-number-format"; +import { Provider } from "ethers-multicall"; +import jpegzIcon from "../../assets/images/jpegz-coin.png"; +import { BalancesType, OraclePricesType } from "../../hooks/types"; +import { ReactComponent as TcapIcon } from "../../assets/images/tcap-coin.svg"; +import { isArbitrum } from "../../utils/utils"; +import { TOKENS_SYMBOLS } from "../../utils/constants"; + +type props = { + currentChainId: number; + ethCallProvider: Provider | undefined; + balances: BalancesType; + prices: OraclePricesType; +}; + +const Indexes = ({ currentChainId, ethCallProvider, balances, prices }: props) => { + const { t } = useTranslation(); + const currentIndexName = isArbitrum(currentChainId) ? TOKENS_SYMBOLS.JPEGz : TOKENS_SYMBOLS.TCAP; + const [loading, setLoading] = useState(true); + const [marketCap, setMarketCap] = useState("0.0"); + const [indexOraclePrice, setIndexOraclePrice] = useState("0.0"); + const [indexMarketPrice, setIndexMarketPrice] = useState("0.0"); + const [totalSupply, setTotalSupply] = useState("0.0"); + + const loadData = async () => { + if (!isArbitrum(currentChainId)) { + setTotalSupply(balances.tcapSupplly); + setIndexOraclePrice(prices.tcapOraclePrice); + setMarketCap(prices.tcapMarketCap); + } else { + setTotalSupply(balances.jpegzSupplly); + setIndexOraclePrice(prices.jpegzOraclePrice); + setMarketCap(prices.jpegzMarketCap); + } + + // @ts-ignore + const urlParams = new URLSearchParams({ + ids: "total-crypto-market-cap-token", + vs_currencies: "usd", + include_last_updated_at: true, + precision: 10, + }); + + if (!isArbitrum(currentChainId)) { + try { + const reponse = await fetch( + "https://api.coingecko.com/api/v3/simple/price?".concat(urlParams.toString()), + { + method: "GET", + mode: "cors", + headers: { + "Content-Type": "application/json", + }, + } + ); + const resp = await reponse.json(); + if (resp) { + setIndexMarketPrice(resp["total-crypto-market-cap-token"].usd); + } + } catch (error) {} + } else { + setIndexMarketPrice("0"); + } + }; + + useEffect(() => { + const load = async () => { + setLoading(true); + await loadData(); + setLoading(false); + }; + load(); + // eslint-disable-next-line + }, [currentChainId, ethCallProvider, balances, prices]); + + const IndexIcon = () => { + if (!isArbitrum(currentChainId)) { + return ; + } + return JPEGz icon; + }; + + return ( +
+ {loading ? ( +
+ +
+ ) : ( +
+
+ +
+
+ {!isArbitrum(currentChainId) ? <>{t("welcome.tcap")} : <>{t("welcome.jpegz")}} +
+
+ +
+
+
+
+ +
+
{currentIndexName} Oracle Price
+
+ +
+
+
+ {!isArbitrum(currentChainId) && ( +
+ +
+
{currentIndexName} Market Price
+
+ +
+
+
+ )} +
+ +
+
{currentIndexName} Supply
+
+ +
+
+
+
+ )} +
+ ); +}; + +export default Indexes; diff --git a/src/components/Summary/Protocol.tsx b/src/components/Summary/Protocol.tsx new file mode 100644 index 00000000..7cbd82d6 --- /dev/null +++ b/src/components/Summary/Protocol.tsx @@ -0,0 +1,426 @@ +import React, { useEffect, useState } from "react"; +import { Spinner } from "react-bootstrap/esm/"; +import { BigNumber, ethers } from "ethers"; +import { useTranslation } from "react-i18next"; +import NumberFormat from "react-number-format"; +import { Provider } from "ethers-multicall"; +import { useLazyQuery, gql } from "@apollo/client"; +import { ReactComponent as StakeIcon } from "../../assets/images/graph/stake.svg"; +import { ReactComponent as WETHIcon } from "../../assets/images/graph/weth.svg"; +import { ReactComponent as DAIIcon } from "../../assets/images/graph/DAI.svg"; +import { ReactComponent as AAVEIcon } from "../../assets/images/graph/aave.svg"; +import { ReactComponent as LINKIcon } from "../../assets/images/graph/chainlink.svg"; +import { ReactComponent as UNIIcon } from "../../assets/images/graph/uni.svg"; +import { ReactComponent as SNXIcon } from "../../assets/images/graph/snx.svg"; +import { ReactComponent as POLYGONIcon } from "../../assets/images/graph/polygon3.svg"; +import { ReactComponent as WBTCIcon } from "../../assets/images/graph/wbtc.svg"; +import { ReactComponent as USDCIcon } from "../../assets/images/graph/usdc.svg"; +import cryptexJson from "../../contracts/cryptex.json"; +import { OraclePricesType } from "../../hooks/types"; +import { + isArbitrum, + isInLayer1, + isOptimism, + isPolygon, + isUndefined, + toUSD, +} from "../../utils/utils"; +import { NETWORKS } from "../../utils/constants"; + +type props = { + currentChainId: number; + ethCallProvider: Provider | undefined; + prices: OraclePricesType; +}; + +const Protocol = ({ currentChainId, ethCallProvider, prices }: props) => { + const { t } = useTranslation(); + const [ethStake, setETHStake] = useState("0"); + const [daiStake, setDAIStake] = useState("0"); + const [maticStake, setMATICStake] = useState("0"); + const [aaveStake, setAaveStake] = useState("0"); + const [linkStake, setLinkStake] = useState("0"); + const [snxStake, setSNXStake] = useState("0"); + const [uniStake, setUNIStake] = useState("0"); + const [wbtcStake, setWBTCStake] = useState("0"); + const [usdcStake, setUSDCStake] = useState("0"); + const [totalStake, setTotalStake] = useState("0"); + + const VAULTS_STATE = gql` + { + states { + amountStaked + id + } + } + `; + + const loadStaked = async (data: any) => { + if (data) { + let currentDAIStake = BigNumber.from(0); + let currentWETHStake = BigNumber.from(0); + let currentAAVEStake = BigNumber.from(0); + let currentLINKStake = BigNumber.from(0); + let currentSNXStake = BigNumber.from(0); + let currentUNIStake = BigNumber.from(0); + let currentMATICStake = BigNumber.from(0); + let currentWBTCStake = BigNumber.from(0); + let currentUSDCStake = BigNumber.from(0); + + const networkId = currentChainId; + // @ts-ignore + let contracts; + switch (networkId) { + case NETWORKS.mainnet.chainId: + contracts = cryptexJson[1].mainnet.contracts; + break; + case NETWORKS.goerli.chainId: + contracts = cryptexJson[5].goerli.contracts; + break; + case NETWORKS.optimism.chainId: + contracts = cryptexJson[10].optimism.contracts; + break; + case NETWORKS.okovan.chainId: + contracts = cryptexJson[69].okovan.contracts; + break; + case NETWORKS.polygon.chainId: + contracts = cryptexJson[137].polygon.contracts; + break; + case NETWORKS.arbitrum.chainId: + contracts = cryptexJson[42161].arbitrum.contracts; + break; + case NETWORKS.arbitrum_goerli.chainId: + contracts = cryptexJson[421613].arbitrum_goerli.contracts; + break; + case NETWORKS.mumbai.chainId: + contracts = cryptexJson[80001].mumbai.contracts; + break; + default: + contracts = cryptexJson[5].goerli.contracts; + break; + } + + await data.states.forEach((s: any) => { + const cAddress = s.id.toLowerCase(); + // @ts-ignore + if (cAddress === contracts.DAIVaultHandler.address.toLowerCase()) { + currentDAIStake = currentDAIStake.add( + s.amountStaked ? s.amountStaked : BigNumber.from(0) + ); + } + + if (isPolygon(currentChainId)) { + // @ts-ignore + if (cAddress === contracts.MATICVaultHandler.address.toLowerCase()) { + currentMATICStake = s.amountStaked ? s.amountStaked : BigNumber.from(0); + } + } + if (isInLayer1(currentChainId) || isPolygon(currentChainId)) { + // @ts-ignore + if (cAddress === contracts.HardWBTCVaultHandler.address.toLowerCase()) { + currentWBTCStake = s.amountStaked ? s.amountStaked : BigNumber.from(0); + } + } + if (isInLayer1(currentChainId) || isOptimism(currentChainId)) { + // @ts-ignore + if (cAddress === contracts.WETHVaultHandler.address.toLowerCase()) { + currentWETHStake = currentWETHStake.add( + s.amountStaked ? s.amountStaked : BigNumber.from(0) + ); + } + // @ts-ignore + if (cAddress === contracts.LinkVaultHandler.address.toLowerCase()) { + currentLINKStake = s.amountStaked ? s.amountStaked : BigNumber.from(0); + } + } + + if (isInLayer1(currentChainId)) { + // @ts-ignore + if (cAddress === contracts.AaveVaultHandler.address.toLowerCase()) { + currentAAVEStake = s.amountStaked ? s.amountStaked : BigNumber.from(0); + } + // @ts-ignore + if (cAddress === contracts.HardUSDCVaultHandler.address.toLowerCase()) { + currentUSDCStake = s.amountStaked ? s.amountStaked : BigNumber.from(0); + } + // @ts-ignore + if (cAddress === contracts.HardWETHVaultHandler.address.toLowerCase()) { + currentWETHStake = currentWETHStake.add( + s.amountStaked ? s.amountStaked : BigNumber.from(0) + ); + } + // @ts-ignore + if (cAddress === contracts.HardDaiVaultHandler.address.toLowerCase()) { + currentDAIStake = currentDAIStake.add( + s.amountStaked ? s.amountStaked : BigNumber.from(0) + ); + } + } + if (isOptimism(currentChainId)) { + // @ts-ignore + if (cAddress === contracts.SNXVaultHandler.address.toLowerCase()) { + currentSNXStake = s.amountStaked ? s.amountStaked : BigNumber.from(0); + } + // @ts-ignore + if (cAddress === contracts.UNIVaultHandler.address.toLowerCase()) { + currentUNIStake = s.amountStaked ? s.amountStaked : BigNumber.from(0); + } + } + + if (isArbitrum(currentChainId)) { + // @ts-ignore + if (cAddress === contracts.WETHVaultHandler.address.toLowerCase()) { + currentWETHStake = currentWETHStake.add( + s.amountStaked ? s.amountStaked : BigNumber.from(0) + ); + } + } + }); + + const formatDAI = ethers.utils.formatEther(currentDAIStake); + setDAIStake(formatDAI); + const formatETH = ethers.utils.formatEther(currentWETHStake); + setETHStake(formatETH); + const formatAAVE = ethers.utils.formatEther(currentAAVEStake); + setAaveStake(formatAAVE); + const formatLINK = ethers.utils.formatEther(currentLINKStake); + setLinkStake(formatLINK); + const formatSNX = ethers.utils.formatEther(currentSNXStake); + setSNXStake(formatSNX); + const formatUNI = ethers.utils.formatEther(currentUNIStake); + setUNIStake(formatUNI); + const formatMATIC = ethers.utils.formatEther(currentMATICStake); + setMATICStake(formatMATIC); + const formatWBTC = ethers.utils.formatUnits(currentWBTCStake, 8); + setWBTCStake(formatWBTC); + const formatUSDC = ethers.utils.formatUnits(currentUSDCStake, 6); + setUSDCStake(formatUSDC); + + const totalUSD = + toUSD(prices.wethOraclePrice, formatETH) + + toUSD(prices.daiOraclePrice, formatDAI) + + toUSD(prices.aaveOraclePrice, formatAAVE) + + toUSD(prices.linkOraclePrice, formatLINK) + + toUSD(prices.snxOraclePrice, formatSNX) + + toUSD(prices.uniOraclePrice, formatUNI) + + toUSD(prices.maticOraclePrice, formatMATIC) + + toUSD(prices.wbtcOraclePrice, formatWBTC) + + toUSD(prices.usdcOraclePrice, formatUSDC); + setTotalStake(totalUSD.toString()); + } + }; + + const [loadStakedData, { loading }] = useLazyQuery(VAULTS_STATE, { + fetchPolicy: "no-cache", + notifyOnNetworkStatusChange: true, + // skip: skipQuery, + onError: (error) => { + console.log(error); + }, + onCompleted: (data: any) => { + if (!isUndefined(data)) { + loadStaked(data); + } + }, + }); + + useEffect(() => { + const load = async () => { + loadStakedData(); + }; + load(); + // eslint-disable-next-line + }, [currentChainId, ethCallProvider]); + + return ( +
+ {loading ? ( +
+ +
+ ) : ( +
+
+ +
+
+ <>{t("welcome.summary.staked-usd")} +
+
+ +
+
+
+ {!isPolygon(currentChainId) && ( +
+ +
+
+ <>{t("welcome.summary.staked-eth")} +
+
+ +
+
+
+ )} +
+ +
+
+ <>{t("welcome.summary.staked-dai")} +
+
+ +
+
+
+ {isInLayer1(currentChainId) && ( +
+ +
+
+ <>{t("welcome.summary.staked-aave")} +
+
+ +
+
+
+ )} + {!isPolygon(currentChainId) && !isArbitrum(currentChainId) && ( +
+ +
+
+ <>{t("welcome.summary.staked-link")} +
+
+ +
+
+
+ )} + {isOptimism(currentChainId) && ( + <> +
+ +
+

+ <>{t("welcome.summary.staked-uni")} +

+
+ +
+
+
+
+ +
+

+ <>{t("welcome.summary.staked-snx")} +

+
+ +
+
+
+ + )} + {isPolygon(currentChainId) && ( +
+ +
+
+ <>{t("welcome.summary.staked-matic")} +
+
+ +
+
+
+ )} + {!isOptimism(currentChainId) && !isArbitrum(currentChainId) && ( +
+ +
+
+ <>{t("welcome.summary.staked-wbtc")} +
+
+ +
+
+
+ )} + {!isArbitrum(currentChainId) && ( +
+ +
+
+ <>{t("welcome.summary.staked-usdc")} +
+
+ +
+
+
+ )} +
+ )} +
+ ); +}; + +export default Protocol; diff --git a/src/components/Summary/Summary.tsx b/src/components/Summary/Summary.tsx new file mode 100644 index 00000000..82136f1b --- /dev/null +++ b/src/components/Summary/Summary.tsx @@ -0,0 +1,137 @@ +import React, { useEffect, useState } from "react"; +import { ethers } from "ethers"; +import { Provider } from "ethers-multicall"; +import { Card, Dropdown } from "react-bootstrap/esm"; +import "../../styles/summary.scss"; +import SummaryOptions from "./SummaryOptions"; +import { NETWORKS, TOKENS_SYMBOLS } from "../../utils/constants"; +import { getDefaultProvider, isArbitrum } from "../../utils/utils"; + +type props = { + signerAddress: string; + signerChainId: number; +}; + +const Summary = ({ signerAddress, signerChainId }: props) => { + const indexName = isArbitrum(signerChainId) ? TOKENS_SYMBOLS.JPEGz : TOKENS_SYMBOLS.TCAP; + const [options, setOptions] = useState([ + { id: "0", name: "My Balance" }, + { id: "1", name: indexName.concat(" Summary") }, + { id: "2", name: "Vaults Summary" }, + ]); + let chains = [ + { id: NETWORKS.mainnet.chainId, name: "Mainnet" }, + { id: NETWORKS.arbitrum.chainId, name: "Arbitrum" }, + ]; + if (process.env.REACT_APP_NETWORK_ID !== "1") { + chains = [ + { id: NETWORKS.goerli.chainId, name: "Goerli" }, + { id: NETWORKS.arbitrum_goerli.chainId, name: "Arbitrum Goerli" }, + ]; + } + const [updatingChain, setUpdatingChain] = useState(false); + const [currentOption, setCurrentOption] = useState( + signerAddress !== "" ? options[0] : options[1] + ); + + const getDefaultChain = () => { + if (process.env.REACT_APP_NETWORK_ID === "1") { + if (signerChainId === NETWORKS.mainnet.chainId) { + return chains[0]; + } + if (signerChainId === NETWORKS.arbitrum.chainId) { + return chains[1]; + } + return chains[0]; + } + return chains[0]; + }; + + const [currentChain, setCurrentChain] = useState(getDefaultChain()); + const [currentEthProvider, setCurrentEthProvider] = useState(); + + useEffect(() => { + const loadProvider = async () => { + setUpdatingChain(true); + const provider = getDefaultProvider(currentChain.id); + const randomSigner = ethers.Wallet.createRandom().connect(provider); + const ethcallProvider = new Provider(randomSigner.provider); + await ethcallProvider.init(); + setCurrentEthProvider(ethcallProvider); + setUpdatingChain(false); + }; + loadProvider(); + }, [currentChain.id]); + + const handleOptionChange = (eventKey: string) => { + const o = options.find((option) => option.id === eventKey); + setCurrentOption(o || options[0]); + }; + + const handleChainChange = (eventKey: string) => { + const c = chains.find((chain) => chain.id.toString() === eventKey); + setUpdatingChain(true); + setCurrentChain(c || chains[0]); + + const ops = [...options]; + if (c) { + const indName = isArbitrum(c.id) ? TOKENS_SYMBOLS.JPEGz : TOKENS_SYMBOLS.TCAP; + ops[1].name = indName.concat(" Summary"); + } + if (currentOption.id === "1") { + const cOpt = currentOption; + cOpt.name = ops[1].name; + setCurrentOption(cOpt); + } + setOptions(ops); + }; + + return ( + + + handleOptionChange(eventKey || "0")}> + +
{currentOption.name}
+
+ + {signerAddress !== "" && ( + + {options[0].name} + + )} + + {options[1].name} + + + {options[2].name} + + +
+ handleChainChange(eventKey || "1")}> + +
{currentChain.name}
+
+ + {chains.map((item) => ( + + {item.name} + + ))} + +
+
+ + {!updatingChain && ( + + )} + +
+ ); +}; + +export default Summary; diff --git a/src/components/Summary/SummaryOptions.tsx b/src/components/Summary/SummaryOptions.tsx new file mode 100644 index 00000000..9a61ba95 --- /dev/null +++ b/src/components/Summary/SummaryOptions.tsx @@ -0,0 +1,72 @@ +import React from "react"; +import { Provider } from "ethers-multicall"; +import { ApolloProvider, ApolloClient, InMemoryCache } from "@apollo/client"; +import { Spinner } from "react-bootstrap/esm/"; +import { useBalances, usePrices2 } from "../../hooks"; +import Balance from "./Balance"; +import Indexes from "./Indexes"; +import Protocol from "./Protocol"; +import { getGraphqlEndPoint } from "../../utils/utils"; + +const clientOracle = (graphqlEndpoint: string) => + new ApolloClient({ + uri: graphqlEndpoint, + cache: new InMemoryCache(), + }); + +type props = { + signerAddress: string; + currentOption: string; + currentChainId: number; + ethCallProvider: Provider | undefined; +}; + +const SummaryOptions = ({ + signerAddress, + currentOption, + currentChainId, + ethCallProvider, +}: props) => { + const apolloClient = clientOracle(getGraphqlEndPoint(currentChainId)); + const [balances, loadingBalances] = useBalances(currentChainId, ethCallProvider, signerAddress); + const [prices, loadingPrices] = usePrices2(currentChainId, ethCallProvider); + + return ( + + {loadingBalances || loadingPrices ? ( +
+ +
+ ) : ( + <> + {currentOption === "0" && signerAddress !== "" && ( + + )} + {currentOption === "1" && ( + + )} + {currentOption === "2" && ( + + )} + + )} +
+ ); +}; + +export default SummaryOptions; diff --git a/src/components/Summary/index.tsx b/src/components/Summary/index.tsx new file mode 100644 index 00000000..65403044 --- /dev/null +++ b/src/components/Summary/index.tsx @@ -0,0 +1,127 @@ +import React, { useContext, useEffect, useState } from "react"; +import { Contract } from "ethers-multicall"; +import "../../styles/summary.scss"; +import cryptexJson from "../../contracts/cryptex.json"; +import UniV2Pair from "../../contracts/UniswapV2Pair.json"; +import { arbitrumContext, ethereumContext, signerContext } from "../../state"; +import { useArbitrum, useEthereum } from "../../hooks"; +import Features from "./Features"; +import Summary from "./Summary"; +import { NETWORKS } from "../../utils/constants"; + +const SummaryPage = () => { + const signer = useContext(signerContext); + const arbitrum = useArbitrum(); + const ethereum = useEthereum(); + const [loading, setLoading] = useState(true); + const [signerAddress, setSignerAddress] = useState(""); + const [signerChainId, setSignerChainId] = useState( + process.env.REACT_APP_NETWORK_ID === "1" ? NETWORKS.mainnet.chainId : NETWORKS.goerli.chainId + ); + + const setArbitrumContracts = () => { + let contracts; + if (process.env.REACT_APP_NETWORK_ID === "1") { + contracts = cryptexJson[42161].arbitrum.contracts; + } else { + contracts = cryptexJson[421613].arbitrum_goerli.contracts; + } + + const currentJpegzTokenRead = new Contract(contracts.JPEGZ.address, contracts.JPEGZ.abi); + arbitrum.setCurrentJpegzTokenRead(currentJpegzTokenRead); + const currentJpegzOracleRead = new Contract( + contracts.JPEGZOracle.address, + contracts.JPEGZOracle.abi + ); + arbitrum.setCurrentJpegzOracleRead(currentJpegzOracleRead); + const currentWethOracleRead = new Contract( + contracts.WETHOracle.address, + contracts.WETHOracle.abi + ); + arbitrum.setCurrentWethOracleRead(currentWethOracleRead); + const currentDaiOracleRead = new Contract(contracts.DAIOracle.address, contracts.DAIOracle.abi); + arbitrum.setCurrentDaiOracleRead(currentDaiOracleRead); + }; + + const setEthereumContracts = () => { + let contracts; + let ctxPoolAddress; + if (process.env.REACT_APP_NETWORK_ID === "1") { + contracts = cryptexJson[1].mainnet.contracts; + ctxPoolAddress = NETWORKS.mainnet.ctxPool; + } else { + contracts = cryptexJson[5].goerli.contracts; + } + + const currentTcapTokenRead = new Contract(contracts.TCAP.address, contracts.TCAP.abi); + ethereum.setCurrentTcapTokenRead(currentTcapTokenRead); + const currentCtxTokenRead = new Contract(contracts.Ctx.address, contracts.Ctx.abi); + ethereum.setCurrentCtxTokenRead(currentCtxTokenRead); + const currentTcapOracleRead = new Contract( + contracts.TCAPOracle.address, + contracts.TCAPOracle.abi + ); + ethereum.setCurrentTcapOracleRead(currentTcapOracleRead); + const currentWethOracleRead = new Contract( + contracts.WETHOracle.address, + contracts.WETHOracle.abi + ); + ethereum.setCurrentWethOracleRead(currentWethOracleRead); + const currentDaiOracleRead = new Contract(contracts.DAIOracle.address, contracts.DAIOracle.abi); + ethereum.setCurrentDaiOracleRead(currentDaiOracleRead); + const currentAaveOracleRead = new Contract( + contracts.AaveOracle.address, + contracts.AaveOracle.abi + ); + ethereum.setCurrentAaveOracleRead(currentAaveOracleRead); + const currentLinkOracleRead = new Contract( + contracts.LinkOracle.address, + contracts.LinkOracle.abi + ); + ethereum.setCurrentLinkOracleRead(currentLinkOracleRead); + const currentWbtcOracleRead = new Contract( + contracts.WBTCOracle.address, + contracts.WBTCOracle.abi + ); + ethereum.setCurrentWbtcOracleRead(currentWbtcOracleRead); + const currentUsdcOracleRead = new Contract( + contracts.USDCOracle.address, + contracts.USDCOracle.abi + ); + ethereum.setCurrentUsdcOracleRead(currentUsdcOracleRead); + + if (ctxPoolAddress) { + const currentCTXPoolTokenRead = new Contract(ctxPoolAddress, UniV2Pair.abi); + ethereum.setCurrentCtxPoolTokenRead(currentCTXPoolTokenRead); + } + }; + + useEffect(() => { + const load = async () => { + if (signer.signer) { + setSignerAddress(await signer.signer.getAddress()); + setSignerChainId(await signer.signer.getChainId()); + } + setArbitrumContracts(); + setEthereumContracts(); + setLoading(false); + }; + load(); + // eslint-disable-next-line + }, [signer.signer]); + + return ( +
+ + {!loading && ( + + + + + + )} +
+ ); +}; + +export default SummaryPage; diff --git a/src/components/Summary/warnings/VaultsWarning.tsx b/src/components/Summary/warnings/VaultsWarning.tsx new file mode 100644 index 00000000..3a4dfac5 --- /dev/null +++ b/src/components/Summary/warnings/VaultsWarning.tsx @@ -0,0 +1,128 @@ +import React, { useContext, useState } from "react"; +import { Button, Spinner } from "react-bootstrap/esm/"; +import { FaArrowRight } from "react-icons/fa"; +import { ethers } from "ethers"; +import { useHistory } from "react-router-dom"; +import { useQuery, gql } from "@apollo/client"; +import { useRatios } from "../../../hooks"; +import { OraclePricesType } from "../../../hooks/types"; +import { networkContext } from "../../../state"; +import { getCollateralPrice, getMinRatio } from "../../Vaults/common"; +import { getRatio2, isArbitrum, isUndefined } from "../../../utils/utils"; + +type props = { + ownerAddress: string; + prices: OraclePricesType; +}; + +export const VaultsWarning = ({ ownerAddress, prices }: props) => { + const history = useHistory(); + const ratios = useRatios(); + const currentNetwork = useContext(networkContext); + const [loadingVaults, setLoadingVaults] = useState(false); + const [liquidableVaults, setLiquidableVaults] = useState(0); + + const VAULTS = gql` + query ownerVaults($ownerAddress: String!) { + vaults(where: { owner: $ownerAddress, debt_gt: 0 }) { + id + vaultId + owner + collateral + debt + currentRatio + tokenSymbol + hardVault + blockTS + underlyingProtocol { + underlyingToken { + decimals + } + } + } + } + `; + + const isVaultLiquidable = ( + collateralWei: ethers.BigNumberish, + debtWei: ethers.BigNumberish, + symbol: string, + isHardVault: boolean, + decimals: number + ) => { + const collateralText = ethers.utils.formatUnits(collateralWei, decimals); + const debtText = ethers.utils.formatEther(debtWei); + const collateralPrice = getCollateralPrice(prices, symbol); + const minRatio = getMinRatio(ratios, symbol, isHardVault); + const indexPrice = !isArbitrum(currentNetwork.chainId) + ? prices.tcapOraclePrice + : prices.jpegzOraclePrice; + const ratio = getRatio2(collateralText, collateralPrice, debtText, indexPrice || "1"); + + return ratio < minRatio; + }; + + const loadVaults = async (vaultsData: any) => { + setLoadingVaults(true); + let liqVaults = 0; + // @ts-ignore + vaultsData.vaults.forEach((v) => { + const cVaultDecimals = v.underlyingProtocol.underlyingToken.decimals; + const isLiquidable = isVaultLiquidable( + v.collateral, + v.debt, + v.tokenSymbol, + v.hardVault, + cVaultDecimals + ); + if (isLiquidable) { + liqVaults += 1; + } + }); + setLiquidableVaults(liqVaults); + setLoadingVaults(false); + }; + + const { loading } = useQuery(VAULTS, { + fetchPolicy: "no-cache", + notifyOnNetworkStatusChange: true, + variables: { ownerAddress }, + // skip: skipQuery, + onError: (error) => { + console.log(error); + }, + onCompleted: (data: any) => { + if (!isUndefined(data)) { + loadVaults(data); + } + }, + }); + + if (loading || loadingVaults) { + return ( +
+ +
+ ); + } + + return ( + <> + {liquidableVaults > 0 && ( + + )} + + ); +}; diff --git a/src/components/Summary/warnings/index.tsx b/src/components/Summary/warnings/index.tsx new file mode 100644 index 00000000..fc890e13 --- /dev/null +++ b/src/components/Summary/warnings/index.tsx @@ -0,0 +1 @@ +export * from "./VaultsWarning"; diff --git a/src/components/Topbar.tsx b/src/components/Topbar.tsx index 8876d6ea..eb70992e 100644 --- a/src/components/Topbar.tsx +++ b/src/components/Topbar.tsx @@ -1,5 +1,7 @@ -import React from "react"; +import React, { useState } from "react"; import Nav from "react-bootstrap/esm/Nav"; +import { AiOutlineSetting } from "react-icons/ai"; +// import Davatar from "@davatar/react"; import "../styles/topbar.scss"; import { ReactComponent as Logo } from "../assets/images/logo.svg"; import { ReactComponent as MenuLogo } from "../assets/images/menu.svg"; @@ -16,6 +18,24 @@ const Topbar = ({ showSidebar, setShowSidebar, isMobile }: props) => { if (showSidebar) return "topbar slide-in"; return "topbar slide-out"; }; + const [showSettings, setShowSettings] = useState(false); + + /* const copyCodeToClipboard = (e: React.MouseEvent) => { + e.preventDefault(); + // Create new element + const el = document.createElement("textarea"); + // Set value (string to be copied) + el.value = "address"; + // Set non-editable to avoid focus and move outside of view + el.setAttribute("readonly", ""); + document.body.appendChild(el); + // Select text inside element + el.select(); + // Copy text to clipboard + document.execCommand("copy"); + // Remove temporary element + document.body.removeChild(el); + }; */ return ( <> @@ -26,7 +46,37 @@ const Topbar = ({ showSidebar, setShowSidebar, isMobile }: props) => { + + setShowSettings(!showSettings)} /> + + {/* showSettings && ( +
+
+ +
+ Click to Copy} + > + + 00000 + + +
+
+ +
+ ) */} ); }; diff --git a/src/components/Vault/Details.tsx b/src/components/Vault/Details.tsx deleted file mode 100644 index 74c8a305..00000000 --- a/src/components/Vault/Details.tsx +++ /dev/null @@ -1,1267 +0,0 @@ -import React, { useState, useEffect, useContext } from "react"; -import Button from "react-bootstrap/esm/Button"; -import Card from "react-bootstrap/esm/Card"; -import Form from "react-bootstrap/esm/Form"; -import InputGroup from "react-bootstrap/esm/InputGroup"; -import OverlayTrigger from "react-bootstrap/esm/OverlayTrigger"; -import Tooltip from "react-bootstrap/esm/Tooltip"; -import { Contract } from "ethers-multicall"; -import { ethers, BigNumber } from "ethers"; -import NumberFormat from "react-number-format"; -import { useRouteMatch, useHistory } from "react-router-dom"; -import { useQuery, gql, NetworkStatus } from "@apollo/client"; -import NetworkContext from "../../state/NetworkContext"; -import OraclesContext from "../../state/OraclesContext"; -import TokensContext from "../../state/TokensContext"; -import VaultsContext from "../../state/VaultsContext"; -import SignerContext from "../../state/SignerContext"; -import "../../styles/vault.scss"; -import { ReactComponent as ETHIconSmall } from "../../assets/images/vault/eth.svg"; -import { ReactComponent as DAIIconSmall } from "../../assets/images/vault/dai.svg"; -import { ReactComponent as AAVEIconSmall } from "../../assets/images/vault/aave.svg"; -import { ReactComponent as LINKIconSmall } from "../../assets/images/vault/chainlink.svg"; -import { ReactComponent as POLYGONIconSmall } from "../../assets/images/vault/polygon.svg"; -import { ReactComponent as ETHIcon } from "../../assets/images/graph/weth.svg"; -import { ReactComponent as DAIIcon } from "../../assets/images/graph/DAI.svg"; -import { ReactComponent as AAVEIcon } from "../../assets/images/graph/aave.svg"; -import { ReactComponent as LINKIcon } from "../../assets/images/graph/chainlink.svg"; -import { ReactComponent as POLYGONIcon } from "../../assets/images/graph/polygon3.svg"; -import { ReactComponent as RatioIcon } from "../../assets/images/vault/ratio.svg"; -import { ReactComponent as TcapIcon } from "../../assets/images/tcap-coin.svg"; -import { - notifyUser, - toUSD, - errorNotification, - getDefaultProvider, - isInLayer1, - getRatio, - getSafeRemoveCollateral, - getSafeMint, - isUndefined, -} from "../../utils/utils"; -import Loading from "../Loading"; -import { FEATURES, NETWORKS } from "../../utils/constants"; - -type props = { - address: string; -}; - -// TODO: Vault doesn't show if approve is 0 even if there is data in the vault - -const Details = ({ address }: props) => { - const currentNetwork = useContext(NetworkContext); - const oracles = useContext(OraclesContext); - const tokens = useContext(TokensContext); - const vaults = useContext(VaultsContext); - const signer = useContext(SignerContext); - - let currency = currentNetwork.chainId !== NETWORKS.polygon.chainId ? "ETH" : "MATIC"; - const match = useRouteMatch("/vault/:currency"); - const history = useHistory(); - // @ts-ignore - switch (match?.params?.currency?.toLowerCase()) { - case "eth": - currency = "ETH"; - break; - case "weth": - currency = "WETH"; - if (FEATURES.POLYGON && currentNetwork.chainId === NETWORKS.polygon.chainId) { - history?.push(`/vault/MATIC`); - currency = "MATIC"; - } - break; - case "dai": - currency = "DAI"; - break; - case "aave": - if (FEATURES.NEW_VAULTS && isInLayer1(currentNetwork.chainId)) { - currency = "AAVE"; - } else { - currency = "ETH"; - history?.push(`/vault/ETH`); - } - break; - case "link": - if (FEATURES.NEW_VAULTS && isInLayer1(currentNetwork.chainId)) { - currency = "LINK"; - } else { - currency = "ETH"; - history?.push(`/vault/ETH`); - } - break; - case "matic": - currency = "MATIC"; - if (!FEATURES.POLYGON && currentNetwork.chainId !== NETWORKS.polygon.chainId) { - history?.push(`/vault/ETH`); - currency = "ETH"; - } - break; - case "wbtc": - currency = "WETH"; - history?.push(`/vault/WETH`); - break; - default: - currency = - FEATURES.POLYGON && currentNetwork.chainId === NETWORKS.polygon.chainId ? "MATIC" : "ETH"; - break; - } - - // Actions - const [title, setTitle] = useState("Create Vault"); - const [text, setText] = useState( - "No vault Created. Please Create a Vault and approve your collateral to start minting TCAP tokens." - ); - const [isApproved, setIsApproved] = useState(false); - const [isLoading, setIsLoading] = useState(true); - - // Vault Data - const [selectedVaultId, setSelectedVaultId] = useState("0"); - const [vaultDebt, setVaultDebt] = useState("0"); - const [vaultDebtUSD, setVaultDebtUSD] = useState("0"); - const [vaultCollateral, setVaultCollateral] = useState("0"); - const [vaultCollateralUSD, setVaultCollateralUSD] = useState("0"); - const [vaultRatio, setVaultRatio] = useState("0"); - const [tempRatio, setTempRatio] = useState(""); - const [minRatio, setMinRatio] = useState("0"); - const [selectedVault, setSelectedVault] = useState(currency); - const [selectedVaultContract, setSelectedVaultContract] = useState(); - const [selectedVaultRead, setSelectedVaultRead] = useState(); - const [selectedOracleRead, setSelectedOracleRead] = useState(); - const [selectedCollateralContract, setSelectedCollateralContract] = useState(); - const [selectedVaultDecimals, setSelectedVaultDecimals] = useState(18); - - // General Data - const [tokenBalanceUSD, setTokenBalanceUSD] = useState("0"); - const [tokenBalance, setTokenBalance] = useState("0"); - const [tokenBalanceDecimals, setTokenBalanceDecimals] = useState(2); - - // Inputs - const [addCollateralTxt, setAddCollateralTxt] = useState(""); - const [addCollateralUSD, setAddCollateralUSD] = useState("0"); - const [removeCollateralTxt, setRemoveCollateralTxt] = useState(""); - const [removeCollateralUSD, setRemoveCollateralUSD] = useState("0"); - const [mintTxt, setMintTxt] = useState(""); - const [mintUSD, setMintUSD] = useState("0"); - const [burnTxt, setBurnTxt] = useState(""); - const [burnUSD, setBurnUSD] = useState("0"); - const [burnFee, setBurnFee] = useState("0"); - const [vaultStatus, setVaultStatus] = useState(""); - - // Infinite Approval - const approveValue = BigNumber.from("1157920892373161954235709850086879078532699"); - - const USER_VAULT = gql` - query getVault($owner: String!) { - vaults(where: { owner: $owner }) { - id - vaultId - owner - collateral - debt - address - owner - } - _meta { - block { - number - hash - } - hasIndexingErrors - } - } - `; - - const tcapPrice = async () => { - const currentTCAPPriceCall = await oracles.tcapOracleRead?.getLatestAnswer(); - - // @ts-ignore - const [currentTCAPPrice] = await signer.ethcallProvider?.all([currentTCAPPriceCall]); - return currentTCAPPrice; - }; - - const collateralPrice = async () => { - const collateralPriceCall = await selectedOracleRead?.getLatestAnswer(); - - // @ts-ignore - const [currentCollateralPrice] = await signer.ethcallProvider?.all([collateralPriceCall]); - return currentCollateralPrice; - }; - - const validVaults = (): boolean => { - let valid = - !isUndefined(oracles.wethOracle) && - !isUndefined(oracles.daiOracle) && - !isUndefined(oracles.tcapOracle) && - !isUndefined(oracles.wethOracleRead) && - !isUndefined(oracles.daiOracleRead) && - !isUndefined(vaults.wethVault) && - !isUndefined(vaults.daiVault) && - !isUndefined(tokens.wethTokenRead) && - !isUndefined(tokens.daiTokenRead); - - if ( - currentNetwork.chainId === NETWORKS.mainnet.chainId || - currentNetwork.chainId === NETWORKS.rinkeby.chainId - ) { - valid = - valid && - !isUndefined(oracles.aaveOracle) && - !isUndefined(oracles.linkOracle) && - !isUndefined(oracles.aaveOracleRead) && - !isUndefined(oracles.linkOracleRead) && - !isUndefined(vaults.aaveVault) && - !isUndefined(vaults.linkVault) && - !isUndefined(tokens.aaveToken) && - !isUndefined(tokens.linkToken) && - !isUndefined(tokens.aaveTokenRead) && - !isUndefined(tokens.linkTokenRead); - } - if (currentNetwork.chainId === NETWORKS.polygon.chainId) { - valid = - valid && - !isUndefined(oracles.maticOracle) && - !isUndefined(oracles.maticOracleRead) && - !isUndefined(vaults.maticVault) && - !isUndefined(vaults.maticVaultRead) && - !isUndefined(tokens.maticToken) && - !isUndefined(tokens.maticTokenRead); - } - - return valid; - }; - - const isGasAsset = () => - (currentNetwork.chainId !== NETWORKS.polygon.chainId && selectedVault === "ETH") || - (currentNetwork.chainId === NETWORKS.polygon.chainId && selectedVault === "MATIC"); - - async function loadVault(vaultType: string, vaultData: any) { - if (signer.signer && validVaults() && vaultData) { - let currentVault: any; - let currentVaultRead: any; - let currentToken; - let currentOracleRead; - let currentTokenRead; - let balance; - const provider = getDefaultProvider( - currentNetwork.chainId || NETWORKS.rinkeby.chainId, - NETWORKS.rinkeby.name - ); - switch (vaultType) { - case "ETH": { - currentVault = vaults.wethVault; - currentVaultRead = vaults.wethVaultRead; - currentToken = tokens.wethToken; - currentOracleRead = oracles.wethOracleRead; - currentTokenRead = tokens.wethTokenRead; - balance = await provider.getBalance(address); - break; - } - case "WETH": - currentVault = vaults.wethVault; - currentVaultRead = vaults.wethVaultRead; - currentToken = tokens.wethToken; - currentOracleRead = oracles.wethOracleRead; - currentTokenRead = tokens.wethTokenRead; - break; - case "DAI": - currentVault = vaults.daiVault; - currentVaultRead = vaults.daiVaultRead; - currentToken = tokens.daiToken; - currentOracleRead = oracles.daiOracleRead; - currentTokenRead = tokens.daiTokenRead; - break; - case "AAVE": - currentVault = vaults.aaveVault; - currentVaultRead = vaults.aaveVaultRead; - currentToken = tokens.aaveToken; - currentOracleRead = oracles.aaveOracleRead; - currentTokenRead = tokens.aaveTokenRead; - break; - case "LINK": - currentVault = vaults.linkVault; - currentVaultRead = vaults.linkVaultRead; - currentToken = tokens.linkToken; - currentOracleRead = oracles.linkOracleRead; - currentTokenRead = tokens.linkTokenRead; - break; - case "MATIC": - currentVault = vaults.maticVault; - currentVaultRead = vaults.maticVaultRead; - currentToken = tokens.maticToken; - currentOracleRead = oracles.maticOracleRead; - currentTokenRead = tokens.maticTokenRead; - balance = await provider.getBalance(address); - break; - default: - currentVault = vaults.wethVault; - currentVaultRead = vaults.wethVaultRead; - currentToken = tokens.wethToken; - currentOracleRead = oracles.wethOracleRead; - currentTokenRead = tokens.wethTokenRead; - break; - } - setSelectedVaultContract(currentVault); - setSelectedCollateralContract(currentToken); - setSelectedVaultRead(currentVaultRead); - setSelectedOracleRead(currentOracleRead); - - let currentVaultData: any; - // Removed GRAPH - // if data is empty load vault data from contract - const graphBlock = vaultData._meta.block.number; - let currentBlock = await provider.getBlockNumber(); - currentBlock -= 10; - if ( - (currentNetwork.chainId === NETWORKS.mainnet.chainId || - currentNetwork.chainId === NETWORKS.rinkeby.chainId) && - vaultData.vaults.length > 0 && - !vaultData._meta.hasIndexingErrors && - graphBlock >= currentBlock - ) { - await vaultData.vaults.forEach((v: any) => { - if (v.address.toLowerCase() === currentVault.address.toLowerCase()) { - currentVaultData = v; - } - }); - } else { - const vaultID = await currentVault.userToVault(address); - if (!vaultID.eq(0)) { - const vault = await currentVault.vaults(vaultID); - currentVaultData = { - vaultId: vaultID, - collateral: vault.Collateral, - debt: vault.Debt, - }; - } - } - - if (vaultType !== "ETH") { - // @ts-ignore - balance = await currentToken.balanceOf(address); - } - - let decimals; - let currentPrice; - - if (currentVaultData) { - const { vaultId, collateral, debt } = currentVaultData; - // @ts-ignore - const allowanceCall = await currentTokenRead.allowance(address, currentVault.address); - const currentRatioCall = await currentVaultRead.getVaultRatio(vaultId); - - // @ts-ignore - const currentTCAPPriceCall = await oracles.tcapOracleRead?.getLatestAnswer(); - // @ts-ignore - const decimalsCall = await currentTokenRead.decimals(); - // @ts-ignore - const currentPriceCall = await currentOracleRead.getLatestAnswer(); - const currentMinRatioCall = await currentVaultRead.ratio(); - - // @ts-ignore - const [ - allowance, - currentRatio, - currentTCAPPrice, - decimalsVal, - currentPriceVal, - currentMinRatio, - ] = await signer.ethcallProvider?.all([ - allowanceCall, - currentRatioCall, - currentTCAPPriceCall, - decimalsCall, - currentPriceCall, - currentMinRatioCall, - ]); - - decimals = decimalsVal; - currentPrice = ethers.utils.formatEther(currentPriceVal.mul(10000000000)); - setSelectedVaultId(vaultId); - - if (!allowance.isZero() || vaultType === "ETH") { - setMinRatio(currentMinRatio.toString()); - setIsApproved(true); - setVaultRatio(currentRatio.toString()); - if (currentRatio.toString() === "0") { - setVaultStatus("N/A"); - } else if (currentRatio.toString() >= parseFloat(currentMinRatio.toString()) + 50) { - setVaultStatus("safe"); - } else if (currentRatio.toString() >= parseFloat(currentMinRatio.toString()) + 30) { - setVaultStatus("warning"); - } else { - setVaultStatus("danger"); - } - - const parsedCollateral = ethers.utils.formatUnits(collateral, decimals); - - // const parsedCollateral = ethers.utils.formatEther(collateral); - setVaultCollateral(parsedCollateral); - const usdCollateral = toUSD(currentPrice, parsedCollateral); - setVaultCollateralUSD(usdCollateral.toString()); - - const currentTCAPPriceFormat = ethers.utils.formatEther(currentTCAPPrice); - const parsedDebt = ethers.utils.formatEther(debt); - setVaultDebt(parsedDebt); - const usdTCAP = toUSD(currentTCAPPriceFormat, parsedDebt); - setVaultDebtUSD(usdTCAP.toString()); - } else { - setText( - "Vault not approved. Please approve your collateral to start minting TCAP tokens." - ); - setTitle("Approve Vault"); - setIsApproved(false); - } - } else { - // @ts-ignore - const decimalsCall = await currentTokenRead.decimals(); - // @ts-ignore - const currentPriceCall = await currentOracleRead.getLatestAnswer(); - // @ts-ignore - const [decimalsVal, currentPriceVal] = await signer.ethcallProvider?.all([ - decimalsCall, - currentPriceCall, - ]); - decimals = decimalsVal; - currentPrice = ethers.utils.formatEther(currentPriceVal.mul(10000000000)); - - setSelectedVaultId("0"); - setText( - "No vault Created. Please Create a Vault and approve your collateral to start minting TCAP tokens." - ); - setTitle("Create Vault"); - setIsApproved(false); - } - - setSelectedVaultDecimals(decimals); - const currentBalance = ethers.utils.formatUnits(balance, decimals); - if (parseFloat(currentBalance) < 0.09) { - setTokenBalanceDecimals(4); - } else { - setTokenBalanceDecimals(2); - } - setTokenBalance(currentBalance); - - const usdBalance = toUSD(currentPrice, currentBalance); - setTokenBalanceUSD(usdBalance.toString()); - } - } - - const { data, error, refetch, networkStatus } = useQuery(USER_VAULT, { - variables: { owner: address }, - pollInterval: 200000, - fetchPolicy: "no-cache", - notifyOnNetworkStatusChange: true, - onError: () => { - console.log(error); - }, - onCompleted: () => { - loadVault(selectedVault, data); - }, - }); - - const refresh = async () => { - try { - if (currentNetwork.chainId !== NETWORKS.okovan.chainId) { - await refetch(); - } else { - loadVault(selectedVault, data); - } - } catch (error) { - console.log(error); - // catch error in case the vault screen is changed - } - }; - - const resetFields = () => { - setBurnFee("0"); - setAddCollateralUSD("0"); - setAddCollateralTxt(""); - setRemoveCollateralTxt(""); - setRemoveCollateralUSD("0"); - setMintTxt(""); - setMintUSD("0"); - setBurnUSD("0"); - setBurnTxt(""); - }; - - const changeVault = async (newRatio: number, reset = false) => { - let r = newRatio; - if (reset) { - r = parseFloat(tempRatio); - setVaultRatio(tempRatio); - setTempRatio(""); - resetFields(); - } else { - if (tempRatio === "") { - setTempRatio(vaultRatio); - } - r = newRatio; - setVaultRatio(r.toString()); - } - - if (r === 0) { - setVaultStatus("N/A"); - } else if (r >= parseFloat(minRatio) + 50) { - setVaultStatus("safe"); - } else if (r >= parseFloat(minRatio) + 30) { - setVaultStatus("warning"); - } else if (r >= parseFloat(minRatio)) { - setVaultStatus("danger"); - } else { - setVaultRatio("0"); - setVaultStatus("error"); - } - }; - - // forms - const onChangeAddCollateral = async (event: React.ChangeEvent) => { - setAddCollateralTxt(event.target.value); - if (event.target.value !== "") { - const currentPrice = ethers.utils.formatEther((await collateralPrice()).mul(10000000000)); - const currentTcapPrice = ethers.utils.formatEther(await tcapPrice()); - let usd = toUSD(currentPrice, event.target.value); - if (!usd) { - usd = 0; - } - const newCollateral = parseFloat(event.target.value) + parseFloat(vaultCollateral); - const r = await getRatio(newCollateral.toString(), currentPrice, vaultDebt, currentTcapPrice); - changeVault(r); - setAddCollateralUSD(usd.toString()); - } else { - changeVault(0, true); - setAddCollateralUSD("0"); - } - }; - - const onChangeRemoveCollateral = async (event: React.ChangeEvent) => { - setRemoveCollateralTxt(event.target.value); - if (event.target.value !== "") { - const currentPrice = ethers.utils.formatEther((await collateralPrice()).mul(10000000000)); - const currentTcapPrice = ethers.utils.formatEther(await tcapPrice()); - let usd = toUSD(currentPrice, event.target.value); - if (!usd) { - usd = 0; - } - const newCollateral = parseFloat(vaultCollateral) - parseFloat(event.target.value); - const r = await getRatio(newCollateral.toString(), currentPrice, vaultDebt, currentTcapPrice); - changeVault(r); - setRemoveCollateralUSD(usd.toString()); - } else { - changeVault(0, true); - setRemoveCollateralUSD("0"); - } - }; - - const onChangeMint = async (event: React.ChangeEvent) => { - setMintTxt(event.target.value); - if (event.target.value !== "") { - const currentPrice = ethers.utils.formatEther((await collateralPrice()).mul(10000000000)); - const currentTcapPrice = ethers.utils.formatEther(await tcapPrice()); - let usd = toUSD(currentTcapPrice, event.target.value); - if (!usd) { - usd = 0; - } - const newDebt = parseFloat(event.target.value) + parseFloat(vaultDebt); - const r = await getRatio(vaultCollateral, currentPrice, newDebt.toString(), currentTcapPrice); - changeVault(r); - setMintUSD(usd.toString()); - } else { - changeVault(0, true); - setMintUSD("0"); - } - }; - - const onChangeBurn = async (event: React.ChangeEvent) => { - try { - setBurnTxt(event.target.value); - if (event.target.value !== "") { - const currentPrice = ethers.utils.formatEther((await collateralPrice()).mul(10000000000)); - const currentTcapPrice = ethers.utils.formatEther(await tcapPrice()); - let usd = toUSD(currentTcapPrice, event.target.value); - if (!usd) { - usd = 0; - } - const newDebt = parseFloat(vaultDebt) - parseFloat(event.target.value); - const r = await getRatio( - vaultCollateral, - currentPrice, - newDebt.toString(), - currentTcapPrice - ); - changeVault(r); - setBurnUSD(usd.toString()); - const currentBurnFee = await selectedVaultContract?.getFee( - ethers.utils.parseEther(event.target.value) - ); - const increasedFee = currentBurnFee.add(currentBurnFee.div(100)).toString(); - const ethFee = ethers.utils.formatEther(increasedFee); - setBurnFee(ethFee.toString()); - } else { - changeVault(0, true); - setBurnUSD("0"); - setBurnFee("0"); - } - } catch (error) { - console.error(error); - changeVault(0, true); - setBurnUSD("0"); - setBurnFee("0"); - } - }; - - const addCollateral = async () => { - if (addCollateralTxt) { - // fix decimals - const amount = ethers.utils.parseUnits(addCollateralTxt, selectedVaultDecimals); - - // const amount = ethers.utils.parseEther(addCollateralTxt); - try { - if (isGasAsset()) { - let tx; - if (selectedVault === "ETH") { - tx = await selectedVaultContract?.addCollateralETH({ - value: amount, - }); - } else { - tx = await selectedVaultContract?.addCollateralMATIC({ - value: amount, - }); - } - notifyUser(tx, refresh); - } else { - const tx = await selectedVaultContract?.addCollateral(amount); - notifyUser(tx, refresh); - } - } catch (error) { - console.error(error); - if (error.code === 4001) { - errorNotification("Transaction rejected"); - } else { - errorNotification("Insufficient funds to stake"); - } - } - setAddCollateralTxt(""); - setAddCollateralUSD("0"); - } else { - errorNotification("Field can't be empty"); - } - }; - - const maxAddCollateral = async (e: React.MouseEvent) => { - e.preventDefault(); - let balance = "0"; - if (selectedVault === "ETH") { - const provider = getDefaultProvider(currentNetwork.chainId, currentNetwork.name); - balance = ethers.utils.formatEther(await provider.getBalance(address)); - } else if (selectedCollateralContract) { - const value = BigNumber.from(await selectedCollateralContract.balanceOf(address)); - console.log(value); - balance = ethers.utils.formatUnits(value, selectedVaultDecimals); - } - const currentPrice = ethers.utils.formatEther((await collateralPrice()).mul(10000000000)); - const currentTcapPrice = ethers.utils.formatEther(await tcapPrice()); - setAddCollateralTxt(balance); - let usd = toUSD(currentPrice, balance); - if (!usd) { - usd = 0; - } - const newCollateral = parseFloat(balance) + parseFloat(vaultCollateral); - const r = await getRatio(newCollateral.toString(), currentPrice, vaultDebt, currentTcapPrice); - changeVault(r); - setAddCollateralUSD(usd.toString()); - }; - - const removeCollateral = async () => { - if (removeCollateralTxt) { - const amount = ethers.utils.parseUnits(removeCollateralTxt, selectedVaultDecimals); - - try { - if (isGasAsset()) { - let tx; - if (selectedVault === "ETH") { - tx = await selectedVaultContract?.removeCollateralETH(amount); - } else { - tx = await selectedVaultContract?.removeCollateralMATIC(amount); - } - notifyUser(tx, refresh); - } else { - const tx = await selectedVaultContract?.removeCollateral(amount); - notifyUser(tx, refresh); - } - } catch (error) { - console.error(error); - if (error.code === 4001) { - errorNotification("Transaction rejected"); - } else { - errorNotification("Not enough collateral on vault"); - } - } - setRemoveCollateralTxt(""); - setRemoveCollateralUSD("0"); - } else { - errorNotification("Field can't be empty"); - } - }; - - const safeRemoveCollateral = async (e: React.MouseEvent) => { - e.preventDefault(); - const currentPrice = ethers.utils.formatEther((await collateralPrice()).mul(10000000000)); - const currentTcapPrice = ethers.utils.formatEther(await tcapPrice()); - const collateralToRemove = await getSafeRemoveCollateral( - minRatio, - vaultCollateral, - currentPrice, - currentTcapPrice, - vaultDebt - ); - setRemoveCollateralTxt(collateralToRemove.toString()); - let usd = toUSD(currentPrice, collateralToRemove.toString()); - if (!usd) { - usd = 0; - } - const newCollateral = parseFloat(vaultCollateral) - collateralToRemove; - const r = await getRatio(newCollateral.toString(), currentPrice, vaultDebt, currentTcapPrice); - changeVault(r); - setRemoveCollateralUSD(usd.toString()); - }; - - const mintTCAP = async () => { - if (mintTxt) { - try { - const amount = ethers.utils.parseEther(mintTxt); - const tx = await selectedVaultContract?.mint(amount); - notifyUser(tx, refresh); - } catch (error) { - console.error(error); - if (error.code === 4001) { - errorNotification("Transaction rejected"); - } else { - errorNotification("Not enough collateral on vault"); - } - } - setMintTxt(""); - setMintUSD("0"); - } else { - errorNotification("Field can't be empty"); - } - }; - - const safeMintTCAP = async (e: React.MouseEvent) => { - e.preventDefault(); - const currentPrice = ethers.utils.formatEther((await collateralPrice()).mul(10000000000)); - const currentTcapPrice = ethers.utils.formatEther(await tcapPrice()); - const safeMint = await getSafeMint( - minRatio, - vaultCollateral, - currentPrice, - currentTcapPrice, - vaultDebt - ); - setMintTxt(safeMint.toString()); - let usd = toUSD(currentTcapPrice, safeMint.toString()); - if (!usd) { - usd = 0; - } - const newDebt = safeMint + parseFloat(vaultDebt); - const r = await getRatio(vaultCollateral, currentPrice, newDebt.toString(), currentTcapPrice); - changeVault(r); - setMintUSD(usd.toString()); - }; - - const burnTCAP = async () => { - if (burnTxt) { - try { - const amount = ethers.utils.parseEther(burnTxt); - const currentBurnFee = await selectedVaultContract?.getFee(amount); - const increasedFee = currentBurnFee.add(currentBurnFee.div(100)).toString(); - const ethFee = ethers.utils.formatEther(increasedFee); - setBurnFee(ethFee.toString()); - const tx = await selectedVaultContract?.burn(amount, { value: increasedFee }); - notifyUser(tx, refresh); - } catch (error) { - console.error(error); - if (error.code === 4001) { - errorNotification("Transaction rejected"); - } else { - errorNotification("Burn value too high"); - } - } - setBurnTxt(""); - setBurnUSD("0"); - setBurnFee("0"); - } else { - errorNotification("Field can't be empty"); - } - }; - - const maxBurnTCAP = async (e: React.MouseEvent) => { - e.preventDefault(); - const currentPrice = ethers.utils.formatEther((await collateralPrice()).mul(10000000000)); - const currentTcapPrice = ethers.utils.formatEther(await tcapPrice()); - const currentBalanceCall = await tokens.tcapTokenRead?.balanceOf(address); - const currentVaultDebtCall = await selectedVaultRead?.vaults(selectedVaultId); - - // @ts-ignore - const [currentBalance, currentVault] = await signer.ethcallProvider?.all([ - currentBalanceCall, - currentVaultDebtCall, - ]); - - let balanceFormat = "0"; - let balance; - if (currentBalance.lt(currentVault.Debt)) { - balanceFormat = ethers.utils.formatEther(currentBalance); - balance = currentBalance; - } else { - balanceFormat = vaultDebt; - balance = currentVault.Debt; - } - setBurnTxt(balanceFormat); - let usd = toUSD(currentTcapPrice, balanceFormat); - if (!usd) { - usd = 0; - } - const newDebt = parseFloat(balanceFormat) - parseFloat(balanceFormat); - const r = await getRatio(vaultCollateral, currentPrice, newDebt.toString(), currentTcapPrice); - changeVault(r); - setBurnUSD(usd.toString()); - - if (balanceFormat !== "0") { - const currentBurnFee = await selectedVaultContract?.getFee(balance); - const increasedFee = currentBurnFee.add(currentBurnFee.div(100)).toString(); - const ethFee = ethers.utils.formatEther(increasedFee); - setBurnFee(ethFee.toString()); - } else { - setBurnFee("0"); - } - }; - - const action = async () => { - if (selectedVaultId === "0") { - const tx = await selectedVaultContract?.createVault(); - notifyUser(tx, refresh); - } else { - const amount = approveValue; - const tx = await selectedCollateralContract?.approve(selectedVaultContract?.address, amount); - notifyUser(tx, refresh); - } - }; - - const onChangeVault = async (event: React.ChangeEvent) => { - setIsApproved(false); - setTokenBalance("0"); - setTokenBalanceUSD("0"); - setSelectedVault(event.target.value); - // Clean form - setAddCollateralTxt(""); - setAddCollateralUSD("0"); - setRemoveCollateralTxt(""); - setRemoveCollateralUSD("0"); - setMintTxt(""); - setMintUSD("0"); - setBurnTxt(""); - setBurnUSD("0"); - setBurnFee("0"); - // Load values - history?.push(`/vault/${event.target.value}`); - await refetch(); - }; - - useEffect(() => { - async function load() { - // TODO : if stuck at pending do something - if (networkStatus === NetworkStatus.ready || networkStatus === NetworkStatus.error) { - setIsLoading(false); - } - } - load(); - // eslint-disable-next-line - }, [address, data]); - - if (isLoading) { - return ( -
- -
- ); - } - - return ( - <> -

Select your Collateral

-
- {(() => { - switch (selectedVault) { - case "DAI": - return ; - case "AAVE": - return ; - case "LINK": - return ; - case "MATIC": - return ; - default: - return ; - } - })()} - -
- - {currentNetwork.chainId === NETWORKS.polygon.chainId && } - - - - {FEATURES.NEW_VAULTS && isInLayer1(currentNetwork.chainId) && ( - <> - - - - )} - -

- {" "} - {selectedVault} /{" "} - -

-
-
- {isApproved ? ( - <> -
-
- - {(() => { - switch (selectedVault) { - case "DAI": - return ; - case "AAVE": - return ; - case "LINK": - return ; - case "MATIC": - return ; - default: - return ; - } - })()} -
-

{selectedVault} Balance

-
-
- {(() => { - switch (selectedVault) { - case "DAI": - return ; - case "AAVE": - return ; - case "LINK": - return ; - case "MATIC": - return ; - default: - return ; - } - })()} -

- -

-
-

- 1000 ? 0 : 2} - /> -

-
-
-
- - -
-

Vault Ratio

{" "} - - Ratio must be {`>`} {minRatio}% or you will be liquidated - - } - > - - -
-
-

- -

-
-

{vaultStatus.toUpperCase()}

-
-
-
-
-
- -
-

Staked Collateral

-
-
- {(() => { - switch (selectedVault) { - case "DAI": - return ; - case "AAVE": - return ; - case "LINK": - return ; - case "MATIC": - return ; - default: - return ; - } - })()} -

- -

-
-

- 1000 ? 0 : 2} - /> -

-
-
-
- - Add Collateral - - - MAX - - - - - - - - - - - - - - Remove Collateral - - - MAX SAFE - - - - - - - - - - - - -
-
-
-
- -
-

Vault Debt

-
-
- -

- -

-
-

- 1000 ? 0 : 2} - /> -

-
-
-
- - Mint TCAP - - - MAX SAFE - - - - - - - - - - - - - - Burn TCAP - - - MAX - - - - - - - - - - - - - Burn Fee:{" "} - {" "} - {currentNetwork.chainId === NETWORKS.polygon.chainId ? "MATIC" : "ETH"} - - -
-
-
-
- - ) : ( -
-
{title}
-

{text}

- -
- )} - - ); -}; - -export default Details; diff --git a/src/components/Vault/Vault.tsx b/src/components/Vault/Vault.tsx deleted file mode 100644 index 62291da1..00000000 --- a/src/components/Vault/Vault.tsx +++ /dev/null @@ -1,64 +0,0 @@ -import React, { useState, useEffect, useContext } from "react"; -import Button from "react-bootstrap/esm/Button"; -import { Web3ModalContext } from "../../state/Web3ModalContext"; -import SignerContext from "../../state/SignerContext"; -import "../../styles/vault.scss"; - -import Loading from "../Loading"; -import Details from "./Details"; - -const Vault = () => { - const web3Modal = useContext(Web3ModalContext); - const signer = useContext(SignerContext); - - // State - const [isLoading, setIsLoading] = useState(true); - const [address, setAddress] = useState(""); - - useEffect(() => { - async function load() { - if (!signer.signer) { - setIsLoading(false); - } else if (signer.signer) { - const currentAddress = await signer.signer.getAddress(); - setAddress(currentAddress); - setIsLoading(false); - } - } - load(); - // eslint-disable-next-line - }, [signer.signer, address]); - - if (isLoading) { - return ; - } - - return ( -
-
-

The Vault

- {!signer.signer ? ( -
-
Connect Wallet
-

- No wallet connected. Please Connect your wallet to Create a Vault and approve your - collateral to start minting TCAP tokens. -

- -
- ) : ( -
- )} -
-
- ); -}; - -export default Vault; diff --git a/src/components/Vaults/common.tsx b/src/components/Vaults/common.tsx new file mode 100644 index 00000000..071f5f07 --- /dev/null +++ b/src/components/Vaults/common.tsx @@ -0,0 +1,263 @@ +import React from "react"; +import { Image } from "react-bootstrap/esm"; +import { TOKENS_SYMBOLS } from "../../utils/constants"; +import { VaultsRatioType, VaultsType } from "./types"; +import { OraclePricesType } from "../../hooks/types"; +import { ReactComponent as WETHIcon } from "../../assets/images/graph/weth.svg"; +import { ReactComponent as DAIIcon } from "../../assets/images/graph/DAI.svg"; +import { ReactComponent as AAVEIcon } from "../../assets/images/graph/aave.svg"; +import { ReactComponent as LINKIcon } from "../../assets/images/graph/chainlink.svg"; +import { ReactComponent as UNIIcon } from "../../assets/images/graph/uni.svg"; +import { ReactComponent as SNXIcon } from "../../assets/images/graph/snx.svg"; +import { ReactComponent as MATICIcon } from "../../assets/images/graph/polygon.svg"; +import { ReactComponent as USDCIcon } from "../../assets/images/graph/usdc.svg"; +import { ReactComponent as WBTCIcon } from "../../assets/images/graph/wbtc.svg"; +import { ReactComponent as WETHIconSmall } from "../../assets/images/vault/eth.svg"; +import { ReactComponent as DAIIconSmall } from "../../assets/images/vault/dai.svg"; +import { ReactComponent as AAVEIconSmall } from "../../assets/images/vault/aave.svg"; +import { ReactComponent as LINKIconSmall } from "../../assets/images/vault/chainlink.svg"; +import { ReactComponent as UNIIconSmall } from "../../assets/images/vault/uni.svg"; +import { ReactComponent as SNXIconSmall } from "../../assets/images/vault/snx2.svg"; +import { ReactComponent as MATICIconSmall } from "../../assets/images/vault/polygon.svg"; +import { ReactComponent as WBTCIconSmall } from "../../assets/images/vault/bitcoin.svg"; +import { ReactComponent as USDCIconSmall } from "../../assets/images/vault/usdc.svg"; +import { ReactComponent as TCAPIcon } from "../../assets/images/tcap-coin.svg"; +import jpegzIcon from "../../assets/images/jpegz-coin.png"; + +type iconProps = { + name: string; +}; + +export const MAINNET_COLLATERALS = [ + TOKENS_SYMBOLS.ETH, + TOKENS_SYMBOLS.WETH, + TOKENS_SYMBOLS.DAI, + TOKENS_SYMBOLS.AAVE, + TOKENS_SYMBOLS.LINK, +]; + +export const MAINNET_HARD_COLLATERALS = [ + TOKENS_SYMBOLS.ETH, + TOKENS_SYMBOLS.WETH, + TOKENS_SYMBOLS.DAI, + TOKENS_SYMBOLS.USDC, + TOKENS_SYMBOLS.WBTC, +]; + +export const ARBITRUM_COLLATERALS = [TOKENS_SYMBOLS.ETH, TOKENS_SYMBOLS.WETH, TOKENS_SYMBOLS.DAI]; + +export const OPTIMISM_COLLATERALS = [ + TOKENS_SYMBOLS.ETH, + TOKENS_SYMBOLS.DAI, + TOKENS_SYMBOLS.LINK, + TOKENS_SYMBOLS.UNI, + TOKENS_SYMBOLS.SNX, +]; + +export const KEYWORD_ALL = "all"; + +export const getMinRatio = (ratios: VaultsRatioType, symbol: string, isHardVault: boolean) => { + let minRatio = 200; + switch (symbol) { + case TOKENS_SYMBOLS.ETH: + minRatio = isHardVault ? ratios.hardEthRatio : ratios.ethRatio; + break; + case TOKENS_SYMBOLS.WETH: + minRatio = isHardVault ? ratios.hardWethRatio : ratios.ethRatio; + break; + case TOKENS_SYMBOLS.DAI: + minRatio = isHardVault ? ratios.hardDaiRatio : ratios.daiRatio; + break; + case TOKENS_SYMBOLS.AAVE: + minRatio = ratios.aaveRatio; + break; + case TOKENS_SYMBOLS.LINK: + minRatio = ratios.linkRatio; + break; + case TOKENS_SYMBOLS.UNI: + minRatio = ratios.uniRatio; + break; + case TOKENS_SYMBOLS.SNX: + minRatio = ratios.snxRatio; + break; + case TOKENS_SYMBOLS.MATIC: + minRatio = ratios.maticRatio; + break; + case TOKENS_SYMBOLS.WBTC: + minRatio = ratios.wbtcRatio; + break; + case TOKENS_SYMBOLS.USDC: + minRatio = ratios.hardUsdcRatio; + break; + default: + break; + } + + return minRatio; +}; + +export const getCollateralPrice = (prices: OraclePricesType, symbol: string) => { + let price = "0"; + switch (symbol) { + case TOKENS_SYMBOLS.ETH: + price = prices.wethOraclePrice; + break; + case TOKENS_SYMBOLS.WETH: + price = prices.wethOraclePrice; + break; + case TOKENS_SYMBOLS.DAI: + price = prices.daiOraclePrice; + break; + case TOKENS_SYMBOLS.AAVE: + price = prices.aaveOraclePrice; + break; + case TOKENS_SYMBOLS.LINK: + price = prices.linkOraclePrice; + break; + case TOKENS_SYMBOLS.UNI: + price = prices.uniOraclePrice; + break; + case TOKENS_SYMBOLS.SNX: + price = prices.snxOraclePrice; + break; + case TOKENS_SYMBOLS.MATIC: + price = prices.maticOraclePrice; + break; + case TOKENS_SYMBOLS.WBTC: + price = prices.wbtcOraclePrice; + break; + case TOKENS_SYMBOLS.USDC: + price = prices.usdcOraclePrice; + break; + default: + break; + } + return price; +}; + +export const VAULT_STATUS = { + empty: "empty", + ready: "ready", + active: "active", + liquidation: "liquidation", +}; + +export const capitalize = (str: string) => str.charAt(0).toUpperCase() + str.slice(1); + +export const TokenIcon = ({ name }: iconProps) => { + switch (name.toUpperCase()) { + case TOKENS_SYMBOLS.AAVE: + return ; + case TOKENS_SYMBOLS.DAI: + return ; + case TOKENS_SYMBOLS.ETH: + return ; + case TOKENS_SYMBOLS.JPEGz.toUpperCase(): + return JPEGz icon; + case TOKENS_SYMBOLS.LINK: + return ; + case TOKENS_SYMBOLS.MATIC: + return ; + case TOKENS_SYMBOLS.SNX: + return ; + case TOKENS_SYMBOLS.TCAP: + return ; + case TOKENS_SYMBOLS.UNI: + return ; + case TOKENS_SYMBOLS.USDC: + return ; + case TOKENS_SYMBOLS.WBTC: + return ; + case TOKENS_SYMBOLS.WETH: + return ; + default: + return <>; + } +}; + +export const TokenIconSmall = ({ name }: iconProps) => { + switch (name.toUpperCase()) { + case TOKENS_SYMBOLS.AAVE: + return ; + case TOKENS_SYMBOLS.DAI: + return ; + case TOKENS_SYMBOLS.ETH: + return ; + case TOKENS_SYMBOLS.JPEGz.toUpperCase(): + return JPEGz icon; + case TOKENS_SYMBOLS.LINK: + return ; + case TOKENS_SYMBOLS.MATIC: + return ; + case TOKENS_SYMBOLS.SNX: + return ; + case TOKENS_SYMBOLS.TCAP: + return ; + case TOKENS_SYMBOLS.UNI: + return ; + case TOKENS_SYMBOLS.USDC: + return ; + case TOKENS_SYMBOLS.WBTC: + return ; + case TOKENS_SYMBOLS.WETH: + return ; + default: + return <>; + } +}; + +export const findNewMainnetVaultCollateral = (collaterals: Array): [string, boolean] => { + let diff = MAINNET_HARD_COLLATERALS.filter((x) => !collaterals.includes(x)); + let isHardVault = true; + if (diff.length === 0) { + diff = MAINNET_COLLATERALS.filter((x) => !collaterals.includes(x)); + if (diff.length === 0) { + return ["ETH", isHardVault]; + } + isHardVault = false; + } + return [diff[0], isHardVault]; +}; + +export const findNewOptimismVaultCollateral = (collaterals: Array): string => { + const diff = OPTIMISM_COLLATERALS.filter((x) => !collaterals.includes(x)); + if (diff.length === 0) { + return "ETH"; + } + return diff[0]; +}; + +export const findNewArbitrumVaultCollateral = (collaterals: Array): string => { + const diff = ARBITRUM_COLLATERALS.filter((x) => !collaterals.includes(x)); + if (diff.length === 0) { + return "ETH"; + } + + return diff[0]; +}; + +export const sortCollateralAsc = (a: VaultsType, b: VaultsType) => + parseFloat(a.collateralValue) - parseFloat(b.collateralValue); + +export const sortCollateralDesc = (a: VaultsType, b: VaultsType) => + parseFloat(b.collateralValue) - parseFloat(a.collateralValue); + +export const sortCollateralUsdAsc = (a: VaultsType, b: VaultsType) => + parseFloat(a.collateralUsd) - parseFloat(b.collateralUsd); + +export const sortCollateralUsdDesc = (a: VaultsType, b: VaultsType) => + parseFloat(b.collateralUsd) - parseFloat(a.collateralUsd); + +export const sortDebtAsc = (a: VaultsType, b: VaultsType) => + parseFloat(a.collateralValue) - parseFloat(b.collateralValue); + +export const sortDebtDesc = (a: VaultsType, b: VaultsType) => + parseFloat(b.debt) - parseFloat(a.debt); + +export const sortRatioAsc = (a: VaultsType, b: VaultsType) => a.ratio - b.ratio; + +export const sortRatioDesc = (a: VaultsType, b: VaultsType) => b.ratio - a.ratio; + +export const sortRewardAsc = (a: VaultsType, b: VaultsType) => a.netReward - b.netReward; + +export const sortRewardDesc = (a: VaultsType, b: VaultsType) => b.netReward - a.netReward; diff --git a/src/components/Vaults/index.tsx b/src/components/Vaults/index.tsx new file mode 100644 index 00000000..f4687282 --- /dev/null +++ b/src/components/Vaults/index.tsx @@ -0,0 +1,70 @@ +import React, { useContext, useEffect, useState } from "react"; +import { useWeb3ModalAccount } from "@web3modal/ethers5/react"; +import Monitoring from "./monitoring/index"; +import MonitoringArb from "./monitoring/index2"; +import Vault from "./vault/index"; +import { signerContext, networkContext } from "../../state"; +import { VaultToUpdateType } from "./types"; +import { isArbitrum } from "../../utils/utils"; + + +const Vaults = () => { + const { address: userAccount } = useWeb3ModalAccount() + const signer = useContext(signerContext); + const currentNetwork = useContext(networkContext); + const [currentAddress, setCurrentAddress] = useState(""); + const [isMinting, setMinting] = useState(false); + const [currrentVault, setCurrentVault] = useState({ + vaultId: "0", + assetSymbol: "", + collateralSymbol: "", + isHardVault: true, + }); + + const setVaultToUpdate = (vaultToUpdate: VaultToUpdateType) => { + setCurrentVault({ + vaultId: vaultToUpdate.vaultId, + assetSymbol: vaultToUpdate.assetSymbol, + collateralSymbol: vaultToUpdate.collateralSymbol, + isHardVault: vaultToUpdate.isHardVault, + }); + setMinting(true); + }; + + useEffect( + () => { + const load = async () => { + if (signer && signer.signer && userAccount) { + setCurrentAddress(userAccount?.toString()); + } + }; + load(); + }, + // eslint-disable-next-line + [signer.signer, userAccount] + ); + + if (isMinting) { + return ( + <> + setMinting(false)} + /> + + ); + } + + return ( + <> + {!isArbitrum(currentNetwork.chainId) ? ( + + ) : ( + + )} + + ); +}; + +export default Vaults; diff --git a/src/components/Vaults/monitoring/GraphqlQueries.tsx b/src/components/Vaults/monitoring/GraphqlQueries.tsx new file mode 100644 index 00000000..cffb66c5 --- /dev/null +++ b/src/components/Vaults/monitoring/GraphqlQueries.tsx @@ -0,0 +1,177 @@ +import { gql } from "@apollo/client"; + +export const VAULTS_ALL = gql` + query AllVaults($lastBlockTS: String!) { + vaults(first: 1000, orderBy: blockTS, where: { blockTS_gt: $lastBlockTS }) { + id + vaultId + owner + collateral + debt + currentRatio + tokenSymbol + status + hardVault + blockTS + underlyingProtocol { + underlyingToken { + decimals + } + } + } + } +`; + +export const VAULTS_BY_USER = gql` + query MyVaults($ownerAddress: String!) { + vaults(where: { owner: $ownerAddress }) { + id + vaultId + owner + collateral + debt + currentRatio + tokenSymbol + status + hardVault + blockTS + underlyingProtocol { + underlyingToken { + decimals + } + } + } + } +`; + +export const VAULTS_BY_COLLATERAL = gql` + query VAULTS_BY_COLLATERAL($lastBlockTS: String!, $symbol: String!) { + vaults( + first: 1000 + orderBy: blockTS + where: { blockTS_gt: $lastBlockTS, tokenSymbol: $symbol } + ) { + id + vaultId + owner + collateral + debt + currentRatio + tokenSymbol + status + hardVault + blockTS + underlyingProtocol { + underlyingToken { + decimals + } + } + } + } +`; + +export const VAULTS_BY_STATUS = gql` + query VAULTS_BY_STATUS($lastBlockTS: String!, $status: String!) { + vaults(first: 1000, orderBy: blockTS, where: { blockTS_gt: $lastBlockTS, status: $status }) { + id + vaultId + owner + collateral + debt + currentRatio + tokenSymbol + status + hardVault + blockTS + underlyingProtocol { + underlyingToken { + decimals + } + } + } + } +`; + +export const VAULTS_BY_TOKEN_STATUS = gql` + query VAULTS_BY_TS($lastBlockTS: String!, $symbol: String!, $status: String!) { + vaults( + first: 1000 + orderBy: blockTS + where: { blockTS_gt: $lastBlockTS, tokenSymbol: $symbol, status: $status } + ) { + id + vaultId + owner + collateral + debt + currentRatio + tokenSymbol + hardVault + blockTS + underlyingProtocol { + underlyingToken { + decimals + } + } + } + } +`; + +export const VAULTS_IN_LIQ = gql` + query VAULTS_IN_LIQ($lastBlockTS: String!) { + vaults( + first: 1000 + orderBy: blockTS + orderDirection: asc + where: { blockTS_gt: $lastBlockTS, status: "active", debt_gt: 1000000000000000 } + ) { + id + vaultId + owner + collateral + debt + currentRatio + tokenSymbol + status + hardVault + blockTS + underlyingProtocol { + underlyingToken { + decimals + } + } + } + } +`; + +export const VAULTS_IN_LIQ_BY_TOKEN = gql` + query VAULTS_IN_LIQ_BY_TOKEN($lastBlockTS: String!, $symbol: String!) { + vaults( + first: 1000 + orderBy: blockTS + orderDirection: asc + where: { + blockTS_gt: $lastBlockTS + tokenSymbol: $symbol + status: "active" + debt_gt: 1000000000000000 + } + ) { + id + vaultId + owner + collateral + debt + currentRatio + tokenSymbol + status + hardVault + blockTS + underlyingProtocol { + underlyingToken { + decimals + } + } + } + } +`; diff --git a/src/components/Vaults/monitoring/Liquidate.tsx b/src/components/Vaults/monitoring/Liquidate.tsx new file mode 100644 index 00000000..38d90f38 --- /dev/null +++ b/src/components/Vaults/monitoring/Liquidate.tsx @@ -0,0 +1,405 @@ +import React, { useContext, useEffect, useState } from "react"; +import { Button, Form } from "react-bootstrap"; +import Table from "react-bootstrap/Table"; +import { ethers, BigNumber } from "ethers"; +import InputGroup from "react-bootstrap/esm/InputGroup"; +import Modal from "react-bootstrap/esm/Modal"; +import NumberFormat from "react-number-format"; +import OverlayTrigger from "react-bootstrap/esm/OverlayTrigger"; +import Tooltip from "react-bootstrap/esm/Tooltip"; +import { useMediaQuery } from "react-responsive"; +import { useTranslation } from "react-i18next"; +import "../../../styles/modal.scss"; +import { networkContext, oraclesContext, signerContext } from "../../../state"; +import { VaultsType } from "../types"; +import { useVault } from "../../../hooks"; +import { TOKENS_SYMBOLS } from "../../../utils/constants"; +import { + errorNotification, + isArbitrum, + isPolygon, + notifyUser, + numberFormatStr, + toUSD, +} from "../../../utils/utils"; + +type props = { + show: boolean; + currentAddress: string; + liqVault: VaultsType | null; + onHide: () => void; + refresh: (collateral: ethers.BigNumberish, debt: ethers.BigNumberish) => void; +}; + +const Liquidate = ({ show, currentAddress, liqVault, onHide, refresh }: props) => { + const { t } = useTranslation(); + const isMobile = useMediaQuery({ query: "(max-width: 850px)" }); + const currentNetwork = useContext(networkContext); + const signer = useContext(signerContext); + const oracles = useContext(oraclesContext); + const indexName = isArbitrum(currentNetwork.chainId) ? TOKENS_SYMBOLS.JPEGz : TOKENS_SYMBOLS.TCAP; + const [ + { + currentVault, + currentAssetRead, + currentVaultRead, + currentCollateralOracleRead, + currentAssetOracleRead, + }, + ] = useVault( + indexName, + liqVault ? liqVault?.collateralSymbol : TOKENS_SYMBOLS.WETH, + liqVault ? liqVault.isHardVault : true + ); + + const [indexBalance, setIndexBalance] = useState("0"); + const [indexPrice, setIndexPrice] = useState("0"); + const [requiredIndex, setRequiredIndex] = useState("0"); + const [maxIndex, setMaxIndex] = useState("0"); + const [maxIndexUSD, setMaxIndexUSD] = useState("0"); + const [reward, setReward] = useState("0"); + const [rewardUSD, setRewardUSD] = useState("0"); + const [burnFee, setBurnFee] = useState("0"); + const [burnFeeUsd, setBurnFeeUsd] = useState("0"); + const [canLiquidate, setCanLiquidate] = useState(true); + const [valuesUpdated, setValuesUpdated] = useState(false); + + useEffect(() => { + async function load() { + if ( + currentAddress !== "" && + liqVault !== null && + currentAssetOracleRead !== null && + currentVault !== null + ) { + if (liqVault.id !== "") { + try { + const assetBalanceCall = await currentAssetRead?.balanceOf(currentAddress); + const assetPriceCall = await currentAssetOracleRead?.getLatestAnswer(); + const reqTcapCall = await currentVaultRead?.requiredLiquidationTCAP( + BigNumber.from(liqVault.id) + ); + const liqRewardCall = await currentVaultRead?.liquidationReward( + BigNumber.from(liqVault.id) + ); + const oraclePriceCall = await currentCollateralOracleRead?.getLatestAnswer(); + const ethOraclePriceCall = await oracles.wethOracleRead?.getLatestAnswer(); + + // @ts-ignore + const [balance, assetOraclePrice, reqTcap, liqReward, collateralPrice, ethPrice] = + await signer.ethcallProvider?.all([ + assetBalanceCall, + assetPriceCall, + reqTcapCall, + liqRewardCall, + oraclePriceCall, + ethOraclePriceCall, + ]); + const assetBalanceText = ethers.utils.formatEther(balance); + const assetPriceText = ethers.utils.formatEther(assetOraclePrice); + const reqIndexText = ethers.utils.formatEther(reqTcap); + const liqRewardText = ethers.utils.formatUnits(liqReward, liqVault.decimals); + const priceText = ethers.utils.formatEther(collateralPrice.mul(10000000000)); + const ethPriceText = ethers.utils.formatEther(ethPrice.mul(10000000000)); + let currentLiqFee; + if (isArbitrum(currentNetwork.chainId)) { + currentLiqFee = await currentVault?.getBurnFee(reqTcap); + } else { + currentLiqFee = await currentVault?.getFee(reqTcap); + } + + const increasedFee = currentLiqFee.add(currentLiqFee.div(100)).toString(); + const ethFee = ethers.utils.formatEther(increasedFee); + + setIndexBalance(assetBalanceText); + setIndexPrice(assetPriceText); + setRequiredIndex(reqIndexText); + setMaxIndex(reqIndexText); + setMaxIndexUSD(toUSD(reqIndexText, assetPriceText).toFixed(2)); + setReward(liqRewardText); + setRewardUSD(toUSD(liqRewardText, priceText).toFixed(2)); + setBurnFee(ethFee); + setBurnFeeUsd(toUSD(ethFee, ethPriceText).toFixed(2)); + setValuesUpdated(!valuesUpdated); + } catch (error: any) { + // Error happens when trying to calculate reward on a not liquidable vault + if (error.code !== "UNPREDICTABLE_GAS_LIMIT") { + console.log(error); + } + } + } + } + } + load(); + // eslint-disable-next-line + }, [currentAddress, liqVault, currentVaultRead, currentAssetOracleRead]); + + const onChangeMaxTcap = (event: React.ChangeEvent) => { + setMaxIndex(event.target.value); + setMaxIndexUSD(toUSD(event.target.value, indexPrice).toFixed(2)); + }; + + const minIndex = async (e: React.MouseEvent) => { + e.preventDefault(); + setMaxIndex(requiredIndex); + setMaxIndexUSD(toUSD(requiredIndex, indexPrice).toFixed(2)); + }; + + const loadVaultData = async () => { + if (liqVault) { + const [, collateral, , debt] = await currentVault?.getVault(BigNumber.from(liqVault.id)); + refresh(collateral, debt); + } + }; + + const liquidate = async (event: React.MouseEvent) => { + event.preventDefault(); + if (currentAddress && liqVault !== null && canLiquidate && currentVault) { + setCanLiquidate(false); + const maxAmountIndex = parseFloat(maxIndex); + if (maxIndex && maxAmountIndex > 0) { + if (maxAmountIndex >= parseFloat(requiredIndex)) { + if (maxAmountIndex <= parseFloat(indexBalance)) { + try { + let currentLiqFee; + if (isArbitrum(currentNetwork.chainId)) { + currentLiqFee = await currentVault?.getBurnFee( + ethers.utils.parseEther(requiredIndex) + ); + } else { + currentLiqFee = await currentVault?.getFee(ethers.utils.parseEther(requiredIndex)); + } + const increasedFee = currentLiqFee.add(currentLiqFee.div(100)).toString(); + const ethFee = ethers.utils.formatEther(increasedFee); + setBurnFee(ethFee); + const tx = await currentVault.liquidateVault( + BigNumber.from(liqVault.id), + ethers.utils.parseEther(maxIndex), + { value: increasedFee } + ); + notifyUser(tx, loadVaultData); + await loadVaultData(); + setMaxIndex(""); + onHide(); + } catch (error: any) { + errorNotification("Burn fee less than required."); + } + } else { + errorNotification(t("errors.no-tcap")); + } + } else { + errorNotification(t("errors.less-tcap")); + } + } else { + errorNotification(t("errors.empty")); + } + setCanLiquidate(true); + } + }; + + const netReward = parseFloat(rewardUSD) - parseFloat(maxIndexUSD) - parseFloat(burnFeeUsd); + + const getTokeSymbol = () => { + if (liqVault !== null) { + if (liqVault.collateralSymbol === TOKENS_SYMBOLS.WETH) { + return TOKENS_SYMBOLS.ETH; + } + return liqVault.collateralSymbol; + } + return ""; + }; + + const rewardHelp = () => ( + + <>{t("monitoring.reward-info")} + + ); + + const tcapAmountHelp = () => ( + + <>{t("monitoring.tcap-amount-info", { indexName })} + + ); + + const netRewardHelp = () => ( + + <> + {t("monitoring.net-reward-info1")}:
+ {t("monitoring.net-reward-info2", { indexName })} + +
+ ); + + const helpToolTip = (column: number) => { + const className = isMobile ? "question-small" : ""; + let help = rewardHelp(); + if (column === 1) { + help = tcapAmountHelp(); + } else if (column === 3) { + help = netRewardHelp(); + } + return ( + + + + ); + }; + + return ( + { + setMaxIndex("0"); + setMaxIndexUSD("0"); + onHide(); + }} + > + + + <>{t("monitoring.liquidate-vault")} + + + +
+
+ + <> + {isMobile ? ( + Amount + ) : ( + + Amount of{" "} + {isArbitrum(currentNetwork.chainId) ? TOKENS_SYMBOLS.JPEGz : TOKENS_SYMBOLS.TCAP} + + )} + + + MIN REQUIRED + + + + + + + + +
+ +
+ <>{t("monitoring.reward")}: + {" "} + {getTokeSymbol()} +
+
+ +
+ Burn Fee:{" "} + {" "} + {isPolygon(currentNetwork.chainId) ? "MATIC" : "ETH"} +
+
+
+ +
+
+ {!isMobile ? ( + + + + + + + + + + + + + +
+ <>{t("monitoring.reward")} + {helpToolTip(0)} + + <>{t("required-tcap", { indexName })} + {helpToolTip(1)} + Burn Fee + <>{t("monitoring.net-reward", { indexName })} + {helpToolTip(3)} +
${numberFormatStr(rewardUSD, 2, 2)}${numberFormatStr(maxIndexUSD, 2, 2)}${numberFormatStr(burnFeeUsd, 2, 2)}${numberFormatStr(netReward.toFixed(2), 2, 2)}
+ ) : ( +
+
+
+ <>{t("monitoring.reward")} + {helpToolTip(0)} +
+
${numberFormatStr(rewardUSD, 2, 2)}
+
+
+
+ <>{t("required-tcap", { indexName })} + {helpToolTip(1)} +
+
${numberFormatStr(maxIndexUSD, 2, 2)}
+
+
+
Burn Fee
+
${numberFormatStr(burnFeeUsd, 2, 2)}
+
+
+
+ <>{t("monitoring.net-reward")} + {helpToolTip(3)} +
+
+ ${numberFormatStr(netReward.toFixed(2), 2, 2)} +
+
+
+ )} + + + + + + ); +}; + +export default Liquidate; diff --git a/src/components/Vaults/monitoring/Pagination.tsx b/src/components/Vaults/monitoring/Pagination.tsx new file mode 100644 index 00000000..23f167ec --- /dev/null +++ b/src/components/Vaults/monitoring/Pagination.tsx @@ -0,0 +1,106 @@ +import React from "react"; +import Pagination from "react-bootstrap/Pagination"; +import { PaginationType } from "../types"; + +type props = { + pagination: PaginationType; + onPageSelected: (pageNumber: number) => void; +}; + +export const VaultPagination = ({ pagination, onPageSelected }: props) => { + const pag = Array.from(Array(pagination.pages).keys()); + const activePag = pagination.current; + + const VaultPages = () => { + const midPages = Array.from(Array(5).keys()); + const midPage = Math.floor(pagination.pages / 2); + midPages[0] = midPage - 2; + midPages[1] = midPage - 1; + midPages[2] = midPage; + midPages[3] = midPage + 1; + midPages[4] = midPage + 2; + + return ( + <> + onPageSelected(1)} + > + {1} + + {pagination.current >= 3 && pagination.current < midPages[0] && } + {pagination.current > 1 && pagination.current < midPages[0] && ( + {pagination.current} + )} + + {midPages.map((item) => ( + onPageSelected(item)} + > + {item} + + ))} + + {pagination.current < pagination.pages && pagination.current > midPages[4] && ( + {pagination.current} + )} + {pagination.current < pagination.pages - 1 && pagination.current > midPages[4] && ( + + )} + onPageSelected(pagination.pages)} + > + {pagination.pages} + + {pagination.itemsCount < pagination.totalItems - 1 && ( + onPageSelected(pagination.pages + 1)} /> + )} + + ); + }; + + return ( + + {pagination.pages >= 10 && ( + onPageSelected(1)} disabled={pagination.previous === 0} /> + )} + onPageSelected(pagination.previous)} + disabled={pagination.previous === 0} + /> + {pagination.pages >= 10 ? ( + + ) : ( + pag.map((item) => ( + onPageSelected(item + 1)} + > + {item + 1} + + )) + )} + onPageSelected(pagination.next)} + disabled={pagination.current === pagination.pages} + /> + {pagination.pages >= 10 && ( + + onPageSelected( + pagination.pages < pagination.totalPages ? pagination.pages + 1 : pagination.pages + ) + } + disabled={pagination.next === 0} + /> + )} + + ); +}; diff --git a/src/components/Vaults/monitoring/Vaults.tsx b/src/components/Vaults/monitoring/Vaults.tsx new file mode 100644 index 00000000..692b551d --- /dev/null +++ b/src/components/Vaults/monitoring/Vaults.tsx @@ -0,0 +1,383 @@ +import React, { useContext, useState } from "react"; +import { Button } from "react-bootstrap/esm"; +import Table from "react-bootstrap/Table"; +import OverlayTrigger from "react-bootstrap/esm/OverlayTrigger"; +import Tooltip from "react-bootstrap/esm/Tooltip"; +import { ethers } from "ethers"; +import { useTranslation } from "react-i18next"; +import { ReactComponent as SortIcon } from "../../../assets/images/sort.svg"; +import { ReactComponent as SortUpIcon } from "../../../assets/images/sort-up.svg"; +import { ReactComponent as SortDownIcon } from "../../../assets/images/sort-down.svg"; +import Liquidate from "./Liquidate"; +import { networkContext } from "../../../state"; +import { VaultsPropsType, VaultsType } from "../types"; +import { isArbitrum, isInLayer1, numberFormatStr } from "../../../utils/utils"; +import { + capitalize, + TokenIcon, + sortCollateralDesc, + sortCollateralAsc, + sortCollateralUsdDesc, + sortCollateralUsdAsc, + sortDebtDesc, + sortDebtAsc, + sortRatioDesc, + sortRatioAsc, + sortRewardDesc, + sortRewardAsc, + VAULT_STATUS, +} from "../common"; +import { TOKENS_SYMBOLS } from "../../../utils/constants"; + +export const Vaults = ({ + currentAddress, + vaults, + setVaults, + currentStatus, + pagination, + refresh, + setVaultToUpdate, + myVaults, +}: VaultsPropsType) => { + const { t } = useTranslation(); + const currentNetwork = useContext(networkContext); + const indexName = isArbitrum(currentNetwork.chainId) ? TOKENS_SYMBOLS.JPEGz : TOKENS_SYMBOLS.TCAP; + const [showLiquidate, setShowLiquidate] = useState(false); + const [vaultIndex, setVaultIndex] = useState(-1); + const [liqVault, setLiqVault] = useState(null); + const [collateralSort, setCollateralSort] = useState(0); + const [collateralUsdSort, setCollateralUsdSort] = useState(0); + const [debtSort, setDebtSort] = useState(0); + const [ratioSort, setRatioSort] = useState(0); + const [rewardSort, setRewardSort] = useState(0); + // const [renderReward, setRenderReward] = useState(false); + + const liquidateVault = (index: number, lVault: VaultsType) => { + setVaultIndex(index); + setLiqVault(lVault); + setShowLiquidate(true); + }; + + const updateLiqVault = (collateral: ethers.BigNumberish, debt: ethers.BigNumberish) => { + if (liqVault !== null) { + refresh(vaultIndex, liqVault.collateralSymbol, liqVault.id, collateral, debt); + } + }; + + const resetSortTypes = (current: number) => { + if (current !== 1) { + setCollateralSort(0); + } + if (current !== 2) { + setCollateralUsdSort(0); + } + if (current !== 3) { + setDebtSort(0); + } + if (current !== 4) { + setRatioSort(0); + } + if (current !== 5) { + setRewardSort(0); + } + }; + + const onSortCollateralClick = () => { + const sortType = collateralSort === 1 ? 2 : 1; + if (sortType === 1) { + setVaults(vaults.sort(sortCollateralDesc)); + } else { + setVaults(vaults.sort(sortCollateralAsc)); + } + setCollateralSort(sortType); + resetSortTypes(1); + }; + + const onSortCollateralUsdClick = () => { + const sortType = collateralUsdSort === 1 ? 2 : 1; + if (sortType === 1) { + setVaults(vaults.sort(sortCollateralUsdDesc)); + } else { + setVaults(vaults.sort(sortCollateralUsdAsc)); + } + setCollateralUsdSort(sortType); + resetSortTypes(2); + }; + + const onSortDebtClick = () => { + const sortType = debtSort === 1 ? 2 : 1; + if (sortType === 1) { + setVaults(vaults.sort(sortDebtDesc)); + } else { + setVaults(vaults.sort(sortDebtAsc)); + } + setDebtSort(sortType); + resetSortTypes(3); + }; + + const onSortRatioClick = () => { + const sortType = ratioSort === 1 ? 2 : 1; + if (sortType === 1) { + setVaults(vaults.sort(sortRatioDesc)); + } else { + setVaults(vaults.sort(sortRatioAsc)); + } + setRatioSort(sortType); + resetSortTypes(4); + }; + + const onSortRewardClick = () => { + const sortType = rewardSort === 1 ? 2 : 1; + if (sortType === 1) { + setVaults(vaults.sort(sortRewardDesc)); + } else { + setVaults(vaults.sort(sortRewardAsc)); + } + setRewardSort(sortType); + resetSortTypes(5); + }; + + const sortingIncon = (sortOrder: number) => { + if (sortOrder === 0) { + return ; + } + if (sortOrder === 1) { + return ; + } + return ; + }; + + const statusTag = (index: number, v: VaultsType) => { + if (currentAddress === "") { + return {capitalize(v.status)}; + } + if (v.status === "liquidation") { + return ( + + ); + } + return {capitalize(v.status)}; + }; + + const vaultButtonLink = (v: VaultsType) => { + const vtu = { + vaultId: v.id, + assetSymbol: isArbitrum(currentNetwork.chainId) ? TOKENS_SYMBOLS.JPEGz : TOKENS_SYMBOLS.TCAP, + collateralSymbol: v.collateralSymbol !== "WETH" ? v.collateralSymbol : "ETH", + isHardVault: v.isHardVault, + }; + return ( + + ); + }; + + const newVault = () => { + const initData = { + vaultId: "0", + assetSymbol: !isArbitrum(currentNetwork.chainId) ? TOKENS_SYMBOLS.TCAP : TOKENS_SYMBOLS.JPEGz, + collateralSymbol: TOKENS_SYMBOLS.ETH, + isHardVault: isInLayer1(currentNetwork.chainId), + }; + setVaultToUpdate(initData); + }; + + const IndexIcon = () => { + if (!isArbitrum(currentNetwork.chainId)) { + return ; + } + return ; + }; + + return ( + <> + + + + + + + + + + + {currentStatus === "liquidation" && ( + + )} + + + + {vaults.map((v, index) => { + const itemPage = Math.ceil((index + 1) / pagination.itemsPerPage); + return ( + + + + + + + + + {currentStatus === VAULT_STATUS.liquidation && ( + + )} + + + ); + })} + +
Vault Id + <>{t("status")} + + <> + Empty: {t("monitoring.empty-info")}
+ Ready:{" "} + {t("monitoring.ready-info", { indexName })}
+ Active:{" "} + {t("monitoring.active-info", { indexName })}
+ Liquidation:{" "} + {t("monitoring.liquidation-info")}
+ + + } + > + +
+
+ <>{t("collateral")} + + + <>{t("collateral")} (USD) + + +
+ + <>{t("debt")} + + +
+
+ <>{t("debt")} (USD) + + <>{t("monitoring.ratio")} + + + <>{t("monitoring.net-reward")} + + +
{numberFormatStr(v.id, 0, 0)} +
+ {statusTag(index, v)} + {v.isHardVault && H Mode} +
+
+ + {v.collateralValue} + + } + > +
+ {numberFormatStr(v.collateralValue, 4, 4)} + +
+
+
+
+ ${numberFormatStr(v.collateralUsd, 2, 2)} +
+
+
+ + {v.debt} + + } + > + {numberFormatStr(v.debt, 4, 4)} + + +
+
+
+ ${numberFormatStr(v.debtUsd, 2, 2)} +
+
+
+ + Min Ratio: {v.minRatio}% + + } + > + + {v.ratio < 1000000 ? v.ratio.toFixed(0) : v.ratio.toExponential(1)} + {v.ratio === 0 ? "" : "%"} + + +
+
+
+ ${v.netReward.toFixed(2)} +
+
{v.url !== "" && <>{vaultButtonLink(v)}}
+ {vaults.length === 0 && currentAddress !== "" && myVaults && currentStatus === "all" && ( +
+

+ No Vaults yet. Please + + your first vault. +

+
+ )} + {vaults.length === 0 && !myVaults && ( +
+

No vaults found.

+
+ )} + { + setLiqVault(null); + setVaultIndex(-1); + setShowLiquidate(false); + }} + refresh={updateLiqVault} + /> + + ); +}; diff --git a/src/components/Vaults/monitoring/VaultsMobile.tsx b/src/components/Vaults/monitoring/VaultsMobile.tsx new file mode 100644 index 00000000..cc7f04a9 --- /dev/null +++ b/src/components/Vaults/monitoring/VaultsMobile.tsx @@ -0,0 +1,212 @@ +import React, { useContext, useState } from "react"; +import { Button, Card } from "react-bootstrap/esm"; +import { ethers } from "ethers"; +import NumberFormat from "react-number-format"; +import { networkContext } from "../../../state"; +import Liquidate from "./Liquidate"; +import { capitalize, TokenIcon, VAULT_STATUS } from "../common"; +import { VaultsPropsType, VaultsType } from "../types"; +import { TOKENS_SYMBOLS } from "../../../utils/constants"; +import { isArbitrum } from "../../../utils/utils"; + +export const VaultsMobile = ({ + currentAddress, + vaults, + setVaults, + currentStatus, + pagination, + refresh, + setVaultToUpdate, + myVaults, +}: VaultsPropsType) => { + const currentNetwork = useContext(networkContext); + const [showLiquidate, setShowLiquidate] = useState(false); + const [vaultIndex, setVaultIndex] = useState(-1); + const [liqVault, setLiqVault] = useState(null); + const [vaultsShown, setVaultsShown] = useState(pagination.itemsPerPage); + + const updateLiqVault = (collateral: ethers.BigNumberish, debt: ethers.BigNumberish) => { + if (liqVault !== null) { + refresh(vaultIndex, liqVault.collateralSymbol, liqVault.id, collateral, debt); + } + }; + + const vaultButtonLink = (v: VaultsType) => { + const vtu = { + vaultId: v.id, + assetSymbol: isArbitrum(currentNetwork.chainId) ? TOKENS_SYMBOLS.JPEGz : TOKENS_SYMBOLS.TCAP, + collateralSymbol: + v.collateralSymbol !== TOKENS_SYMBOLS.WETH ? v.collateralSymbol : TOKENS_SYMBOLS.ETH, + isHardVault: v.isHardVault, + }; + const vStatus = v.status === VAULT_STATUS.liquidation ? "active" : v.status; + console.log(setVaults); + return ( + + ); + }; + + const loadMore = () => { + const n = vaultsShown + pagination.itemsPerPage; + setVaultsShown(n); + }; + + const IndexIcon = () => { + if (!isArbitrum(currentNetwork.chainId)) { + return ; + } + return ; + }; + + return ( +
+ {vaults.map((v, index) => { + const classN = index < vaultsShown ? "vault" : "vault hide"; + return ( + + + {v.isHardVault && ( +
+
H Mode
+
+ )} +
+
+
Index
+
+ +
+ {isArbitrum(currentNetwork.chainId) + ? TOKENS_SYMBOLS.JPEGz + : TOKENS_SYMBOLS.TCAP} +
+
+
+
+
Collateral
+
+ +
{v.collateralSymbol}
+
+
+
+
+
+
Collateral:
+
+
+
+ +
+
+ +
+
+
+
+
+
Debt:
+
+
+
+ +
+
+ +
+
+
+
+
+
Ratio:
+
+
+
+ {v.ratio < 1000000 ? ( + + ) : ( + {v.ratio.toExponential(1)}% + )} +
+ {capitalize(v.status)} +
+
+
+ {(v.status === VAULT_STATUS.liquidation || v.url !== "") && ( + + {v.status === VAULT_STATUS.liquidation && ( + + )} + {v.url !== "" && vaultButtonLink(v)} + + )} +
+ ); + })} + {vaultsShown < pagination.itemsCount && ( + + )} + {vaults.length === 0 && currentAddress !== "" && myVaults && currentStatus === "all" && ( +
+

+ No Vaults yet. Please + {" CREATE "} + your first vault. +

+
+ )} + {vaults.length === 0 && !myVaults && ( +
+

No vaults found.

+
+ )} + { + setLiqVault(null); + setVaultIndex(-1); + setShowLiquidate(false); + }} + refresh={updateLiqVault} + /> +
+ ); +}; diff --git a/src/components/Vaults/monitoring/VaultsSummary.tsx b/src/components/Vaults/monitoring/VaultsSummary.tsx new file mode 100644 index 00000000..39613d32 --- /dev/null +++ b/src/components/Vaults/monitoring/VaultsSummary.tsx @@ -0,0 +1,73 @@ +import React, { useContext } from "react"; +import { Accordion, Col } from "react-bootstrap/esm"; +import { useMediaQuery } from "react-responsive"; +import { useTranslation } from "react-i18next"; +import { networkContext } from "../../../state"; +import { TokenIcon } from "../common"; +import { VaultsTotalsType } from "../types"; +import { TOKENS_SYMBOLS } from "../../../utils/constants"; +import { isArbitrum, numberFormatStr } from "../../../utils/utils"; + +type props = { + vaultsTotals: VaultsTotalsType; +}; + +const VaultsSummary = ({ vaultsTotals }: props) => { + const { t } = useTranslation(); + const isMobile = useMediaQuery({ query: "(max-width: 850px)" }); + const currentNetwork = useContext(networkContext); + + const IndexIcon = () => { + if (!isArbitrum(currentNetwork.chainId)) { + return ; + } + return ; + }; + + return ( + + + +
+ <>{t("totals")} +
+
+ + + +
+ <>{t("vaults")} +
+ + {numberFormatStr(vaultsTotals.vaults.toString(), 0, 0)} + + + +
+ <>{t("collateral")} (USD) +
+ ${numberFormatStr(vaultsTotals.collateralUSD, 2, 2)} + + +
+
+ <>{t("debt")} +
+ +
+ {numberFormatStr(vaultsTotals.debt, 4, 4)} + + +
+ <>{t("debt")} (USD) +
+ ${numberFormatStr(vaultsTotals.debtUSD, 2, 2)} + + +
+
+
+ ); +}; + +export default VaultsSummary; diff --git a/src/components/Vaults/monitoring/index.tsx b/src/components/Vaults/monitoring/index.tsx new file mode 100644 index 00000000..1744b6cd --- /dev/null +++ b/src/components/Vaults/monitoring/index.tsx @@ -0,0 +1,961 @@ +import React, { useContext, useEffect, useRef, useState } from "react"; +import { Accordion, Button, Card, Col, Dropdown, Form } from "react-bootstrap/esm"; +import Spinner from "react-bootstrap/Spinner"; +import { FaArrowsAltH } from "react-icons/fa"; +import { ethers, BigNumber } from "ethers"; +import { useMediaQuery } from "react-responsive"; +import { useLazyQuery, gql } from "@apollo/client"; +import { useTranslation } from "react-i18next"; +import "../../../styles/vault-monitoring.scss"; +import { VaultPagination } from "./Pagination"; +import { signerContext, hardVaultsContext, networkContext, vaultsContext } from "../../../state"; +import { Vaults } from "./Vaults"; +import { VaultsMobile } from "./VaultsMobile"; +import { usePrices, useRatios } from "../../../hooks"; +import { + getRatio2, + isArbitrum, + isInLayer1, + isOptimism, + isUndefined, + numberFormatStr, + toUSD, +} from "../../../utils/utils"; +import { TOKENS_SYMBOLS } from "../../../utils/constants"; +import { + capitalize, + TokenIcon, + getMinRatio, + getCollateralPrice, + findNewArbitrumVaultCollateral, + findNewMainnetVaultCollateral, + findNewOptimismVaultCollateral, + VAULT_STATUS, +} from "../common"; +import { + DropdownItemType, + PaginationType, + VaultToUpdateType, + VaultsTotalsType, + VaultsType, +} from "../types"; + +const pagDefault = { + previous: 0, + current: 0, + next: 0, + pages: 0, + lastDataPage: 0, + itemsPerPage: 10, + itemsCount: 0, + totalItems: 0, + totalPages: 0, + lastId: "0", +}; + +const totalsDefault = { + vaults: 0, + collateral: "0", + collateralUSD: "0", + debt: "0", + debtUSD: "0", +}; + +type liqVaultsTempType = { + vaultId: string; + vaultType: string; + decimals: number; + hardVault: boolean; +}; + +type props = { + setVaultToUpdate: (initData: VaultToUpdateType) => void; +}; + +const showAllVaults = true; +const MAX_RANGE_LIMIT = Number.MAX_VALUE; + +const Monitoring = ({ setVaultToUpdate }: props) => { + const { t } = useTranslation(); + const isMobile = useMediaQuery({ query: "(max-width: 850px)" }); + const currentNetwork = useContext(networkContext); + const signer = useContext(signerContext); + const vaults = useContext(vaultsContext); + const hardVaults = useContext(hardVaultsContext); + const [prices, loadingPrices] = usePrices(); + const ratios = useRatios(); + const vaultsOwnerFilter = [ + { name: t("all-vaults"), value: "0" }, + { name: t("my-vaults"), value: "1" }, + ]; + const [vaultsUpdated, setVaultsUpdated] = useState(false); + const [vaultsTotals, setVaultsTotals] = useState(totalsDefault); + const [vaultList, setVaultList] = useState>([]); + const [vaultGraphList, setVaultGraphList] = useState>([]); + const [pagination, setPagination] = useState(pagDefault); + const [loadMore, setLoadMore] = useState(false); + const [filteringRatios, setFilteringRatios] = useState(false); + const [currentAddress, setCurrentAddress] = useState(""); + const [ownerAddress, setOwnerAddress] = useState(""); + const [currentOwnerFilter, setCurrentOwnerFilter] = useState(vaultsOwnerFilter[1]); + const [tokenSymbol, setTokenSymbol] = useState("all"); + const [currentStatus, setCurrentStatus] = useState("all"); + const [vaultMode, setVaultMode] = useState("all"); + const [currentMinRatio, setCurrentMinRatio] = useState("0%"); + const [currentMaxRatio, setCurrentMaxRatio] = useState("MAX"); + const [renderTable, setRenderTable] = useState(false); + const ratioRangeDropdown = useRef(null); + const minRatioInput = useRef(null); + const maxRatioInput = useRef(null); + const viewsList = [ + { key: "5", name: "5" }, + { key: "10", name: "10" }, + { key: "15", name: "15" }, + { key: "20", name: "20" }, + { key: "25", name: "25" }, + { key: "30", name: "30" }, + ]; + const statusList = [ + { key: "all", name: "All" }, + { key: VAULT_STATUS.empty, name: "Empty" }, + { key: VAULT_STATUS.ready, name: "Ready" }, + { key: VAULT_STATUS.active, name: "Active" }, + { key: VAULT_STATUS.liquidation, name: "Liquidation" }, + ]; + const modeList = [ + { key: "all", name: "All" }, + { key: "regular", name: "Regular" }, + { key: "hard", name: "Hard" }, + ]; + + const buildFilters = () => { + const weiLimit = "0"; + let filter = ""; + let ownerFilter = ""; + let vaultFilter = ""; + let statusFilter = ""; + let modeFilter = ""; + + if (currentOwnerFilter.value === "1" && ownerAddress !== "") { + ownerFilter = `, owner: "${ownerAddress}"`; + } + if (tokenSymbol !== "all") { + vaultFilter = `tokenSymbol: "${tokenSymbol.toUpperCase()}"`; + } + if (currentStatus !== "all") { + if (currentStatus === "empty") { + statusFilter = `collateral: "${weiLimit}"`; + } + if (currentStatus === "ready") { + statusFilter = `collateral_gt: "${weiLimit}", debt: "${weiLimit}"`; + } + if (currentStatus === VAULT_STATUS.active || currentStatus === VAULT_STATUS.liquidation) { + statusFilter = `debt_gt: "${weiLimit}"`; + } + } + if (vaultMode !== "all") { + const isHard = vaultMode === "hard" ? "true" : "false"; + modeFilter = "hardVault: ".concat(isHard); + } + + filter = ownerFilter; + if (vaultFilter !== "") { + filter = filter.concat(`, ${vaultFilter}`); + } + if (statusFilter !== "") { + filter = filter.concat(`, ${statusFilter}`); + } + if (modeFilter !== "") { + filter = filter.concat(`, ${modeFilter}`); + } + if (filter !== "") { + if (loadMore) { + filter = `, where: { blockTS_gt: "${pagination.lastId}" ${filter} }`; + } else { + filter = `, where: { blockTS_gt: "0" ${filter} }`; + } + } + + return filter; + }; + + const str = + "query allVaults {" + + `vaults(first: 1000, orderBy: blockTS ${buildFilters()}) {` + + "id " + + "vaultId " + + "owner " + + "collateral " + + "debt " + + "currentRatio " + + "tokenSymbol " + + "hardVault " + + "blockTS " + + "underlyingProtocol { " + + "underlyingToken { " + + "decimals " + + "} " + + "}" + + "} " + + "}"; + + const vaultsQuery = gql` + ${str} + `; + + const isValidRatio = (value: string) => { + let valid = false; + if (!Number.isNaN(value)) { + valid = Number.parseFloat(value) >= 0; + } + return valid; + }; + + const getMinRangeRatio = (): number => { + if (minRatioInput && minRatioInput.current) { + // @ts-ignore + const minRatio = minRatioInput.current.value; + if (isValidRatio(minRatio)) { + return parseFloat(minRatio); + } + } + return 0; + }; + + const getMaxRangeRatio = (): number => { + if (maxRatioInput && maxRatioInput.current) { + // @ts-ignore + const maxRatio = maxRatioInput.current.value; + if (isValidRatio(maxRatio)) { + return parseFloat(maxRatio); + } + return MAX_RANGE_LIMIT; + } + return MAX_RANGE_LIMIT; + }; + + const calculateNetRewardUsd = async ( + vaultId: string, + vaultType: string, + isHardVault: boolean, + decimals: number + ) => { + try { + let cVault = vaults.wethVault; + let cVaultRead = vaults.wethVaultRead; + const vaultPrice = getCollateralPrice(prices, vaultType); + if (isHardVault) { + cVault = hardVaults.wethVault; + cVaultRead = hardVaults.wethVaultRead; + } + + switch (vaultType) { + case TOKENS_SYMBOLS.DAI: + if (isHardVault) { + cVault = hardVaults.daiVault; + cVaultRead = hardVaults.daiVaultRead; + } else { + cVault = vaults.daiVault; + cVaultRead = vaults.daiVaultRead; + } + break; + case TOKENS_SYMBOLS.AAVE: + cVault = vaults.aaveVault; + cVaultRead = vaults.aaveVaultRead; + break; + case TOKENS_SYMBOLS.LINK: + cVault = vaults.linkVault; + cVaultRead = vaults.linkVaultRead; + break; + case TOKENS_SYMBOLS.SNX: + cVault = vaults.snxVault; + cVaultRead = vaults.snxVaultRead; + break; + case TOKENS_SYMBOLS.UNI: + cVault = vaults.uniVault; + cVaultRead = vaults.uniVaultRead; + break; + case TOKENS_SYMBOLS.MATIC: + cVault = vaults.maticVault; + cVaultRead = vaults.maticVaultRead; + break; + case TOKENS_SYMBOLS.WBTC: + cVault = vaults.wbtcVault; + cVaultRead = vaults.wbtcVaultRead; + break; + case TOKENS_SYMBOLS.USDC: + cVault = hardVaults.usdcVault; + cVaultRead = hardVaults.usdcVaultRead; + break; + default: + if (isHardVault) { + cVault = hardVaults.wethVault; + cVaultRead = hardVaults.wethVaultRead; + } else { + cVault = vaults.wethVault; + cVaultRead = vaults.wethVaultRead; + } + break; + } + + const reqTcapCall = await cVaultRead?.requiredLiquidationTCAP(BigNumber.from(vaultId)); + const liqRewardCall = await cVaultRead?.liquidationReward(BigNumber.from(vaultId)); + // @ts-ignore + const [reqTcap, liqReward] = await signer.ethcallProvider?.all([reqTcapCall, liqRewardCall]); + + const reqTcapText = ethers.utils.formatEther(reqTcap); + const liqRewardText = ethers.utils.formatUnits(liqReward, decimals); + let currentLiqFee; + if (isArbitrum(currentNetwork.chainId)) { + currentLiqFee = await cVault?.getBurnFee(reqTcap); + } else { + currentLiqFee = await cVault?.getFee(reqTcap); + } + const increasedFee = currentLiqFee.add(currentLiqFee.div(100)).toString(); + const ethFee = ethers.utils.formatEther(increasedFee); + + return ( + toUSD(liqRewardText, vaultPrice) - + toUSD(reqTcapText, prices.tcapOraclePrice) - + toUSD(ethFee, prices.wethOraclePrice) + ); + } catch (error: any) { + if (error.code !== "UNPREDICTABLE_GAS_LIMIT") { + console.log(error.code); + } + return 0; + } + }; + + const calculateVaultData = ( + collateralWei: ethers.BigNumberish, + debtWei: ethers.BigNumberish, + symbol: string, + isHardVault: boolean, + decimals: number + ) => { + const indexPrice = !isArbitrum(currentNetwork.chainId) + ? prices.tcapOraclePrice + : prices.jpegzOraclePrice; + const collateralText = ethers.utils.formatUnits(collateralWei, decimals); + const debtText = ethers.utils.formatEther(debtWei); + const collateralPrice = getCollateralPrice(prices, symbol); + const collateralUSD = toUSD(collateralText, collateralPrice); + const debtUSD = toUSD(debtText, indexPrice || "0"); + const minRatio = getMinRatio(ratios, symbol, isHardVault); + const ratio = getRatio2(collateralText, collateralPrice, debtText, indexPrice || "1"); + + let status = VAULT_STATUS.liquidation; + if (parseFloat(collateralText) === 0) { + status = VAULT_STATUS.empty; + } else if (parseFloat(collateralText) > 0 && parseFloat(debtText) <= 0) { + status = VAULT_STATUS.ready; + } else if (ratio >= minRatio) { + status = VAULT_STATUS.active; + } + return { collateralText, collateralUSD, debtText, debtUSD, ratio, minRatio, status }; + }; + + const confPagination = (vData: Array, itemsPerPage: number) => { + if (vData.length > 0) { + const lastVaultId = vData[vData.length - 1].blockTS; + const itemsCount = vData.length; + const pages = Math.ceil(itemsCount / itemsPerPage); + const lastDataPage = Math.ceil(itemsCount / itemsPerPage); + const pag = { + previous: 0, + current: 1, + next: 2, + pages, + lastDataPage, + itemsPerPage, + itemsCount, + totalItems: itemsCount, + totalPages: pages, + lastId: lastVaultId, + }; + setPagination(pag); + } else { + setPagination(pagDefault); + } + }; + + const loadVaults = async (vaultsData: any, cStatus: string) => { + const vData = new Array(); + const vLiquidables = new Array(); + const totals = { ...totalsDefault }; + const minFilterRatio = getMinRangeRatio(); + const maxFilterRatio = getMaxRangeRatio(); + + setLoadMore(false); + setFilteringRatios(true); + // setLiqLoaded(currentStatus !== VAULT_STATUS.liquidation); + // @ts-ignore + vaultsData.vaults.forEach((v) => { + const cVaultDecimals = v.underlyingProtocol.underlyingToken.decimals; + const { collateralText, collateralUSD, debtText, debtUSD, ratio, minRatio, status } = + calculateVaultData(v.collateral, v.debt, v.tokenSymbol, v.hardVault, cVaultDecimals); + + let addVault = true; + if (cStatus === VAULT_STATUS.active || cStatus === VAULT_STATUS.liquidation) { + addVault = cStatus === status; + } + // filter ratio + if (cStatus !== VAULT_STATUS.empty && cStatus !== VAULT_STATUS.ready) { + addVault = addVault && ratio >= minFilterRatio && ratio <= maxFilterRatio; + } + + if (!showAllVaults) { + addVault = v.tokenSymbol === TOKENS_SYMBOLS.WETH || v.tokenSymbol === TOKENS_SYMBOLS.DAI; + } + + // show only wbtc hard vaults + if (v.tokenSymbol === TOKENS_SYMBOLS.WBTC) { + addVault = addVault && v.hardVault; + } + + if (addVault) { + let vaultUrl = ""; + const symbol = v.tokenSymbol === TOKENS_SYMBOLS.WETH ? TOKENS_SYMBOLS.ETH : v.tokenSymbol; + if (v.owner.toLowerCase() === currentAddress.toLowerCase()) { + vaultUrl = window.location.origin.concat("/vault/").concat(symbol); + } + if (cStatus === VAULT_STATUS.liquidation) { + vLiquidables.push({ + vaultId: v.vaultId, + vaultType: v.tokenSymbol, + decimals: cVaultDecimals, + hardVault: v.hardVault, + }); + } + + vData.push({ + id: v.vaultId, + collateralSymbol: v.tokenSymbol, + collateralValue: collateralText, + collateralUsd: collateralUSD.toFixed(2), + debt: debtText, + debtUsd: debtUSD.toFixed(2), + ratio, + minRatio: minRatio.toString(), + decimals: cVaultDecimals, + isHardVault: v.hardVault, + netReward: 0, + status, + blockTS: v.blockTS, + url: vaultUrl, + }); + + totals.vaults += 1; + totals.collateral = (parseFloat(totals.collateral) + parseFloat(collateralText)).toFixed(4); + totals.collateralUSD = (parseFloat(totals.collateralUSD) + collateralUSD).toFixed(2); + totals.debt = (parseFloat(totals.debt) + parseFloat(debtText)).toFixed(4); + totals.debtUSD = (parseFloat(totals.debtUSD) + debtUSD).toFixed(2); + } + }); + + if (currentStatus !== VAULT_STATUS.liquidation) { + setVaultList(vData); + setVaultsTotals(totals); + } else { + const loadNetReward = async () => { + vLiquidables.forEach((l, index) => { + calculateNetRewardUsd(l.vaultId, l.vaultType, l.hardVault, l.decimals).then((result) => { + const newA = [...vData]; + newA[index].netReward = result; + setVaultList(newA); + }); + }); + }; + loadNetReward().then(() => { + setVaultList(vData); + setVaultsTotals(totals); + }); + } + + // Set pagination data + confPagination(vData, pagination.itemsPerPage); + setFilteringRatios(false); + }; + + const [loadVaultData, { loading }] = useLazyQuery(vaultsQuery, { + fetchPolicy: "no-cache", + notifyOnNetworkStatusChange: true, + // skip: skipQuery, + onError: (error) => { + console.log(error); + }, + onCompleted: (data: any) => { + if (!isUndefined(data)) { + setVaultGraphList(data); + loadVaults(data, currentStatus); + setVaultsUpdated(true); + } + }, + }); + + useEffect( + () => { + const load = async () => { + if (signer && signer.signer) { + if (!vaultsUpdated && !loadingPrices) { + const address = await signer.signer.getAddress(); + setCurrentAddress(address); + setOwnerAddress(currentOwnerFilter.value === "1" ? address : ""); + + loadVaultData(); + } + } else if (prices.daiOraclePrice !== "0") { + setCurrentOwnerFilter(vaultsOwnerFilter[0]); + loadVaultData(); + } + }; + load(); + }, + // eslint-disable-next-line + [signer, loadingPrices, prices.daiOraclePrice] + ); + + const tokensSymbols = (): Array => { + const symbols = [{ key: "all", name: "All" }]; + if (isInLayer1(currentNetwork.chainId)) { + symbols.push({ key: "weth", name: TOKENS_SYMBOLS.ETH }); + symbols.push({ key: "dai", name: TOKENS_SYMBOLS.DAI }); + if (showAllVaults) { + symbols.push({ key: "aave", name: TOKENS_SYMBOLS.AAVE }); + symbols.push({ key: "link", name: TOKENS_SYMBOLS.LINK }); + symbols.push({ key: "usdc", name: TOKENS_SYMBOLS.USDC }); + } + symbols.push({ key: "wbtc", name: TOKENS_SYMBOLS.WBTC }); + } else if (isArbitrum(currentNetwork.chainId)) { + symbols.push({ key: "weth", name: TOKENS_SYMBOLS.ETH }); + symbols.push({ key: "dai", name: TOKENS_SYMBOLS.DAI }); + } else if (isOptimism(currentNetwork.chainId)) { + symbols.push({ key: "eth", name: TOKENS_SYMBOLS.ETH }); + symbols.push({ key: "dai", name: TOKENS_SYMBOLS.DAI }); + if (showAllVaults) { + symbols.push({ key: "link", name: TOKENS_SYMBOLS.LINK }); + symbols.push({ key: "uni", name: TOKENS_SYMBOLS.UNI }); + symbols.push({ key: "snx", name: TOKENS_SYMBOLS.SNX }); + } + } else { + symbols.push({ key: "matic", name: TOKENS_SYMBOLS.MATIC }); + symbols.push({ key: "dai", name: TOKENS_SYMBOLS.DAI }); + symbols.push({ key: "wbtc", name: TOKENS_SYMBOLS.WBTC }); + } + + return symbols; + }; + + const handleItemsViewChange = (number: string) => { + confPagination(vaultList, parseInt(number)); + }; + + const handleVaultOwnerFilterChange = (value: string) => { + setCurrentOwnerFilter(vaultsOwnerFilter[parseInt(value)]); + if (value === "0") { + setOwnerAddress(""); + } else { + setOwnerAddress(currentAddress); + } + }; + + const handleStatusChange = (newStatus: string) => { + if (newStatus === VAULT_STATUS.liquidation || newStatus === VAULT_STATUS.active) { + setCurrentStatus(newStatus); + if (currentStatus === "all") { + loadVaults(vaultGraphList, newStatus); + } else { + loadVaultData(); + } + } else { + setCurrentStatus(newStatus); + } + }; + + const handleTokenChange = (newToken: string) => { + setTokenSymbol(newToken); + }; + + const handleModeChange = (newMode: string) => { + setVaultMode(newMode); + }; + + const onFilterRatioClick = () => { + if (minRatioInput && maxRatioInput) { + // @ts-ignore + const minRatio = minRatioInput.current.value; + // @ts-ignore + const maxRatio = maxRatioInput.current.value; + if (isValidRatio(minRatio) && isValidRatio(maxRatio)) { + setCurrentMinRatio(minRatio.concat("%")); + setCurrentMaxRatio(maxRatio.concat("%")); + // @ts-ignore + loadVaults(vaultGraphList); + if (ratioRangeDropdown !== null) { + // @ts-ignore + ratioRangeDropdown.current.click(); + } + } + } + }; + + const onPageSelected = (pageNumber: number) => { + const nextPage = pageNumber === pagination.pages ? 0 : pageNumber + 1; + const newPagination = { + ...pagination, + previous: pageNumber === 1 ? 0 : pageNumber - 1, + current: pageNumber, + next: nextPage, + }; + setPagination(newPagination); + }; + + const updateLiquidatedVault = async ( + index: number, + symbol: string, + vaultId: string, + collateral: ethers.BigNumberish, + debt: ethers.BigNumberish + ) => { + const { collateralText, collateralUSD, debtText, debtUSD, ratio, minRatio, status } = + calculateVaultData( + collateral, + debt, + symbol, + vaultList[index].isHardVault, + vaultList[index].decimals + ); + const allVaults = vaultList; + const v = { + id: vaultId, + collateralSymbol: symbol, + collateralValue: collateralText, + collateralUsd: collateralUSD.toFixed(2), + debt: debtText, + debtUsd: debtUSD.toFixed(2), + ratio, + minRatio: minRatio.toString(), + decimals: vaultList[index].decimals, + isHardVault: vaultList[index].isHardVault, + netReward: 0, + status, + blockTS: vaultList[index].blockTS, + url: vaultList[index].url, + }; + allVaults[index] = Object.create(v); + setVaultList(Array.from(allVaults)); + setRenderTable(!renderTable); + }; + + const newVault = () => { + let newAssetSymbol = TOKENS_SYMBOLS.TCAP; + let newCollateralSymbol = TOKENS_SYMBOLS.ETH; + let isHardVault = false; + const createdCollaterals = []; + for (let i = 0; i < vaultList.length; i += 1) { + createdCollaterals.push(vaultList[i].collateralSymbol); + } + + if (createdCollaterals.includes(TOKENS_SYMBOLS.WETH)) { + createdCollaterals.push(TOKENS_SYMBOLS.ETH); + } + + if (isInLayer1(currentNetwork.chainId)) { + [newCollateralSymbol, isHardVault] = findNewMainnetVaultCollateral(createdCollaterals); + } + if (isOptimism(currentNetwork.chainId)) { + newCollateralSymbol = findNewOptimismVaultCollateral(createdCollaterals); + } + if (isArbitrum(currentNetwork.chainId)) { + newAssetSymbol = TOKENS_SYMBOLS.JPEGz; + newCollateralSymbol = findNewArbitrumVaultCollateral(createdCollaterals); + } + + setVaultToUpdate({ + vaultId: "0", + assetSymbol: newAssetSymbol, + collateralSymbol: newCollateralSymbol, + isHardVault, + }); + }; + + const IndexIcon = () => { + if (!isArbitrum(currentNetwork.chainId)) { + return ; + } + return ; + }; + + const RenderFilters = () => ( + <> +
+
+
+ <>{t("view")}: +
+ handleItemsViewChange(eventKey || "15")}> + +
+ {pagination.itemsPerPage} +
+
+ + {viewsList.map((item) => ( + + {item.name} + + ))} + +
+
+
+
+
+
+ <>{t("collateral")} +
+ handleTokenChange(eventKey || "ALL")} + > + +
+ + {tokenSymbol.toUpperCase()} +
+
+ + {tokensSymbols().map((item) => ( + + {item.name} + + ))} + +
+
+
+
Status
+ handleStatusChange(eventKey || "ALL")}> + +
+ {capitalize(currentStatus)} +
+
+ + {statusList.map((item) => ( + + {item.name} + + ))} + +
+
+ {isInLayer1(currentNetwork.chainId) && ( +
+
+ <>{t("mode")} +
+ handleModeChange(eventKey || "ALL")} + > + +
+ {capitalize(vaultMode)} +
+
+ + {modeList.map((item) => ( + + {item.name} + + ))} + +
+
+ )} +
+
Ratio Range
+ + +
+ + {currentMinRatio} {currentMaxRatio} + +
+
+ +
+ + + +
+ +
+
+
+
+
Vaults
+ handleVaultOwnerFilterChange(eventKey || "1")}> + +
+ {capitalize(currentOwnerFilter.name)} +
+
+ + + {vaultsOwnerFilter[0].name} + + + {vaultsOwnerFilter[1].name} + + +
+
+
+ +
+
+ + ); + + return ( +
+ + + +
+ <>{t("totals")} +
+
+ + + +
+ <>{t("vaults")} +
+ {vaultsTotals.vaults} + + +
+ <>{t("collateral")} (USD) +
+ ${numberFormatStr(vaultsTotals.collateralUSD, 2, 2)} + + +
+
+ <>{t("debt")} +
+ +
+ {numberFormatStr(vaultsTotals.debt, 4, 4)} + + +
+ <>{t("debt")} (USD) +
+ ${numberFormatStr(vaultsTotals.debtUSD, 2, 2)} + + +
+
+
+ {!isMobile ? ( + + + + + + {loading || filteringRatios ? ( + + ) : ( + ) => setVaultList(v)} + currentStatus={currentStatus} + pagination={pagination} + refresh={updateLiquidatedVault} + setVaultToUpdate={setVaultToUpdate} + myVaults={currentOwnerFilter.value === "1"} + /> + )} + + {pagination.pages > 0 && !loading && ( + + )} + + + + ) : ( + <> + + + +
Filters
+
+ + + +
+
+ + {loading || filteringRatios ? ( + + ) : ( + <> + ) => setVaultList(v)} + currentStatus={currentStatus} + pagination={pagination} + refresh={updateLiquidatedVault} + setVaultToUpdate={setVaultToUpdate} + myVaults={currentOwnerFilter.value === "1"} + /> + + )} + + )} +
+ ); +}; + +export default Monitoring; diff --git a/src/components/Vaults/monitoring/index2.tsx b/src/components/Vaults/monitoring/index2.tsx new file mode 100644 index 00000000..40886ac3 --- /dev/null +++ b/src/components/Vaults/monitoring/index2.tsx @@ -0,0 +1,1127 @@ +import React, { useContext, useEffect, useRef, useState } from "react"; +import { Accordion, Button, Card, Col, Dropdown, Form } from "react-bootstrap/esm"; +import Spinner from "react-bootstrap/Spinner"; +import { FaArrowsAltH } from "react-icons/fa"; +import { ethers, BigNumber } from "ethers"; +import { useMediaQuery } from "react-responsive"; +import { useLazyQuery } from "@apollo/client"; +import { useTranslation } from "react-i18next"; +import "../../../styles/vault-monitoring.scss"; +import { VaultPagination } from "./Pagination"; +import VaultsSummary from "./VaultsSummary"; +import { signerContext, hardVaultsContext, networkContext, vaultsContext } from "../../../state"; +import { Vaults } from "./Vaults"; +import { VaultsMobile } from "./VaultsMobile"; +import { + VAULTS_ALL, + VAULTS_BY_COLLATERAL, + VAULTS_BY_STATUS, + VAULTS_BY_TOKEN_STATUS, + VAULTS_IN_LIQ, + VAULTS_IN_LIQ_BY_TOKEN, + VAULTS_BY_USER, +} from "./GraphqlQueries"; +import { usePrices, useRatios, useVaultsSummary } from "../../../hooks"; +import { + getRatio2, + isArbitrum, + isInLayer1, + isOptimism, + isUndefined, + toUSD, +} from "../../../utils/utils"; +import { TOKENS_SYMBOLS } from "../../../utils/constants"; +import { + capitalize, + TokenIcon, + getMinRatio, + getCollateralPrice, + findNewArbitrumVaultCollateral, + findNewMainnetVaultCollateral, + findNewOptimismVaultCollateral, + KEYWORD_ALL, + VAULT_STATUS, +} from "../common"; +import { + DropdownItemType, + PaginationType, + VaultToUpdateType, + VaultsTotalsType, + VaultsType, +} from "../types"; + +const pagDefault = { + previous: 0, + current: 0, + next: 0, + pages: 0, + lastDataPage: 0, + itemsPerPage: 10, + itemsCount: 0, + totalItems: 0, + totalPages: 0, + lastId: "0", +}; + +const totalsDefault = { + vaults: 0, + collateral: "0", + collateralUSD: "0", + debt: "0", + debtUSD: "0", +}; + +type liqVaultsTempType = { + vaultId: string; + vaultType: string; + decimals: number; + hardVault: boolean; +}; + +type props = { + currentAddress: string; + setVaultToUpdate: (initData: VaultToUpdateType) => void; +}; + +const showAllVaults = true; +const MAX_RANGE_LIMIT = Number.MAX_VALUE; + +const Monitoring = ({ currentAddress, setVaultToUpdate }: props) => { + const { t } = useTranslation(); + const isMobile = useMediaQuery({ query: "(max-width: 850px)" }); + const currentNetwork = useContext(networkContext); + const signer = useContext(signerContext); + const vaults = useContext(vaultsContext); + const hardVaults = useContext(hardVaultsContext); + const [prices, loadingPrices] = usePrices(); + const ratios = useRatios(); + // eslint-disable-next-line + const [refetchSummary, vaultsSummary] = useVaultsSummary(prices, loadingPrices); + const vaultsOwnerFilter = [ + { name: t("all-vaults"), value: "0" }, + { name: t("my-vaults"), value: "1" }, + ]; + const [vaultsUpdated, setVaultsUpdated] = useState(false); + const [vaultsTotals, setVaultsTotals] = useState(totalsDefault); + const [vaultList, setVaultList] = useState>([]); + const [pagination, setPagination] = useState(pagDefault); + const [loadingMore, setLoadingMore] = useState(false); + const [allVaultsFirstLoad, setAllVaultsFirstLoad] = useState(true); + const [byCollateralFirstLoad, setByCollateralFirstLoad] = useState(true); + const [byStatusFirstLoad, setByStatusFirstLoad] = useState(true); + const [byTSFirstLoad, setByTSFirstLoad] = useState(true); + const [byInLiqFirstLoad, setByInLiqFirstLoad] = useState(true); + const [byTokenInLiqFirstLoad, setByTokenInLiqFirstLoad] = useState(true); + const [filteringRatios, setFilteringRatios] = useState(false); + const [currentOwnerFilter, setCurrentOwnerFilter] = useState(vaultsOwnerFilter[1]); + const [tokenSymbol, setTokenSymbol] = useState("all"); + const [currentStatus, setCurrentStatus] = useState("all"); + const [vaultMode, setVaultMode] = useState("all"); + const [currentMinRatio, setCurrentMinRatio] = useState("0%"); + const [currentMaxRatio, setCurrentMaxRatio] = useState("MAX"); + const [renderTable, setRenderTable] = useState(false); + const ratioRangeDropdown = useRef(null); + const minRatioInput = useRef(null); + const maxRatioInput = useRef(null); + const viewsList = [ + { key: "5", name: "5" }, + { key: "10", name: "10" }, + { key: "15", name: "15" }, + { key: "20", name: "20" }, + { key: "25", name: "25" }, + { key: "30", name: "30" }, + ]; + const statusList = [ + { key: KEYWORD_ALL, name: "All" }, + { key: VAULT_STATUS.empty, name: "Empty" }, + { key: VAULT_STATUS.ready, name: "Ready" }, + { key: VAULT_STATUS.active, name: "Active" }, + { key: VAULT_STATUS.liquidation, name: "Liquidation" }, + ]; + const modeList = [ + { key: KEYWORD_ALL, name: "All" }, + { key: "regular", name: "Regular" }, + { key: "hard", name: "Hard" }, + ]; + + const isMyVaults = (): boolean => currentOwnerFilter.value === "1" && currentAddress !== ""; + + const isValidRatio = (value: string) => { + let valid = false; + if (!Number.isNaN(value)) { + valid = Number.parseFloat(value) >= 0; + } + return valid; + }; + + const getMinRangeRatio = (): number => { + if (minRatioInput && minRatioInput.current) { + // @ts-ignore + const minRatio = minRatioInput.current.value; + if (isValidRatio(minRatio)) { + return parseFloat(minRatio); + } + } + return 0; + }; + + const getMaxRangeRatio = (): number => { + if (maxRatioInput && maxRatioInput.current) { + // @ts-ignore + const maxRatio = maxRatioInput.current.value; + if (isValidRatio(maxRatio)) { + return parseFloat(maxRatio); + } + return MAX_RANGE_LIMIT; + } + return MAX_RANGE_LIMIT; + }; + + const calculateNetRewardUsd = async ( + vaultId: string, + vaultType: string, + isHardVault: boolean, + decimals: number + ) => { + try { + let cVault = vaults.wethVault; + let cVaultRead = vaults.wethVaultRead; + const vaultPrice = getCollateralPrice(prices, vaultType); + if (isHardVault) { + cVault = hardVaults.wethVault; + cVaultRead = hardVaults.wethVaultRead; + } + + switch (vaultType) { + case TOKENS_SYMBOLS.DAI: + if (isHardVault) { + cVault = hardVaults.daiVault; + cVaultRead = hardVaults.daiVaultRead; + } else { + cVault = vaults.daiVault; + cVaultRead = vaults.daiVaultRead; + } + break; + case TOKENS_SYMBOLS.AAVE: + cVault = vaults.aaveVault; + cVaultRead = vaults.aaveVaultRead; + break; + case TOKENS_SYMBOLS.LINK: + cVault = vaults.linkVault; + cVaultRead = vaults.linkVaultRead; + break; + case TOKENS_SYMBOLS.SNX: + cVault = vaults.snxVault; + cVaultRead = vaults.snxVaultRead; + break; + case TOKENS_SYMBOLS.UNI: + cVault = vaults.uniVault; + cVaultRead = vaults.uniVaultRead; + break; + case TOKENS_SYMBOLS.MATIC: + cVault = vaults.maticVault; + cVaultRead = vaults.maticVaultRead; + break; + case TOKENS_SYMBOLS.WBTC: + cVault = vaults.wbtcVault; + cVaultRead = vaults.wbtcVaultRead; + break; + case TOKENS_SYMBOLS.USDC: + cVault = hardVaults.usdcVault; + cVaultRead = hardVaults.usdcVaultRead; + break; + default: + if (isHardVault) { + cVault = hardVaults.wethVault; + cVaultRead = hardVaults.wethVaultRead; + } else { + cVault = vaults.wethVault; + cVaultRead = vaults.wethVaultRead; + } + break; + } + + const reqTcapCall = await cVaultRead?.requiredLiquidationTCAP(BigNumber.from(vaultId)); + const liqRewardCall = await cVaultRead?.liquidationReward(BigNumber.from(vaultId)); + // @ts-ignore + const [reqTcap, liqReward] = await signer.ethcallProvider?.all([reqTcapCall, liqRewardCall]); + + const reqTcapText = ethers.utils.formatEther(reqTcap); + const liqRewardText = ethers.utils.formatUnits(liqReward, decimals); + const currentLiqFee = await cVault?.getFee(reqTcap); + const increasedFee = currentLiqFee.add(currentLiqFee.div(100)).toString(); + const ethFee = ethers.utils.formatEther(increasedFee); + + return ( + toUSD(liqRewardText, vaultPrice) - + toUSD(reqTcapText, prices.tcapOraclePrice) - + toUSD(ethFee, prices.wethOraclePrice) + ); + } catch (error: any) { + if (error.code !== "UNPREDICTABLE_GAS_LIMIT") { + console.log(error.code); + } + return 0; + } + }; + + const calculateVaultData = ( + collateralWei: ethers.BigNumberish, + debtWei: ethers.BigNumberish, + symbol: string, + isHardVault: boolean, + decimals: number + ) => { + const indexPrice = !isArbitrum(currentNetwork.chainId) + ? prices.tcapOraclePrice + : prices.jpegzOraclePrice; + const collateralText = ethers.utils.formatUnits(collateralWei, decimals); + const debtText = ethers.utils.formatEther(debtWei); + const collateralPrice = getCollateralPrice(prices, symbol); + const collateralUSD = toUSD(collateralText, collateralPrice); + const debtUSD = toUSD(debtText, indexPrice || "0"); + const minRatio = getMinRatio(ratios, symbol, isHardVault); + const ratio = getRatio2(collateralText, collateralPrice, debtText, indexPrice || "1"); + + let status = VAULT_STATUS.liquidation; + if (parseFloat(collateralText) === 0) { + status = VAULT_STATUS.empty; + } else if (parseFloat(collateralText) > 0 && parseFloat(debtText) <= 0) { + status = VAULT_STATUS.ready; + } else if (ratio >= minRatio) { + status = VAULT_STATUS.active; + } + return { collateralText, collateralUSD, debtText, debtUSD, ratio, minRatio, status }; + }; + + const confPagination = (vData: Array, itemsPerPage: number, vaultsAmount: number) => { + if (vData.length > 0) { + const lastVaultId = vData[vData.length - 1].blockTS; + const itemsCount = vData.length; + const pages = Math.ceil(itemsCount / itemsPerPage); + const lastDataPage = Math.ceil(itemsCount / itemsPerPage); + const isOneFirstPage = !(loadingMore && currentStatus !== VAULT_STATUS.liquidation); + + const pag = { + previous: 0, + current: isOneFirstPage ? 1 : pagination.pages + 1, + next: isOneFirstPage ? 2 : pagination.pages + 2, + pages, + lastDataPage, + itemsPerPage, + itemsCount, + totalItems: vaultsAmount - 1, + totalPages: Math.ceil((vaultsAmount - 1) / itemsPerPage), + lastId: lastVaultId, + }; + setPagination(pag); + } else { + setPagination(pagDefault); + } + }; + + const loadTotals = () => { + let totalId = ""; + let vaultsAmount = 0; + if (tokenSymbol !== "all" || currentStatus !== "all") { + if (tokenSymbol !== "all") { + totalId = tokenSymbol.toUpperCase(); + } + if (currentStatus !== "all") { + if (totalId === "") { + totalId = currentStatus; + } else { + totalId = totalId.concat("_").concat(currentStatus); + } + } + } else { + totalId = "all"; + } + + const vs = vaultsSummary.find((item) => item.id === totalId); + if (vs) { + const indexPrice = !isArbitrum(currentNetwork.chainId) + ? prices.tcapOraclePrice + : prices.jpegzOraclePrice; + + const tDebtUsd = parseFloat(vs.debt) * parseFloat(indexPrice); + setVaultsTotals({ + vaults: vs.vaultsAmount, + collateral: vs.collateral, + collateralUSD: vs.collateralUsd, + debt: vs.debt, + debtUSD: tDebtUsd.toFixed(2), + }); + vaultsAmount = vs.vaultsAmount; + } + return vaultsAmount; + }; + + const isValidCollateral = (symbol: string): boolean => { + if (tokenSymbol !== KEYWORD_ALL) { + return symbol === tokenSymbol; + } + return true; + }; + + const isValidStatus = (vStatus: string): boolean => { + if (currentStatus !== KEYWORD_ALL) { + return vStatus === currentStatus; + } + return true; + }; + + const loadVaults = async (vaultsData: any, cStatus: string) => { + let vData = new Array(); + let totals = { ...totalsDefault }; + let vaultsAmount = 0; + let currentLastBlockTS = pagination.lastId; + if (loadingMore) { + vData = vaultList; + totals = vaultsTotals; + } + + const vLiquidables = new Array(); + const minFilterRatio = getMinRangeRatio(); + const maxFilterRatio = getMaxRangeRatio(); + + setFilteringRatios(true); + // setLiqLoaded(currentStatus !== VAULT_STATUS.liquidation); + // @ts-ignore + vaultsData.vaults.forEach((v) => { + let validVault = true; + if (isMyVaults()) { + validVault = isValidCollateral(v.tokenSymbol) && isValidStatus(v.status); + } + + if (validVault) { + const cVaultDecimals = v.underlyingProtocol.underlyingToken.decimals; + const { collateralText, collateralUSD, debtText, debtUSD, ratio, minRatio, status } = + calculateVaultData(v.collateral, v.debt, v.tokenSymbol, v.hardVault, cVaultDecimals); + + let addVault = true; + if (cStatus === VAULT_STATUS.liquidation) { + addVault = cStatus === status; + } + // filter ratio + if (cStatus !== VAULT_STATUS.empty && cStatus !== VAULT_STATUS.ready) { + addVault = addVault && ratio >= minFilterRatio && ratio <= maxFilterRatio; + } + + // show only wbtc hard vaults + if (v.tokenSymbol === TOKENS_SYMBOLS.WBTC) { + addVault = addVault && v.hardVault; + } + + if (addVault) { + let vaultUrl = ""; + const symbol = v.tokenSymbol === TOKENS_SYMBOLS.WETH ? TOKENS_SYMBOLS.ETH : v.tokenSymbol; + if (v.owner.toLowerCase() === currentAddress.toLowerCase()) { + vaultUrl = window.location.origin.concat("/vault/").concat(symbol); + } + if (cStatus === VAULT_STATUS.liquidation) { + vLiquidables.push({ + vaultId: v.vaultId, + vaultType: v.tokenSymbol, + decimals: cVaultDecimals, + hardVault: v.hardVault, + }); + } + + vData.push({ + id: v.vaultId, + collateralSymbol: v.tokenSymbol, + collateralValue: collateralText, + collateralUsd: collateralUSD.toFixed(2), + debt: debtText, + debtUsd: debtUSD.toFixed(2), + ratio, + minRatio: minRatio.toString(), + decimals: cVaultDecimals, + isHardVault: v.hardVault, + netReward: 0, + status, + blockTS: v.blockTS, + url: vaultUrl, + }); + + if (isMyVaults() || cStatus === VAULT_STATUS.liquidation) { + totals.vaults += 1; + totals.collateral = ( + parseFloat(totals.collateral) + parseFloat(collateralText) + ).toFixed(4); + totals.collateralUSD = (parseFloat(totals.collateralUSD) + collateralUSD).toFixed(2); + totals.debt = (parseFloat(totals.debt) + parseFloat(debtText)).toFixed(4); + totals.debtUSD = (parseFloat(totals.debtUSD) + debtUSD).toFixed(2); + } + } + + currentLastBlockTS = v.blockTS; + } + }); + + if (currentStatus !== VAULT_STATUS.liquidation) { + setVaultList(vData); + if (isMyVaults()) { + setVaultsTotals(totals); + vaultsAmount = totals.vaults; + } else { + vaultsAmount = loadTotals(); + } + } else { + const loadNetReward = async () => { + vLiquidables.forEach((l, index) => { + calculateNetRewardUsd(l.vaultId, l.vaultType, l.hardVault, l.decimals).then((result) => { + const newA = [...vData]; + newA[index].netReward = result; + setVaultList(newA); + }); + }); + }; + loadNetReward().then(() => { + setVaultList(vData); + setVaultsTotals(totals); + }); + vaultsAmount = totals.vaults; + } + + // Set pagination data + confPagination(vData, pagination.itemsPerPage, vaultsAmount); + setFilteringRatios(false); + setLoadingMore(false); + + if (cStatus === VAULT_STATUS.liquidation) { + if (vaultsData.vaults.length >= 1000) { + const lastVId = currentLastBlockTS; + setLoadingMore(true); + if (tokenSymbol !== KEYWORD_ALL) { + // eslint-disable-next-line no-use-before-define + refetchTokenInLiq({ lastBlockTS: lastVId, symbol: tokenSymbol }); + } else { + // eslint-disable-next-line no-use-before-define + refetchInLiq({ lastBlockTS: lastVId }); + } + } + } + }; + + // Graphql queries + const [loadVaultData, { loading, refetch: refetchVaults }] = useLazyQuery(VAULTS_ALL, { + fetchPolicy: "no-cache", + notifyOnNetworkStatusChange: true, + variables: { lastBlockTS: "0" }, + onError: (error) => { + console.log(error); + }, + onCompleted: (data: any) => { + if (!isUndefined(data)) { + loadVaults(data, currentStatus); + setVaultsUpdated(true); + } + }, + }); + + const [loadVaultByCollateral, { loading: loadingByCollateral, refetch: refetchByCollateral }] = + useLazyQuery(VAULTS_BY_COLLATERAL, { + fetchPolicy: "no-cache", + notifyOnNetworkStatusChange: true, + variables: { lastBlockTS: "0", symbol: tokenSymbol }, + onError: (error) => { + console.log(error); + }, + onCompleted: (data: any) => { + if (!isUndefined(data)) { + loadVaults(data, currentStatus); + setVaultsUpdated(true); + } + }, + }); + + const [loadVaultByStatus, { loading: loadingByStatus, refetch: refetchByStatus }] = useLazyQuery( + VAULTS_BY_STATUS, + { + fetchPolicy: "no-cache", + notifyOnNetworkStatusChange: true, + variables: { lastBlockTS: "0", status: currentStatus }, + onError: (error) => { + console.log(error); + }, + onCompleted: (data: any) => { + if (!isUndefined(data)) { + loadVaults(data, currentStatus); + setVaultsUpdated(true); + } + }, + } + ); + + const [loadVaultByTS, { loading: loadingByTS, refetch: refetchByTS }] = useLazyQuery( + VAULTS_BY_TOKEN_STATUS, + { + fetchPolicy: "no-cache", + notifyOnNetworkStatusChange: true, + variables: { lastBlockTS: "0", symbol: tokenSymbol, status: currentStatus }, + onError: (error) => { + console.log(error); + }, + onCompleted: (data: any) => { + if (!isUndefined(data)) { + loadVaults(data, currentStatus); + setVaultsUpdated(true); + } + }, + } + ); + + const [loadVaultInLiq, { loading: loadingInLiq, refetch: refetchInLiq }] = useLazyQuery( + VAULTS_IN_LIQ, + { + fetchPolicy: "no-cache", + notifyOnNetworkStatusChange: true, + variables: { lastBlockTS: "0" }, + onError: (error) => { + console.log(error); + }, + onCompleted: (data: any) => { + if (!isUndefined(data)) { + loadVaults(data, currentStatus); + setVaultsUpdated(true); + } + }, + } + ); + + const [loadVaultTokenInLiq, { loading: loadingTokenInLiq, refetch: refetchTokenInLiq }] = + useLazyQuery(VAULTS_IN_LIQ_BY_TOKEN, { + fetchPolicy: "no-cache", + notifyOnNetworkStatusChange: true, + variables: { lastBlockTS: "0", symbol: tokenSymbol }, + onError: (error) => { + console.log(error); + }, + onCompleted: (data: any) => { + if (!isUndefined(data)) { + loadVaults(data, currentStatus); + setVaultsUpdated(true); + } + }, + }); + + const [loadVaulsByUser, { loading: loadingByUser }] = useLazyQuery(VAULTS_BY_USER, { + fetchPolicy: "no-cache", + notifyOnNetworkStatusChange: true, + variables: { ownerAddress: currentAddress }, + onError: (error) => { + console.log(error); + }, + onCompleted: (data: any) => { + if (!isUndefined(data)) { + loadVaults(data, currentStatus); + setVaultsUpdated(true); + } + }, + }); + + useEffect( + () => { + const load = async () => { + if (signer && currentAddress !== "") { + if (!vaultsUpdated && !loadingPrices) { + if (currentOwnerFilter.value === "1") { + loadVaulsByUser(); + } else { + loadVaultData(); + } + } + } else if (prices.daiOraclePrice !== "0") { + setCurrentOwnerFilter(vaultsOwnerFilter[0]); + loadVaultData(); + } + }; + load(); + }, + // eslint-disable-next-line + [signer, loadingPrices, prices.daiOraclePrice] + ); + + const tokensSymbols = (): Array => { + const symbols = [{ key: KEYWORD_ALL, name: "All" }]; + if (isInLayer1(currentNetwork.chainId)) { + symbols.push({ key: TOKENS_SYMBOLS.WETH, name: TOKENS_SYMBOLS.ETH }); + symbols.push({ key: TOKENS_SYMBOLS.DAI, name: TOKENS_SYMBOLS.DAI }); + if (showAllVaults) { + symbols.push({ key: TOKENS_SYMBOLS.AAVE, name: TOKENS_SYMBOLS.AAVE }); + symbols.push({ key: TOKENS_SYMBOLS.LINK, name: TOKENS_SYMBOLS.LINK }); + symbols.push({ key: TOKENS_SYMBOLS.USDC, name: TOKENS_SYMBOLS.USDC }); + } + symbols.push({ key: TOKENS_SYMBOLS.WBTC, name: TOKENS_SYMBOLS.WBTC }); + } else if (isArbitrum(currentNetwork.chainId)) { + symbols.push({ key: TOKENS_SYMBOLS.WETH, name: TOKENS_SYMBOLS.ETH }); + symbols.push({ key: TOKENS_SYMBOLS.DAI, name: TOKENS_SYMBOLS.DAI }); + } else if (isOptimism(currentNetwork.chainId)) { + symbols.push({ key: TOKENS_SYMBOLS.WETH, name: TOKENS_SYMBOLS.ETH }); + symbols.push({ key: TOKENS_SYMBOLS.DAI, name: TOKENS_SYMBOLS.DAI }); + if (showAllVaults) { + symbols.push({ key: TOKENS_SYMBOLS.LINK, name: TOKENS_SYMBOLS.LINK }); + symbols.push({ key: TOKENS_SYMBOLS.UNI, name: TOKENS_SYMBOLS.UNI }); + symbols.push({ key: TOKENS_SYMBOLS.SNX, name: TOKENS_SYMBOLS.SNX }); + } + } else { + symbols.push({ key: TOKENS_SYMBOLS.MATIC, name: TOKENS_SYMBOLS.MATIC }); + symbols.push({ key: TOKENS_SYMBOLS.DAI, name: TOKENS_SYMBOLS.DAI }); + symbols.push({ key: TOKENS_SYMBOLS.WBTC, name: TOKENS_SYMBOLS.WBTC }); + } + + return symbols; + }; + + const handleItemsViewChange = (number: string) => { + confPagination(vaultList, parseInt(number), vaultsTotals.vaults); + }; + + const handleFiltersChange = (newStatus: string, newToken: string) => { + if (newStatus === KEYWORD_ALL && newToken === KEYWORD_ALL) { + if (allVaultsFirstLoad) { + setAllVaultsFirstLoad(false); + loadVaultData(); + } else { + refetchVaults({ lastBlockTS: "0" }); + } + } else if (newStatus === VAULT_STATUS.liquidation) { + if (newToken !== KEYWORD_ALL) { + if (byTokenInLiqFirstLoad) { + setByTokenInLiqFirstLoad(false); + loadVaultTokenInLiq(); + } else { + refetchTokenInLiq({ lastBlockTS: "0", symbol: newToken }); + } + } else if (byInLiqFirstLoad) { + setByInLiqFirstLoad(false); + loadVaultInLiq(); + } else { + refetchInLiq({ lastBlockTS: "0" }); + } + } else if (newStatus !== KEYWORD_ALL && newToken !== KEYWORD_ALL) { + if (byTSFirstLoad) { + setByTSFirstLoad(false); + loadVaultByTS(); + } else { + refetchByTS({ lastBlockTS: "0", symbol: newToken, status: newStatus }); + } + } else if (newStatus !== KEYWORD_ALL) { + if (byStatusFirstLoad) { + setByStatusFirstLoad(false); + loadVaultByStatus(); + } else { + refetchByStatus({ lastBlockTS: "0", status: newStatus }); + } + } else if (newToken !== KEYWORD_ALL) { + if (byCollateralFirstLoad) { + setByCollateralFirstLoad(false); + loadVaultByCollateral(); + } else { + refetchByCollateral({ lastBlockTS: "0", symbol: newToken }); + } + } + }; + + const handleVaultOwnerFilterChange = (value: string) => { + setCurrentOwnerFilter(vaultsOwnerFilter[parseInt(value)]); + if (value === "0") { + setPagination(pagDefault); + handleFiltersChange(currentStatus, tokenSymbol); + } else { + loadVaulsByUser(); + } + }; + + const handleStatusChange = (newStatus: string) => { + setCurrentStatus(newStatus); + if (isMyVaults()) { + loadVaulsByUser(); + } else { + handleFiltersChange(newStatus, tokenSymbol); + } + }; + + const handleTokenChange = (newToken: string) => { + setTokenSymbol(newToken); + if (isMyVaults()) { + loadVaulsByUser(); + } else { + handleFiltersChange(currentStatus, newToken); + } + }; + + const handleModeChange = (newMode: string) => { + setVaultMode(newMode); + if (isMyVaults()) { + loadVaulsByUser(); + } else { + refetchVaults({ lastBlockTS: "0" }); + } + }; + + const onFilterRatioClick = () => { + if (minRatioInput && maxRatioInput) { + // @ts-ignore + const minRatio = minRatioInput.current.value; + // @ts-ignore + const maxRatio = maxRatioInput.current.value; + if (isValidRatio(minRatio) && isValidRatio(maxRatio)) { + setCurrentMinRatio(minRatio.concat("%")); + setCurrentMaxRatio(maxRatio.concat("%")); + // @ts-ignore + handleFiltersChange(currentStatus, tokenSymbol); + if (ratioRangeDropdown !== null) { + // @ts-ignore + ratioRangeDropdown.current.click(); + } + } + } + }; + + const onPageSelected = (pageNumber: number) => { + let nextPage = pageNumber + 1; + if (pageNumber === pagination.pages && pagination.pages === pagination.totalPages) { + nextPage = 0; + } + + if (pageNumber > pagination.lastDataPage) { + setLoadingMore(true); + if (tokenSymbol === KEYWORD_ALL && currentStatus === KEYWORD_ALL) { + refetchVaults({ lastBlockTS: pagination.lastId }); + } else if (currentStatus === VAULT_STATUS.liquidation) { + if (tokenSymbol !== KEYWORD_ALL) { + refetchTokenInLiq({ lastBlockTS: pagination.lastId, symbol: tokenSymbol }); + } else { + refetchInLiq({ lastBlockTS: pagination.lastId }); + } + } else if (tokenSymbol !== KEYWORD_ALL) { + refetchByCollateral({ lastBlockTS: pagination.lastId, symbol: tokenSymbol }); + } else if (currentStatus !== KEYWORD_ALL) { + refetchByStatus({ lastBlockTS: pagination.lastId, status: currentStatus }); + } + } else { + const newPagination = { + ...pagination, + previous: pageNumber === 1 ? 0 : pageNumber - 1, + current: pageNumber, + next: nextPage, + }; + setPagination(newPagination); + } + }; + + const updateLiquidatedVault = async ( + index: number, + symbol: string, + vaultId: string, + collateral: ethers.BigNumberish, + debt: ethers.BigNumberish + ) => { + const { collateralText, collateralUSD, debtText, debtUSD, ratio, minRatio, status } = + calculateVaultData( + collateral, + debt, + symbol, + vaultList[index].isHardVault, + vaultList[index].decimals + ); + const allVaults = vaultList; + const v = { + id: vaultId, + collateralSymbol: symbol, + collateralValue: collateralText, + collateralUsd: collateralUSD.toFixed(2), + debt: debtText, + debtUsd: debtUSD.toFixed(2), + ratio, + minRatio: minRatio.toString(), + decimals: vaultList[index].decimals, + isHardVault: vaultList[index].isHardVault, + netReward: 0, + status, + blockTS: vaultList[index].blockTS, + url: vaultList[index].url, + }; + allVaults[index] = Object.create(v); + setVaultList(Array.from(allVaults)); + setRenderTable(!renderTable); + }; + + const newVault = () => { + let newAssetSymbol = TOKENS_SYMBOLS.TCAP; + let newCollateralSymbol = TOKENS_SYMBOLS.ETH; + let isHardVault = false; + const createdCollaterals = []; + for (let i = 0; i < vaultList.length; i += 1) { + createdCollaterals.push(vaultList[i].collateralSymbol); + } + + if (createdCollaterals.includes(TOKENS_SYMBOLS.WETH)) { + createdCollaterals.push(TOKENS_SYMBOLS.ETH); + } + + if (isInLayer1(currentNetwork.chainId)) { + [newCollateralSymbol, isHardVault] = findNewMainnetVaultCollateral(createdCollaterals); + } + if (isOptimism(currentNetwork.chainId)) { + newCollateralSymbol = findNewOptimismVaultCollateral(createdCollaterals); + } + if (isArbitrum(currentNetwork.chainId)) { + newAssetSymbol = TOKENS_SYMBOLS.JPEGz; + newCollateralSymbol = findNewArbitrumVaultCollateral(createdCollaterals); + } + + setVaultToUpdate({ + vaultId: "0", + assetSymbol: newAssetSymbol, + collateralSymbol: newCollateralSymbol, + isHardVault, + }); + }; + + const RenderFilters = () => ( + <> +
+
+
+ <>{t("view")}: +
+ handleItemsViewChange(eventKey || "15")}> + +
+ {pagination.itemsPerPage} +
+
+ + {viewsList.map((item) => ( + + {item.name} + + ))} + +
+
+
+
+
+
+ <>{t("collateral")} +
+ handleTokenChange(eventKey || KEYWORD_ALL)} + > + +
+ + {tokenSymbol.toUpperCase()} +
+
+ + {tokensSymbols().map((item) => ( + + {item.name} + + ))} + +
+
+
+
Status
+ handleStatusChange(eventKey || KEYWORD_ALL)}> + +
+ {capitalize(currentStatus)} +
+
+ + {statusList.map((item) => ( + + {item.name} + + ))} + +
+
+ {isInLayer1(currentNetwork.chainId) && ( +
+
+ <>{t("mode")} +
+ handleModeChange(eventKey || "ALL")} + > + +
+ {capitalize(vaultMode)} +
+
+ + {modeList.map((item) => ( + + {item.name} + + ))} + +
+
+ )} +
+
Ratio Range
+ + +
+ + {currentMinRatio} {currentMaxRatio} + +
+
+ +
+ + + +
+ +
+
+
+
+
Vaults
+ handleVaultOwnerFilterChange(eventKey || "1")}> + +
+ {capitalize(currentOwnerFilter.name)} +
+
+ + + {vaultsOwnerFilter[0].name} + + + {vaultsOwnerFilter[1].name} + + +
+
+
+ +
+
+ + ); + + const isLoadingVaults = () => + loading || + loadingByUser || + loadingByCollateral || + loadingByStatus || + loadingByTS || + loadingInLiq || + loadingTokenInLiq || + filteringRatios; + + return ( +
+ + {!isMobile ? ( + + + + + + {isLoadingVaults() ? ( + + ) : ( + ) => setVaultList(v)} + currentStatus={currentStatus} + pagination={pagination} + refresh={updateLiquidatedVault} + setVaultToUpdate={setVaultToUpdate} + myVaults={currentOwnerFilter.value === "1"} + /> + )} + + {pagination.pages > 0 && !isLoadingVaults() && ( + + )} + + + + ) : ( + <> + + + +
Filters
+
+ + + +
+
+ + {loading || filteringRatios ? ( + + ) : ( + <> + ) => setVaultList(v)} + currentStatus={currentStatus} + pagination={pagination} + refresh={updateLiquidatedVault} + setVaultToUpdate={setVaultToUpdate} + myVaults={currentOwnerFilter.value === "1"} + /> + + )} + + )} +
+ ); +}; + +export default Monitoring; diff --git a/src/components/Vaults/types.tsx b/src/components/Vaults/types.tsx new file mode 100644 index 00000000..6fb3a08b --- /dev/null +++ b/src/components/Vaults/types.tsx @@ -0,0 +1,85 @@ +import { ethers } from "ethers"; + +export type PaginationType = { + previous: number; + current: number; + next: number; + pages: number; + lastDataPage: number; + itemsPerPage: number; + itemsCount: number; + totalItems: number; + totalPages: number; + lastId: string; +}; + +export type VaultsPropsType = { + currentAddress: string; + vaults: Array; + setVaults: (v: Array) => void; + currentStatus: string; + pagination: PaginationType; + refresh: ( + index: number, + symbol: string, + vaultId: string, + collateral: ethers.BigNumberish, + debt: ethers.BigNumberish + ) => void; + setVaultToUpdate: (initData: VaultToUpdateType) => void; + myVaults: boolean; +}; + +export type VaultsRatioType = { + ethRatio: number; + wethRatio: number; + daiRatio: number; + aaveRatio: number; + linkRatio: number; + uniRatio: number; + snxRatio: number; + maticRatio: number; + wbtcRatio: number; + hardEthRatio: number; + hardWethRatio: number; + hardDaiRatio: number; + hardUsdcRatio: number; + hardWbtcRatio: number; +}; + +export type VaultsType = { + id: string; + collateralSymbol: string; + collateralValue: string; + collateralUsd: string; + debt: string; + debtUsd: string; + ratio: number; + minRatio: string; + decimals: number; + isHardVault: boolean; + netReward: number; + status: string; + blockTS: string; + url: string; +}; + +export type VaultsTotalsType = { + vaults: number; + collateral: string; + collateralUSD: string; + debt: string; + debtUSD: string; +}; + +export type VaultToUpdateType = { + vaultId: string; + assetSymbol: string; + collateralSymbol: string; + isHardVault: boolean; +} + +export type DropdownItemType = { + key: string; + name: string; +}; diff --git a/src/components/Vaults/vault/index.tsx b/src/components/Vaults/vault/index.tsx new file mode 100644 index 00000000..23ae59ad --- /dev/null +++ b/src/components/Vaults/vault/index.tsx @@ -0,0 +1,1620 @@ +import React, { useContext, useState, useEffect } from "react"; +import { ethers, BigNumber } from "ethers"; +import { + Alert, + Button, + ButtonGroup, + Dropdown, + Form, + InputGroup, + OverlayTrigger, + Spinner, + ToggleButton, + Tooltip, +} from "react-bootstrap/esm"; +import NumberFormat from "react-number-format"; +import { useTranslation } from "react-i18next"; +import { FaPlus } from "react-icons/fa"; +import "../../../styles/vault.scss"; +import { useVault } from "../../../hooks"; +import { networkContext, signerContext } from "../../../state"; +import { capitalize, TokenIcon } from "../common"; +import { NETWORKS, TOKENS_SYMBOLS, BIG_NUMBER_ZERO } from "../../../utils/constants"; +import { + errorNotification, + getDefaultProvider, + getRatio, + getSafeRemoveCollateral, + getSafeMint, + isArbitrum, + isPolygon, + isOptimism, + notifyUser, + toUSD, + isInLayer1, +} from "../../../utils/utils"; + +type VaultInitType = { + vaultId: string; + assetSymbol: string; + collateralSymbol: string; + isHardVault: boolean; +}; + +type props = { + currentAddress: string; + vaultInitData: VaultInitType; + goBack: () => void; +}; + +const Vault = ({ currentAddress, vaultInitData, goBack }: props) => { + const { t } = useTranslation(); + const currentNetwork = useContext(networkContext); + const signer = useContext(signerContext); + const [vaultMode, setVaultMode] = useState(vaultInitData.isHardVault ? "hard" : "normal"); + const [vaultData, setVaultData] = useState(vaultInitData); + const radios = [ + { name: "R Mode", value: "normal" }, + { name: "H Mode", value: "hard" }, + ]; + + const [ + { + currentCollateral, + currentVault, + currentAssetRead, + currentCollateralRead, + currentVaultRead, + currentCollateralOracleRead, + currentAssetOracleRead, + }, + loadingVault, + ] = useVault(vaultData.assetSymbol, vaultData.collateralSymbol, vaultData.isHardVault); + const actions = ["add", "remove", "mint", "burn"]; + + // Actions + const [title, setTitle] = useState(t("vault.create")); + const [text, setText] = useState(t("vault.create-text", { asset: "Index" })); + const [isLoading, setIsLoading] = useState(false); + const [loadingMax, setLoadingMax] = useState(false); + const [btnDisabled, setBtnDisabled] = useState(false); + const [activeAction, setActiveAction] = useState("add"); + const [refreshVault, setRefreshVault] = useState(false); + const [rerender, setRerender] = useState(false); + + // Vault Data + const [assetOptions, setAssetOptions] = useState>([]); + const [collateralOptions, setCollateralOptions] = useState>([]); + + const [currentVaultId, setCurrentVaultId] = useState("0"); + const [isApproved, setIsApproved] = useState(false); + const [vaultDebt, setVaultDebt] = useState("0"); + const [vaultDebtRaw, setVaultDebtRaw] = useState(BIG_NUMBER_ZERO); + const [vaultDebtUSD, setVaultDebtUSD] = useState("0"); + const [vaultCollateral, setVaultCollateral] = useState("0"); + const [vaultCollateralRaw, setVaultCollateralRaw] = useState(BIG_NUMBER_ZERO); + const [vaultCollateralUSD, setVaultCollateralUSD] = useState("0"); + const [vaultRatio, setVaultRatio] = useState("0"); + const [tempRatio, setTempRatio] = useState(""); + const [minRatio, setMinRatio] = useState("0"); + const [selectedVaultDecimals, setSelectedVaultDecimals] = useState(18); + + // General Data + const isHardMode = () => vaultMode === "hard"; + const [indexBalance, setIndexBalance] = useState("0"); + const [indexBalanceRaw, setIndexBalanceRaw] = useState(BIG_NUMBER_ZERO); + const [indexBalanceUSD, setIndexBalanceUSD] = useState("0"); + const [collateralBalance, setCollateralBalance] = useState("0"); + const [collateralBalanceUSD, setCollateralBalanceUSD] = useState("0"); + const [tokenBalanceDecimals, setTokenBalanceDecimals] = useState(2); + + // Inputs + const [addCollateralTxt, setAddCollateralTxt] = useState("0"); + const [addCollateralUSD, setAddCollateralUSD] = useState("0"); + const [removeCollateralTxt, setRemoveCollateralTxt] = useState("0"); + const [removeCollateralUSD, setRemoveCollateralUSD] = useState("0"); + const [mintTxt, setMintTxt] = useState("0"); + const [mintUSD, setMintUSD] = useState("0"); + const [mintFee, setMintFee] = useState("0"); + const [burnTxt, setBurnTxt] = useState("0"); + const [burnUSD, setBurnUSD] = useState("0"); + const [burnFee, setBurnFee] = useState("0"); + const [vaultStatus, setVaultStatus] = useState(""); + // Infinite Approval + const approveValue = BigNumber.from("1157920892373161954235709850086879078532699"); + + const setCollaterals = (newMode: string) => { + if (currentAddress !== "") { + let aOptions = [TOKENS_SYMBOLS.TCAP]; + if (isArbitrum(currentNetwork.chainId)) { + aOptions = [TOKENS_SYMBOLS.JPEGz]; + } + + let cOptions = [ + TOKENS_SYMBOLS.ETH, + TOKENS_SYMBOLS.WETH, + TOKENS_SYMBOLS.DAI, + TOKENS_SYMBOLS.AAVE, + TOKENS_SYMBOLS.LINK, + ]; + if (newMode === "hard") { + cOptions = [ + TOKENS_SYMBOLS.ETH, + TOKENS_SYMBOLS.WETH, + TOKENS_SYMBOLS.DAI, + TOKENS_SYMBOLS.USDC, + TOKENS_SYMBOLS.WBTC, + ]; + } + if (isArbitrum(currentNetwork.chainId)) { + cOptions = [TOKENS_SYMBOLS.ETH, TOKENS_SYMBOLS.WETH, TOKENS_SYMBOLS.DAI]; + } + if (isOptimism(currentNetwork.chainId) && !isHardMode()) { + cOptions = [ + TOKENS_SYMBOLS.ETH, + TOKENS_SYMBOLS.DAI, + TOKENS_SYMBOLS.LINK, + TOKENS_SYMBOLS.UNI, + TOKENS_SYMBOLS.SNX, + ]; + } + if (isPolygon(currentNetwork.chainId) && !isHardMode()) { + cOptions = [TOKENS_SYMBOLS.MATIC, TOKENS_SYMBOLS.DAI, TOKENS_SYMBOLS.WBTC]; + } + + setAssetOptions(aOptions); + setCollateralOptions(cOptions); + } + }; + + async function loadVault() { + let cBalance; + let iBalance; + let currentIndexPrice = "0"; + let currentCollateralPrice = "0"; + const provider = getDefaultProvider(currentNetwork.chainId || NETWORKS.mainnet.chainId); + let currentVaultData: any; + // @ts-ignore + const vaultID = await currentVault.userToVault(currentAddress); + setCurrentVaultId(vaultID.toString()); + if (vaultID.toString() !== "0") { + // @ts-ignore + const cVault = await currentVault.vaults(vaultID); + currentVaultData = { + vaultId: vaultID, + collateral: cVault.Collateral, + debt: cVault.Debt, + }; + } + + if (vaultData.collateralSymbol !== TOKENS_SYMBOLS.ETH) { + // @ts-ignore + cBalance = await currentCollateral.balanceOf(currentAddress); + } else { + cBalance = await provider.getBalance(currentAddress); + } + + let decimals = 18; + if (vaultData.collateralSymbol === TOKENS_SYMBOLS.WBTC) { + decimals = 8; + } + if (vaultData.collateralSymbol === TOKENS_SYMBOLS.USDC) { + decimals = 6; + } + + setVaultDebtRaw(BIG_NUMBER_ZERO); + setIndexBalanceRaw(BIG_NUMBER_ZERO); + if (currentVaultData) { + const { collateral, debt } = currentVaultData; + // @ts-ignore + const allowanceCall = await currentCollateralRead.allowance( + currentAddress, + // @ts-ignore + currentVault.address + ); + // @ts-ignore + const currentRatioCall = await currentVaultRead.getVaultRatio(currentVaultData.vaultId); + + // @ts-ignore + const currentIndexPriceCall = await currentAssetOracleRead?.getLatestAnswer(); + // @ts-ignore + // const decimalsCall = await currentCollateralRead.decimals(); + // @ts-ignore + const currentCollateralPriceCall = await currentCollateralOracleRead.getLatestAnswer(); + // @ts-ignore + const currentMinRatioCall = await currentVaultRead.ratio(); + // @ts-ignore + const currentIndexBalanceCall = await currentAssetRead?.balanceOf(currentAddress); + + // @ts-ignore + const [ + allowance, + currentRatio, + currentMinRatio, + currentIndexBalance, + currentIndexPriceVal, + currentCollateralPriceVal, + ] = await signer.ethcallProvider?.all([ + allowanceCall, + currentRatioCall, + currentMinRatioCall, + currentIndexBalanceCall, + currentIndexPriceCall, + currentCollateralPriceCall, + ]); + + if (!isArbitrum(currentNetwork.chainId)) { + currentIndexPrice = ethers.utils.formatEther(currentIndexPriceVal); + } else { + currentIndexPrice = ethers.utils.formatEther(currentIndexPriceVal.mul(10)); + } + + currentCollateralPrice = ethers.utils.formatEther(currentCollateralPriceVal.mul(10000000000)); + + iBalance = ethers.utils.formatUnits(currentIndexBalance, 18); + setIndexBalance(iBalance); + setIndexBalanceRaw(currentIndexBalance); + + if (!allowance.isZero() || vaultData.collateralSymbol === TOKENS_SYMBOLS.ETH) { + const safeValue = isHardMode() ? 20 : 50; + const warnValue = isHardMode() ? 10 : 30; + + setMinRatio(currentMinRatio.toString()); + setIsApproved(true); + setVaultRatio(currentRatio.toString()); + if (currentRatio.toString() === "0") { + setVaultStatus("N/A"); + } else if (currentRatio.toString() >= parseFloat(currentMinRatio.toString()) + safeValue) { + setVaultStatus("safe"); + } else if (currentRatio.toString() >= parseFloat(currentMinRatio.toString()) + warnValue) { + setVaultStatus("warning"); + } else { + setVaultStatus("danger"); + } + + setVaultCollateralRaw(collateral); + const parsedCollateral = ethers.utils.formatUnits(collateral, decimals); + setVaultCollateral(parsedCollateral); + const usdCollateral = toUSD(currentCollateralPrice, parsedCollateral); + setVaultCollateralUSD(usdCollateral.toString()); + + setVaultDebtRaw(debt); + const parsedDebt = ethers.utils.formatEther(debt); + setVaultDebt(parsedDebt); + const usdIndex = toUSD(currentIndexPrice, parsedDebt); + setVaultDebtUSD(usdIndex.toString()); + } else { + setText(t("vault.approve-text", { asset: "Index" })); + setTitle(t("vault.approve")); + setIsApproved(false); + } + } else { + // @ts-ignore + // const decimalsCall = await currentCollateralRead.decimals(); + // @ts-ignore + const currentPriceCall = await currentCollateralOracleRead.getLatestAnswer(); + // @ts-ignore + const currentIndexBalanceCall = await currentAssetRead?.balanceOf(currentAddress); + // @ts-ignore + const currentIndexPriceCall = await currentAssetOracleRead?.getLatestAnswer(); + + // @ts-ignore + const [currentCollateralPriceVal, currentIndexBalance, currentIndexPriceVal] = + await signer.ethcallProvider?.all([ + currentPriceCall, + currentIndexBalanceCall, + currentIndexPriceCall, + ]); + currentCollateralPrice = ethers.utils.formatEther(currentCollateralPriceVal.mul(10000000000)); + + if (!isArbitrum(currentNetwork.chainId)) { + currentIndexPrice = ethers.utils.formatEther(currentIndexPriceVal); + } else { + currentIndexPrice = ethers.utils.formatEther(currentIndexPriceVal.mul(10)); + } + + iBalance = ethers.utils.formatUnits(currentIndexBalance, 18); + setIndexBalance(iBalance); + setIndexBalanceRaw(currentIndexBalance); + + setText(t("vault.create-text", { asset: "Index" })); + setTitle(t("vault.create")); + setIsApproved(false); + } + + setSelectedVaultDecimals(decimals); + const currentBalance = ethers.utils.formatUnits(cBalance, decimals); + if (parseFloat(currentBalance) < 0.09) { + setTokenBalanceDecimals(4); + } else { + setTokenBalanceDecimals(2); + } + setCollateralBalance(currentBalance); + + const iUsdBalance = toUSD(currentIndexPrice, iBalance); + const cUsdBalance = toUSD(currentCollateralPrice, currentBalance); + setIndexBalanceUSD(iUsdBalance.toString()); + setCollateralBalanceUSD(cUsdBalance.toString()); + setIsLoading(false); + setRerender(!rerender); + } + + useEffect( + () => { + const load = async () => { + setCollaterals(vaultData.isHardVault ? "hard" : "normal"); + if ( + currentAddress !== "" && + currentCollateral !== null && + currentAssetRead !== null && + !loadingVault + ) { + setIsLoading(true); + await loadVault(); + } + }; + load(); + }, + // eslint-disable-next-line + [currentAddress, currentVault?.address, refreshVault] + ); + + const assetPrice = async () => { + const currentAssetPriceCall = await currentAssetOracleRead?.getLatestAnswer(); + + // @ts-ignore + const [currentAssetPrice] = await signer.ethcallProvider?.all([currentAssetPriceCall]); + let cAssetPrice = currentAssetPrice; + if (isArbitrum(currentNetwork.chainId)) { + cAssetPrice = currentAssetPrice.mul(10); + } + + return cAssetPrice; + }; + + const collateralPrice = async () => { + const collateralPriceCall = await currentCollateralOracleRead?.getLatestAnswer(); + + // @ts-ignore + const [currentCollateralPrice] = await signer.ethcallProvider?.all([collateralPriceCall]); + return currentCollateralPrice; + }; + + const isGasAsset = () => + (!isPolygon(currentNetwork.chainId) && vaultData.collateralSymbol === TOKENS_SYMBOLS.ETH) || + (isPolygon(currentNetwork.chainId) && vaultData.collateralSymbol === TOKENS_SYMBOLS.MATIC); + + const refresh = async () => { + try { + const updateAction = isApproved; + await loadVault(); + if (updateAction) { + if (activeAction === "add") { + setActiveAction("mint"); + } + if (activeAction === "burn") { + setActiveAction("remove"); + } + } + } catch (error: any) { + console.log(error); + } + }; + + const resetFields = () => { + setBurnFee("0"); + setAddCollateralUSD("0"); + setAddCollateralTxt("0"); + setRemoveCollateralTxt("0"); + setRemoveCollateralUSD("0"); + setMintTxt("0"); + setMintUSD("0"); + setBurnUSD("0"); + setBurnTxt("0"); + setIndexBalanceRaw(BIG_NUMBER_ZERO); + setVaultDebtRaw(BIG_NUMBER_ZERO); + setVaultCollateralRaw(BIG_NUMBER_ZERO); + }; + + const changeVault = async (newRatio: number, reset = false) => { + const safeValue = isHardMode() ? 20 : 50; + const warnValue = isHardMode() ? 10 : 30; + let r = newRatio; + if (reset) { + r = parseFloat(tempRatio); + setVaultRatio(tempRatio); + setTempRatio(""); + resetFields(); + } else { + if (tempRatio === "") { + setTempRatio(vaultRatio); + } + r = newRatio; + setVaultRatio(r.toString()); + } + + if (r === 0) { + setVaultStatus(t("vault.status.na")); + } else if (r >= parseFloat(minRatio) + safeValue) { + setVaultStatus(t("vault.status.safe")); + } else if (r >= parseFloat(minRatio) + warnValue) { + setVaultStatus(t("vault.status.warning")); + } else if (r >= parseFloat(minRatio)) { + setVaultStatus(t("vault.status.danger")); + } else { + setVaultRatio("0"); + setVaultStatus(t("vault.status.error")); + } + }; + + const isValidTokenValue = (value: string): boolean => { + try { + ethers.utils.parseEther(value); + return true; + } catch (error: any) { + return false; + } + }; + + // Mint, Burn fees + const calculateMintFee = async (amount: string) => { + const currentMintFee = await currentVault?.getMintFee(ethers.utils.parseEther(amount)); + const increasedFee = currentMintFee.add(currentMintFee.div(100)).toString(); + + return increasedFee; + }; + + const calculateBurnFee = async (amount: string) => { + let increasedFee = BigNumber.from("0"); + if (!isArbitrum(currentNetwork.chainId)) { + const currentBurnFee = await currentVault?.getFee(ethers.utils.parseEther(amount)); + increasedFee = currentBurnFee.add(currentBurnFee.div(100)).toString(); + } else { + const currentBurnFee = await currentVault?.getBurnFee(ethers.utils.parseEther(amount)); + increasedFee = currentBurnFee.add(currentBurnFee.div(100)).toString(); + } + + return increasedFee; + }; + + // forms + const isMinRequiredTcap = (amount: number, isMint: boolean): boolean => { + if (isHardMode()) { + const d = parseFloat(vaultDebt); + let newDebt = 0; + if (isMint) { + newDebt = amount + d; + } else { + newDebt = d - amount; + } + return newDebt >= 20 || newDebt === 0; + } + return true; + }; + + const onChangeAddCollateral = async (event: React.ChangeEvent) => { + if (isValidTokenValue(event.target.value) || event.target.value === "") { + setAddCollateralTxt(event.target.value); + if (event.target.value !== "") { + const currentPrice = ethers.utils.formatEther((await collateralPrice()).mul(10000000000)); + const currentAssetPrice = ethers.utils.formatEther(await assetPrice()); + let usd = toUSD(currentPrice, event.target.value); + if (!usd) { + usd = 0; + } + const newCollateral = parseFloat(event.target.value) + parseFloat(vaultCollateral); + const r = await getRatio( + newCollateral.toString(), + currentPrice, + vaultDebt, + currentAssetPrice + ); + changeVault(r); + setAddCollateralUSD(usd.toString()); + } else { + changeVault(0, false); + setAddCollateralUSD("0"); + } + } + }; + + const onFocusAddCollateral = () => { + if (addCollateralTxt && parseFloat(addCollateralTxt) === 0) { + setAddCollateralTxt(""); + } + }; + + const onBlurAddCollateral = () => { + if (!addCollateralTxt) { + setAddCollateralTxt("0"); + } + }; + + const onChangeRemoveCollateral = async (event: React.ChangeEvent) => { + if (isValidTokenValue(event.target.value) || event.target.value === "") { + setRemoveCollateralTxt(event.target.value); + if (event.target.value !== "") { + const currentPrice = ethers.utils.formatEther((await collateralPrice()).mul(10000000000)); + const currentAssetPrice = ethers.utils.formatEther(await assetPrice()); + let usd = toUSD(currentPrice, event.target.value); + if (!usd) { + usd = 0; + } + const newCollateral = parseFloat(vaultCollateral) - parseFloat(event.target.value); + const r = await getRatio( + newCollateral.toString(), + currentPrice, + vaultDebt, + currentAssetPrice + ); + changeVault(r); + setRemoveCollateralUSD(usd.toString()); + } else { + changeVault(0, false); + setRemoveCollateralUSD("0"); + } + } + }; + + const onFocusRemoveCollateral = () => { + if (removeCollateralTxt && parseFloat(removeCollateralTxt) === 0) { + setRemoveCollateralTxt(""); + } + }; + + const onBlurRemoveCollateral = () => { + if (!removeCollateralTxt) { + setRemoveCollateralTxt("0"); + } + }; + + const onChangeMint = async (event: React.ChangeEvent) => { + if (isValidTokenValue(event.target.value) || event.target.value === "") { + setMintTxt(event.target.value); + if (event.target.value !== "") { + const currentPrice = ethers.utils.formatEther((await collateralPrice()).mul(10000000000)); + const currentAssetPrice = ethers.utils.formatEther(await assetPrice()); + let usd = toUSD(currentAssetPrice, event.target.value); + if (!usd) { + usd = 0; + } + const newDebt = parseFloat(event.target.value) + parseFloat(vaultDebt); + const r = await getRatio( + vaultCollateral, + currentPrice, + newDebt.toString(), + currentAssetPrice + ); + changeVault(r); + setMintUSD(usd.toFixed(14)); + + if (isArbitrum(currentNetwork.chainId)) { + const increasedFee = await calculateMintFee(event.target.value); + const ethFee = ethers.utils.formatEther(increasedFee); + setMintFee(ethFee.toString()); + } + } else { + changeVault(0, false); + setMintUSD("0"); + } + } + }; + + const onFocusMint = () => { + if (mintTxt && parseFloat(mintTxt) === 0) { + setMintTxt(""); + } + }; + + const onBlurMint = () => { + if (!mintTxt) { + setMintTxt("0"); + } + }; + + const onChangeBurn = async (event: React.ChangeEvent) => { + if (isValidTokenValue(event.target.value) || event.target.value === "") { + try { + setBurnTxt(event.target.value); + if (event.target.value !== "") { + const currentPrice = ethers.utils.formatEther((await collateralPrice()).mul(10000000000)); + const currentAssetPrice = ethers.utils.formatEther(await assetPrice()); + let usd = toUSD(currentAssetPrice, event.target.value); + if (!usd) { + usd = 0; + } + const newDebt = parseFloat(vaultDebt) - parseFloat(event.target.value); + const r = await getRatio( + vaultCollateral, + currentPrice, + newDebt.toString(), + currentAssetPrice + ); + changeVault(r); + setBurnUSD(usd.toString()); + + const increasedFee = await calculateBurnFee(event.target.value); + const ethFee = ethers.utils.formatEther(increasedFee); + setBurnFee(ethFee.toString()); + } else { + changeVault(0, false); + setBurnUSD("0"); + setBurnFee("0"); + } + } catch (error: any) { + changeVault(0, true); + setBurnUSD("0"); + setBurnFee("0"); + } + } + }; + + const onFocusBurn = () => { + if (burnTxt && parseFloat(burnTxt) === 0) { + setBurnTxt(""); + } + }; + + const onBlurBurn = () => { + if (!burnTxt) { + setBurnTxt("0"); + } + }; + + const addCollateral = async () => { + if (addCollateralTxt && parseFloat(addCollateralTxt) > 0) { + setBtnDisabled(true); + // fix decimals + const amount = ethers.utils.parseUnits(addCollateralTxt, selectedVaultDecimals); + try { + if (isGasAsset()) { + let tx; + if (vaultData.collateralSymbol === TOKENS_SYMBOLS.ETH) { + tx = await currentVault?.addCollateralETH({ + value: amount, + }); + } else { + tx = await currentVault?.addCollateralMATIC({ + value: amount, + }); + } + notifyUser(tx, refresh); + } else { + const tx = await currentVault?.addCollateral(amount); + notifyUser(tx, refresh); + } + } catch (error: any) { + console.error(error); + if (error.code === 4001) { + errorNotification(t("errors.tran-rejected")); + } else { + errorNotification(t("errors.no-funds")); + } + } + setBtnDisabled(false); + setAddCollateralTxt("0"); + setAddCollateralUSD("0"); + } else { + errorNotification(t("errors.empty")); + } + }; + + const maxAddCollateral = async (e: React.MouseEvent) => { + e.preventDefault(); + setLoadingMax(true); + let balance = "0"; + if (vaultData.collateralSymbol === TOKENS_SYMBOLS.ETH) { + const provider = getDefaultProvider(currentNetwork.chainId); + balance = ethers.utils.formatEther(await provider.getBalance(currentAddress)); + } else if (currentCollateral) { + const value = BigNumber.from(await currentCollateral.balanceOf(currentAddress)); + balance = ethers.utils.formatUnits(value, selectedVaultDecimals); + } + const currentPrice = ethers.utils.formatEther((await collateralPrice()).mul(10000000000)); + const currentAssetPrice = ethers.utils.formatEther(await assetPrice()); + setAddCollateralTxt(balance); + let usd = toUSD(currentPrice, balance); + if (!usd) { + usd = 0; + } + const newCollateral = parseFloat(balance) + parseFloat(vaultCollateral); + const r = await getRatio(newCollateral.toString(), currentPrice, vaultDebt, currentAssetPrice); + changeVault(r); + setAddCollateralUSD(usd.toString()); + setLoadingMax(false); + }; + + const removeCollateral = async () => { + if (removeCollateralTxt && parseFloat(removeCollateralTxt) > 0) { + const amount = ethers.utils.parseUnits(removeCollateralTxt, selectedVaultDecimals); + setBtnDisabled(true); + try { + if (isGasAsset()) { + let tx; + if (vaultData.collateralSymbol === TOKENS_SYMBOLS.ETH) { + tx = await currentVault?.removeCollateralETH(amount); + } else { + tx = await currentVault?.removeCollateralMATIC(amount); + } + notifyUser(tx, refresh); + } else { + const tx = await currentVault?.removeCollateral(amount); + notifyUser(tx, refresh); + } + } catch (error: any) { + console.error(error); + if (error.code === 4001) { + errorNotification(t("errors.tran-rejected")); + } else { + errorNotification(t("vault.errors.tran-rejected")); + } + } + setBtnDisabled(false); + setRemoveCollateralTxt("0"); + setRemoveCollateralUSD("0"); + } else { + errorNotification(t("errors.empty")); + } + }; + + const safeRemoveCollateral = async (e: React.MouseEvent) => { + e.preventDefault(); + setLoadingMax(true); + const currentPrice = ethers.utils.formatEther((await collateralPrice()).mul(10000000000)); + const currentAssetPrice = ethers.utils.formatEther(await assetPrice()); + let collateralToRemove = await getSafeRemoveCollateral( + minRatio, + vaultCollateral, + currentPrice, + currentAssetPrice, + vaultDebt, + vaultData.isHardVault + ); + if (selectedVaultDecimals === 8) { + collateralToRemove = parseFloat(collateralToRemove.toFixed(8)) - 0.00000001; + collateralToRemove = parseFloat(collateralToRemove.toFixed(8)); + } + setRemoveCollateralTxt(collateralToRemove.toString()); + let usd = toUSD(currentPrice, collateralToRemove.toString()); + if (!usd) { + usd = 0; + } + const newCollateral = parseFloat(vaultCollateral) - collateralToRemove; + const r = await getRatio(newCollateral.toString(), currentPrice, vaultDebt, currentAssetPrice); + changeVault(r); + setRemoveCollateralUSD(usd.toString()); + setLoadingMax(false); + }; + + const mintIndex = async () => { + if (mintTxt && parseFloat(mintTxt) > 0) { + if (isMinRequiredTcap(parseFloat(mintTxt), true)) { + setBtnDisabled(true); + try { + const amount = ethers.utils.parseEther(mintTxt); + if (!isArbitrum(currentNetwork.chainId)) { + const tx = await currentVault?.mint(amount); + notifyUser(tx, refresh); + } else { + const increasedFee = await calculateMintFee(mintTxt); + const ethFee = ethers.utils.formatEther(increasedFee); + setMintFee(ethFee.toString()); + const tx = await currentVault?.mint(amount, { value: BigNumber.from(increasedFee) }); + notifyUser(tx, refresh); + } + } catch (error: any) { + console.error(error); + if (error.code === 4001) { + errorNotification(t("errors.tran-rejected")); + } else { + errorNotification(t("vault.errors.no-collateral")); + } + } + setBtnDisabled(false); + setMintTxt("0"); + setMintUSD("0"); + } else { + errorNotification(t("vault.errors.min-tcap")); + } + } else { + errorNotification(t("errors.empty")); + } + }; + + const safeMintIndex = async (e: React.MouseEvent) => { + e.preventDefault(); + setLoadingMax(true); + const currentPrice = ethers.utils.formatEther((await collateralPrice()).mul(10000000000)); + const currentAssetPrice = ethers.utils.formatEther(await assetPrice()); + const safeMint = await getSafeMint( + minRatio, + vaultCollateral, + currentPrice, + currentAssetPrice, + vaultDebt, + vaultData.isHardVault + ); + setMintTxt(safeMint.toString()); + let usd = toUSD(currentAssetPrice, safeMint.toString()); + if (!usd) { + usd = 0; + } + + if (isArbitrum(currentNetwork.chainId)) { + const increasedFee = await calculateMintFee(safeMint.toString()); + const ethFee = ethers.utils.formatEther(increasedFee); + setMintFee(ethFee.toString()); + } + + const newDebt = safeMint + parseFloat(vaultDebt); + const r = await getRatio(vaultCollateral, currentPrice, newDebt.toString(), currentAssetPrice); + changeVault(r); + setMintUSD(usd.toString()); + setLoadingMax(false); + }; + + const burnIndex = async () => { + if (burnTxt && parseFloat(burnTxt) > 0) { + const amount = ethers.utils.parseEther(burnTxt); + setBtnDisabled(true); + try { + const increasedFee = await calculateBurnFee(burnTxt); + const ethFee = ethers.utils.formatEther(increasedFee); + + setBurnFee(ethFee.toString()); + const tx = await currentVault?.burn(amount, { value: BigNumber.from(increasedFee) }); + notifyUser(tx, refresh); + } catch (error: any) { + console.error(error); + if (error.code === 4001) { + errorNotification(t("errors.tran-rejected")); + } else { + errorNotification(t("vault.errors.burn-too-high")); + } + } + setBtnDisabled(false); + setBurnTxt("0"); + setBurnUSD("0"); + setBurnFee("0"); + } else { + errorNotification(t("errors.empty")); + } + }; + + const maxBurnIndex = async (e: React.MouseEvent) => { + e.preventDefault(); + setLoadingMax(true); + const currentPrice = ethers.utils.formatEther((await collateralPrice()).mul(10000000000)); + const currentAssetPrice = ethers.utils.formatEther(await assetPrice()); + const currentBalanceCall = await currentAssetRead?.balanceOf(currentAddress); + const currentVaultDebtCall = await currentVaultRead?.vaults(vaultData.vaultId); + + // @ts-ignore + const [currentBalance, cVault] = await signer.ethcallProvider?.all([ + currentBalanceCall, + currentVaultDebtCall, + ]); + + let balanceFormat = "0"; + if (currentBalance.lt(cVault.Debt)) { + balanceFormat = ethers.utils.formatEther(currentBalance); + } else { + balanceFormat = vaultDebt; + } + setBurnTxt(balanceFormat); + let usd = toUSD(currentAssetPrice, balanceFormat); + if (!usd) { + usd = 0; + } + const newDebt = parseFloat(balanceFormat) - parseFloat(balanceFormat); + const r = await getRatio(vaultCollateral, currentPrice, newDebt.toString(), currentAssetPrice); + changeVault(r); + setBurnUSD(usd.toString()); + + if (balanceFormat !== "0") { + const increasedFee = await calculateBurnFee(balanceFormat); + const ethFee = ethers.utils.formatEther(increasedFee); + setBurnFee(ethFee.toString()); + } else { + setBurnFee("0"); + } + setLoadingMax(false); + }; + + const ActionsDropdown = () => ( + setActiveAction(eventKey || "add")}> + +
+ + {capitalize(activeAction)}{" "} + {actions.slice(0, 2).includes(activeAction) + ? vaultData.collateralSymbol + : vaultData.assetSymbol.toUpperCase()} + +
+
+ + {actions.map((action, index) => ( + + {capitalize(action)}{" "} + {index < 2 ? vaultData.collateralSymbol : vaultData.assetSymbol.toUpperCase()} + + ))} + +
+ ); + + const RenderUsdValue = (amount: string, maxDecimals = 6, symbol = false) => { + const numberAmount = parseFloat(amount); + let newAmount = amount; + let decimals = 2; + let prefix = "$"; + if (numberAmount < 0.0001) { + decimals = maxDecimals; + newAmount = numberAmount.toFixed(decimals); + if (symbol) { + prefix = "~$"; + } + } else if (numberAmount < 0.01) { + decimals = 4; + } + if (numberAmount === 0) { + prefix = "$"; + decimals = 2; + newAmount = numberAmount.toFixed(decimals); + } + + return ( + + ${numberAmount.toFixed(20)} + + } + > + + + ); + }; + + const RenderAddCollateral = () => ( + + + {RenderUsdValue(addCollateralUSD, 10)} + + + + + ); + + const RenderRemoveCollateral = () => ( + + + {RenderUsdValue(removeCollateralUSD, 12)} + + + + + ); + + const BurnFeeLabel = (className: string, isBurning: boolean) => ( + + {isBurning ? ( + <> + {t("vault.debt.fee")}: {burnFee} + + ) : ( + <>Mint Fee: {mintFee} + )} + {isPolygon(currentNetwork.chainId) ? "MATIC" : "ETH"} + + } + > +
+ {isBurning ? <>{t("vault.debt.fee")}: : "Mint Fee: "} + {" "} + {isPolygon(currentNetwork.chainId) ? "MATIC" : "ETH"} +
+
+ ); + + const RenderMintIndex = () => ( + + + {RenderUsdValue(mintUSD, 18)} + + + + {BurnFeeLabel("burn-fee2", false)} + + ); + + const RenderBurnIndex = () => ( + + + {RenderUsdValue(burnUSD, 18)} + + + + {BurnFeeLabel("burn-fee2", true)} + + ); + + const ActionControls = () => { + if (activeAction === "add") { + return RenderAddCollateral(); + } + if (activeAction === "remove") { + return RenderRemoveCollateral(); + } + if (activeAction === "mint") { + return RenderMintIndex(); + } + return RenderBurnIndex(); + }; + + const MaxButton = () => { + if (loadingMax) { + let colorClass = "spinner-green"; + if (activeAction === "remove" || activeAction === "burn") { + colorClass = "spinner-orange"; + } + return ; + } + if (activeAction === "add") { + return ( + + ); + } + if (activeAction === "remove") { + return ( + + ); + } + if (activeAction === "mint") { + return ( + + ); + } + return ( + + ); + }; + + const RenderIndexBalance = (isCollateral: boolean) => { + const aBalance = isCollateral ? collateralBalance : indexBalance; + const aBalanceUSD = isCollateral ? collateralBalanceUSD : indexBalanceUSD; + const iconSymbol = isCollateral ? vaultData.collateralSymbol : vaultData.assetSymbol; + return ( +
+ Wallet Balance: + + {isLoading ? ( + + ) : ( + <> + + {parseFloat(aBalance).toFixed(18)} + + } + > +
+ + +
+
+ {RenderUsdValue(aBalanceUSD, 4, true)} + + )} +
+
+ ); + }; + + const CollateralAmount = () => ( +
+ Collateral: + + {isLoading ? ( + + ) : ( + <> + + {ethers.utils.formatUnits(vaultCollateralRaw, selectedVaultDecimals)} + + } + > +
+ + 0 && parseFloat(vaultCollateral) < 0.0001 + ? "~" + : "" + } + /> +
+
+ {RenderUsdValue(vaultCollateralUSD, 4, true)} + + )} +
+
+ ); + + const MintedAmount = () => ( +
+ Debt: + + {isLoading ? ( + + ) : ( + <> + + {ethers.utils.formatEther(vaultDebtRaw)} + + } + > +
+ + 0 && parseFloat(vaultDebt) < 0.0001 ? "~" : ""} + /> +
+
+ {RenderUsdValue(vaultDebtUSD, 4, true)} + + )} +
+
+ ); + + const creatOrApprovee = async () => { + if (currentVaultId === "0") { + setBtnDisabled(true); + try { + const tx = await currentVault?.createVault(); + notifyUser(tx, refresh); + } catch (error: any) { + if (error.code === 4001 || error.code === -32603) { + errorNotification(t("errors.tran-rejected")); + } + } + setBtnDisabled(false); + } else { + setBtnDisabled(true); + try { + const tx = await currentCollateral?.approve(currentVault?.address, approveValue); + notifyUser(tx, refresh); + } catch (error: any) { + if (error.code === 4001 || error.code === -32603) { + errorNotification(t("errors.tran-rejected")); + } + } + setBtnDisabled(false); + } + }; + + const RenderCreateVault = () => ( +
+ {isLoading ? ( + + ) : ( + <> +

+ <>{text}{" "} + + Learn More + +

+ + + )} +
+ ); + + const handleRadioBtnChange = async (value: string) => { + setVaultMode(value); + // setCollaterals(value); + setActiveAction("add"); + resetFields(); + setVaultData({ + vaultId: "0", + assetSymbol: vaultData.assetSymbol, + collateralSymbol: TOKENS_SYMBOLS.ETH, + isHardVault: value === "hard", + }); + }; + + const handleTokenChange = async (value: string) => { + let keepVaultId = false; + if ( + vaultData.collateralSymbol === TOKENS_SYMBOLS.ETH || + vaultData.collateralSymbol === TOKENS_SYMBOLS.WETH + ) { + keepVaultId = value === TOKENS_SYMBOLS.ETH || value === TOKENS_SYMBOLS.WETH; + } + + setVaultData({ + vaultId: !keepVaultId ? "0" : vaultData.vaultId, + assetSymbol: vaultData.assetSymbol, + collateralSymbol: value, + isHardVault: vaultData.isHardVault, + }); + resetFields(); + setRefreshVault(!refreshVault); + }; + + const IndexDropdown = () => ( +
+
Index
+ + +
+ + {vaultData.assetSymbol} +
+
+ + {assetOptions.map((item) => ( + + + {item} + + ))} + +
+
+ ); + + const CollateralDropdown = () => ( +
+
Collateral
+ handleTokenChange(eventKey || "ETH")}> + +
+ + {vaultData.collateralSymbol.toUpperCase()} +
+
+ + {collateralOptions.map((item) => ( + + + {item} + + ))} + +
+
+ ); + + const DebtWarning = () => ( + +

+ Vault still has a + + Debt: {ethers.utils.formatEther(vaultDebtRaw)} {vaultInitData.assetSymbol} + + } + > + + Small Debt + + + + but your + + Wallet Balance: {ethers.utils.formatEther(indexBalanceRaw)}{" "} + {vaultInitData.assetSymbol} + + } + > + + Wallet Balance + + + + is less than the debt. +

+
+ ); + + const DebtWarning2 = () => ( + +

+ Vault still has a + + Debt: {ethers.utils.formatEther(vaultDebtRaw)} {vaultInitData.assetSymbol} + + } + > + + Small Debt. + + + +

+
+ ); + + return ( +
+
+
+
+
+ {isInLayer1(currentNetwork.chainId) ? ( + <> + + {radios.map((radio, idx) => ( + handleRadioBtnChange(e.currentTarget.value)} + > + {radio.name} + + ))} + + {vaultMode === "hard" && ( + + <> + {t("vault.hard-mode-info")}
+ {t("vault.hard-mode-info2")} + + + } + > + +
+ )} + + ) : ( +
Vault
+ )} +
+
+ +
+
+
+
+
+ + {!isLoading && ( + <> + {RenderIndexBalance(false)} + {isApproved && } + + )} +
+
+ + {!isLoading && ( + <> + {RenderIndexBalance(true)} + {isApproved && } + + )} +
+
+ {isLoading || loadingVault ? ( + + ) : ( +
+ {!isApproved ? ( + + ) : ( + <> + {!vaultDebtRaw.eq(BIG_NUMBER_ZERO) && + vaultDebtRaw.lte(BigNumber.from("1000")) && + indexBalanceRaw.lt(vaultDebtRaw) && } + {vaultDebtRaw.lte(BigNumber.from("1000")) && + !vaultDebtRaw.eq(BIG_NUMBER_ZERO) && + !indexBalanceRaw.lt(vaultDebtRaw) && } +
+
+
+

Choose Action

+
+ + +
+
+ {activeAction === actions[2] && + isArbitrum(currentNetwork.chainId) && + BurnFeeLabel("burn-fee", false)} + {activeAction === actions[3] && BurnFeeLabel("burn-fee", true)} +
+
{ActionControls()}
+
+
+
+
Ratio:
+
+
+
+

+ {parseFloat(vaultRatio) <= 1000000 ? ( + + ) : ( + + {parseFloat(vaultRatio).toExponential(2)}% + + )} +

+
+ - +

+ + {vaultStatus.toLocaleUpperCase()} + +

+
+
+ + )} +
+ )} +
+
+
+
+ ); +}; + +export default Vault; diff --git a/src/components/Warnings/FarmWarning.tsx b/src/components/Warnings/FarmWarning.tsx new file mode 100644 index 00000000..8636781f --- /dev/null +++ b/src/components/Warnings/FarmWarning.tsx @@ -0,0 +1,28 @@ +import React, { useContext, useState } from "react"; +import Alert from "react-bootstrap/esm/Alert"; +import { useLocation } from "react-router-dom"; +import { isInLayer1 } from "../../utils/utils"; +import { networkContext } from "../../state"; + +const FarmWarning = () => { + const location = useLocation(); + const currentNetwork = useContext(networkContext); + const [showWarning, setShowWarning] = useState(true); + + return ( + <> + {showWarning && !isInLayer1(currentNetwork.chainId) && location.pathname === "/farm" && ( + { + setShowWarning(false); + }} + dismissible + > + Liquidity incentives are only available ethereum mainnet network. + + )} + + ); +}; + +export default FarmWarning; diff --git a/src/components/Warnings/KeepersWarning.tsx b/src/components/Warnings/KeepersWarning.tsx new file mode 100644 index 00000000..695e825b --- /dev/null +++ b/src/components/Warnings/KeepersWarning.tsx @@ -0,0 +1,30 @@ +import React, { useContext, useState } from "react"; +import Alert from "react-bootstrap/Alert"; +import { useLocation } from "react-router-dom"; +import { isInLayer1 } from "../../utils/utils"; +import { networkContext } from "../../state"; + +const KeepersWarning = () => { + const location = useLocation(); + const currentNetwork = useContext(networkContext); + const [showWarning, setShowWarning] = useState(true); + + return ( + <> + {showWarning && + !isInLayer1(currentNetwork.chainId) && + location.pathname === "/governance" && ( + { + setShowWarning(false); + }} + dismissible + > + Please switch to mainnet network to be able to delegate CTX to Crypt Keepers. + + )} + + ); +}; + +export default KeepersWarning; diff --git a/src/components/Warnings/SewageFruitzWarning.tsx b/src/components/Warnings/SewageFruitzWarning.tsx new file mode 100644 index 00000000..7acd2b54 --- /dev/null +++ b/src/components/Warnings/SewageFruitzWarning.tsx @@ -0,0 +1,30 @@ +import React, { useContext, useState } from "react"; +import Alert from "react-bootstrap/esm/Alert"; +import { useLocation } from "react-router-dom"; +import { isInLayer1 } from "../../utils/utils"; +import { networkContext } from "../../state"; + +const SewageFruitzWarning = () => { + const location = useLocation(); + const currentNetwork = useContext(networkContext); + const [showWarning, setShowWarning] = useState(true); + + return ( + <> + {showWarning && + !isInLayer1(currentNetwork.chainId) && + location.pathname === "/sewagefruitz" && ( + { + setShowWarning(false); + }} + dismissible + > + Please switch to mainnet network to continue your Sewage Fruitz quest. + + )} + + ); +}; + +export default SewageFruitzWarning; diff --git a/src/components/Warnings/VaultsWarning.tsx b/src/components/Warnings/VaultsWarning.tsx new file mode 100644 index 00000000..bc591d97 --- /dev/null +++ b/src/components/Warnings/VaultsWarning.tsx @@ -0,0 +1,30 @@ +import React, { useState } from "react"; +import Alert from "react-bootstrap/esm/Alert"; +import { useLocation } from "react-router-dom"; +import { useTranslation } from "react-i18next"; + +const VaultsWarning = () => { + const { t } = useTranslation(); + const location = useLocation(); + const [showWarning, setShowWarning] = useState(true); + + return ( + <> + {showWarning && location.pathname === "/vaults" && ( + { + setShowWarning(false); + localStorage.setItem("alert", "false"); + }} + dismissible + > + + <>{t("vault-warning")} + + + )} + + ); +}; + +export default VaultsWarning; diff --git a/src/components/Warnings/index.tsx b/src/components/Warnings/index.tsx new file mode 100644 index 00000000..aa2fc398 --- /dev/null +++ b/src/components/Warnings/index.tsx @@ -0,0 +1,14 @@ +import React from "react"; +import FarmWarning from "./FarmWarning"; +import KeepersWarning from "./KeepersWarning"; +import SewageFruitzWarning from "./SewageFruitzWarning"; +import VaultsWarning from "./VaultsWarning"; + +export const Warnings = () => ( + <> + + + + + +); diff --git a/src/components/Welcome/Welcome.tsx b/src/components/Welcome/Welcome.tsx deleted file mode 100644 index f10f6b0a..00000000 --- a/src/components/Welcome/Welcome.tsx +++ /dev/null @@ -1,330 +0,0 @@ -import React, { useContext, useEffect, useState } from "react"; -import Card from "react-bootstrap/esm/Card"; -import Button from "react-bootstrap/esm/Button"; -import Col from "react-bootstrap/esm/Col"; -import Row from "react-bootstrap/esm/Row"; -import OverlayTrigger from "react-bootstrap/esm/OverlayTrigger"; -import Tooltip from "react-bootstrap/esm/Tooltip"; -import { ethers, BigNumber } from "ethers"; -import NumberFormat from "react-number-format"; -import { useHistory } from "react-router-dom"; -import { useQuery, gql } from "@apollo/client"; -import NetworkContext from "../../state/NetworkContext"; -import SignerContext from "../../state/SignerContext"; -import TokensContext from "../../state/TokensContext"; -import OraclesContext from "../../state/OraclesContext"; -import { Web3ModalContext } from "../../state/Web3ModalContext"; -import { makeShortAddress, getPriceInUSDFromPair, getENS } from "../../utils/utils"; -import "../../styles/welcome.scss"; -import { ReactComponent as TcapIcon } from "../../assets/images/tcap-coin.svg"; -import { ReactComponent as CtxIcon } from "../../assets/images/ctx-coin.svg"; -import { NETWORKS } from "../../utils/constants"; -import Loading from "../Loading"; - -const Welcome = () => { - const [address, setAddress] = useState(""); - const [tcapBalance, setTcapBalance] = useState("0.0"); - const [tcapUSDBalance, setTcapUSDBalance] = useState("0.0"); - const [totalPrice, setTotalPrice] = useState("0.0"); - const [tcapPrice, setTcapPrice] = useState("0.0"); - const [ctxUSDBalance, setCtxUSDBalance] = useState("0.0"); - const [ctxBalance, setCtxBalance] = useState("0.0"); - const [isLoading, setIsLoading] = useState(true); - const currentNetwork = useContext(NetworkContext); - const signer = useContext(SignerContext); - const web3Modal = useContext(Web3ModalContext); - const history = useHistory(); - const tokens = useContext(TokensContext); - const oracles = useContext(OraclesContext); - - const TCAP_PRICE = gql` - query { - oracles(first: 1, orderBy: updatedAt, orderDirection: desc) { - answer - } - } - `; - - const { data } = useQuery(TCAP_PRICE); - - useEffect(() => { - const loadAddress = async () => { - if (signer.signer && tokens.tcapToken && oracles.tcapOracle && tokens.tcapTokenRead) { - const currentAddress = await signer.signer.getAddress(); - if (currentAddress !== address) { - const ens = await getENS(currentAddress); - if (ens) { - setAddress(ens); - } else { - setAddress(makeShortAddress(currentAddress)); - } - } - const currentTcapBalanceCall = await tokens.tcapTokenRead?.balanceOf(currentAddress); - const wethOraclePriceCall = await oracles.wethOracleRead?.getLatestAnswer(); - // @ts-ignore - const [currentTcapBalance, wethOraclePrice] = await signer.ethcallProvider?.all([ - currentTcapBalanceCall, - wethOraclePriceCall, - ]); - const tcapString = ethers.utils.formatEther(currentTcapBalance); - setTcapBalance(tcapString); - const currentPriceETH = ethers.utils.formatEther(wethOraclePrice.mul(10000000000)); - - if (currentNetwork.chainId === NETWORKS.mainnet.chainId) { - const currentCtxBalanceCall = await tokens.ctxTokenRead?.balanceOf(currentAddress); - const reservesCtxPoolCall = await tokens.ctxPoolTokenRead?.getReserves(); - // @ts-ignore - const [currentCtxBalance, reservesCtxPool] = await signer.ethcallProvider?.all([ - currentCtxBalanceCall, - reservesCtxPoolCall, - ]); - const ctxString = ethers.utils.formatEther(currentCtxBalance); - setCtxBalance(ctxString); - const currentPriceCTX = await getPriceInUSDFromPair( - reservesCtxPool[0], - reservesCtxPool[1], - parseFloat(currentPriceETH) - ); - const ctxUSD = parseFloat(ctxString) * currentPriceCTX; - setCtxUSDBalance(ctxUSD.toString()); - } - } - if (data) { - let currentTotalPrice = BigNumber.from(0); - const prices = await data?.oracles; - if (prices.length > 0) { - currentTotalPrice = BigNumber.from(prices[0].answer); - } - const TotalTcapPrice = currentTotalPrice.mul(10000000000); - setTotalPrice(ethers.utils.formatEther(TotalTcapPrice)); - setTcapPrice(ethers.utils.formatEther(TotalTcapPrice.div(10000000000))); - const tcapUSD = parseFloat(tcapBalance) * parseFloat(tcapPrice); - setTcapUSDBalance(tcapUSD.toString()); - setIsLoading(false); - } - }; - - loadAddress(); - // eslint-disable-next-line - }, [tcapUSDBalance, data, isLoading, address]); - - if (isLoading) { - return ; - } - - return ( -
-
- - -

- -

-

- Total Cryptocurrency Market Capitalization - - Total Crypto Market Capitalization is updated on-chain on every 1% movement - - } - > - - -

- - -

- -

-

Total Cryptocurrency Market Capitalization Token

- -
- - - {address !== "" ? ( - -
-

My Total Balance

-

- Connected Account {address} -

-
- - -
- -
-

- -

-

- 1000 ? 0 : 2} - /> -

-
-
-

TCAP Balance

- - {(currentNetwork.chainId === NETWORKS.mainnet.chainId || - currentNetwork.chainId === NETWORKS.rinkeby.chainId) && ( - -
- -
-

- -

-

- 1000 ? 0 : 2} - /> -

-
-
-

CTX Balance

- - )} -
-
- ) : ( - -
-

Connect Your Account

-

Mint TCAP,or check your balance connecting your account

-
- - - - - -
- )} - - - -

Use TCAP

-

Trade TCAP using SushiSwap or create new supply using a vault

- - - - {address !== "" ? ( - - ) : ( - - )} - - - - - {address !== "" ? ( - - ) : ( - - )} - {address !== "" ? ( - - ) : ( - - )} - - -
- -
-
-
- ); -}; -export default Welcome; diff --git a/src/components/Welcome/index.tsx b/src/components/Welcome/index.tsx deleted file mode 100644 index acb13aa9..00000000 --- a/src/components/Welcome/index.tsx +++ /dev/null @@ -1,48 +0,0 @@ -import React, { useContext, useEffect, useState } from "react"; -import { ApolloProvider, ApolloClient, InMemoryCache } from "@apollo/client"; -import NetworkContext from "../../state/NetworkContext"; -import { GRAPHQL_ENDPOINT, NETWORKS } from "../../utils/constants"; -import Welcome from "./Welcome"; - -const clientOracle = (graphqlEndpoint: string) => - new ApolloClient({ - uri: graphqlEndpoint, - cache: new InMemoryCache(), - }); - -const Wrapper = () => { - const currentNetwork = useContext(NetworkContext); - const [apolloClient, setApolloClient] = useState( - clientOracle( - process.env.REACT_APP_NETWORK_ID === "1" ? GRAPHQL_ENDPOINT.mainnet : GRAPHQL_ENDPOINT.rinkeby - ) - ); - - useEffect(() => { - switch (currentNetwork.chainId) { - case NETWORKS.mainnet.chainId: - setApolloClient(clientOracle(GRAPHQL_ENDPOINT.mainnet)); - break; - case NETWORKS.rinkeby.chainId: - setApolloClient(clientOracle(GRAPHQL_ENDPOINT.rinkeby)); - break; - case NETWORKS.okovan.chainId: - setApolloClient(clientOracle(GRAPHQL_ENDPOINT.mainnet)); - break; - case NETWORKS.polygon.chainId: - setApolloClient(clientOracle(GRAPHQL_ENDPOINT.polygon)); - break; - default: - setApolloClient(clientOracle(GRAPHQL_ENDPOINT.rinkeby)); - break; - } - }, [currentNetwork.chainId]); - - return ( - - - - ); -}; - -export default Wrapper; diff --git a/src/components/modals/ChangeNetwork.tsx b/src/components/modals/ChangeNetwork.tsx deleted file mode 100644 index 039a4f94..00000000 --- a/src/components/modals/ChangeNetwork.tsx +++ /dev/null @@ -1,71 +0,0 @@ -import React from "react"; -import Modal from "react-bootstrap/esm/Modal"; -import Button from "react-bootstrap/esm/Button"; -import { FEATURES, NETWORKS } from "../../utils/constants"; -import { useNetworks } from "../../hooks/useNetworks"; -import { ReactComponent as ETHIconSmall } from "../../assets/images/vault/eth.svg"; -import { ReactComponent as POLYGONIconSmall } from "../../assets/images/vault/polygon.svg"; -import { ReactComponent as OPTIMISMIconSmall } from "../../assets/images/graph/optimism.svg"; - -type props = { - show: boolean; - onHide: () => void; - changeNetwork: (chainId: string) => void; -}; - -export const ChangeNetwork = ({ show, onHide, changeNetwork }: props) => { - const networks = useNetworks(); - - return ( - { - onHide(); - }} - size="lg" - aria-labelledby="contained-modal-title-vcenter" - centered - > - - Choose Network - - -
- {process.env.REACT_APP_NETWORK_ID === "1" ? ( - - ) : ( - - )} - {FEATURES.OPTIMISM && ( - - )} - {FEATURES.POLYGON && ( - - )} -
-
-
- ); -}; diff --git a/src/components/modals/Delegate.tsx b/src/components/modals/Delegate.tsx index 26caf47d..d1ededce 100644 --- a/src/components/modals/Delegate.tsx +++ b/src/components/modals/Delegate.tsx @@ -3,9 +3,8 @@ import Modal from "react-bootstrap/esm/Modal"; import Button from "react-bootstrap/esm/Button"; import Form from "react-bootstrap/esm/Form"; import "../../styles/modal.scss"; -import governanceContext from "../../state/GovernanceContext"; +import { governanceContext, tokensContext } from "../../state"; import { isValidAddress, errorNotification, notifyUser } from "../../utils/utils"; -import tokensContext from "../../state/TokensContext"; type props = { show: boolean; @@ -32,8 +31,8 @@ export const Delegate = ({ show, onHide, refresh }: props) => { notifyUser(tx, refresh); setAddressText(""); onHide(); - } catch (error) { - if (error.code === 4001) { + } catch (error: any) { + if (error.code === 4001 || error.code === -32603) { errorNotification("Transaction rejected"); } else { errorNotification("Invalid address"); @@ -56,7 +55,7 @@ export const Delegate = ({ show, onHide, refresh }: props) => { Delegate CTX -

Delegate your CTX tokens to an Adress so it can vote for you.

+

Delegate your CTX tokens to an Adress so it can vote for you.

Address diff --git a/src/components/modals/NewProposal.tsx b/src/components/modals/NewProposal.tsx deleted file mode 100644 index e30bb183..00000000 --- a/src/components/modals/NewProposal.tsx +++ /dev/null @@ -1,144 +0,0 @@ -import React, { useContext, useState } from "react"; -import Modal from "react-bootstrap/esm/Modal"; -import Button from "react-bootstrap/esm/Button"; -import Form from "react-bootstrap/esm/Form"; -import { ethers } from "ethers"; -import governanceContext from "../../state/GovernanceContext"; -import "../../styles/modal.scss"; -import { errorNotification, notifyUser } from "../../utils/utils"; - -type props = { - show: boolean; - onHide: () => void; - refresh: () => void; -}; - -export const NewProposal = ({ show, onHide, refresh }: props) => { - const governance = useContext(governanceContext); - const [description, setDescription] = useState(""); - const [target, setTarget] = useState(""); - const [signature, setSignature] = useState(""); - const [values, setValues] = useState(""); - - const onChangeDescription = (event: React.ChangeEvent) => { - setDescription(event.target.value); - }; - - const onChangeTarget = (event: React.ChangeEvent) => { - setTarget(event.target.value); - }; - - const onChangeSignature = (event: React.ChangeEvent) => { - setSignature(event.target.value); - }; - - const onChangeValues = (event: React.ChangeEvent) => { - setValues(event.target.value); - }; - - const createProposal = async (event: React.MouseEvent) => { - event.preventDefault(); - if (governance.governorAlpha) { - if (description !== "") { - try { - const targets = [target]; - const msgValues = ["0"]; - const signatures = [signature]; - const abi = new ethers.utils.AbiCoder(); - const start = signature.indexOf("(") + 1; - const end = signature.indexOf(")"); - const types = signature.substring(start, end).split(","); - const valuesArray = values.split(","); - const calldata = abi.encode(types, valuesArray); - const calldatas = [calldata]; - const tx = await governance.governorAlpha.propose( - targets, - msgValues, - signatures, - calldatas, - description - ); - notifyUser(tx, refresh); - setDescription(""); - onHide(); - } catch (error) { - if (error.code === 4001) { - errorNotification("Transaction rejected"); - } else { - errorNotification("Description can't be empty"); - } - } - } else { - errorNotification("Description can't be empty"); - } - } - }; - - return ( - - - New Proposal - - -

- Create a new proposal with a maximun of 10 actions. You need a total of 100,000 CTX - delegated to your address in order to create a new proposal -

- - - Description - - - - Target Contract - - - - Function to Call - - - - Values - - - -
- - - -
- ); -}; diff --git a/src/components/modals/Stake.tsx b/src/components/modals/Stake.tsx index 7b84b141..44896f2c 100644 --- a/src/components/modals/Stake.tsx +++ b/src/components/modals/Stake.tsx @@ -3,7 +3,8 @@ import Modal from "react-bootstrap/esm/Modal"; import Button from "react-bootstrap/esm/Button"; import Form from "react-bootstrap/esm/Form"; import { ethers, BigNumber } from "ethers"; -import SignerContext from "../../state/SignerContext"; +import { useTranslation } from "react-i18next"; +import { signerContext } from "../../state"; import "../../styles/modal.scss"; import { errorNotification, notifyUser } from "../../utils/utils"; @@ -19,9 +20,10 @@ type props = { }; export const Stake = ({ show, poolTitle, poolToken, pool, balance, onHide, refresh }: props) => { + const { t } = useTranslation(); const [stakeText, setStakeText] = useState(""); const [isApproved, setIsApproved] = useState(false); - const signer = useContext(SignerContext); + const signer = useContext(signerContext); // Infinite Approval const infiniteApproveValue = BigNumber.from("1157920892373161954235709850086879078532699"); @@ -55,15 +57,15 @@ export const Stake = ({ show, poolTitle, poolToken, pool, balance, onHide, refre notifyUser(tx, refresh); setStakeText(""); onHide(); - } catch (error) { + } catch (error: any) { if (error.code === 4001) { - errorNotification("Transaction rejected"); + errorNotification(t("errors.tran-rejected")); } else { - errorNotification("Token not Approved"); + errorNotification(t("errors.not-approve")); } } } else { - errorNotification("Field can't be empty"); + errorNotification(t("errors.empty")); } } }; @@ -76,9 +78,9 @@ export const Stake = ({ show, poolTitle, poolToken, pool, balance, onHide, refre notifyUser(tx, refresh); setStakeText(""); setIsApproved(true); - } catch (error) { + } catch (error: any) { if (error.code === 4001) { - errorNotification("Transaction rejected"); + errorNotification(t("errors.tran-rejected")); } else { console.log(error); } @@ -103,17 +105,25 @@ export const Stake = ({ show, poolTitle, poolToken, pool, balance, onHide, refre }} > - Stake {poolTitle} + + <> + {t("stake")} {poolTitle} + +

- Current Balance: {balance} + <> + {t("balance2")}: {balance} +

{isApproved ? ( <> - Amount to Stake + + <>{t("stake2")} + MAX @@ -137,17 +147,19 @@ export const Stake = ({ show, poolTitle, poolToken, pool, balance, onHide, refre {isApproved ? ( <> ) : ( <> )}{" "} - Tokens + <>{t("tokens")} ); diff --git a/src/components/modals/Vote.tsx b/src/components/modals/Vote.tsx deleted file mode 100644 index ac0ec448..00000000 --- a/src/components/modals/Vote.tsx +++ /dev/null @@ -1,187 +0,0 @@ -import React, { useContext } from "react"; -import Modal from "react-bootstrap/esm/Modal"; -import Button from "react-bootstrap/esm/Button"; -import Row from "react-bootstrap/esm/Row"; -import Col from "react-bootstrap/esm/Col"; -import ProgressBar from "react-bootstrap/esm/ProgressBar"; -import { ethers } from "ethers"; -import governanceContext from "../../state/GovernanceContext"; -import "../../styles/modal.scss"; -import { errorNotification, notifyUser } from "../../utils/utils"; - -type props = { - show: boolean; - onHide: () => void; - proposal: any; - forVote: number; - against: number; - endTime: string; - status: string; -}; - -export const Vote = ({ show, onHide, proposal, forVote, against, endTime, status }: props) => { - const governance = useContext(governanceContext); - if (!proposal) { - return <>; - } - - const denominator = forVote + against; - const forRate = denominator !== 0 ? (forVote / denominator) * 100 : 0; - const againstRate = denominator !== 0 ? (against / denominator) * 100 : 0; - const animated = status === "PENDING"; - - const abi = new ethers.utils.AbiCoder(); - - const etherscanURL = process?.env?.REACT_APP_ETHERSCAN; - - const clickVote = async (support: Boolean) => { - if (governance.governorAlpha) { - try { - const tx = await governance.governorAlpha.castVote(proposal.id, support); - notifyUser(tx); - onHide(); - } catch (error) { - if (error.code === 4001) { - errorNotification("Transaction rejected"); - } else { - onHide(); - errorNotification("Voter already voted"); - } - } - } - }; - - return ( - - - {proposal.description} - - - - - {denominator !== 0 ? ( - - - - - ) : ( -
No votes yet!
- )} - - {status !== "ACTIVE" ? ( - - - - ) : ( - <> - - - - - - - - )} - - - - ); -}; diff --git a/src/contracts/Mushroom.json b/src/contracts/Mushroom.json new file mode 100644 index 00000000..703fdf6a --- /dev/null +++ b/src/contracts/Mushroom.json @@ -0,0 +1,583 @@ +{ + "abi": [ + { + "inputs": [ + { + "internalType": "string", + "name": "_name", + "type": "string" + }, + { + "internalType": "string", + "name": "_symbol", + "type": "string" + }, + { + "internalType": "bytes32", + "name": "_merkleRoot", + "type": "bytes32" + }, + { + "internalType": "string", + "name": "_baseURI", + "type": "string" + }, + { + "internalType": "uint256", + "name": "_mintPeriod", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_treasury", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "baseURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "currentTokenId", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "maxSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "merkleRoot", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_recipient", + "type": "address" + }, + { + "internalType": "bytes32[]", + "name": "proof", + "type": "bytes32[]" + } + ], + "name": "mint", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "mintPeriod", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "publicMint", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "_baseURI", + "type": "string" + } + ], + "name": "setBaseURI", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "tokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "treasury", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "userToClaims", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "withdraw", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "withdrawAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ] +} diff --git a/src/contracts/NonfungiblePositionManager.json b/src/contracts/NonfungiblePositionManager.json new file mode 100644 index 00000000..f972d606 --- /dev/null +++ b/src/contracts/NonfungiblePositionManager.json @@ -0,0 +1,930 @@ +[{ + "inputs": [{ + "internalType": "address", + "name": "_factory", + "type": "address" + }, { + "internalType": "address", + "name": "_WETH9", + "type": "address" + }, { + "internalType": "address", + "name": "_tokenDescriptor_", + "type": "address" + }], + "stateMutability": "nonpayable", + "type": "constructor" +}, { + "anonymous": false, + "inputs": [{ + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }], + "name": "Approval", + "type": "event" +}, { + "anonymous": false, + "inputs": [{ + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + }], + "name": "ApprovalForAll", + "type": "event" +}, { + "anonymous": false, + "inputs": [{ + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, { + "indexed": false, + "internalType": "address", + "name": "recipient", + "type": "address" + }, { + "indexed": false, + "internalType": "uint256", + "name": "amount0", + "type": "uint256" + }, { + "indexed": false, + "internalType": "uint256", + "name": "amount1", + "type": "uint256" + }], + "name": "Collect", + "type": "event" +}, { + "anonymous": false, + "inputs": [{ + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, { + "indexed": false, + "internalType": "uint128", + "name": "liquidity", + "type": "uint128" + }, { + "indexed": false, + "internalType": "uint256", + "name": "amount0", + "type": "uint256" + }, { + "indexed": false, + "internalType": "uint256", + "name": "amount1", + "type": "uint256" + }], + "name": "DecreaseLiquidity", + "type": "event" +}, { + "anonymous": false, + "inputs": [{ + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, { + "indexed": false, + "internalType": "uint128", + "name": "liquidity", + "type": "uint128" + }, { + "indexed": false, + "internalType": "uint256", + "name": "amount0", + "type": "uint256" + }, { + "indexed": false, + "internalType": "uint256", + "name": "amount1", + "type": "uint256" + }], + "name": "IncreaseLiquidity", + "type": "event" +}, { + "anonymous": false, + "inputs": [{ + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }], + "name": "Transfer", + "type": "event" +}, { + "inputs": [], + "name": "DOMAIN_SEPARATOR", + "outputs": [{ + "internalType": "bytes32", + "name": "", + "type": "bytes32" + }], + "stateMutability": "view", + "type": "function" +}, { + "inputs": [], + "name": "PERMIT_TYPEHASH", + "outputs": [{ + "internalType": "bytes32", + "name": "", + "type": "bytes32" + }], + "stateMutability": "view", + "type": "function" +}, { + "inputs": [], + "name": "WETH9", + "outputs": [{ + "internalType": "address", + "name": "", + "type": "address" + }], + "stateMutability": "view", + "type": "function" +}, { + "inputs": [{ + "internalType": "address", + "name": "to", + "type": "address" + }, { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" +}, { + "inputs": [{ + "internalType": "address", + "name": "owner", + "type": "address" + }], + "name": "balanceOf", + "outputs": [{ + "internalType": "uint256", + "name": "", + "type": "uint256" + }], + "stateMutability": "view", + "type": "function" +}, { + "inputs": [], + "name": "baseURI", + "outputs": [{ + "internalType": "string", + "name": "", + "type": "string" + }], + "stateMutability": "pure", + "type": "function" +}, { + "inputs": [{ + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }], + "name": "burn", + "outputs": [], + "stateMutability": "payable", + "type": "function" +}, { + "inputs": [{ + "components": [{ + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, { + "internalType": "address", + "name": "recipient", + "type": "address" + }, { + "internalType": "uint128", + "name": "amount0Max", + "type": "uint128" + }, { + "internalType": "uint128", + "name": "amount1Max", + "type": "uint128" + }], + "internalType": "struct INonfungiblePositionManager.CollectParams", + "name": "params", + "type": "tuple" + }], + "name": "collect", + "outputs": [{ + "internalType": "uint256", + "name": "amount0", + "type": "uint256" + }, { + "internalType": "uint256", + "name": "amount1", + "type": "uint256" + }], + "stateMutability": "payable", + "type": "function" +}, { + "inputs": [{ + "internalType": "address", + "name": "token0", + "type": "address" + }, { + "internalType": "address", + "name": "token1", + "type": "address" + }, { + "internalType": "uint24", + "name": "fee", + "type": "uint24" + }, { + "internalType": "uint160", + "name": "sqrtPriceX96", + "type": "uint160" + }], + "name": "createAndInitializePoolIfNecessary", + "outputs": [{ + "internalType": "address", + "name": "pool", + "type": "address" + }], + "stateMutability": "payable", + "type": "function" +}, { + "inputs": [{ + "components": [{ + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, { + "internalType": "uint128", + "name": "liquidity", + "type": "uint128" + }, { + "internalType": "uint256", + "name": "amount0Min", + "type": "uint256" + }, { + "internalType": "uint256", + "name": "amount1Min", + "type": "uint256" + }, { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + }], + "internalType": "struct INonfungiblePositionManager.DecreaseLiquidityParams", + "name": "params", + "type": "tuple" + }], + "name": "decreaseLiquidity", + "outputs": [{ + "internalType": "uint256", + "name": "amount0", + "type": "uint256" + }, { + "internalType": "uint256", + "name": "amount1", + "type": "uint256" + }], + "stateMutability": "payable", + "type": "function" +}, { + "inputs": [], + "name": "factory", + "outputs": [{ + "internalType": "address", + "name": "", + "type": "address" + }], + "stateMutability": "view", + "type": "function" +}, { + "inputs": [{ + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }], + "name": "getApproved", + "outputs": [{ + "internalType": "address", + "name": "", + "type": "address" + }], + "stateMutability": "view", + "type": "function" +}, { + "inputs": [{ + "components": [{ + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, { + "internalType": "uint256", + "name": "amount0Desired", + "type": "uint256" + }, { + "internalType": "uint256", + "name": "amount1Desired", + "type": "uint256" + }, { + "internalType": "uint256", + "name": "amount0Min", + "type": "uint256" + }, { + "internalType": "uint256", + "name": "amount1Min", + "type": "uint256" + }, { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + }], + "internalType": "struct INonfungiblePositionManager.IncreaseLiquidityParams", + "name": "params", + "type": "tuple" + }], + "name": "increaseLiquidity", + "outputs": [{ + "internalType": "uint128", + "name": "liquidity", + "type": "uint128" + }, { + "internalType": "uint256", + "name": "amount0", + "type": "uint256" + }, { + "internalType": "uint256", + "name": "amount1", + "type": "uint256" + }], + "stateMutability": "payable", + "type": "function" +}, { + "inputs": [{ + "internalType": "address", + "name": "owner", + "type": "address" + }, { + "internalType": "address", + "name": "operator", + "type": "address" + }], + "name": "isApprovedForAll", + "outputs": [{ + "internalType": "bool", + "name": "", + "type": "bool" + }], + "stateMutability": "view", + "type": "function" +}, { + "inputs": [{ + "components": [{ + "internalType": "address", + "name": "token0", + "type": "address" + }, { + "internalType": "address", + "name": "token1", + "type": "address" + }, { + "internalType": "uint24", + "name": "fee", + "type": "uint24" + }, { + "internalType": "int24", + "name": "tickLower", + "type": "int24" + }, { + "internalType": "int24", + "name": "tickUpper", + "type": "int24" + }, { + "internalType": "uint256", + "name": "amount0Desired", + "type": "uint256" + }, { + "internalType": "uint256", + "name": "amount1Desired", + "type": "uint256" + }, { + "internalType": "uint256", + "name": "amount0Min", + "type": "uint256" + }, { + "internalType": "uint256", + "name": "amount1Min", + "type": "uint256" + }, { + "internalType": "address", + "name": "recipient", + "type": "address" + }, { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + }], + "internalType": "struct INonfungiblePositionManager.MintParams", + "name": "params", + "type": "tuple" + }], + "name": "mint", + "outputs": [{ + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, { + "internalType": "uint128", + "name": "liquidity", + "type": "uint128" + }, { + "internalType": "uint256", + "name": "amount0", + "type": "uint256" + }, { + "internalType": "uint256", + "name": "amount1", + "type": "uint256" + }], + "stateMutability": "payable", + "type": "function" +}, { + "inputs": [{ + "internalType": "bytes[]", + "name": "data", + "type": "bytes[]" + }], + "name": "multicall", + "outputs": [{ + "internalType": "bytes[]", + "name": "results", + "type": "bytes[]" + }], + "stateMutability": "payable", + "type": "function" +}, { + "inputs": [], + "name": "name", + "outputs": [{ + "internalType": "string", + "name": "", + "type": "string" + }], + "stateMutability": "view", + "type": "function" +}, { + "inputs": [{ + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }], + "name": "ownerOf", + "outputs": [{ + "internalType": "address", + "name": "", + "type": "address" + }], + "stateMutability": "view", + "type": "function" +}, { + "inputs": [{ + "internalType": "address", + "name": "spender", + "type": "address" + }, { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + }, { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + }], + "name": "permit", + "outputs": [], + "stateMutability": "payable", + "type": "function" +}, { + "inputs": [{ + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }], + "name": "positions", + "outputs": [{ + "internalType": "uint96", + "name": "nonce", + "type": "uint96" + }, { + "internalType": "address", + "name": "operator", + "type": "address" + }, { + "internalType": "address", + "name": "token0", + "type": "address" + }, { + "internalType": "address", + "name": "token1", + "type": "address" + }, { + "internalType": "uint24", + "name": "fee", + "type": "uint24" + }, { + "internalType": "int24", + "name": "tickLower", + "type": "int24" + }, { + "internalType": "int24", + "name": "tickUpper", + "type": "int24" + }, { + "internalType": "uint128", + "name": "liquidity", + "type": "uint128" + }, { + "internalType": "uint256", + "name": "feeGrowthInside0LastX128", + "type": "uint256" + }, { + "internalType": "uint256", + "name": "feeGrowthInside1LastX128", + "type": "uint256" + }, { + "internalType": "uint128", + "name": "tokensOwed0", + "type": "uint128" + }, { + "internalType": "uint128", + "name": "tokensOwed1", + "type": "uint128" + }], + "stateMutability": "view", + "type": "function" +}, { + "inputs": [], + "name": "refundETH", + "outputs": [], + "stateMutability": "payable", + "type": "function" +}, +{ + "inputs": [{ + "internalType": "address", + "name": "from", + "type": "address" + }, { + "internalType": "address", + "name": "to", + "type": "address" + }, { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, { + "internalType": "bytes", + "name": "_data", + "type": "bytes" + }], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" +}, { + "inputs": [{ + "internalType": "address", + "name": "token", + "type": "address" + }, { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + }, { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + }], + "name": "selfPermit", + "outputs": [], + "stateMutability": "payable", + "type": "function" +}, { + "inputs": [{ + "internalType": "address", + "name": "token", + "type": "address" + }, { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, { + "internalType": "uint256", + "name": "expiry", + "type": "uint256" + }, { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + }], + "name": "selfPermitAllowed", + "outputs": [], + "stateMutability": "payable", + "type": "function" +}, { + "inputs": [{ + "internalType": "address", + "name": "token", + "type": "address" + }, { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, { + "internalType": "uint256", + "name": "expiry", + "type": "uint256" + }, { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + }], + "name": "selfPermitAllowedIfNecessary", + "outputs": [], + "stateMutability": "payable", + "type": "function" +}, { + "inputs": [{ + "internalType": "address", + "name": "token", + "type": "address" + }, { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + }, { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + }], + "name": "selfPermitIfNecessary", + "outputs": [], + "stateMutability": "payable", + "type": "function" +}, { + "inputs": [{ + "internalType": "address", + "name": "operator", + "type": "address" + }, { + "internalType": "bool", + "name": "approved", + "type": "bool" + }], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" +}, { + "inputs": [{ + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + }], + "name": "supportsInterface", + "outputs": [{ + "internalType": "bool", + "name": "", + "type": "bool" + }], + "stateMutability": "view", + "type": "function" +}, { + "inputs": [{ + "internalType": "address", + "name": "token", + "type": "address" + }, { + "internalType": "uint256", + "name": "amountMinimum", + "type": "uint256" + }, { + "internalType": "address", + "name": "recipient", + "type": "address" + }], + "name": "sweepToken", + "outputs": [], + "stateMutability": "payable", + "type": "function" +}, { + "inputs": [], + "name": "symbol", + "outputs": [{ + "internalType": "string", + "name": "", + "type": "string" + }], + "stateMutability": "view", + "type": "function" +}, { + "inputs": [{ + "internalType": "uint256", + "name": "index", + "type": "uint256" + }], + "name": "tokenByIndex", + "outputs": [{ + "internalType": "uint256", + "name": "", + "type": "uint256" + }], + "stateMutability": "view", + "type": "function" +}, { + "inputs": [{ + "internalType": "address", + "name": "owner", + "type": "address" + }, { + "internalType": "uint256", + "name": "index", + "type": "uint256" + }], + "name": "tokenOfOwnerByIndex", + "outputs": [{ + "internalType": "uint256", + "name": "", + "type": "uint256" + }], + "stateMutability": "view", + "type": "function" +}, { + "inputs": [{ + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }], + "name": "tokenURI", + "outputs": [{ + "internalType": "string", + "name": "", + "type": "string" + }], + "stateMutability": "view", + "type": "function" +}, { + "inputs": [], + "name": "totalSupply", + "outputs": [{ + "internalType": "uint256", + "name": "", + "type": "uint256" + }], + "stateMutability": "view", + "type": "function" +}, { + "inputs": [{ + "internalType": "address", + "name": "from", + "type": "address" + }, { + "internalType": "address", + "name": "to", + "type": "address" + }, { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" +}, { + "inputs": [{ + "internalType": "uint256", + "name": "amount0Owed", + "type": "uint256" + }, { + "internalType": "uint256", + "name": "amount1Owed", + "type": "uint256" + }, { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }], + "name": "uniswapV3MintCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" +}, { + "inputs": [{ + "internalType": "uint256", + "name": "amountMinimum", + "type": "uint256" + }, { + "internalType": "address", + "name": "recipient", + "type": "address" + }], + "name": "unwrapWETH9", + "outputs": [], + "stateMutability": "payable", + "type": "function" +}, { + "stateMutability": "payable", + "type": "receive" +}] \ No newline at end of file diff --git a/src/contracts/UniV3Pool.json b/src/contracts/UniV3Pool.json new file mode 100644 index 00000000..c87d64dd --- /dev/null +++ b/src/contracts/UniV3Pool.json @@ -0,0 +1,988 @@ +[ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "int24", + "name": "tickLower", + "type": "int24" + }, + { + "indexed": true, + "internalType": "int24", + "name": "tickUpper", + "type": "int24" + }, + { + "indexed": false, + "internalType": "uint128", + "name": "amount", + "type": "uint128" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount0", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount1", + "type": "uint256" + } + ], + "name": "Burn", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "indexed": true, + "internalType": "int24", + "name": "tickLower", + "type": "int24" + }, + { + "indexed": true, + "internalType": "int24", + "name": "tickUpper", + "type": "int24" + }, + { + "indexed": false, + "internalType": "uint128", + "name": "amount0", + "type": "uint128" + }, + { + "indexed": false, + "internalType": "uint128", + "name": "amount1", + "type": "uint128" + } + ], + "name": "Collect", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint128", + "name": "amount0", + "type": "uint128" + }, + { + "indexed": false, + "internalType": "uint128", + "name": "amount1", + "type": "uint128" + } + ], + "name": "CollectProtocol", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount0", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount1", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "paid0", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "paid1", + "type": "uint256" + } + ], + "name": "Flash", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint16", + "name": "observationCardinalityNextOld", + "type": "uint16" + }, + { + "indexed": false, + "internalType": "uint16", + "name": "observationCardinalityNextNew", + "type": "uint16" + } + ], + "name": "IncreaseObservationCardinalityNext", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint160", + "name": "sqrtPriceX96", + "type": "uint160" + }, + { + "indexed": false, + "internalType": "int24", + "name": "tick", + "type": "int24" + } + ], + "name": "Initialize", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "int24", + "name": "tickLower", + "type": "int24" + }, + { + "indexed": true, + "internalType": "int24", + "name": "tickUpper", + "type": "int24" + }, + { + "indexed": false, + "internalType": "uint128", + "name": "amount", + "type": "uint128" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount0", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount1", + "type": "uint256" + } + ], + "name": "Mint", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint8", + "name": "feeProtocol0Old", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "uint8", + "name": "feeProtocol1Old", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "uint8", + "name": "feeProtocol0New", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "uint8", + "name": "feeProtocol1New", + "type": "uint8" + } + ], + "name": "SetFeeProtocol", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "indexed": false, + "internalType": "int256", + "name": "amount0", + "type": "int256" + }, + { + "indexed": false, + "internalType": "int256", + "name": "amount1", + "type": "int256" + }, + { + "indexed": false, + "internalType": "uint160", + "name": "sqrtPriceX96", + "type": "uint160" + }, + { + "indexed": false, + "internalType": "uint128", + "name": "liquidity", + "type": "uint128" + }, + { + "indexed": false, + "internalType": "int24", + "name": "tick", + "type": "int24" + } + ], + "name": "Swap", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "int24", + "name": "tickLower", + "type": "int24" + }, + { + "internalType": "int24", + "name": "tickUpper", + "type": "int24" + }, + { + "internalType": "uint128", + "name": "amount", + "type": "uint128" + } + ], + "name": "burn", + "outputs": [ + { + "internalType": "uint256", + "name": "amount0", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount1", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "int24", + "name": "tickLower", + "type": "int24" + }, + { + "internalType": "int24", + "name": "tickUpper", + "type": "int24" + }, + { + "internalType": "uint128", + "name": "amount0Requested", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "amount1Requested", + "type": "uint128" + } + ], + "name": "collect", + "outputs": [ + { + "internalType": "uint128", + "name": "amount0", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "amount1", + "type": "uint128" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint128", + "name": "amount0Requested", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "amount1Requested", + "type": "uint128" + } + ], + "name": "collectProtocol", + "outputs": [ + { + "internalType": "uint128", + "name": "amount0", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "amount1", + "type": "uint128" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "factory", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "fee", + "outputs": [ + { + "internalType": "uint24", + "name": "", + "type": "uint24" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "feeGrowthGlobal0X128", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "feeGrowthGlobal1X128", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount0", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount1", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "flash", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "observationCardinalityNext", + "type": "uint16" + } + ], + "name": "increaseObservationCardinalityNext", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint160", + "name": "sqrtPriceX96", + "type": "uint160" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "liquidity", + "outputs": [ + { + "internalType": "uint128", + "name": "", + "type": "uint128" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "maxLiquidityPerTick", + "outputs": [ + { + "internalType": "uint128", + "name": "", + "type": "uint128" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "int24", + "name": "tickLower", + "type": "int24" + }, + { + "internalType": "int24", + "name": "tickUpper", + "type": "int24" + }, + { + "internalType": "uint128", + "name": "amount", + "type": "uint128" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "mint", + "outputs": [ + { + "internalType": "uint256", + "name": "amount0", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount1", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "observations", + "outputs": [ + { + "internalType": "uint32", + "name": "blockTimestamp", + "type": "uint32" + }, + { + "internalType": "int56", + "name": "tickCumulative", + "type": "int56" + }, + { + "internalType": "uint160", + "name": "secondsPerLiquidityCumulativeX128", + "type": "uint160" + }, + { + "internalType": "bool", + "name": "initialized", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint32[]", + "name": "secondsAgos", + "type": "uint32[]" + } + ], + "name": "observe", + "outputs": [ + { + "internalType": "int56[]", + "name": "tickCumulatives", + "type": "int56[]" + }, + { + "internalType": "uint160[]", + "name": "secondsPerLiquidityCumulativeX128s", + "type": "uint160[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "key", + "type": "bytes32" + } + ], + "name": "positions", + "outputs": [ + { + "internalType": "uint128", + "name": "_liquidity", + "type": "uint128" + }, + { + "internalType": "uint256", + "name": "feeGrowthInside0LastX128", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "feeGrowthInside1LastX128", + "type": "uint256" + }, + { + "internalType": "uint128", + "name": "tokensOwed0", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "tokensOwed1", + "type": "uint128" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "protocolFees", + "outputs": [ + { + "internalType": "uint128", + "name": "token0", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "token1", + "type": "uint128" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint8", + "name": "feeProtocol0", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "feeProtocol1", + "type": "uint8" + } + ], + "name": "setFeeProtocol", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "slot0", + "outputs": [ + { + "internalType": "uint160", + "name": "sqrtPriceX96", + "type": "uint160" + }, + { + "internalType": "int24", + "name": "tick", + "type": "int24" + }, + { + "internalType": "uint16", + "name": "observationIndex", + "type": "uint16" + }, + { + "internalType": "uint16", + "name": "observationCardinality", + "type": "uint16" + }, + { + "internalType": "uint16", + "name": "observationCardinalityNext", + "type": "uint16" + }, + { + "internalType": "uint8", + "name": "feeProtocol", + "type": "uint8" + }, + { + "internalType": "bool", + "name": "unlocked", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int24", + "name": "tickLower", + "type": "int24" + }, + { + "internalType": "int24", + "name": "tickUpper", + "type": "int24" + } + ], + "name": "snapshotCumulativesInside", + "outputs": [ + { + "internalType": "int56", + "name": "tickCumulativeInside", + "type": "int56" + }, + { + "internalType": "uint160", + "name": "secondsPerLiquidityInsideX128", + "type": "uint160" + }, + { + "internalType": "uint32", + "name": "secondsInside", + "type": "uint32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "bool", + "name": "zeroForOne", + "type": "bool" + }, + { + "internalType": "int256", + "name": "amountSpecified", + "type": "int256" + }, + { + "internalType": "uint160", + "name": "sqrtPriceLimitX96", + "type": "uint160" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "swap", + "outputs": [ + { + "internalType": "int256", + "name": "amount0", + "type": "int256" + }, + { + "internalType": "int256", + "name": "amount1", + "type": "int256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int16", + "name": "wordPosition", + "type": "int16" + } + ], + "name": "tickBitmap", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "tickSpacing", + "outputs": [ + { + "internalType": "int24", + "name": "", + "type": "int24" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "int24", + "name": "tick", + "type": "int24" + } + ], + "name": "ticks", + "outputs": [ + { + "internalType": "uint128", + "name": "liquidityGross", + "type": "uint128" + }, + { + "internalType": "int128", + "name": "liquidityNet", + "type": "int128" + }, + { + "internalType": "uint256", + "name": "feeGrowthOutside0X128", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "feeGrowthOutside1X128", + "type": "uint256" + }, + { + "internalType": "int56", + "name": "tickCumulativeOutside", + "type": "int56" + }, + { + "internalType": "uint160", + "name": "secondsPerLiquidityOutsideX128", + "type": "uint160" + }, + { + "internalType": "uint32", + "name": "secondsOutside", + "type": "uint32" + }, + { + "internalType": "bool", + "name": "initialized", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "token0", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "token1", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + } +] \ No newline at end of file diff --git a/src/contracts/UniswapV3Staker.json b/src/contracts/UniswapV3Staker.json new file mode 100644 index 00000000..37aaf67c --- /dev/null +++ b/src/contracts/UniswapV3Staker.json @@ -0,0 +1,546 @@ +[{ + "inputs": [{ + "internalType": "contract IUniswapV3Factory", + "name": "_factory", + "type": "address" + }, { + "internalType": "contract INonfungiblePositionManager", + "name": "_nonfungiblePositionManager", + "type": "address" + }, { + "internalType": "uint256", + "name": "_maxIncentiveStartLeadTime", + "type": "uint256" + }, { + "internalType": "uint256", + "name": "_maxIncentiveDuration", + "type": "uint256" + }], + "stateMutability": "nonpayable", + "type": "constructor" +}, { + "anonymous": false, + "inputs": [{ + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, { + "indexed": true, + "internalType": "address", + "name": "oldOwner", + "type": "address" + }, { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + }], + "name": "DepositTransferred", + "type": "event" +}, { + "anonymous": false, + "inputs": [{ + "indexed": true, + "internalType": "contract IERC20Minimal", + "name": "rewardToken", + "type": "address" + }, { + "indexed": true, + "internalType": "contract IUniswapV3Pool", + "name": "pool", + "type": "address" + }, { + "indexed": false, + "internalType": "uint256", + "name": "startTime", + "type": "uint256" + }, { + "indexed": false, + "internalType": "uint256", + "name": "endTime", + "type": "uint256" + }, { + "indexed": false, + "internalType": "address", + "name": "refundee", + "type": "address" + }, { + "indexed": false, + "internalType": "uint256", + "name": "reward", + "type": "uint256" + }], + "name": "IncentiveCreated", + "type": "event" +}, { + "anonymous": false, + "inputs": [{ + "indexed": true, + "internalType": "bytes32", + "name": "incentiveId", + "type": "bytes32" + }, { + "indexed": false, + "internalType": "uint256", + "name": "refund", + "type": "uint256" + }], + "name": "IncentiveEnded", + "type": "event" +}, { + "anonymous": false, + "inputs": [{ + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, { + "indexed": false, + "internalType": "uint256", + "name": "reward", + "type": "uint256" + }], + "name": "RewardClaimed", + "type": "event" +}, { + "anonymous": false, + "inputs": [{ + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, { + "indexed": true, + "internalType": "bytes32", + "name": "incentiveId", + "type": "bytes32" + }, { + "indexed": false, + "internalType": "uint128", + "name": "liquidity", + "type": "uint128" + }], + "name": "TokenStaked", + "type": "event" +}, { + "anonymous": false, + "inputs": [{ + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, { + "indexed": true, + "internalType": "bytes32", + "name": "incentiveId", + "type": "bytes32" + }], + "name": "TokenUnstaked", + "type": "event" +}, { + "inputs": [{ + "internalType": "contract IERC20Minimal", + "name": "rewardToken", + "type": "address" + }, { + "internalType": "address", + "name": "to", + "type": "address" + }, { + "internalType": "uint256", + "name": "amountRequested", + "type": "uint256" + }], + "name": "claimReward", + "outputs": [{ + "internalType": "uint256", + "name": "reward", + "type": "uint256" + }], + "stateMutability": "nonpayable", + "type": "function" +}, { + "inputs": [{ + "components": [{ + "internalType": "contract IERC20Minimal", + "name": "rewardToken", + "type": "address" + }, { + "internalType": "contract IUniswapV3Pool", + "name": "pool", + "type": "address" + }, { + "internalType": "uint256", + "name": "startTime", + "type": "uint256" + }, { + "internalType": "uint256", + "name": "endTime", + "type": "uint256" + }, { + "internalType": "address", + "name": "refundee", + "type": "address" + }], + "internalType": "struct IUniswapV3Staker.IncentiveKey", + "name": "key", + "type": "tuple" + }, { + "internalType": "uint256", + "name": "reward", + "type": "uint256" + }], + "name": "createIncentive", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" +}, { + "inputs": [{ + "internalType": "uint256", + "name": "", + "type": "uint256" + }], + "name": "deposits", + "outputs": [{ + "internalType": "address", + "name": "owner", + "type": "address" + }, { + "internalType": "uint48", + "name": "numberOfStakes", + "type": "uint48" + }, { + "internalType": "int24", + "name": "tickLower", + "type": "int24" + }, { + "internalType": "int24", + "name": "tickUpper", + "type": "int24" + }], + "stateMutability": "view", + "type": "function" +}, { + "inputs": [{ + "components": [{ + "internalType": "contract IERC20Minimal", + "name": "rewardToken", + "type": "address" + }, { + "internalType": "contract IUniswapV3Pool", + "name": "pool", + "type": "address" + }, { + "internalType": "uint256", + "name": "startTime", + "type": "uint256" + }, { + "internalType": "uint256", + "name": "endTime", + "type": "uint256" + }, { + "internalType": "address", + "name": "refundee", + "type": "address" + }], + "internalType": "struct IUniswapV3Staker.IncentiveKey", + "name": "key", + "type": "tuple" + }], + "name": "endIncentive", + "outputs": [{ + "internalType": "uint256", + "name": "refund", + "type": "uint256" + }], + "stateMutability": "nonpayable", + "type": "function" +}, { + "inputs": [], + "name": "factory", + "outputs": [{ + "internalType": "contract IUniswapV3Factory", + "name": "", + "type": "address" + }], + "stateMutability": "view", + "type": "function" +}, { + "inputs": [{ + "components": [{ + "internalType": "contract IERC20Minimal", + "name": "rewardToken", + "type": "address" + }, { + "internalType": "contract IUniswapV3Pool", + "name": "pool", + "type": "address" + }, { + "internalType": "uint256", + "name": "startTime", + "type": "uint256" + }, { + "internalType": "uint256", + "name": "endTime", + "type": "uint256" + }, { + "internalType": "address", + "name": "refundee", + "type": "address" + }], + "internalType": "struct IUniswapV3Staker.IncentiveKey", + "name": "key", + "type": "tuple" + }, { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }], + "name": "getRewardInfo", + "outputs": [{ + "internalType": "uint256", + "name": "reward", + "type": "uint256" + }, { + "internalType": "uint160", + "name": "secondsInsideX128", + "type": "uint160" + }], + "stateMutability": "view", + "type": "function" +}, { + "inputs": [{ + "internalType": "bytes32", + "name": "", + "type": "bytes32" + }], + "name": "incentives", + "outputs": [{ + "internalType": "uint256", + "name": "totalRewardUnclaimed", + "type": "uint256" + }, { + "internalType": "uint160", + "name": "totalSecondsClaimedX128", + "type": "uint160" + }, { + "internalType": "uint96", + "name": "numberOfStakes", + "type": "uint96" + }], + "stateMutability": "view", + "type": "function" +}, { + "inputs": [], + "name": "maxIncentiveDuration", + "outputs": [{ + "internalType": "uint256", + "name": "", + "type": "uint256" + }], + "stateMutability": "view", + "type": "function" +}, { + "inputs": [], + "name": "maxIncentiveStartLeadTime", + "outputs": [{ + "internalType": "uint256", + "name": "", + "type": "uint256" + }], + "stateMutability": "view", + "type": "function" +}, { + "inputs": [{ + "internalType": "bytes[]", + "name": "data", + "type": "bytes[]" + }], + "name": "multicall", + "outputs": [{ + "internalType": "bytes[]", + "name": "results", + "type": "bytes[]" + }], + "stateMutability": "payable", + "type": "function" +}, { + "inputs": [], + "name": "nonfungiblePositionManager", + "outputs": [{ + "internalType": "contract INonfungiblePositionManager", + "name": "", + "type": "address" + }], + "stateMutability": "view", + "type": "function" +}, { + "inputs": [{ + "internalType": "address", + "name": "", + "type": "address" + }, { + "internalType": "address", + "name": "from", + "type": "address" + }, { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }], + "name": "onERC721Received", + "outputs": [{ + "internalType": "bytes4", + "name": "", + "type": "bytes4" + }], + "stateMutability": "nonpayable", + "type": "function" +}, { + "inputs": [{ + "internalType": "contract IERC20Minimal", + "name": "", + "type": "address" + }, { + "internalType": "address", + "name": "", + "type": "address" + }], + "name": "rewards", + "outputs": [{ + "internalType": "uint256", + "name": "", + "type": "uint256" + }], + "stateMutability": "view", + "type": "function" +}, { + "inputs": [{ + "components": [{ + "internalType": "contract IERC20Minimal", + "name": "rewardToken", + "type": "address" + }, { + "internalType": "contract IUniswapV3Pool", + "name": "pool", + "type": "address" + }, { + "internalType": "uint256", + "name": "startTime", + "type": "uint256" + }, { + "internalType": "uint256", + "name": "endTime", + "type": "uint256" + }, { + "internalType": "address", + "name": "refundee", + "type": "address" + }], + "internalType": "struct IUniswapV3Staker.IncentiveKey", + "name": "key", + "type": "tuple" + }, { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }], + "name": "stakeToken", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" +}, { + "inputs": [{ + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, { + "internalType": "bytes32", + "name": "incentiveId", + "type": "bytes32" + }], + "name": "stakes", + "outputs": [{ + "internalType": "uint160", + "name": "secondsPerLiquidityInsideInitialX128", + "type": "uint160" + }, { + "internalType": "uint128", + "name": "liquidity", + "type": "uint128" + }], + "stateMutability": "view", + "type": "function" +}, { + "inputs": [{ + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, { + "internalType": "address", + "name": "to", + "type": "address" + }], + "name": "transferDeposit", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" +}, { + "inputs": [{ + "components": [{ + "internalType": "contract IERC20Minimal", + "name": "rewardToken", + "type": "address" + }, { + "internalType": "contract IUniswapV3Pool", + "name": "pool", + "type": "address" + }, { + "internalType": "uint256", + "name": "startTime", + "type": "uint256" + }, { + "internalType": "uint256", + "name": "endTime", + "type": "uint256" + }, { + "internalType": "address", + "name": "refundee", + "type": "address" + }], + "internalType": "struct IUniswapV3Staker.IncentiveKey", + "name": "key", + "type": "tuple" + }, { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }], + "name": "unstakeToken", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" +}, { + "inputs": [{ + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, { + "internalType": "address", + "name": "to", + "type": "address" + }, { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }], + "name": "withdrawToken", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" +}] \ No newline at end of file diff --git a/src/contracts/cryptex.json b/src/contracts/cryptex.json index 6f702a02..2597a3c8 100644 --- a/src/contracts/cryptex.json +++ b/src/contracts/cryptex.json @@ -1785,7 +1785,7 @@ } ] }, - "BTCOracle": { + "WBTCOracle": { "address": "0x07Ef20895ceF20855D29ACeDCa35E6f96AF4fF49", "abi": [ { @@ -11250,6 +11250,322 @@ } ] }, + "WBTC": { + "address": "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599", + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "addedValue", + "type": "uint256" + } + ], + "name": "increaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ] + }, "WBTCRewardHandler": { "address": "0x1A14F9367Db41400BE5d38a0bC48d4Cc2e4B7157", "abi": [ @@ -15563,20 +15879,73 @@ "type": "receive" } ] - } - } - } - }, - "4": { - "rinkeby": { - "name": "rinkeby", - "chainId": "4", - "contracts": { - "AAVE": { - "address": "0x8B4A041A619aC26B33e5BAEe9585e569387ec837", + }, + "HardWETHVaultHandler": { + "address": "0xc2Ba6B8E0EE3cf48B045D966F1dCda767df74833", "abi": [ { - "inputs": [], + "inputs": [ + { + "internalType": "contract Orchestrator", + "name": "_orchestrator", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_divisor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_ratio", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_burnFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_liquidationPenalty", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_tcapOracle", + "type": "address" + }, + { + "internalType": "contract TCAP", + "name": "_tcapAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_collateralAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_collateralOracle", + "type": "address" + }, + { + "internalType": "address", + "name": "_ethOracle", + "type": "address" + }, + { + "internalType": "address", + "name": "_treasury", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_minimumTCAP", + "type": "uint256" + } + ], "stateMutability": "nonpayable", "type": "constructor" }, @@ -15586,23 +15955,23 @@ { "indexed": true, "internalType": "address", - "name": "owner", + "name": "_owner", "type": "address" }, { "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" + "internalType": "uint256", + "name": "_id", + "type": "uint256" }, { "indexed": false, "internalType": "uint256", - "name": "value", + "name": "_amount", "type": "uint256" } ], - "name": "Approval", + "name": "CollateralAdded", "type": "event" }, { @@ -15611,329 +15980,367 @@ { "indexed": true, "internalType": "address", - "name": "from", + "name": "_owner", "type": "address" }, { "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" + "internalType": "uint256", + "name": "_id", + "type": "uint256" }, { "indexed": false, "internalType": "uint256", - "name": "value", + "name": "_amount", "type": "uint256" } ], - "name": "Transfer", + "name": "CollateralRemoved", "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": true, "internalType": "address", - "name": "owner", + "name": "_owner", "type": "address" }, { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { + "indexed": false, "internalType": "uint256", - "name": "", + "name": "_burnFee", "type": "uint256" } ], - "stateMutability": "view", - "type": "function" + "name": "NewBurnFee", + "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": true, "internalType": "address", - "name": "spender", + "name": "_owner", "type": "address" }, { + "indexed": false, "internalType": "uint256", - "name": "amount", + "name": "_liquidationPenalty", "type": "uint256" } ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" + "name": "NewLiquidationPenalty", + "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": true, "internalType": "address", - "name": "account", + "name": "_owner", "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ + }, { + "indexed": false, "internalType": "uint256", - "name": "", + "name": "_minimumTCAP", "type": "uint256" } ], - "stateMutability": "view", - "type": "function" + "name": "NewMinimumTCAP", + "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": true, "internalType": "address", - "name": "_account", + "name": "_owner", "type": "address" }, { + "indexed": false, "internalType": "uint256", - "name": "_amount", + "name": "_ratio", "type": "uint256" } ], - "name": "burn", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" + "name": "NewRatio", + "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": true, "internalType": "address", - "name": "spender", + "name": "_owner", "type": "address" }, { - "internalType": "uint256", - "name": "subtractedValue", - "type": "uint256" - } - ], - "name": "decreaseAllowance", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" + "indexed": false, + "internalType": "address", + "name": "_tresury", + "type": "address" } ], - "stateMutability": "nonpayable", - "type": "function" + "name": "NewTreasury", + "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": true, "internalType": "address", - "name": "spender", + "name": "previousOwner", "type": "address" }, { - "internalType": "uint256", - "name": "addedValue", - "type": "uint256" + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" } ], - "name": "increaseAllowance", - "outputs": [ + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ { - "internalType": "bool", - "name": "", - "type": "bool" + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" } ], - "stateMutability": "nonpayable", - "type": "function" + "name": "Paused", + "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": false, "internalType": "address", - "name": "_account", + "name": "_token", "type": "address" }, { + "indexed": false, "internalType": "uint256", "name": "_amount", "type": "uint256" } ], - "name": "mint", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "name": "Recovered", + "type": "event" }, { - "inputs": [], - "name": "name", - "outputs": [ + "anonymous": false, + "inputs": [ { - "internalType": "string", - "name": "", - "type": "string" + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" } ], - "stateMutability": "view", - "type": "function" + "name": "RoleAdminChanged", + "type": "event" }, { - "inputs": [], - "name": "symbol", - "outputs": [ + "anonymous": false, + "inputs": [ { - "internalType": "string", - "name": "", - "type": "string" + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" } ], - "stateMutability": "view", - "type": "function" + "name": "RoleGranted", + "type": "event" }, { - "inputs": [], - "name": "totalSupply", - "outputs": [ + "anonymous": false, + "inputs": [ { - "internalType": "uint256", - "name": "", - "type": "uint256" + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" } ], - "stateMutability": "view", - "type": "function" + "name": "RoleRevoked", + "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": true, "internalType": "address", - "name": "recipient", + "name": "_owner", "type": "address" }, { + "indexed": true, "internalType": "uint256", - "name": "amount", + "name": "_id", "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ + }, { - "internalType": "bool", - "name": "", - "type": "bool" + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" } ], - "stateMutability": "nonpayable", - "type": "function" + "name": "TokensBurned", + "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": true, "internalType": "address", - "name": "sender", + "name": "_owner", "type": "address" }, { - "internalType": "address", - "name": "recipient", - "type": "address" + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" }, { + "indexed": false, "internalType": "uint256", - "name": "amount", + "name": "_amount", "type": "uint256" } ], - "name": "transferFrom", - "outputs": [ + "name": "TokensMinted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ { - "internalType": "bool", - "name": "", - "type": "bool" + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" } ], - "stateMutability": "nonpayable", - "type": "function" - } - ] - }, - "AaveOracle": { - "address": "0x73Ebb8b08f056F451c2aA53dCAd7A35ce6aD52D0", - "abi": [ + "name": "Unpaused", + "type": "event" + }, { + "anonymous": false, "inputs": [ { + "indexed": true, "internalType": "address", - "name": "_aggregator", + "name": "_owner", "type": "address" }, { - "internalType": "address", - "name": "_timelock", - "type": "address" + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" } ], - "stateMutability": "nonpayable", - "type": "constructor" + "name": "VaultCreated", + "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" }, { "indexed": true, "internalType": "address", - "name": "newOwner", + "name": "_liquidator", "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_liquidationCollateral", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_reward", + "type": "uint256" } ], - "name": "OwnershipTransferred", + "name": "VaultLiquidated", "type": "event" }, { "inputs": [], - "name": "getLatestAnswer", + "name": "DEFAULT_ADMIN_ROLE", "outputs": [ { - "internalType": "int256", + "internalType": "bytes32", "name": "", - "type": "int256" + "type": "bytes32" } ], "stateMutability": "view", @@ -15941,32 +16348,38 @@ }, { "inputs": [], - "name": "getLatestRound", + "name": "ETHPriceOracle", "outputs": [ { - "internalType": "uint80", - "name": "", - "type": "uint80" - }, - { - "internalType": "int256", + "internalType": "contract ChainlinkOracle", "name": "", - "type": "int256" - }, + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MAX_DECIMAL_PLACES", + "outputs": [ { - "internalType": "uint256", + "internalType": "uint8", "name": "", - "type": "uint256" - }, + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MAX_FEE", + "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" - }, - { - "internalType": "uint80", - "name": "", - "type": "uint80" } ], "stateMutability": "view", @@ -15974,7 +16387,7 @@ }, { "inputs": [], - "name": "getLatestTimestamp", + "name": "MIN_RATIO", "outputs": [ { "internalType": "uint256", @@ -15986,19 +16399,26 @@ "type": "function" }, { - "inputs": [ + "inputs": [], + "name": "TCAPPrice", + "outputs": [ { - "internalType": "uint80", - "name": "_id", - "type": "uint80" + "internalType": "uint256", + "name": "price", + "type": "uint256" } ], - "name": "getPreviousAnswer", + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "TCAPToken", "outputs": [ { - "internalType": "int256", + "internalType": "contract TCAP", "name": "", - "type": "int256" + "type": "address" } ], "stateMutability": "view", @@ -16006,68 +16426,35238 @@ }, { "inputs": [ - { - "internalType": "uint80", - "name": "_id", - "type": "uint80" - } - ], - "name": "getPreviousTimestamp", - "outputs": [ { "internalType": "uint256", - "name": "", + "name": "_amount", "type": "uint256" } ], - "stateMutability": "view", + "name": "addCollateral", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "addCollateralETH", + "outputs": [], + "stateMutability": "payable", "type": "function" }, { "inputs": [ { - "internalType": "uint80", - "name": "_id", - "type": "uint80" + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "burnFee", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "collateralContract", + "outputs": [ + { + "internalType": "contract IERC20", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "collateralDecimalsAdjustmentFactor", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "collateralPriceOracle", + "outputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "counter", + "outputs": [ + { + "internalType": "uint256", + "name": "_value", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "createVault", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "divisor", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "getFee", + "outputs": [ + { + "internalType": "uint256", + "name": "fee", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "_oracle", + "type": "address" + } + ], + "name": "getOraclePrice", + "outputs": [ + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "getRoleMember", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleMemberCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_id", + "type": "uint256" + } + ], + "name": "getVault", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + } + ], + "name": "getVaultRatio", + "outputs": [ + { + "internalType": "uint256", + "name": "currentRatio", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_maxTCAP", + "type": "uint256" + } + ], + "name": "liquidateVault", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "liquidationPenalty", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + } + ], + "name": "liquidationReward", + "outputs": [ + { + "internalType": "uint256", + "name": "rewardCollateral", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "minimumTCAP", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "oracleDigits", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "pause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "paused", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "ratio", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_tokenAddress", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_tokenAmount", + "type": "uint256" + } + ], + "name": "recoverERC20", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "removeCollateral", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "removeCollateralETH", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "requiredCollateral", + "outputs": [ + { + "internalType": "uint256", + "name": "collateral", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + } + ], + "name": "requiredLiquidationTCAP", + "outputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_burnFee", + "type": "uint256" + } + ], + "name": "setBurnFee", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_liquidationPenalty", + "type": "uint256" + } + ], + "name": "setLiquidationPenalty", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_minimumTCAP", + "type": "uint256" + } + ], + "name": "setMinimumTCAP", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_ratio", + "type": "uint256" + } + ], + "name": "setRatio", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_treasury", + "type": "address" + } + ], + "name": "setTreasury", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "_interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "tcapOracle", + "outputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "treasury", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "unpause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "userToVault", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "vaults", + "outputs": [ + { + "internalType": "uint256", + "name": "Id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "Collateral", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "Debt", + "type": "uint256" + }, + { + "internalType": "address", + "name": "Owner", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "stateMutability": "payable", + "type": "receive" + } + ] + }, + "HardDaiVaultHandler": { + "address": "0xA5b3Bb6e1f206624B3B8CE0c6A0f7614fd35Fa03", + "abi": [ + { + "inputs": [ + { + "internalType": "contract Orchestrator", + "name": "_orchestrator", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_divisor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_ratio", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_burnFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_liquidationPenalty", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_tcapOracle", + "type": "address" + }, + { + "internalType": "contract TCAP", + "name": "_tcapAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_collateralAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_collateralOracle", + "type": "address" + }, + { + "internalType": "address", + "name": "_ethOracle", + "type": "address" + }, + { + "internalType": "address", + "name": "_treasury", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_minimumTCAP", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "CollateralAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "CollateralRemoved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_burnFee", + "type": "uint256" + } + ], + "name": "NewBurnFee", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_liquidationPenalty", + "type": "uint256" + } + ], + "name": "NewLiquidationPenalty", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_minimumTCAP", + "type": "uint256" + } + ], + "name": "NewMinimumTCAP", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_ratio", + "type": "uint256" + } + ], + "name": "NewRatio", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "_tresury", + "type": "address" + } + ], + "name": "NewTreasury", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "Paused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_token", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "Recovered", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "TokensBurned", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "TokensMinted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "Unpaused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + } + ], + "name": "VaultCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "address", + "name": "_liquidator", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_liquidationCollateral", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_reward", + "type": "uint256" + } + ], + "name": "VaultLiquidated", + "type": "event" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "ETHPriceOracle", + "outputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MAX_DECIMAL_PLACES", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MAX_FEE", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MIN_RATIO", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "TCAPPrice", + "outputs": [ + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "TCAPToken", + "outputs": [ + { + "internalType": "contract TCAP", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "addCollateral", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "burnFee", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "collateralContract", + "outputs": [ + { + "internalType": "contract IERC20", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "collateralDecimalsAdjustmentFactor", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "collateralPriceOracle", + "outputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "counter", + "outputs": [ + { + "internalType": "uint256", + "name": "_value", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "createVault", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "divisor", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "getFee", + "outputs": [ + { + "internalType": "uint256", + "name": "fee", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "_oracle", + "type": "address" + } + ], + "name": "getOraclePrice", + "outputs": [ + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "getRoleMember", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleMemberCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_id", + "type": "uint256" + } + ], + "name": "getVault", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + } + ], + "name": "getVaultRatio", + "outputs": [ + { + "internalType": "uint256", + "name": "currentRatio", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_maxTCAP", + "type": "uint256" + } + ], + "name": "liquidateVault", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "liquidationPenalty", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + } + ], + "name": "liquidationReward", + "outputs": [ + { + "internalType": "uint256", + "name": "rewardCollateral", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "minimumTCAP", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "oracleDigits", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "pause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "paused", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "ratio", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_tokenAddress", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_tokenAmount", + "type": "uint256" + } + ], + "name": "recoverERC20", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "removeCollateral", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "requiredCollateral", + "outputs": [ + { + "internalType": "uint256", + "name": "collateral", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + } + ], + "name": "requiredLiquidationTCAP", + "outputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_burnFee", + "type": "uint256" + } + ], + "name": "setBurnFee", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_liquidationPenalty", + "type": "uint256" + } + ], + "name": "setLiquidationPenalty", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_minimumTCAP", + "type": "uint256" + } + ], + "name": "setMinimumTCAP", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_ratio", + "type": "uint256" + } + ], + "name": "setRatio", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_treasury", + "type": "address" + } + ], + "name": "setTreasury", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "_interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "tcapOracle", + "outputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "treasury", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "unpause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "userToVault", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "vaults", + "outputs": [ + { + "internalType": "uint256", + "name": "Id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "Collateral", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "Debt", + "type": "uint256" + }, + { + "internalType": "address", + "name": "Owner", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + } + ] + }, + "USDC": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "addedValue", + "type": "uint256" + } + ], + "name": "increaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ] + }, + "USDCOracle": { + "address": "0x904D86064da7ee54d893ef77c36ED6145897C6b9", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_aggregator", + "type": "address" + }, + { + "internalType": "address", + "name": "_owner", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [], + "name": "getLatestAnswer", + "outputs": [ + { + "internalType": "int256", + "name": "", + "type": "int256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getLatestRound", + "outputs": [ + { + "internalType": "uint80", + "name": "", + "type": "uint80" + }, + { + "internalType": "int256", + "name": "", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint80", + "name": "", + "type": "uint80" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getLatestTimestamp", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint80", + "name": "_id", + "type": "uint80" + } + ], + "name": "getPreviousAnswer", + "outputs": [ + { + "internalType": "int256", + "name": "", + "type": "int256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint80", + "name": "_id", + "type": "uint80" + } + ], + "name": "getPreviousTimestamp", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint80", + "name": "_id", + "type": "uint80" + } + ], + "name": "getRound", + "outputs": [ + { + "internalType": "uint80", + "name": "", + "type": "uint80" + }, + { + "internalType": "int256", + "name": "", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint80", + "name": "", + "type": "uint80" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_aggregator", + "type": "address" + } + ], + "name": "setReferenceContract", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ] + }, + "HardUSDCVaultHandler": { + "address": "0xa8CcA36A624215a39D5af6854ac24868559424d3", + "abi": [ + { + "inputs": [ + { + "internalType": "contract Orchestrator", + "name": "_orchestrator", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_divisor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_ratio", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_burnFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_liquidationPenalty", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_tcapOracle", + "type": "address" + }, + { + "internalType": "contract TCAP", + "name": "_tcapAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_collateralAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_collateralOracle", + "type": "address" + }, + { + "internalType": "address", + "name": "_ethOracle", + "type": "address" + }, + { + "internalType": "address", + "name": "_treasury", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_minimumTCAP", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "CollateralAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "CollateralRemoved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_burnFee", + "type": "uint256" + } + ], + "name": "NewBurnFee", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_liquidationPenalty", + "type": "uint256" + } + ], + "name": "NewLiquidationPenalty", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_minimumTCAP", + "type": "uint256" + } + ], + "name": "NewMinimumTCAP", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_ratio", + "type": "uint256" + } + ], + "name": "NewRatio", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "_tresury", + "type": "address" + } + ], + "name": "NewTreasury", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "Paused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_token", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "Recovered", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "TokensBurned", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "TokensMinted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "Unpaused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + } + ], + "name": "VaultCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "address", + "name": "_liquidator", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_liquidationCollateral", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_reward", + "type": "uint256" + } + ], + "name": "VaultLiquidated", + "type": "event" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "ETHPriceOracle", + "outputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MAX_DECIMAL_PLACES", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MAX_FEE", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MIN_RATIO", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "TCAPPrice", + "outputs": [ + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "TCAPToken", + "outputs": [ + { + "internalType": "contract TCAP", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "addCollateral", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "burnFee", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "collateralContract", + "outputs": [ + { + "internalType": "contract IERC20", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "collateralDecimalsAdjustmentFactor", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "collateralPriceOracle", + "outputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "counter", + "outputs": [ + { + "internalType": "uint256", + "name": "_value", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "createVault", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "divisor", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "getFee", + "outputs": [ + { + "internalType": "uint256", + "name": "fee", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "_oracle", + "type": "address" + } + ], + "name": "getOraclePrice", + "outputs": [ + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "getRoleMember", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleMemberCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_id", + "type": "uint256" + } + ], + "name": "getVault", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + } + ], + "name": "getVaultRatio", + "outputs": [ + { + "internalType": "uint256", + "name": "currentRatio", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_maxTCAP", + "type": "uint256" + } + ], + "name": "liquidateVault", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "liquidationPenalty", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + } + ], + "name": "liquidationReward", + "outputs": [ + { + "internalType": "uint256", + "name": "rewardCollateral", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "minimumTCAP", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "oracleDigits", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "pause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "paused", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "ratio", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_tokenAddress", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_tokenAmount", + "type": "uint256" + } + ], + "name": "recoverERC20", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "removeCollateral", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "requiredCollateral", + "outputs": [ + { + "internalType": "uint256", + "name": "collateral", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + } + ], + "name": "requiredLiquidationTCAP", + "outputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_burnFee", + "type": "uint256" + } + ], + "name": "setBurnFee", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_liquidationPenalty", + "type": "uint256" + } + ], + "name": "setLiquidationPenalty", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_minimumTCAP", + "type": "uint256" + } + ], + "name": "setMinimumTCAP", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_ratio", + "type": "uint256" + } + ], + "name": "setRatio", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_treasury", + "type": "address" + } + ], + "name": "setTreasury", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "_interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "tcapOracle", + "outputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "treasury", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "unpause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "userToVault", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "vaults", + "outputs": [ + { + "internalType": "uint256", + "name": "Id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "Collateral", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "Debt", + "type": "uint256" + }, + { + "internalType": "address", + "name": "Owner", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + } + ] + }, + "HardWBTCVaultHandler": { + "address": "0x2364536F4891Ed560A6728f4B36871de8176eE5c", + "abi": [ + { + "inputs": [ + { + "internalType": "contract Orchestrator", + "name": "_orchestrator", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_divisor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_ratio", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_burnFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_liquidationPenalty", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_tcapOracle", + "type": "address" + }, + { + "internalType": "contract TCAP", + "name": "_tcapAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_collateralAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_collateralOracle", + "type": "address" + }, + { + "internalType": "address", + "name": "_ethOracle", + "type": "address" + }, + { + "internalType": "address", + "name": "_treasury", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_minimumTCAP", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "CollateralAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "CollateralRemoved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_burnFee", + "type": "uint256" + } + ], + "name": "NewBurnFee", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_liquidationPenalty", + "type": "uint256" + } + ], + "name": "NewLiquidationPenalty", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_minimumTCAP", + "type": "uint256" + } + ], + "name": "NewMinimumTCAP", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_ratio", + "type": "uint256" + } + ], + "name": "NewRatio", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "_tresury", + "type": "address" + } + ], + "name": "NewTreasury", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "Paused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_token", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "Recovered", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "TokensBurned", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "TokensMinted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "Unpaused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + } + ], + "name": "VaultCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "address", + "name": "_liquidator", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_liquidationCollateral", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_reward", + "type": "uint256" + } + ], + "name": "VaultLiquidated", + "type": "event" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "ETHPriceOracle", + "outputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MAX_DECIMAL_PLACES", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MAX_FEE", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MIN_RATIO", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "TCAPPrice", + "outputs": [ + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "TCAPToken", + "outputs": [ + { + "internalType": "contract TCAP", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "addCollateral", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "burnFee", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "collateralContract", + "outputs": [ + { + "internalType": "contract IERC20", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "collateralDecimalsAdjustmentFactor", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "collateralPriceOracle", + "outputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "counter", + "outputs": [ + { + "internalType": "uint256", + "name": "_value", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "createVault", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "divisor", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "getFee", + "outputs": [ + { + "internalType": "uint256", + "name": "fee", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "_oracle", + "type": "address" + } + ], + "name": "getOraclePrice", + "outputs": [ + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "getRoleMember", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleMemberCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_id", + "type": "uint256" + } + ], + "name": "getVault", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + } + ], + "name": "getVaultRatio", + "outputs": [ + { + "internalType": "uint256", + "name": "currentRatio", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_maxTCAP", + "type": "uint256" + } + ], + "name": "liquidateVault", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "liquidationPenalty", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + } + ], + "name": "liquidationReward", + "outputs": [ + { + "internalType": "uint256", + "name": "rewardCollateral", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "minimumTCAP", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "oracleDigits", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "pause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "paused", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "ratio", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_tokenAddress", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_tokenAmount", + "type": "uint256" + } + ], + "name": "recoverERC20", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "removeCollateral", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "requiredCollateral", + "outputs": [ + { + "internalType": "uint256", + "name": "collateral", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + } + ], + "name": "requiredLiquidationTCAP", + "outputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_burnFee", + "type": "uint256" + } + ], + "name": "setBurnFee", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_liquidationPenalty", + "type": "uint256" + } + ], + "name": "setLiquidationPenalty", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_minimumTCAP", + "type": "uint256" + } + ], + "name": "setMinimumTCAP", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_ratio", + "type": "uint256" + } + ], + "name": "setRatio", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_treasury", + "type": "address" + } + ], + "name": "setTreasury", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "_interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "tcapOracle", + "outputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "treasury", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "unpause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "userToVault", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "vaults", + "outputs": [ + { + "internalType": "uint256", + "name": "Id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "Collateral", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "Debt", + "type": "uint256" + }, + { + "internalType": "address", + "name": "Owner", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + } + ] + } + } + } + }, + "5": { + "goerli": { + "name": "goerli", + "chainId": "5", + "contracts": { + "AAVE": { + "address": "0x51E4E8Deb87a72A7cF12DECa5e307Ad6E286dad8", + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "addedValue", + "type": "uint256" + } + ], + "name": "increaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ] + }, + "AaveOracle": { + "address": "0x891FbB3f9EecB3822A67B20bFf284D0D83b7C30f", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_aggregator", + "type": "address" + }, + { + "internalType": "address", + "name": "_timelock", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [], + "name": "getLatestAnswer", + "outputs": [ + { + "internalType": "int256", + "name": "", + "type": "int256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getLatestRound", + "outputs": [ + { + "internalType": "uint80", + "name": "", + "type": "uint80" + }, + { + "internalType": "int256", + "name": "", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint80", + "name": "", + "type": "uint80" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getLatestTimestamp", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint80", + "name": "_id", + "type": "uint80" + } + ], + "name": "getPreviousAnswer", + "outputs": [ + { + "internalType": "int256", + "name": "", + "type": "int256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint80", + "name": "_id", + "type": "uint80" + } + ], + "name": "getPreviousTimestamp", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint80", + "name": "_id", + "type": "uint80" + } + ], + "name": "getRound", + "outputs": [ + { + "internalType": "uint80", + "name": "", + "type": "uint80" + }, + { + "internalType": "int256", + "name": "", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint80", + "name": "", + "type": "uint80" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_aggregator", + "type": "address" + } + ], + "name": "setReferenceContract", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ] + }, + "AaveVaultHandler": { + "address": "0xaf26aA0F3b19D156499BdC26d3fAA88530024c31", + "abi": [ + { + "inputs": [ + { + "internalType": "contract Orchestrator", + "name": "_orchestrator", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_divisor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_ratio", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_burnFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_liquidationPenalty", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_tcapOracle", + "type": "address" + }, + { + "internalType": "contract TCAP", + "name": "_tcapAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_collateralAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_collateralOracle", + "type": "address" + }, + { + "internalType": "address", + "name": "_ethOracle", + "type": "address" + }, + { + "internalType": "address", + "name": "_rewardHandler", + "type": "address" + }, + { + "internalType": "address", + "name": "_treasury", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "CollateralAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "CollateralRemoved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_burnFee", + "type": "uint256" + } + ], + "name": "NewBurnFee", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_liquidationPenalty", + "type": "uint256" + } + ], + "name": "NewLiquidationPenalty", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_ratio", + "type": "uint256" + } + ], + "name": "NewRatio", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "_tresury", + "type": "address" + } + ], + "name": "NewTreasury", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "Paused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_token", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "Recovered", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "TokensBurned", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "TokensMinted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "Unpaused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + } + ], + "name": "VaultCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "address", + "name": "_liquidator", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_liquidationCollateral", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_reward", + "type": "uint256" + } + ], + "name": "VaultLiquidated", + "type": "event" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "ETHPriceOracle", + "outputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MAX_FEE", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MIN_RATIO", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "TCAPPrice", + "outputs": [ + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "TCAPToken", + "outputs": [ + { + "internalType": "contract TCAP", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "addCollateral", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "burnFee", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "collateralContract", + "outputs": [ + { + "internalType": "contract IERC20", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "collateralPriceOracle", + "outputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "counter", + "outputs": [ + { + "internalType": "uint256", + "name": "_value", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "createVault", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "divisor", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "getFee", + "outputs": [ + { + "internalType": "uint256", + "name": "fee", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "_oracle", + "type": "address" + } + ], + "name": "getOraclePrice", + "outputs": [ + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "getRoleMember", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleMemberCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_id", + "type": "uint256" + } + ], + "name": "getVault", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + } + ], + "name": "getVaultRatio", + "outputs": [ + { + "internalType": "uint256", + "name": "currentRatio", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_maxTCAP", + "type": "uint256" + } + ], + "name": "liquidateVault", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "liquidationPenalty", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + } + ], + "name": "liquidationReward", + "outputs": [ + { + "internalType": "uint256", + "name": "rewardCollateral", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "oracleDigits", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "pause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "paused", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "ratio", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_tokenAddress", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_tokenAmount", + "type": "uint256" + } + ], + "name": "recoverERC20", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "removeCollateral", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "requiredCollateral", + "outputs": [ + { + "internalType": "uint256", + "name": "collateral", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + } + ], + "name": "requiredLiquidationTCAP", + "outputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "rewardHandler", + "outputs": [ + { + "internalType": "contract IRewardHandler", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_burnFee", + "type": "uint256" + } + ], + "name": "setBurnFee", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_liquidationPenalty", + "type": "uint256" + } + ], + "name": "setLiquidationPenalty", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_ratio", + "type": "uint256" + } + ], + "name": "setRatio", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_treasury", + "type": "address" + } + ], + "name": "setTreasury", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "_interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "tcapOracle", + "outputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "treasury", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "unpause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "userToVault", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "vaults", + "outputs": [ + { + "internalType": "uint256", + "name": "Id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "Collateral", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "Debt", + "type": "uint256" + }, + { + "internalType": "address", + "name": "Owner", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + } + ] + }, + "WBTCOracle": { + "address": "0xeDA36A1a6315A8208eE188cd45a1522A0a43598b", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_aggregator", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [], + "name": "getLatestAnswer", + "outputs": [ + { + "internalType": "int256", + "name": "", + "type": "int256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getLatestRound", + "outputs": [ + { + "internalType": "uint80", + "name": "", + "type": "uint80" + }, + { + "internalType": "int256", + "name": "", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint80", + "name": "", + "type": "uint80" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getLatestTimestamp", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint80", + "name": "_id", + "type": "uint80" + } + ], + "name": "getPreviousAnswer", + "outputs": [ + { + "internalType": "int256", + "name": "", + "type": "int256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint80", + "name": "_id", + "type": "uint80" + } + ], + "name": "getPreviousTimestamp", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint80", + "name": "_id", + "type": "uint80" + } + ], + "name": "getRound", + "outputs": [ + { + "internalType": "uint80", + "name": "", + "type": "uint80" + }, + { + "internalType": "int256", + "name": "", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint80", + "name": "", + "type": "uint80" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_aggregator", + "type": "address" + } + ], + "name": "setReferenceContract", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ] + }, + "WBTCVaultHandler": { + "address": "0x97CC91464Bd943c3f7B56EdD5a348B41bc4b224d", + "abi": [ + { + "inputs": [ + { + "internalType": "contract Orchestrator", + "name": "_orchestrator", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_divisor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_ratio", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_burnFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_liquidationPenalty", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_tcapOracle", + "type": "address" + }, + { + "internalType": "contract TCAP", + "name": "_tcapAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_collateralAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_collateralOracle", + "type": "address" + }, + { + "internalType": "address", + "name": "_ethOracle", + "type": "address" + }, + { + "internalType": "address", + "name": "_rewardHandler", + "type": "address" + }, + { + "internalType": "address", + "name": "_treasury", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "CollateralAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "CollateralRemoved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_burnFee", + "type": "uint256" + } + ], + "name": "NewBurnFee", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_liquidationPenalty", + "type": "uint256" + } + ], + "name": "NewLiquidationPenalty", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_ratio", + "type": "uint256" + } + ], + "name": "NewRatio", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "_tresury", + "type": "address" + } + ], + "name": "NewTreasury", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "Paused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_token", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "Recovered", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "TokensBurned", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "TokensMinted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "Unpaused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + } + ], + "name": "VaultCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "address", + "name": "_liquidator", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_liquidationCollateral", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_reward", + "type": "uint256" + } + ], + "name": "VaultLiquidated", + "type": "event" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "ETHPriceOracle", + "outputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MAX_FEE", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MIN_RATIO", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "TCAPPrice", + "outputs": [ + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "TCAPToken", + "outputs": [ + { + "internalType": "contract TCAP", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "addCollateral", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "burnFee", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "collateralContract", + "outputs": [ + { + "internalType": "contract IERC20", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "collateralPriceOracle", + "outputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "counter", + "outputs": [ + { + "internalType": "uint256", + "name": "_value", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "createVault", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "divisor", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "getFee", + "outputs": [ + { + "internalType": "uint256", + "name": "fee", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "_oracle", + "type": "address" + } + ], + "name": "getOraclePrice", + "outputs": [ + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "getRoleMember", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleMemberCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_id", + "type": "uint256" + } + ], + "name": "getVault", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + } + ], + "name": "getVaultRatio", + "outputs": [ + { + "internalType": "uint256", + "name": "currentRatio", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_maxTCAP", + "type": "uint256" + } + ], + "name": "liquidateVault", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "liquidationPenalty", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + } + ], + "name": "liquidationReward", + "outputs": [ + { + "internalType": "uint256", + "name": "rewardCollateral", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "oracleDigits", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "pause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "paused", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "ratio", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_tokenAddress", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_tokenAmount", + "type": "uint256" + } + ], + "name": "recoverERC20", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "removeCollateral", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "requiredCollateral", + "outputs": [ + { + "internalType": "uint256", + "name": "collateral", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + } + ], + "name": "requiredLiquidationTCAP", + "outputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "rewardHandler", + "outputs": [ + { + "internalType": "contract IRewardHandler", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_burnFee", + "type": "uint256" + } + ], + "name": "setBurnFee", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_liquidationPenalty", + "type": "uint256" + } + ], + "name": "setLiquidationPenalty", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_ratio", + "type": "uint256" + } + ], + "name": "setRatio", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_treasury", + "type": "address" + } + ], + "name": "setTreasury", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "_interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "tcapOracle", + "outputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "treasury", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "unpause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "userToVault", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "vaults", + "outputs": [ + { + "internalType": "uint256", + "name": "Id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "Collateral", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "Debt", + "type": "uint256" + }, + { + "internalType": "address", + "name": "Owner", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + } + ] + }, + "Ctx": { + "address": "0xc1BF30f5aD5Cd8829DebA7Bc48ed7a6fDc3e618B", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "address", + "name": "minter_", + "type": "address" + }, + { + "internalType": "uint256", + "name": "mintingAllowedAfter_", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "delegator", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "fromDelegate", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "toDelegate", + "type": "address" + } + ], + "name": "DelegateChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "delegate", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "previousBalance", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "newBalance", + "type": "uint256" + } + ], + "name": "DelegateVotesChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "minter", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "newMinter", + "type": "address" + } + ], + "name": "MinterChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [], + "name": "DELEGATION_TYPEHASH", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "DOMAIN_TYPEHASH", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "PERMIT_TYPEHASH", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "rawAmount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint32", + "name": "", + "type": "uint32" + } + ], + "name": "checkpoints", + "outputs": [ + { + "internalType": "uint32", + "name": "fromBlock", + "type": "uint32" + }, + { + "internalType": "uint96", + "name": "votes", + "type": "uint96" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "delegatee", + "type": "address" + } + ], + "name": "delegate", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "delegatee", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expiry", + "type": "uint256" + }, + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "name": "delegateBySig", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "delegates", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "getCurrentVotes", + "outputs": [ + { + "internalType": "uint96", + "name": "", + "type": "uint96" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "blockNumber", + "type": "uint256" + } + ], + "name": "getPriorVotes", + "outputs": [ + { + "internalType": "uint96", + "name": "", + "type": "uint96" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "addedValue", + "type": "uint256" + } + ], + "name": "increaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "minimumTimeBetweenMints", + "outputs": [ + { + "internalType": "uint32", + "name": "", + "type": "uint32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "dst", + "type": "address" + }, + { + "internalType": "uint256", + "name": "rawAmount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "mintCap", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "minter", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "mintingAllowedAfter", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "nonces", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "numCheckpoints", + "outputs": [ + { + "internalType": "uint32", + "name": "", + "type": "uint32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "rawAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + }, + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "name": "permit", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "minter_", + "type": "address" + } + ], + "name": "setMinter", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "dst", + "type": "address" + }, + { + "internalType": "uint256", + "name": "rawAmount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "src", + "type": "address" + }, + { + "internalType": "address", + "name": "dst", + "type": "address" + }, + { + "internalType": "uint256", + "name": "rawAmount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ] + }, + "CTXLiquidityReward": { + "address": "0x06e4F32A5f3bD64C4c620644d107601368BfCb27", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "internalType": "address", + "name": "_rewardsToken", + "type": "address" + }, + { + "internalType": "address", + "name": "_stakingToken", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_vestingEnd", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_vestingRatio", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "Paused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "Recovered", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "reward", + "type": "uint256" + } + ], + "name": "RewardAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "reward", + "type": "uint256" + } + ], + "name": "RewardPaid", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "newDuration", + "type": "uint256" + } + ], + "name": "RewardsDurationUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "Staked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "Unpaused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "Withdrawn", + "type": "event" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "claimVest", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + } + ], + "name": "earned", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "exit", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "getReward", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "getRewardForDuration", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "getRoleMember", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleMemberCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "lastTimeRewardApplicable", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "lastUpdateTime", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_a", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_b", + "type": "uint256" + } + ], + "name": "min", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_reward", + "type": "uint256" + } + ], + "name": "notifyRewardAmount", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "paused", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "periodFinish", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_tokenAddress", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_tokenAmount", + "type": "uint256" + } + ], + "name": "recoverERC20", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "rewardPerToken", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "rewardPerTokenStored", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "rewardRate", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "rewards", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "rewardsDuration", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "rewardsToken", + "outputs": [ + { + "internalType": "contract IERC20", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_rewardsDuration", + "type": "uint256" + } + ], + "name": "setRewardsDuration", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "stake", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "stakingToken", + "outputs": [ + { + "internalType": "contract IERC20", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "userRewardPerTokenPaid", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "vestingAmounts", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "vestingEnd", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "vestingRatio", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "withdraw", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ] + }, + "DAI": { + "address": "0x6c913fa678C81c567A11EdF19E06bE758DBeFe2D", + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "addedValue", + "type": "uint256" + } + ], + "name": "increaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ] + }, + "DAIOracle": { + "address": "0xdCc78697091f086c4C592d0c6518292Eb7337dB3", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_aggregator", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [], + "name": "getLatestAnswer", + "outputs": [ + { + "internalType": "int256", + "name": "", + "type": "int256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getLatestRound", + "outputs": [ + { + "internalType": "uint80", + "name": "", + "type": "uint80" + }, + { + "internalType": "int256", + "name": "", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint80", + "name": "", + "type": "uint80" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getLatestTimestamp", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint80", + "name": "_id", + "type": "uint80" + } + ], + "name": "getPreviousAnswer", + "outputs": [ + { + "internalType": "int256", + "name": "", + "type": "int256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint80", + "name": "_id", + "type": "uint80" + } + ], + "name": "getPreviousTimestamp", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint80", + "name": "_id", + "type": "uint80" + } + ], + "name": "getRound", + "outputs": [ + { + "internalType": "uint80", + "name": "", + "type": "uint80" + }, + { + "internalType": "int256", + "name": "", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint80", + "name": "", + "type": "uint80" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_aggregator", + "type": "address" + } + ], + "name": "setReferenceContract", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ] + }, + "DAIRewardHandler": { + "address": "0xA229c41786C977FB69ffd64C88994f6aC43A8F69", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "internalType": "address", + "name": "_rewardsToken", + "type": "address" + }, + { + "internalType": "address", + "name": "_vault", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "Paused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "Recovered", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "reward", + "type": "uint256" + } + ], + "name": "RewardAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "reward", + "type": "uint256" + } + ], + "name": "RewardPaid", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "newDuration", + "type": "uint256" + } + ], + "name": "RewardsDurationUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "Staked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "Unpaused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "Withdrawn", + "type": "event" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + } + ], + "name": "earned", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_staker", + "type": "address" + } + ], + "name": "exit", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "getReward", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "getRewardForDuration", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_staker", + "type": "address" + } + ], + "name": "getRewardFromVault", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "getRoleMember", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleMemberCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "lastTimeRewardApplicable", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "lastUpdateTime", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_a", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_b", + "type": "uint256" + } + ], + "name": "min", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_reward", + "type": "uint256" + } + ], + "name": "notifyRewardAmount", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "paused", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "periodFinish", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_tokenAddress", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_tokenAmount", + "type": "uint256" + } + ], + "name": "recoverERC20", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "rewardPerToken", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "rewardPerTokenStored", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "rewardRate", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "rewards", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "rewardsDuration", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "rewardsToken", + "outputs": [ + { + "internalType": "contract IERC20", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_rewardsDuration", + "type": "uint256" + } + ], + "name": "setRewardsDuration", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_staker", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "stake", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "userRewardPerTokenPaid", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "vault", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_staker", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "withdraw", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ] + }, + "DAIVaultHandler": { + "address": "0xC93ff851ADD589D010cabb3a5C9BC7eB840267FA", + "abi": [ + { + "inputs": [ + { + "internalType": "contract Orchestrator", + "name": "_orchestrator", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_divisor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_ratio", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_burnFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_liquidationPenalty", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_tcapOracle", + "type": "address" + }, + { + "internalType": "contract TCAP", + "name": "_tcapAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_collateralAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_collateralOracle", + "type": "address" + }, + { + "internalType": "address", + "name": "_ethOracle", + "type": "address" + }, + { + "internalType": "address", + "name": "_rewardHandler", + "type": "address" + }, + { + "internalType": "address", + "name": "_treasury", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "CollateralAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "CollateralRemoved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_burnFee", + "type": "uint256" + } + ], + "name": "NewBurnFee", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_liquidationPenalty", + "type": "uint256" + } + ], + "name": "NewLiquidationPenalty", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_ratio", + "type": "uint256" + } + ], + "name": "NewRatio", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "_tresury", + "type": "address" + } + ], + "name": "NewTreasury", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "Paused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_token", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "Recovered", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "TokensBurned", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "TokensMinted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "Unpaused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + } + ], + "name": "VaultCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "address", + "name": "_liquidator", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_liquidationCollateral", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_reward", + "type": "uint256" + } + ], + "name": "VaultLiquidated", + "type": "event" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "ETHPriceOracle", + "outputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MAX_FEE", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MIN_RATIO", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "TCAPPrice", + "outputs": [ + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "TCAPToken", + "outputs": [ + { + "internalType": "contract TCAP", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "addCollateral", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "burnFee", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "collateralContract", + "outputs": [ + { + "internalType": "contract IERC20", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "collateralPriceOracle", + "outputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "counter", + "outputs": [ + { + "internalType": "uint256", + "name": "_value", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "createVault", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "divisor", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "getFee", + "outputs": [ + { + "internalType": "uint256", + "name": "fee", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "_oracle", + "type": "address" + } + ], + "name": "getOraclePrice", + "outputs": [ + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "getRoleMember", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleMemberCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_id", + "type": "uint256" + } + ], + "name": "getVault", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + } + ], + "name": "getVaultRatio", + "outputs": [ + { + "internalType": "uint256", + "name": "currentRatio", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_maxTCAP", + "type": "uint256" + } + ], + "name": "liquidateVault", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "liquidationPenalty", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + } + ], + "name": "liquidationReward", + "outputs": [ + { + "internalType": "uint256", + "name": "rewardCollateral", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "oracleDigits", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "pause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "paused", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "ratio", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_tokenAddress", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_tokenAmount", + "type": "uint256" + } + ], + "name": "recoverERC20", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "removeCollateral", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "requiredCollateral", + "outputs": [ + { + "internalType": "uint256", + "name": "collateral", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + } + ], + "name": "requiredLiquidationTCAP", + "outputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "rewardHandler", + "outputs": [ + { + "internalType": "contract IRewardHandler", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_burnFee", + "type": "uint256" + } + ], + "name": "setBurnFee", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_liquidationPenalty", + "type": "uint256" + } + ], + "name": "setLiquidationPenalty", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_ratio", + "type": "uint256" + } + ], + "name": "setRatio", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_treasury", + "type": "address" + } + ], + "name": "setTreasury", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "_interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "tcapOracle", + "outputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "treasury", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "unpause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "userToVault", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "vaults", + "outputs": [ + { + "internalType": "uint256", + "name": "Id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "Collateral", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "Debt", + "type": "uint256" + }, + { + "internalType": "address", + "name": "Owner", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + } + ] + }, + "DelegatorFactory": { + "address": "0x0aafdB19021a3a87A510dD4db7dce62318b49Cd1", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "stakingToken_", + "type": "address" + }, + { + "internalType": "address", + "name": "rewardsToken_", + "type": "address" + }, + { + "internalType": "uint256", + "name": "waitTime_", + "type": "uint256" + }, + { + "internalType": "address", + "name": "timelock_", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "delegator", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "delegatee", + "type": "address" + } + ], + "name": "DelegatorCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "reward", + "type": "uint256" + } + ], + "name": "RewardAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "reward", + "type": "uint256" + } + ], + "name": "RewardPaid", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "newDuration", + "type": "uint256" + } + ], + "name": "RewardsDurationUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "delegator", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "delegatee", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "Staked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "waitTime", + "type": "uint256" + } + ], + "name": "WaitTimeUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "delegator", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "delegatee", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "Withdrawn", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account_", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "delegatee_", + "type": "address" + } + ], + "name": "createDelegator", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "delegateeToDelegator", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "delegatorToDelegatee", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "delegators", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account_", + "type": "address" + } + ], + "name": "earned", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getReward", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "getRewardForDuration", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "lastTimeRewardApplicable", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "lastUpdateTime", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "a_", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "b_", + "type": "uint256" + } + ], + "name": "min", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "reward_", + "type": "uint256" + } + ], + "name": "notifyRewardAmount", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "periodFinish", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "rewardPerToken", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "rewardPerTokenStored", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "rewardRate", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "rewards", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "rewardsDuration", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "rewardsToken", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "rewardsDuration_", + "type": "uint256" + } + ], + "name": "setRewardsDuration", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "delegator_", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount_", + "type": "uint256" + } + ], + "name": "stake", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "stakerWaitTime", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "stakingToken", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "waitTime_", + "type": "uint256" + } + ], + "name": "updateWaitTime", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "userRewardPerTokenPaid", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "waitTime", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "delegator_", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount_", + "type": "uint256" + } + ], + "name": "withdraw", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ] + }, + "ETHLiquidityReward": { + "address": "0xDCDF84255652205debfc9c2603BF28F13597BD82", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "internalType": "address", + "name": "_rewardsToken", + "type": "address" + }, + { + "internalType": "address", + "name": "_stakingToken", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_vestingEnd", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_vestingRatio", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "Paused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "Recovered", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "reward", + "type": "uint256" + } + ], + "name": "RewardAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "reward", + "type": "uint256" + } + ], + "name": "RewardPaid", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "newDuration", + "type": "uint256" + } + ], + "name": "RewardsDurationUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "Staked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "Unpaused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "Withdrawn", + "type": "event" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "claimVest", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + } + ], + "name": "earned", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "exit", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "getReward", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "getRewardForDuration", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "getRoleMember", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleMemberCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "lastTimeRewardApplicable", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "lastUpdateTime", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_a", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_b", + "type": "uint256" + } + ], + "name": "min", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_reward", + "type": "uint256" + } + ], + "name": "notifyRewardAmount", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "paused", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "periodFinish", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_tokenAddress", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_tokenAmount", + "type": "uint256" + } + ], + "name": "recoverERC20", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "rewardPerToken", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "rewardPerTokenStored", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "rewardRate", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "rewards", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "rewardsDuration", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "rewardsToken", + "outputs": [ + { + "internalType": "contract IERC20", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_rewardsDuration", + "type": "uint256" + } + ], + "name": "setRewardsDuration", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "stake", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "stakingToken", + "outputs": [ + { + "internalType": "contract IERC20", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "userRewardPerTokenPaid", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "vestingAmounts", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "vestingEnd", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "vestingRatio", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "withdraw", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ] + }, + "GovernorAlpha": { + "address": "0x831f5eC3cAc0De0d5211E6b8B1eFdcecac91cF39", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "timelock_", + "type": "address" + }, + { + "internalType": "address", + "name": "ctx_", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "ProposalCanceled", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "proposer", + "type": "address" + }, + { + "indexed": false, + "internalType": "address[]", + "name": "targets", + "type": "address[]" + }, + { + "indexed": false, + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + }, + { + "indexed": false, + "internalType": "string[]", + "name": "signatures", + "type": "string[]" + }, + { + "indexed": false, + "internalType": "bytes[]", + "name": "calldatas", + "type": "bytes[]" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "startBlock", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "endBlock", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "string", + "name": "description", + "type": "string" + } + ], + "name": "ProposalCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "ProposalExecuted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "eta", + "type": "uint256" + } + ], + "name": "ProposalQueued", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "voter", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "bool", + "name": "support", + "type": "bool" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "votes", + "type": "uint256" + } + ], + "name": "VoteCast", + "type": "event" + }, + { + "inputs": [], + "name": "BALLOT_TYPEHASH", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "DOMAIN_TYPEHASH", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + } + ], + "name": "cancel", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "support", + "type": "bool" + } + ], + "name": "castVote", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "support", + "type": "bool" + }, + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "name": "castVoteBySig", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "ctx", + "outputs": [ + { + "internalType": "contract CtxInterface", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + } + ], + "name": "execute", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + } + ], + "name": "getActions", + "outputs": [ + { + "internalType": "address[]", + "name": "targets", + "type": "address[]" + }, + { + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + }, + { + "internalType": "string[]", + "name": "signatures", + "type": "string[]" + }, + { + "internalType": "bytes[]", + "name": "calldatas", + "type": "bytes[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "voter", + "type": "address" + } + ], + "name": "getReceipt", + "outputs": [ + { + "components": [ + { + "internalType": "bool", + "name": "hasVoted", + "type": "bool" + }, + { + "internalType": "bool", + "name": "support", + "type": "bool" + }, + { + "internalType": "uint96", + "name": "votes", + "type": "uint96" + } + ], + "internalType": "struct GovernorAlpha.Receipt", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "latestProposalIds", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "proposalCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "proposalMaxOperations", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "proposalThreshold", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "proposals", + "outputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "address", + "name": "proposer", + "type": "address" + }, + { + "internalType": "uint256", + "name": "eta", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "startBlock", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "endBlock", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "forVotes", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "againstVotes", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "canceled", + "type": "bool" + }, + { + "internalType": "bool", + "name": "executed", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "targets", + "type": "address[]" + }, + { + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + }, + { + "internalType": "string[]", + "name": "signatures", + "type": "string[]" + }, + { + "internalType": "bytes[]", + "name": "calldatas", + "type": "bytes[]" + }, + { + "internalType": "string", + "name": "description", + "type": "string" + } + ], + "name": "propose", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + } + ], + "name": "queue", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "quorumVotes", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "receipts", + "outputs": [ + { + "internalType": "bool", + "name": "hasVoted", + "type": "bool" + }, + { + "internalType": "bool", + "name": "support", + "type": "bool" + }, + { + "internalType": "uint96", + "name": "votes", + "type": "uint96" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + } + ], + "name": "state", + "outputs": [ + { + "internalType": "enum GovernorAlpha.ProposalState", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "timelock", + "outputs": [ + { + "internalType": "contract TimelockInterface", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "votingDelay", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "votingPeriod", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + } + ] + }, + "LINK": { + "address": "0x411366c56df57C0Fe0b7e0b14fb06D3732E83c3F", + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "addedValue", + "type": "uint256" + } + ], + "name": "increaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ] + }, + "LinkOracle": { + "address": "0xF34f381c017aD94281823c56098604C93BA95261", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_aggregator", + "type": "address" + }, + { + "internalType": "address", + "name": "_timelock", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [], + "name": "getLatestAnswer", + "outputs": [ + { + "internalType": "int256", + "name": "", + "type": "int256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getLatestRound", + "outputs": [ + { + "internalType": "uint80", + "name": "", + "type": "uint80" + }, + { + "internalType": "int256", + "name": "", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint80", + "name": "", + "type": "uint80" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getLatestTimestamp", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint80", + "name": "_id", + "type": "uint80" + } + ], + "name": "getPreviousAnswer", + "outputs": [ + { + "internalType": "int256", + "name": "", + "type": "int256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint80", + "name": "_id", + "type": "uint80" + } + ], + "name": "getPreviousTimestamp", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint80", + "name": "_id", + "type": "uint80" + } + ], + "name": "getRound", + "outputs": [ + { + "internalType": "uint80", + "name": "", + "type": "uint80" + }, + { + "internalType": "int256", + "name": "", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint80", + "name": "", + "type": "uint80" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_aggregator", + "type": "address" + } + ], + "name": "setReferenceContract", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ] + }, + "LinkVaultHandler": { + "address": "0x42D56A7E778863E10C11305f01edC83Ca96489A6", + "abi": [ + { + "inputs": [ + { + "internalType": "contract Orchestrator", + "name": "_orchestrator", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_divisor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_ratio", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_burnFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_liquidationPenalty", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_tcapOracle", + "type": "address" + }, + { + "internalType": "contract TCAP", + "name": "_tcapAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_collateralAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_collateralOracle", + "type": "address" + }, + { + "internalType": "address", + "name": "_ethOracle", + "type": "address" + }, + { + "internalType": "address", + "name": "_rewardHandler", + "type": "address" + }, + { + "internalType": "address", + "name": "_treasury", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "CollateralAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "CollateralRemoved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_burnFee", + "type": "uint256" + } + ], + "name": "NewBurnFee", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_liquidationPenalty", + "type": "uint256" + } + ], + "name": "NewLiquidationPenalty", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_ratio", + "type": "uint256" + } + ], + "name": "NewRatio", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "_tresury", + "type": "address" + } + ], + "name": "NewTreasury", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "Paused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_token", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "Recovered", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "TokensBurned", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "TokensMinted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "Unpaused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + } + ], + "name": "VaultCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "address", + "name": "_liquidator", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_liquidationCollateral", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_reward", + "type": "uint256" + } + ], + "name": "VaultLiquidated", + "type": "event" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "ETHPriceOracle", + "outputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MAX_FEE", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MIN_RATIO", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "TCAPPrice", + "outputs": [ + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "TCAPToken", + "outputs": [ + { + "internalType": "contract TCAP", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "addCollateral", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "burnFee", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "collateralContract", + "outputs": [ + { + "internalType": "contract IERC20", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "collateralPriceOracle", + "outputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "counter", + "outputs": [ + { + "internalType": "uint256", + "name": "_value", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "createVault", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "divisor", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "getFee", + "outputs": [ + { + "internalType": "uint256", + "name": "fee", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "_oracle", + "type": "address" + } + ], + "name": "getOraclePrice", + "outputs": [ + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "getRoleMember", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleMemberCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_id", + "type": "uint256" + } + ], + "name": "getVault", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + } + ], + "name": "getVaultRatio", + "outputs": [ + { + "internalType": "uint256", + "name": "currentRatio", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_maxTCAP", + "type": "uint256" + } + ], + "name": "liquidateVault", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "liquidationPenalty", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + } + ], + "name": "liquidationReward", + "outputs": [ + { + "internalType": "uint256", + "name": "rewardCollateral", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "oracleDigits", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "pause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "paused", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "ratio", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_tokenAddress", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_tokenAmount", + "type": "uint256" + } + ], + "name": "recoverERC20", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "removeCollateral", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "requiredCollateral", + "outputs": [ + { + "internalType": "uint256", + "name": "collateral", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + } + ], + "name": "requiredLiquidationTCAP", + "outputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "rewardHandler", + "outputs": [ + { + "internalType": "contract IRewardHandler", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_burnFee", + "type": "uint256" + } + ], + "name": "setBurnFee", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_liquidationPenalty", + "type": "uint256" + } + ], + "name": "setLiquidationPenalty", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_ratio", + "type": "uint256" + } + ], + "name": "setRatio", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_treasury", + "type": "address" + } + ], + "name": "setTreasury", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "_interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "tcapOracle", + "outputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "treasury", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "unpause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "userToVault", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "vaults", + "outputs": [ + { + "internalType": "uint256", + "name": "Id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "Collateral", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "Debt", + "type": "uint256" + }, + { + "internalType": "address", + "name": "Owner", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + } + ] + }, + "Orchestrator": { + "address": "0xe8BFaB95180CAAAB795cdD5c2d5Dd4F35bF3f181", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_guardian", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "guardian", + "type": "address" + } + ], + "name": "GuardianSet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "string", + "name": "signature", + "type": "string" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "TransactionExecuted", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "contract TCAP", + "name": "_tcap", + "type": "address" + }, + { + "internalType": "contract IVaultHandler", + "name": "_vault", + "type": "address" + } + ], + "name": "addTCAPVault", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract TCAP", + "name": "_tcap", + "type": "address" + }, + { + "internalType": "bool", + "name": "_enable", + "type": "bool" + } + ], + "name": "enableTCAPCap", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "string", + "name": "signature", + "type": "string" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "executeTransaction", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "guardian", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IVaultHandler", + "name": "_vault", + "type": "address" + } + ], + "name": "pauseVault", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract TCAP", + "name": "_tcap", + "type": "address" + }, + { + "internalType": "contract IVaultHandler", + "name": "_vault", + "type": "address" + } + ], + "name": "removeTCAPVault", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_to", + "type": "address" + } + ], + "name": "retrieveETH", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IVaultHandler", + "name": "_vault", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_burnFee", + "type": "uint256" + } + ], + "name": "setBurnFee", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IVaultHandler", + "name": "_vault", + "type": "address" + } + ], + "name": "setEmergencyBurnFee", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IVaultHandler", + "name": "_vault", + "type": "address" + } + ], + "name": "setEmergencyLiquidationPenalty", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_guardian", + "type": "address" + } + ], + "name": "setGuardian", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IVaultHandler", + "name": "_vault", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_liquidationPenalty", + "type": "uint256" + } + ], + "name": "setLiquidationPenalty", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IVaultHandler", + "name": "_vault", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_ratio", + "type": "uint256" + } + ], + "name": "setRatio", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract TCAP", + "name": "_tcap", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_cap", + "type": "uint256" + } + ], + "name": "setTCAPCap", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IVaultHandler", + "name": "_vault", + "type": "address" + } + ], + "name": "unpauseVault", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "stateMutability": "payable", + "type": "receive" + } + ] + }, + "TCAP": { + "address": "0x8Aa3A478d84d76FF762dc2eD4F4449acd4FD3351", + "abi": [ + { + "inputs": [ + { + "internalType": "string", + "name": "_name", + "type": "string" + }, + { + "internalType": "string", + "name": "_symbol", + "type": "string" + }, + { + "internalType": "uint256", + "name": "_cap", + "type": "uint256" + }, + { + "internalType": "contract Orchestrator", + "name": "_orchestrator", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "NewCap", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "_enable", + "type": "bool" + } + ], + "name": "NewCapEnabled", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "_tokenHandler", + "type": "address" + } + ], + "name": "VaultHandlerAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "_tokenHandler", + "type": "address" + } + ], + "name": "VaultHandlerRemoved", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_vaultHandler", + "type": "address" + } + ], + "name": "addVaultHandler", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "cap", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "capEnabled", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bool", + "name": "_enable", + "type": "bool" + } + ], + "name": "enableCap", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "addedValue", + "type": "uint256" + } + ], + "name": "increaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_vaultHandler", + "type": "address" + } + ], + "name": "removeVaultHandler", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_cap", + "type": "uint256" + } + ], + "name": "setCap", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "_interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "vaultHandlers", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ] + }, + "TCAPOracle": { + "address": "0xDB0d2fd6d01B12c9444FBdf852A80E27966bA9C9", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_aggregator", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [], + "name": "getLatestAnswer", + "outputs": [ + { + "internalType": "int256", + "name": "", + "type": "int256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getLatestRound", + "outputs": [ + { + "internalType": "uint80", + "name": "", + "type": "uint80" + }, + { + "internalType": "int256", + "name": "", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint80", + "name": "", + "type": "uint80" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getLatestTimestamp", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint80", + "name": "_id", + "type": "uint80" + } + ], + "name": "getPreviousAnswer", + "outputs": [ + { + "internalType": "int256", + "name": "", + "type": "int256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint80", + "name": "_id", + "type": "uint80" + } + ], + "name": "getPreviousTimestamp", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint80", + "name": "_id", + "type": "uint80" + } + ], + "name": "getRound", + "outputs": [ + { + "internalType": "uint80", + "name": "", + "type": "uint80" + }, + { + "internalType": "int256", + "name": "", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint80", + "name": "", + "type": "uint80" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_aggregator", + "type": "address" + } + ], + "name": "setReferenceContract", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ] + }, + "Timelock": { + "address": "0x00531065Af9ED99b19BD21997b3c2B6C13498f26", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "admin_", + "type": "address" + }, + { + "internalType": "uint256", + "name": "delay_", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "txHash", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "string", + "name": "signature", + "type": "string" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "eta", + "type": "uint256" + } + ], + "name": "CancelTransaction", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "txHash", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "string", + "name": "signature", + "type": "string" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "eta", + "type": "uint256" + } + ], + "name": "ExecuteTransaction", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "newAdmin", + "type": "address" + } + ], + "name": "NewAdmin", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "newDelay", + "type": "uint256" + } + ], + "name": "NewDelay", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "newPendingAdmin", + "type": "address" + } + ], + "name": "NewPendingAdmin", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "txHash", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "string", + "name": "signature", + "type": "string" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "eta", + "type": "uint256" + } + ], + "name": "QueueTransaction", + "type": "event" + }, + { + "inputs": [], + "name": "GRACE_PERIOD", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MAXIMUM_DELAY", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MINIMUM_DELAY", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "acceptAdmin", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "admin", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "string", + "name": "signature", + "type": "string" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "eta", + "type": "uint256" + } + ], + "name": "cancelTransaction", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "delay", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "string", + "name": "signature", + "type": "string" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "eta", + "type": "uint256" + } + ], + "name": "executeTransaction", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "pendingAdmin", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "string", + "name": "signature", + "type": "string" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "eta", + "type": "uint256" + } + ], + "name": "queueTransaction", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "name": "queuedTransactions", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "delay_", + "type": "uint256" + } + ], + "name": "setDelay", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "pendingAdmin_", + "type": "address" + } + ], + "name": "setPendingAdmin", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "_interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "stateMutability": "payable", + "type": "receive" + } + ] + }, + "WBTC": { + "address": "0x6A81909f4e0A46FCaC72F9f2653cbe079e008B21", + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "addedValue", + "type": "uint256" + } + ], + "name": "increaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ] + }, + "WETH": { + "address": "0xAEb34d4C107BDa831C0B50d68eb13F2469FB21f5", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "src", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "guy", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "wad", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "dst", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "wad", + "type": "uint256" + } + ], + "name": "Deposit", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "src", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "dst", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "wad", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "src", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "wad", + "type": "uint256" + } + ], + "name": "Withdrawal", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "guy", + "type": "address" + }, + { + "internalType": "uint256", + "name": "wad", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "deposit", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "dst", + "type": "address" + }, + { + "internalType": "uint256", + "name": "wad", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "src", + "type": "address" + }, + { + "internalType": "address", + "name": "dst", + "type": "address" + }, + { + "internalType": "uint256", + "name": "wad", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "wad", + "type": "uint256" + } + ], + "name": "withdraw", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ] + }, + "WETHOracle": { + "address": "0x7E1bb2f2c2773490598b9E9bA592079dD73E788b", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_aggregator", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [], + "name": "getLatestAnswer", + "outputs": [ + { + "internalType": "int256", + "name": "", + "type": "int256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getLatestRound", + "outputs": [ + { + "internalType": "uint80", + "name": "", + "type": "uint80" + }, + { + "internalType": "int256", + "name": "", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint80", + "name": "", + "type": "uint80" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getLatestTimestamp", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint80", + "name": "_id", + "type": "uint80" + } + ], + "name": "getPreviousAnswer", + "outputs": [ + { + "internalType": "int256", + "name": "", + "type": "int256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint80", + "name": "_id", + "type": "uint80" + } + ], + "name": "getPreviousTimestamp", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint80", + "name": "_id", + "type": "uint80" + } + ], + "name": "getRound", + "outputs": [ + { + "internalType": "uint80", + "name": "", + "type": "uint80" + }, + { + "internalType": "int256", + "name": "", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint80", + "name": "", + "type": "uint80" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_aggregator", + "type": "address" + } + ], + "name": "setReferenceContract", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ] + }, + "WETHRewardHandler": { + "address": "0xe41E52E8c4F5A525169EaCAB50903fA4326eaDc8", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "internalType": "address", + "name": "_rewardsToken", + "type": "address" + }, + { + "internalType": "address", + "name": "_vault", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "Paused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "Recovered", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "reward", + "type": "uint256" + } + ], + "name": "RewardAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "reward", + "type": "uint256" + } + ], + "name": "RewardPaid", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "newDuration", + "type": "uint256" + } + ], + "name": "RewardsDurationUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "Staked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "Unpaused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "Withdrawn", + "type": "event" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + } + ], + "name": "earned", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_staker", + "type": "address" + } + ], + "name": "exit", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "getReward", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "getRewardForDuration", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_staker", + "type": "address" + } + ], + "name": "getRewardFromVault", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "getRoleMember", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleMemberCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "lastTimeRewardApplicable", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "lastUpdateTime", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_a", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_b", + "type": "uint256" + } + ], + "name": "min", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_reward", + "type": "uint256" + } + ], + "name": "notifyRewardAmount", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "paused", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "periodFinish", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_tokenAddress", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_tokenAmount", + "type": "uint256" + } + ], + "name": "recoverERC20", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "rewardPerToken", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "rewardPerTokenStored", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "rewardRate", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "rewards", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "rewardsDuration", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "rewardsToken", + "outputs": [ + { + "internalType": "contract IERC20", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_rewardsDuration", + "type": "uint256" + } + ], + "name": "setRewardsDuration", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_staker", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "stake", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "userRewardPerTokenPaid", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "vault", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_staker", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "withdraw", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ] + }, + "WETHVaultHandler": { + "address": "0x30412fa1Bdb2380157345DD58e2FE2eb375a1fF8", + "abi": [ + { + "inputs": [ + { + "internalType": "contract Orchestrator", + "name": "_orchestrator", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_divisor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_ratio", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_burnFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_liquidationPenalty", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_tcapOracle", + "type": "address" + }, + { + "internalType": "contract TCAP", + "name": "_tcapAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_collateralAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_collateralOracle", + "type": "address" + }, + { + "internalType": "address", + "name": "_ethOracle", + "type": "address" + }, + { + "internalType": "address", + "name": "_rewardHandler", + "type": "address" + }, + { + "internalType": "address", + "name": "_treasury", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "CollateralAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "CollateralRemoved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_burnFee", + "type": "uint256" + } + ], + "name": "NewBurnFee", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_liquidationPenalty", + "type": "uint256" + } + ], + "name": "NewLiquidationPenalty", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_ratio", + "type": "uint256" + } + ], + "name": "NewRatio", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "_tresury", + "type": "address" + } + ], + "name": "NewTreasury", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "Paused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_token", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "Recovered", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "TokensBurned", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "TokensMinted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "Unpaused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + } + ], + "name": "VaultCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "address", + "name": "_liquidator", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_liquidationCollateral", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_reward", + "type": "uint256" + } + ], + "name": "VaultLiquidated", + "type": "event" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "ETHPriceOracle", + "outputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MAX_FEE", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MIN_RATIO", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "TCAPPrice", + "outputs": [ + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "TCAPToken", + "outputs": [ + { + "internalType": "contract TCAP", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "addCollateral", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "addCollateralETH", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "burnFee", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "collateralContract", + "outputs": [ + { + "internalType": "contract IERC20", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "collateralPriceOracle", + "outputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "counter", + "outputs": [ + { + "internalType": "uint256", + "name": "_value", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "createVault", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "divisor", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "getFee", + "outputs": [ + { + "internalType": "uint256", + "name": "fee", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "_oracle", + "type": "address" + } + ], + "name": "getOraclePrice", + "outputs": [ + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "getRoleMember", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleMemberCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_id", + "type": "uint256" + } + ], + "name": "getVault", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + } + ], + "name": "getVaultRatio", + "outputs": [ + { + "internalType": "uint256", + "name": "currentRatio", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_maxTCAP", + "type": "uint256" + } + ], + "name": "liquidateVault", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "liquidationPenalty", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + } + ], + "name": "liquidationReward", + "outputs": [ + { + "internalType": "uint256", + "name": "rewardCollateral", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "oracleDigits", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "pause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "paused", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "ratio", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_tokenAddress", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_tokenAmount", + "type": "uint256" + } + ], + "name": "recoverERC20", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "removeCollateral", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "removeCollateralETH", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "requiredCollateral", + "outputs": [ + { + "internalType": "uint256", + "name": "collateral", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + } + ], + "name": "requiredLiquidationTCAP", + "outputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "rewardHandler", + "outputs": [ + { + "internalType": "contract IRewardHandler", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_burnFee", + "type": "uint256" + } + ], + "name": "setBurnFee", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_liquidationPenalty", + "type": "uint256" + } + ], + "name": "setLiquidationPenalty", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_ratio", + "type": "uint256" + } + ], + "name": "setRatio", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_treasury", + "type": "address" + } + ], + "name": "setTreasury", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "_interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "tcapOracle", + "outputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "treasury", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "unpause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "userToVault", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "vaults", + "outputs": [ + { + "internalType": "uint256", + "name": "Id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "Collateral", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "Debt", + "type": "uint256" + }, + { + "internalType": "address", + "name": "Owner", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "stateMutability": "payable", + "type": "receive" + } + ] + }, + "HardWETHVaultHandler": { + "address": "0xFa035809A0641bEeBa50AB48cB558445E8DE7F51", + "abi": [ + { + "inputs": [ + { + "internalType": "contract Orchestrator", + "name": "_orchestrator", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_divisor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_ratio", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_burnFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_liquidationPenalty", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_tcapOracle", + "type": "address" + }, + { + "internalType": "contract TCAP", + "name": "_tcapAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_collateralAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_collateralOracle", + "type": "address" + }, + { + "internalType": "address", + "name": "_ethOracle", + "type": "address" + }, + { + "internalType": "address", + "name": "_treasury", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_minimumTCAP", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "CollateralAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "CollateralRemoved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_burnFee", + "type": "uint256" + } + ], + "name": "NewBurnFee", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_liquidationPenalty", + "type": "uint256" + } + ], + "name": "NewLiquidationPenalty", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_minimumTCAP", + "type": "uint256" + } + ], + "name": "NewMinimumTCAP", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_ratio", + "type": "uint256" + } + ], + "name": "NewRatio", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "_tresury", + "type": "address" + } + ], + "name": "NewTreasury", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "Paused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_token", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "Recovered", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "TokensBurned", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "TokensMinted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "Unpaused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + } + ], + "name": "VaultCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "address", + "name": "_liquidator", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_liquidationCollateral", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_reward", + "type": "uint256" + } + ], + "name": "VaultLiquidated", + "type": "event" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "ETHPriceOracle", + "outputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MAX_DECIMAL_PLACES", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MAX_FEE", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MIN_RATIO", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "TCAPPrice", + "outputs": [ + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "TCAPToken", + "outputs": [ + { + "internalType": "contract TCAP", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "addCollateral", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "addCollateralETH", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "burnFee", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "collateralContract", + "outputs": [ + { + "internalType": "contract IERC20", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "collateralDecimalsAdjustmentFactor", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "collateralPriceOracle", + "outputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "counter", + "outputs": [ + { + "internalType": "uint256", + "name": "_value", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "createVault", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "divisor", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "getFee", + "outputs": [ + { + "internalType": "uint256", + "name": "fee", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "_oracle", + "type": "address" + } + ], + "name": "getOraclePrice", + "outputs": [ + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "getRoleMember", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleMemberCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_id", + "type": "uint256" + } + ], + "name": "getVault", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + } + ], + "name": "getVaultRatio", + "outputs": [ + { + "internalType": "uint256", + "name": "currentRatio", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_maxTCAP", + "type": "uint256" + } + ], + "name": "liquidateVault", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "liquidationPenalty", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + } + ], + "name": "liquidationReward", + "outputs": [ + { + "internalType": "uint256", + "name": "rewardCollateral", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "minimumTCAP", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "oracleDigits", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "pause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "paused", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "ratio", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_tokenAddress", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_tokenAmount", + "type": "uint256" + } + ], + "name": "recoverERC20", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "removeCollateral", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "removeCollateralETH", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "requiredCollateral", + "outputs": [ + { + "internalType": "uint256", + "name": "collateral", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + } + ], + "name": "requiredLiquidationTCAP", + "outputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_burnFee", + "type": "uint256" + } + ], + "name": "setBurnFee", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_liquidationPenalty", + "type": "uint256" + } + ], + "name": "setLiquidationPenalty", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_minimumTCAP", + "type": "uint256" + } + ], + "name": "setMinimumTCAP", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_ratio", + "type": "uint256" + } + ], + "name": "setRatio", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_treasury", + "type": "address" + } + ], + "name": "setTreasury", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "_interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "tcapOracle", + "outputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "treasury", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "unpause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "userToVault", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "vaults", + "outputs": [ + { + "internalType": "uint256", + "name": "Id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "Collateral", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "Debt", + "type": "uint256" + }, + { + "internalType": "address", + "name": "Owner", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "stateMutability": "payable", + "type": "receive" + } + ] + }, + "HardDaiVaultHandler": { + "address": "0x233Bf8abf661Cf780e1A62b3a6A9C0d28Fb46E3b", + "abi": [ + { + "inputs": [ + { + "internalType": "contract Orchestrator", + "name": "_orchestrator", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_divisor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_ratio", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_burnFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_liquidationPenalty", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_tcapOracle", + "type": "address" + }, + { + "internalType": "contract TCAP", + "name": "_tcapAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_collateralAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_collateralOracle", + "type": "address" + }, + { + "internalType": "address", + "name": "_ethOracle", + "type": "address" + }, + { + "internalType": "address", + "name": "_treasury", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_minimumTCAP", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "CollateralAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "CollateralRemoved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_burnFee", + "type": "uint256" + } + ], + "name": "NewBurnFee", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_liquidationPenalty", + "type": "uint256" + } + ], + "name": "NewLiquidationPenalty", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_minimumTCAP", + "type": "uint256" + } + ], + "name": "NewMinimumTCAP", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_ratio", + "type": "uint256" + } + ], + "name": "NewRatio", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "_tresury", + "type": "address" + } + ], + "name": "NewTreasury", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "Paused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_token", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "Recovered", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "TokensBurned", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "TokensMinted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "Unpaused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + } + ], + "name": "VaultCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "address", + "name": "_liquidator", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_liquidationCollateral", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_reward", + "type": "uint256" + } + ], + "name": "VaultLiquidated", + "type": "event" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "ETHPriceOracle", + "outputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MAX_DECIMAL_PLACES", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MAX_FEE", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MIN_RATIO", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "TCAPPrice", + "outputs": [ + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "TCAPToken", + "outputs": [ + { + "internalType": "contract TCAP", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "addCollateral", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "burnFee", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "collateralContract", + "outputs": [ + { + "internalType": "contract IERC20", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "collateralDecimalsAdjustmentFactor", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "collateralPriceOracle", + "outputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "counter", + "outputs": [ + { + "internalType": "uint256", + "name": "_value", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "createVault", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "divisor", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "getFee", + "outputs": [ + { + "internalType": "uint256", + "name": "fee", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "_oracle", + "type": "address" + } + ], + "name": "getOraclePrice", + "outputs": [ + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "getRoleMember", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleMemberCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_id", + "type": "uint256" + } + ], + "name": "getVault", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + } + ], + "name": "getVaultRatio", + "outputs": [ + { + "internalType": "uint256", + "name": "currentRatio", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_maxTCAP", + "type": "uint256" + } + ], + "name": "liquidateVault", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "liquidationPenalty", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + } + ], + "name": "liquidationReward", + "outputs": [ + { + "internalType": "uint256", + "name": "rewardCollateral", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "minimumTCAP", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "oracleDigits", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "pause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "paused", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "ratio", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_tokenAddress", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_tokenAmount", + "type": "uint256" + } + ], + "name": "recoverERC20", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "removeCollateral", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "requiredCollateral", + "outputs": [ + { + "internalType": "uint256", + "name": "collateral", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + } + ], + "name": "requiredLiquidationTCAP", + "outputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_burnFee", + "type": "uint256" + } + ], + "name": "setBurnFee", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_liquidationPenalty", + "type": "uint256" + } + ], + "name": "setLiquidationPenalty", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_minimumTCAP", + "type": "uint256" + } + ], + "name": "setMinimumTCAP", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_ratio", + "type": "uint256" + } + ], + "name": "setRatio", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_treasury", + "type": "address" + } + ], + "name": "setTreasury", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "_interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "tcapOracle", + "outputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "treasury", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "unpause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "userToVault", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "vaults", + "outputs": [ + { + "internalType": "uint256", + "name": "Id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "Collateral", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "Debt", + "type": "uint256" + }, + { + "internalType": "address", + "name": "Owner", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + } + ] + }, + "USDC": { + "address": "0x9727D87A69d84e747D18F2B36A4cf6cc8A55E653", + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "addedValue", + "type": "uint256" + } + ], + "name": "increaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ] + }, + "USDCOracle": { + "address": "0x78AB4F006Ffc7bbd6e058CB449983e72162197c0", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_aggregator", + "type": "address" + }, + { + "internalType": "address", + "name": "_owner", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [], + "name": "getLatestAnswer", + "outputs": [ + { + "internalType": "int256", + "name": "", + "type": "int256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getLatestRound", + "outputs": [ + { + "internalType": "uint80", + "name": "", + "type": "uint80" + }, + { + "internalType": "int256", + "name": "", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint80", + "name": "", + "type": "uint80" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getLatestTimestamp", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint80", + "name": "_id", + "type": "uint80" + } + ], + "name": "getPreviousAnswer", + "outputs": [ + { + "internalType": "int256", + "name": "", + "type": "int256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint80", + "name": "_id", + "type": "uint80" + } + ], + "name": "getPreviousTimestamp", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint80", + "name": "_id", + "type": "uint80" + } + ], + "name": "getRound", + "outputs": [ + { + "internalType": "uint80", + "name": "", + "type": "uint80" + }, + { + "internalType": "int256", + "name": "", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint80", + "name": "", + "type": "uint80" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_aggregator", + "type": "address" + } + ], + "name": "setReferenceContract", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ] + }, + "HardUSDCVaultHandler": { + "address": "0x7a6E78eA1695Dc2666145F97e7fAc78cfb51a6B8", + "abi": [ + { + "inputs": [ + { + "internalType": "contract Orchestrator", + "name": "_orchestrator", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_divisor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_ratio", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_burnFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_liquidationPenalty", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_tcapOracle", + "type": "address" + }, + { + "internalType": "contract TCAP", + "name": "_tcapAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_collateralAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_collateralOracle", + "type": "address" + }, + { + "internalType": "address", + "name": "_ethOracle", + "type": "address" + }, + { + "internalType": "address", + "name": "_treasury", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_minimumTCAP", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "CollateralAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "CollateralRemoved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_burnFee", + "type": "uint256" + } + ], + "name": "NewBurnFee", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_liquidationPenalty", + "type": "uint256" + } + ], + "name": "NewLiquidationPenalty", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_minimumTCAP", + "type": "uint256" + } + ], + "name": "NewMinimumTCAP", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_ratio", + "type": "uint256" + } + ], + "name": "NewRatio", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "_tresury", + "type": "address" + } + ], + "name": "NewTreasury", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "Paused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_token", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "Recovered", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "TokensBurned", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "TokensMinted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "Unpaused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + } + ], + "name": "VaultCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "address", + "name": "_liquidator", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_liquidationCollateral", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_reward", + "type": "uint256" + } + ], + "name": "VaultLiquidated", + "type": "event" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "ETHPriceOracle", + "outputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MAX_DECIMAL_PLACES", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MAX_FEE", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MIN_RATIO", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "TCAPPrice", + "outputs": [ + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "TCAPToken", + "outputs": [ + { + "internalType": "contract TCAP", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "addCollateral", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "burnFee", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "collateralContract", + "outputs": [ + { + "internalType": "contract IERC20", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "collateralDecimalsAdjustmentFactor", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "collateralPriceOracle", + "outputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "counter", + "outputs": [ + { + "internalType": "uint256", + "name": "_value", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "createVault", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "divisor", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "getFee", + "outputs": [ + { + "internalType": "uint256", + "name": "fee", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "_oracle", + "type": "address" + } + ], + "name": "getOraclePrice", + "outputs": [ + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "getRoleMember", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleMemberCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_id", + "type": "uint256" + } + ], + "name": "getVault", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + } + ], + "name": "getVaultRatio", + "outputs": [ + { + "internalType": "uint256", + "name": "currentRatio", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_maxTCAP", + "type": "uint256" + } + ], + "name": "liquidateVault", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "liquidationPenalty", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + } + ], + "name": "liquidationReward", + "outputs": [ + { + "internalType": "uint256", + "name": "rewardCollateral", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "minimumTCAP", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "oracleDigits", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "pause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "paused", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "ratio", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_tokenAddress", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_tokenAmount", + "type": "uint256" + } + ], + "name": "recoverERC20", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "removeCollateral", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "requiredCollateral", + "outputs": [ + { + "internalType": "uint256", + "name": "collateral", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + } + ], + "name": "requiredLiquidationTCAP", + "outputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_burnFee", + "type": "uint256" + } + ], + "name": "setBurnFee", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_liquidationPenalty", + "type": "uint256" + } + ], + "name": "setLiquidationPenalty", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_minimumTCAP", + "type": "uint256" + } + ], + "name": "setMinimumTCAP", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_ratio", + "type": "uint256" + } + ], + "name": "setRatio", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_treasury", + "type": "address" + } + ], + "name": "setTreasury", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "_interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "tcapOracle", + "outputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "treasury", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "unpause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "userToVault", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "vaults", + "outputs": [ + { + "internalType": "uint256", + "name": "Id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "Collateral", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "Debt", + "type": "uint256" + }, + { + "internalType": "address", + "name": "Owner", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + } + ] + }, + "HardWBTCVaultHandler": { + "address": "0x07e89a2A7723d4B701eE99f8D772585b88aC4D12", + "abi": [ + { + "inputs": [ + { + "internalType": "contract Orchestrator", + "name": "_orchestrator", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_divisor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_ratio", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_burnFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_liquidationPenalty", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_tcapOracle", + "type": "address" + }, + { + "internalType": "contract TCAP", + "name": "_tcapAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_collateralAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_collateralOracle", + "type": "address" + }, + { + "internalType": "address", + "name": "_ethOracle", + "type": "address" + }, + { + "internalType": "address", + "name": "_treasury", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_minimumTCAP", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "CollateralAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "CollateralRemoved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_burnFee", + "type": "uint256" + } + ], + "name": "NewBurnFee", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_liquidationPenalty", + "type": "uint256" + } + ], + "name": "NewLiquidationPenalty", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_minimumTCAP", + "type": "uint256" + } + ], + "name": "NewMinimumTCAP", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_ratio", + "type": "uint256" + } + ], + "name": "NewRatio", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "_tresury", + "type": "address" + } + ], + "name": "NewTreasury", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "Paused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_token", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "Recovered", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "TokensBurned", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "TokensMinted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "Unpaused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + } + ], + "name": "VaultCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "address", + "name": "_liquidator", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_liquidationCollateral", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_reward", + "type": "uint256" + } + ], + "name": "VaultLiquidated", + "type": "event" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "ETHPriceOracle", + "outputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MAX_DECIMAL_PLACES", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MAX_FEE", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MIN_RATIO", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "TCAPPrice", + "outputs": [ + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "TCAPToken", + "outputs": [ + { + "internalType": "contract TCAP", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "addCollateral", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "burnFee", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "collateralContract", + "outputs": [ + { + "internalType": "contract IERC20", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "collateralDecimalsAdjustmentFactor", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "collateralPriceOracle", + "outputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "counter", + "outputs": [ + { + "internalType": "uint256", + "name": "_value", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "createVault", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "divisor", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "getFee", + "outputs": [ + { + "internalType": "uint256", + "name": "fee", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "_oracle", + "type": "address" + } + ], + "name": "getOraclePrice", + "outputs": [ + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "getRoleMember", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleMemberCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_id", + "type": "uint256" + } + ], + "name": "getVault", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + } + ], + "name": "getVaultRatio", + "outputs": [ + { + "internalType": "uint256", + "name": "currentRatio", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_maxTCAP", + "type": "uint256" + } + ], + "name": "liquidateVault", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "liquidationPenalty", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + } + ], + "name": "liquidationReward", + "outputs": [ + { + "internalType": "uint256", + "name": "rewardCollateral", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "minimumTCAP", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "oracleDigits", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "pause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "paused", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "ratio", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_tokenAddress", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_tokenAmount", + "type": "uint256" + } + ], + "name": "recoverERC20", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "removeCollateral", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "requiredCollateral", + "outputs": [ + { + "internalType": "uint256", + "name": "collateral", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + } + ], + "name": "requiredLiquidationTCAP", + "outputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_burnFee", + "type": "uint256" + } + ], + "name": "setBurnFee", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_liquidationPenalty", + "type": "uint256" + } + ], + "name": "setLiquidationPenalty", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_minimumTCAP", + "type": "uint256" + } + ], + "name": "setMinimumTCAP", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_ratio", + "type": "uint256" + } + ], + "name": "setRatio", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_treasury", + "type": "address" + } + ], + "name": "setTreasury", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "_interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "tcapOracle", + "outputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "treasury", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "unpause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "userToVault", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "vaults", + "outputs": [ + { + "internalType": "uint256", + "name": "Id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "Collateral", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "Debt", + "type": "uint256" + }, + { + "internalType": "address", + "name": "Owner", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + } + ] + } + } + } + }, + "10": { + "optimism": { + "name": "optimism", + "chainId": "10", + "contracts": { + "DAIOracle": { + "address": "0x373C74BcE7893097ab26d22f05691907D4f2c18e", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_aggregator", + "type": "address" + }, + { + "internalType": "address", + "name": "_owner", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [], + "name": "getLatestAnswer", + "outputs": [ + { + "internalType": "int256", + "name": "", + "type": "int256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getLatestRound", + "outputs": [ + { + "internalType": "uint80", + "name": "", + "type": "uint80" + }, + { + "internalType": "int256", + "name": "", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint80", + "name": "", + "type": "uint80" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getLatestTimestamp", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint80", + "name": "_id", + "type": "uint80" + } + ], + "name": "getPreviousAnswer", + "outputs": [ + { + "internalType": "int256", + "name": "", + "type": "int256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint80", + "name": "_id", + "type": "uint80" + } + ], + "name": "getPreviousTimestamp", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint80", + "name": "_id", + "type": "uint80" + } + ], + "name": "getRound", + "outputs": [ + { + "internalType": "uint80", + "name": "", + "type": "uint80" + }, + { + "internalType": "int256", + "name": "", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint80", + "name": "", + "type": "uint80" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_aggregator", + "type": "address" + } + ], + "name": "setReferenceContract", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ] + }, + "DAIVaultHandler": { + "address": "0x2C890633Db29f21fccbA57c68DcCEF09AB0D4763", + "abi": [ + { + "inputs": [ + { + "internalType": "contract Orchestrator", + "name": "_orchestrator", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_divisor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_ratio", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_burnFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_liquidationPenalty", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_tcapOracle", + "type": "address" + }, + { + "internalType": "contract TCAP", + "name": "_tcapAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_collateralAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_collateralOracle", + "type": "address" + }, + { + "internalType": "address", + "name": "_ethOracle", + "type": "address" + }, + { + "internalType": "address", + "name": "_rewardHandler", + "type": "address" + }, + { + "internalType": "address", + "name": "_treasury", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "CollateralAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "CollateralRemoved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_burnFee", + "type": "uint256" + } + ], + "name": "NewBurnFee", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_liquidationPenalty", + "type": "uint256" + } + ], + "name": "NewLiquidationPenalty", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_ratio", + "type": "uint256" + } + ], + "name": "NewRatio", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "_tresury", + "type": "address" + } + ], + "name": "NewTreasury", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "Paused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_token", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "Recovered", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "TokensBurned", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "TokensMinted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "Unpaused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + } + ], + "name": "VaultCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "address", + "name": "_liquidator", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_liquidationCollateral", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_reward", + "type": "uint256" + } + ], + "name": "VaultLiquidated", + "type": "event" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "ETHPriceOracle", + "outputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MAX_FEE", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MIN_RATIO", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "TCAPPrice", + "outputs": [ + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "TCAPToken", + "outputs": [ + { + "internalType": "contract TCAP", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "addCollateral", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "burnFee", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "collateralContract", + "outputs": [ + { + "internalType": "contract IERC20", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "collateralPriceOracle", + "outputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "counter", + "outputs": [ + { + "internalType": "uint256", + "name": "_value", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "createVault", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "divisor", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "getFee", + "outputs": [ + { + "internalType": "uint256", + "name": "fee", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "_oracle", + "type": "address" + } + ], + "name": "getOraclePrice", + "outputs": [ + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "getRoleMember", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleMemberCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_id", + "type": "uint256" + } + ], + "name": "getVault", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + } + ], + "name": "getVaultRatio", + "outputs": [ + { + "internalType": "uint256", + "name": "currentRatio", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_maxTCAP", + "type": "uint256" + } + ], + "name": "liquidateVault", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "liquidationPenalty", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + } + ], + "name": "liquidationReward", + "outputs": [ + { + "internalType": "uint256", + "name": "rewardCollateral", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "oracleDigits", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "pause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "paused", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "ratio", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_tokenAddress", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_tokenAmount", + "type": "uint256" + } + ], + "name": "recoverERC20", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "removeCollateral", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "requiredCollateral", + "outputs": [ + { + "internalType": "uint256", + "name": "collateral", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + } + ], + "name": "requiredLiquidationTCAP", + "outputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "rewardHandler", + "outputs": [ + { + "internalType": "contract IRewardHandler", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_burnFee", + "type": "uint256" + } + ], + "name": "setBurnFee", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_liquidationPenalty", + "type": "uint256" + } + ], + "name": "setLiquidationPenalty", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_ratio", + "type": "uint256" + } + ], + "name": "setRatio", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_treasury", + "type": "address" + } + ], + "name": "setTreasury", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "_interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "tcapOracle", + "outputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "treasury", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "unpause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "userToVault", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "vaults", + "outputs": [ + { + "internalType": "uint256", + "name": "Id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "Collateral", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "Debt", + "type": "uint256" + }, + { + "internalType": "address", + "name": "Owner", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + } + ] + }, + "WETHOracle": { + "address": "0x16c52CeeCE2ed57dAd87319D91B5e3637d50aFa4", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_aggregator", + "type": "address" + }, + { + "internalType": "address", + "name": "_owner", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [], + "name": "getLatestAnswer", + "outputs": [ + { + "internalType": "int256", + "name": "", + "type": "int256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getLatestRound", + "outputs": [ + { + "internalType": "uint80", + "name": "", + "type": "uint80" + }, + { + "internalType": "int256", + "name": "", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint80", + "name": "", + "type": "uint80" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getLatestTimestamp", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint80", + "name": "_id", + "type": "uint80" + } + ], + "name": "getPreviousAnswer", + "outputs": [ + { + "internalType": "int256", + "name": "", + "type": "int256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint80", + "name": "_id", + "type": "uint80" + } + ], + "name": "getPreviousTimestamp", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint80", + "name": "_id", + "type": "uint80" + } + ], + "name": "getRound", + "outputs": [ + { + "internalType": "uint80", + "name": "", + "type": "uint80" + }, + { + "internalType": "int256", + "name": "", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint80", + "name": "", + "type": "uint80" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_aggregator", + "type": "address" + } + ], + "name": "setReferenceContract", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ] + }, + "LinkOracle": { + "address": "0xa4e581BD159B869e8290707A7FBF841fe7FE97b6", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_aggregator", + "type": "address" + }, + { + "internalType": "address", + "name": "_owner", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [], + "name": "getLatestAnswer", + "outputs": [ + { + "internalType": "int256", + "name": "", + "type": "int256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getLatestRound", + "outputs": [ + { + "internalType": "uint80", + "name": "", + "type": "uint80" + }, + { + "internalType": "int256", + "name": "", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint80", + "name": "", + "type": "uint80" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getLatestTimestamp", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint80", + "name": "_id", + "type": "uint80" + } + ], + "name": "getPreviousAnswer", + "outputs": [ + { + "internalType": "int256", + "name": "", + "type": "int256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint80", + "name": "_id", + "type": "uint80" + } + ], + "name": "getPreviousTimestamp", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint80", + "name": "_id", + "type": "uint80" + } + ], + "name": "getRound", + "outputs": [ + { + "internalType": "uint80", + "name": "", + "type": "uint80" + }, + { + "internalType": "int256", + "name": "", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint80", + "name": "", + "type": "uint80" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_aggregator", + "type": "address" + } + ], + "name": "setReferenceContract", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ] + }, + "LinkVaultHandler": { + "address": "0x61925C38e28F60e688f7d05E65f63792166a5aFE", + "abi": [ + { + "inputs": [ + { + "internalType": "contract Orchestrator", + "name": "_orchestrator", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_divisor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_ratio", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_burnFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_liquidationPenalty", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_tcapOracle", + "type": "address" + }, + { + "internalType": "contract TCAP", + "name": "_tcapAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_collateralAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_collateralOracle", + "type": "address" + }, + { + "internalType": "address", + "name": "_ethOracle", + "type": "address" + }, + { + "internalType": "address", + "name": "_rewardHandler", + "type": "address" + }, + { + "internalType": "address", + "name": "_treasury", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "CollateralAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "CollateralRemoved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_burnFee", + "type": "uint256" + } + ], + "name": "NewBurnFee", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_liquidationPenalty", + "type": "uint256" + } + ], + "name": "NewLiquidationPenalty", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_ratio", + "type": "uint256" + } + ], + "name": "NewRatio", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "_tresury", + "type": "address" + } + ], + "name": "NewTreasury", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "Paused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_token", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "Recovered", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "TokensBurned", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "TokensMinted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "Unpaused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + } + ], + "name": "VaultCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "address", + "name": "_liquidator", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_liquidationCollateral", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_reward", + "type": "uint256" + } + ], + "name": "VaultLiquidated", + "type": "event" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "ETHPriceOracle", + "outputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MAX_FEE", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MIN_RATIO", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "TCAPPrice", + "outputs": [ + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "TCAPToken", + "outputs": [ + { + "internalType": "contract TCAP", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "addCollateral", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "burnFee", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "collateralContract", + "outputs": [ + { + "internalType": "contract IERC20", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "collateralPriceOracle", + "outputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "counter", + "outputs": [ + { + "internalType": "uint256", + "name": "_value", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "createVault", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "divisor", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "getFee", + "outputs": [ + { + "internalType": "uint256", + "name": "fee", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "_oracle", + "type": "address" + } + ], + "name": "getOraclePrice", + "outputs": [ + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "getRoleMember", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleMemberCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_id", + "type": "uint256" + } + ], + "name": "getVault", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + } + ], + "name": "getVaultRatio", + "outputs": [ + { + "internalType": "uint256", + "name": "currentRatio", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_maxTCAP", + "type": "uint256" + } + ], + "name": "liquidateVault", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "liquidationPenalty", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + } + ], + "name": "liquidationReward", + "outputs": [ + { + "internalType": "uint256", + "name": "rewardCollateral", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "oracleDigits", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "pause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "paused", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "ratio", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_tokenAddress", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_tokenAmount", + "type": "uint256" + } + ], + "name": "recoverERC20", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "removeCollateral", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "requiredCollateral", + "outputs": [ + { + "internalType": "uint256", + "name": "collateral", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + } + ], + "name": "requiredLiquidationTCAP", + "outputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "rewardHandler", + "outputs": [ + { + "internalType": "contract IRewardHandler", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_burnFee", + "type": "uint256" + } + ], + "name": "setBurnFee", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_liquidationPenalty", + "type": "uint256" + } + ], + "name": "setLiquidationPenalty", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_ratio", + "type": "uint256" + } + ], + "name": "setRatio", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_treasury", + "type": "address" + } + ], + "name": "setTreasury", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "_interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "tcapOracle", + "outputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "treasury", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "unpause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "userToVault", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "vaults", + "outputs": [ + { + "internalType": "uint256", + "name": "Id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "Collateral", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "Debt", + "type": "uint256" + }, + { + "internalType": "address", + "name": "Owner", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + } + ] + }, + "OptimisticOrchestrator": { + "address": "0x321C2fE4446C7c963dc41Dd58879AF648838f98D", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_guardian", + "type": "address" + }, + { + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "internalType": "address", + "name": "_ovmL2CrossDomainMessenger", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "guardian", + "type": "address" + } + ], + "name": "GuardianSet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "string", + "name": "signature", + "type": "string" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "TransactionExecuted", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "contract TCAP", + "name": "_tcap", + "type": "address" + }, + { + "internalType": "contract IVaultHandler", + "name": "_vault", + "type": "address" + } + ], + "name": "addTCAPVault", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract TCAP", + "name": "_tcap", + "type": "address" + }, + { + "internalType": "bool", + "name": "_enable", + "type": "bool" + } + ], + "name": "enableTCAPCap", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "string", + "name": "signature", + "type": "string" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "executeTransaction", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "guardian", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "ovmL2CrossDomainMessenger", + "outputs": [ + { + "internalType": "contract iOVM_CrossDomainMessenger", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IVaultHandler", + "name": "_vault", + "type": "address" + } + ], + "name": "pauseVault", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract TCAP", + "name": "_tcap", + "type": "address" + }, + { + "internalType": "contract IVaultHandler", + "name": "_vault", + "type": "address" + } + ], + "name": "removeTCAPVault", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_to", + "type": "address" + } + ], + "name": "retrieveETH", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IVaultHandler", + "name": "_vault", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_burnFee", + "type": "uint256" + } + ], + "name": "setBurnFee", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IVaultHandler", + "name": "_vault", + "type": "address" + } + ], + "name": "setEmergencyBurnFee", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IVaultHandler", + "name": "_vault", + "type": "address" + } + ], + "name": "setEmergencyLiquidationPenalty", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_guardian", + "type": "address" + } + ], + "name": "setGuardian", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IVaultHandler", + "name": "_vault", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_liquidationPenalty", + "type": "uint256" + } + ], + "name": "setLiquidationPenalty", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IVaultHandler", + "name": "_vault", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_ratio", + "type": "uint256" + } + ], + "name": "setRatio", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract TCAP", + "name": "_tcap", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_cap", + "type": "uint256" + } + ], + "name": "setTCAPCap", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IVaultHandler", + "name": "_vault", + "type": "address" + } + ], + "name": "unpauseVault", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "stateMutability": "payable", + "type": "receive" + } + ] + }, + "OptimisticTreasury": { + "address": "0x271901c3268D0959bbc9543DE4f073D3708C88F7", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "internalType": "address", + "name": "_ovmL2CrossDomainMessenger", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "string", + "name": "signature", + "type": "string" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "TransactionExecuted", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "string", + "name": "signature", + "type": "string" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "executeTransaction", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "ovmL2CrossDomainMessenger", + "outputs": [ + { + "internalType": "contract iOVM_CrossDomainMessenger", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_to", + "type": "address" + } + ], + "name": "retrieveETH", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "stateMutability": "payable", + "type": "receive" + } + ] + }, + "SNXOracle": { + "address": "0x2cFeaf282FE9ae050b210e7BDa65D288C40c6104", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_aggregator", + "type": "address" + }, + { + "internalType": "address", + "name": "_owner", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [], + "name": "getLatestAnswer", + "outputs": [ + { + "internalType": "int256", + "name": "", + "type": "int256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getLatestRound", + "outputs": [ + { + "internalType": "uint80", + "name": "", + "type": "uint80" + }, + { + "internalType": "int256", + "name": "", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint80", + "name": "", + "type": "uint80" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getLatestTimestamp", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint80", + "name": "_id", + "type": "uint80" + } + ], + "name": "getPreviousAnswer", + "outputs": [ + { + "internalType": "int256", + "name": "", + "type": "int256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint80", + "name": "_id", + "type": "uint80" + } + ], + "name": "getPreviousTimestamp", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint80", + "name": "_id", + "type": "uint80" + } + ], + "name": "getRound", + "outputs": [ + { + "internalType": "uint80", + "name": "", + "type": "uint80" + }, + { + "internalType": "int256", + "name": "", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint80", + "name": "", + "type": "uint80" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_aggregator", + "type": "address" + } + ], + "name": "setReferenceContract", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ] + }, + "SNXVaultHandler": { + "address": "0xc8BB1cd417D20116387a5e0603e195cA4f3Cf59A", + "abi": [ + { + "inputs": [ + { + "internalType": "contract Orchestrator", + "name": "_orchestrator", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_divisor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_ratio", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_burnFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_liquidationPenalty", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_tcapOracle", + "type": "address" + }, + { + "internalType": "contract TCAP", + "name": "_tcapAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_collateralAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_collateralOracle", + "type": "address" + }, + { + "internalType": "address", + "name": "_ethOracle", + "type": "address" + }, + { + "internalType": "address", + "name": "_rewardHandler", + "type": "address" + }, + { + "internalType": "address", + "name": "_treasury", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "CollateralAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "CollateralRemoved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_burnFee", + "type": "uint256" + } + ], + "name": "NewBurnFee", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_liquidationPenalty", + "type": "uint256" + } + ], + "name": "NewLiquidationPenalty", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_ratio", + "type": "uint256" + } + ], + "name": "NewRatio", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "_tresury", + "type": "address" + } + ], + "name": "NewTreasury", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "Paused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_token", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "Recovered", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "TokensBurned", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "TokensMinted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "Unpaused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + } + ], + "name": "VaultCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "address", + "name": "_liquidator", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_liquidationCollateral", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_reward", + "type": "uint256" + } + ], + "name": "VaultLiquidated", + "type": "event" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "ETHPriceOracle", + "outputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MAX_FEE", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MIN_RATIO", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "TCAPPrice", + "outputs": [ + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "TCAPToken", + "outputs": [ + { + "internalType": "contract TCAP", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "addCollateral", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "burnFee", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "collateralContract", + "outputs": [ + { + "internalType": "contract IERC20", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "collateralPriceOracle", + "outputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "counter", + "outputs": [ + { + "internalType": "uint256", + "name": "_value", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "createVault", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "divisor", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "getFee", + "outputs": [ + { + "internalType": "uint256", + "name": "fee", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "_oracle", + "type": "address" + } + ], + "name": "getOraclePrice", + "outputs": [ + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "getRoleMember", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleMemberCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_id", + "type": "uint256" + } + ], + "name": "getVault", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + } + ], + "name": "getVaultRatio", + "outputs": [ + { + "internalType": "uint256", + "name": "currentRatio", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_maxTCAP", + "type": "uint256" + } + ], + "name": "liquidateVault", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "liquidationPenalty", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + } + ], + "name": "liquidationReward", + "outputs": [ + { + "internalType": "uint256", + "name": "rewardCollateral", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "oracleDigits", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "pause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "paused", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "ratio", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_tokenAddress", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_tokenAmount", + "type": "uint256" + } + ], + "name": "recoverERC20", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "removeCollateral", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "requiredCollateral", + "outputs": [ + { + "internalType": "uint256", + "name": "collateral", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + } + ], + "name": "requiredLiquidationTCAP", + "outputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "rewardHandler", + "outputs": [ + { + "internalType": "contract IRewardHandler", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_burnFee", + "type": "uint256" + } + ], + "name": "setBurnFee", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_liquidationPenalty", + "type": "uint256" + } + ], + "name": "setLiquidationPenalty", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_ratio", + "type": "uint256" + } + ], + "name": "setRatio", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_treasury", + "type": "address" + } + ], + "name": "setTreasury", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "_interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "tcapOracle", + "outputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "treasury", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "unpause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "userToVault", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "vaults", + "outputs": [ + { + "internalType": "uint256", + "name": "Id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "Collateral", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "Debt", + "type": "uint256" + }, + { + "internalType": "address", + "name": "Owner", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + } + ] + }, + "TCAP": { + "address": "0x6b5a75f38BeA1Ef59Bc43A5d9602e77Bcbe65e46", + "abi": [ + { + "inputs": [ + { + "internalType": "string", + "name": "_name", + "type": "string" + }, + { + "internalType": "string", + "name": "_symbol", + "type": "string" + }, + { + "internalType": "uint256", + "name": "_cap", + "type": "uint256" + }, + { + "internalType": "contract Orchestrator", + "name": "_orchestrator", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "NewCap", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "_enable", + "type": "bool" + } + ], + "name": "NewCapEnabled", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "_tokenHandler", + "type": "address" + } + ], + "name": "VaultHandlerAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "_tokenHandler", + "type": "address" + } + ], + "name": "VaultHandlerRemoved", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_vaultHandler", + "type": "address" + } + ], + "name": "addVaultHandler", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "cap", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "capEnabled", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bool", + "name": "_enable", + "type": "bool" + } + ], + "name": "enableCap", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "addedValue", + "type": "uint256" + } + ], + "name": "increaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_vaultHandler", + "type": "address" + } + ], + "name": "removeVaultHandler", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_cap", + "type": "uint256" + } + ], + "name": "setCap", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "_interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "vaultHandlers", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ] + }, + "TCAPOracle": { + "address": "0xa54074b2cc0e96a43048d4a68472F7F046aC0DA8", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_aggregator", + "type": "address" + }, + { + "internalType": "address", + "name": "_owner", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [], + "name": "getLatestAnswer", + "outputs": [ + { + "internalType": "int256", + "name": "", + "type": "int256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getLatestRound", + "outputs": [ + { + "internalType": "uint80", + "name": "", + "type": "uint80" + }, + { + "internalType": "int256", + "name": "", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint80", + "name": "", + "type": "uint80" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getLatestTimestamp", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint80", + "name": "_id", + "type": "uint80" + } + ], + "name": "getPreviousAnswer", + "outputs": [ + { + "internalType": "int256", + "name": "", + "type": "int256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint80", + "name": "_id", + "type": "uint80" + } + ], + "name": "getPreviousTimestamp", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint80", + "name": "_id", + "type": "uint80" + } + ], + "name": "getRound", + "outputs": [ + { + "internalType": "uint80", + "name": "", + "type": "uint80" + }, + { + "internalType": "int256", + "name": "", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint80", + "name": "", + "type": "uint80" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_aggregator", + "type": "address" + } + ], + "name": "setReferenceContract", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ] + }, + "UNIOracle": { + "address": "0x07Ef20895ceF20855D29ACeDCa35E6f96AF4fF49", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_aggregator", + "type": "address" + }, + { + "internalType": "address", + "name": "_owner", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [], + "name": "getLatestAnswer", + "outputs": [ + { + "internalType": "int256", + "name": "", + "type": "int256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getLatestRound", + "outputs": [ + { + "internalType": "uint80", + "name": "", + "type": "uint80" + }, + { + "internalType": "int256", + "name": "", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint80", + "name": "", + "type": "uint80" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getLatestTimestamp", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint80", + "name": "_id", + "type": "uint80" + } + ], + "name": "getPreviousAnswer", + "outputs": [ + { + "internalType": "int256", + "name": "", + "type": "int256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint80", + "name": "_id", + "type": "uint80" + } + ], + "name": "getPreviousTimestamp", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint80", + "name": "_id", + "type": "uint80" + } + ], + "name": "getRound", + "outputs": [ + { + "internalType": "uint80", + "name": "", + "type": "uint80" + }, + { + "internalType": "int256", + "name": "", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint80", + "name": "", + "type": "uint80" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_aggregator", + "type": "address" + } + ], + "name": "setReferenceContract", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ] + }, + "UNIVaultHandler": { + "address": "0x66ae98E432329E42B7988CFDCB6f524b1999CB4a", + "abi": [ + { + "inputs": [ + { + "internalType": "contract Orchestrator", + "name": "_orchestrator", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_divisor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_ratio", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_burnFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_liquidationPenalty", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_tcapOracle", + "type": "address" + }, + { + "internalType": "contract TCAP", + "name": "_tcapAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_collateralAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_collateralOracle", + "type": "address" + }, + { + "internalType": "address", + "name": "_ethOracle", + "type": "address" + }, + { + "internalType": "address", + "name": "_rewardHandler", + "type": "address" + }, + { + "internalType": "address", + "name": "_treasury", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "CollateralAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "CollateralRemoved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_burnFee", + "type": "uint256" + } + ], + "name": "NewBurnFee", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_liquidationPenalty", + "type": "uint256" + } + ], + "name": "NewLiquidationPenalty", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_ratio", + "type": "uint256" + } + ], + "name": "NewRatio", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "_tresury", + "type": "address" + } + ], + "name": "NewTreasury", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "Paused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_token", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "Recovered", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "TokensBurned", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "TokensMinted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "Unpaused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + } + ], + "name": "VaultCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "address", + "name": "_liquidator", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_liquidationCollateral", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_reward", + "type": "uint256" + } + ], + "name": "VaultLiquidated", + "type": "event" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "ETHPriceOracle", + "outputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MAX_FEE", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MIN_RATIO", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "TCAPPrice", + "outputs": [ + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "TCAPToken", + "outputs": [ + { + "internalType": "contract TCAP", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "addCollateral", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "burnFee", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "collateralContract", + "outputs": [ + { + "internalType": "contract IERC20", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "collateralPriceOracle", + "outputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "counter", + "outputs": [ + { + "internalType": "uint256", + "name": "_value", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "createVault", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "divisor", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "getFee", + "outputs": [ + { + "internalType": "uint256", + "name": "fee", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "_oracle", + "type": "address" + } + ], + "name": "getOraclePrice", + "outputs": [ + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "getRoleMember", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleMemberCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_id", + "type": "uint256" + } + ], + "name": "getVault", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + } + ], + "name": "getVaultRatio", + "outputs": [ + { + "internalType": "uint256", + "name": "currentRatio", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_maxTCAP", + "type": "uint256" + } + ], + "name": "liquidateVault", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "liquidationPenalty", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + } + ], + "name": "liquidationReward", + "outputs": [ + { + "internalType": "uint256", + "name": "rewardCollateral", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "oracleDigits", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "pause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "paused", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "ratio", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_tokenAddress", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_tokenAmount", + "type": "uint256" + } + ], + "name": "recoverERC20", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "removeCollateral", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "requiredCollateral", + "outputs": [ + { + "internalType": "uint256", + "name": "collateral", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + } + ], + "name": "requiredLiquidationTCAP", + "outputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "rewardHandler", + "outputs": [ + { + "internalType": "contract IRewardHandler", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_burnFee", + "type": "uint256" + } + ], + "name": "setBurnFee", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_liquidationPenalty", + "type": "uint256" + } + ], + "name": "setLiquidationPenalty", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_ratio", + "type": "uint256" + } + ], + "name": "setRatio", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_treasury", + "type": "address" + } + ], + "name": "setTreasury", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "_interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "tcapOracle", + "outputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "treasury", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "unpause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "userToVault", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "vaults", + "outputs": [ + { + "internalType": "uint256", + "name": "Id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "Collateral", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "Debt", + "type": "uint256" + }, + { + "internalType": "address", + "name": "Owner", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + } + ] + }, + "WETHVaultHandler": { + "address": "0xE0c99C503c4AE5eC50aC63C59C7eF4725C355fdD", + "abi": [ + { + "inputs": [ + { + "internalType": "contract Orchestrator", + "name": "_orchestrator", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_divisor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_ratio", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_burnFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_liquidationPenalty", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_tcapOracle", + "type": "address" + }, + { + "internalType": "contract TCAP", + "name": "_tcapAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_collateralAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_collateralOracle", + "type": "address" + }, + { + "internalType": "address", + "name": "_ethOracle", + "type": "address" + }, + { + "internalType": "address", + "name": "_rewardHandler", + "type": "address" + }, + { + "internalType": "address", + "name": "_treasury", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "CollateralAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "CollateralRemoved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_burnFee", + "type": "uint256" + } + ], + "name": "NewBurnFee", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_liquidationPenalty", + "type": "uint256" + } + ], + "name": "NewLiquidationPenalty", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_ratio", + "type": "uint256" + } + ], + "name": "NewRatio", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "_tresury", + "type": "address" + } + ], + "name": "NewTreasury", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "Paused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_token", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "Recovered", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "TokensBurned", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "TokensMinted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "Unpaused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + } + ], + "name": "VaultCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "address", + "name": "_liquidator", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_liquidationCollateral", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_reward", + "type": "uint256" + } + ], + "name": "VaultLiquidated", + "type": "event" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "ETHPriceOracle", + "outputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MAX_FEE", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MIN_RATIO", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "TCAPPrice", + "outputs": [ + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "TCAPToken", + "outputs": [ + { + "internalType": "contract TCAP", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "addCollateral", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "addCollateralETH", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "burnFee", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "collateralContract", + "outputs": [ + { + "internalType": "contract IERC20", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "collateralPriceOracle", + "outputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "counter", + "outputs": [ + { + "internalType": "uint256", + "name": "_value", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "createVault", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "divisor", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "getFee", + "outputs": [ + { + "internalType": "uint256", + "name": "fee", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "_oracle", + "type": "address" + } + ], + "name": "getOraclePrice", + "outputs": [ + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "getRoleMember", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleMemberCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_id", + "type": "uint256" + } + ], + "name": "getVault", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + } + ], + "name": "getVaultRatio", + "outputs": [ + { + "internalType": "uint256", + "name": "currentRatio", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_maxTCAP", + "type": "uint256" + } + ], + "name": "liquidateVault", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "liquidationPenalty", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + } + ], + "name": "liquidationReward", + "outputs": [ + { + "internalType": "uint256", + "name": "rewardCollateral", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "oracleDigits", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" } ], - "name": "getRound", + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "pause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "paused", "outputs": [ { - "internalType": "uint80", + "internalType": "bool", "name": "", - "type": "uint80" - }, + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "ratio", + "outputs": [ { - "internalType": "int256", + "internalType": "uint256", "name": "", - "type": "int256" + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_tokenAddress", + "type": "address" }, { "internalType": "uint256", - "name": "", + "name": "_tokenAmount", "type": "uint256" - }, + } + ], + "name": "recoverERC20", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ { "internalType": "uint256", - "name": "", + "name": "_amount", + "type": "uint256" + } + ], + "name": "removeCollateral", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", "type": "uint256" + } + ], + "name": "removeCollateralETH", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" }, { - "internalType": "uint80", - "name": "", - "type": "uint80" + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "requiredCollateral", + "outputs": [ + { + "internalType": "uint256", + "name": "collateral", + "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { - "inputs": [], - "name": "owner", + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + } + ], + "name": "requiredLiquidationTCAP", "outputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, { "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "rewardHandler", + "outputs": [ + { + "internalType": "contract IRewardHandler", "name": "", "type": "address" } @@ -16076,8 +51666,40 @@ "type": "function" }, { - "inputs": [], - "name": "renounceOwnership", + "inputs": [ + { + "internalType": "uint256", + "name": "_burnFee", + "type": "uint256" + } + ], + "name": "setBurnFee", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_liquidationPenalty", + "type": "uint256" + } + ], + "name": "setLiquidationPenalty", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_ratio", + "type": "uint256" + } + ], + "name": "setRatio", "outputs": [], "stateMutability": "nonpayable", "type": "function" @@ -16086,11 +51708,11 @@ "inputs": [ { "internalType": "address", - "name": "_aggregator", + "name": "_treasury", "type": "address" } ], - "name": "setReferenceContract", + "name": "setTreasury", "outputs": [], "stateMutability": "nonpayable", "type": "function" @@ -16099,7 +51721,7 @@ "inputs": [ { "internalType": "bytes4", - "name": "interfaceId", + "name": "_interfaceId", "type": "bytes4" } ], @@ -16114,6 +51736,19 @@ "stateMutability": "pure", "type": "function" }, + { + "inputs": [], + "name": "tcapOracle", + "outputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -16126,203 +51761,447 @@ "outputs": [], "stateMutability": "nonpayable", "type": "function" - } - ] - }, - "AaveVaultHandler": { - "address": "0x119D37aFc784C81626b08813D83598b8673EEE66", - "abi": [ + }, + { + "inputs": [], + "name": "treasury", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "unpause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [ { - "internalType": "contract Orchestrator", - "name": "_orchestrator", + "internalType": "address", + "name": "", "type": "address" - }, + } + ], + "name": "userToVault", + "outputs": [ { "internalType": "uint256", - "name": "_divisor", + "name": "", "type": "uint256" - }, + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ { "internalType": "uint256", - "name": "_ratio", + "name": "", + "type": "uint256" + } + ], + "name": "vaults", + "outputs": [ + { + "internalType": "uint256", + "name": "Id", "type": "uint256" }, { "internalType": "uint256", - "name": "_burnFee", + "name": "Collateral", "type": "uint256" }, { "internalType": "uint256", - "name": "_liquidationPenalty", + "name": "Debt", "type": "uint256" }, { "internalType": "address", - "name": "_tcapOracle", + "name": "Owner", "type": "address" - }, + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "stateMutability": "payable", + "type": "receive" + } + ] + } + } + } + }, + "69": { + "okovan": { + "name": "okovan", + "chainId": "69", + "contracts": { + "AAVE": { + "address": "0x8F90583D4B7A8af2b662bAfed28F93A26ee2ffC6", + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ { - "internalType": "contract TCAP", - "name": "_tcapAddress", + "indexed": true, + "internalType": "address", + "name": "owner", "type": "address" }, { + "indexed": true, "internalType": "address", - "name": "_collateralAddress", + "name": "spender", "type": "address" }, { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, "internalType": "address", - "name": "_collateralOracle", + "name": "from", "type": "address" }, { + "indexed": true, "internalType": "address", - "name": "_ethOracle", + "name": "to", "type": "address" }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ { "internalType": "address", - "name": "_rewardHandler", + "name": "owner", "type": "address" }, { "internalType": "address", - "name": "_treasury", + "name": "spender", "type": "address" } ], - "stateMutability": "nonpayable", - "type": "constructor" + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, "internalType": "address", - "name": "_owner", + "name": "spender", "type": "address" }, { - "indexed": true, "internalType": "uint256", - "name": "_id", + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" }, { - "indexed": false, "internalType": "uint256", "name": "_amount", "type": "uint256" } ], - "name": "CollateralAdded", - "type": "event" + "name": "burn", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, "internalType": "address", - "name": "_owner", + "name": "spender", "type": "address" }, { - "indexed": true, "internalType": "uint256", - "name": "_id", + "name": "subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "addedValue", "type": "uint256" + } + ], + "name": "increaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" }, { - "indexed": false, "internalType": "uint256", - "name": "_amount", + "name": "_amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", "type": "uint256" } ], - "name": "CollateralRemoved", - "type": "event" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, "internalType": "address", - "name": "_owner", + "name": "recipient", "type": "address" }, { - "indexed": false, "internalType": "uint256", - "name": "_burnFee", + "name": "amount", "type": "uint256" } ], - "name": "NewBurnFee", - "type": "event" + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, "internalType": "address", - "name": "_owner", + "name": "sender", + "type": "address" + }, + { + "internalType": "address", + "name": "recipient", "type": "address" }, { - "indexed": false, "internalType": "uint256", - "name": "_liquidationPenalty", + "name": "amount", "type": "uint256" } ], - "name": "NewLiquidationPenalty", - "type": "event" + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" }, { - "anonymous": false, + "stateMutability": "payable", + "type": "receive" + } + ] + }, + "AaveOracle": { + "address": "0x73Ebb8b08f056F451c2aA53dCAd7A35ce6aD52D0", + "abi": [ + { "inputs": [ { - "indexed": true, - "internalType": "address", - "name": "_owner", - "type": "address" + "internalType": "string", + "name": "_name", + "type": "string" + }, + { + "internalType": "string", + "name": "_symbol", + "type": "string" }, { - "indexed": false, "internalType": "uint256", - "name": "_ratio", + "name": "_cap", "type": "uint256" - } - ], - "name": "NewRatio", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ + }, { - "indexed": true, - "internalType": "address", - "name": "_owner", + "internalType": "contract Orchestrator", + "name": "_orchestrator", "type": "address" }, { - "indexed": false, "internalType": "address", - "name": "_tresury", + "name": "_timelock", "type": "address" } ], - "name": "NewTreasury", - "type": "event" + "stateMutability": "nonpayable", + "type": "constructor" }, { "anonymous": false, @@ -16330,39 +52209,32 @@ { "indexed": true, "internalType": "address", - "name": "previousOwner", + "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", - "name": "newOwner", + "name": "spender", "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ + }, { "indexed": false, - "internalType": "address", - "name": "account", - "type": "address" + "internalType": "uint256", + "name": "value", + "type": "uint256" } ], - "name": "Paused", + "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { - "indexed": false, + "indexed": true, "internalType": "address", - "name": "_token", + "name": "_owner", "type": "address" }, { @@ -16372,82 +52244,45 @@ "type": "uint256" } ], - "name": "Recovered", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "previousAdminRole", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "newAdminRole", - "type": "bytes32" - } - ], - "name": "RoleAdminChanged", + "name": "NewCap", "type": "event" }, { "anonymous": false, "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, { "indexed": true, "internalType": "address", - "name": "account", + "name": "_owner", "type": "address" }, { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" + "indexed": false, + "internalType": "bool", + "name": "_enable", + "type": "bool" } ], - "name": "RoleGranted", + "name": "NewCapEnabled", "type": "event" }, { "anonymous": false, "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, { "indexed": true, "internalType": "address", - "name": "account", + "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", - "name": "sender", + "name": "newOwner", "type": "address" } ], - "name": "RoleRevoked", + "name": "OwnershipTransferred", "type": "event" }, { @@ -16456,23 +52291,23 @@ { "indexed": true, "internalType": "address", - "name": "_owner", + "name": "from", "type": "address" }, { "indexed": true, - "internalType": "uint256", - "name": "_id", - "type": "uint256" + "internalType": "address", + "name": "to", + "type": "address" }, { "indexed": false, "internalType": "uint256", - "name": "_amount", + "name": "value", "type": "uint256" } ], - "name": "TokensBurned", + "name": "Transfer", "type": "event" }, { @@ -16486,31 +52321,12 @@ }, { "indexed": true, - "internalType": "uint256", - "name": "_id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - } - ], - "name": "TokensMinted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, "internalType": "address", - "name": "account", + "name": "_tokenHandler", "type": "address" } ], - "name": "Unpaused", + "name": "VaultHandlerAdded", "type": "event" }, { @@ -16524,74 +52340,41 @@ }, { "indexed": true, - "internalType": "uint256", - "name": "_id", - "type": "uint256" + "internalType": "address", + "name": "_tokenHandler", + "type": "address" } ], - "name": "VaultCreated", + "name": "VaultHandlerRemoved", "type": "event" }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "uint256", - "name": "_vaultId", - "type": "uint256" - }, - { - "indexed": true, "internalType": "address", - "name": "_liquidator", + "name": "_vaultHandler", "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_liquidationCollateral", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_reward", - "type": "uint256" - } - ], - "name": "VaultLiquidated", - "type": "event" - }, - { - "inputs": [], - "name": "DEFAULT_ADMIN_ROLE", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" } ], - "stateMutability": "view", + "name": "addVaultHandler", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [], - "name": "ETHPriceOracle", - "outputs": [ + "inputs": [ { - "internalType": "contract ChainlinkOracle", - "name": "", + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", "type": "address" } ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MAX_FEE", + "name": "allowance", "outputs": [ { "internalType": "uint256", @@ -16603,59 +52386,55 @@ "type": "function" }, { - "inputs": [], - "name": "MIN_RATIO", - "outputs": [ + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, { "internalType": "uint256", - "name": "", + "name": "amount", "type": "uint256" } ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "TCAPPrice", + "name": "approve", "outputs": [ { - "internalType": "uint256", - "name": "price", - "type": "uint256" + "internalType": "bool", + "name": "", + "type": "bool" } ], - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [], - "name": "TCAPToken", - "outputs": [ + "inputs": [ { - "internalType": "contract TCAP", - "name": "", + "internalType": "address", + "name": "account", "type": "address" } ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ + "name": "balanceOf", + "outputs": [ { "internalType": "uint256", - "name": "_amount", + "name": "", "type": "uint256" } ], - "name": "addCollateral", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + }, { "internalType": "uint256", "name": "_amount", @@ -16664,12 +52443,12 @@ ], "name": "burn", "outputs": [], - "stateMutability": "payable", + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], - "name": "burnFee", + "name": "cap", "outputs": [ { "internalType": "uint256", @@ -16682,12 +52461,12 @@ }, { "inputs": [], - "name": "collateralContract", + "name": "capEnabled", "outputs": [ { - "internalType": "contract IERC20", + "internalType": "bool", "name": "", - "type": "address" + "type": "bool" } ], "stateMutability": "view", @@ -16695,235 +52474,123 @@ }, { "inputs": [], - "name": "collateralPriceOracle", + "name": "decimals", "outputs": [ { - "internalType": "contract ChainlinkOracle", + "internalType": "uint8", "name": "", - "type": "address" + "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { - "inputs": [], - "name": "counter", - "outputs": [ + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, { "internalType": "uint256", - "name": "_value", + "name": "subtractedValue", "type": "uint256" } ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "createVault", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "divisor", + "name": "decreaseAllowance", "outputs": [ { - "internalType": "uint256", + "internalType": "bool", "name": "", - "type": "uint256" + "type": "bool" } ], - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - } - ], - "name": "getFee", - "outputs": [ - { - "internalType": "uint256", - "name": "fee", - "type": "uint256" + "internalType": "bool", + "name": "_enable", + "type": "bool" } ], - "stateMutability": "view", + "name": "enableCap", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" - }, + } + ] + }, + "AaveVaultHandler": { + "address": "0x119D37aFc784C81626b08813D83598b8673EEE66", + "abi": [ { "inputs": [ { - "internalType": "contract ChainlinkOracle", - "name": "_oracle", + "internalType": "contract Orchestrator", + "name": "_orchestrator", "type": "address" - } - ], - "name": "getOraclePrice", - "outputs": [ + }, { "internalType": "uint256", - "name": "price", + "name": "_divisor", "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "getRoleAdmin", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" }, { "internalType": "uint256", - "name": "index", + "name": "_ratio", "type": "uint256" - } - ], - "name": "getRoleMember", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "getRoleMemberCount", - "outputs": [ + }, { "internalType": "uint256", - "name": "", + "name": "_burnFee", "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ + }, { "internalType": "uint256", - "name": "_id", + "name": "_liquidationPenalty", "type": "uint256" - } - ], - "name": "getVault", - "outputs": [ + }, { - "internalType": "uint256", - "name": "", - "type": "uint256" + "internalType": "address", + "name": "_tcapOracle", + "type": "address" }, { - "internalType": "uint256", - "name": "", - "type": "uint256" + "internalType": "contract TCAP", + "name": "_tcapAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_collateralAddress", + "type": "address" }, { "internalType": "address", - "name": "", + "name": "_collateralOracle", "type": "address" }, { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_vaultId", - "type": "uint256" - } - ], - "name": "getVaultRatio", - "outputs": [ - { - "internalType": "uint256", - "name": "currentRatio", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" + "internalType": "address", + "name": "_ethOracle", + "type": "address" }, { "internalType": "address", - "name": "account", + "name": "_rewardHandler", "type": "address" - } - ], - "name": "grantRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" }, { "internalType": "address", - "name": "account", + "name": "_treasury", "type": "address" } ], - "name": "hasRole", + "name": "increaseAllowance", "outputs": [ { "internalType": "bool", @@ -16931,330 +52598,385 @@ "type": "bool" } ], - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, "internalType": "uint256", - "name": "_vaultId", + "name": "_id", "type": "uint256" }, { "internalType": "uint256", - "name": "_maxTCAP", + "name": "_amount", "type": "uint256" } ], - "name": "liquidateVault", - "outputs": [], - "stateMutability": "payable", - "type": "function" + "name": "CollateralAdded", + "type": "event" }, { - "inputs": [], - "name": "liquidationPenalty", - "outputs": [ + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, { + "indexed": false, "internalType": "uint256", - "name": "", + "name": "_amount", "type": "uint256" } ], - "stateMutability": "view", - "type": "function" + "name": "CollateralRemoved", + "type": "event" }, { + "anonymous": false, "inputs": [ { - "internalType": "uint256", - "name": "_vaultId", - "type": "uint256" - } - ], - "name": "liquidationReward", - "outputs": [ + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, { + "indexed": false, "internalType": "uint256", - "name": "rewardCollateral", + "name": "_burnFee", "type": "uint256" } ], - "stateMutability": "view", - "type": "function" + "name": "NewBurnFee", + "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, "internalType": "uint256", - "name": "_amount", + "name": "_liquidationPenalty", "type": "uint256" } ], - "name": "mint", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "name": "NewLiquidationPenalty", + "type": "event" }, { - "inputs": [], - "name": "oracleDigits", - "outputs": [ + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, { + "indexed": false, "internalType": "uint256", - "name": "", + "name": "_ratio", "type": "uint256" } ], - "stateMutability": "view", - "type": "function" + "name": "NewRatio", + "type": "event" }, { - "inputs": [], - "name": "owner", - "outputs": [ + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, { + "indexed": false, "internalType": "address", - "name": "", + "name": "_tresury", "type": "address" } ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "pause", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "name": "NewTreasury", + "type": "event" }, { - "inputs": [], - "name": "paused", - "outputs": [ + "anonymous": false, + "inputs": [ { - "internalType": "bool", - "name": "", - "type": "bool" + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" } ], - "stateMutability": "view", - "type": "function" + "name": "OwnershipTransferred", + "type": "event" }, { - "inputs": [], - "name": "ratio", - "outputs": [ + "anonymous": false, + "inputs": [ { - "internalType": "uint256", - "name": "", - "type": "uint256" + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" } ], - "stateMutability": "view", - "type": "function" + "name": "Paused", + "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": false, "internalType": "address", - "name": "_tokenAddress", + "name": "_token", "type": "address" }, { + "indexed": false, "internalType": "uint256", - "name": "_tokenAmount", + "name": "_amount", "type": "uint256" } ], - "name": "recoverERC20", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "name": "Recovered", + "type": "event" }, { + "anonymous": false, "inputs": [ { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" } ], - "name": "removeCollateral", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "name": "RoleAdminChanged", + "type": "event" }, { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" }, { "inputs": [ { + "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { + "indexed": true, "internalType": "address", "name": "account", "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" } ], - "name": "renounceRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "name": "RoleRevoked", + "type": "event" }, { "inputs": [ { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, "internalType": "uint256", - "name": "_amount", + "name": "_id", "type": "uint256" - } - ], - "name": "requiredCollateral", - "outputs": [ + }, { + "indexed": false, "internalType": "uint256", - "name": "collateral", + "name": "_amount", "type": "uint256" } ], - "stateMutability": "view", - "type": "function" + "name": "TokensBurned", + "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, "internalType": "uint256", - "name": "_vaultId", + "name": "_id", "type": "uint256" - } - ], - "name": "requiredLiquidationTCAP", - "outputs": [ + }, { + "indexed": false, "internalType": "uint256", - "name": "amount", + "name": "_amount", "type": "uint256" } ], - "stateMutability": "view", - "type": "function" + "name": "TokensMinted", + "type": "event" }, { + "anonymous": false, "inputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { + "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], - "name": "revokeRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "name": "Unpaused", + "type": "event" }, { - "inputs": [], - "name": "rewardHandler", - "outputs": [ + "anonymous": false, + "inputs": [ { - "internalType": "contract IRewardHandler", - "name": "", + "indexed": true, + "internalType": "address", + "name": "_owner", "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ + }, { + "indexed": true, "internalType": "uint256", - "name": "_burnFee", + "name": "_id", "type": "uint256" } ], - "name": "setBurnFee", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "name": "VaultCreated", + "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": true, "internalType": "uint256", - "name": "_liquidationPenalty", + "name": "_vaultId", "type": "uint256" - } - ], - "name": "setLiquidationPenalty", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ + }, + { + "indexed": true, + "internalType": "address", + "name": "_liquidator", + "type": "address" + }, { + "indexed": false, "internalType": "uint256", - "name": "_ratio", + "name": "_liquidationCollateral", "type": "uint256" - } - ], - "name": "setRatio", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ + }, { - "internalType": "address", - "name": "_treasury", - "type": "address" + "indexed": false, + "internalType": "uint256", + "name": "_reward", + "type": "uint256" } ], - "name": "setTreasury", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "name": "VaultLiquidated", + "type": "event" }, { - "inputs": [ - { - "internalType": "bytes4", - "name": "_interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", "outputs": [ { - "internalType": "bool", + "internalType": "bytes32", "name": "", - "type": "bool" + "type": "bytes32" } ], - "stateMutability": "pure", + "stateMutability": "view", "type": "function" }, { "inputs": [], - "name": "tcapOracle", + "name": "ETHPriceOracle", "outputs": [ { "internalType": "contract ChainlinkOracle", @@ -17266,51 +52988,38 @@ "type": "function" }, { - "inputs": [ + "inputs": [], + "name": "MAX_FEE", + "outputs": [ { - "internalType": "address", - "name": "newOwner", - "type": "address" + "internalType": "uint256", + "name": "amount", + "type": "uint256" } ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "inputs": [], - "name": "treasury", + "name": "MIN_RATIO", "outputs": [ { - "internalType": "address", + "internalType": "uint256", "name": "", - "type": "address" + "type": "uint256" } ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "unpause", - "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "userToVault", + "inputs": [], + "name": "TCAPPrice", "outputs": [ { "internalType": "uint256", - "name": "", + "name": "price", "type": "uint256" } ], @@ -17318,33 +53027,12 @@ "type": "function" }, { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "vaults", + "inputs": [], + "name": "TCAPToken", "outputs": [ { - "internalType": "uint256", - "name": "Id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "Collateral", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "Debt", - "type": "uint256" - }, - { - "internalType": "address", - "name": "Owner", + "internalType": "contract TCAP", + "name": "", "type": "address" } ], @@ -19580,530 +55268,96 @@ { "indexed": true, "internalType": "address", - "name": "_owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "_id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - } - ], - "name": "TokensMinted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "Unpaused", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "_id", - "type": "uint256" - } - ], - "name": "VaultCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "_vaultId", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "_liquidator", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_liquidationCollateral", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_reward", - "type": "uint256" - } - ], - "name": "VaultLiquidated", - "type": "event" - }, - { - "inputs": [], - "name": "DEFAULT_ADMIN_ROLE", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "ETHPriceOracle", - "outputs": [ - { - "internalType": "contract ChainlinkOracle", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MAX_FEE", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MIN_RATIO", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "TCAPPrice", - "outputs": [ - { - "internalType": "uint256", - "name": "price", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "TCAPToken", - "outputs": [ - { - "internalType": "contract TCAP", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - } - ], - "name": "addCollateral", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - } - ], - "name": "burn", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [], - "name": "burnFee", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "collateralContract", - "outputs": [ - { - "internalType": "contract IERC20", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "collateralPriceOracle", - "outputs": [ - { - "internalType": "contract ChainlinkOracle", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "counter", - "outputs": [ - { - "internalType": "uint256", - "name": "_value", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "createVault", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "divisor", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - } - ], - "name": "getFee", - "outputs": [ - { - "internalType": "uint256", - "name": "fee", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract ChainlinkOracle", - "name": "_oracle", - "type": "address" - } - ], - "name": "getOraclePrice", - "outputs": [ - { - "internalType": "uint256", - "name": "price", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "getRoleAdmin", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "index", - "type": "uint256" - } - ], - "name": "getRoleMember", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "getRoleMemberCount", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_id", - "type": "uint256" - } - ], - "name": "getVault", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_vaultId", - "type": "uint256" - } - ], - "name": "getVaultRatio", - "outputs": [ - { - "internalType": "uint256", - "name": "currentRatio", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "grantRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "hasRole", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ + "name": "_owner", + "type": "address" + }, { + "indexed": true, "internalType": "uint256", - "name": "_vaultId", + "name": "_id", "type": "uint256" }, { + "indexed": false, "internalType": "uint256", - "name": "_maxTCAP", + "name": "_amount", "type": "uint256" } ], - "name": "liquidateVault", - "outputs": [], - "stateMutability": "payable", - "type": "function" + "name": "TokensMinted", + "type": "event" }, { - "inputs": [], - "name": "liquidationPenalty", - "outputs": [ + "anonymous": false, + "inputs": [ { - "internalType": "uint256", - "name": "", - "type": "uint256" + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" } ], - "stateMutability": "view", - "type": "function" + "name": "Unpaused", + "type": "event" }, { + "anonymous": false, "inputs": [ { - "internalType": "uint256", - "name": "_vaultId", - "type": "uint256" - } - ], - "name": "liquidationReward", - "outputs": [ + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, { + "indexed": true, "internalType": "uint256", - "name": "rewardCollateral", + "name": "_id", "type": "uint256" } ], - "stateMutability": "view", - "type": "function" + "name": "VaultCreated", + "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": true, "internalType": "uint256", - "name": "_amount", + "name": "_vaultId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "address", + "name": "_liquidator", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_liquidationCollateral", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_reward", "type": "uint256" } ], - "name": "mint", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "name": "VaultLiquidated", + "type": "event" }, { "inputs": [], - "name": "oracleDigits", + "name": "DEFAULT_ADMIN_ROLE", "outputs": [ { - "internalType": "uint256", + "internalType": "bytes32", "name": "", - "type": "uint256" + "type": "bytes32" } ], "stateMutability": "view", @@ -20111,10 +55365,10 @@ }, { "inputs": [], - "name": "owner", + "name": "ETHPriceOracle", "outputs": [ { - "internalType": "address", + "internalType": "contract ChainlinkOracle", "name": "", "type": "address" } @@ -20124,19 +55378,12 @@ }, { "inputs": [], - "name": "pause", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "paused", + "name": "MAX_FEE", "outputs": [ { - "internalType": "bool", + "internalType": "uint256", "name": "", - "type": "bool" + "type": "uint256" } ], "stateMutability": "view", @@ -20144,7 +55391,7 @@ }, { "inputs": [], - "name": "ratio", + "name": "MIN_RATIO", "outputs": [ { "internalType": "uint256", @@ -20156,57 +55403,40 @@ "type": "function" }, { - "inputs": [ - { - "internalType": "address", - "name": "_tokenAddress", - "type": "address" - }, + "inputs": [], + "name": "TCAPPrice", + "outputs": [ { "internalType": "uint256", - "name": "_tokenAmount", + "name": "price", "type": "uint256" } ], - "name": "recoverERC20", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { - "inputs": [ + "inputs": [], + "name": "TCAPToken", + "outputs": [ { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" + "internalType": "contract TCAP", + "name": "", + "type": "address" } ], - "name": "removeCollateral", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "inputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" + "internalType": "uint256", + "name": "_amount", + "type": "uint256" } ], - "name": "renounceRole", + "name": "addCollateral", "outputs": [], "stateMutability": "nonpayable", "type": "function" @@ -20219,30 +55449,18 @@ "type": "uint256" } ], - "name": "requiredCollateral", - "outputs": [ - { - "internalType": "uint256", - "name": "collateral", - "type": "uint256" - } - ], - "stateMutability": "view", + "name": "burn", + "outputs": [], + "stateMutability": "payable", "type": "function" }, { - "inputs": [ - { - "internalType": "uint256", - "name": "_vaultId", - "type": "uint256" - } - ], - "name": "requiredLiquidationTCAP", + "inputs": [], + "name": "burnFee", "outputs": [ { "internalType": "uint256", - "name": "amount", + "name": "", "type": "uint256" } ], @@ -20250,29 +55468,24 @@ "type": "function" }, { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, + "inputs": [], + "name": "collateralContract", + "outputs": [ { - "internalType": "address", - "name": "account", + "internalType": "contract IERC20", + "name": "", "type": "address" } ], - "name": "revokeRole", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "inputs": [], - "name": "rewardHandler", + "name": "collateralPriceOracle", "outputs": [ { - "internalType": "contract IRewardHandler", + "internalType": "contract ChainlinkOracle", "name": "", "type": "address" } @@ -20281,84 +55494,90 @@ "type": "function" }, { - "inputs": [ + "inputs": [], + "name": "counter", + "outputs": [ { "internalType": "uint256", - "name": "_burnFee", + "name": "_value", "type": "uint256" } ], - "name": "setBurnFee", + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "createVault", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [ + "inputs": [], + "name": "divisor", + "outputs": [ { "internalType": "uint256", - "name": "_liquidationPenalty", + "name": "", "type": "uint256" } ], - "name": "setLiquidationPenalty", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", - "name": "_ratio", + "name": "_amount", "type": "uint256" } ], - "name": "setRatio", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ + "name": "getFee", + "outputs": [ { - "internalType": "address", - "name": "_treasury", - "type": "address" + "internalType": "uint256", + "name": "fee", + "type": "uint256" } ], - "name": "setTreasury", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "inputs": [ { - "internalType": "bytes4", - "name": "_interfaceId", - "type": "bytes4" + "internalType": "contract ChainlinkOracle", + "name": "_oracle", + "type": "address" } ], - "name": "supportsInterface", + "name": "getOraclePrice", "outputs": [ { - "internalType": "bool", - "name": "", - "type": "bool" + "internalType": "uint256", + "name": "price", + "type": "uint256" } ], - "stateMutability": "pure", + "stateMutability": "view", "type": "function" }, { - "inputs": [], - "name": "tcapOracle", + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", "outputs": [ { - "internalType": "contract ChainlinkOracle", + "internalType": "bytes32", "name": "", - "type": "address" + "type": "bytes32" } ], "stateMutability": "view", @@ -20367,19 +55586,17 @@ { "inputs": [ { - "internalType": "address", - "name": "newOwner", - "type": "address" + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" } ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "treasury", + "name": "getRoleMember", "outputs": [ { "internalType": "address", @@ -20390,22 +55607,15 @@ "stateMutability": "view", "type": "function" }, - { - "inputs": [], - "name": "unpause", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, { "inputs": [ { - "internalType": "address", - "name": "", - "type": "address" + "internalType": "bytes32", + "name": "role", + "type": "bytes32" } ], - "name": "userToVault", + "name": "getRoleMemberCount", "outputs": [ { "internalType": "uint256", @@ -20420,234 +55630,118 @@ "inputs": [ { "internalType": "uint256", - "name": "", + "name": "_id", "type": "uint256" } ], - "name": "vaults", + "name": "getVault", "outputs": [ { "internalType": "uint256", - "name": "Id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "Collateral", + "name": "", "type": "uint256" }, { "internalType": "uint256", - "name": "Debt", + "name": "", "type": "uint256" }, { "internalType": "address", - "name": "Owner", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - } - ] - }, - "Ctx": { - "address": "0xAa715DbD2ED909B7B7727dC864F3B78276D14A19", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "address", - "name": "minter_", + "name": "", "type": "address" }, { "internalType": "uint256", - "name": "mintingAllowedAfter_", + "name": "", "type": "uint256" } ], - "stateMutability": "nonpayable", - "type": "constructor" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, "internalType": "uint256", - "name": "amount", + "name": "_vaultId", "type": "uint256" } ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "delegator", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "fromDelegate", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "toDelegate", - "type": "address" - } - ], - "name": "DelegateChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "delegate", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "previousBalance", - "type": "uint256" - }, + "name": "getVaultRatio", + "outputs": [ { - "indexed": false, "internalType": "uint256", - "name": "newBalance", + "name": "currentRatio", "type": "uint256" } ], - "name": "DelegateVotesChanged", - "type": "event" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": false, - "internalType": "address", - "name": "minter", - "type": "address" + "internalType": "bytes32", + "name": "role", + "type": "bytes32" }, { - "indexed": false, "internalType": "address", - "name": "newMinter", + "name": "account", "type": "address" } ], - "name": "MinterChanged", - "type": "event" + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" + "internalType": "bytes32", + "name": "role", + "type": "bytes32" }, { - "indexed": true, "internalType": "address", - "name": "to", + "name": "account", "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" } ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [], - "name": "DELEGATION_TYPEHASH", + "name": "hasRole", "outputs": [ { - "internalType": "bytes32", + "internalType": "bool", "name": "", - "type": "bytes32" + "type": "bool" } ], "stateMutability": "view", "type": "function" }, { - "inputs": [], - "name": "DOMAIN_TYPEHASH", - "outputs": [ + "inputs": [ { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "PERMIT_TYPEHASH", - "outputs": [ + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + }, { - "internalType": "bytes32", - "name": "", - "type": "bytes32" + "internalType": "uint256", + "name": "_maxTCAP", + "type": "uint256" } ], - "stateMutability": "view", + "name": "liquidateVault", + "outputs": [], + "stateMutability": "payable", "type": "function" }, { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "allowance", + "inputs": [], + "name": "liquidationPenalty", "outputs": [ { "internalType": "uint256", @@ -20660,37 +55754,39 @@ }, { "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, { "internalType": "uint256", - "name": "rawAmount", + "name": "_vaultId", "type": "uint256" } ], - "name": "approve", + "name": "liquidationReward", "outputs": [ { - "internalType": "bool", - "name": "", - "type": "bool" + "internalType": "uint256", + "name": "rewardCollateral", + "type": "uint256" } ], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "inputs": [ { - "internalType": "address", - "name": "account", - "type": "address" + "internalType": "uint256", + "name": "_amount", + "type": "uint256" } ], - "name": "balanceOf", + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "oracleDigits", "outputs": [ { "internalType": "uint256", @@ -20702,29 +55798,33 @@ "type": "function" }, { - "inputs": [ + "inputs": [], + "name": "owner", + "outputs": [ { "internalType": "address", "name": "", "type": "address" - }, - { - "internalType": "uint32", - "name": "", - "type": "uint32" } ], - "name": "checkpoints", + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "pause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "paused", "outputs": [ { - "internalType": "uint32", - "name": "fromBlock", - "type": "uint32" - }, - { - "internalType": "uint96", - "name": "votes", - "type": "uint96" + "internalType": "bool", + "name": "", + "type": "bool" } ], "stateMutability": "view", @@ -20732,12 +55832,12 @@ }, { "inputs": [], - "name": "decimals", + "name": "ratio", "outputs": [ { - "internalType": "uint8", + "internalType": "uint256", "name": "", - "type": "uint8" + "type": "uint256" } ], "stateMutability": "view", @@ -20747,73 +55847,54 @@ "inputs": [ { "internalType": "address", - "name": "spender", + "name": "_tokenAddress", "type": "address" }, { "internalType": "uint256", - "name": "subtractedValue", + "name": "_tokenAmount", "type": "uint256" } ], - "name": "decreaseAllowance", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], + "name": "recoverERC20", + "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { - "internalType": "address", - "name": "delegatee", - "type": "address" + "internalType": "uint256", + "name": "_amount", + "type": "uint256" } ], - "name": "delegate", + "name": "removeCollateral", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ - { - "internalType": "address", - "name": "delegatee", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expiry", - "type": "uint256" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, { "internalType": "bytes32", - "name": "r", + "name": "role", "type": "bytes32" }, { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" + "internalType": "address", + "name": "account", + "type": "address" } ], - "name": "delegateBySig", + "name": "renounceRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" @@ -20821,17 +55902,17 @@ { "inputs": [ { - "internalType": "address", - "name": "", - "type": "address" + "internalType": "uint256", + "name": "_amount", + "type": "uint256" } ], - "name": "delegates", + "name": "requiredCollateral", "outputs": [ { - "internalType": "address", - "name": "", - "type": "address" + "internalType": "uint256", + "name": "collateral", + "type": "uint256" } ], "stateMutability": "view", @@ -20840,17 +55921,17 @@ { "inputs": [ { - "internalType": "address", - "name": "account", - "type": "address" + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" } ], - "name": "getCurrentVotes", + "name": "requiredLiquidationTCAP", "outputs": [ { - "internalType": "uint96", - "name": "", - "type": "uint96" + "internalType": "uint256", + "name": "amount", + "type": "uint256" } ], "stateMutability": "view", @@ -20858,23 +55939,30 @@ }, { "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, { "internalType": "address", "name": "account", "type": "address" - }, - { - "internalType": "uint256", - "name": "blockNumber", - "type": "uint256" } ], - "name": "getPriorVotes", + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "rewardHandler", "outputs": [ { - "internalType": "uint96", + "internalType": "contract IRewardHandler", "name": "", - "type": "uint96" + "type": "address" } ], "stateMutability": "view", @@ -20882,78 +55970,81 @@ }, { "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, { "internalType": "uint256", - "name": "addedValue", + "name": "_burnFee", "type": "uint256" } ], - "name": "increaseAllowance", - "outputs": [ + "name": "setBurnFee", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ { - "internalType": "bool", - "name": "", - "type": "bool" + "internalType": "uint256", + "name": "_liquidationPenalty", + "type": "uint256" } ], + "name": "setLiquidationPenalty", + "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [], - "name": "minimumTimeBetweenMints", - "outputs": [ + "inputs": [ { - "internalType": "uint32", - "name": "", - "type": "uint32" + "internalType": "uint256", + "name": "_ratio", + "type": "uint256" } ], - "stateMutability": "view", + "name": "setRatio", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", - "name": "dst", + "name": "_treasury", "type": "address" - }, - { - "internalType": "uint256", - "name": "rawAmount", - "type": "uint256" } ], - "name": "mint", + "name": "setTreasury", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [], - "name": "mintCap", + "inputs": [ + { + "internalType": "bytes4", + "name": "_interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", "outputs": [ { - "internalType": "uint8", + "internalType": "bool", "name": "", - "type": "uint8" + "type": "bool" } ], - "stateMutability": "view", + "stateMutability": "pure", "type": "function" }, { "inputs": [], - "name": "minter", + "name": "tcapOracle", "outputs": [ { - "internalType": "address", + "internalType": "contract ChainlinkOracle", "name": "", "type": "address" } @@ -20962,31 +56053,38 @@ "type": "function" }, { - "inputs": [], - "name": "mintingAllowedAfter", - "outputs": [ + "inputs": [ { - "internalType": "uint256", - "name": "", - "type": "uint256" + "internalType": "address", + "name": "newOwner", + "type": "address" } ], - "stateMutability": "view", + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], - "name": "name", + "name": "treasury", "outputs": [ { - "internalType": "string", + "internalType": "address", "name": "", - "type": "string" + "type": "address" } ], "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "unpause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [ { @@ -20995,7 +56093,7 @@ "type": "address" } ], - "name": "nonces", + "name": "userToVault", "outputs": [ { "internalType": "uint256", @@ -21009,190 +56107,155 @@ { "inputs": [ { - "internalType": "address", + "internalType": "uint256", "name": "", - "type": "address" + "type": "uint256" } ], - "name": "numCheckpoints", + "name": "vaults", "outputs": [ { - "internalType": "uint32", - "name": "", - "type": "uint32" + "internalType": "uint256", + "name": "Id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "Collateral", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "Debt", + "type": "uint256" + }, + { + "internalType": "address", + "name": "Owner", + "type": "address" } ], "stateMutability": "view", "type": "function" - }, + } + ] + }, + "Ctx": { + "address": "0xa400D66cE877f572c31Bb5483f17Fee4328da468", + "abi": [ { "inputs": [ { "internalType": "address", - "name": "owner", + "name": "account", "type": "address" }, { "internalType": "address", - "name": "spender", + "name": "minter_", "type": "address" }, { "internalType": "uint256", - "name": "rawAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "deadline", + "name": "mintingAllowedAfter_", "type": "uint256" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" } ], - "name": "permit", - "outputs": [], "stateMutability": "nonpayable", - "type": "function" + "type": "constructor" }, { + "anonymous": false, "inputs": [ { + "indexed": true, "internalType": "address", - "name": "minter_", + "name": "owner", "type": "address" - } - ], - "name": "setMinter", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ + }, { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, { + "indexed": false, "internalType": "uint256", - "name": "", + "name": "amount", "type": "uint256" } ], - "stateMutability": "view", - "type": "function" + "name": "Approval", + "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": true, "internalType": "address", - "name": "dst", + "name": "delegator", "type": "address" }, { - "internalType": "uint256", - "name": "rawAmount", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ + "indexed": true, + "internalType": "address", + "name": "fromDelegate", + "type": "address" + }, { - "internalType": "bool", - "name": "", - "type": "bool" + "indexed": true, + "internalType": "address", + "name": "toDelegate", + "type": "address" } ], - "stateMutability": "nonpayable", - "type": "function" + "name": "DelegateChanged", + "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": true, "internalType": "address", - "name": "src", + "name": "delegate", "type": "address" }, { - "internalType": "address", - "name": "dst", - "type": "address" + "indexed": false, + "internalType": "uint256", + "name": "previousBalance", + "type": "uint256" }, { + "indexed": false, "internalType": "uint256", - "name": "rawAmount", + "name": "newBalance", "type": "uint256" } ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ] - }, - "DAI": { - "address": "0x118a4238E4086FAE2621D0336C0E6cdC1257BE82", - "abi": [ - { - "inputs": [], - "stateMutability": "nonpayable", - "type": "constructor" + "name": "DelegateVotesChanged", + "type": "event" }, { "anonymous": false, "inputs": [ { - "indexed": true, + "indexed": false, "internalType": "address", - "name": "owner", + "name": "minter", "type": "address" }, { - "indexed": true, + "indexed": false, "internalType": "address", - "name": "spender", + "name": "newMinter", "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" } ], - "name": "Approval", + "name": "MinterChanged", "type": "event" }, { @@ -21213,18 +56276,57 @@ { "indexed": false, "internalType": "uint256", - "name": "value", + "name": "amount", "type": "uint256" } ], "name": "Transfer", "type": "event" }, + { + "inputs": [], + "name": "DELEGATION_TYPEHASH", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "DOMAIN_TYPEHASH", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "PERMIT_TYPEHASH", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { "internalType": "address", - "name": "owner", + "name": "account", "type": "address" }, { @@ -21253,7 +56355,7 @@ }, { "internalType": "uint256", - "name": "amount", + "name": "rawAmount", "type": "uint256" } ], @@ -21291,18 +56393,29 @@ "inputs": [ { "internalType": "address", - "name": "_account", + "name": "", "type": "address" }, { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" + "internalType": "uint32", + "name": "", + "type": "uint32" + } + ], + "name": "checkpoints", + "outputs": [ + { + "internalType": "uint32", + "name": "fromBlock", + "type": "uint32" + }, + { + "internalType": "uint96", + "name": "votes", + "type": "uint96" } ], - "name": "burn", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { @@ -21346,23 +56459,12 @@ "inputs": [ { "internalType": "address", - "name": "spender", + "name": "delegatee", "type": "address" - }, - { - "internalType": "uint256", - "name": "addedValue", - "type": "uint256" - } - ], - "name": "increaseAllowance", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" } ], + "name": "delegate", + "outputs": [], "stateMutability": "nonpayable", "type": "function" }, @@ -21370,54 +56472,73 @@ "inputs": [ { "internalType": "address", - "name": "_account", + "name": "delegatee", "type": "address" }, { "internalType": "uint256", - "name": "_amount", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expiry", "type": "uint256" + }, + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" } ], - "name": "mint", + "name": "delegateBySig", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [], - "name": "name", - "outputs": [ + "inputs": [ { - "internalType": "string", + "internalType": "address", "name": "", - "type": "string" + "type": "address" } ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", + "name": "delegates", "outputs": [ { - "internalType": "string", + "internalType": "address", "name": "", - "type": "string" + "type": "address" } ], "stateMutability": "view", "type": "function" }, { - "inputs": [], - "name": "totalSupply", + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "getCurrentVotes", "outputs": [ { - "internalType": "uint256", + "internalType": "uint96", "name": "", - "type": "uint256" + "type": "uint96" } ], "stateMutability": "view", @@ -21427,45 +56548,40 @@ "inputs": [ { "internalType": "address", - "name": "recipient", + "name": "account", "type": "address" }, { "internalType": "uint256", - "name": "amount", + "name": "blockNumber", "type": "uint256" } ], - "name": "transfer", + "name": "getPriorVotes", "outputs": [ { - "internalType": "bool", + "internalType": "uint96", "name": "", - "type": "bool" + "type": "uint96" } ], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "address", - "name": "recipient", + "name": "spender", "type": "address" }, { "internalType": "uint256", - "name": "amount", + "name": "addedValue", "type": "uint256" } ], - "name": "transferFrom", + "name": "increaseAllowance", "outputs": [ { "internalType": "bool", @@ -21475,50 +56591,46 @@ ], "stateMutability": "nonpayable", "type": "function" - } - ] - }, - "DAIOracle": { - "address": "0xb50365a53EB0d8f214FFD0Cc0F2936BD877B3e17", - "abi": [ + }, { - "inputs": [ + "inputs": [], + "name": "minimumTimeBetweenMints", + "outputs": [ { - "internalType": "address", - "name": "_aggregator", - "type": "address" + "internalType": "uint32", + "name": "", + "type": "uint32" } ], - "stateMutability": "nonpayable", - "type": "constructor" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, "internalType": "address", - "name": "previousOwner", + "name": "dst", "type": "address" }, { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" + "internalType": "uint256", + "name": "rawAmount", + "type": "uint256" } ], - "name": "OwnershipTransferred", - "type": "event" + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { "inputs": [], - "name": "getLatestAnswer", + "name": "mintCap", "outputs": [ { - "internalType": "int256", + "internalType": "uint8", "name": "", - "type": "int256" + "type": "uint8" } ], "stateMutability": "view", @@ -21526,32 +56638,12 @@ }, { "inputs": [], - "name": "getLatestRound", + "name": "minter", "outputs": [ { - "internalType": "uint80", - "name": "", - "type": "uint80" - }, - { - "internalType": "int256", - "name": "", - "type": "int256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint80", + "internalType": "address", "name": "", - "type": "uint80" + "type": "address" } ], "stateMutability": "view", @@ -21559,7 +56651,7 @@ }, { "inputs": [], - "name": "getLatestTimestamp", + "name": "mintingAllowedAfter", "outputs": [ { "internalType": "uint256", @@ -21571,19 +56663,13 @@ "type": "function" }, { - "inputs": [ - { - "internalType": "uint80", - "name": "_id", - "type": "uint80" - } - ], - "name": "getPreviousAnswer", + "inputs": [], + "name": "name", "outputs": [ { - "internalType": "int256", + "internalType": "string", "name": "", - "type": "int256" + "type": "string" } ], "stateMutability": "view", @@ -21592,12 +56678,12 @@ { "inputs": [ { - "internalType": "uint80", - "name": "_id", - "type": "uint80" + "internalType": "address", + "name": "", + "type": "address" } ], - "name": "getPreviousTimestamp", + "name": "nonces", "outputs": [ { "internalType": "uint256", @@ -21611,58 +56697,61 @@ { "inputs": [ { - "internalType": "uint80", - "name": "_id", - "type": "uint80" + "internalType": "address", + "name": "", + "type": "address" } ], - "name": "getRound", + "name": "numCheckpoints", "outputs": [ { - "internalType": "uint80", + "internalType": "uint32", "name": "", - "type": "uint80" + "type": "uint32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" }, { - "internalType": "int256", - "name": "", - "type": "int256" + "internalType": "address", + "name": "spender", + "type": "address" }, { "internalType": "uint256", - "name": "", + "name": "rawAmount", "type": "uint256" }, { "internalType": "uint256", - "name": "", + "name": "deadline", "type": "uint256" }, { - "internalType": "uint80", - "name": "", - "type": "uint80" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, { - "internalType": "address", - "name": "", - "type": "address" + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" } ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", + "name": "permit", "outputs": [], "stateMutability": "nonpayable", "type": "function" @@ -21671,317 +56760,168 @@ "inputs": [ { "internalType": "address", - "name": "_aggregator", + "name": "minter_", "type": "address" } ], - "name": "setReferenceContract", + "name": "setMinter", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", + "inputs": [], + "name": "symbol", "outputs": [ { - "internalType": "bool", + "internalType": "string", "name": "", - "type": "bool" + "type": "string" } ], - "stateMutability": "pure", + "stateMutability": "view", "type": "function" }, { - "inputs": [ + "inputs": [], + "name": "totalSupply", + "outputs": [ { - "internalType": "address", - "name": "newOwner", - "type": "address" + "internalType": "uint256", + "name": "", + "type": "uint256" } ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" - } - ] - }, - "DAIRewardHandler": { - "address": "0x423eDDfAA00fE22945739070BB911AcBF1fDf4D4", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "_owner", - "type": "address" - }, - { - "internalType": "address", - "name": "_rewardsToken", - "type": "address" - }, - { - "internalType": "address", - "name": "_vault", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" }, { - "anonymous": false, "inputs": [ { - "indexed": true, "internalType": "address", - "name": "previousOwner", + "name": "dst", "type": "address" }, { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" + "internalType": "uint256", + "name": "rawAmount", + "type": "uint256" } ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ + "name": "transfer", + "outputs": [ { - "indexed": false, - "internalType": "address", - "name": "account", - "type": "address" + "internalType": "bool", + "name": "", + "type": "bool" } ], - "name": "Paused", - "type": "event" + "stateMutability": "nonpayable", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": false, "internalType": "address", - "name": "token", + "name": "src", "type": "address" }, { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "Recovered", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "reward", - "type": "uint256" - } - ], - "name": "RewardAdded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, "internalType": "address", - "name": "user", + "name": "dst", "type": "address" }, { - "indexed": false, - "internalType": "uint256", - "name": "reward", - "type": "uint256" - } - ], - "name": "RewardPaid", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, "internalType": "uint256", - "name": "newDuration", + "name": "rawAmount", "type": "uint256" } ], - "name": "RewardsDurationUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "previousAdminRole", - "type": "bytes32" - }, + "name": "transferFrom", + "outputs": [ { - "indexed": true, - "internalType": "bytes32", - "name": "newAdminRole", - "type": "bytes32" + "internalType": "bool", + "name": "", + "type": "bool" } ], - "name": "RoleAdminChanged", - "type": "event" - }, + "stateMutability": "nonpayable", + "type": "function" + } + ] + }, + "DAI": { + "address": "0x550d3f16515cD570777c497BE6Babd2b52261851", + "abi": [ { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "RoleGranted", - "type": "event" + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" }, { "anonymous": false, "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, { "indexed": true, "internalType": "address", - "name": "account", + "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "RoleRevoked", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "user", + "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", - "name": "amount", + "name": "value", "type": "uint256" } ], - "name": "Staked", + "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { - "indexed": false, - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "Unpaused", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, { "indexed": true, "internalType": "address", - "name": "user", + "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", - "name": "amount", + "name": "value", "type": "uint256" } ], - "name": "Withdrawn", + "name": "Transfer", "type": "event" }, - { - "inputs": [], - "name": "DEFAULT_ADMIN_ROLE", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, { "inputs": [ { "internalType": "address", - "name": "_account", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", "type": "address" } ], - "name": "balanceOf", + "name": "allowance", "outputs": [ { "internalType": "uint256", @@ -21996,44 +56936,35 @@ "inputs": [ { "internalType": "address", - "name": "_account", + "name": "spender", "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" } ], - "name": "earned", + "name": "approve", "outputs": [ { - "internalType": "uint256", + "internalType": "bool", "name": "", - "type": "uint256" + "type": "bool" } ], - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", - "name": "_staker", + "name": "account", "type": "address" } ], - "name": "exit", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "getReward", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "getRewardForDuration", + "name": "balanceOf", "outputs": [ { "internalType": "uint256", @@ -22048,29 +56979,28 @@ "inputs": [ { "internalType": "address", - "name": "_staker", + "name": "_account", "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" } ], - "name": "getRewardFromVault", + "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "getRoleAdmin", + "inputs": [], + "name": "decimals", "outputs": [ { - "internalType": "bytes32", + "internalType": "uint8", "name": "", - "type": "bytes32" + "type": "uint8" } ], "stateMutability": "view", @@ -22079,83 +57009,77 @@ { "inputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" + "internalType": "address", + "name": "spender", + "type": "address" }, { "internalType": "uint256", - "name": "index", + "name": "subtractedValue", "type": "uint256" } ], - "name": "getRoleMember", + "name": "decreaseAllowance", "outputs": [ { - "internalType": "address", + "internalType": "bool", "name": "", - "type": "address" + "type": "bool" } ], - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "addedValue", + "type": "uint256" } ], - "name": "getRoleMemberCount", + "name": "increaseAllowance", "outputs": [ { - "internalType": "uint256", + "internalType": "bool", "name": "", - "type": "uint256" + "type": "bool" } ], - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, { "internalType": "address", - "name": "account", + "name": "_account", "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" } ], - "name": "grantRole", + "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "hasRole", + "inputs": [], + "name": "name", "outputs": [ { - "internalType": "bool", + "internalType": "string", "name": "", - "type": "bool" + "type": "string" } ], "stateMutability": "view", @@ -22163,12 +57087,12 @@ }, { "inputs": [], - "name": "lastTimeRewardApplicable", + "name": "symbol", "outputs": [ { - "internalType": "uint256", + "internalType": "string", "name": "", - "type": "uint256" + "type": "string" } ], "stateMutability": "view", @@ -22176,7 +57100,7 @@ }, { "inputs": [], - "name": "lastUpdateTime", + "name": "totalSupply", "outputs": [ { "internalType": "uint256", @@ -22190,56 +57114,46 @@ { "inputs": [ { - "internalType": "uint256", - "name": "_a", - "type": "uint256" + "internalType": "address", + "name": "recipient", + "type": "address" }, { "internalType": "uint256", - "name": "_b", + "name": "amount", "type": "uint256" } ], - "name": "min", + "name": "transfer", "outputs": [ { - "internalType": "uint256", + "internalType": "bool", "name": "", - "type": "uint256" + "type": "bool" } ], - "stateMutability": "pure", + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { - "internalType": "uint256", - "name": "_reward", - "type": "uint256" - } - ], - "name": "notifyRewardAmount", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ + "internalType": "address", + "name": "sender", + "type": "address" + }, { "internalType": "address", - "name": "", + "name": "recipient", "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" } ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "paused", + "name": "transferFrom", "outputs": [ { "internalType": "bool", @@ -22247,91 +57161,57 @@ "type": "bool" } ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "periodFinish", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function" - }, + } + ] + }, + "DAIOracle": { + "address": "0x065133208F0b0DB3c1bFD936776CA8D235B1B433", + "abi": [ { "inputs": [ { "internalType": "address", - "name": "_tokenAddress", + "name": "_aggregator", "type": "address" }, - { - "internalType": "uint256", - "name": "_tokenAmount", - "type": "uint256" - } - ], - "name": "recoverERC20", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, { "internalType": "address", - "name": "account", + "name": "_timelock", "type": "address" } ], - "name": "renounceRole", - "outputs": [], "stateMutability": "nonpayable", - "type": "function" + "type": "constructor" }, { + "anonymous": false, "inputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" }, { + "indexed": true, "internalType": "address", - "name": "account", + "name": "newOwner", "type": "address" } ], - "name": "revokeRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "name": "OwnershipTransferred", + "type": "event" }, { "inputs": [], - "name": "rewardPerToken", + "name": "getLatestAnswer", "outputs": [ { - "internalType": "uint256", + "internalType": "int256", "name": "", - "type": "uint256" + "type": "int256" } ], "stateMutability": "view", @@ -22339,44 +57219,32 @@ }, { "inputs": [], - "name": "rewardPerTokenStored", + "name": "getLatestRound", "outputs": [ { - "internalType": "uint256", + "internalType": "uint80", "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "rewardRate", - "outputs": [ + "type": "uint80" + }, { - "internalType": "uint256", + "internalType": "int256", "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ + "type": "int256" + }, { - "internalType": "address", + "internalType": "uint256", "name": "", - "type": "address" - } - ], - "name": "rewards", - "outputs": [ + "type": "uint256" + }, { "internalType": "uint256", "name": "", "type": "uint256" + }, + { + "internalType": "uint80", + "name": "", + "type": "uint80" } ], "stateMutability": "view", @@ -22384,7 +57252,7 @@ }, { "inputs": [], - "name": "rewardsDuration", + "name": "getLatestTimestamp", "outputs": [ { "internalType": "uint256", @@ -22396,52 +57264,33 @@ "type": "function" }, { - "inputs": [], - "name": "rewardsToken", - "outputs": [ + "inputs": [ { - "internalType": "contract IERC20", - "name": "", - "type": "address" + "internalType": "uint80", + "name": "_id", + "type": "uint80" } ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ + "name": "getPreviousAnswer", + "outputs": [ { - "internalType": "uint256", - "name": "_rewardsDuration", - "type": "uint256" + "internalType": "int256", + "name": "", + "type": "int256" } ], - "name": "setRewardsDuration", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "inputs": [ { - "internalType": "address", - "name": "_staker", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" + "internalType": "uint80", + "name": "_id", + "type": "uint80" } ], - "name": "stake", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", + "name": "getPreviousTimestamp", "outputs": [ { "internalType": "uint256", @@ -22455,30 +57304,37 @@ { "inputs": [ { - "internalType": "address", - "name": "newOwner", - "type": "address" + "internalType": "uint80", + "name": "_id", + "type": "uint80" } ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ + "name": "getRound", + "outputs": [ { - "internalType": "address", + "internalType": "uint80", "name": "", - "type": "address" - } - ], - "name": "userRewardPerTokenPaid", - "outputs": [ + "type": "uint80" + }, + { + "internalType": "int256", + "name": "", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, { "internalType": "uint256", "name": "", "type": "uint256" + }, + { + "internalType": "uint80", + "name": "", + "type": "uint80" } ], "stateMutability": "view", @@ -22486,7 +57342,7 @@ }, { "inputs": [], - "name": "vault", + "name": "owner", "outputs": [ { "internalType": "address", @@ -22497,144 +57353,83 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [ { "internalType": "address", - "name": "_staker", + "name": "_aggregator", "type": "address" - }, - { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" } ], - "name": "withdraw", + "name": "setReferenceContract", "outputs": [], "stateMutability": "nonpayable", "type": "function" - } - ] - }, - "DAIVaultHandler": { - "address": "0x7fF4580aD66a3C0F62DDa843674A3811ac062211", - "abi": [ + }, { "inputs": [ { - "internalType": "contract Orchestrator", - "name": "_orchestrator", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_divisor", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_ratio", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_burnFee", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_liquidationPenalty", - "type": "uint256" - }, - { - "internalType": "address", - "name": "_tcapOracle", - "type": "address" - }, - { - "internalType": "contract TCAP", - "name": "_tcapAddress", - "type": "address" - }, - { - "internalType": "address", - "name": "_collateralAddress", - "type": "address" - }, - { - "internalType": "address", - "name": "_collateralOracle", - "type": "address" - }, - { - "internalType": "address", - "name": "_ethOracle", - "type": "address" - }, - { - "internalType": "address", - "name": "_rewardHandler", - "type": "address" - }, + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ { - "internalType": "address", - "name": "_treasury", - "type": "address" + "internalType": "bool", + "name": "", + "type": "bool" } ], - "stateMutability": "nonpayable", - "type": "constructor" + "stateMutability": "pure", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, "internalType": "address", - "name": "_owner", + "name": "newOwner", "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "_id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_amount", - "type": "uint256" } ], - "name": "CollateralAdded", - "type": "event" - }, + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ] + }, + "DAIRewardHandler": { + "address": "0x0B3e7f177913452F8C7281Ebd5f4DE80849d3D54", + "abi": [ { - "anonymous": false, "inputs": [ { - "indexed": true, "internalType": "address", "name": "_owner", "type": "address" }, { - "indexed": true, - "internalType": "uint256", - "name": "_id", - "type": "uint256" + "internalType": "address", + "name": "_rewardsToken", + "type": "address" }, { - "indexed": false, - "internalType": "uint256", - "name": "_amount", - "type": "uint256" + "internalType": "address", + "name": "_vault", + "type": "address" } ], - "name": "CollateralRemoved", - "type": "event" + "stateMutability": "nonpayable", + "type": "constructor" }, { "anonymous": false, @@ -22642,74 +57437,62 @@ { "indexed": true, "internalType": "address", - "name": "_owner", + "name": "previousOwner", "type": "address" }, { - "indexed": false, - "internalType": "uint256", - "name": "_burnFee", - "type": "uint256" + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" } ], - "name": "NewBurnFee", + "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { - "indexed": true, + "indexed": false, "internalType": "address", - "name": "_owner", + "name": "account", "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_liquidationPenalty", - "type": "uint256" } ], - "name": "NewLiquidationPenalty", + "name": "Paused", "type": "event" }, { "anonymous": false, "inputs": [ { - "indexed": true, + "indexed": false, "internalType": "address", - "name": "_owner", + "name": "token", "type": "address" }, { "indexed": false, "internalType": "uint256", - "name": "_ratio", + "name": "amount", "type": "uint256" } ], - "name": "NewRatio", + "name": "Recovered", "type": "event" }, { "anonymous": false, "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_owner", - "type": "address" - }, { "indexed": false, - "internalType": "address", - "name": "_tresury", - "type": "address" + "internalType": "uint256", + "name": "reward", + "type": "uint256" } ], - "name": "NewTreasury", + "name": "RewardAdded", "type": "event" }, { @@ -22718,49 +57501,30 @@ { "indexed": true, "internalType": "address", - "name": "previousOwner", + "name": "user", "type": "address" }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ { "indexed": false, - "internalType": "address", - "name": "account", - "type": "address" + "internalType": "uint256", + "name": "reward", + "type": "uint256" } ], - "name": "Paused", + "name": "RewardPaid", "type": "event" }, { "anonymous": false, "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "_token", - "type": "address" - }, { "indexed": false, "internalType": "uint256", - "name": "_amount", + "name": "newDuration", "type": "uint256" } ], - "name": "Recovered", + "name": "RewardsDurationUpdated", "type": "event" }, { @@ -22844,134 +57608,247 @@ { "indexed": true, "internalType": "address", - "name": "_owner", + "name": "user", "type": "address" }, - { - "indexed": true, - "internalType": "uint256", - "name": "_id", - "type": "uint256" - }, { "indexed": false, "internalType": "uint256", - "name": "_amount", + "name": "amount", "type": "uint256" } ], - "name": "TokensBurned", + "name": "Staked", "type": "event" }, { "anonymous": false, "inputs": [ { - "indexed": true, + "indexed": false, "internalType": "address", - "name": "_owner", + "name": "account", "type": "address" - }, + } + ], + "name": "Unpaused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ { "indexed": true, - "internalType": "uint256", - "name": "_id", - "type": "uint256" + "internalType": "address", + "name": "user", + "type": "address" }, { "indexed": false, "internalType": "uint256", - "name": "_amount", + "name": "amount", "type": "uint256" } ], - "name": "TokensMinted", + "name": "Withdrawn", "type": "event" }, { - "anonymous": false, + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { "inputs": [ { - "indexed": false, "internalType": "address", - "name": "account", + "name": "_account", "type": "address" } ], - "name": "Unpaused", - "type": "event" + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, "internalType": "address", - "name": "_owner", + "name": "_account", "type": "address" - }, + } + ], + "name": "earned", + "outputs": [ { - "indexed": true, "internalType": "uint256", - "name": "_id", + "name": "", "type": "uint256" } ], - "name": "VaultCreated", - "type": "event" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, + "internalType": "address", + "name": "_staker", + "type": "address" + } + ], + "name": "exit", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "getReward", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "getRewardForDuration", + "outputs": [ + { "internalType": "uint256", - "name": "_vaultId", + "name": "", "type": "uint256" - }, + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ { - "indexed": true, "internalType": "address", - "name": "_liquidator", + "name": "_staker", "type": "address" + } + ], + "name": "getRewardFromVault", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" }, { - "indexed": false, "internalType": "uint256", - "name": "_liquidationCollateral", + "name": "index", "type": "uint256" - }, + } + ], + "name": "getRoleMember", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleMemberCount", + "outputs": [ { - "indexed": false, "internalType": "uint256", - "name": "_reward", + "name": "", "type": "uint256" } ], - "name": "VaultLiquidated", - "type": "event" + "stateMutability": "view", + "type": "function" }, { - "inputs": [], - "name": "DEFAULT_ADMIN_ROLE", - "outputs": [ + "inputs": [ { "internalType": "bytes32", - "name": "", + "name": "role", "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" } ], - "stateMutability": "view", + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [], - "name": "ETHPriceOracle", + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", "outputs": [ { - "internalType": "contract ChainlinkOracle", + "internalType": "bool", "name": "", - "type": "address" + "type": "bool" } ], "stateMutability": "view", @@ -22979,7 +57856,7 @@ }, { "inputs": [], - "name": "MAX_FEE", + "name": "lastTimeRewardApplicable", "outputs": [ { "internalType": "uint256", @@ -22992,7 +57869,7 @@ }, { "inputs": [], - "name": "MIN_RATIO", + "name": "lastUpdateTime", "outputs": [ { "internalType": "uint256", @@ -23004,24 +57881,48 @@ "type": "function" }, { - "inputs": [], - "name": "TCAPPrice", + "inputs": [ + { + "internalType": "uint256", + "name": "_a", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_b", + "type": "uint256" + } + ], + "name": "min", "outputs": [ { "internalType": "uint256", - "name": "price", + "name": "", "type": "uint256" } ], - "stateMutability": "view", + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_reward", + "type": "uint256" + } + ], + "name": "notifyRewardAmount", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], - "name": "TCAPToken", + "name": "owner", "outputs": [ { - "internalType": "contract TCAP", + "internalType": "address", "name": "", "type": "address" } @@ -23029,35 +57930,109 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "paused", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "periodFinish", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ + { + "internalType": "address", + "name": "_tokenAddress", + "type": "address" + }, { "internalType": "uint256", - "name": "_amount", + "name": "_tokenAmount", "type": "uint256" } ], - "name": "addCollateral", + "name": "recoverERC20", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "renounceRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "rewardPerToken", + "outputs": [ { "internalType": "uint256", - "name": "_amount", + "name": "", "type": "uint256" } ], - "name": "burn", - "outputs": [], - "stateMutability": "payable", + "stateMutability": "view", "type": "function" }, { "inputs": [], - "name": "burnFee", + "name": "rewardPerTokenStored", "outputs": [ { "internalType": "uint256", @@ -23070,12 +58045,44 @@ }, { "inputs": [], - "name": "collateralContract", + "name": "rewardRate", "outputs": [ { - "internalType": "contract IERC20", + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "rewards", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "rewardsDuration", + "outputs": [ + { + "internalType": "uint256", "name": "", - "type": "address" + "type": "uint256" } ], "stateMutability": "view", @@ -23083,10 +58090,10 @@ }, { "inputs": [], - "name": "collateralPriceOracle", + "name": "rewardsToken", "outputs": [ { - "internalType": "contract ChainlinkOracle", + "internalType": "contract IERC20", "name": "", "type": "address" } @@ -23095,28 +58102,39 @@ "type": "function" }, { - "inputs": [], - "name": "counter", - "outputs": [ + "inputs": [ { "internalType": "uint256", - "name": "_value", + "name": "_rewardsDuration", "type": "uint256" } ], - "stateMutability": "view", + "name": "setRewardsDuration", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [], - "name": "createVault", + "inputs": [ + { + "internalType": "address", + "name": "_staker", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "stake", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], - "name": "divisor", + "name": "totalSupply", "outputs": [ { "internalType": "uint256", @@ -23130,35 +58148,29 @@ { "inputs": [ { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - } - ], - "name": "getFee", - "outputs": [ - { - "internalType": "uint256", - "name": "fee", - "type": "uint256" + "internalType": "address", + "name": "newOwner", + "type": "address" } ], - "stateMutability": "view", + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { - "internalType": "contract ChainlinkOracle", - "name": "_oracle", + "internalType": "address", + "name": "", "type": "address" } ], - "name": "getOraclePrice", + "name": "userRewardPerTokenPaid", "outputs": [ { "internalType": "uint256", - "name": "price", + "name": "", "type": "uint256" } ], @@ -23166,19 +58178,13 @@ "type": "function" }, { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "getRoleAdmin", + "inputs": [], + "name": "vault", "outputs": [ { - "internalType": "bytes32", + "internalType": "address", "name": "", - "type": "bytes32" + "type": "address" } ], "stateMutability": "view", @@ -23187,351 +58193,503 @@ { "inputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" + "internalType": "address", + "name": "_staker", + "type": "address" }, { "internalType": "uint256", - "name": "index", + "name": "_amount", "type": "uint256" } ], - "name": "getRoleMember", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", + "name": "withdraw", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" - }, + } + ] + }, + "DAIVaultHandler": { + "address": "0x65a2B1B48b7997a50947E83aaf58E29a54a0B735", + "abi": [ { "inputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "getRoleMemberCount", - "outputs": [ + "internalType": "contract Orchestrator", + "name": "_orchestrator", + "type": "address" + }, { "internalType": "uint256", - "name": "", + "name": "_divisor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_ratio", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_burnFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_liquidationPenalty", "type": "uint256" + }, + { + "internalType": "address", + "name": "_tcapOracle", + "type": "address" + }, + { + "internalType": "contract TCAP", + "name": "_tcapAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_collateralAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_collateralOracle", + "type": "address" + }, + { + "internalType": "address", + "name": "_ethOracle", + "type": "address" + }, + { + "internalType": "address", + "name": "_rewardHandler", + "type": "address" + }, + { + "internalType": "address", + "name": "_treasury", + "type": "address" } ], - "stateMutability": "view", - "type": "function" + "stateMutability": "nonpayable", + "type": "constructor" }, { + "anonymous": false, "inputs": [ { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, "internalType": "uint256", "name": "_id", "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" } ], - "name": "getVault", - "outputs": [ + "name": "CollateralAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, { + "indexed": true, "internalType": "uint256", - "name": "", + "name": "_id", "type": "uint256" }, { + "indexed": false, "internalType": "uint256", - "name": "", + "name": "_amount", "type": "uint256" - }, + } + ], + "name": "CollateralRemoved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ { + "indexed": true, "internalType": "address", - "name": "", + "name": "_owner", "type": "address" }, { + "indexed": false, "internalType": "uint256", - "name": "", + "name": "_burnFee", "type": "uint256" } ], - "stateMutability": "view", - "type": "function" + "name": "NewBurnFee", + "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, "internalType": "uint256", - "name": "_vaultId", + "name": "_liquidationPenalty", "type": "uint256" } ], - "name": "getVaultRatio", - "outputs": [ + "name": "NewLiquidationPenalty", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, { + "indexed": false, "internalType": "uint256", - "name": "currentRatio", + "name": "_ratio", "type": "uint256" } ], - "stateMutability": "view", - "type": "function" + "name": "NewRatio", + "type": "event" }, { + "anonymous": false, "inputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" }, { + "indexed": false, "internalType": "address", - "name": "account", + "name": "_tresury", "type": "address" } ], - "name": "grantRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "name": "NewTreasury", + "type": "event" }, { + "anonymous": false, "inputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" }, { + "indexed": true, "internalType": "address", - "name": "account", + "name": "newOwner", "type": "address" } ], - "name": "hasRole", - "outputs": [ + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ { - "internalType": "bool", - "name": "", - "type": "bool" + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" } ], - "stateMutability": "view", - "type": "function" + "name": "Paused", + "type": "event" }, { + "anonymous": false, "inputs": [ { - "internalType": "uint256", - "name": "_vaultId", - "type": "uint256" + "indexed": false, + "internalType": "address", + "name": "_token", + "type": "address" }, { + "indexed": false, "internalType": "uint256", - "name": "_maxTCAP", + "name": "_amount", "type": "uint256" } ], - "name": "liquidateVault", - "outputs": [], - "stateMutability": "payable", - "type": "function" + "name": "Recovered", + "type": "event" }, { - "inputs": [], - "name": "liquidationPenalty", - "outputs": [ + "anonymous": false, + "inputs": [ { - "internalType": "uint256", - "name": "", - "type": "uint256" + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" } ], - "stateMutability": "view", - "type": "function" + "name": "RoleAdminChanged", + "type": "event" }, { + "anonymous": false, "inputs": [ { - "internalType": "uint256", - "name": "_vaultId", - "type": "uint256" + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" } ], - "name": "liquidationReward", - "outputs": [ + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ { - "internalType": "uint256", - "name": "rewardCollateral", - "type": "uint256" + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" } ], - "stateMutability": "view", - "type": "function" + "name": "RoleRevoked", + "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, "internalType": "uint256", "name": "_amount", "type": "uint256" } ], - "name": "mint", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "name": "TokensBurned", + "type": "event" }, { - "inputs": [], - "name": "oracleDigits", - "outputs": [ + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, { + "indexed": true, "internalType": "uint256", - "name": "", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", "type": "uint256" } ], - "stateMutability": "view", - "type": "function" + "name": "TokensMinted", + "type": "event" }, { - "inputs": [], - "name": "owner", - "outputs": [ + "anonymous": false, + "inputs": [ { + "indexed": false, "internalType": "address", - "name": "", + "name": "account", "type": "address" } ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "pause", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "name": "Unpaused", + "type": "event" }, { - "inputs": [], - "name": "paused", - "outputs": [ + "anonymous": false, + "inputs": [ { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "ratio", - "outputs": [ + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, { + "indexed": true, "internalType": "uint256", - "name": "", + "name": "_id", "type": "uint256" } ], - "stateMutability": "view", - "type": "function" + "name": "VaultCreated", + "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": true, + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + }, + { + "indexed": true, "internalType": "address", - "name": "_tokenAddress", + "name": "_liquidator", "type": "address" }, { + "indexed": false, "internalType": "uint256", - "name": "_tokenAmount", + "name": "_liquidationCollateral", "type": "uint256" - } - ], - "name": "recoverERC20", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ + }, { + "indexed": false, "internalType": "uint256", - "name": "_amount", + "name": "_reward", "type": "uint256" } ], - "name": "removeCollateral", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "name": "VaultLiquidated", + "type": "event" }, { "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ { "internalType": "bytes32", - "name": "role", + "name": "", "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" } ], - "name": "renounceRole", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { - "inputs": [ - { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - } - ], - "name": "requiredCollateral", + "inputs": [], + "name": "ETHPriceOracle", "outputs": [ { - "internalType": "uint256", - "name": "collateral", - "type": "uint256" + "internalType": "contract ChainlinkOracle", + "name": "", + "type": "address" } ], "stateMutability": "view", "type": "function" }, { - "inputs": [ + "inputs": [], + "name": "MAX_FEE", + "outputs": [ { "internalType": "uint256", - "name": "_vaultId", + "name": "", "type": "uint256" } ], - "name": "requiredLiquidationTCAP", + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MIN_RATIO", "outputs": [ { "internalType": "uint256", - "name": "amount", + "name": "", "type": "uint256" } ], @@ -23539,29 +58697,24 @@ "type": "function" }, { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, + "inputs": [], + "name": "TCAPPrice", + "outputs": [ { - "internalType": "address", - "name": "account", - "type": "address" + "internalType": "uint256", + "name": "price", + "type": "uint256" } ], - "name": "revokeRole", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "inputs": [], - "name": "rewardHandler", + "name": "TCAPToken", "outputs": [ { - "internalType": "contract IRewardHandler", + "internalType": "contract TCAP", "name": "", "type": "address" } @@ -23573,11 +58726,11 @@ "inputs": [ { "internalType": "uint256", - "name": "_burnFee", + "name": "_amount", "type": "uint256" } ], - "name": "setBurnFee", + "name": "addCollateral", "outputs": [], "stateMutability": "nonpayable", "type": "function" @@ -23586,63 +58739,44 @@ "inputs": [ { "internalType": "uint256", - "name": "_liquidationPenalty", + "name": "_amount", "type": "uint256" } ], - "name": "setLiquidationPenalty", + "name": "burn", "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "payable", "type": "function" }, { - "inputs": [ + "inputs": [], + "name": "burnFee", + "outputs": [ { "internalType": "uint256", - "name": "_ratio", + "name": "", "type": "uint256" } ], - "name": "setRatio", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_treasury", - "type": "address" - } - ], - "name": "setTreasury", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { - "inputs": [ - { - "internalType": "bytes4", - "name": "_interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", + "inputs": [], + "name": "collateralContract", "outputs": [ { - "internalType": "bool", + "internalType": "contract IERC20", "name": "", - "type": "bool" + "type": "address" } ], - "stateMutability": "pure", + "stateMutability": "view", "type": "function" }, { "inputs": [], - "name": "tcapOracle", + "name": "collateralPriceOracle", "outputs": [ { "internalType": "contract ChainlinkOracle", @@ -23653,27 +58787,14 @@ "stateMutability": "view", "type": "function" }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, { "inputs": [], - "name": "treasury", + "name": "counter", "outputs": [ { - "internalType": "address", - "name": "", - "type": "address" + "internalType": "uint256", + "name": "_value", + "type": "uint256" } ], "stateMutability": "view", @@ -23681,20 +58802,14 @@ }, { "inputs": [], - "name": "unpause", + "name": "createVault", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "userToVault", + "inputs": [], + "name": "divisor", "outputs": [ { "internalType": "uint256", @@ -23709,226 +58824,149 @@ "inputs": [ { "internalType": "uint256", - "name": "", + "name": "_amount", "type": "uint256" } ], - "name": "vaults", + "name": "getFee", "outputs": [ { "internalType": "uint256", - "name": "Id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "Collateral", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "Debt", + "name": "fee", "type": "uint256" - }, - { - "internalType": "address", - "name": "Owner", - "type": "address" } ], "stateMutability": "view", "type": "function" - } - ] - }, - "DelegatorFactory": { - "address": "0x0aafdB19021a3a87A510dD4db7dce62318b49Cd1", - "abi": [ + }, { "inputs": [ { - "internalType": "address", - "name": "stakingToken_", - "type": "address" - }, - { - "internalType": "address", - "name": "rewardsToken_", + "internalType": "contract ChainlinkOracle", + "name": "_oracle", "type": "address" - }, + } + ], + "name": "getOraclePrice", + "outputs": [ { "internalType": "uint256", - "name": "waitTime_", + "name": "price", "type": "uint256" - }, - { - "internalType": "address", - "name": "timelock_", - "type": "address" } ], - "stateMutability": "nonpayable", - "type": "constructor" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "address", - "name": "delegator", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "delegatee", - "type": "address" + "internalType": "bytes32", + "name": "role", + "type": "bytes32" } ], - "name": "DelegatorCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, + "name": "getRoleAdmin", + "outputs": [ { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" + "internalType": "bytes32", + "name": "", + "type": "bytes32" } ], - "name": "OwnershipTransferred", - "type": "event" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": false, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { "internalType": "uint256", - "name": "reward", + "name": "index", "type": "uint256" } ], - "name": "RewardAdded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ + "name": "getRoleMember", + "outputs": [ { - "indexed": true, "internalType": "address", - "name": "user", + "name": "", "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "reward", - "type": "uint256" } ], - "name": "RewardPaid", - "type": "event" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": false, - "internalType": "uint256", - "name": "newDuration", - "type": "uint256" + "internalType": "bytes32", + "name": "role", + "type": "bytes32" } ], - "name": "RewardsDurationUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "delegator", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "delegatee", - "type": "address" - }, + "name": "getRoleMemberCount", + "outputs": [ { - "indexed": false, "internalType": "uint256", - "name": "amount", + "name": "", "type": "uint256" } ], - "name": "Staked", - "type": "event" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": false, "internalType": "uint256", - "name": "waitTime", + "name": "_id", "type": "uint256" } ], - "name": "WaitTimeUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ + "name": "getVault", + "outputs": [ { - "indexed": true, - "internalType": "address", - "name": "delegator", - "type": "address" + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" }, { - "indexed": true, "internalType": "address", - "name": "delegatee", + "name": "", "type": "address" }, { - "indexed": false, "internalType": "uint256", - "name": "amount", + "name": "", "type": "uint256" } ], - "name": "Withdrawn", - "type": "event" + "stateMutability": "view", + "type": "function" }, { "inputs": [ { - "internalType": "address", - "name": "account_", - "type": "address" + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" } ], - "name": "balanceOf", + "name": "getVaultRatio", "outputs": [ { "internalType": "uint256", - "name": "", + "name": "currentRatio", "type": "uint256" } ], @@ -23937,31 +58975,41 @@ }, { "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, { "internalType": "address", - "name": "delegatee_", + "name": "account", "type": "address" } ], - "name": "createDelegator", + "name": "grantRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, { "internalType": "address", - "name": "", + "name": "account", "type": "address" } ], - "name": "delegateeToDelegator", + "name": "hasRole", "outputs": [ { - "internalType": "address", + "internalType": "bool", "name": "", - "type": "address" + "type": "bool" } ], "stateMutability": "view", @@ -23970,17 +59018,29 @@ { "inputs": [ { - "internalType": "address", - "name": "", - "type": "address" + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_maxTCAP", + "type": "uint256" } ], - "name": "delegatorToDelegatee", + "name": "liquidateVault", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "liquidationPenalty", "outputs": [ { - "internalType": "address", + "internalType": "uint256", "name": "", - "type": "address" + "type": "uint256" } ], "stateMutability": "view", @@ -23989,17 +59049,17 @@ { "inputs": [ { - "internalType": "address", - "name": "", - "type": "address" + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" } ], - "name": "delegators", + "name": "liquidationReward", "outputs": [ { - "internalType": "bool", - "name": "", - "type": "bool" + "internalType": "uint256", + "name": "rewardCollateral", + "type": "uint256" } ], "stateMutability": "view", @@ -24008,12 +59068,19 @@ { "inputs": [ { - "internalType": "address", - "name": "account_", - "type": "address" + "internalType": "uint256", + "name": "_amount", + "type": "uint256" } ], - "name": "earned", + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "oracleDigits", "outputs": [ { "internalType": "uint256", @@ -24026,19 +59093,12 @@ }, { "inputs": [], - "name": "getReward", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "getRewardForDuration", + "name": "owner", "outputs": [ { - "internalType": "uint256", + "internalType": "address", "name": "", - "type": "uint256" + "type": "address" } ], "stateMutability": "view", @@ -24046,12 +59106,19 @@ }, { "inputs": [], - "name": "lastTimeRewardApplicable", + "name": "pause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "paused", "outputs": [ { - "internalType": "uint256", + "internalType": "bool", "name": "", - "type": "uint256" + "type": "bool" } ], "stateMutability": "view", @@ -24059,7 +59126,7 @@ }, { "inputs": [], - "name": "lastUpdateTime", + "name": "ratio", "outputs": [ { "internalType": "uint256", @@ -24073,80 +59140,72 @@ { "inputs": [ { - "internalType": "uint256", - "name": "a_", - "type": "uint256" + "internalType": "address", + "name": "_tokenAddress", + "type": "address" }, { "internalType": "uint256", - "name": "b_", - "type": "uint256" - } - ], - "name": "min", - "outputs": [ - { - "internalType": "uint256", - "name": "", + "name": "_tokenAmount", "type": "uint256" } ], - "stateMutability": "pure", + "name": "recoverERC20", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", - "name": "reward_", + "name": "_amount", "type": "uint256" } ], - "name": "notifyRewardAmount", + "name": "removeCollateral", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], - "name": "owner", - "outputs": [ + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, { "internalType": "address", - "name": "", + "name": "account", "type": "address" } ], - "stateMutability": "view", + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [], - "name": "periodFinish", - "outputs": [ + "inputs": [ { "internalType": "uint256", - "name": "", + "name": "_amount", "type": "uint256" } ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "rewardPerToken", + "name": "requiredCollateral", "outputs": [ { "internalType": "uint256", - "name": "", + "name": "collateral", "type": "uint256" } ], @@ -24154,25 +59213,18 @@ "type": "function" }, { - "inputs": [], - "name": "rewardPerTokenStored", - "outputs": [ + "inputs": [ { "internalType": "uint256", - "name": "", + "name": "_vaultId", "type": "uint256" } ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "rewardRate", + "name": "requiredLiquidationTCAP", "outputs": [ { "internalType": "uint256", - "name": "", + "name": "amount", "type": "uint256" } ], @@ -24181,76 +59233,70 @@ }, { "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, { "internalType": "address", - "name": "", + "name": "account", "type": "address" } ], - "name": "rewards", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], - "name": "rewardsDuration", + "name": "rewardHandler", "outputs": [ { - "internalType": "uint256", + "internalType": "contract IRewardHandler", "name": "", - "type": "uint256" + "type": "address" } ], "stateMutability": "view", "type": "function" }, { - "inputs": [], - "name": "rewardsToken", - "outputs": [ + "inputs": [ { - "internalType": "address", - "name": "", - "type": "address" + "internalType": "uint256", + "name": "_burnFee", + "type": "uint256" } ], - "stateMutability": "view", + "name": "setBurnFee", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", - "name": "rewardsDuration_", + "name": "_liquidationPenalty", "type": "uint256" } ], - "name": "setRewardsDuration", + "name": "setLiquidationPenalty", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ - { - "internalType": "address", - "name": "delegator_", - "type": "address" - }, { "internalType": "uint256", - "name": "amount_", + "name": "_ratio", "type": "uint256" } ], - "name": "stake", + "name": "setRatio", "outputs": [], "stateMutability": "nonpayable", "type": "function" @@ -24259,47 +59305,42 @@ "inputs": [ { "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", + "name": "_treasury", "type": "address" } ], - "name": "stakerWaitTime", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", + "name": "setTreasury", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [], - "name": "stakingToken", + "inputs": [ + { + "internalType": "bytes4", + "name": "_interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", "outputs": [ { - "internalType": "address", + "internalType": "bool", "name": "", - "type": "address" + "type": "bool" } ], - "stateMutability": "view", + "stateMutability": "pure", "type": "function" }, { "inputs": [], - "name": "totalSupply", + "name": "tcapOracle", "outputs": [ { - "internalType": "uint256", + "internalType": "contract ChainlinkOracle", "name": "", - "type": "uint256" + "type": "address" } ], "stateMutability": "view", @@ -24319,14 +59360,21 @@ "type": "function" }, { - "inputs": [ + "inputs": [], + "name": "treasury", + "outputs": [ { - "internalType": "uint256", - "name": "waitTime_", - "type": "uint256" + "internalType": "address", + "name": "", + "type": "address" } ], - "name": "updateWaitTime", + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "unpause", "outputs": [], "stateMutability": "nonpayable", "type": "function" @@ -24339,7 +59387,7 @@ "type": "address" } ], - "name": "userRewardPerTokenPaid", + "name": "userToVault", "outputs": [ { "internalType": "uint256", @@ -24351,67 +59399,65 @@ "type": "function" }, { - "inputs": [], - "name": "waitTime", - "outputs": [ + "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ + "name": "vaults", + "outputs": [ { - "internalType": "address", - "name": "delegator_", - "type": "address" + "internalType": "uint256", + "name": "Id", + "type": "uint256" }, { "internalType": "uint256", - "name": "amount_", + "name": "Collateral", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "Debt", "type": "uint256" + }, + { + "internalType": "address", + "name": "Owner", + "type": "address" } ], - "name": "withdraw", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" } ] }, - "ETHLiquidityReward": { - "address": "0x06e4F32A5f3bD64C4c620644d107601368BfCb27", + "DelegatorFactory": { + "address": "0x0aafdB19021a3a87A510dD4db7dce62318b49Cd1", "abi": [ { "inputs": [ { "internalType": "address", - "name": "_owner", - "type": "address" - }, - { - "internalType": "address", - "name": "_rewardsToken", + "name": "stakingToken_", "type": "address" }, { "internalType": "address", - "name": "_stakingToken", + "name": "rewardsToken_", "type": "address" }, { "internalType": "uint256", - "name": "_vestingEnd", + "name": "waitTime_", "type": "uint256" }, { - "internalType": "uint256", - "name": "_vestingRatio", - "type": "uint256" + "internalType": "address", + "name": "timelock_", + "type": "address" } ], "stateMutability": "nonpayable", @@ -24423,49 +59469,36 @@ { "indexed": true, "internalType": "address", - "name": "previousOwner", + "name": "delegator", "type": "address" }, { "indexed": true, "internalType": "address", - "name": "newOwner", + "name": "delegatee", "type": "address" } ], - "name": "OwnershipTransferred", + "name": "DelegatorCreated", "type": "event" }, { "anonymous": false, "inputs": [ { - "indexed": false, + "indexed": true, "internalType": "address", - "name": "account", + "name": "previousOwner", "type": "address" - } - ], - "name": "Paused", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ + }, { - "indexed": false, + "indexed": true, "internalType": "address", - "name": "token", + "name": "newOwner", "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" } ], - "name": "Recovered", + "name": "OwnershipTransferred", "type": "event" }, { @@ -24516,85 +59549,16 @@ { "anonymous": false, "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "previousAdminRole", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "newAdminRole", - "type": "bytes32" - } - ], - "name": "RoleAdminChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "RoleGranted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, { "indexed": true, "internalType": "address", - "name": "account", + "name": "delegator", "type": "address" }, { "indexed": true, "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "RoleRevoked", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "user", + "name": "delegatee", "type": "address" }, { @@ -24612,12 +59576,12 @@ "inputs": [ { "indexed": false, - "internalType": "address", - "name": "account", - "type": "address" + "internalType": "uint256", + "name": "waitTime", + "type": "uint256" } ], - "name": "Unpaused", + "name": "WaitTimeUpdated", "type": "event" }, { @@ -24626,7 +59590,13 @@ { "indexed": true, "internalType": "address", - "name": "user", + "name": "delegator", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "delegatee", "type": "address" }, { @@ -24639,24 +59609,11 @@ "name": "Withdrawn", "type": "event" }, - { - "inputs": [], - "name": "DEFAULT_ADMIN_ROLE", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, { "inputs": [ { "internalType": "address", - "name": "_account", + "name": "account_", "type": "address" } ], @@ -24671,54 +59628,33 @@ "stateMutability": "view", "type": "function" }, - { - "inputs": [], - "name": "claimVest", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, { "inputs": [ { "internalType": "address", - "name": "_account", + "name": "delegatee_", "type": "address" } ], - "name": "earned", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "exit", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "getReward", + "name": "createDelegator", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [], - "name": "getRewardForDuration", + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "delegateeToDelegator", "outputs": [ { - "internalType": "uint256", + "internalType": "address", "name": "", - "type": "uint256" + "type": "address" } ], "stateMutability": "view", @@ -24727,17 +59663,17 @@ { "inputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" + "internalType": "address", + "name": "", + "type": "address" } ], - "name": "getRoleAdmin", + "name": "delegatorToDelegatee", "outputs": [ { - "internalType": "bytes32", + "internalType": "address", "name": "", - "type": "bytes32" + "type": "address" } ], "stateMutability": "view", @@ -24746,22 +59682,17 @@ { "inputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "index", - "type": "uint256" + "internalType": "address", + "name": "", + "type": "address" } ], - "name": "getRoleMember", + "name": "delegators", "outputs": [ { - "internalType": "address", + "internalType": "bool", "name": "", - "type": "address" + "type": "bool" } ], "stateMutability": "view", @@ -24770,12 +59701,12 @@ { "inputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" + "internalType": "address", + "name": "account_", + "type": "address" } ], - "name": "getRoleMemberCount", + "name": "earned", "outputs": [ { "internalType": "uint256", @@ -24787,42 +59718,20 @@ "type": "function" }, { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "grantRole", + "inputs": [], + "name": "getReward", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "hasRole", + "inputs": [], + "name": "getRewardForDuration", "outputs": [ { - "internalType": "bool", + "internalType": "uint256", "name": "", - "type": "bool" + "type": "uint256" } ], "stateMutability": "view", @@ -24858,68 +59767,16 @@ "inputs": [ { "internalType": "uint256", - "name": "_a", + "name": "a_", "type": "uint256" }, { "internalType": "uint256", - "name": "_b", - "type": "uint256" - } - ], - "name": "min", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_reward", + "name": "b_", "type": "uint256" } ], - "name": "notifyRewardAmount", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "paused", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "periodFinish", + "name": "min", "outputs": [ { "internalType": "uint256", @@ -24927,66 +59784,51 @@ "type": "uint256" } ], - "stateMutability": "view", + "stateMutability": "pure", "type": "function" }, { "inputs": [ - { - "internalType": "address", - "name": "_tokenAddress", - "type": "address" - }, { "internalType": "uint256", - "name": "_tokenAmount", + "name": "reward_", "type": "uint256" } ], - "name": "recoverERC20", + "name": "notifyRewardAmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, + "name": "owner", + "outputs": [ { "internalType": "address", - "name": "account", + "name": "", "type": "address" } ], - "name": "renounceRole", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, + "inputs": [], + "name": "periodFinish", + "outputs": [ { - "internalType": "address", - "name": "account", - "type": "address" + "internalType": "uint256", + "name": "", + "type": "uint256" } ], - "name": "revokeRole", + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" @@ -25067,7 +59909,7 @@ "name": "rewardsToken", "outputs": [ { - "internalType": "contract IERC20", + "internalType": "address", "name": "", "type": "address" } @@ -25079,7 +59921,7 @@ "inputs": [ { "internalType": "uint256", - "name": "_rewardsDuration", + "name": "rewardsDuration_", "type": "uint256" } ], @@ -25090,9 +59932,14 @@ }, { "inputs": [ + { + "internalType": "address", + "name": "delegator_", + "type": "address" + }, { "internalType": "uint256", - "name": "_amount", + "name": "amount_", "type": "uint256" } ], @@ -25101,12 +59948,36 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "stakerWaitTime", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [], "name": "stakingToken", "outputs": [ { - "internalType": "contract IERC20", + "internalType": "address", "name": "", "type": "address" } @@ -25142,21 +60013,15 @@ }, { "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "userRewardPerTokenPaid", - "outputs": [ { "internalType": "uint256", - "name": "", + "name": "waitTime_", "type": "uint256" } ], - "stateMutability": "view", + "name": "updateWaitTime", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { @@ -25167,20 +60032,7 @@ "type": "address" } ], - "name": "vestingAmounts", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "vestingEnd", + "name": "userRewardPerTokenPaid", "outputs": [ { "internalType": "uint256", @@ -25193,7 +60045,7 @@ }, { "inputs": [], - "name": "vestingRatio", + "name": "waitTime", "outputs": [ { "internalType": "uint256", @@ -25206,9 +60058,14 @@ }, { "inputs": [ + { + "internalType": "address", + "name": "delegator_", + "type": "address" + }, { "internalType": "uint256", - "name": "_amount", + "name": "amount_", "type": "uint256" } ], @@ -25219,20 +60076,35 @@ } ] }, - "GovernorAlpha": { - "address": "0x6f0663fb471c8329De64fb86a2c1b741bb02cB20", + "ETHLiquidityReward": { + "address": "0x06e4F32A5f3bD64C4c620644d107601368BfCb27", "abi": [ { "inputs": [ { "internalType": "address", - "name": "timelock_", + "name": "_owner", "type": "address" }, { "internalType": "address", - "name": "ctx_", + "name": "_rewardsToken", "type": "address" + }, + { + "internalType": "address", + "name": "_stakingToken", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_vestingEnd", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_vestingRatio", + "type": "uint256" } ], "stateMutability": "nonpayable", @@ -25241,14 +60113,52 @@ { "anonymous": false, "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "Paused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "token", + "type": "address" + }, { "indexed": false, "internalType": "uint256", - "name": "id", + "name": "amount", "type": "uint256" } ], - "name": "ProposalCanceled", + "name": "Recovered", "type": "event" }, { @@ -25257,132 +60167,368 @@ { "indexed": false, "internalType": "uint256", - "name": "id", + "name": "reward", "type": "uint256" - }, + } + ], + "name": "RewardAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ { - "indexed": false, + "indexed": true, "internalType": "address", - "name": "proposer", + "name": "user", "type": "address" }, { "indexed": false, - "internalType": "address[]", - "name": "targets", - "type": "address[]" - }, + "internalType": "uint256", + "name": "reward", + "type": "uint256" + } + ], + "name": "RewardPaid", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ { "indexed": false, - "internalType": "uint256[]", - "name": "values", - "type": "uint256[]" + "internalType": "uint256", + "name": "newDuration", + "type": "uint256" + } + ], + "name": "RewardsDurationUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" }, { - "indexed": false, - "internalType": "string[]", - "name": "signatures", - "type": "string[]" + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" }, { - "indexed": false, - "internalType": "bytes[]", - "name": "calldatas", - "type": "bytes[]" + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" }, { - "indexed": false, - "internalType": "uint256", - "name": "startBlock", - "type": "uint256" + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "user", + "type": "address" }, { "indexed": false, "internalType": "uint256", - "name": "endBlock", + "name": "amount", "type": "uint256" - }, + } + ], + "name": "Staked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ { "indexed": false, - "internalType": "string", - "name": "description", - "type": "string" + "internalType": "address", + "name": "account", + "type": "address" } ], - "name": "ProposalCreated", + "name": "Unpaused", "type": "event" }, { "anonymous": false, "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "user", + "type": "address" + }, { "indexed": false, "internalType": "uint256", - "name": "id", + "name": "amount", "type": "uint256" } ], - "name": "ProposalExecuted", + "name": "Withdrawn", "type": "event" }, { - "anonymous": false, + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { "inputs": [ { - "indexed": false, + "internalType": "address", + "name": "_account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { "internalType": "uint256", - "name": "id", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "claimVest", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + } + ], + "name": "earned", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "exit", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "getReward", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "getRewardForDuration", + "outputs": [ + { + "internalType": "uint256", + "name": "", "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" }, { - "indexed": false, "internalType": "uint256", - "name": "eta", + "name": "index", "type": "uint256" } ], - "name": "ProposalQueued", - "type": "event" + "name": "getRoleMember", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleMemberCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": false, - "internalType": "address", - "name": "voter", - "type": "address" + "internalType": "bytes32", + "name": "role", + "type": "bytes32" }, { - "indexed": false, - "internalType": "uint256", - "name": "proposalId", - "type": "uint256" - }, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ { - "indexed": false, "internalType": "bool", - "name": "support", + "name": "", "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "votes", - "type": "uint256" } ], - "name": "VoteCast", - "type": "event" + "stateMutability": "view", + "type": "function" }, { "inputs": [], - "name": "BALLOT_TYPEHASH", + "name": "lastTimeRewardApplicable", "outputs": [ { - "internalType": "bytes32", + "internalType": "uint256", "name": "", - "type": "bytes32" + "type": "uint256" } ], "stateMutability": "view", @@ -25390,12 +60536,12 @@ }, { "inputs": [], - "name": "DOMAIN_TYPEHASH", + "name": "lastUpdateTime", "outputs": [ { - "internalType": "bytes32", + "internalType": "uint256", "name": "", - "type": "bytes32" + "type": "uint256" } ], "stateMutability": "view", @@ -25405,72 +60551,45 @@ "inputs": [ { "internalType": "uint256", - "name": "proposalId", + "name": "_a", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_b", "type": "uint256" } ], - "name": "cancel", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ + "name": "min", + "outputs": [ { "internalType": "uint256", - "name": "proposalId", + "name": "", "type": "uint256" - }, - { - "internalType": "bool", - "name": "support", - "type": "bool" } ], - "name": "castVote", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "uint256", - "name": "proposalId", + "name": "_reward", "type": "uint256" - }, - { - "internalType": "bool", - "name": "support", - "type": "bool" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" } ], - "name": "castVoteBySig", + "name": "notifyRewardAmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], - "name": "ctx", + "name": "owner", "outputs": [ { - "internalType": "contract CtxInterface", + "internalType": "address", "name": "", "type": "address" } @@ -25479,102 +60598,95 @@ "type": "function" }, { - "inputs": [ + "inputs": [], + "name": "paused", + "outputs": [ { - "internalType": "uint256", - "name": "proposalId", - "type": "uint256" + "internalType": "bool", + "name": "", + "type": "bool" } ], - "name": "execute", - "outputs": [], - "stateMutability": "payable", + "stateMutability": "view", "type": "function" }, { - "inputs": [ + "inputs": [], + "name": "periodFinish", + "outputs": [ { "internalType": "uint256", - "name": "proposalId", + "name": "", "type": "uint256" } ], - "name": "getActions", - "outputs": [ - { - "internalType": "address[]", - "name": "targets", - "type": "address[]" - }, - { - "internalType": "uint256[]", - "name": "values", - "type": "uint256[]" - }, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ { - "internalType": "string[]", - "name": "signatures", - "type": "string[]" + "internalType": "address", + "name": "_tokenAddress", + "type": "address" }, { - "internalType": "bytes[]", - "name": "calldatas", - "type": "bytes[]" + "internalType": "uint256", + "name": "_tokenAmount", + "type": "uint256" } ], - "stateMutability": "view", + "name": "recoverERC20", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { - "internalType": "uint256", - "name": "proposalId", - "type": "uint256" + "internalType": "bytes32", + "name": "role", + "type": "bytes32" }, { "internalType": "address", - "name": "voter", + "name": "account", "type": "address" } ], - "name": "getReceipt", - "outputs": [ - { - "components": [ - { - "internalType": "bool", - "name": "hasVoted", - "type": "bool" - }, - { - "internalType": "bool", - "name": "support", - "type": "bool" - }, - { - "internalType": "uint96", - "name": "votes", - "type": "uint96" - } - ], - "internalType": "struct GovernorAlpha.Receipt", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, { "internalType": "address", - "name": "", + "name": "account", "type": "address" } ], - "name": "latestProposalIds", + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "rewardPerToken", "outputs": [ { "internalType": "uint256", @@ -25587,12 +60699,12 @@ }, { "inputs": [], - "name": "name", + "name": "rewardPerTokenStored", "outputs": [ { - "internalType": "string", + "internalType": "uint256", "name": "", - "type": "string" + "type": "uint256" } ], "stateMutability": "view", @@ -25600,7 +60712,7 @@ }, { "inputs": [], - "name": "proposalCount", + "name": "rewardRate", "outputs": [ { "internalType": "uint256", @@ -25612,8 +60724,14 @@ "type": "function" }, { - "inputs": [], - "name": "proposalMaxOperations", + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "rewards", "outputs": [ { "internalType": "uint256", @@ -25621,12 +60739,12 @@ "type": "uint256" } ], - "stateMutability": "pure", + "stateMutability": "view", "type": "function" }, { "inputs": [], - "name": "proposalThreshold", + "name": "rewardsDuration", "outputs": [ { "internalType": "uint256", @@ -25634,63 +60752,17 @@ "type": "uint256" } ], - "stateMutability": "pure", + "stateMutability": "view", "type": "function" }, { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "proposals", + "inputs": [], + "name": "rewardsToken", "outputs": [ { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "address", - "name": "proposer", + "internalType": "contract IERC20", + "name": "", "type": "address" - }, - { - "internalType": "uint256", - "name": "eta", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "startBlock", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "endBlock", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "forVotes", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "againstVotes", - "type": "uint256" - }, - { - "internalType": "bool", - "name": "canceled", - "type": "bool" - }, - { - "internalType": "bool", - "name": "executed", - "type": "bool" } ], "stateMutability": "view", @@ -25698,40 +60770,14 @@ }, { "inputs": [ - { - "internalType": "address[]", - "name": "targets", - "type": "address[]" - }, - { - "internalType": "uint256[]", - "name": "values", - "type": "uint256[]" - }, - { - "internalType": "string[]", - "name": "signatures", - "type": "string[]" - }, - { - "internalType": "bytes[]", - "name": "calldatas", - "type": "bytes[]" - }, - { - "internalType": "string", - "name": "description", - "type": "string" - } - ], - "name": "propose", - "outputs": [ { "internalType": "uint256", - "name": "", + "name": "_rewardsDuration", "type": "uint256" } ], + "name": "setRewardsDuration", + "outputs": [], "stateMutability": "nonpayable", "type": "function" }, @@ -25739,57 +60785,68 @@ "inputs": [ { "internalType": "uint256", - "name": "proposalId", + "name": "_amount", "type": "uint256" } ], - "name": "queue", + "name": "stake", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], - "name": "quorumVotes", + "name": "stakingToken", "outputs": [ { - "internalType": "uint256", + "internalType": "contract IERC20", "name": "", - "type": "uint256" + "type": "address" } ], - "stateMutability": "pure", + "stateMutability": "view", "type": "function" }, { - "inputs": [ + "inputs": [], + "name": "totalSupply", + "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" - }, + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], - "name": "receipts", + "name": "userRewardPerTokenPaid", "outputs": [ { - "internalType": "bool", - "name": "hasVoted", - "type": "bool" - }, - { - "internalType": "bool", - "name": "support", - "type": "bool" - }, - { - "internalType": "uint96", - "name": "votes", - "type": "uint96" + "internalType": "uint256", + "name": "", + "type": "uint256" } ], "stateMutability": "view", @@ -25798,17 +60855,17 @@ { "inputs": [ { - "internalType": "uint256", - "name": "proposalId", - "type": "uint256" + "internalType": "address", + "name": "", + "type": "address" } ], - "name": "state", + "name": "vestingAmounts", "outputs": [ { - "internalType": "enum GovernorAlpha.ProposalState", + "internalType": "uint256", "name": "", - "type": "uint8" + "type": "uint256" } ], "stateMutability": "view", @@ -25816,12 +60873,12 @@ }, { "inputs": [], - "name": "timelock", + "name": "vestingEnd", "outputs": [ { - "internalType": "contract TimelockInterface", + "internalType": "uint256", "name": "", - "type": "address" + "type": "uint256" } ], "stateMutability": "view", @@ -25829,7 +60886,7 @@ }, { "inputs": [], - "name": "votingDelay", + "name": "vestingRatio", "outputs": [ { "internalType": "uint256", @@ -25837,175 +60894,201 @@ "type": "uint256" } ], - "stateMutability": "pure", + "stateMutability": "view", "type": "function" }, { - "inputs": [], - "name": "votingPeriod", - "outputs": [ + "inputs": [ { "internalType": "uint256", - "name": "", + "name": "_amount", "type": "uint256" } ], - "stateMutability": "pure", + "name": "withdraw", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" } ] }, - "LINK": { - "address": "0x5717DC7Cc0489dCc00316bcDB7e752aec664673e", + "GovernorAlpha": { + "address": "0xc27e8BfB7a85f54498b2378d2a533126800d14E3", "abi": [ { - "inputs": [], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, "inputs": [ { - "indexed": true, "internalType": "address", - "name": "owner", + "name": "timelock_", "type": "address" }, { - "indexed": true, "internalType": "address", - "name": "spender", + "name": "ctx_", "type": "address" - }, + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ { "indexed": false, "internalType": "uint256", - "name": "value", + "name": "id", "type": "uint256" } ], - "name": "Approval", + "name": "ProposalCanceled", "type": "event" }, { "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" }, { - "indexed": true, + "indexed": false, "internalType": "address", - "name": "to", + "name": "proposer", "type": "address" }, + { + "indexed": false, + "internalType": "address[]", + "name": "targets", + "type": "address[]" + }, + { + "indexed": false, + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + }, + { + "indexed": false, + "internalType": "string[]", + "name": "signatures", + "type": "string[]" + }, + { + "indexed": false, + "internalType": "bytes[]", + "name": "calldatas", + "type": "bytes[]" + }, { "indexed": false, "internalType": "uint256", - "name": "value", + "name": "startBlock", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "endBlock", "type": "uint256" + }, + { + "indexed": false, + "internalType": "string", + "name": "description", + "type": "string" } ], - "name": "Transfer", + "name": "ProposalCreated", "type": "event" }, { + "anonymous": false, "inputs": [ { - "internalType": "address", - "name": "owner", - "type": "address" + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "ProposalExecuted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" }, { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { + "indexed": false, "internalType": "uint256", - "name": "", + "name": "eta", "type": "uint256" } ], - "stateMutability": "view", - "type": "function" + "name": "ProposalQueued", + "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": false, "internalType": "address", - "name": "spender", + "name": "voter", "type": "address" }, { + "indexed": false, "internalType": "uint256", - "name": "amount", + "name": "proposalId", "type": "uint256" - } - ], - "name": "approve", - "outputs": [ + }, { + "indexed": false, "internalType": "bool", - "name": "", + "name": "support", "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ + }, { + "indexed": false, "internalType": "uint256", - "name": "", + "name": "votes", "type": "uint256" } ], - "stateMutability": "view", - "type": "function" + "name": "VoteCast", + "type": "event" }, { - "inputs": [ - { - "internalType": "address", - "name": "_account", - "type": "address" - }, + "inputs": [], + "name": "BALLOT_TYPEHASH", + "outputs": [ { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" + "internalType": "bytes32", + "name": "", + "type": "bytes32" } ], - "name": "burn", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "inputs": [], - "name": "decimals", + "name": "DOMAIN_TYPEHASH", "outputs": [ { - "internalType": "uint8", + "internalType": "bytes32", "name": "", - "type": "uint8" + "type": "bytes32" } ], "stateMutability": "view", @@ -26013,210 +61096,183 @@ }, { "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, { "internalType": "uint256", - "name": "subtractedValue", + "name": "proposalId", "type": "uint256" } ], - "name": "decreaseAllowance", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], + "name": "cancel", + "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, { "internalType": "uint256", - "name": "addedValue", + "name": "proposalId", "type": "uint256" - } - ], - "name": "increaseAllowance", - "outputs": [ + }, { "internalType": "bool", - "name": "", + "name": "support", "type": "bool" } ], + "name": "castVote", + "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ - { - "internalType": "address", - "name": "_account", - "type": "address" - }, { "internalType": "uint256", - "name": "_amount", + "name": "proposalId", "type": "uint256" + }, + { + "internalType": "bool", + "name": "support", + "type": "bool" + }, + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" } ], - "name": "mint", + "name": "castVoteBySig", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", + "name": "ctx", "outputs": [ { - "internalType": "string", + "internalType": "contract CtxInterface", "name": "", - "type": "string" + "type": "address" } ], "stateMutability": "view", "type": "function" }, { - "inputs": [], - "name": "totalSupply", - "outputs": [ + "inputs": [ { "internalType": "uint256", - "name": "", + "name": "proposalId", "type": "uint256" } ], - "stateMutability": "view", + "name": "execute", + "outputs": [], + "stateMutability": "payable", "type": "function" }, { "inputs": [ - { - "internalType": "address", - "name": "recipient", - "type": "address" - }, { "internalType": "uint256", - "name": "amount", + "name": "proposalId", "type": "uint256" } ], - "name": "transfer", + "name": "getActions", "outputs": [ { - "internalType": "bool", - "name": "", - "type": "bool" + "internalType": "address[]", + "name": "targets", + "type": "address[]" + }, + { + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + }, + { + "internalType": "string[]", + "name": "signatures", + "type": "string[]" + }, + { + "internalType": "bytes[]", + "name": "calldatas", + "type": "bytes[]" } ], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "inputs": [ { - "internalType": "address", - "name": "sender", - "type": "address" + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" }, { "internalType": "address", - "name": "recipient", + "name": "voter", "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" } ], - "name": "transferFrom", + "name": "getReceipt", "outputs": [ { - "internalType": "bool", + "components": [ + { + "internalType": "bool", + "name": "hasVoted", + "type": "bool" + }, + { + "internalType": "bool", + "name": "support", + "type": "bool" + }, + { + "internalType": "uint96", + "name": "votes", + "type": "uint96" + } + ], + "internalType": "struct GovernorAlpha.Receipt", "name": "", - "type": "bool" + "type": "tuple" } ], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" - } - ] - }, - "LinkOracle": { - "address": "0xEecF07643384C689C7AB804887ef2187cE75D5Ec", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "_aggregator", - "type": "address" - }, - { - "internalType": "address", - "name": "_timelock", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, "internalType": "address", - "name": "newOwner", + "name": "", "type": "address" } ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "inputs": [], - "name": "getLatestAnswer", + "name": "latestProposalIds", "outputs": [ { - "internalType": "int256", + "internalType": "uint256", "name": "", - "type": "int256" + "type": "uint256" } ], "stateMutability": "view", @@ -26224,32 +61280,12 @@ }, { "inputs": [], - "name": "getLatestRound", + "name": "name", "outputs": [ { - "internalType": "uint80", - "name": "", - "type": "uint80" - }, - { - "internalType": "int256", - "name": "", - "type": "int256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint80", + "internalType": "string", "name": "", - "type": "uint80" + "type": "string" } ], "stateMutability": "view", @@ -26257,7 +61293,7 @@ }, { "inputs": [], - "name": "getLatestTimestamp", + "name": "proposalCount", "outputs": [ { "internalType": "uint256", @@ -26269,33 +61305,21 @@ "type": "function" }, { - "inputs": [ - { - "internalType": "uint80", - "name": "_id", - "type": "uint80" - } - ], - "name": "getPreviousAnswer", + "inputs": [], + "name": "proposalMaxOperations", "outputs": [ { - "internalType": "int256", + "internalType": "uint256", "name": "", - "type": "int256" + "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { - "inputs": [ - { - "internalType": "uint80", - "name": "_id", - "type": "uint80" - } - ], - "name": "getPreviousTimestamp", + "inputs": [], + "name": "MIN_RATIO", "outputs": [ { "internalType": "uint256", @@ -26307,39 +61331,13 @@ "type": "function" }, { - "inputs": [ - { - "internalType": "uint80", - "name": "_id", - "type": "uint80" - } - ], - "name": "getRound", + "inputs": [], + "name": "TCAPPrice", "outputs": [ - { - "internalType": "uint80", - "name": "", - "type": "uint80" - }, - { - "internalType": "int256", - "name": "", - "type": "int256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, { "internalType": "uint256", - "name": "", + "name": "price", "type": "uint256" - }, - { - "internalType": "uint80", - "name": "", - "type": "uint80" } ], "stateMutability": "view", @@ -26347,10 +61345,10 @@ }, { "inputs": [], - "name": "owner", + "name": "TCAPToken", "outputs": [ { - "internalType": "address", + "internalType": "contract TCAP", "name": "", "type": "address" } @@ -26359,8 +61357,14 @@ "type": "function" }, { - "inputs": [], - "name": "renounceOwnership", + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "addCollateral", "outputs": [], "stateMutability": "nonpayable", "type": "function" @@ -26368,492 +61372,354 @@ { "inputs": [ { - "internalType": "address", - "name": "_aggregator", - "type": "address" + "internalType": "uint256", + "name": "_amount", + "type": "uint256" } ], - "name": "setReferenceContract", + "name": "burn", "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "payable", "type": "function" }, { - "inputs": [ + "inputs": [], + "name": "burnFee", + "outputs": [ { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" + "internalType": "uint256", + "name": "", + "type": "uint256" } ], - "name": "supportsInterface", + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "collateralContract", "outputs": [ { - "internalType": "bool", + "internalType": "contract IERC20", "name": "", - "type": "bool" + "type": "address" } ], - "stateMutability": "pure", + "stateMutability": "view", "type": "function" }, { - "inputs": [ + "inputs": [], + "name": "collateralPriceOracle", + "outputs": [ { - "internalType": "address", - "name": "newOwner", + "internalType": "contract ChainlinkOracle", + "name": "", "type": "address" } ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" - } - ] - }, - "LinkVaultHandler": { - "address": "0xBd4a21cC2D12157765a8861A83FC4cfd216630b1", - "abi": [ + }, { - "inputs": [ - { - "internalType": "contract Orchestrator", - "name": "_orchestrator", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_divisor", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_ratio", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_burnFee", - "type": "uint256" - }, + "inputs": [], + "name": "counter", + "outputs": [ { "internalType": "uint256", - "name": "_liquidationPenalty", + "name": "_value", "type": "uint256" - }, - { - "internalType": "address", - "name": "_tcapOracle", - "type": "address" - }, - { - "internalType": "contract TCAP", - "name": "_tcapAddress", - "type": "address" - }, - { - "internalType": "address", - "name": "_collateralAddress", - "type": "address" - }, - { - "internalType": "address", - "name": "_collateralOracle", - "type": "address" - }, - { - "internalType": "address", - "name": "_ethOracle", - "type": "address" - }, - { - "internalType": "address", - "name": "_rewardHandler", - "type": "address" - }, - { - "internalType": "address", - "name": "_treasury", - "type": "address" } ], - "stateMutability": "nonpayable", - "type": "constructor" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "_id", - "type": "uint256" - }, + "inputs": [], + "name": "createVault", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "divisor", + "outputs": [ { - "indexed": false, "internalType": "uint256", - "name": "_amount", + "name": "", "type": "uint256" } ], - "name": "CollateralAdded", - "type": "event" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "address", - "name": "_owner", - "type": "address" - }, - { - "indexed": true, "internalType": "uint256", - "name": "_id", + "name": "_amount", "type": "uint256" - }, + } + ], + "name": "getFee", + "outputs": [ { - "indexed": false, "internalType": "uint256", - "name": "_amount", + "name": "fee", "type": "uint256" } ], - "name": "CollateralRemoved", - "type": "event" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "address", - "name": "_owner", + "internalType": "contract ChainlinkOracle", + "name": "_oracle", "type": "address" - }, + } + ], + "name": "getOraclePrice", + "outputs": [ { - "indexed": false, "internalType": "uint256", - "name": "_burnFee", + "name": "price", "type": "uint256" } ], - "name": "NewBurnFee", - "type": "event" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "address", - "name": "_owner", - "type": "address" - }, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ { - "indexed": false, - "internalType": "uint256", - "name": "_liquidationPenalty", - "type": "uint256" + "internalType": "bytes32", + "name": "", + "type": "bytes32" } ], - "name": "NewLiquidationPenalty", - "type": "event" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "address", - "name": "_owner", - "type": "address" + "internalType": "bytes32", + "name": "role", + "type": "bytes32" }, { - "indexed": false, "internalType": "uint256", - "name": "_ratio", + "name": "index", "type": "uint256" } ], - "name": "NewRatio", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_owner", - "type": "address" - }, + "name": "getRoleMember", + "outputs": [ { - "indexed": false, "internalType": "address", - "name": "_tresury", + "name": "", "type": "address" } ], - "name": "NewTreasury", - "type": "event" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleMemberCount", + "outputs": [ { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" + "internalType": "uint256", + "name": "", + "type": "uint256" } ], - "name": "OwnershipTransferred", - "type": "event" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": false, - "internalType": "address", - "name": "account", - "type": "address" + "internalType": "uint256", + "name": "_id", + "type": "uint256" } ], - "name": "Paused", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ + "name": "getVault", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, { - "indexed": false, "internalType": "address", - "name": "_token", + "name": "", "type": "address" }, { - "indexed": false, "internalType": "uint256", - "name": "_amount", + "name": "", "type": "uint256" } ], - "name": "Recovered", - "type": "event" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "previousAdminRole", - "type": "bytes32" - }, + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + } + ], + "name": "getVaultRatio", + "outputs": [ { - "indexed": true, - "internalType": "bytes32", - "name": "newAdminRole", - "type": "bytes32" + "internalType": "uint256", + "name": "currentRatio", + "type": "uint256" } ], - "name": "RoleAdminChanged", - "type": "event" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { - "indexed": true, "internalType": "address", "name": "account", "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" } ], - "name": "RoleGranted", - "type": "event" + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { - "indexed": true, "internalType": "address", "name": "account", "type": "address" - }, + } + ], + "name": "hasRole", + "outputs": [ { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" + "internalType": "bool", + "name": "", + "type": "bool" } ], - "name": "RoleRevoked", - "type": "event" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "address", - "name": "_owner", - "type": "address" - }, - { - "indexed": true, "internalType": "uint256", - "name": "_id", + "name": "_vaultId", "type": "uint256" }, { - "indexed": false, "internalType": "uint256", - "name": "_amount", + "name": "_maxTCAP", "type": "uint256" } ], - "name": "TokensBurned", - "type": "event" + "name": "liquidateVault", + "outputs": [], + "stateMutability": "payable", + "type": "function" }, { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "_id", - "type": "uint256" - }, + "inputs": [], + "name": "liquidationPenalty", + "outputs": [ { - "indexed": false, "internalType": "uint256", - "name": "_amount", + "name": "", "type": "uint256" } ], - "name": "TokensMinted", - "type": "event" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": false, - "internalType": "address", - "name": "account", - "type": "address" + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" } ], - "name": "Unpaused", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_owner", - "type": "address" - }, + "name": "liquidationReward", + "outputs": [ { - "indexed": true, "internalType": "uint256", - "name": "_id", + "name": "rewardCollateral", "type": "uint256" } ], - "name": "VaultCreated", - "type": "event" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "uint256", - "name": "_vaultId", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "_liquidator", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_liquidationCollateral", - "type": "uint256" - }, - { - "indexed": false, "internalType": "uint256", - "name": "_reward", + "name": "_amount", "type": "uint256" } ], - "name": "VaultLiquidated", - "type": "event" + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { "inputs": [], - "name": "DEFAULT_ADMIN_ROLE", + "name": "oracleDigits", "outputs": [ { - "internalType": "bytes32", + "internalType": "uint256", "name": "", - "type": "bytes32" + "type": "uint256" } ], "stateMutability": "view", @@ -26861,10 +61727,10 @@ }, { "inputs": [], - "name": "ETHPriceOracle", + "name": "owner", "outputs": [ { - "internalType": "contract ChainlinkOracle", + "internalType": "address", "name": "", "type": "address" } @@ -26874,12 +61740,19 @@ }, { "inputs": [], - "name": "MAX_FEE", + "name": "pause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "paused", "outputs": [ { - "internalType": "uint256", + "internalType": "bool", "name": "", - "type": "uint256" + "type": "bool" } ], "stateMutability": "view", @@ -26887,7 +61760,7 @@ }, { "inputs": [], - "name": "MIN_RATIO", + "name": "ratio", "outputs": [ { "internalType": "uint256", @@ -26899,40 +61772,57 @@ "type": "function" }, { - "inputs": [], - "name": "TCAPPrice", - "outputs": [ + "inputs": [ + { + "internalType": "address", + "name": "_tokenAddress", + "type": "address" + }, { "internalType": "uint256", - "name": "price", + "name": "_tokenAmount", "type": "uint256" } ], - "stateMutability": "view", + "name": "recoverERC20", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [], - "name": "TCAPToken", - "outputs": [ + "inputs": [ { - "internalType": "contract TCAP", - "name": "", - "type": "address" + "internalType": "uint256", + "name": "_amount", + "type": "uint256" } ], - "stateMutability": "view", + "name": "removeCollateral", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" } ], - "name": "addCollateral", + "name": "renounceRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" @@ -26945,18 +61835,30 @@ "type": "uint256" } ], - "name": "burn", - "outputs": [], - "stateMutability": "payable", + "name": "requiredCollateral", + "outputs": [ + { + "internalType": "uint256", + "name": "collateral", + "type": "uint256" + } + ], + "stateMutability": "view", "type": "function" }, { - "inputs": [], - "name": "burnFee", + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + } + ], + "name": "requiredLiquidationTCAP", "outputs": [ { "internalType": "uint256", - "name": "", + "name": "amount", "type": "uint256" } ], @@ -26964,24 +61866,29 @@ "type": "function" }, { - "inputs": [], - "name": "collateralContract", - "outputs": [ + "inputs": [ { - "internalType": "contract IERC20", - "name": "", + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", "type": "address" } ], - "stateMutability": "view", + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], - "name": "collateralPriceOracle", + "name": "rewardHandler", "outputs": [ { - "internalType": "contract ChainlinkOracle", + "internalType": "contract IRewardHandler", "name": "", "type": "address" } @@ -26990,90 +61897,84 @@ "type": "function" }, { - "inputs": [], - "name": "counter", - "outputs": [ + "inputs": [ { "internalType": "uint256", - "name": "_value", + "name": "_burnFee", "type": "uint256" } ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "createVault", + "name": "setBurnFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [], - "name": "divisor", - "outputs": [ + "inputs": [ { "internalType": "uint256", - "name": "", + "name": "_liquidationPenalty", "type": "uint256" } ], - "stateMutability": "view", + "name": "setLiquidationPenalty", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", - "name": "_amount", + "name": "_ratio", "type": "uint256" } ], - "name": "getFee", - "outputs": [ + "name": "setRatio", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ { - "internalType": "uint256", - "name": "fee", - "type": "uint256" + "internalType": "address", + "name": "_treasury", + "type": "address" } ], - "stateMutability": "view", + "name": "setTreasury", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { - "internalType": "contract ChainlinkOracle", - "name": "_oracle", - "type": "address" + "internalType": "bytes4", + "name": "_interfaceId", + "type": "bytes4" } ], - "name": "getOraclePrice", + "name": "supportsInterface", "outputs": [ { - "internalType": "uint256", - "name": "price", - "type": "uint256" + "internalType": "bool", + "name": "", + "type": "bool" } ], - "stateMutability": "view", + "stateMutability": "pure", "type": "function" }, { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "getRoleAdmin", + "inputs": [], + "name": "tcapOracle", "outputs": [ { - "internalType": "bytes32", + "internalType": "contract ChainlinkOracle", "name": "", - "type": "bytes32" + "type": "address" } ], "stateMutability": "view", @@ -27082,17 +61983,19 @@ { "inputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "index", - "type": "uint256" + "internalType": "address", + "name": "newOwner", + "type": "address" } ], - "name": "getRoleMember", + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "treasury", "outputs": [ { "internalType": "address", @@ -27103,15 +62006,22 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "unpause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" + "internalType": "address", + "name": "", + "type": "address" } ], - "name": "getRoleMemberCount", + "name": "userToVault", "outputs": [ { "internalType": "uint256", @@ -27126,168 +62036,199 @@ "inputs": [ { "internalType": "uint256", - "name": "_id", + "name": "", "type": "uint256" } ], - "name": "getVault", + "name": "vaults", "outputs": [ { "internalType": "uint256", - "name": "", + "name": "Id", "type": "uint256" }, { "internalType": "uint256", - "name": "", + "name": "Collateral", "type": "uint256" }, - { - "internalType": "address", - "name": "", - "type": "address" - }, { "internalType": "uint256", - "name": "", + "name": "Debt", "type": "uint256" + }, + { + "internalType": "address", + "name": "Owner", + "type": "address" } ], "stateMutability": "view", "type": "function" - }, + } + ] + }, + "Orchestrator": { + "address": "0x32ac6dBaf90A4C45f160D13B32fDD10D75D09976", + "abi": [ { "inputs": [ { - "internalType": "uint256", - "name": "_vaultId", - "type": "uint256" - } - ], - "name": "getVaultRatio", - "outputs": [ - { - "internalType": "uint256", - "name": "currentRatio", - "type": "uint256" + "internalType": "address", + "name": "_guardian", + "type": "address" } ], - "stateMutability": "view", - "type": "function" + "stateMutability": "nonpayable", + "type": "constructor" }, { + "anonymous": false, "inputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" }, { + "indexed": false, "internalType": "address", - "name": "account", + "name": "guardian", "type": "address" } ], - "name": "grantRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "name": "GuardianSet", + "type": "event" }, { + "anonymous": false, "inputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" }, { + "indexed": true, "internalType": "address", - "name": "account", + "name": "newOwner", "type": "address" } ], - "name": "hasRole", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" + "name": "OwnershipTransferred", + "type": "event" }, { + "anonymous": false, "inputs": [ { - "internalType": "uint256", - "name": "_vaultId", - "type": "uint256" + "indexed": true, + "internalType": "address", + "name": "target", + "type": "address" }, { + "indexed": false, "internalType": "uint256", - "name": "_maxTCAP", + "name": "value", "type": "uint256" + }, + { + "indexed": false, + "internalType": "string", + "name": "signature", + "type": "string" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "data", + "type": "bytes" } ], - "name": "liquidateVault", - "outputs": [], - "stateMutability": "payable", - "type": "function" + "name": "TransactionExecuted", + "type": "event" }, { - "inputs": [], - "name": "liquidationPenalty", - "outputs": [ + "inputs": [ { - "internalType": "uint256", - "name": "", - "type": "uint256" + "internalType": "contract TCAP", + "name": "_tcap", + "type": "address" + }, + { + "internalType": "contract IVaultHandler", + "name": "_vault", + "type": "address" } ], - "stateMutability": "view", + "name": "addTCAPVault", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { - "internalType": "uint256", - "name": "_vaultId", - "type": "uint256" - } - ], - "name": "liquidationReward", - "outputs": [ + "internalType": "contract TCAP", + "name": "_tcap", + "type": "address" + }, { - "internalType": "uint256", - "name": "rewardCollateral", - "type": "uint256" + "internalType": "bool", + "name": "_enable", + "type": "bool" } ], - "stateMutability": "view", + "name": "enableTCAPCap", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + }, { "internalType": "uint256", - "name": "_amount", + "name": "value", "type": "uint256" + }, + { + "internalType": "string", + "name": "signature", + "type": "string" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" } ], - "name": "mint", - "outputs": [], - "stateMutability": "nonpayable", + "name": "executeTransaction", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "stateMutability": "payable", "type": "function" }, { "inputs": [], - "name": "oracleDigits", + "name": "guardian", "outputs": [ { - "internalType": "uint256", + "internalType": "address", "name": "", - "type": "uint256" + "type": "address" } ], "stateMutability": "view", @@ -27307,52 +62248,70 @@ "type": "function" }, { - "inputs": [], - "name": "pause", + "inputs": [ + { + "internalType": "contract IVaultHandler", + "name": "_vault", + "type": "address" + } + ], + "name": "pauseVault", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [], - "name": "paused", - "outputs": [ + "inputs": [ { - "internalType": "bool", - "name": "", - "type": "bool" + "internalType": "contract TCAP", + "name": "_tcap", + "type": "address" + }, + { + "internalType": "contract IVaultHandler", + "name": "_vault", + "type": "address" } ], - "stateMutability": "view", + "name": "removeTCAPVault", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], - "name": "ratio", - "outputs": [ + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ { - "internalType": "uint256", - "name": "", - "type": "uint256" + "internalType": "address", + "name": "_to", + "type": "address" } ], - "stateMutability": "view", + "name": "retrieveETH", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { - "internalType": "address", - "name": "_tokenAddress", + "internalType": "contract IVaultHandler", + "name": "_vault", "type": "address" }, { "internalType": "uint256", - "name": "_tokenAmount", + "name": "_burnFee", "type": "uint256" } ], - "name": "recoverERC20", + "name": "setBurnFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" @@ -27360,105 +62319,205 @@ { "inputs": [ { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" + "internalType": "contract IVaultHandler", + "name": "_vault", + "type": "address" } ], - "name": "removeCollateral", + "name": "setEmergencyBurnFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [], - "name": "renounceOwnership", + "inputs": [ + { + "internalType": "contract IVaultHandler", + "name": "_vault", + "type": "address" + } + ], + "name": "setEmergencyLiquidationPenalty", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, { "internalType": "address", - "name": "account", + "name": "_guardian", "type": "address" } ], - "name": "renounceRole", + "name": "setGuardian", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ + { + "internalType": "contract IVaultHandler", + "name": "_vault", + "type": "address" + }, { "internalType": "uint256", - "name": "_amount", + "name": "_liquidationPenalty", "type": "uint256" } ], - "name": "requiredCollateral", - "outputs": [ + "name": "setLiquidationPenalty", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IVaultHandler", + "name": "_vault", + "type": "address" + }, { "internalType": "uint256", - "name": "collateral", + "name": "_ratio", "type": "uint256" } ], - "stateMutability": "view", + "name": "setRatio", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ + { + "internalType": "contract TCAP", + "name": "_tcap", + "type": "address" + }, { "internalType": "uint256", - "name": "_vaultId", + "name": "_cap", "type": "uint256" } ], - "name": "requiredLiquidationTCAP", - "outputs": [ + "name": "setTCAPCap", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ { - "internalType": "uint256", - "name": "amount", - "type": "uint256" + "internalType": "address", + "name": "newOwner", + "type": "address" } ], - "stateMutability": "view", + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", + "internalType": "contract IVaultHandler", + "name": "_vault", "type": "address" } ], - "name": "revokeRole", + "name": "unpauseVault", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, + { + "stateMutability": "payable", + "type": "receive" + } + ] + }, + "LINK": { + "address": "0x514910771af9ca656af840dff83e8264ecf986ca", + "abi": [ { "inputs": [], - "name": "rewardHandler", + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", "outputs": [ { - "internalType": "contract IRewardHandler", + "internalType": "uint256", "name": "", - "type": "address" + "type": "uint256" } ], "stateMutability": "view", @@ -27466,65 +62525,92 @@ }, { "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, { "internalType": "uint256", - "name": "_burnFee", + "name": "amount", "type": "uint256" } ], - "name": "setBurnFee", - "outputs": [], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ { "internalType": "uint256", - "name": "_liquidationPenalty", + "name": "", "type": "uint256" } ], - "name": "setLiquidationPenalty", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + }, { "internalType": "uint256", - "name": "_ratio", + "name": "_amount", "type": "uint256" } ], - "name": "setRatio", + "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [ + "inputs": [], + "name": "decimals", + "outputs": [ { - "internalType": "address", - "name": "_treasury", - "type": "address" + "internalType": "uint8", + "name": "", + "type": "uint8" } ], - "name": "setTreasury", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "inputs": [ { - "internalType": "bytes4", - "name": "_interfaceId", - "type": "bytes4" + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "subtractedValue", + "type": "uint256" } ], - "name": "supportsInterface", + "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", @@ -27532,43 +62618,59 @@ "type": "bool" } ], - "stateMutability": "pure", + "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [], - "name": "tcapOracle", + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "addedValue", + "type": "uint256" + } + ], + "name": "increaseAllowance", "outputs": [ { - "internalType": "contract ChainlinkOracle", + "internalType": "bool", "name": "", - "type": "address" + "type": "bool" } ], - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", - "name": "newOwner", + "name": "_account", "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" } ], - "name": "transferOwnership", + "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], - "name": "treasury", + "name": "name", "outputs": [ { - "internalType": "address", + "internalType": "string", "name": "", - "type": "address" + "type": "string" } ], "stateMutability": "view", @@ -27576,20 +62678,20 @@ }, { "inputs": [], - "name": "unpause", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ + "name": "symbol", + "outputs": [ { - "internalType": "address", + "internalType": "string", "name": "", - "type": "address" + "type": "string" } ], - "name": "userToVault", + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", "outputs": [ { "internalType": "uint256", @@ -27602,72 +62704,77 @@ }, { "inputs": [ + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, { "internalType": "uint256", - "name": "", + "name": "amount", "type": "uint256" } ], - "name": "vaults", + "name": "transfer", "outputs": [ { - "internalType": "uint256", - "name": "Id", - "type": "uint256" + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" }, { - "internalType": "uint256", - "name": "Collateral", - "type": "uint256" + "internalType": "address", + "name": "recipient", + "type": "address" }, { "internalType": "uint256", - "name": "Debt", + "name": "amount", "type": "uint256" - }, + } + ], + "name": "transferFrom", + "outputs": [ { - "internalType": "address", - "name": "Owner", - "type": "address" + "internalType": "bool", + "name": "", + "type": "bool" } ], - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function" } ] }, - "Orchestrator": { - "address": "0x32ac6dBaf90A4C45f160D13B32fDD10D75D09976", + "LinkOracle": { + "address": "0x92c4bcdb5c13d9c67f84ba2aaa0879b0ece6d128", "abi": [ { "inputs": [ { "internalType": "address", - "name": "_guardian", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_owner", + "name": "_aggregator", "type": "address" }, { - "indexed": false, "internalType": "address", - "name": "guardian", + "name": "_timelock", "type": "address" } ], - "name": "GuardianSet", - "type": "event" + "stateMutability": "nonpayable", + "type": "constructor" }, { "anonymous": false, @@ -27689,127 +62796,78 @@ "type": "event" }, { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "target", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "string", - "name": "signature", - "type": "string" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "TransactionExecuted", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "contract TCAP", - "name": "_tcap", - "type": "address" - }, + "inputs": [], + "name": "getLatestAnswer", + "outputs": [ { - "internalType": "contract IVaultHandler", - "name": "_vault", - "type": "address" + "internalType": "int256", + "name": "", + "type": "int256" } ], - "name": "addTCAPVault", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { - "inputs": [ + "inputs": [], + "name": "getLatestRound", + "outputs": [ { - "internalType": "contract TCAP", - "name": "_tcap", - "type": "address" + "internalType": "uint80", + "name": "", + "type": "uint80" }, { - "internalType": "bool", - "name": "_enable", - "type": "bool" - } - ], - "name": "enableTCAPCap", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "target", - "type": "address" + "internalType": "int256", + "name": "", + "type": "int256" }, { "internalType": "uint256", - "name": "value", + "name": "", "type": "uint256" }, { - "internalType": "string", - "name": "signature", - "type": "string" + "internalType": "uint256", + "name": "", + "type": "uint256" }, { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "executeTransaction", - "outputs": [ - { - "internalType": "bytes", + "internalType": "uint80", "name": "", - "type": "bytes" + "type": "uint80" } ], - "stateMutability": "payable", + "stateMutability": "view", "type": "function" }, { "inputs": [], - "name": "guardian", + "name": "getLatestTimestamp", "outputs": [ { - "internalType": "address", + "internalType": "uint256", "name": "", - "type": "address" + "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { - "inputs": [], - "name": "owner", + "inputs": [ + { + "internalType": "uint80", + "name": "_id", + "type": "uint80" + } + ], + "name": "getPreviousAnswer", "outputs": [ { - "internalType": "address", + "internalType": "int256", "name": "", - "type": "address" + "type": "int256" } ], "stateMutability": "view", @@ -27818,68 +62876,77 @@ { "inputs": [ { - "internalType": "contract IVaultHandler", - "name": "_vault", - "type": "address" + "internalType": "uint80", + "name": "_id", + "type": "uint80" } ], - "name": "pauseVault", - "outputs": [], - "stateMutability": "nonpayable", + "name": "getPreviousTimestamp", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", "type": "function" }, { "inputs": [ { - "internalType": "contract TCAP", - "name": "_tcap", - "type": "address" + "internalType": "uint80", + "name": "_id", + "type": "uint80" + } + ], + "name": "getRound", + "outputs": [ + { + "internalType": "uint80", + "name": "", + "type": "uint80" }, { - "internalType": "contract IVaultHandler", - "name": "_vault", - "type": "address" + "internalType": "int256", + "name": "", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint80", + "name": "", + "type": "uint80" } ], - "name": "removeTCAPVault", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ + "name": "owner", + "outputs": [ { "internalType": "address", - "name": "_to", + "name": "", "type": "address" } ], - "name": "retrieveETH", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { - "inputs": [ - { - "internalType": "contract IVaultHandler", - "name": "_vault", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_burnFee", - "type": "uint256" - } - ], - "name": "setBurnFee", + "inputs": [], + "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" @@ -27887,12 +62954,12 @@ { "inputs": [ { - "internalType": "contract IVaultHandler", - "name": "_vault", + "internalType": "address", + "name": "_aggregator", "type": "address" } ], - "name": "setEmergencyBurnFee", + "name": "setReferenceContract", "outputs": [], "stateMutability": "nonpayable", "type": "function" @@ -27900,143 +62967,155 @@ { "inputs": [ { - "internalType": "contract IVaultHandler", - "name": "_vault", - "type": "address" + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" } ], - "name": "setEmergencyLiquidationPenalty", - "outputs": [], - "stateMutability": "nonpayable", + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "address", - "name": "_guardian", + "name": "newOwner", "type": "address" } ], - "name": "setGuardian", + "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" - }, + } + ] + }, + "LinkVaultHandler": { + "address": "0xbEB44Febc550f69Ff17f8Aa8eeC070B95eF369ba", + "abi": [ { "inputs": [ { - "internalType": "contract IVaultHandler", - "name": "_vault", + "internalType": "contract Orchestrator", + "name": "_orchestrator", "type": "address" }, { "internalType": "uint256", - "name": "_liquidationPenalty", + "name": "_divisor", "type": "uint256" - } - ], - "name": "setLiquidationPenalty", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IVaultHandler", - "name": "_vault", - "type": "address" }, { "internalType": "uint256", "name": "_ratio", "type": "uint256" - } - ], - "name": "setRatio", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ + }, { - "internalType": "contract TCAP", - "name": "_tcap", - "type": "address" + "internalType": "uint256", + "name": "_burnFee", + "type": "uint256" }, { "internalType": "uint256", - "name": "_cap", + "name": "_liquidationPenalty", "type": "uint256" - } - ], - "name": "setTCAPCap", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ + }, { "internalType": "address", - "name": "newOwner", + "name": "_tcapOracle", + "type": "address" + }, + { + "internalType": "contract TCAP", + "name": "_tcapAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_collateralAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_collateralOracle", + "type": "address" + }, + { + "internalType": "address", + "name": "_ethOracle", + "type": "address" + }, + { + "internalType": "address", + "name": "_rewardHandler", + "type": "address" + }, + { + "internalType": "address", + "name": "_treasury", "type": "address" } ], - "name": "transferOwnership", - "outputs": [], "stateMutability": "nonpayable", - "type": "function" + "type": "constructor" }, { + "anonymous": false, "inputs": [ { - "internalType": "contract IVaultHandler", - "name": "_vault", + "indexed": true, + "internalType": "address", + "name": "_owner", "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" } ], - "name": "unpauseVault", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "name": "CollateralAdded", + "type": "event" }, { - "stateMutability": "payable", - "type": "receive" - } - ] - }, - "TCAP": { - "address": "0x565224C2b5Bdf33f3970d35f82945075F90128F4", - "abi": [ - { + "anonymous": false, "inputs": [ { - "internalType": "string", - "name": "_name", - "type": "string" - }, - { - "internalType": "string", - "name": "_symbol", - "type": "string" + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" }, { + "indexed": true, "internalType": "uint256", - "name": "_cap", + "name": "_id", "type": "uint256" }, { - "internalType": "contract Orchestrator", - "name": "_orchestrator", - "type": "address" + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" } ], - "stateMutability": "nonpayable", - "type": "constructor" + "name": "CollateralRemoved", + "type": "event" }, { "anonymous": false, @@ -28044,23 +63123,36 @@ { "indexed": true, "internalType": "address", - "name": "owner", + "name": "_owner", "type": "address" }, + { + "indexed": false, + "internalType": "uint256", + "name": "_burnFee", + "type": "uint256" + } + ], + "name": "NewBurnFee", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ { "indexed": true, "internalType": "address", - "name": "spender", + "name": "_owner", "type": "address" }, { "indexed": false, "internalType": "uint256", - "name": "value", + "name": "_liquidationPenalty", "type": "uint256" } ], - "name": "Approval", + "name": "NewLiquidationPenalty", "type": "event" }, { @@ -28075,11 +63167,11 @@ { "indexed": false, "internalType": "uint256", - "name": "_amount", + "name": "_ratio", "type": "uint256" } ], - "name": "NewCap", + "name": "NewRatio", "type": "event" }, { @@ -28093,12 +63185,12 @@ }, { "indexed": false, - "internalType": "bool", - "name": "_enable", - "type": "bool" + "internalType": "address", + "name": "_tresury", + "type": "address" } ], - "name": "NewCapEnabled", + "name": "NewTreasury", "type": "event" }, { @@ -28124,25 +63216,32 @@ "anonymous": false, "inputs": [ { - "indexed": true, + "indexed": false, "internalType": "address", - "name": "from", + "name": "account", "type": "address" - }, + } + ], + "name": "Paused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ { - "indexed": true, + "indexed": false, "internalType": "address", - "name": "to", + "name": "_token", "type": "address" }, { "indexed": false, "internalType": "uint256", - "name": "value", + "name": "_amount", "type": "uint256" } ], - "name": "Transfer", + "name": "Recovered", "type": "event" }, { @@ -28150,158 +63249,197 @@ "inputs": [ { "indexed": true, - "internalType": "address", - "name": "_owner", - "type": "address" + "internalType": "bytes32", + "name": "role", + "type": "bytes32" }, { "indexed": true, - "internalType": "address", - "name": "_tokenHandler", - "type": "address" + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" } ], - "name": "VaultHandlerAdded", + "name": "RoleAdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, { "indexed": true, "internalType": "address", - "name": "_owner", + "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", - "name": "_tokenHandler", + "name": "sender", "type": "address" } ], - "name": "VaultHandlerRemoved", + "name": "RoleGranted", "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, "internalType": "address", - "name": "_vaultHandler", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", "type": "address" } ], - "name": "addVaultHandler", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "name": "RoleRevoked", + "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": true, "internalType": "address", - "name": "owner", + "name": "_owner", "type": "address" }, { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, { + "indexed": false, "internalType": "uint256", - "name": "", + "name": "_amount", "type": "uint256" } ], - "stateMutability": "view", - "type": "function" + "name": "TokensBurned", + "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": true, "internalType": "address", - "name": "spender", + "name": "_owner", "type": "address" }, { + "indexed": true, "internalType": "uint256", - "name": "amount", + "name": "_id", "type": "uint256" - } - ], - "name": "approve", - "outputs": [ + }, { - "internalType": "bool", - "name": "", - "type": "bool" + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" } ], - "stateMutability": "nonpayable", - "type": "function" + "name": "TokensMinted", + "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], - "name": "balanceOf", - "outputs": [ + "name": "Unpaused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, { + "indexed": true, "internalType": "uint256", - "name": "", + "name": "_id", "type": "uint256" } ], - "stateMutability": "view", - "type": "function" + "name": "VaultCreated", + "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": true, + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + }, + { + "indexed": true, "internalType": "address", - "name": "_account", + "name": "_liquidator", "type": "address" }, { + "indexed": false, "internalType": "uint256", - "name": "_amount", + "name": "_liquidationCollateral", "type": "uint256" - } - ], - "name": "burn", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "cap", - "outputs": [ + }, { + "indexed": false, "internalType": "uint256", - "name": "", + "name": "_reward", "type": "uint256" } ], - "stateMutability": "view", - "type": "function" + "name": "VaultLiquidated", + "type": "event" }, { "inputs": [], - "name": "capEnabled", + "name": "DEFAULT_ADMIN_ROLE", "outputs": [ { - "internalType": "bool", + "internalType": "bytes32", "name": "", - "type": "bool" + "type": "bytes32" } ], "stateMutability": "view", @@ -28309,104 +63447,51 @@ }, { "inputs": [], - "name": "decimals", + "name": "ETHPriceOracle", "outputs": [ { - "internalType": "uint8", + "internalType": "contract ChainlinkOracle", "name": "", - "type": "uint8" + "type": "address" } ], "stateMutability": "view", "type": "function" }, { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "subtractedValue", - "type": "uint256" - } - ], - "name": "decreaseAllowance", + "inputs": [], + "name": "MAX_FEE", "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bool", - "name": "_enable", - "type": "bool" - } - ], - "name": "enableCap", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, { "internalType": "uint256", - "name": "addedValue", - "type": "uint256" - } - ], - "name": "increaseAllowance", - "outputs": [ - { - "internalType": "bool", "name": "", - "type": "bool" + "type": "uint256" } ], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { - "inputs": [ - { - "internalType": "address", - "name": "_account", - "type": "address" - }, + "inputs": [], + "name": "MIN_RATIO", + "outputs": [ { "internalType": "uint256", - "name": "_amount", + "name": "", "type": "uint256" } ], - "name": "mint", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "inputs": [], - "name": "name", + "name": "TCAPPrice", "outputs": [ { - "internalType": "string", - "name": "", - "type": "string" + "internalType": "uint256", + "name": "price", + "type": "uint256" } ], "stateMutability": "view", @@ -28414,10 +63499,10 @@ }, { "inputs": [], - "name": "owner", + "name": "TCAPToken", "outputs": [ { - "internalType": "address", + "internalType": "contract TCAP", "name": "", "type": "address" } @@ -28428,19 +63513,12 @@ { "inputs": [ { - "internalType": "address", - "name": "_vaultHandler", - "type": "address" + "internalType": "uint256", + "name": "_amount", + "type": "uint256" } ], - "name": "removeVaultHandler", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", + "name": "addCollateral", "outputs": [], "stateMutability": "nonpayable", "type": "function" @@ -28449,42 +63527,36 @@ "inputs": [ { "internalType": "uint256", - "name": "_cap", + "name": "_amount", "type": "uint256" } ], - "name": "setCap", + "name": "burn", "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "payable", "type": "function" }, { - "inputs": [ - { - "internalType": "bytes4", - "name": "_interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", + "inputs": [], + "name": "burnFee", "outputs": [ { - "internalType": "bool", + "internalType": "uint256", "name": "", - "type": "bool" + "type": "uint256" } ], - "stateMutability": "pure", + "stateMutability": "view", "type": "function" }, { "inputs": [], - "name": "symbol", + "name": "collateralContract", "outputs": [ { - "internalType": "string", + "internalType": "contract IERC20", "name": "", - "type": "string" + "type": "address" } ], "stateMutability": "view", @@ -28492,191 +63564,102 @@ }, { "inputs": [], - "name": "totalSupply", + "name": "collateralPriceOracle", "outputs": [ { - "internalType": "uint256", + "internalType": "contract ChainlinkOracle", "name": "", - "type": "uint256" + "type": "address" } ], "stateMutability": "view", "type": "function" }, { - "inputs": [ - { - "internalType": "address", - "name": "recipient", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "transfer", + "inputs": [], + "name": "counter", "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "address", - "name": "recipient", - "type": "address" - }, { "internalType": "uint256", - "name": "amount", + "name": "_value", "type": "uint256" } ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", + "inputs": [], + "name": "createVault", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "vaultHandlers", + "inputs": [], + "name": "divisor", "outputs": [ { - "internalType": "bool", + "internalType": "uint256", "name": "", - "type": "bool" + "type": "uint256" } ], "stateMutability": "view", "type": "function" - } - ] - }, - "TCAPOracle": { - "address": "0x87388c142a3848F966FBA7Db22663D9CCa7d8a86", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "_aggregator", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" + "internalType": "uint256", + "name": "_amount", + "type": "uint256" } ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "inputs": [], - "name": "getLatestAnswer", + "name": "getFee", "outputs": [ { - "internalType": "int256", - "name": "", - "type": "int256" + "internalType": "uint256", + "name": "fee", + "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { - "inputs": [], - "name": "getLatestRound", - "outputs": [ - { - "internalType": "uint80", - "name": "", - "type": "uint80" - }, - { - "internalType": "int256", - "name": "", - "type": "int256" - }, + "inputs": [ { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, + "internalType": "contract ChainlinkOracle", + "name": "_oracle", + "type": "address" + } + ], + "name": "getOraclePrice", + "outputs": [ { "internalType": "uint256", - "name": "", + "name": "price", "type": "uint256" - }, - { - "internalType": "uint80", - "name": "", - "type": "uint80" } ], "stateMutability": "view", "type": "function" }, { - "inputs": [], - "name": "getLatestTimestamp", + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", "outputs": [ { - "internalType": "uint256", + "internalType": "bytes32", "name": "", - "type": "uint256" + "type": "bytes32" } ], "stateMutability": "view", @@ -28685,17 +63668,22 @@ { "inputs": [ { - "internalType": "uint80", - "name": "_id", - "type": "uint80" + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" } ], - "name": "getPreviousAnswer", + "name": "getRoleMember", "outputs": [ { - "internalType": "int256", + "internalType": "address", "name": "", - "type": "int256" + "type": "address" } ], "stateMutability": "view", @@ -28704,12 +63692,12 @@ { "inputs": [ { - "internalType": "uint80", - "name": "_id", - "type": "uint80" + "internalType": "bytes32", + "name": "role", + "type": "bytes32" } ], - "name": "getPreviousTimestamp", + "name": "getRoleMemberCount", "outputs": [ { "internalType": "uint256", @@ -28723,22 +63711,17 @@ { "inputs": [ { - "internalType": "uint80", + "internalType": "uint256", "name": "_id", - "type": "uint80" + "type": "uint256" } ], - "name": "getRound", + "name": "getVault", "outputs": [ { - "internalType": "uint80", - "name": "", - "type": "uint80" - }, - { - "internalType": "int256", + "internalType": "uint256", "name": "", - "type": "int256" + "type": "uint256" }, { "internalType": "uint256", @@ -28746,48 +63729,52 @@ "type": "uint256" }, { - "internalType": "uint256", + "internalType": "address", "name": "", - "type": "uint256" + "type": "address" }, { - "internalType": "uint80", + "internalType": "uint256", "name": "", - "type": "uint80" + "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { - "inputs": [], - "name": "owner", + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + } + ], + "name": "getVaultRatio", "outputs": [ { - "internalType": "address", - "name": "", - "type": "address" + "internalType": "uint256", + "name": "currentRatio", + "type": "uint256" } ], "stateMutability": "view", "type": "function" }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, { "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, { "internalType": "address", - "name": "_aggregator", + "name": "account", "type": "address" } ], - "name": "setReferenceContract", + "name": "grantRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" @@ -28795,12 +63782,17 @@ { "inputs": [ { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" } ], - "name": "supportsInterface", + "name": "hasRole", "outputs": [ { "internalType": "bool", @@ -28808,214 +63800,121 @@ "type": "bool" } ], - "stateMutability": "pure", + "stateMutability": "view", "type": "function" }, { "inputs": [ { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ] - }, - "Timelock": { - "address": "0x65a2B1B48b7997a50947E83aaf58E29a54a0B735", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "admin_", - "type": "address" + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" }, { "internalType": "uint256", - "name": "delay_", + "name": "_maxTCAP", "type": "uint256" } ], - "stateMutability": "nonpayable", - "type": "constructor" + "name": "liquidateVault", + "outputs": [], + "stateMutability": "payable", + "type": "function" }, { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "txHash", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "target", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "string", - "name": "signature", - "type": "string" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, + "inputs": [], + "name": "liquidationPenalty", + "outputs": [ { - "indexed": false, "internalType": "uint256", - "name": "eta", + "name": "", "type": "uint256" } ], - "name": "CancelTransaction", - "type": "event" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "bytes32", - "name": "txHash", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "target", - "type": "address" - }, - { - "indexed": false, "internalType": "uint256", - "name": "value", + "name": "_vaultId", "type": "uint256" - }, - { - "indexed": false, - "internalType": "string", - "name": "signature", - "type": "string" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, + } + ], + "name": "liquidationReward", + "outputs": [ { - "indexed": false, "internalType": "uint256", - "name": "eta", + "name": "rewardCollateral", "type": "uint256" } ], - "name": "ExecuteTransaction", - "type": "event" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "address", - "name": "newAdmin", - "type": "address" + "internalType": "uint256", + "name": "_amount", + "type": "uint256" } ], - "name": "NewAdmin", - "type": "event" + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { - "anonymous": false, - "inputs": [ + "inputs": [], + "name": "oracleDigits", + "outputs": [ { - "indexed": true, "internalType": "uint256", - "name": "newDelay", + "name": "", "type": "uint256" } ], - "name": "NewDelay", - "type": "event" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, - "inputs": [ + "inputs": [], + "name": "owner", + "outputs": [ { - "indexed": true, "internalType": "address", - "name": "newPendingAdmin", + "name": "", "type": "address" } ], - "name": "NewPendingAdmin", - "type": "event" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "txHash", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "target", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "string", - "name": "signature", - "type": "string" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, + "inputs": [], + "name": "pause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "paused", + "outputs": [ { - "indexed": false, - "internalType": "uint256", - "name": "eta", - "type": "uint256" + "internalType": "bool", + "name": "", + "type": "bool" } ], - "name": "QueueTransaction", - "type": "event" + "stateMutability": "view", + "type": "function" }, { "inputs": [], - "name": "GRACE_PERIOD", + "name": "ratio", "outputs": [ { "internalType": "uint256", @@ -29027,91 +63926,74 @@ "type": "function" }, { - "inputs": [], - "name": "MAXIMUM_DELAY", - "outputs": [ + "inputs": [ + { + "internalType": "address", + "name": "_tokenAddress", + "type": "address" + }, { "internalType": "uint256", - "name": "", + "name": "_tokenAmount", "type": "uint256" } ], - "stateMutability": "view", + "name": "recoverERC20", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [], - "name": "MINIMUM_DELAY", - "outputs": [ + "inputs": [ { "internalType": "uint256", - "name": "", + "name": "_amount", "type": "uint256" } ], - "stateMutability": "view", + "name": "removeCollateral", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], - "name": "acceptAdmin", + "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [], - "name": "admin", - "outputs": [ + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, { "internalType": "address", - "name": "", + "name": "account", "type": "address" } ], - "stateMutability": "view", + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ - { - "internalType": "address", - "name": "target", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "string", - "name": "signature", - "type": "string" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, { "internalType": "uint256", - "name": "eta", + "name": "_amount", "type": "uint256" } ], - "name": "cancelTransaction", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "delay", + "name": "requiredCollateral", "outputs": [ { "internalType": "uint256", - "name": "", + "name": "collateral", "type": "uint256" } ], @@ -29120,49 +64002,47 @@ }, { "inputs": [ - { - "internalType": "address", - "name": "target", - "type": "address" - }, { "internalType": "uint256", - "name": "value", + "name": "_vaultId", "type": "uint256" - }, - { - "internalType": "string", - "name": "signature", - "type": "string" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, + } + ], + "name": "requiredLiquidationTCAP", + "outputs": [ { "internalType": "uint256", - "name": "eta", + "name": "amount", "type": "uint256" } ], - "name": "executeTransaction", - "outputs": [ + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ { - "internalType": "bytes", - "name": "", - "type": "bytes" + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" } ], - "stateMutability": "payable", + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], - "name": "pendingAdmin", + "name": "rewardHandler", "outputs": [ { - "internalType": "address", + "internalType": "contract IRewardHandler", "name": "", "type": "address" } @@ -29172,52 +64052,65 @@ }, { "inputs": [ - { - "internalType": "address", - "name": "target", - "type": "address" - }, { "internalType": "uint256", - "name": "value", + "name": "_burnFee", "type": "uint256" - }, - { - "internalType": "string", - "name": "signature", - "type": "string" - }, + } + ], + "name": "setBurnFee", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, + "internalType": "uint256", + "name": "_liquidationPenalty", + "type": "uint256" + } + ], + "name": "setLiquidationPenalty", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ { "internalType": "uint256", - "name": "eta", + "name": "_ratio", "type": "uint256" } ], - "name": "queueTransaction", - "outputs": [ + "name": "setRatio", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ { - "internalType": "bytes32", - "name": "", - "type": "bytes32" + "internalType": "address", + "name": "_treasury", + "type": "address" } ], + "name": "setTreasury", + "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { - "internalType": "bytes32", - "name": "", - "type": "bytes32" + "internalType": "bytes4", + "name": "_interfaceId", + "type": "bytes4" } ], - "name": "queuedTransactions", + "name": "supportsInterface", "outputs": [ { "internalType": "bool", @@ -29225,31 +64118,51 @@ "type": "bool" } ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "tcapOracle", + "outputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "", + "type": "address" + } + ], "stateMutability": "view", "type": "function" }, { "inputs": [ { - "internalType": "uint256", - "name": "delay_", - "type": "uint256" + "internalType": "address", + "name": "newOwner", + "type": "address" } ], - "name": "setDelay", + "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [ + "inputs": [], + "name": "treasury", + "outputs": [ { "internalType": "address", - "name": "pendingAdmin_", + "name": "", "type": "address" } ], - "name": "setPendingAdmin", + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "unpause", "outputs": [], "stateMutability": "nonpayable", "type": "function" @@ -29257,33 +64170,84 @@ { "inputs": [ { - "internalType": "bytes4", - "name": "_interfaceId", - "type": "bytes4" + "internalType": "address", + "name": "", + "type": "address" } ], - "name": "supportsInterface", + "name": "userToVault", "outputs": [ { - "internalType": "bool", + "internalType": "uint256", "name": "", - "type": "bool" + "type": "uint256" } ], - "stateMutability": "pure", + "stateMutability": "view", "type": "function" }, { - "stateMutability": "payable", - "type": "receive" + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "vaults", + "outputs": [ + { + "internalType": "uint256", + "name": "Id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "Collateral", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "Debt", + "type": "uint256" + }, + { + "internalType": "address", + "name": "Owner", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" } ] }, - "WBTC": { - "address": "0x200534AA6A1c47102C09232347373499B983D6EF", + "TCAP": { + "address": "0xa05Ea86407B08Eb814688E86827a21dc679aEa1C", "abi": [ { - "inputs": [], + "inputs": [ + { + "internalType": "string", + "name": "_name", + "type": "string" + }, + { + "internalType": "string", + "name": "_symbol", + "type": "string" + }, + { + "internalType": "uint256", + "name": "_cap", + "type": "uint256" + }, + { + "internalType": "contract Orchestrator", + "name": "_orchestrator", + "type": "address" + } + ], "stateMutability": "nonpayable", "type": "constructor" }, @@ -29318,118 +64282,152 @@ { "indexed": true, "internalType": "address", - "name": "from", + "name": "_owner", "type": "address" }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "NewCap", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ { "indexed": true, "internalType": "address", - "name": "to", + "name": "_owner", "type": "address" }, { "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" + "internalType": "bool", + "name": "_enable", + "type": "bool" } ], - "name": "Transfer", + "name": "NewCapEnabled", "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": true, "internalType": "address", - "name": "owner", + "name": "previousOwner", "type": "address" }, { + "indexed": true, "internalType": "address", - "name": "spender", + "name": "newOwner", "type": "address" } ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" + "name": "OwnershipTransferred", + "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": true, "internalType": "address", - "name": "spender", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", "type": "address" }, { + "indexed": false, "internalType": "uint256", - "name": "amount", + "name": "value", "type": "uint256" } ], - "name": "approve", - "outputs": [ + "name": "Transfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ { - "internalType": "bool", - "name": "", - "type": "bool" + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "_tokenHandler", + "type": "address" } ], - "stateMutability": "nonpayable", - "type": "function" + "name": "VaultHandlerAdded", + "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": true, "internalType": "address", - "name": "account", + "name": "_owner", "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ + }, { - "internalType": "uint256", - "name": "", - "type": "uint256" + "indexed": true, + "internalType": "address", + "name": "_tokenHandler", + "type": "address" } ], - "stateMutability": "view", - "type": "function" + "name": "VaultHandlerRemoved", + "type": "event" }, { "inputs": [ { "internalType": "address", - "name": "_account", + "name": "_vaultHandler", "type": "address" - }, - { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" } ], - "name": "burn", + "name": "addVaultHandler", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [], - "name": "decimals", + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", "outputs": [ { - "internalType": "uint8", + "internalType": "uint256", "name": "", - "type": "uint8" + "type": "uint256" } ], "stateMutability": "view", @@ -29444,11 +64442,11 @@ }, { "internalType": "uint256", - "name": "subtractedValue", + "name": "amount", "type": "uint256" } ], - "name": "decreaseAllowance", + "name": "approve", "outputs": [ { "internalType": "bool", @@ -29463,24 +64461,19 @@ "inputs": [ { "internalType": "address", - "name": "spender", + "name": "account", "type": "address" - }, - { - "internalType": "uint256", - "name": "addedValue", - "type": "uint256" } ], - "name": "increaseAllowance", + "name": "balanceOf", "outputs": [ { - "internalType": "bool", + "internalType": "uint256", "name": "", - "type": "bool" + "type": "uint256" } ], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { @@ -29496,19 +64489,19 @@ "type": "uint256" } ], - "name": "mint", + "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], - "name": "name", + "name": "cap", "outputs": [ { - "internalType": "string", + "internalType": "uint256", "name": "", - "type": "string" + "type": "uint256" } ], "stateMutability": "view", @@ -29516,12 +64509,12 @@ }, { "inputs": [], - "name": "symbol", + "name": "capEnabled", "outputs": [ { - "internalType": "string", + "internalType": "bool", "name": "", - "type": "string" + "type": "bool" } ], "stateMutability": "view", @@ -29529,12 +64522,12 @@ }, { "inputs": [], - "name": "totalSupply", + "name": "decimals", "outputs": [ { - "internalType": "uint256", + "internalType": "uint8", "name": "", - "type": "uint256" + "type": "uint8" } ], "stateMutability": "view", @@ -29544,16 +64537,16 @@ "inputs": [ { "internalType": "address", - "name": "recipient", + "name": "spender", "type": "address" }, { "internalType": "uint256", - "name": "amount", + "name": "subtractedValue", "type": "uint256" } ], - "name": "transfer", + "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", @@ -29566,147 +64559,82 @@ }, { "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "address", - "name": "recipient", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ { "internalType": "bool", - "name": "", + "name": "_enable", "type": "bool" } ], + "name": "enableCap", + "outputs": [], "stateMutability": "nonpayable", "type": "function" - } - ] - }, - "WETH": { - "address": "0x5D3E425A099c2863224d6D63b330Df0F22B299b9", - "abi": [ + }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "address", - "name": "src", - "type": "address" - }, - { - "indexed": true, "internalType": "address", - "name": "guy", + "name": "spender", "type": "address" }, { - "indexed": false, "internalType": "uint256", - "name": "wad", + "name": "addedValue", "type": "uint256" } ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "dst", - "type": "address" - }, + "name": "increaseAllowance", + "outputs": [ { - "indexed": false, - "internalType": "uint256", - "name": "wad", - "type": "uint256" + "internalType": "bool", + "name": "", + "type": "bool" } ], - "name": "Deposit", - "type": "event" + "stateMutability": "nonpayable", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "address", - "name": "src", - "type": "address" - }, - { - "indexed": true, "internalType": "address", - "name": "dst", + "name": "_account", "type": "address" }, { - "indexed": false, "internalType": "uint256", - "name": "wad", + "name": "_amount", "type": "uint256" } ], - "name": "Transfer", - "type": "event" + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "src", - "type": "address" - }, + "inputs": [], + "name": "name", + "outputs": [ { - "indexed": false, - "internalType": "uint256", - "name": "wad", - "type": "uint256" + "internalType": "string", + "name": "", + "type": "string" } ], - "name": "Withdrawal", - "type": "event" + "stateMutability": "view", + "type": "function" }, { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, + "inputs": [], + "name": "owner", + "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], "stateMutability": "view", "type": "function" }, @@ -29714,76 +64642,52 @@ "inputs": [ { "internalType": "address", - "name": "guy", + "name": "_vaultHandler", "type": "address" - }, - { - "internalType": "uint256", - "name": "wad", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" } ], + "name": "removeVaultHandler", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ { "internalType": "uint256", - "name": "", + "name": "_cap", "type": "uint256" } ], - "stateMutability": "view", + "name": "setCap", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [], - "name": "decimals", - "outputs": [ + "inputs": [ { - "internalType": "uint8", - "name": "", - "type": "uint8" + "internalType": "bytes4", + "name": "_interfaceId", + "type": "bytes4" } ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "deposit", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [], - "name": "name", + "name": "supportsInterface", "outputs": [ { - "internalType": "string", + "internalType": "bool", "name": "", - "type": "string" + "type": "bool" } ], - "stateMutability": "view", + "stateMutability": "pure", "type": "function" }, { @@ -29816,12 +64720,12 @@ "inputs": [ { "internalType": "address", - "name": "dst", + "name": "recipient", "type": "address" }, { "internalType": "uint256", - "name": "wad", + "name": "amount", "type": "uint256" } ], @@ -29840,17 +64744,17 @@ "inputs": [ { "internalType": "address", - "name": "src", + "name": "sender", "type": "address" }, { "internalType": "address", - "name": "dst", + "name": "recipient", "type": "address" }, { "internalType": "uint256", - "name": "wad", + "name": "amount", "type": "uint256" } ], @@ -29868,20 +64772,39 @@ { "inputs": [ { - "internalType": "uint256", - "name": "wad", - "type": "uint256" + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "vaultHandlers", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" } ], - "name": "withdraw", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" } ] }, - "WETHOracle": { - "address": "0x731Aa03C683Afb292732C31c1d50C491B8d8043F", + "TCAPOracle": { + "address": "0x73D0e1C88DDE450DE5dEa67778E4d48F01b809C7", "abi": [ { "inputs": [ @@ -30116,174 +65039,490 @@ } ] }, - "WETHRewardHandler": { - "address": "0x39347a6328e1D4601A389d4dB0B26aC305886fb0", + "Timelock": { + "address": "0x65a2B1B48b7997a50947E83aaf58E29a54a0B735", "abi": [ { "inputs": [ { "internalType": "address", - "name": "_owner", + "name": "admin_", "type": "address" }, { - "internalType": "address", - "name": "_rewardsToken", - "type": "address" + "internalType": "uint256", + "name": "delay_", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "txHash", + "type": "bytes32" }, { + "indexed": true, "internalType": "address", - "name": "_vault", + "name": "target", "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "string", + "name": "signature", + "type": "string" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "eta", + "type": "uint256" } ], - "stateMutability": "nonpayable", - "type": "constructor" + "name": "CancelTransaction", + "type": "event" }, { "anonymous": false, "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "txHash", + "type": "bytes32" + }, { "indexed": true, "internalType": "address", - "name": "previousOwner", + "name": "target", "type": "address" }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "string", + "name": "signature", + "type": "string" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "eta", + "type": "uint256" + } + ], + "name": "ExecuteTransaction", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ { "indexed": true, "internalType": "address", - "name": "newOwner", + "name": "newAdmin", "type": "address" } ], - "name": "OwnershipTransferred", + "name": "NewAdmin", "type": "event" }, { "anonymous": false, "inputs": [ { - "indexed": false, + "indexed": true, + "internalType": "uint256", + "name": "newDelay", + "type": "uint256" + } + ], + "name": "NewDelay", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, "internalType": "address", - "name": "account", + "name": "newPendingAdmin", "type": "address" } ], - "name": "Paused", + "name": "NewPendingAdmin", "type": "event" }, { "anonymous": false, "inputs": [ { - "indexed": false, + "indexed": true, + "internalType": "bytes32", + "name": "txHash", + "type": "bytes32" + }, + { + "indexed": true, "internalType": "address", - "name": "token", + "name": "target", "type": "address" }, { "indexed": false, "internalType": "uint256", - "name": "amount", + "name": "value", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "string", + "name": "signature", + "type": "string" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "eta", "type": "uint256" } ], - "name": "Recovered", + "name": "QueueTransaction", "type": "event" }, { - "anonymous": false, - "inputs": [ + "inputs": [], + "name": "GRACE_PERIOD", + "outputs": [ { - "indexed": false, "internalType": "uint256", - "name": "reward", + "name": "", "type": "uint256" } ], - "name": "RewardAdded", - "type": "event" + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MAXIMUM_DELAY", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MINIMUM_DELAY", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "acceptAdmin", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "admin", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, "internalType": "address", - "name": "user", + "name": "target", "type": "address" }, { - "indexed": false, "internalType": "uint256", - "name": "reward", + "name": "value", + "type": "uint256" + }, + { + "internalType": "string", + "name": "signature", + "type": "string" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "eta", "type": "uint256" } ], - "name": "RewardPaid", - "type": "event" + "name": "cancelTransaction", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "delay", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": false, + "internalType": "address", + "name": "target", + "type": "address" + }, + { "internalType": "uint256", - "name": "newDuration", + "name": "value", + "type": "uint256" + }, + { + "internalType": "string", + "name": "signature", + "type": "string" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "eta", "type": "uint256" } ], - "name": "RewardsDurationUpdated", - "type": "event" + "name": "executeTransaction", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "pendingAdmin", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" + "internalType": "address", + "name": "target", + "type": "address" }, { - "indexed": true, - "internalType": "bytes32", - "name": "previousAdminRole", - "type": "bytes32" + "internalType": "uint256", + "name": "value", + "type": "uint256" }, { - "indexed": true, + "internalType": "string", + "name": "signature", + "type": "string" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "eta", + "type": "uint256" + } + ], + "name": "queueTransaction", + "outputs": [ + { "internalType": "bytes32", - "name": "newAdminRole", + "name": "", "type": "bytes32" } ], - "name": "RoleAdminChanged", - "type": "event" + "stateMutability": "nonpayable", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, "internalType": "bytes32", - "name": "role", + "name": "", "type": "bytes32" - }, + } + ], + "name": "queuedTransactions", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "delay_", + "type": "uint256" + } + ], + "name": "setDelay", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "pendingAdmin_", + "type": "address" + } + ], + "name": "setPendingAdmin", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "_interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "stateMutability": "payable", + "type": "receive" + } + ] + }, + "WBTC": { + "address": "0x200534AA6A1c47102C09232347373499B983D6EF", + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ { "indexed": true, "internalType": "address", - "name": "account", + "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", - "name": "sender", + "name": "spender", "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" } ], - "name": "RoleGranted", + "name": "Approval", "type": "event" }, { @@ -30291,85 +65530,119 @@ "inputs": [ { "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" + "internalType": "address", + "name": "from", + "type": "address" }, { "indexed": true, "internalType": "address", - "name": "account", + "name": "to", "type": "address" }, { - "indexed": true, + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { "internalType": "address", - "name": "sender", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", "type": "address" } ], - "name": "RoleRevoked", - "type": "event" + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, "internalType": "address", - "name": "user", + "name": "spender", "type": "address" }, { - "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], - "name": "Staked", - "type": "event" + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], - "name": "Unpaused", - "type": "event" + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, "internalType": "address", - "name": "user", + "name": "_account", "type": "address" }, { - "indexed": false, "internalType": "uint256", - "name": "amount", + "name": "_amount", "type": "uint256" } ], - "name": "Withdrawn", - "type": "event" + "name": "burn", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { "inputs": [], - "name": "DEFAULT_ADMIN_ROLE", + "name": "decimals", "outputs": [ { - "internalType": "bytes32", + "internalType": "uint8", "name": "", - "type": "bytes32" + "type": "uint8" } ], "stateMutability": "view", @@ -30379,63 +65652,97 @@ "inputs": [ { "internalType": "address", - "name": "_account", + "name": "spender", "type": "address" + }, + { + "internalType": "uint256", + "name": "subtractedValue", + "type": "uint256" } ], - "name": "balanceOf", + "name": "decreaseAllowance", "outputs": [ { - "internalType": "uint256", + "internalType": "bool", "name": "", - "type": "uint256" + "type": "bool" } ], - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", - "name": "_account", + "name": "spender", "type": "address" + }, + { + "internalType": "uint256", + "name": "addedValue", + "type": "uint256" } ], - "name": "earned", + "name": "increaseAllowance", "outputs": [ { - "internalType": "uint256", + "internalType": "bool", "name": "", - "type": "uint256" + "type": "bool" } ], - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", - "name": "_staker", + "name": "_account", "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" } ], - "name": "exit", + "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], - "name": "getReward", - "outputs": [], - "stateMutability": "nonpayable", + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", "type": "function" }, { "inputs": [], - "name": "getRewardForDuration", + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", "outputs": [ { "internalType": "uint256", @@ -30450,159 +65757,205 @@ "inputs": [ { "internalType": "address", - "name": "_staker", + "name": "recipient", "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" } ], - "name": "getRewardFromVault", - "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" } ], - "name": "getRoleAdmin", + "name": "transferFrom", "outputs": [ { - "internalType": "bytes32", + "internalType": "bool", "name": "", - "type": "bytes32" + "type": "bool" } ], - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function" - }, + } + ] + }, + "WETH": { + "address": "0x7d794701021fC4Bc9B2761519AA62DdB29E775Cf", + "abi": [ { + "anonymous": false, "inputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" + "indexed": true, + "internalType": "address", + "name": "src", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "guy", + "type": "address" }, { + "indexed": false, "internalType": "uint256", - "name": "index", + "name": "wad", "type": "uint256" } ], - "name": "getRoleMember", - "outputs": [ + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ { + "indexed": true, "internalType": "address", - "name": "", + "name": "dst", "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "wad", + "type": "uint256" } ], - "stateMutability": "view", - "type": "function" + "name": "Deposit", + "type": "event" }, { + "anonymous": false, "inputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "getRoleMemberCount", - "outputs": [ + "indexed": true, + "internalType": "address", + "name": "src", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "dst", + "type": "address" + }, { + "indexed": false, "internalType": "uint256", - "name": "", + "name": "wad", "type": "uint256" } ], - "stateMutability": "view", - "type": "function" + "name": "Transfer", + "type": "event" }, { + "anonymous": false, "inputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { + "indexed": true, "internalType": "address", - "name": "account", + "name": "src", "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "wad", + "type": "uint256" } ], - "name": "grantRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "name": "Withdrawal", + "type": "event" }, { "inputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" + "internalType": "address", + "name": "", + "type": "address" }, { "internalType": "address", - "name": "account", + "name": "", "type": "address" } ], - "name": "hasRole", + "name": "allowance", "outputs": [ { - "internalType": "bool", + "internalType": "uint256", "name": "", - "type": "bool" + "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { - "inputs": [], - "name": "lastTimeRewardApplicable", - "outputs": [ + "inputs": [ + { + "internalType": "address", + "name": "guy", + "type": "address" + }, { "internalType": "uint256", - "name": "", + "name": "wad", "type": "uint256" } ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "lastUpdateTime", + "name": "approve", "outputs": [ { - "internalType": "uint256", + "internalType": "bool", "name": "", - "type": "uint256" + "type": "bool" } ], - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { - "internalType": "uint256", - "name": "_a", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_b", - "type": "uint256" + "internalType": "address", + "name": "", + "type": "address" } ], - "name": "min", + "name": "balanceOf", "outputs": [ { "internalType": "uint256", @@ -30610,30 +65963,37 @@ "type": "uint256" } ], - "stateMutability": "pure", + "stateMutability": "view", "type": "function" }, { - "inputs": [ + "inputs": [], + "name": "decimals", + "outputs": [ { - "internalType": "uint256", - "name": "_reward", - "type": "uint256" + "internalType": "uint8", + "name": "", + "type": "uint8" } ], - "name": "notifyRewardAmount", + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "deposit", "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "payable", "type": "function" }, { "inputs": [], - "name": "owner", + "name": "name", "outputs": [ { - "internalType": "address", + "internalType": "string", "name": "", - "type": "address" + "type": "string" } ], "stateMutability": "view", @@ -30641,12 +66001,12 @@ }, { "inputs": [], - "name": "paused", + "name": "symbol", "outputs": [ { - "internalType": "bool", + "internalType": "string", "name": "", - "type": "bool" + "type": "string" } ], "stateMutability": "view", @@ -30654,7 +66014,7 @@ }, { "inputs": [], - "name": "periodFinish", + "name": "totalSupply", "outputs": [ { "internalType": "uint256", @@ -30669,71 +66029,111 @@ "inputs": [ { "internalType": "address", - "name": "_tokenAddress", + "name": "dst", "type": "address" }, { "internalType": "uint256", - "name": "_tokenAmount", + "name": "wad", "type": "uint256" } ], - "name": "recoverERC20", - "outputs": [], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], + "inputs": [ + { + "internalType": "address", + "name": "src", + "type": "address" + }, + { + "internalType": "address", + "name": "dst", + "type": "address" + }, + { + "internalType": "uint256", + "name": "wad", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, + "internalType": "uint256", + "name": "wad", + "type": "uint256" + } + ], + "name": "withdraw", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ] + }, + "WETHOracle": { + "address": "0x2b5726B892FD346Ed449271A54BeaffE24A88DdA", + "abi": [ + { + "inputs": [ { "internalType": "address", - "name": "account", + "name": "_aggregator", "type": "address" } ], - "name": "renounceRole", - "outputs": [], "stateMutability": "nonpayable", - "type": "function" + "type": "constructor" }, { + "anonymous": false, "inputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" }, { + "indexed": true, "internalType": "address", - "name": "account", + "name": "newOwner", "type": "address" } ], - "name": "revokeRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "name": "OwnershipTransferred", + "type": "event" }, { "inputs": [], - "name": "rewardPerToken", + "name": "getLatestAnswer", "outputs": [ { - "internalType": "uint256", + "internalType": "int256", "name": "", - "type": "uint256" + "type": "int256" } ], "stateMutability": "view", @@ -30741,12 +66141,32 @@ }, { "inputs": [], - "name": "rewardPerTokenStored", + "name": "getLatestRound", "outputs": [ + { + "internalType": "uint80", + "name": "", + "type": "uint80" + }, + { + "internalType": "int256", + "name": "", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, { "internalType": "uint256", "name": "", "type": "uint256" + }, + { + "internalType": "uint80", + "name": "", + "type": "uint80" } ], "stateMutability": "view", @@ -30754,7 +66174,7 @@ }, { "inputs": [], - "name": "rewardRate", + "name": "getLatestTimestamp", "outputs": [ { "internalType": "uint256", @@ -30768,43 +66188,36 @@ { "inputs": [ { - "internalType": "address", - "name": "", - "type": "address" + "internalType": "uint80", + "name": "_id", + "type": "uint80" } ], - "name": "rewards", + "name": "getPreviousAnswer", "outputs": [ { - "internalType": "uint256", + "internalType": "int256", "name": "", - "type": "uint256" + "type": "int256" } ], "stateMutability": "view", "type": "function" }, { - "inputs": [], - "name": "rewardsDuration", - "outputs": [ + "inputs": [ { - "internalType": "uint256", - "name": "", - "type": "uint256" + "internalType": "uint80", + "name": "_id", + "type": "uint80" } ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "rewardsToken", + "name": "getPreviousTimestamp", "outputs": [ { - "internalType": "contract IERC20", + "internalType": "uint256", "name": "", - "type": "address" + "type": "uint256" } ], "stateMutability": "view", @@ -30813,56 +66226,71 @@ { "inputs": [ { - "internalType": "uint256", - "name": "_rewardsDuration", - "type": "uint256" + "internalType": "uint80", + "name": "_id", + "type": "uint80" } ], - "name": "setRewardsDuration", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ + "name": "getRound", + "outputs": [ { - "internalType": "address", - "name": "_staker", - "type": "address" + "internalType": "uint80", + "name": "", + "type": "uint80" + }, + { + "internalType": "int256", + "name": "", + "type": "int256" }, { "internalType": "uint256", - "name": "_amount", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", "type": "uint256" + }, + { + "internalType": "uint80", + "name": "", + "type": "uint80" } ], - "name": "stake", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "inputs": [], - "name": "totalSupply", + "name": "owner", "outputs": [ { - "internalType": "uint256", + "internalType": "address", "name": "", - "type": "uint256" + "type": "address" } ], "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [ { "internalType": "address", - "name": "newOwner", + "name": "_aggregator", "type": "address" } ], - "name": "transferOwnership", + "name": "setReferenceContract", "outputs": [], "stateMutability": "nonpayable", "type": "function" @@ -30870,118 +66298,55 @@ { "inputs": [ { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "userRewardPerTokenPaid", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" } ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "vault", + "name": "supportsInterface", "outputs": [ { - "internalType": "address", + "internalType": "bool", "name": "", - "type": "address" + "type": "bool" } ], - "stateMutability": "view", + "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "address", - "name": "_staker", + "name": "newOwner", "type": "address" - }, - { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" } ], - "name": "withdraw", + "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ] }, - "WETHVaultHandler": { - "address": "0x093f8F7C7fCC6edf991309A5056feB5cA9579292", + "WETHRewardHandler": { + "address": "0x39347a6328e1D4601A389d4dB0B26aC305886fb0", "abi": [ { "inputs": [ - { - "internalType": "contract Orchestrator", - "name": "_orchestrator", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_divisor", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_ratio", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_burnFee", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_liquidationPenalty", - "type": "uint256" - }, - { - "internalType": "address", - "name": "_tcapOracle", - "type": "address" - }, - { - "internalType": "contract TCAP", - "name": "_tcapAddress", - "type": "address" - }, - { - "internalType": "address", - "name": "_collateralAddress", - "type": "address" - }, - { - "internalType": "address", - "name": "_collateralOracle", - "type": "address" - }, { "internalType": "address", - "name": "_ethOracle", + "name": "_owner", "type": "address" }, { "internalType": "address", - "name": "_rewardHandler", + "name": "_rewardsToken", "type": "address" }, { "internalType": "address", - "name": "_treasury", + "name": "_vault", "type": "address" } ], @@ -30994,124 +66359,62 @@ { "indexed": true, "internalType": "address", - "name": "_owner", + "name": "previousOwner", "type": "address" }, - { - "indexed": true, - "internalType": "uint256", - "name": "_id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - } - ], - "name": "CollateralAdded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ { "indexed": true, "internalType": "address", - "name": "_owner", + "name": "newOwner", "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "_id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_amount", - "type": "uint256" } ], - "name": "CollateralRemoved", + "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { - "indexed": true, + "indexed": false, "internalType": "address", - "name": "_owner", + "name": "account", "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_burnFee", - "type": "uint256" } ], - "name": "NewBurnFee", + "name": "Paused", "type": "event" }, { "anonymous": false, "inputs": [ { - "indexed": true, + "indexed": false, "internalType": "address", - "name": "_owner", + "name": "token", "type": "address" }, { "indexed": false, "internalType": "uint256", - "name": "_liquidationPenalty", + "name": "amount", "type": "uint256" } ], - "name": "NewLiquidationPenalty", + "name": "Recovered", "type": "event" }, { "anonymous": false, "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_owner", - "type": "address" - }, { "indexed": false, "internalType": "uint256", - "name": "_ratio", + "name": "reward", "type": "uint256" } ], - "name": "NewRatio", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_owner", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "_tresury", - "type": "address" - } - ], - "name": "NewTreasury", + "name": "RewardAdded", "type": "event" }, { @@ -31120,49 +66423,30 @@ { "indexed": true, "internalType": "address", - "name": "previousOwner", + "name": "user", "type": "address" }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ { "indexed": false, - "internalType": "address", - "name": "account", - "type": "address" + "internalType": "uint256", + "name": "reward", + "type": "uint256" } ], - "name": "Paused", + "name": "RewardPaid", "type": "event" }, { "anonymous": false, "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "_token", - "type": "address" - }, { "indexed": false, "internalType": "uint256", - "name": "_amount", + "name": "newDuration", "type": "uint256" } ], - "name": "Recovered", + "name": "RewardsDurationUpdated", "type": "event" }, { @@ -31246,48 +66530,17 @@ { "indexed": true, "internalType": "address", - "name": "_owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "_id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - } - ], - "name": "TokensBurned", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_owner", + "name": "user", "type": "address" }, - { - "indexed": true, - "internalType": "uint256", - "name": "_id", - "type": "uint256" - }, { "indexed": false, "internalType": "uint256", - "name": "_amount", + "name": "amount", "type": "uint256" } ], - "name": "TokensMinted", + "name": "Staked", "type": "event" }, { @@ -31309,48 +66562,17 @@ { "indexed": true, "internalType": "address", - "name": "_owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "_id", - "type": "uint256" - } - ], - "name": "VaultCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "_vaultId", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "_liquidator", + "name": "user", "type": "address" }, { "indexed": false, "internalType": "uint256", - "name": "_liquidationCollateral", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_reward", + "name": "amount", "type": "uint256" } ], - "name": "VaultLiquidated", + "name": "Withdrawn", "type": "event" }, { @@ -31367,34 +66589,14 @@ "type": "function" }, { - "inputs": [], - "name": "ETHPriceOracle", - "outputs": [ + "inputs": [ { - "internalType": "contract ChainlinkOracle", - "name": "", + "internalType": "address", + "name": "_account", "type": "address" } ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MAX_FEE", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MIN_RATIO", + "name": "balanceOf", "outputs": [ { "internalType": "uint256", @@ -31405,68 +66607,15 @@ "stateMutability": "view", "type": "function" }, - { - "inputs": [], - "name": "TCAPPrice", - "outputs": [ - { - "internalType": "uint256", - "name": "price", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "TCAPToken", - "outputs": [ - { - "internalType": "contract TCAP", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - } - ], - "name": "addCollateral", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "addCollateralETH", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, { "inputs": [ { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" + "internalType": "address", + "name": "_account", + "type": "address" } ], - "name": "burn", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [], - "name": "burnFee", + "name": "earned", "outputs": [ { "internalType": "uint256", @@ -31478,54 +66627,28 @@ "type": "function" }, { - "inputs": [], - "name": "collateralContract", - "outputs": [ - { - "internalType": "contract IERC20", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "collateralPriceOracle", - "outputs": [ + "inputs": [ { - "internalType": "contract ChainlinkOracle", - "name": "", + "internalType": "address", + "name": "_staker", "type": "address" } ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "counter", - "outputs": [ - { - "internalType": "uint256", - "name": "_value", - "type": "uint256" - } - ], - "stateMutability": "view", + "name": "exit", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], - "name": "createVault", + "name": "getReward", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], - "name": "divisor", + "name": "getRewardForDuration", "outputs": [ { "internalType": "uint256", @@ -31539,39 +66662,14 @@ { "inputs": [ { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - } - ], - "name": "getFee", - "outputs": [ - { - "internalType": "uint256", - "name": "fee", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract ChainlinkOracle", - "name": "_oracle", + "internalType": "address", + "name": "_staker", "type": "address" } ], - "name": "getOraclePrice", - "outputs": [ - { - "internalType": "uint256", - "name": "price", - "type": "uint256" - } - ], - "stateMutability": "view", + "name": "getRewardFromVault", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { @@ -31618,71 +66716,18 @@ "type": "function" }, { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "getRoleMemberCount", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_id", - "type": "uint256" - } - ], - "name": "getVault", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_vaultId", - "type": "uint256" + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" } ], - "name": "getVaultRatio", + "name": "getRoleMemberCount", "outputs": [ { "internalType": "uint256", - "name": "currentRatio", + "name": "", "type": "uint256" } ], @@ -31732,26 +66777,21 @@ "type": "function" }, { - "inputs": [ - { - "internalType": "uint256", - "name": "_vaultId", - "type": "uint256" - }, + "inputs": [], + "name": "lastTimeRewardApplicable", + "outputs": [ { "internalType": "uint256", - "name": "_maxTCAP", + "name": "", "type": "uint256" } ], - "name": "liquidateVault", - "outputs": [], - "stateMutability": "payable", + "stateMutability": "view", "type": "function" }, { "inputs": [], - "name": "liquidationPenalty", + "name": "lastUpdateTime", "outputs": [ { "internalType": "uint256", @@ -31766,47 +66806,39 @@ "inputs": [ { "internalType": "uint256", - "name": "_vaultId", + "name": "_a", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_b", "type": "uint256" } ], - "name": "liquidationReward", + "name": "min", "outputs": [ { "internalType": "uint256", - "name": "rewardCollateral", + "name": "", "type": "uint256" } ], - "stateMutability": "view", + "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "uint256", - "name": "_amount", + "name": "_reward", "type": "uint256" } ], - "name": "mint", + "name": "notifyRewardAmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, - { - "inputs": [], - "name": "oracleDigits", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, { "inputs": [], "name": "owner", @@ -31820,13 +66852,6 @@ "stateMutability": "view", "type": "function" }, - { - "inputs": [], - "name": "pause", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, { "inputs": [], "name": "paused", @@ -31842,7 +66867,7 @@ }, { "inputs": [], - "name": "ratio", + "name": "periodFinish", "outputs": [ { "internalType": "uint256", @@ -31872,14 +66897,8 @@ "type": "function" }, { - "inputs": [ - { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - } - ], - "name": "removeCollateral", + "inputs": [], + "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" @@ -31887,19 +66906,17 @@ { "inputs": [ { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" } ], - "name": "removeCollateralETH", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", + "name": "renounceRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" @@ -31917,24 +66934,31 @@ "type": "address" } ], - "name": "renounceRole", + "name": "revokeRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [ + "inputs": [], + "name": "rewardPerToken", + "outputs": [ { "internalType": "uint256", - "name": "_amount", + "name": "", "type": "uint256" } ], - "name": "requiredCollateral", + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "rewardPerTokenStored", "outputs": [ { "internalType": "uint256", - "name": "collateral", + "name": "", "type": "uint256" } ], @@ -31942,18 +66966,31 @@ "type": "function" }, { - "inputs": [ + "inputs": [], + "name": "rewardRate", + "outputs": [ { "internalType": "uint256", - "name": "_vaultId", + "name": "", "type": "uint256" } ], - "name": "requiredLiquidationTCAP", + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "rewards", "outputs": [ { "internalType": "uint256", - "name": "amount", + "name": "", "type": "uint256" } ], @@ -31961,29 +66998,24 @@ "type": "function" }, { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, + "inputs": [], + "name": "rewardsDuration", + "outputs": [ { - "internalType": "address", - "name": "account", - "type": "address" + "internalType": "uint256", + "name": "", + "type": "uint256" } ], - "name": "revokeRole", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "inputs": [], - "name": "rewardHandler", + "name": "rewardsToken", "outputs": [ { - "internalType": "contract IRewardHandler", + "internalType": "contract IERC20", "name": "", "type": "address" } @@ -31995,50 +67027,55 @@ "inputs": [ { "internalType": "uint256", - "name": "_burnFee", + "name": "_rewardsDuration", "type": "uint256" } ], - "name": "setBurnFee", + "name": "setRewardsDuration", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ + { + "internalType": "address", + "name": "_staker", + "type": "address" + }, { "internalType": "uint256", - "name": "_liquidationPenalty", + "name": "_amount", "type": "uint256" } ], - "name": "setLiquidationPenalty", + "name": "stake", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [ + "inputs": [], + "name": "totalSupply", + "outputs": [ { "internalType": "uint256", - "name": "_ratio", + "name": "", "type": "uint256" } ], - "name": "setRatio", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", - "name": "_treasury", + "name": "newOwner", "type": "address" } ], - "name": "setTreasury", + "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" @@ -32046,28 +67083,28 @@ { "inputs": [ { - "internalType": "bytes4", - "name": "_interfaceId", - "type": "bytes4" + "internalType": "address", + "name": "", + "type": "address" } ], - "name": "supportsInterface", + "name": "userRewardPerTokenPaid", "outputs": [ { - "internalType": "bool", + "internalType": "uint256", "name": "", - "type": "bool" + "type": "uint256" } ], - "stateMutability": "pure", + "stateMutability": "view", "type": "function" }, { "inputs": [], - "name": "tcapOracle", + "name": "vault", "outputs": [ { - "internalType": "contract ChainlinkOracle", + "internalType": "address", "name": "", "type": "address" } @@ -32079,109 +67116,342 @@ "inputs": [ { "internalType": "address", - "name": "newOwner", + "name": "_staker", "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" } ], - "name": "transferOwnership", + "name": "withdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" - }, + } + ] + }, + "WETHVaultHandler": { + "address": "0xC3f56D2E04025e7f15Cc5f890cb5465A6EDE613A", + "abi": [ { - "inputs": [], - "name": "treasury", - "outputs": [ + "inputs": [ + { + "internalType": "contract Orchestrator", + "name": "_orchestrator", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_divisor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_ratio", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_burnFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_liquidationPenalty", + "type": "uint256" + }, { "internalType": "address", - "name": "", + "name": "_tcapOracle", + "type": "address" + }, + { + "internalType": "contract TCAP", + "name": "_tcapAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_collateralAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_collateralOracle", + "type": "address" + }, + { + "internalType": "address", + "name": "_ethOracle", + "type": "address" + }, + { + "internalType": "address", + "name": "_rewardHandler", + "type": "address" + }, + { + "internalType": "address", + "name": "_treasury", "type": "address" } ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "unpause", - "outputs": [], "stateMutability": "nonpayable", - "type": "function" + "type": "constructor" }, { + "anonymous": false, "inputs": [ { + "indexed": true, "internalType": "address", - "name": "", + "name": "_owner", "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" } ], - "name": "userToVault", - "outputs": [ + "name": "CollateralAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, { + "indexed": true, "internalType": "uint256", - "name": "", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", "type": "uint256" } ], - "stateMutability": "view", - "type": "function" + "name": "CollateralRemoved", + "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, "internalType": "uint256", - "name": "", + "name": "_burnFee", "type": "uint256" } ], - "name": "vaults", - "outputs": [ + "name": "NewBurnFee", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, { + "indexed": false, "internalType": "uint256", - "name": "Id", + "name": "_liquidationPenalty", "type": "uint256" + } + ], + "name": "NewLiquidationPenalty", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" }, { + "indexed": false, "internalType": "uint256", - "name": "Collateral", + "name": "_ratio", "type": "uint256" + } + ], + "name": "NewRatio", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "_tresury", + "type": "address" + } + ], + "name": "NewTreasury", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "Paused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_token", + "type": "address" }, { + "indexed": false, "internalType": "uint256", - "name": "Debt", + "name": "_amount", "type": "uint256" + } + ], + "name": "Recovered", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" }, { + "indexed": true, "internalType": "address", - "name": "Owner", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", "type": "address" } ], - "stateMutability": "view", - "type": "function" - }, - { - "stateMutability": "payable", - "type": "receive" - } - ] - } - } - } - }, - "69": { - "okovan": { - "name": "okovan", - "chainId": "69", - "contracts": { - "AAVE": { - "address": "0x8F90583D4B7A8af2b662bAfed28F93A26ee2ffC6", - "abi": [ - { - "inputs": [], - "stateMutability": "nonpayable", - "type": "constructor" + "name": "RoleRevoked", + "type": "event" }, { "anonymous": false, @@ -32189,23 +67459,23 @@ { "indexed": true, "internalType": "address", - "name": "owner", + "name": "_owner", "type": "address" }, { "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" + "internalType": "uint256", + "name": "_id", + "type": "uint256" }, { "indexed": false, "internalType": "uint256", - "name": "value", + "name": "_amount", "type": "uint256" } ], - "name": "Approval", + "name": "TokensBurned", "type": "event" }, { @@ -32214,197 +67484,207 @@ { "indexed": true, "internalType": "address", - "name": "from", + "name": "_owner", "type": "address" }, { "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" + "internalType": "uint256", + "name": "_id", + "type": "uint256" }, { "indexed": false, "internalType": "uint256", - "name": "value", + "name": "_amount", "type": "uint256" } ], - "name": "Transfer", + "name": "TokensMinted", "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": false, "internalType": "address", - "name": "owner", + "name": "account", "type": "address" - }, + } + ], + "name": "Unpaused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ { + "indexed": true, "internalType": "address", - "name": "spender", + "name": "_owner", "type": "address" - } - ], - "name": "allowance", - "outputs": [ + }, { + "indexed": true, "internalType": "uint256", - "name": "", + "name": "_id", "type": "uint256" } ], - "stateMutability": "view", - "type": "function" + "name": "VaultCreated", + "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": true, + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + }, + { + "indexed": true, "internalType": "address", - "name": "spender", + "name": "_liquidator", "type": "address" }, { + "indexed": false, "internalType": "uint256", - "name": "amount", + "name": "_liquidationCollateral", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_reward", "type": "uint256" } ], - "name": "approve", + "name": "VaultLiquidated", + "type": "event" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", "outputs": [ { - "internalType": "bool", + "internalType": "bytes32", "name": "", - "type": "bool" + "type": "bytes32" } ], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "balanceOf", + "inputs": [], + "name": "ETHPriceOracle", "outputs": [ { - "internalType": "uint256", + "internalType": "contract ChainlinkOracle", "name": "", - "type": "uint256" + "type": "address" } ], "stateMutability": "view", "type": "function" }, { - "inputs": [ - { - "internalType": "address", - "name": "_account", - "type": "address" - }, + "inputs": [], + "name": "MAX_FEE", + "outputs": [ { "internalType": "uint256", - "name": "_amount", + "name": "", "type": "uint256" } ], - "name": "burn", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "inputs": [], - "name": "decimals", + "name": "MIN_RATIO", "outputs": [ { - "internalType": "uint8", + "internalType": "uint256", "name": "", - "type": "uint8" + "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, + "inputs": [], + "name": "TCAPPrice", + "outputs": [ { "internalType": "uint256", - "name": "subtractedValue", + "name": "price", "type": "uint256" } ], - "name": "decreaseAllowance", + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "TCAPToken", "outputs": [ { - "internalType": "bool", + "internalType": "contract TCAP", "name": "", - "type": "bool" + "type": "address" } ], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, { "internalType": "uint256", - "name": "addedValue", + "name": "_amount", "type": "uint256" } ], - "name": "increaseAllowance", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], + "name": "addCollateral", + "outputs": [], "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [], + "name": "addCollateralETH", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, { "inputs": [ - { - "internalType": "address", - "name": "_account", - "type": "address" - }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], - "name": "mint", + "name": "burn", "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "payable", "type": "function" }, { "inputs": [], - "name": "name", + "name": "burnFee", "outputs": [ { - "internalType": "string", + "internalType": "uint256", "name": "", - "type": "string" + "type": "uint256" } ], "stateMutability": "view", @@ -32412,12 +67692,12 @@ }, { "inputs": [], - "name": "symbol", + "name": "collateralContract", "outputs": [ { - "internalType": "string", + "internalType": "contract IERC20", "name": "", - "type": "string" + "type": "address" } ], "stateMutability": "view", @@ -32425,264 +67705,217 @@ }, { "inputs": [], - "name": "totalSupply", + "name": "collateralPriceOracle", "outputs": [ { - "internalType": "uint256", + "internalType": "contract ChainlinkOracle", "name": "", - "type": "uint256" + "type": "address" } ], "stateMutability": "view", "type": "function" }, { - "inputs": [ - { - "internalType": "address", - "name": "recipient", - "type": "address" - }, + "inputs": [], + "name": "counter", + "outputs": [ { "internalType": "uint256", - "name": "amount", + "name": "_value", "type": "uint256" } ], - "name": "transfer", + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "createVault", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "divisor", "outputs": [ { - "internalType": "bool", + "internalType": "uint256", "name": "", - "type": "bool" + "type": "uint256" } ], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "address", - "name": "recipient", - "type": "address" - }, { "internalType": "uint256", - "name": "amount", + "name": "_amount", "type": "uint256" } ], - "name": "transferFrom", + "name": "getFee", "outputs": [ { - "internalType": "bool", - "name": "", - "type": "bool" + "internalType": "uint256", + "name": "fee", + "type": "uint256" } ], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, - { - "stateMutability": "payable", - "type": "receive" - } - ] - }, - "AaveOracle": { - "address": "0x73Ebb8b08f056F451c2aA53dCAd7A35ce6aD52D0", - "abi": [ { "inputs": [ { - "internalType": "string", - "name": "_name", - "type": "string" - }, - { - "internalType": "string", - "name": "_symbol", - "type": "string" - }, + "internalType": "contract ChainlinkOracle", + "name": "_oracle", + "type": "address" + } + ], + "name": "getOraclePrice", + "outputs": [ { "internalType": "uint256", - "name": "_cap", + "name": "price", "type": "uint256" - }, - { - "internalType": "contract Orchestrator", - "name": "_orchestrator", - "type": "address" - }, - { - "internalType": "address", - "name": "_timelock", - "type": "address" } ], - "stateMutability": "nonpayable", - "type": "constructor" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" + "internalType": "bytes32", + "name": "", + "type": "bytes32" } ], - "name": "Approval", - "type": "event" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "address", - "name": "_owner", - "type": "address" + "internalType": "bytes32", + "name": "role", + "type": "bytes32" }, { - "indexed": false, "internalType": "uint256", - "name": "_amount", + "name": "index", "type": "uint256" } ], - "name": "NewCap", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ + "name": "getRoleMember", + "outputs": [ { - "indexed": true, "internalType": "address", - "name": "_owner", + "name": "", "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "_enable", - "type": "bool" } ], - "name": "NewCapEnabled", - "type": "event" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleMemberCount", + "outputs": [ { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" + "internalType": "uint256", + "name": "", + "type": "uint256" } ], - "name": "OwnershipTransferred", - "type": "event" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + } + ], + "name": "getVault", + "outputs": [ { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" + "internalType": "uint256", + "name": "", + "type": "uint256" }, { - "indexed": false, "internalType": "uint256", - "name": "value", + "name": "", "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ + }, { - "indexed": true, "internalType": "address", - "name": "_owner", + "name": "", "type": "address" }, { - "indexed": true, - "internalType": "address", - "name": "_tokenHandler", - "type": "address" + "internalType": "uint256", + "name": "", + "type": "uint256" } ], - "name": "VaultHandlerAdded", - "type": "event" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "address", - "name": "_owner", - "type": "address" - }, + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + } + ], + "name": "getVaultRatio", + "outputs": [ { - "indexed": true, - "internalType": "address", - "name": "_tokenHandler", - "type": "address" + "internalType": "uint256", + "name": "currentRatio", + "type": "uint256" } ], - "name": "VaultHandlerRemoved", - "type": "event" + "stateMutability": "view", + "type": "function" }, { "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, { "internalType": "address", - "name": "_vaultHandler", + "name": "account", "type": "address" } ], - "name": "addVaultHandler", + "name": "grantRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" @@ -32690,22 +67923,22 @@ { "inputs": [ { - "internalType": "address", - "name": "owner", - "type": "address" + "internalType": "bytes32", + "name": "role", + "type": "bytes32" }, { "internalType": "address", - "name": "spender", + "name": "account", "type": "address" } ], - "name": "allowance", + "name": "hasRole", "outputs": [ { - "internalType": "uint256", + "internalType": "bool", "name": "", - "type": "uint256" + "type": "bool" } ], "stateMutability": "view", @@ -32714,40 +67947,47 @@ { "inputs": [ { - "internalType": "address", - "name": "spender", - "type": "address" + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" }, { "internalType": "uint256", - "name": "amount", + "name": "_maxTCAP", "type": "uint256" } ], - "name": "approve", + "name": "liquidateVault", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "liquidationPenalty", "outputs": [ { - "internalType": "bool", + "internalType": "uint256", "name": "", - "type": "bool" + "type": "uint256" } ], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "inputs": [ { - "internalType": "address", - "name": "account", - "type": "address" + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" } ], - "name": "balanceOf", + "name": "liquidationReward", "outputs": [ { "internalType": "uint256", - "name": "", + "name": "rewardCollateral", "type": "uint256" } ], @@ -32756,25 +67996,20 @@ }, { "inputs": [ - { - "internalType": "address", - "name": "_account", - "type": "address" - }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], - "name": "burn", + "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], - "name": "cap", + "name": "oracleDigits", "outputs": [ { "internalType": "uint256", @@ -32787,12 +68022,12 @@ }, { "inputs": [], - "name": "capEnabled", + "name": "owner", "outputs": [ { - "internalType": "bool", + "internalType": "address", "name": "", - "type": "bool" + "type": "address" } ], "stateMutability": "view", @@ -32800,31 +68035,14 @@ }, { "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", + "name": "pause", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "subtractedValue", - "type": "uint256" - } - ], - "name": "decreaseAllowance", + "inputs": [], + "name": "paused", "outputs": [ { "internalType": "bool", @@ -32832,480 +68050,263 @@ "type": "bool" } ], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { - "inputs": [ - { - "internalType": "bool", - "name": "_enable", - "type": "bool" - } - ], - "name": "enableCap", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ] - }, - "AaveVaultHandler": { - "address": "0x119D37aFc784C81626b08813D83598b8673EEE66", - "abi": [ - { - "inputs": [ - { - "internalType": "contract Orchestrator", - "name": "_orchestrator", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_divisor", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_ratio", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_burnFee", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_liquidationPenalty", - "type": "uint256" - }, - { - "internalType": "address", - "name": "_tcapOracle", - "type": "address" - }, - { - "internalType": "contract TCAP", - "name": "_tcapAddress", - "type": "address" - }, - { - "internalType": "address", - "name": "_collateralAddress", - "type": "address" - }, - { - "internalType": "address", - "name": "_collateralOracle", - "type": "address" - }, - { - "internalType": "address", - "name": "_ethOracle", - "type": "address" - }, - { - "internalType": "address", - "name": "_rewardHandler", - "type": "address" - }, - { - "internalType": "address", - "name": "_treasury", - "type": "address" - } - ], - "name": "increaseAllowance", + "inputs": [], + "name": "ratio", "outputs": [ { - "internalType": "bool", + "internalType": "uint256", "name": "", - "type": "bool" + "type": "uint256" } ], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "inputs": [ { - "indexed": true, "internalType": "address", - "name": "_owner", + "name": "_tokenAddress", "type": "address" }, - { - "indexed": true, - "internalType": "uint256", - "name": "_id", - "type": "uint256" - }, { "internalType": "uint256", - "name": "_amount", + "name": "_tokenAmount", "type": "uint256" } ], - "name": "CollateralAdded", - "type": "event" + "name": "recoverERC20", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "address", - "name": "_owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "_id", - "type": "uint256" - }, - { - "indexed": false, "internalType": "uint256", "name": "_amount", "type": "uint256" } ], - "name": "CollateralRemoved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_owner", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_burnFee", - "type": "uint256" - } - ], - "name": "NewBurnFee", - "type": "event" + "name": "removeCollateral", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "address", - "name": "_owner", - "type": "address" - }, - { - "indexed": false, "internalType": "uint256", - "name": "_liquidationPenalty", + "name": "_amount", "type": "uint256" } ], - "name": "NewLiquidationPenalty", - "type": "event" + "name": "removeCollateralETH", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_owner", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_ratio", - "type": "uint256" - } - ], - "name": "NewRatio", - "type": "event" + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "address", - "name": "_owner", - "type": "address" + "internalType": "bytes32", + "name": "role", + "type": "bytes32" }, { - "indexed": false, "internalType": "address", - "name": "_tresury", + "name": "account", "type": "address" } ], - "name": "NewTreasury", - "type": "event" + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" + "internalType": "uint256", + "name": "_amount", + "type": "uint256" } ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ + "name": "requiredCollateral", + "outputs": [ { - "indexed": false, - "internalType": "address", - "name": "account", - "type": "address" + "internalType": "uint256", + "name": "collateral", + "type": "uint256" } ], - "name": "Paused", - "type": "event" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": false, - "internalType": "address", - "name": "_token", - "type": "address" - }, - { - "indexed": false, "internalType": "uint256", - "name": "_amount", + "name": "_vaultId", "type": "uint256" } ], - "name": "Recovered", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "previousAdminRole", - "type": "bytes32" - }, + "name": "requiredLiquidationTCAP", + "outputs": [ { - "indexed": true, - "internalType": "bytes32", - "name": "newAdminRole", - "type": "bytes32" + "internalType": "uint256", + "name": "amount", + "type": "uint256" } ], - "name": "RoleAdminChanged", - "type": "event" + "stateMutability": "view", + "type": "function" }, { "inputs": [ { - "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { - "indexed": true, "internalType": "address", "name": "account", "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" } ], - "name": "RoleGranted", - "type": "event" + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, + "inputs": [], + "name": "rewardHandler", + "outputs": [ { - "indexed": true, - "internalType": "address", - "name": "sender", + "internalType": "contract IRewardHandler", + "name": "", "type": "address" } ], - "name": "RoleRevoked", - "type": "event" + "stateMutability": "view", + "type": "function" }, { "inputs": [ { - "indexed": true, - "internalType": "address", - "name": "_owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "_id", - "type": "uint256" - }, - { - "indexed": false, "internalType": "uint256", - "name": "_amount", + "name": "_burnFee", "type": "uint256" } ], - "name": "TokensBurned", - "type": "event" + "name": "setBurnFee", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "address", - "name": "_owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "_id", - "type": "uint256" - }, - { - "indexed": false, "internalType": "uint256", - "name": "_amount", + "name": "_liquidationPenalty", "type": "uint256" } ], - "name": "TokensMinted", - "type": "event" + "name": "setLiquidationPenalty", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": false, - "internalType": "address", - "name": "account", - "type": "address" + "internalType": "uint256", + "name": "_ratio", + "type": "uint256" } ], - "name": "Unpaused", - "type": "event" + "name": "setRatio", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, "internalType": "address", - "name": "_owner", + "name": "_treasury", "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "_id", - "type": "uint256" } ], - "name": "VaultCreated", - "type": "event" + "name": "setTreasury", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "uint256", - "name": "_vaultId", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "_liquidator", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_liquidationCollateral", - "type": "uint256" - }, + "internalType": "bytes4", + "name": "_interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ { - "indexed": false, - "internalType": "uint256", - "name": "_reward", - "type": "uint256" + "internalType": "bool", + "name": "", + "type": "bool" } ], - "name": "VaultLiquidated", - "type": "event" + "stateMutability": "pure", + "type": "function" }, { "inputs": [], - "name": "DEFAULT_ADMIN_ROLE", + "name": "tcapOracle", "outputs": [ { - "internalType": "bytes32", + "internalType": "contract ChainlinkOracle", "name": "", - "type": "bytes32" + "type": "address" } ], "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [], - "name": "ETHPriceOracle", + "name": "treasury", "outputs": [ { - "internalType": "contract ChainlinkOracle", + "internalType": "address", "name": "", "type": "address" } @@ -33315,11 +68316,24 @@ }, { "inputs": [], - "name": "MAX_FEE", + "name": "unpause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "userToVault", "outputs": [ { "internalType": "uint256", - "name": "amount", + "name": "", "type": "uint256" } ], @@ -33327,48 +68341,47 @@ "type": "function" }, { - "inputs": [], - "name": "MIN_RATIO", - "outputs": [ + "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "TCAPPrice", + "name": "vaults", "outputs": [ { "internalType": "uint256", - "name": "price", + "name": "Id", "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "TCAPToken", - "outputs": [ + }, { - "internalType": "contract TCAP", - "name": "", + "internalType": "uint256", + "name": "Collateral", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "Debt", + "type": "uint256" + }, + { + "internalType": "address", + "name": "Owner", "type": "address" } ], "stateMutability": "view", "type": "function" + }, + { + "stateMutability": "payable", + "type": "receive" } ] }, - "BTCOracle": { - "address": "0x6941264Cb2cB98F62d6014C6edcB24740e4592dE", + "SNXOracle": { + "address": "0x2b5726B892FD346Ed449271A54BeaffE24A88DdA", "abi": [ { "inputs": [ @@ -33376,6 +68389,11 @@ "internalType": "address", "name": "_aggregator", "type": "address" + }, + { + "internalType": "address", + "name": "_owner", + "type": "address" } ], "stateMutability": "nonpayable", @@ -33603,35 +68621,70 @@ } ] }, - "CTXLiquidityReward": { - "address": "0xdC4cDd5dB9EE777EFD891690dc283638CB3A5f94", + "SNXVaultHandler": { + "address": "0x443366a7a5821619D8d57405511E4fadD9964771", "abi": [ { "inputs": [ + { + "internalType": "contract Orchestrator", + "name": "_orchestrator", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_divisor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_ratio", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_burnFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_liquidationPenalty", + "type": "uint256" + }, { "internalType": "address", - "name": "_owner", + "name": "_tcapOracle", + "type": "address" + }, + { + "internalType": "contract TCAP", + "name": "_tcapAddress", "type": "address" }, { "internalType": "address", - "name": "_rewardsToken", + "name": "_collateralAddress", "type": "address" }, { "internalType": "address", - "name": "_stakingToken", + "name": "_collateralOracle", "type": "address" }, { - "internalType": "uint256", - "name": "_vestingEnd", - "type": "uint256" + "internalType": "address", + "name": "_ethOracle", + "type": "address" }, { - "internalType": "uint256", - "name": "_vestingRatio", - "type": "uint256" + "internalType": "address", + "name": "_rewardHandler", + "type": "address" + }, + { + "internalType": "address", + "name": "_treasury", + "type": "address" } ], "stateMutability": "nonpayable", @@ -33643,62 +68696,86 @@ { "indexed": true, "internalType": "address", - "name": "previousOwner", + "name": "_owner", "type": "address" }, { "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" } ], - "name": "OwnershipTransferred", + "name": "CollateralAdded", "type": "event" }, { "anonymous": false, "inputs": [ { - "indexed": false, + "indexed": true, "internalType": "address", - "name": "account", + "name": "_owner", "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" } ], - "name": "Paused", + "name": "CollateralRemoved", "type": "event" }, { "anonymous": false, "inputs": [ { - "indexed": false, + "indexed": true, "internalType": "address", - "name": "token", + "name": "_owner", "type": "address" }, { "indexed": false, "internalType": "uint256", - "name": "amount", + "name": "_burnFee", "type": "uint256" } ], - "name": "Recovered", + "name": "NewBurnFee", "type": "event" }, { "anonymous": false, "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, { "indexed": false, "internalType": "uint256", - "name": "reward", + "name": "_liquidationPenalty", "type": "uint256" } ], - "name": "RewardAdded", + "name": "NewLiquidationPenalty", "type": "event" }, { @@ -33707,30 +68784,87 @@ { "indexed": true, "internalType": "address", - "name": "user", + "name": "_owner", "type": "address" }, { "indexed": false, "internalType": "uint256", - "name": "reward", + "name": "_ratio", "type": "uint256" } ], - "name": "RewardPaid", + "name": "NewRatio", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "_tresury", + "type": "address" + } + ], + "name": "NewTreasury", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "Paused", "type": "event" }, { "anonymous": false, "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_token", + "type": "address" + }, { "indexed": false, "internalType": "uint256", - "name": "newDuration", + "name": "_amount", "type": "uint256" } ], - "name": "RewardsDurationUpdated", + "name": "Recovered", "type": "event" }, { @@ -33814,17 +68948,48 @@ { "indexed": true, "internalType": "address", - "name": "user", + "name": "_owner", "type": "address" }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, { "indexed": false, "internalType": "uint256", - "name": "amount", + "name": "_amount", "type": "uint256" } ], - "name": "Staked", + "name": "TokensBurned", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "TokensMinted", "type": "event" }, { @@ -33846,17 +69011,48 @@ { "indexed": true, "internalType": "address", - "name": "user", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + } + ], + "name": "VaultCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "address", + "name": "_liquidator", "type": "address" }, { "indexed": false, "internalType": "uint256", - "name": "amount", + "name": "_liquidationCollateral", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_reward", "type": "uint256" } ], - "name": "Withdrawn", + "name": "VaultLiquidated", "type": "event" }, { @@ -33873,14 +69069,21 @@ "type": "function" }, { - "inputs": [ + "inputs": [], + "name": "ETHPriceOracle", + "outputs": [ { - "internalType": "address", - "name": "_account", + "internalType": "contract ChainlinkOracle", + "name": "", "type": "address" } ], - "name": "balanceOf", + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MAX_FEE", "outputs": [ { "internalType": "uint256", @@ -33893,7 +69096,52 @@ }, { "inputs": [], - "name": "claimVest", + "name": "MIN_RATIO", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "TCAPPrice", + "outputs": [ + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "TCAPToken", + "outputs": [ + { + "internalType": "contract TCAP", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "addCollateral", "outputs": [], "stateMutability": "nonpayable", "type": "function" @@ -33901,12 +69149,19 @@ { "inputs": [ { - "internalType": "address", - "name": "_account", - "type": "address" + "internalType": "uint256", + "name": "_amount", + "type": "uint256" } ], - "name": "earned", + "name": "burn", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "burnFee", "outputs": [ { "internalType": "uint256", @@ -33919,21 +69174,53 @@ }, { "inputs": [], - "name": "exit", - "outputs": [], - "stateMutability": "nonpayable", + "name": "collateralContract", + "outputs": [ + { + "internalType": "contract IERC20", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", "type": "function" }, { "inputs": [], - "name": "getReward", + "name": "collateralPriceOracle", + "outputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "counter", + "outputs": [ + { + "internalType": "uint256", + "name": "_value", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "createVault", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], - "name": "getRewardForDuration", + "name": "divisor", "outputs": [ { "internalType": "uint256", @@ -33944,6 +69231,44 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "getFee", + "outputs": [ + { + "internalType": "uint256", + "name": "fee", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "_oracle", + "type": "address" + } + ], + "name": "getOraclePrice", + "outputs": [ + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -33995,11 +69320,64 @@ "type": "bytes32" } ], - "name": "getRoleMemberCount", + "name": "getRoleMemberCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_id", + "type": "uint256" + } + ], + "name": "getVault", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + } + ], + "name": "getVaultRatio", "outputs": [ { "internalType": "uint256", - "name": "", + "name": "currentRatio", "type": "uint256" } ], @@ -34049,21 +69427,26 @@ "type": "function" }, { - "inputs": [], - "name": "lastTimeRewardApplicable", - "outputs": [ + "inputs": [ { "internalType": "uint256", - "name": "", + "name": "_vaultId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_maxTCAP", "type": "uint256" } ], - "stateMutability": "view", + "name": "liquidateVault", + "outputs": [], + "stateMutability": "payable", "type": "function" }, { "inputs": [], - "name": "lastUpdateTime", + "name": "liquidationPenalty", "outputs": [ { "internalType": "uint256", @@ -34078,39 +69461,47 @@ "inputs": [ { "internalType": "uint256", - "name": "_a", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_b", + "name": "_vaultId", "type": "uint256" } ], - "name": "min", + "name": "liquidationReward", "outputs": [ { "internalType": "uint256", - "name": "", + "name": "rewardCollateral", "type": "uint256" } ], - "stateMutability": "pure", + "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", - "name": "_reward", + "name": "_amount", "type": "uint256" } ], - "name": "notifyRewardAmount", + "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [], + "name": "oracleDigits", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [], "name": "owner", @@ -34124,6 +69515,13 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "pause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [], "name": "paused", @@ -34139,7 +69537,7 @@ }, { "inputs": [], - "name": "periodFinish", + "name": "ratio", "outputs": [ { "internalType": "uint256", @@ -34168,6 +69566,19 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "removeCollateral", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [], "name": "renounceOwnership", @@ -34193,6 +69604,44 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "requiredCollateral", + "outputs": [ + { + "internalType": "uint256", + "name": "collateral", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + } + ], + "name": "requiredLiquidationTCAP", + "outputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -34213,81 +69662,120 @@ }, { "inputs": [], - "name": "rewardPerToken", + "name": "rewardHandler", "outputs": [ { - "internalType": "uint256", + "internalType": "contract IRewardHandler", "name": "", - "type": "uint256" + "type": "address" } ], "stateMutability": "view", "type": "function" }, { - "inputs": [], - "name": "rewardPerTokenStored", - "outputs": [ + "inputs": [ { "internalType": "uint256", - "name": "", + "name": "_burnFee", "type": "uint256" } ], - "stateMutability": "view", + "name": "setBurnFee", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [], - "name": "rewardRate", - "outputs": [ + "inputs": [ { "internalType": "uint256", - "name": "", + "name": "_liquidationPenalty", "type": "uint256" } ], - "stateMutability": "view", + "name": "setLiquidationPenalty", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_ratio", + "type": "uint256" + } + ], + "name": "setRatio", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", - "name": "", + "name": "_treasury", "type": "address" } ], - "name": "rewards", + "name": "setTreasury", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "_interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", "outputs": [ { - "internalType": "uint256", + "internalType": "bool", "name": "", - "type": "uint256" + "type": "bool" } ], - "stateMutability": "view", + "stateMutability": "pure", "type": "function" }, { "inputs": [], - "name": "rewardsDuration", + "name": "tcapOracle", "outputs": [ { - "internalType": "uint256", + "internalType": "contract ChainlinkOracle", "name": "", - "type": "uint256" + "type": "address" } ], "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [], - "name": "rewardsToken", + "name": "treasury", "outputs": [ { - "internalType": "contract IERC20", + "internalType": "address", "name": "", "type": "address" } @@ -34295,40 +69783,147 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "unpause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "userToVault", + "outputs": [ { "internalType": "uint256", - "name": "_rewardsDuration", + "name": "", "type": "uint256" } ], - "name": "setRewardsDuration", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", - "name": "_amount", + "name": "", "type": "uint256" } ], - "name": "stake", - "outputs": [], + "name": "vaults", + "outputs": [ + { + "internalType": "uint256", + "name": "Id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "Collateral", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "Debt", + "type": "uint256" + }, + { + "internalType": "address", + "name": "Owner", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + } + ] + }, + "UNIOracle": { + "address": "0x2b5726B892FD346Ed449271A54BeaffE24A88DdA", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_aggregator", + "type": "address" + }, + { + "internalType": "address", + "name": "_owner", + "type": "address" + } + ], "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [], + "name": "getLatestAnswer", + "outputs": [ + { + "internalType": "int256", + "name": "", + "type": "int256" + } + ], + "stateMutability": "view", "type": "function" }, { "inputs": [], - "name": "stakingToken", + "name": "getLatestRound", "outputs": [ { - "internalType": "contract IERC20", + "internalType": "uint80", "name": "", - "type": "address" + "type": "uint80" + }, + { + "internalType": "int256", + "name": "", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint80", + "name": "", + "type": "uint80" } ], "stateMutability": "view", @@ -34336,7 +69931,7 @@ }, { "inputs": [], - "name": "totalSupply", + "name": "getLatestTimestamp", "outputs": [ { "internalType": "uint256", @@ -34350,25 +69945,31 @@ { "inputs": [ { - "internalType": "address", - "name": "newOwner", - "type": "address" + "internalType": "uint80", + "name": "_id", + "type": "uint80" } ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", + "name": "getPreviousAnswer", + "outputs": [ + { + "internalType": "int256", + "name": "", + "type": "int256" + } + ], + "stateMutability": "view", "type": "function" }, { "inputs": [ { - "internalType": "address", - "name": "", - "type": "address" + "internalType": "uint80", + "name": "_id", + "type": "uint80" } ], - "name": "userRewardPerTokenPaid", + "name": "getPreviousTimestamp", "outputs": [ { "internalType": "uint256", @@ -34382,17 +69983,37 @@ { "inputs": [ { - "internalType": "address", - "name": "", - "type": "address" + "internalType": "uint80", + "name": "_id", + "type": "uint80" } ], - "name": "vestingAmounts", + "name": "getRound", "outputs": [ + { + "internalType": "uint80", + "name": "", + "type": "uint80" + }, + { + "internalType": "int256", + "name": "", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, { "internalType": "uint256", "name": "", "type": "uint256" + }, + { + "internalType": "uint80", + "name": "", + "type": "uint80" } ], "stateMutability": "view", @@ -34400,12 +70021,12 @@ }, { "inputs": [], - "name": "vestingEnd", + "name": "owner", "outputs": [ { - "internalType": "uint256", + "internalType": "address", "name": "", - "type": "uint256" + "type": "address" } ], "stateMutability": "view", @@ -34413,55 +70034,176 @@ }, { "inputs": [], - "name": "vestingRatio", + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_aggregator", + "type": "address" + } + ], + "name": "setReferenceContract", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", "outputs": [ { - "internalType": "uint256", + "internalType": "bool", "name": "", - "type": "uint256" + "type": "bool" } ], - "stateMutability": "view", + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" + } + ] + }, + "UNIVaultHandler": { + "address": "0x5B577578565c2404BB84E734F583CF8523236eF1", + "abi": [ + { + "inputs": [ + { + "internalType": "contract Orchestrator", + "name": "_orchestrator", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_divisor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_ratio", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_burnFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_liquidationPenalty", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_tcapOracle", + "type": "address" + }, + { + "internalType": "contract TCAP", + "name": "_tcapAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_collateralAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_collateralOracle", + "type": "address" + }, + { + "internalType": "address", + "name": "_ethOracle", + "type": "address" + }, + { + "internalType": "address", + "name": "_rewardHandler", + "type": "address" + }, + { + "internalType": "address", + "name": "_treasury", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" }, { + "anonymous": false, "inputs": [ { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, "internalType": "uint256", "name": "_amount", "type": "uint256" } ], - "name": "withdraw", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ] - }, - "BTCRewardHandler": { - "address": "0x386e8b1eDe61BDaAB9EFE5d999145fDDbd10A64C", - "abi": [ + "name": "CollateralAdded", + "type": "event" + }, { + "anonymous": false, "inputs": [ { + "indexed": true, "internalType": "address", "name": "_owner", "type": "address" }, { - "internalType": "address", - "name": "_rewardsToken", - "type": "address" + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" }, { - "internalType": "address", - "name": "_vault", - "type": "address" + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" } ], - "stateMutability": "nonpayable", - "type": "constructor" + "name": "CollateralRemoved", + "type": "event" }, { "anonymous": false, @@ -34469,62 +70211,74 @@ { "indexed": true, "internalType": "address", - "name": "previousOwner", + "name": "_owner", "type": "address" }, { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" + "indexed": false, + "internalType": "uint256", + "name": "_burnFee", + "type": "uint256" } ], - "name": "OwnershipTransferred", + "name": "NewBurnFee", "type": "event" }, { "anonymous": false, "inputs": [ { - "indexed": false, + "indexed": true, "internalType": "address", - "name": "account", + "name": "_owner", "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_liquidationPenalty", + "type": "uint256" } ], - "name": "Paused", + "name": "NewLiquidationPenalty", "type": "event" }, { "anonymous": false, "inputs": [ { - "indexed": false, + "indexed": true, "internalType": "address", - "name": "token", + "name": "_owner", "type": "address" }, { "indexed": false, "internalType": "uint256", - "name": "amount", + "name": "_ratio", "type": "uint256" } ], - "name": "Recovered", + "name": "NewRatio", "type": "event" }, { "anonymous": false, "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, { "indexed": false, - "internalType": "uint256", - "name": "reward", - "type": "uint256" + "internalType": "address", + "name": "_tresury", + "type": "address" } ], - "name": "RewardAdded", + "name": "NewTreasury", "type": "event" }, { @@ -34533,30 +70287,49 @@ { "indexed": true, "internalType": "address", - "name": "user", + "name": "previousOwner", "type": "address" }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ { "indexed": false, - "internalType": "uint256", - "name": "reward", - "type": "uint256" + "internalType": "address", + "name": "account", + "type": "address" } ], - "name": "RewardPaid", + "name": "Paused", "type": "event" }, { "anonymous": false, "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_token", + "type": "address" + }, { "indexed": false, "internalType": "uint256", - "name": "newDuration", + "name": "_amount", "type": "uint256" } ], - "name": "RewardsDurationUpdated", + "name": "Recovered", "type": "event" }, { @@ -34640,17 +70413,48 @@ { "indexed": true, "internalType": "address", - "name": "user", + "name": "_owner", "type": "address" }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, { "indexed": false, "internalType": "uint256", - "name": "amount", + "name": "_amount", "type": "uint256" } ], - "name": "Staked", + "name": "TokensBurned", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "TokensMinted", "type": "event" }, { @@ -34672,17 +70476,48 @@ { "indexed": true, "internalType": "address", - "name": "user", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + } + ], + "name": "VaultCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "address", + "name": "_liquidator", "type": "address" }, { "indexed": false, "internalType": "uint256", - "name": "amount", + "name": "_liquidationCollateral", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_reward", "type": "uint256" } ], - "name": "Withdrawn", + "name": "VaultLiquidated", "type": "event" }, { @@ -34699,14 +70534,21 @@ "type": "function" }, { - "inputs": [ + "inputs": [], + "name": "ETHPriceOracle", + "outputs": [ { - "internalType": "address", - "name": "_account", + "internalType": "contract ChainlinkOracle", + "name": "", "type": "address" } ], - "name": "balanceOf", + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MAX_FEE", "outputs": [ { "internalType": "uint256", @@ -34718,18 +70560,25 @@ "type": "function" }, { - "inputs": [ + "inputs": [], + "name": "MIN_RATIO", + "outputs": [ { - "internalType": "address", - "name": "_account", - "type": "address" + "internalType": "uint256", + "name": "", + "type": "uint256" } ], - "name": "earned", + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "TCAPPrice", "outputs": [ { "internalType": "uint256", - "name": "", + "name": "price", "type": "uint256" } ], @@ -34737,28 +70586,106 @@ "type": "function" }, { - "inputs": [ + "inputs": [], + "name": "TCAPToken", + "outputs": [ { - "internalType": "address", - "name": "_staker", + "internalType": "contract TCAP", + "name": "", "type": "address" } ], - "name": "exit", + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "addCollateral", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, { "inputs": [], - "name": "getReward", + "name": "burnFee", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "collateralContract", + "outputs": [ + { + "internalType": "contract IERC20", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "collateralPriceOracle", + "outputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "counter", + "outputs": [ + { + "internalType": "uint256", + "name": "_value", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "createVault", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], - "name": "getRewardForDuration", + "name": "divisor", "outputs": [ { "internalType": "uint256", @@ -34772,14 +70699,39 @@ { "inputs": [ { - "internalType": "address", - "name": "_staker", + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "getFee", + "outputs": [ + { + "internalType": "uint256", + "name": "fee", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "_oracle", "type": "address" } ], - "name": "getRewardFromVault", - "outputs": [], - "stateMutability": "nonpayable", + "name": "getOraclePrice", + "outputs": [ + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + } + ], + "stateMutability": "view", "type": "function" }, { @@ -34844,6 +70796,59 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_id", + "type": "uint256" + } + ], + "name": "getVault", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + } + ], + "name": "getVaultRatio", + "outputs": [ + { + "internalType": "uint256", + "name": "currentRatio", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -34887,21 +70892,26 @@ "type": "function" }, { - "inputs": [], - "name": "lastTimeRewardApplicable", - "outputs": [ + "inputs": [ { "internalType": "uint256", - "name": "", + "name": "_vaultId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_maxTCAP", "type": "uint256" } ], - "stateMutability": "view", + "name": "liquidateVault", + "outputs": [], + "stateMutability": "payable", "type": "function" }, { "inputs": [], - "name": "lastUpdateTime", + "name": "liquidationPenalty", "outputs": [ { "internalType": "uint256", @@ -34916,39 +70926,47 @@ "inputs": [ { "internalType": "uint256", - "name": "_a", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_b", + "name": "_vaultId", "type": "uint256" } ], - "name": "min", + "name": "liquidationReward", "outputs": [ { "internalType": "uint256", - "name": "", + "name": "rewardCollateral", "type": "uint256" } ], - "stateMutability": "pure", + "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", - "name": "_reward", + "name": "_amount", "type": "uint256" } ], - "name": "notifyRewardAmount", + "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [], + "name": "oracleDigits", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [], "name": "owner", @@ -34962,6 +70980,13 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "pause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [], "name": "paused", @@ -34977,7 +71002,7 @@ }, { "inputs": [], - "name": "periodFinish", + "name": "ratio", "outputs": [ { "internalType": "uint256", @@ -35006,6 +71031,19 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "removeCollateral", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [], "name": "renounceOwnership", @@ -35031,6 +71069,44 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "requiredCollateral", + "outputs": [ + { + "internalType": "uint256", + "name": "collateral", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + } + ], + "name": "requiredLiquidationTCAP", + "outputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -35051,85 +71127,150 @@ }, { "inputs": [], - "name": "rewardPerToken", + "name": "rewardHandler", "outputs": [ { - "internalType": "uint256", + "internalType": "contract IRewardHandler", "name": "", - "type": "uint256" + "type": "address" } ], "stateMutability": "view", "type": "function" }, { - "inputs": [], - "name": "rewardPerTokenStored", - "outputs": [ + "inputs": [ { "internalType": "uint256", - "name": "", + "name": "_burnFee", "type": "uint256" } ], - "stateMutability": "view", + "name": "setBurnFee", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [], - "name": "rewardRate", - "outputs": [ + "inputs": [ { "internalType": "uint256", - "name": "", + "name": "_liquidationPenalty", "type": "uint256" } ], - "stateMutability": "view", + "name": "setLiquidationPenalty", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_ratio", + "type": "uint256" + } + ], + "name": "setRatio", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", - "name": "", + "name": "_treasury", "type": "address" } ], - "name": "rewards", + "name": "setTreasury", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "_interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", "outputs": [ { - "internalType": "uint256", + "internalType": "bool", "name": "", - "type": "uint256" + "type": "bool" } ], - "stateMutability": "view", + "stateMutability": "pure", "type": "function" }, { "inputs": [], - "name": "rewardsDuration", + "name": "tcapOracle", "outputs": [ { - "internalType": "uint256", + "internalType": "contract ChainlinkOracle", "name": "", - "type": "uint256" + "type": "address" } ], "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [], - "name": "rewardsToken", + "name": "treasury", "outputs": [ { - "internalType": "contract IERC20", + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "unpause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", "name": "", "type": "address" } ], + "name": "userToVault", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], "stateMutability": "view", "type": "function" }, @@ -35137,36 +71278,128 @@ "inputs": [ { "internalType": "uint256", - "name": "_rewardsDuration", + "name": "", "type": "uint256" } ], - "name": "setRewardsDuration", - "outputs": [], - "stateMutability": "nonpayable", + "name": "vaults", + "outputs": [ + { + "internalType": "uint256", + "name": "Id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "Collateral", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "Debt", + "type": "uint256" + }, + { + "internalType": "address", + "name": "Owner", + "type": "address" + } + ], + "stateMutability": "view", "type": "function" + } + ] + } + } + } + }, + "137": { + "polygon": { + "name": "polygon", + "chainId": "137", + "contracts": { + "DAIOracle": { + "address": "0x63615e94063103d02A2a1081E900bE8C858Dc543", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_aggregator", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" }, { + "anonymous": false, "inputs": [ { + "indexed": true, "internalType": "address", - "name": "_staker", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [], + "name": "getLatestAnswer", + "outputs": [ + { + "internalType": "int256", + "name": "", + "type": "int256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getLatestRound", + "outputs": [ + { + "internalType": "uint80", + "name": "", + "type": "uint80" + }, + { + "internalType": "int256", + "name": "", + "type": "int256" }, { "internalType": "uint256", - "name": "_amount", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", "type": "uint256" + }, + { + "internalType": "uint80", + "name": "", + "type": "uint80" } ], - "name": "stake", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "inputs": [], - "name": "totalSupply", + "name": "getLatestTimestamp", "outputs": [ { "internalType": "uint256", @@ -35180,30 +71413,75 @@ { "inputs": [ { - "internalType": "address", - "name": "newOwner", - "type": "address" + "internalType": "uint80", + "name": "_id", + "type": "uint80" } ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", + "name": "getPreviousAnswer", + "outputs": [ + { + "internalType": "int256", + "name": "", + "type": "int256" + } + ], + "stateMutability": "view", "type": "function" }, { "inputs": [ { - "internalType": "address", + "internalType": "uint80", + "name": "_id", + "type": "uint80" + } + ], + "name": "getPreviousTimestamp", + "outputs": [ + { + "internalType": "uint256", "name": "", - "type": "address" + "type": "uint256" } ], - "name": "userRewardPerTokenPaid", + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint80", + "name": "_id", + "type": "uint80" + } + ], + "name": "getRound", "outputs": [ + { + "internalType": "uint80", + "name": "", + "type": "uint80" + }, + { + "internalType": "int256", + "name": "", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, { "internalType": "uint256", "name": "", "type": "uint256" + }, + { + "internalType": "uint80", + "name": "", + "type": "uint80" } ], "stateMutability": "view", @@ -35211,7 +71489,7 @@ }, { "inputs": [], - "name": "vault", + "name": "owner", "outputs": [ { "internalType": "address", @@ -35222,28 +71500,62 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [ { "internalType": "address", - "name": "_staker", + "name": "_aggregator", "type": "address" - }, + } + ], + "name": "setReferenceContract", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" } ], - "name": "withdraw", + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ] }, - "BTCVaultHandler": { - "address": "0x5070ceb13f372b2F3496c643f87D23c01f106367", + "DAIVaultHandler": { + "address": "0x81bF10c47aa773D9fE9B6177Cc74b046F71649A3", "abi": [ { "inputs": [ @@ -35754,6 +72066,19 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "VAULT_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -36005,6 +72330,19 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + } + ], + "name": "grantAccess", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [ { @@ -36466,25 +72804,25 @@ } ] }, - "Ctx": { - "address": "0xa400D66cE877f572c31Bb5483f17Fee4328da468", + "DAIRewardHandler": { + "address": "0x0B3e7f177913452F8C7281Ebd5f4DE80849d3D54", "abi": [ { "inputs": [ { "internalType": "address", - "name": "account", + "name": "_owner", "type": "address" }, { "internalType": "address", - "name": "minter_", + "name": "_rewardsToken", "type": "address" }, { - "internalType": "uint256", - "name": "mintingAllowedAfter_", - "type": "uint256" + "internalType": "address", + "name": "_vault", + "type": "address" } ], "stateMutability": "nonpayable", @@ -36496,356 +72834,230 @@ { "indexed": true, "internalType": "address", - "name": "owner", + "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", - "name": "spender", + "name": "newOwner", "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" } ], - "name": "Approval", + "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "address", - "name": "delegator", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "fromDelegate", - "type": "address" - }, - { - "indexed": true, + "indexed": false, "internalType": "address", - "name": "toDelegate", + "name": "account", "type": "address" } ], - "name": "DelegateChanged", + "name": "Paused", "type": "event" }, { "anonymous": false, "inputs": [ { - "indexed": true, + "indexed": false, "internalType": "address", - "name": "delegate", + "name": "token", "type": "address" }, { "indexed": false, "internalType": "uint256", - "name": "previousBalance", + "name": "amount", "type": "uint256" - }, + } + ], + "name": "Recovered", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ { "indexed": false, "internalType": "uint256", - "name": "newBalance", + "name": "reward", "type": "uint256" } ], - "name": "DelegateVotesChanged", + "name": "RewardAdded", "type": "event" }, { "anonymous": false, "inputs": [ { - "indexed": false, + "indexed": true, "internalType": "address", - "name": "minter", + "name": "user", "type": "address" }, { "indexed": false, - "internalType": "address", - "name": "newMinter", - "type": "address" + "internalType": "uint256", + "name": "reward", + "type": "uint256" } ], - "name": "MinterChanged", + "name": "RewardPaid", "type": "event" }, { "anonymous": false, "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, { "indexed": false, "internalType": "uint256", - "name": "amount", + "name": "newDuration", "type": "uint256" } ], - "name": "Transfer", + "name": "RewardsDurationUpdated", "type": "event" }, { - "inputs": [], - "name": "DELEGATION_TYPEHASH", - "outputs": [ + "anonymous": false, + "inputs": [ { + "indexed": true, "internalType": "bytes32", - "name": "", + "name": "role", "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "DOMAIN_TYPEHASH", - "outputs": [ + }, { + "indexed": true, "internalType": "bytes32", - "name": "", + "name": "previousAdminRole", "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "PERMIT_TYPEHASH", - "outputs": [ + }, { + "indexed": true, "internalType": "bytes32", - "name": "", + "name": "newAdminRole", "type": "bytes32" } ], - "stateMutability": "view", - "type": "function" + "name": "RoleAdminChanged", + "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { + "indexed": true, "internalType": "address", - "name": "spender", + "name": "sender", "type": "address" } ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" + "name": "RoleGranted", + "type": "event" }, { + "anonymous": false, "inputs": [ { - "internalType": "address", - "name": "spender", - "type": "address" + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" }, { - "internalType": "uint256", - "name": "rawAmount", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { + "indexed": true, "internalType": "address", "name": "account", "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ + }, { + "indexed": true, "internalType": "address", - "name": "", + "name": "sender", "type": "address" - }, - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "name": "checkpoints", - "outputs": [ - { - "internalType": "uint32", - "name": "fromBlock", - "type": "uint32" - }, - { - "internalType": "uint96", - "name": "votes", - "type": "uint96" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" } ], - "stateMutability": "view", - "type": "function" + "name": "RoleRevoked", + "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": true, "internalType": "address", - "name": "spender", + "name": "user", "type": "address" }, { + "indexed": false, "internalType": "uint256", - "name": "subtractedValue", + "name": "amount", "type": "uint256" } ], - "name": "decreaseAllowance", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" + "name": "Staked", + "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": false, "internalType": "address", - "name": "delegatee", + "name": "account", "type": "address" } ], - "name": "delegate", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "name": "Unpaused", + "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": true, "internalType": "address", - "name": "delegatee", + "name": "user", "type": "address" }, { + "indexed": false, "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expiry", + "name": "amount", "type": "uint256" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" } ], - "name": "delegateBySig", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "name": "Withdrawn", + "type": "event" }, { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "delegates", + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", "outputs": [ { - "internalType": "address", + "internalType": "bytes32", "name": "", - "type": "address" + "type": "bytes32" } ], "stateMutability": "view", @@ -36855,16 +73067,16 @@ "inputs": [ { "internalType": "address", - "name": "account", + "name": "_account", "type": "address" } ], - "name": "getCurrentVotes", + "name": "balanceOf", "outputs": [ { - "internalType": "uint96", + "internalType": "uint256", "name": "", - "type": "uint96" + "type": "uint256" } ], "stateMutability": "view", @@ -36874,21 +73086,16 @@ "inputs": [ { "internalType": "address", - "name": "account", + "name": "_account", "type": "address" - }, - { - "internalType": "uint256", - "name": "blockNumber", - "type": "uint256" } ], - "name": "getPriorVotes", + "name": "earned", "outputs": [ { - "internalType": "uint96", + "internalType": "uint256", "name": "", - "type": "uint96" + "type": "uint256" } ], "stateMutability": "view", @@ -36898,104 +73105,62 @@ "inputs": [ { "internalType": "address", - "name": "spender", + "name": "_staker", "type": "address" - }, - { - "internalType": "uint256", - "name": "addedValue", - "type": "uint256" - } - ], - "name": "increaseAllowance", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" } ], + "name": "exit", + "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], - "name": "minimumTimeBetweenMints", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "dst", - "type": "address" - }, - { - "internalType": "uint256", - "name": "rawAmount", - "type": "uint256" - } - ], - "name": "mint", + "name": "getReward", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], - "name": "mintCap", + "name": "getRewardForDuration", "outputs": [ { - "internalType": "uint8", + "internalType": "uint256", "name": "", - "type": "uint8" + "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { - "inputs": [], - "name": "minter", - "outputs": [ + "inputs": [ { "internalType": "address", - "name": "", + "name": "_staker", "type": "address" } ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "mintingAllowedAfter", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", + "name": "getRewardFromVault", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [], - "name": "name", + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", "outputs": [ { - "internalType": "string", + "internalType": "bytes32", "name": "", - "type": "string" + "type": "bytes32" } ], "stateMutability": "view", @@ -37004,17 +73169,22 @@ { "inputs": [ { - "internalType": "address", - "name": "", - "type": "address" + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" } ], - "name": "nonces", + "name": "getRoleMember", "outputs": [ { - "internalType": "uint256", + "internalType": "address", "name": "", - "type": "uint256" + "type": "address" } ], "stateMutability": "view", @@ -37023,17 +73193,17 @@ { "inputs": [ { - "internalType": "address", - "name": "", - "type": "address" + "internalType": "bytes32", + "name": "role", + "type": "bytes32" } ], - "name": "numCheckpoints", + "name": "getRoleMemberCount", "outputs": [ { - "internalType": "uint32", + "internalType": "uint256", "name": "", - "type": "uint32" + "type": "uint256" } ], "stateMutability": "view", @@ -37041,68 +73211,54 @@ }, { "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "rawAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, { "internalType": "bytes32", - "name": "r", + "name": "role", "type": "bytes32" }, { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" + "internalType": "address", + "name": "account", + "type": "address" } ], - "name": "permit", + "name": "grantRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, { "internalType": "address", - "name": "minter_", + "name": "account", "type": "address" } ], - "name": "setMinter", - "outputs": [], - "stateMutability": "nonpayable", + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", "type": "function" }, { "inputs": [], - "name": "symbol", + "name": "lastTimeRewardApplicable", "outputs": [ { - "internalType": "string", + "internalType": "uint256", "name": "", - "type": "string" + "type": "uint256" } ], "stateMutability": "view", @@ -37110,7 +73266,7 @@ }, { "inputs": [], - "name": "totalSupply", + "name": "lastUpdateTime", "outputs": [ { "internalType": "uint256", @@ -37124,46 +73280,56 @@ { "inputs": [ { - "internalType": "address", - "name": "dst", - "type": "address" + "internalType": "uint256", + "name": "_a", + "type": "uint256" }, { "internalType": "uint256", - "name": "rawAmount", + "name": "_b", "type": "uint256" } ], - "name": "transfer", + "name": "min", "outputs": [ { - "internalType": "bool", + "internalType": "uint256", "name": "", - "type": "bool" + "type": "uint256" } ], - "stateMutability": "nonpayable", + "stateMutability": "pure", "type": "function" }, { "inputs": [ { - "internalType": "address", - "name": "src", - "type": "address" - }, + "internalType": "uint256", + "name": "_reward", + "type": "uint256" + } + ], + "name": "notifyRewardAmount", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ { "internalType": "address", - "name": "dst", + "name": "", "type": "address" - }, - { - "internalType": "uint256", - "name": "rawAmount", - "type": "uint256" } ], - "name": "transferFrom", + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "paused", "outputs": [ { "internalType": "bool", @@ -37171,83 +73337,86 @@ "type": "bool" } ], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" - } - ] - }, - "DAI": { - "address": "0x550d3f16515cD570777c497BE6Babd2b52261851", - "abi": [ + }, { "inputs": [], - "stateMutability": "nonpayable", - "type": "constructor" + "name": "periodFinish", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, "internalType": "address", - "name": "spender", + "name": "_tokenAddress", "type": "address" }, { - "indexed": false, "internalType": "uint256", - "name": "value", + "name": "_tokenAmount", "type": "uint256" } ], - "name": "Approval", - "type": "event" + "name": "recoverERC20", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" + "internalType": "bytes32", + "name": "role", + "type": "bytes32" }, { - "indexed": true, "internalType": "address", - "name": "to", + "name": "account", "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" } ], - "name": "Transfer", - "type": "event" + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { "inputs": [ { - "internalType": "address", - "name": "owner", - "type": "address" + "internalType": "bytes32", + "name": "role", + "type": "bytes32" }, { "internalType": "address", - "name": "spender", + "name": "account", "type": "address" } ], - "name": "allowance", + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "rewardPerToken", "outputs": [ { "internalType": "uint256", @@ -37259,38 +73428,21 @@ "type": "function" }, { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "approve", + "inputs": [], + "name": "rewardPerTokenStored", "outputs": [ { - "internalType": "bool", + "internalType": "uint256", "name": "", - "type": "bool" + "type": "uint256" } ], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "balanceOf", + "inputs": [], + "name": "rewardRate", "outputs": [ { "internalType": "uint256", @@ -37305,78 +73457,57 @@ "inputs": [ { "internalType": "address", - "name": "_account", + "name": "", "type": "address" - }, + } + ], + "name": "rewards", + "outputs": [ { "internalType": "uint256", - "name": "_amount", + "name": "", "type": "uint256" } ], - "name": "burn", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "inputs": [], - "name": "decimals", + "name": "rewardsDuration", "outputs": [ { - "internalType": "uint8", + "internalType": "uint256", "name": "", - "type": "uint8" + "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "subtractedValue", - "type": "uint256" - } - ], - "name": "decreaseAllowance", + "inputs": [], + "name": "rewardsToken", "outputs": [ { - "internalType": "bool", + "internalType": "contract IERC20", "name": "", - "type": "bool" + "type": "address" } ], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, { "internalType": "uint256", - "name": "addedValue", + "name": "_rewardsDuration", "type": "uint256" } ], - "name": "increaseAllowance", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], + "name": "setRewardsDuration", + "outputs": [], "stateMutability": "nonpayable", "type": "function" }, @@ -37384,7 +73515,7 @@ "inputs": [ { "internalType": "address", - "name": "_account", + "name": "_staker", "type": "address" }, { @@ -37393,40 +73524,46 @@ "type": "uint256" } ], - "name": "mint", + "name": "stake", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], - "name": "name", + "name": "totalSupply", "outputs": [ { - "internalType": "string", + "internalType": "uint256", "name": "", - "type": "string" + "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { - "inputs": [], - "name": "symbol", - "outputs": [ + "inputs": [ { - "internalType": "string", - "name": "", - "type": "string" + "internalType": "address", + "name": "newOwner", + "type": "address" } ], - "stateMutability": "view", + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [], - "name": "totalSupply", + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "userRewardPerTokenPaid", "outputs": [ { "internalType": "uint256", @@ -37438,62 +73575,40 @@ "type": "function" }, { - "inputs": [ - { - "internalType": "address", - "name": "recipient", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "transfer", + "inputs": [], + "name": "vault", "outputs": [ { - "internalType": "bool", + "internalType": "address", "name": "", - "type": "bool" + "type": "address" } ], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "address", - "name": "recipient", + "name": "_staker", "type": "address" }, { "internalType": "uint256", - "name": "amount", + "name": "_amount", "type": "uint256" } ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], + "name": "withdraw", + "outputs": [], "stateMutability": "nonpayable", "type": "function" } ] }, - "DAIOracle": { - "address": "0x065133208F0b0DB3c1bFD936776CA8D235B1B433", + "WETHOracle": { + "address": "0x7B838c8839886ffaa4E3481c83cea7d38ae0f236", "abi": [ { "inputs": [ @@ -37501,11 +73616,6 @@ "internalType": "address", "name": "_aggregator", "type": "address" - }, - { - "internalType": "address", - "name": "_timelock", - "type": "address" } ], "stateMutability": "nonpayable", @@ -37733,29 +73843,124 @@ } ] }, - "DAIRewardHandler": { - "address": "0x0B3e7f177913452F8C7281Ebd5f4DE80849d3D54", + "WETHVaultHandler": { + "address": "0xAe49Ed0a9796bF44879BC050e5113C058e590e1b", "abi": [ { "inputs": [ { + "internalType": "contract Orchestrator", + "name": "_orchestrator", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_divisor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_ratio", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_burnFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_liquidationPenalty", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_tcapOracle", + "type": "address" + }, + { + "internalType": "contract TCAP", + "name": "_tcapAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_collateralAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_collateralOracle", + "type": "address" + }, + { + "internalType": "address", + "name": "_ethOracle", + "type": "address" + }, + { + "internalType": "address", + "name": "_rewardHandler", + "type": "address" + }, + { + "internalType": "address", + "name": "_treasury", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, "internalType": "address", "name": "_owner", "type": "address" }, { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "CollateralAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, "internalType": "address", - "name": "_rewardsToken", + "name": "_owner", "type": "address" }, { - "internalType": "address", - "name": "_vault", - "type": "address" + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" } ], - "stateMutability": "nonpayable", - "type": "constructor" + "name": "CollateralRemoved", + "type": "event" }, { "anonymous": false, @@ -37763,62 +73968,74 @@ { "indexed": true, "internalType": "address", - "name": "previousOwner", + "name": "_owner", "type": "address" }, { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" + "indexed": false, + "internalType": "uint256", + "name": "_burnFee", + "type": "uint256" } ], - "name": "OwnershipTransferred", + "name": "NewBurnFee", "type": "event" }, { "anonymous": false, "inputs": [ { - "indexed": false, + "indexed": true, "internalType": "address", - "name": "account", + "name": "_owner", "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_liquidationPenalty", + "type": "uint256" } ], - "name": "Paused", + "name": "NewLiquidationPenalty", "type": "event" }, { "anonymous": false, "inputs": [ { - "indexed": false, + "indexed": true, "internalType": "address", - "name": "token", + "name": "_owner", "type": "address" }, { "indexed": false, "internalType": "uint256", - "name": "amount", + "name": "_ratio", "type": "uint256" } ], - "name": "Recovered", + "name": "NewRatio", "type": "event" }, { "anonymous": false, "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, { "indexed": false, - "internalType": "uint256", - "name": "reward", - "type": "uint256" + "internalType": "address", + "name": "_tresury", + "type": "address" } ], - "name": "RewardAdded", + "name": "NewTreasury", "type": "event" }, { @@ -37827,30 +74044,49 @@ { "indexed": true, "internalType": "address", - "name": "user", + "name": "previousOwner", "type": "address" }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ { "indexed": false, - "internalType": "uint256", - "name": "reward", - "type": "uint256" + "internalType": "address", + "name": "account", + "type": "address" } ], - "name": "RewardPaid", + "name": "Paused", "type": "event" }, { "anonymous": false, "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_token", + "type": "address" + }, { "indexed": false, "internalType": "uint256", - "name": "newDuration", + "name": "_amount", "type": "uint256" } ], - "name": "RewardsDurationUpdated", + "name": "Recovered", "type": "event" }, { @@ -37934,17 +74170,48 @@ { "indexed": true, "internalType": "address", - "name": "user", + "name": "_owner", "type": "address" }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, { "indexed": false, "internalType": "uint256", - "name": "amount", + "name": "_amount", "type": "uint256" } ], - "name": "Staked", + "name": "TokensBurned", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "TokensMinted", "type": "event" }, { @@ -37966,17 +74233,48 @@ { "indexed": true, "internalType": "address", - "name": "user", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + } + ], + "name": "VaultCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "address", + "name": "_liquidator", "type": "address" }, { "indexed": false, "internalType": "uint256", - "name": "amount", + "name": "_liquidationCollateral", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_reward", "type": "uint256" } ], - "name": "Withdrawn", + "name": "VaultLiquidated", "type": "event" }, { @@ -37993,14 +74291,21 @@ "type": "function" }, { - "inputs": [ + "inputs": [], + "name": "ETHPriceOracle", + "outputs": [ { - "internalType": "address", - "name": "_account", + "internalType": "contract ChainlinkOracle", + "name": "", "type": "address" } ], - "name": "balanceOf", + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MAX_FEE", "outputs": [ { "internalType": "uint256", @@ -38012,18 +74317,25 @@ "type": "function" }, { - "inputs": [ + "inputs": [], + "name": "MIN_RATIO", + "outputs": [ { - "internalType": "address", - "name": "_account", - "type": "address" + "internalType": "uint256", + "name": "", + "type": "uint256" } ], - "name": "earned", + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "TCAPPrice", "outputs": [ { "internalType": "uint256", - "name": "", + "name": "price", "type": "uint256" } ], @@ -38031,28 +74343,119 @@ "type": "function" }, { - "inputs": [ + "inputs": [], + "name": "TCAPToken", + "outputs": [ { - "internalType": "address", - "name": "_staker", + "internalType": "contract TCAP", + "name": "", "type": "address" } ], - "name": "exit", + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "VAULT_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "addCollateral", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, { "inputs": [], - "name": "getReward", + "name": "burnFee", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "collateralContract", + "outputs": [ + { + "internalType": "contract IERC20", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "collateralPriceOracle", + "outputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "counter", + "outputs": [ + { + "internalType": "uint256", + "name": "_value", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "createVault", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], - "name": "getRewardForDuration", + "name": "divisor", "outputs": [ { "internalType": "uint256", @@ -38066,14 +74469,39 @@ { "inputs": [ { - "internalType": "address", - "name": "_staker", + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "getFee", + "outputs": [ + { + "internalType": "uint256", + "name": "fee", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "_oracle", "type": "address" } ], - "name": "getRewardFromVault", - "outputs": [], - "stateMutability": "nonpayable", + "name": "getOraclePrice", + "outputs": [ + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + } + ], + "stateMutability": "view", "type": "function" }, { @@ -38138,6 +74566,72 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_id", + "type": "uint256" + } + ], + "name": "getVault", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + } + ], + "name": "getVaultRatio", + "outputs": [ + { + "internalType": "uint256", + "name": "currentRatio", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + } + ], + "name": "grantAccess", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [ { @@ -38181,21 +74675,26 @@ "type": "function" }, { - "inputs": [], - "name": "lastTimeRewardApplicable", - "outputs": [ + "inputs": [ { "internalType": "uint256", - "name": "", + "name": "_vaultId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_maxTCAP", "type": "uint256" } ], - "stateMutability": "view", + "name": "liquidateVault", + "outputs": [], + "stateMutability": "payable", "type": "function" }, { "inputs": [], - "name": "lastUpdateTime", + "name": "liquidationPenalty", "outputs": [ { "internalType": "uint256", @@ -38210,39 +74709,47 @@ "inputs": [ { "internalType": "uint256", - "name": "_a", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_b", + "name": "_vaultId", "type": "uint256" } ], - "name": "min", + "name": "liquidationReward", "outputs": [ { "internalType": "uint256", - "name": "", + "name": "rewardCollateral", "type": "uint256" } ], - "stateMutability": "pure", + "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", - "name": "_reward", + "name": "_amount", "type": "uint256" } ], - "name": "notifyRewardAmount", + "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [], + "name": "oracleDigits", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [], "name": "owner", @@ -38256,6 +74763,13 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "pause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [], "name": "paused", @@ -38271,7 +74785,7 @@ }, { "inputs": [], - "name": "periodFinish", + "name": "ratio", "outputs": [ { "internalType": "uint256", @@ -38300,6 +74814,19 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "removeCollateral", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [], "name": "renounceOwnership", @@ -38325,6 +74852,44 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "requiredCollateral", + "outputs": [ + { + "internalType": "uint256", + "name": "collateral", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + } + ], + "name": "requiredLiquidationTCAP", + "outputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -38345,81 +74910,120 @@ }, { "inputs": [], - "name": "rewardPerToken", + "name": "rewardHandler", "outputs": [ { - "internalType": "uint256", + "internalType": "contract IRewardHandler", "name": "", - "type": "uint256" + "type": "address" } ], "stateMutability": "view", "type": "function" }, { - "inputs": [], - "name": "rewardPerTokenStored", - "outputs": [ + "inputs": [ { "internalType": "uint256", - "name": "", + "name": "_burnFee", "type": "uint256" } ], - "stateMutability": "view", + "name": "setBurnFee", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [], - "name": "rewardRate", - "outputs": [ + "inputs": [ { "internalType": "uint256", - "name": "", + "name": "_liquidationPenalty", "type": "uint256" } ], - "stateMutability": "view", + "name": "setLiquidationPenalty", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_ratio", + "type": "uint256" + } + ], + "name": "setRatio", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", - "name": "", + "name": "_treasury", "type": "address" } ], - "name": "rewards", + "name": "setTreasury", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "_interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", "outputs": [ { - "internalType": "uint256", + "internalType": "bool", "name": "", - "type": "uint256" + "type": "bool" } ], - "stateMutability": "view", + "stateMutability": "pure", "type": "function" }, { "inputs": [], - "name": "rewardsDuration", + "name": "tcapOracle", "outputs": [ { - "internalType": "uint256", + "internalType": "contract ChainlinkOracle", "name": "", - "type": "uint256" + "type": "address" } ], "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [], - "name": "rewardsToken", + "name": "treasury", "outputs": [ { - "internalType": "contract IERC20", + "internalType": "address", "name": "", "type": "address" } @@ -38427,40 +75031,150 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "unpause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "userToVault", + "outputs": [ { "internalType": "uint256", - "name": "_rewardsDuration", + "name": "", "type": "uint256" } ], - "name": "setRewardsDuration", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "vaults", + "outputs": [ + { + "internalType": "uint256", + "name": "Id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "Collateral", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "Debt", + "type": "uint256" + }, { "internalType": "address", - "name": "_staker", + "name": "Owner", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + } + ] + }, + "MATICOracle": { + "address": "0x5717DC7Cc0489dCc00316bcDB7e752aec664673e", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_aggregator", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", "type": "address" }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [], + "name": "getLatestAnswer", + "outputs": [ + { + "internalType": "int256", + "name": "", + "type": "int256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getLatestRound", + "outputs": [ + { + "internalType": "uint80", + "name": "", + "type": "uint80" + }, + { + "internalType": "int256", + "name": "", + "type": "int256" + }, { "internalType": "uint256", - "name": "_amount", + "name": "", "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint80", + "name": "", + "type": "uint80" } ], - "name": "stake", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "inputs": [], - "name": "totalSupply", + "name": "getLatestTimestamp", "outputs": [ { "internalType": "uint256", @@ -38474,30 +75188,75 @@ { "inputs": [ { - "internalType": "address", - "name": "newOwner", - "type": "address" + "internalType": "uint80", + "name": "_id", + "type": "uint80" } ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", + "name": "getPreviousAnswer", + "outputs": [ + { + "internalType": "int256", + "name": "", + "type": "int256" + } + ], + "stateMutability": "view", "type": "function" }, { "inputs": [ { - "internalType": "address", + "internalType": "uint80", + "name": "_id", + "type": "uint80" + } + ], + "name": "getPreviousTimestamp", + "outputs": [ + { + "internalType": "uint256", "name": "", - "type": "address" + "type": "uint256" } ], - "name": "userRewardPerTokenPaid", + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint80", + "name": "_id", + "type": "uint80" + } + ], + "name": "getRound", "outputs": [ + { + "internalType": "uint80", + "name": "", + "type": "uint80" + }, + { + "internalType": "int256", + "name": "", + "type": "int256" + }, { "internalType": "uint256", "name": "", "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint80", + "name": "", + "type": "uint80" } ], "stateMutability": "view", @@ -38505,7 +75264,7 @@ }, { "inputs": [], - "name": "vault", + "name": "owner", "outputs": [ { "internalType": "address", @@ -38516,28 +75275,62 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [ { "internalType": "address", - "name": "_staker", + "name": "_aggregator", "type": "address" - }, + } + ], + "name": "setReferenceContract", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" } ], - "name": "withdraw", + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ] }, - "DAIVaultHandler": { - "address": "0x65a2B1B48b7997a50947E83aaf58E29a54a0B735", + "MATICVaultHandler": { + "address": "0xEecF07643384C689C7AB804887ef2187cE75D5Ec", "abi": [ { "inputs": [ @@ -38588,7 +75381,7 @@ }, { "internalType": "address", - "name": "_ethOracle", + "name": "_maticOracle", "type": "address" }, { @@ -39048,6 +75841,19 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "VAULT_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -39061,6 +75867,13 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [], + "name": "addCollateralMATIC", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, { "inputs": [ { @@ -39299,6 +76112,19 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + } + ], + "name": "grantAccess", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [ { @@ -39494,6 +76320,19 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "removeCollateralMATIC", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [], "name": "renounceOwnership", @@ -39757,35 +76596,18 @@ ], "stateMutability": "view", "type": "function" + }, + { + "stateMutability": "payable", + "type": "receive" } ] }, - "DelegatorFactory": { - "address": "0x0aafdB19021a3a87A510dD4db7dce62318b49Cd1", + "WBTC": { + "address": "0x7F59668FC3ae87Ef345ab796DBfFaf109AA86DC1", "abi": [ { - "inputs": [ - { - "internalType": "address", - "name": "stakingToken_", - "type": "address" - }, - { - "internalType": "address", - "name": "rewardsToken_", - "type": "address" - }, - { - "internalType": "uint256", - "name": "waitTime_", - "type": "uint256" - }, - { - "internalType": "address", - "name": "timelock_", - "type": "address" - } - ], + "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, @@ -39795,49 +76617,23 @@ { "indexed": true, "internalType": "address", - "name": "delegator", + "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", - "name": "delegatee", - "type": "address" - } - ], - "name": "DelegatorCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", + "name": "spender", "type": "address" }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ { "indexed": false, "internalType": "uint256", - "name": "reward", + "name": "value", "type": "uint256" } ], - "name": "RewardAdded", + "name": "Approval", "type": "event" }, { @@ -39846,100 +76642,78 @@ { "indexed": true, "internalType": "address", - "name": "user", + "name": "from", "type": "address" }, { - "indexed": false, - "internalType": "uint256", - "name": "reward", - "type": "uint256" - } - ], - "name": "RewardPaid", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, { "indexed": false, "internalType": "uint256", - "name": "newDuration", + "name": "value", "type": "uint256" } ], - "name": "RewardsDurationUpdated", + "name": "Transfer", "type": "event" }, { - "anonymous": false, "inputs": [ { - "indexed": true, "internalType": "address", - "name": "delegator", + "name": "owner", "type": "address" }, { - "indexed": true, "internalType": "address", - "name": "delegatee", + "name": "spender", "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" } ], - "name": "Staked", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ + "name": "allowance", + "outputs": [ { - "indexed": false, "internalType": "uint256", - "name": "waitTime", + "name": "", "type": "uint256" } ], - "name": "WaitTimeUpdated", - "type": "event" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, "internalType": "address", - "name": "delegator", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "delegatee", + "name": "spender", "type": "address" }, { - "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], - "name": "Withdrawn", - "type": "event" + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" }, { "inputs": [ { "internalType": "address", - "name": "account_", + "name": "account", "type": "address" } ], @@ -39958,29 +76732,28 @@ "inputs": [ { "internalType": "address", - "name": "delegatee_", + "name": "_account", "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" } ], - "name": "createDelegator", + "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "delegateeToDelegator", + "inputs": [], + "name": "decimals", "outputs": [ { - "internalType": "address", + "internalType": "uint8", "name": "", - "type": "address" + "type": "uint8" } ], "stateMutability": "view", @@ -39990,30 +76763,40 @@ "inputs": [ { "internalType": "address", - "name": "", + "name": "spender", "type": "address" + }, + { + "internalType": "uint256", + "name": "subtractedValue", + "type": "uint256" } ], - "name": "delegatorToDelegatee", + "name": "decreaseAllowance", "outputs": [ { - "internalType": "address", + "internalType": "bool", "name": "", - "type": "address" + "type": "bool" } ], - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", - "name": "", + "name": "spender", "type": "address" + }, + { + "internalType": "uint256", + "name": "addedValue", + "type": "uint256" } ], - "name": "delegators", + "name": "increaseAllowance", "outputs": [ { "internalType": "bool", @@ -40021,43 +76804,35 @@ "type": "bool" } ], - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", - "name": "account_", + "name": "_account", "type": "address" - } - ], - "name": "earned", - "outputs": [ + }, { "internalType": "uint256", - "name": "", + "name": "_amount", "type": "uint256" } ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getReward", + "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], - "name": "getRewardForDuration", + "name": "name", "outputs": [ { - "internalType": "uint256", + "internalType": "string", "name": "", - "type": "uint256" + "type": "string" } ], "stateMutability": "view", @@ -40065,12 +76840,12 @@ }, { "inputs": [], - "name": "lastTimeRewardApplicable", + "name": "symbol", "outputs": [ { - "internalType": "uint256", + "internalType": "string", "name": "", - "type": "uint256" + "type": "string" } ], "stateMutability": "view", @@ -40078,7 +76853,7 @@ }, { "inputs": [], - "name": "lastUpdateTime", + "name": "totalSupply", "outputs": [ { "internalType": "uint256", @@ -40092,94 +76867,104 @@ { "inputs": [ { - "internalType": "uint256", - "name": "a_", - "type": "uint256" + "internalType": "address", + "name": "recipient", + "type": "address" }, { "internalType": "uint256", - "name": "b_", + "name": "amount", "type": "uint256" } ], - "name": "min", + "name": "transfer", "outputs": [ { - "internalType": "uint256", + "internalType": "bool", "name": "", - "type": "uint256" + "type": "bool" } ], - "stateMutability": "pure", + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, { "internalType": "uint256", - "name": "reward_", + "name": "amount", "type": "uint256" } ], - "name": "notifyRewardAmount", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "owner", + "name": "transferFrom", "outputs": [ { - "internalType": "address", + "internalType": "bool", "name": "", - "type": "address" + "type": "bool" } ], - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function" - }, + } + ] + }, + "WBTCOracle": { + "address": "0x5b1907d06DB64aE4c4Cb4DDc01e32fb11d9CB5BD", + "abi": [ { - "inputs": [], - "name": "periodFinish", - "outputs": [ + "inputs": [ { - "internalType": "uint256", - "name": "", - "type": "uint256" + "internalType": "address", + "name": "_aggregator", + "type": "address" + }, + { + "internalType": "address", + "name": "_owner", + "type": "address" } ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], "stateMutability": "nonpayable", - "type": "function" + "type": "constructor" }, { - "inputs": [], - "name": "rewardPerToken", - "outputs": [ + "anonymous": false, + "inputs": [ { - "internalType": "uint256", - "name": "", - "type": "uint256" + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" } ], - "stateMutability": "view", - "type": "function" + "name": "OwnershipTransferred", + "type": "event" }, { "inputs": [], - "name": "rewardPerTokenStored", + "name": "getLatestAnswer", "outputs": [ { - "internalType": "uint256", + "internalType": "int256", "name": "", - "type": "uint256" + "type": "int256" } ], "stateMutability": "view", @@ -40187,44 +76972,32 @@ }, { "inputs": [], - "name": "rewardRate", + "name": "getLatestRound", "outputs": [ { - "internalType": "uint256", + "internalType": "uint80", "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ + "type": "uint80" + }, { - "internalType": "address", + "internalType": "int256", "name": "", - "type": "address" - } - ], - "name": "rewards", - "outputs": [ + "type": "int256" + }, { "internalType": "uint256", "name": "", "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "rewardsDuration", - "outputs": [ + }, { "internalType": "uint256", "name": "", "type": "uint256" + }, + { + "internalType": "uint80", + "name": "", + "type": "uint80" } ], "stateMutability": "view", @@ -40232,12 +77005,12 @@ }, { "inputs": [], - "name": "rewardsToken", + "name": "getLatestTimestamp", "outputs": [ { - "internalType": "address", + "internalType": "uint256", "name": "", - "type": "address" + "type": "uint256" } ], "stateMutability": "view", @@ -40246,53 +77019,75 @@ { "inputs": [ { - "internalType": "uint256", - "name": "rewardsDuration_", - "type": "uint256" + "internalType": "uint80", + "name": "_id", + "type": "uint80" } ], - "name": "setRewardsDuration", - "outputs": [], - "stateMutability": "nonpayable", + "name": "getPreviousAnswer", + "outputs": [ + { + "internalType": "int256", + "name": "", + "type": "int256" + } + ], + "stateMutability": "view", "type": "function" }, { "inputs": [ { - "internalType": "address", - "name": "delegator_", - "type": "address" - }, + "internalType": "uint80", + "name": "_id", + "type": "uint80" + } + ], + "name": "getPreviousTimestamp", + "outputs": [ { "internalType": "uint256", - "name": "amount_", + "name": "", "type": "uint256" } ], - "name": "stake", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "inputs": [ { - "internalType": "address", + "internalType": "uint80", + "name": "_id", + "type": "uint80" + } + ], + "name": "getRound", + "outputs": [ + { + "internalType": "uint80", "name": "", - "type": "address" + "type": "uint80" }, { - "internalType": "address", + "internalType": "int256", "name": "", - "type": "address" - } - ], - "name": "stakerWaitTime", - "outputs": [ + "type": "int256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, { "internalType": "uint256", "name": "", "type": "uint256" + }, + { + "internalType": "uint80", + "name": "", + "type": "uint80" } ], "stateMutability": "view", @@ -40300,7 +77095,7 @@ }, { "inputs": [], - "name": "stakingToken", + "name": "owner", "outputs": [ { "internalType": "address", @@ -40313,26 +77108,7 @@ }, { "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", + "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" @@ -40340,12 +77116,12 @@ { "inputs": [ { - "internalType": "uint256", - "name": "waitTime_", - "type": "uint256" + "internalType": "address", + "name": "_aggregator", + "type": "address" } ], - "name": "updateWaitTime", + "name": "setReferenceContract", "outputs": [], "stateMutability": "nonpayable", "type": "function" @@ -40353,84 +77129,101 @@ { "inputs": [ { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "userRewardPerTokenPaid", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" } ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "waitTime", + "name": "supportsInterface", "outputs": [ { - "internalType": "uint256", + "internalType": "bool", "name": "", - "type": "uint256" + "type": "bool" } ], - "stateMutability": "view", + "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "address", - "name": "delegator_", + "name": "newOwner", "type": "address" - }, - { - "internalType": "uint256", - "name": "amount_", - "type": "uint256" } ], - "name": "withdraw", + "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ] }, - "ETHLiquidityReward": { - "address": "0x06e4F32A5f3bD64C4c620644d107601368BfCb27", + "WBTCVaultHandler": { + "address": "0x888ce9aD6B93733B52300E423A5f004324c83770", "abi": [ { "inputs": [ + { + "internalType": "contract Orchestrator", + "name": "_orchestrator", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_divisor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_ratio", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_burnFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_liquidationPenalty", + "type": "uint256" + }, { "internalType": "address", - "name": "_owner", + "name": "_tcapOracle", + "type": "address" + }, + { + "internalType": "contract TCAP", + "name": "_tcapAddress", "type": "address" }, { "internalType": "address", - "name": "_rewardsToken", + "name": "_collateralAddress", "type": "address" }, { "internalType": "address", - "name": "_stakingToken", + "name": "_collateralOracle", "type": "address" }, { - "internalType": "uint256", - "name": "_vestingEnd", - "type": "uint256" + "internalType": "address", + "name": "_ethOracle", + "type": "address" }, { - "internalType": "uint256", - "name": "_vestingRatio", - "type": "uint256" + "internalType": "address", + "name": "_rewardHandler", + "type": "address" + }, + { + "internalType": "address", + "name": "_treasury", + "type": "address" } ], "stateMutability": "nonpayable", @@ -40442,62 +77235,86 @@ { "indexed": true, "internalType": "address", - "name": "previousOwner", + "name": "_owner", "type": "address" }, { "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" } ], - "name": "OwnershipTransferred", + "name": "CollateralAdded", "type": "event" }, { "anonymous": false, "inputs": [ { - "indexed": false, + "indexed": true, "internalType": "address", - "name": "account", + "name": "_owner", "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" } ], - "name": "Paused", + "name": "CollateralRemoved", "type": "event" }, { "anonymous": false, "inputs": [ { - "indexed": false, + "indexed": true, "internalType": "address", - "name": "token", + "name": "_owner", "type": "address" }, { "indexed": false, "internalType": "uint256", - "name": "amount", + "name": "_burnFee", "type": "uint256" } ], - "name": "Recovered", + "name": "NewBurnFee", "type": "event" }, { "anonymous": false, "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, { "indexed": false, "internalType": "uint256", - "name": "reward", + "name": "_liquidationPenalty", "type": "uint256" } ], - "name": "RewardAdded", + "name": "NewLiquidationPenalty", "type": "event" }, { @@ -40506,30 +77323,87 @@ { "indexed": true, "internalType": "address", - "name": "user", + "name": "_owner", "type": "address" }, { "indexed": false, "internalType": "uint256", - "name": "reward", + "name": "_ratio", "type": "uint256" } ], - "name": "RewardPaid", + "name": "NewRatio", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "_tresury", + "type": "address" + } + ], + "name": "NewTreasury", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "Paused", "type": "event" }, { "anonymous": false, "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_token", + "type": "address" + }, { "indexed": false, "internalType": "uint256", - "name": "newDuration", + "name": "_amount", "type": "uint256" } ], - "name": "RewardsDurationUpdated", + "name": "Recovered", "type": "event" }, { @@ -40613,17 +77487,48 @@ { "indexed": true, "internalType": "address", - "name": "user", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "TokensBurned", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", "type": "address" }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, { "indexed": false, "internalType": "uint256", - "name": "amount", + "name": "_amount", "type": "uint256" } ], - "name": "Staked", + "name": "TokensMinted", "type": "event" }, { @@ -40645,41 +77550,196 @@ { "indexed": true, "internalType": "address", - "name": "user", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + } + ], + "name": "VaultCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "address", + "name": "_liquidator", "type": "address" }, { - "indexed": false, + "indexed": false, + "internalType": "uint256", + "name": "_liquidationCollateral", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_reward", + "type": "uint256" + } + ], + "name": "VaultLiquidated", + "type": "event" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "ETHPriceOracle", + "outputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MAX_DECIMAL_PLACES", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MAX_FEE", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MIN_RATIO", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "TCAPPrice", + "outputs": [ + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "TCAPToken", + "outputs": [ + { + "internalType": "contract TCAP", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "addCollateral", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "burnFee", + "outputs": [ + { "internalType": "uint256", - "name": "amount", + "name": "", "type": "uint256" } ], - "name": "Withdrawn", - "type": "event" + "stateMutability": "view", + "type": "function" }, { "inputs": [], - "name": "DEFAULT_ADMIN_ROLE", + "name": "collateralContract", "outputs": [ { - "internalType": "bytes32", + "internalType": "contract IERC20", "name": "", - "type": "bytes32" + "type": "address" } ], "stateMutability": "view", "type": "function" }, { - "inputs": [ - { - "internalType": "address", - "name": "_account", - "type": "address" - } - ], - "name": "balanceOf", + "inputs": [], + "name": "collateralDecimalsAdjustmentFactor", "outputs": [ { "internalType": "uint256", @@ -40692,24 +77752,24 @@ }, { "inputs": [], - "name": "claimVest", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ + "name": "collateralPriceOracle", + "outputs": [ { - "internalType": "address", - "name": "_account", + "internalType": "contract ChainlinkOracle", + "name": "", "type": "address" } ], - "name": "earned", + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "counter", "outputs": [ { "internalType": "uint256", - "name": "", + "name": "_value", "type": "uint256" } ], @@ -40718,25 +77778,56 @@ }, { "inputs": [], - "name": "exit", + "name": "createVault", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], - "name": "getReward", - "outputs": [], - "stateMutability": "nonpayable", + "name": "divisor", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", "type": "function" }, { - "inputs": [], - "name": "getRewardForDuration", + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "getFee", "outputs": [ { "internalType": "uint256", - "name": "", + "name": "fee", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "_oracle", + "type": "address" + } + ], + "name": "getOraclePrice", + "outputs": [ + { + "internalType": "uint256", + "name": "price", "type": "uint256" } ], @@ -40805,6 +77896,59 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_id", + "type": "uint256" + } + ], + "name": "getVault", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + } + ], + "name": "getVaultRatio", + "outputs": [ + { + "internalType": "uint256", + "name": "currentRatio", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -40848,21 +77992,26 @@ "type": "function" }, { - "inputs": [], - "name": "lastTimeRewardApplicable", - "outputs": [ + "inputs": [ { "internalType": "uint256", - "name": "", + "name": "_vaultId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_maxTCAP", "type": "uint256" } ], - "stateMutability": "view", + "name": "liquidateVault", + "outputs": [], + "stateMutability": "payable", "type": "function" }, { "inputs": [], - "name": "lastUpdateTime", + "name": "liquidationPenalty", "outputs": [ { "internalType": "uint256", @@ -40877,39 +78026,47 @@ "inputs": [ { "internalType": "uint256", - "name": "_a", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_b", + "name": "_vaultId", "type": "uint256" } ], - "name": "min", + "name": "liquidationReward", "outputs": [ { "internalType": "uint256", - "name": "", + "name": "rewardCollateral", "type": "uint256" } ], - "stateMutability": "pure", + "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", - "name": "_reward", + "name": "_amount", "type": "uint256" } ], - "name": "notifyRewardAmount", + "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [], + "name": "oracleDigits", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [], "name": "owner", @@ -40923,6 +78080,13 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "pause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [], "name": "paused", @@ -40938,7 +78102,7 @@ }, { "inputs": [], - "name": "periodFinish", + "name": "ratio", "outputs": [ { "internalType": "uint256", @@ -40967,6 +78131,19 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "removeCollateral", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [], "name": "renounceOwnership", @@ -40995,28 +78172,16 @@ { "inputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" + "internalType": "uint256", + "name": "_amount", + "type": "uint256" } ], - "name": "revokeRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "rewardPerToken", + "name": "requiredCollateral", "outputs": [ { "internalType": "uint256", - "name": "", + "name": "collateral", "type": "uint256" } ], @@ -41024,25 +78189,18 @@ "type": "function" }, { - "inputs": [], - "name": "rewardPerTokenStored", - "outputs": [ + "inputs": [ { "internalType": "uint256", - "name": "", + "name": "_vaultId", "type": "uint256" } ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "rewardRate", + "name": "requiredLiquidationTCAP", "outputs": [ { "internalType": "uint256", - "name": "", + "name": "amount", "type": "uint256" } ], @@ -41051,58 +78209,70 @@ }, { "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, { "internalType": "address", - "name": "", + "name": "account", "type": "address" } ], - "name": "rewards", + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "rewardHandler", "outputs": [ { - "internalType": "uint256", + "internalType": "contract IRewardHandler", "name": "", - "type": "uint256" + "type": "address" } ], "stateMutability": "view", "type": "function" }, { - "inputs": [], - "name": "rewardsDuration", - "outputs": [ + "inputs": [ { "internalType": "uint256", - "name": "", + "name": "_burnFee", "type": "uint256" } ], - "stateMutability": "view", + "name": "setBurnFee", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [], - "name": "rewardsToken", - "outputs": [ + "inputs": [ { - "internalType": "contract IERC20", - "name": "", - "type": "address" + "internalType": "uint256", + "name": "_liquidationPenalty", + "type": "uint256" } ], - "stateMutability": "view", + "name": "setLiquidationPenalty", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", - "name": "_rewardsDuration", + "name": "_ratio", "type": "uint256" } ], - "name": "setRewardsDuration", + "name": "setRatio", "outputs": [], "stateMutability": "nonpayable", "type": "function" @@ -41110,37 +78280,43 @@ { "inputs": [ { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" + "internalType": "address", + "name": "_treasury", + "type": "address" } ], - "name": "stake", + "name": "setTreasury", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [], - "name": "stakingToken", + "inputs": [ + { + "internalType": "bytes4", + "name": "_interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", "outputs": [ { - "internalType": "contract IERC20", + "internalType": "bool", "name": "", - "type": "address" + "type": "bool" } ], - "stateMutability": "view", + "stateMutability": "pure", "type": "function" }, { "inputs": [], - "name": "totalSupply", + "name": "tcapOracle", "outputs": [ { - "internalType": "uint256", + "internalType": "contract ChainlinkOracle", "name": "", - "type": "uint256" + "type": "address" } ], "stateMutability": "view", @@ -41160,24 +78336,25 @@ "type": "function" }, { - "inputs": [ + "inputs": [], + "name": "treasury", + "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], - "name": "userRewardPerTokenPaid", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "unpause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [ { @@ -41186,7 +78363,7 @@ "type": "address" } ], - "name": "vestingAmounts", + "name": "userToVault", "outputs": [ { "internalType": "uint256", @@ -41198,59 +78375,49 @@ "type": "function" }, { - "inputs": [], - "name": "vestingEnd", - "outputs": [ + "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "vestingRatio", + "name": "vaults", "outputs": [ { "internalType": "uint256", - "name": "", + "name": "Id", "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ + }, { "internalType": "uint256", - "name": "_amount", + "name": "Collateral", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "Debt", "type": "uint256" + }, + { + "internalType": "address", + "name": "Owner", + "type": "address" } ], - "name": "withdraw", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" } ] }, - "GovernorAlpha": { - "address": "0xc27e8BfB7a85f54498b2378d2a533126800d14E3", + "Orchestrator": { + "address": "0x8364072aD72bf4E8Ad56Ea22e7c85533C4FbaAf1", "abi": [ { "inputs": [ { "internalType": "address", - "name": "timelock_", - "type": "address" - }, - { - "internalType": "address", - "name": "ctx_", + "name": "_guardian", "type": "address" } ], @@ -41260,148 +78427,150 @@ { "anonymous": false, "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, { "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" + "internalType": "address", + "name": "guardian", + "type": "address" } ], - "name": "ProposalCanceled", + "name": "GuardianSet", "type": "event" }, { "anonymous": false, "inputs": [ { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "indexed": false, + "indexed": true, "internalType": "address", - "name": "proposer", + "name": "previousOwner", "type": "address" }, { - "indexed": false, - "internalType": "address[]", - "name": "targets", - "type": "address[]" - }, - { - "indexed": false, - "internalType": "uint256[]", - "name": "values", - "type": "uint256[]" - }, - { - "indexed": false, - "internalType": "string[]", - "name": "signatures", - "type": "string[]" - }, + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ { - "indexed": false, - "internalType": "bytes[]", - "name": "calldatas", - "type": "bytes[]" + "indexed": true, + "internalType": "address", + "name": "target", + "type": "address" }, { "indexed": false, "internalType": "uint256", - "name": "startBlock", + "name": "value", "type": "uint256" }, { "indexed": false, - "internalType": "uint256", - "name": "endBlock", - "type": "uint256" + "internalType": "string", + "name": "signature", + "type": "string" }, { "indexed": false, - "internalType": "string", - "name": "description", - "type": "string" + "internalType": "bytes", + "name": "data", + "type": "bytes" } ], - "name": "ProposalCreated", + "name": "TransactionExecuted", "type": "event" }, { - "anonymous": false, "inputs": [ { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" + "internalType": "contract TCAP", + "name": "_tcap", + "type": "address" + }, + { + "internalType": "contract IVaultHandler", + "name": "_vault", + "type": "address" } ], - "name": "ProposalExecuted", - "type": "event" + "name": "addTCAPVault", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" + "internalType": "contract TCAP", + "name": "_tcap", + "type": "address" }, { - "indexed": false, - "internalType": "uint256", - "name": "eta", - "type": "uint256" + "internalType": "bool", + "name": "_enable", + "type": "bool" } ], - "name": "ProposalQueued", - "type": "event" + "name": "enableTCAPCap", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": false, "internalType": "address", - "name": "voter", + "name": "target", "type": "address" }, { - "indexed": false, "internalType": "uint256", - "name": "proposalId", + "name": "value", "type": "uint256" }, { - "indexed": false, - "internalType": "bool", - "name": "support", - "type": "bool" + "internalType": "string", + "name": "signature", + "type": "string" }, { - "indexed": false, - "internalType": "uint256", - "name": "votes", - "type": "uint256" + "internalType": "bytes", + "name": "data", + "type": "bytes" } ], - "name": "VoteCast", - "type": "event" + "name": "executeTransaction", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "stateMutability": "payable", + "type": "function" }, { "inputs": [], - "name": "BALLOT_TYPEHASH", + "name": "guardian", "outputs": [ { - "internalType": "bytes32", + "internalType": "address", "name": "", - "type": "bytes32" + "type": "address" } ], "stateMutability": "view", @@ -41409,12 +78578,12 @@ }, { "inputs": [], - "name": "DOMAIN_TYPEHASH", + "name": "owner", "outputs": [ { - "internalType": "bytes32", + "internalType": "address", "name": "", - "type": "bytes32" + "type": "address" } ], "stateMutability": "view", @@ -41423,12 +78592,12 @@ { "inputs": [ { - "internalType": "uint256", - "name": "proposalId", - "type": "uint256" + "internalType": "contract IVaultHandler", + "name": "_vault", + "type": "address" } ], - "name": "cancel", + "name": "pauseVault", "outputs": [], "stateMutability": "nonpayable", "type": "function" @@ -41436,402 +78605,390 @@ { "inputs": [ { - "internalType": "uint256", - "name": "proposalId", - "type": "uint256" + "internalType": "contract TCAP", + "name": "_tcap", + "type": "address" }, { - "internalType": "bool", - "name": "support", - "type": "bool" + "internalType": "contract IVaultHandler", + "name": "_vault", + "type": "address" } ], - "name": "castVote", + "name": "removeTCAPVault", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [ - { - "internalType": "uint256", - "name": "proposalId", - "type": "uint256" - }, - { - "internalType": "bool", - "name": "support", - "type": "bool" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "castVoteBySig", + "inputs": [], + "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [], - "name": "ctx", - "outputs": [ + "inputs": [ { - "internalType": "contract CtxInterface", - "name": "", + "internalType": "address", + "name": "_to", "type": "address" } ], - "stateMutability": "view", + "name": "retrieveETH", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ + { + "internalType": "contract IVaultHandler", + "name": "_vault", + "type": "address" + }, { "internalType": "uint256", - "name": "proposalId", + "name": "_burnFee", "type": "uint256" } ], - "name": "execute", + "name": "setBurnFee", "outputs": [], - "stateMutability": "payable", + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { - "internalType": "uint256", - "name": "proposalId", - "type": "uint256" - } - ], - "name": "getActions", - "outputs": [ - { - "internalType": "address[]", - "name": "targets", - "type": "address[]" - }, - { - "internalType": "uint256[]", - "name": "values", - "type": "uint256[]" - }, - { - "internalType": "string[]", - "name": "signatures", - "type": "string[]" - }, - { - "internalType": "bytes[]", - "name": "calldatas", - "type": "bytes[]" + "internalType": "contract IVaultHandler", + "name": "_vault", + "type": "address" } ], - "stateMutability": "view", + "name": "setEmergencyBurnFee", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { - "internalType": "uint256", - "name": "proposalId", - "type": "uint256" - }, - { - "internalType": "address", - "name": "voter", + "internalType": "contract IVaultHandler", + "name": "_vault", "type": "address" } ], - "name": "getReceipt", - "outputs": [ - { - "components": [ - { - "internalType": "bool", - "name": "hasVoted", - "type": "bool" - }, - { - "internalType": "bool", - "name": "support", - "type": "bool" - }, - { - "internalType": "uint96", - "name": "votes", - "type": "uint96" - } - ], - "internalType": "struct GovernorAlpha.Receipt", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", + "name": "setEmergencyLiquidationPenalty", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", - "name": "", + "name": "_guardian", "type": "address" } ], - "name": "latestProposalIds", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", + "name": "setGuardian", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [], - "name": "name", - "outputs": [ + "inputs": [ { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "proposalCount", - "outputs": [ + "internalType": "contract IVaultHandler", + "name": "_vault", + "type": "address" + }, { "internalType": "uint256", - "name": "", + "name": "_liquidationPenalty", "type": "uint256" } ], - "stateMutability": "view", + "name": "setLiquidationPenalty", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [], - "name": "proposalMaxOperations", - "outputs": [ + "inputs": [ + { + "internalType": "contract IVaultHandler", + "name": "_vault", + "type": "address" + }, { "internalType": "uint256", - "name": "", + "name": "_ratio", "type": "uint256" } ], - "stateMutability": "view", + "name": "setRatio", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [], - "name": "MIN_RATIO", - "outputs": [ + "inputs": [ + { + "internalType": "contract TCAP", + "name": "_tcap", + "type": "address" + }, { "internalType": "uint256", - "name": "", + "name": "_cap", "type": "uint256" } ], - "stateMutability": "view", + "name": "setTCAPCap", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [], - "name": "TCAPPrice", - "outputs": [ + "inputs": [ { - "internalType": "uint256", - "name": "price", - "type": "uint256" + "internalType": "address", + "name": "newOwner", + "type": "address" } ], - "stateMutability": "view", + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [], - "name": "TCAPToken", - "outputs": [ + "inputs": [ { - "internalType": "contract TCAP", - "name": "", + "internalType": "contract IVaultHandler", + "name": "_vault", "type": "address" } ], - "stateMutability": "view", + "name": "unpauseVault", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, + { + "stateMutability": "payable", + "type": "receive" + } + ] + }, + "TCAP": { + "address": "0x39ACEcE80A54C6a87D888b0F0aad7DA2D0ac6FE5", + "abi": [ { "inputs": [ + { + "internalType": "string", + "name": "_name", + "type": "string" + }, + { + "internalType": "string", + "name": "_symbol", + "type": "string" + }, { "internalType": "uint256", - "name": "_amount", + "name": "_cap", "type": "uint256" + }, + { + "internalType": "contract Orchestrator", + "name": "_orchestrator", + "type": "address" } ], - "name": "addCollateral", - "outputs": [], "stateMutability": "nonpayable", - "type": "function" + "type": "constructor" }, { + "anonymous": false, "inputs": [ { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, "internalType": "uint256", - "name": "_amount", + "name": "value", "type": "uint256" } ], - "name": "burn", - "outputs": [], - "stateMutability": "payable", - "type": "function" + "name": "Approval", + "type": "event" }, { - "inputs": [], - "name": "burnFee", - "outputs": [ + "anonymous": false, + "inputs": [ { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, "internalType": "uint256", - "name": "", + "name": "_amount", "type": "uint256" } ], - "stateMutability": "view", - "type": "function" + "name": "NewCap", + "type": "event" }, { - "inputs": [], - "name": "collateralContract", - "outputs": [ + "anonymous": false, + "inputs": [ { - "internalType": "contract IERC20", - "name": "", + "indexed": true, + "internalType": "address", + "name": "_owner", "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "_enable", + "type": "bool" } ], - "stateMutability": "view", - "type": "function" + "name": "NewCapEnabled", + "type": "event" }, { - "inputs": [], - "name": "collateralPriceOracle", - "outputs": [ + "anonymous": false, + "inputs": [ { - "internalType": "contract ChainlinkOracle", - "name": "", + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", "type": "address" } ], - "stateMutability": "view", - "type": "function" + "name": "OwnershipTransferred", + "type": "event" }, { - "inputs": [], - "name": "counter", - "outputs": [ + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, "internalType": "uint256", - "name": "_value", + "name": "value", "type": "uint256" } ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "createVault", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "name": "Transfer", + "type": "event" }, { - "inputs": [], - "name": "divisor", - "outputs": [ + "anonymous": false, + "inputs": [ { - "internalType": "uint256", - "name": "", - "type": "uint256" + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "_tokenHandler", + "type": "address" } ], - "stateMutability": "view", - "type": "function" + "name": "VaultHandlerAdded", + "type": "event" }, { + "anonymous": false, "inputs": [ { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - } - ], - "name": "getFee", - "outputs": [ + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, { - "internalType": "uint256", - "name": "fee", - "type": "uint256" + "indexed": true, + "internalType": "address", + "name": "_tokenHandler", + "type": "address" } ], - "stateMutability": "view", - "type": "function" + "name": "VaultHandlerRemoved", + "type": "event" }, { "inputs": [ { - "internalType": "contract ChainlinkOracle", - "name": "_oracle", + "internalType": "address", + "name": "_vaultHandler", "type": "address" } ], - "name": "getOraclePrice", - "outputs": [ - { - "internalType": "uint256", - "name": "price", - "type": "uint256" - } - ], - "stateMutability": "view", + "name": "addVaultHandler", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" } ], - "name": "getRoleAdmin", + "name": "allowance", "outputs": [ { - "internalType": "bytes32", + "internalType": "uint256", "name": "", - "type": "bytes32" + "type": "uint256" } ], "stateMutability": "view", @@ -41840,36 +78997,36 @@ { "inputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" + "internalType": "address", + "name": "spender", + "type": "address" }, { "internalType": "uint256", - "name": "index", + "name": "amount", "type": "uint256" } ], - "name": "getRoleMember", + "name": "approve", "outputs": [ { - "internalType": "address", + "internalType": "bool", "name": "", - "type": "address" + "type": "bool" } ], - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" + "internalType": "address", + "name": "account", + "type": "address" } ], - "name": "getRoleMemberCount", + "name": "balanceOf", "outputs": [ { "internalType": "uint256", @@ -41882,33 +79039,56 @@ }, { "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + }, { "internalType": "uint256", - "name": "_id", + "name": "_amount", "type": "uint256" } ], - "name": "getVault", + "name": "burn", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "cap", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "capEnabled", + "outputs": [ { - "internalType": "address", + "internalType": "bool", "name": "", - "type": "address" - }, + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ { - "internalType": "uint256", + "internalType": "uint8", "name": "", - "type": "uint256" + "type": "uint8" } ], "stateMutability": "view", @@ -41916,55 +79096,55 @@ }, { "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, { "internalType": "uint256", - "name": "_vaultId", + "name": "subtractedValue", "type": "uint256" } ], - "name": "getVaultRatio", + "name": "decreaseAllowance", "outputs": [ { - "internalType": "uint256", - "name": "currentRatio", - "type": "uint256" + "internalType": "bool", + "name": "", + "type": "bool" } ], - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" + "internalType": "bool", + "name": "_enable", + "type": "bool" } ], - "name": "grantRole", + "name": "enableCap", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, { "internalType": "address", - "name": "account", + "name": "spender", "type": "address" + }, + { + "internalType": "uint256", + "name": "addedValue", + "type": "uint256" } ], - "name": "hasRole", + "name": "increaseAllowance", "outputs": [ { "internalType": "bool", @@ -41972,54 +79152,48 @@ "type": "bool" } ], - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { - "internalType": "uint256", - "name": "_vaultId", - "type": "uint256" + "internalType": "address", + "name": "_account", + "type": "address" }, { "internalType": "uint256", - "name": "_maxTCAP", + "name": "_amount", "type": "uint256" } ], - "name": "liquidateVault", + "name": "mint", "outputs": [], - "stateMutability": "payable", + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], - "name": "liquidationPenalty", + "name": "name", "outputs": [ { - "internalType": "uint256", + "internalType": "string", "name": "", - "type": "uint256" + "type": "string" } ], "stateMutability": "view", "type": "function" }, { - "inputs": [ - { - "internalType": "uint256", - "name": "_vaultId", - "type": "uint256" - } - ], - "name": "liquidationReward", + "inputs": [], + "name": "owner", "outputs": [ { - "internalType": "uint256", - "name": "rewardCollateral", - "type": "uint256" + "internalType": "address", + "name": "", + "type": "address" } ], "stateMutability": "view", @@ -42028,57 +79202,63 @@ { "inputs": [ { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" + "internalType": "address", + "name": "_vaultHandler", + "type": "address" } ], - "name": "mint", + "name": "removeVaultHandler", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], - "name": "oracleDigits", - "outputs": [ + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ { "internalType": "uint256", - "name": "", + "name": "_cap", "type": "uint256" } ], - "stateMutability": "view", + "name": "setCap", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [], - "name": "owner", + "inputs": [ + { + "internalType": "bytes4", + "name": "_interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", "outputs": [ { - "internalType": "address", + "internalType": "bool", "name": "", - "type": "address" + "type": "bool" } ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "pause", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "pure", "type": "function" }, { "inputs": [], - "name": "paused", + "name": "symbol", "outputs": [ { - "internalType": "bool", + "internalType": "string", "name": "", - "type": "bool" + "type": "string" } ], "stateMutability": "view", @@ -42086,7 +79266,7 @@ }, { "inputs": [], - "name": "ratio", + "name": "totalSupply", "outputs": [ { "internalType": "uint256", @@ -42101,54 +79281,64 @@ "inputs": [ { "internalType": "address", - "name": "_tokenAddress", + "name": "recipient", "type": "address" }, { "internalType": "uint256", - "name": "_tokenAmount", + "name": "amount", "type": "uint256" } ], - "name": "recoverERC20", - "outputs": [], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, { "internalType": "uint256", - "name": "_amount", + "name": "amount", "type": "uint256" } ], - "name": "removeCollateral", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, { "internalType": "address", - "name": "account", + "name": "newOwner", "type": "address" } ], - "name": "renounceRole", + "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" @@ -42156,151 +79346,149 @@ { "inputs": [ { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" + "internalType": "address", + "name": "", + "type": "address" } ], - "name": "requiredCollateral", + "name": "vaultHandlers", "outputs": [ { - "internalType": "uint256", - "name": "collateral", - "type": "uint256" + "internalType": "bool", + "name": "", + "type": "bool" } ], "stateMutability": "view", "type": "function" - }, + } + ] + }, + "TCAPOracle": { + "address": "0x8B4A041A619aC26B33e5BAEe9585e569387ec837", + "abi": [ { "inputs": [ { - "internalType": "uint256", - "name": "_vaultId", - "type": "uint256" - } - ], - "name": "requiredLiquidationTCAP", - "outputs": [ - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" + "internalType": "address", + "name": "_aggregator", + "type": "address" } ], - "stateMutability": "view", - "type": "function" + "stateMutability": "nonpayable", + "type": "constructor" }, { + "anonymous": false, "inputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" }, { + "indexed": true, "internalType": "address", - "name": "account", + "name": "newOwner", "type": "address" } ], - "name": "revokeRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "name": "OwnershipTransferred", + "type": "event" }, { "inputs": [], - "name": "rewardHandler", + "name": "getLatestAnswer", "outputs": [ { - "internalType": "contract IRewardHandler", + "internalType": "int256", "name": "", - "type": "address" + "type": "int256" } ], "stateMutability": "view", "type": "function" }, { - "inputs": [ + "inputs": [], + "name": "getLatestRound", + "outputs": [ + { + "internalType": "uint80", + "name": "", + "type": "uint80" + }, + { + "internalType": "int256", + "name": "", + "type": "int256" + }, { "internalType": "uint256", - "name": "_burnFee", + "name": "", "type": "uint256" - } - ], - "name": "setBurnFee", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ + }, { "internalType": "uint256", - "name": "_liquidationPenalty", + "name": "", "type": "uint256" + }, + { + "internalType": "uint80", + "name": "", + "type": "uint80" } ], - "name": "setLiquidationPenalty", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { - "inputs": [ + "inputs": [], + "name": "getLatestTimestamp", + "outputs": [ { "internalType": "uint256", - "name": "_ratio", + "name": "", "type": "uint256" } ], - "name": "setRatio", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_treasury", - "type": "address" - } - ], - "name": "setTreasury", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "inputs": [ { - "internalType": "bytes4", - "name": "_interfaceId", - "type": "bytes4" + "internalType": "uint80", + "name": "_id", + "type": "uint80" } ], - "name": "supportsInterface", + "name": "getPreviousAnswer", "outputs": [ { - "internalType": "bool", + "internalType": "int256", "name": "", - "type": "bool" + "type": "int256" } ], - "stateMutability": "pure", + "stateMutability": "view", "type": "function" }, { - "inputs": [], - "name": "tcapOracle", + "inputs": [ + { + "internalType": "uint80", + "name": "_id", + "type": "uint80" + } + ], + "name": "getPreviousTimestamp", "outputs": [ { - "internalType": "contract ChainlinkOracle", + "internalType": "uint256", "name": "", - "type": "address" + "type": "uint256" } ], "stateMutability": "view", @@ -42309,19 +79497,45 @@ { "inputs": [ { - "internalType": "address", - "name": "newOwner", - "type": "address" + "internalType": "uint80", + "name": "_id", + "type": "uint80" } ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", + "name": "getRound", + "outputs": [ + { + "internalType": "uint80", + "name": "", + "type": "uint80" + }, + { + "internalType": "int256", + "name": "", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint80", + "name": "", + "type": "uint80" + } + ], + "stateMutability": "view", "type": "function" }, { "inputs": [], - "name": "treasury", + "name": "owner", "outputs": [ { "internalType": "address", @@ -42334,7 +79548,7 @@ }, { "inputs": [], - "name": "unpause", + "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" @@ -42343,68 +79557,62 @@ "inputs": [ { "internalType": "address", - "name": "", + "name": "_aggregator", "type": "address" } ], - "name": "userToVault", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", + "name": "setReferenceContract", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { - "internalType": "uint256", - "name": "", - "type": "uint256" + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" } ], - "name": "vaults", + "name": "supportsInterface", "outputs": [ { - "internalType": "uint256", - "name": "Id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "Collateral", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "Debt", - "type": "uint256" - }, - { - "internalType": "address", - "name": "Owner", - "type": "address" + "internalType": "bool", + "name": "", + "type": "bool" } ], - "stateMutability": "view", + "stateMutability": "pure", "type": "function" - } - ] - }, - "Orchestrator": { - "address": "0x32ac6dBaf90A4C45f160D13B32fDD10D75D09976", - "abi": [ + }, { "inputs": [ { "internalType": "address", - "name": "_guardian", + "name": "newOwner", "type": "address" } ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ] + } + } + } + }, + "42161": { + "arbitrum": { + "name": "arbitrum-one", + "chainId": "42161", + "contracts": { + "DAI": { + "address": "0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1", + "abi": [ + { + "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, @@ -42414,17 +79622,23 @@ { "indexed": true, "internalType": "address", - "name": "_owner", + "name": "owner", "type": "address" }, { - "indexed": false, + "indexed": true, "internalType": "address", - "name": "guardian", + "name": "spender", "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" } ], - "name": "GuardianSet", + "name": "Approval", "type": "event" }, { @@ -42433,26 +79647,13 @@ { "indexed": true, "internalType": "address", - "name": "previousOwner", + "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "target", + "name": "to", "type": "address" }, { @@ -42460,114 +79661,73 @@ "internalType": "uint256", "name": "value", "type": "uint256" - }, - { - "indexed": false, - "internalType": "string", - "name": "signature", - "type": "string" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "data", - "type": "bytes" } ], - "name": "TransactionExecuted", + "name": "Transfer", "type": "event" }, { "inputs": [ { - "internalType": "contract TCAP", - "name": "_tcap", + "internalType": "address", + "name": "owner", "type": "address" }, { - "internalType": "contract IVaultHandler", - "name": "_vault", + "internalType": "address", + "name": "spender", "type": "address" } ], - "name": "addTCAPVault", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract TCAP", - "name": "_tcap", - "type": "address" - }, + "name": "allowance", + "outputs": [ { - "internalType": "bool", - "name": "_enable", - "type": "bool" + "internalType": "uint256", + "name": "", + "type": "uint256" } ], - "name": "enableTCAPCap", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", - "name": "target", + "name": "spender", "type": "address" }, { "internalType": "uint256", - "name": "value", + "name": "amount", "type": "uint256" - }, - { - "internalType": "string", - "name": "signature", - "type": "string" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" } ], - "name": "executeTransaction", + "name": "approve", "outputs": [ { - "internalType": "bytes", + "internalType": "bool", "name": "", - "type": "bytes" + "type": "bool" } ], - "stateMutability": "payable", + "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [], - "name": "guardian", - "outputs": [ + "inputs": [ { "internalType": "address", - "name": "", + "name": "account", "type": "address" } ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "owner", + "name": "balanceOf", "outputs": [ { - "internalType": "address", + "internalType": "uint256", "name": "", - "type": "address" + "type": "uint256" } ], "stateMutability": "view", @@ -42576,162 +79736,160 @@ { "inputs": [ { - "internalType": "contract IVaultHandler", - "name": "_vault", - "type": "address" - } - ], - "name": "pauseVault", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract TCAP", - "name": "_tcap", + "internalType": "address", + "name": "_account", "type": "address" }, { - "internalType": "contract IVaultHandler", - "name": "_vault", - "type": "address" + "internalType": "uint256", + "name": "_amount", + "type": "uint256" } ], - "name": "removeTCAPVault", + "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", - "name": "_to", + "name": "spender", "type": "address" + }, + { + "internalType": "uint256", + "name": "subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" } ], - "name": "retrieveETH", - "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { - "internalType": "contract IVaultHandler", - "name": "_vault", + "internalType": "address", + "name": "spender", "type": "address" }, { "internalType": "uint256", - "name": "_burnFee", + "name": "addedValue", "type": "uint256" } ], - "name": "setBurnFee", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ + "name": "increaseAllowance", + "outputs": [ { - "internalType": "contract IVaultHandler", - "name": "_vault", - "type": "address" + "internalType": "bool", + "name": "", + "type": "bool" } ], - "name": "setEmergencyBurnFee", - "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { - "internalType": "contract IVaultHandler", - "name": "_vault", + "internalType": "address", + "name": "_account", "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" } ], - "name": "setEmergencyLiquidationPenalty", + "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [ + "inputs": [], + "name": "name", + "outputs": [ { - "internalType": "address", - "name": "_guardian", - "type": "address" + "internalType": "string", + "name": "", + "type": "string" } ], - "name": "setGuardian", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { - "inputs": [ - { - "internalType": "contract IVaultHandler", - "name": "_vault", - "type": "address" - }, + "inputs": [], + "name": "symbol", + "outputs": [ { - "internalType": "uint256", - "name": "_liquidationPenalty", - "type": "uint256" + "internalType": "string", + "name": "", + "type": "string" } ], - "name": "setLiquidationPenalty", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { - "inputs": [ - { - "internalType": "contract IVaultHandler", - "name": "_vault", - "type": "address" - }, + "inputs": [], + "name": "totalSupply", + "outputs": [ { "internalType": "uint256", - "name": "_ratio", + "name": "", "type": "uint256" } ], - "name": "setRatio", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "inputs": [ { - "internalType": "contract TCAP", - "name": "_tcap", + "internalType": "address", + "name": "recipient", "type": "address" }, { "internalType": "uint256", - "name": "_cap", + "name": "amount", "type": "uint256" } ], - "name": "setTCAPCap", - "outputs": [], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], "stateMutability": "nonpayable", "type": "function" }, @@ -42739,36 +79897,35 @@ "inputs": [ { "internalType": "address", - "name": "newOwner", + "name": "sender", + "type": "address" + }, + { + "internalType": "address", + "name": "recipient", "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" } ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ + "name": "transferFrom", + "outputs": [ { - "internalType": "contract IVaultHandler", - "name": "_vault", - "type": "address" + "internalType": "bool", + "name": "", + "type": "bool" } ], - "name": "unpauseVault", - "outputs": [], "stateMutability": "nonpayable", "type": "function" - }, - { - "stateMutability": "payable", - "type": "receive" } - ] + ] }, - "LinkOracle": { - "address": "0xEecF07643384C689C7AB804887ef2187cE75D5Ec", + "DAIOracle": { + "address": "0x2fE5Bfd6051f45Df35167855e34335ed047bC8cC", "abi": [ { "inputs": [ @@ -42779,7 +79936,7 @@ }, { "internalType": "address", - "name": "_timelock", + "name": "_owner", "type": "address" } ], @@ -43008,8 +80165,8 @@ } ] }, - "LinkVaultHandler": { - "address": "0xBd4a21cC2D12157765a8861A83FC4cfd216630b1", + "DAIVaultHandler": { + "address": "0x76fD6b835d21E1e411F5927950Ec9A0146cDB54B", "abi": [ { "inputs": [ @@ -43033,6 +80190,11 @@ "name": "_burnFee", "type": "uint256" }, + { + "internalType": "uint256", + "name": "_mintFee", + "type": "uint256" + }, { "internalType": "uint256", "name": "_liquidationPenalty", @@ -43065,13 +80227,13 @@ }, { "internalType": "address", - "name": "_rewardHandler", + "name": "_treasury", "type": "address" }, { - "internalType": "address", - "name": "_treasury", - "type": "address" + "internalType": "uint256", + "name": "_minimumTCAP", + "type": "uint256" } ], "stateMutability": "nonpayable", @@ -43127,6 +80289,31 @@ "name": "CollateralRemoved", "type": "event" }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "enum IVaultHandler.FunctionChoices", + "name": "_function", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "bool", + "name": "_isDisabled", + "type": "bool" + } + ], + "name": "FunctionToggled", + "type": "event" + }, { "anonymous": false, "inputs": [ @@ -43165,6 +80352,44 @@ "name": "NewLiquidationPenalty", "type": "event" }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_minimumTCAP", + "type": "uint256" + } + ], + "name": "NewMinimumTCAP", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_mintFee", + "type": "uint256" + } + ], + "name": "NewMintFee", + "type": "event" + }, { "anonymous": false, "inputs": [ @@ -43468,6 +80693,19 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "MAX_DECIMAL_PLACES", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [], "name": "MAX_FEE", @@ -43572,6 +80810,19 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "collateralDecimalsAdjustmentFactor", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [], "name": "collateralPriceOracle", @@ -43626,7 +80877,26 @@ "type": "uint256" } ], - "name": "getFee", + "name": "getBurnFee", + "outputs": [ + { + "internalType": "uint256", + "name": "fee", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "getMintFee", "outputs": [ { "internalType": "uint256", @@ -43813,6 +81083,25 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "enum IVaultHandler.FunctionChoices", + "name": "", + "type": "uint8" + } + ], + "name": "isDisabled", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -43863,6 +81152,19 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "minimumTCAP", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -43873,7 +81175,20 @@ ], "name": "mint", "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "mintFee", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", "type": "function" }, { @@ -44048,27 +81363,27 @@ "type": "function" }, { - "inputs": [], - "name": "rewardHandler", - "outputs": [ + "inputs": [ { - "internalType": "contract IRewardHandler", - "name": "", - "type": "address" + "internalType": "uint256", + "name": "_burnFee", + "type": "uint256" } ], - "stateMutability": "view", + "name": "setBurnFee", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", - "name": "_burnFee", + "name": "_liquidationPenalty", "type": "uint256" } ], - "name": "setBurnFee", + "name": "setLiquidationPenalty", "outputs": [], "stateMutability": "nonpayable", "type": "function" @@ -44077,11 +81392,24 @@ "inputs": [ { "internalType": "uint256", - "name": "_liquidationPenalty", + "name": "_minimumTCAP", "type": "uint256" } ], - "name": "setLiquidationPenalty", + "name": "setMinimumTCAP", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_mintFee", + "type": "uint256" + } + ], + "name": "setMintFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" @@ -44144,6 +81472,24 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "enum IVaultHandler.FunctionChoices", + "name": "_function", + "type": "uint8" + }, + { + "internalType": "bool", + "name": "_isDisabled", + "type": "bool" + } + ], + "name": "toggleFunction", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [ { @@ -44232,8 +81578,8 @@ } ] }, - "TCAP": { - "address": "0xa05Ea86407B08Eb814688E86827a21dc679aEa1C", + "JPEGZ": { + "address": "0xD5536c80191c624F6bFD5590A45b9E93B16DEA97", "abi": [ { "inputs": [ @@ -44813,8 +82159,8 @@ } ] }, - "TCAPOracle": { - "address": "0x73D0e1C88DDE450DE5dEa67778E4d48F01b809C7", + "JPEGZOracle": { + "address": "0xAcd157D7D20a758FfA37830b873bA428a785D66d", "abi": [ { "inputs": [ @@ -44822,6 +82168,11 @@ "internalType": "address", "name": "_aggregator", "type": "address" + }, + { + "internalType": "address", + "name": "_owner", + "type": "address" } ], "stateMutability": "nonpayable", @@ -45049,466 +82400,116 @@ } ] }, - "Timelock": { - "address": "0x65a2B1B48b7997a50947E83aaf58E29a54a0B735", + "TCAP": { + "address": "0x35B33115D3bf7DCE5380B9728e778393F00C3666", "abi": [ { "inputs": [ { - "internalType": "address", - "name": "admin_", - "type": "address" - }, - { - "internalType": "uint256", - "name": "delay_", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "txHash", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "target", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "indexed": false, "internalType": "string", - "name": "signature", - "type": "string" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "eta", - "type": "uint256" - } - ], - "name": "CancelTransaction", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "txHash", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "target", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "string", - "name": "signature", + "name": "_name", "type": "string" }, { - "indexed": false, - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "eta", - "type": "uint256" - } - ], - "name": "ExecuteTransaction", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newAdmin", - "type": "address" - } - ], - "name": "NewAdmin", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "newDelay", - "type": "uint256" - } - ], - "name": "NewDelay", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newPendingAdmin", - "type": "address" - } - ], - "name": "NewPendingAdmin", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "txHash", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "target", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "indexed": false, "internalType": "string", - "name": "signature", - "type": "string" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "eta", - "type": "uint256" - } - ], - "name": "QueueTransaction", - "type": "event" - }, - { - "inputs": [], - "name": "GRACE_PERIOD", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MAXIMUM_DELAY", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MINIMUM_DELAY", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "acceptAdmin", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "admin", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "target", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "string", - "name": "signature", + "name": "_symbol", "type": "string" }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, { "internalType": "uint256", - "name": "eta", - "type": "uint256" - } - ], - "name": "cancelTransaction", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "delay", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "target", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", + "name": "_cap", "type": "uint256" }, { - "internalType": "string", - "name": "signature", - "type": "string" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "eta", - "type": "uint256" - } - ], - "name": "executeTransaction", - "outputs": [ - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [], - "name": "pendingAdmin", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "target", + "internalType": "contract Orchestrator", + "name": "_orchestrator", "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "string", - "name": "signature", - "type": "string" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "eta", - "type": "uint256" } ], - "name": "queueTransaction", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "name": "queuedTransactions", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" + "stateMutability": "nonpayable", + "type": "constructor" }, { + "anonymous": false, "inputs": [ { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, "internalType": "uint256", - "name": "delay_", + "name": "value", "type": "uint256" } ], - "name": "setDelay", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "name": "Approval", + "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": true, "internalType": "address", - "name": "pendingAdmin_", + "name": "_owner", "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" } ], - "name": "setPendingAdmin", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "name": "NewCap", + "type": "event" }, { + "anonymous": false, "inputs": [ { - "internalType": "bytes4", - "name": "_interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, { + "indexed": false, "internalType": "bool", - "name": "", + "name": "_enable", "type": "bool" } ], - "stateMutability": "pure", - "type": "function" + "name": "NewCapEnabled", + "type": "event" }, { - "stateMutability": "payable", - "type": "receive" - } - ] - }, - "WBTC": { - "address": "0x200534AA6A1c47102C09232347373499B983D6EF", - "abi": [ - { - "inputs": [], - "stateMutability": "nonpayable", - "type": "constructor" + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" }, { "anonymous": false, @@ -45516,13 +82517,13 @@ { "indexed": true, "internalType": "address", - "name": "owner", + "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", - "name": "spender", + "name": "to", "type": "address" }, { @@ -45532,7 +82533,7 @@ "type": "uint256" } ], - "name": "Approval", + "name": "Transfer", "type": "event" }, { @@ -45541,25 +82542,51 @@ { "indexed": true, "internalType": "address", - "name": "from", + "name": "_owner", "type": "address" }, { "indexed": true, "internalType": "address", - "name": "to", + "name": "_tokenHandler", + "type": "address" + } + ], + "name": "VaultHandlerAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", "type": "address" }, { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" + "indexed": true, + "internalType": "address", + "name": "_tokenHandler", + "type": "address" } ], - "name": "Transfer", + "name": "VaultHandlerRemoved", "type": "event" }, + { + "inputs": [ + { + "internalType": "address", + "name": "_vaultHandler", + "type": "address" + } + ], + "name": "addVaultHandler", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [ { @@ -45645,6 +82672,32 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [], + "name": "cap", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "capEnabled", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [], "name": "decimals", @@ -45682,6 +82735,19 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [ + { + "internalType": "bool", + "name": "_enable", + "type": "bool" + } + ], + "name": "enableCap", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [ { @@ -45737,6 +82803,71 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_vaultHandler", + "type": "address" + } + ], + "name": "removeVaultHandler", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_cap", + "type": "uint256" + } + ], + "name": "setCap", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "_interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, { "inputs": [], "name": "symbol", @@ -45815,11 +82946,284 @@ ], "stateMutability": "nonpayable", "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "vaultHandlers", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ] + }, + "TCAPOracle": { + "address": "0xEf0809527ce67fB95aAdbfcfB2e1345313389a6c", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_aggregator", + "type": "address" + }, + { + "internalType": "address", + "name": "_owner", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [], + "name": "getLatestAnswer", + "outputs": [ + { + "internalType": "int256", + "name": "", + "type": "int256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getLatestRound", + "outputs": [ + { + "internalType": "uint80", + "name": "", + "type": "uint80" + }, + { + "internalType": "int256", + "name": "", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint80", + "name": "", + "type": "uint80" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getLatestTimestamp", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint80", + "name": "_id", + "type": "uint80" + } + ], + "name": "getPreviousAnswer", + "outputs": [ + { + "internalType": "int256", + "name": "", + "type": "int256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint80", + "name": "_id", + "type": "uint80" + } + ], + "name": "getPreviousTimestamp", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint80", + "name": "_id", + "type": "uint80" + } + ], + "name": "getRound", + "outputs": [ + { + "internalType": "uint80", + "name": "", + "type": "uint80" + }, + { + "internalType": "int256", + "name": "", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint80", + "name": "", + "type": "uint80" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_aggregator", + "type": "address" + } + ], + "name": "setReferenceContract", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" } ] }, "WETH": { - "address": "0x7d794701021fC4Bc9B2761519AA62DdB29E775Cf", + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", "abi": [ { "anonymous": false, @@ -46101,10 +83505,10 @@ "stateMutability": "nonpayable", "type": "function" } - ] + ] }, "WETHOracle": { - "address": "0x2b5726B892FD346Ed449271A54BeaffE24A88DdA", + "address": "0x437964C8094C368d831a636C6b903fd207901756", "abi": [ { "inputs": [ @@ -46112,6 +83516,11 @@ "internalType": "address", "name": "_aggregator", "type": "address" + }, + { + "internalType": "address", + "name": "_owner", + "type": "address" } ], "stateMutability": "nonpayable", @@ -46339,93 +83748,79 @@ } ] }, - "WETHRewardHandler": { - "address": "0x39347a6328e1D4601A389d4dB0B26aC305886fb0", + "WETHVaultHandler": { + "address": "0xe30C148Ca3cCe47341aB9bEbD7A8db031aB207D0", "abi": [ { "inputs": [ { - "internalType": "address", - "name": "_owner", + "internalType": "contract Orchestrator", + "name": "_orchestrator", "type": "address" }, + { + "internalType": "uint256", + "name": "_divisor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_ratio", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_burnFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_mintFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_liquidationPenalty", + "type": "uint256" + }, { "internalType": "address", - "name": "_rewardsToken", + "name": "_tcapOracle", "type": "address" }, { - "internalType": "address", - "name": "_vault", + "internalType": "contract TCAP", + "name": "_tcapAddress", "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ + }, { - "indexed": true, "internalType": "address", - "name": "previousOwner", + "name": "_collateralAddress", "type": "address" }, { - "indexed": true, "internalType": "address", - "name": "newOwner", + "name": "_collateralOracle", "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ + }, { - "indexed": false, "internalType": "address", - "name": "account", + "name": "_ethOracle", "type": "address" - } - ], - "name": "Paused", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ + }, { - "indexed": false, "internalType": "address", - "name": "token", + "name": "_treasury", "type": "address" }, { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "Recovered", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, "internalType": "uint256", - "name": "reward", + "name": "_minimumTCAP", "type": "uint256" } ], - "name": "RewardAdded", - "type": "event" + "stateMutability": "nonpayable", + "type": "constructor" }, { "anonymous": false, @@ -46433,30 +83828,23 @@ { "indexed": true, "internalType": "address", - "name": "user", + "name": "_owner", "type": "address" }, { - "indexed": false, + "indexed": true, "internalType": "uint256", - "name": "reward", + "name": "_id", "type": "uint256" - } - ], - "name": "RewardPaid", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ + }, { "indexed": false, "internalType": "uint256", - "name": "newDuration", + "name": "_amount", "type": "uint256" } ], - "name": "RewardsDurationUpdated", + "name": "CollateralAdded", "type": "event" }, { @@ -46464,74 +83852,49 @@ "inputs": [ { "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" + "internalType": "address", + "name": "_owner", + "type": "address" }, { "indexed": true, - "internalType": "bytes32", - "name": "previousAdminRole", - "type": "bytes32" + "internalType": "uint256", + "name": "_id", + "type": "uint256" }, { - "indexed": true, - "internalType": "bytes32", - "name": "newAdminRole", - "type": "bytes32" + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" } ], - "name": "RoleAdminChanged", + "name": "CollateralRemoved", "type": "event" }, { "anonymous": false, "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, { "indexed": true, "internalType": "address", - "name": "sender", + "name": "_owner", "type": "address" - } - ], - "name": "RoleGranted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" }, { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" + "indexed": false, + "internalType": "enum IVaultHandler.FunctionChoices", + "name": "_function", + "type": "uint8" }, { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" + "indexed": false, + "internalType": "bool", + "name": "_isDisabled", + "type": "bool" } ], - "name": "RoleRevoked", + "name": "FunctionToggled", "type": "event" }, { @@ -46540,30 +83903,17 @@ { "indexed": true, "internalType": "address", - "name": "user", + "name": "_owner", "type": "address" }, { "indexed": false, "internalType": "uint256", - "name": "amount", + "name": "_burnFee", "type": "uint256" } ], - "name": "Staked", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "Unpaused", + "name": "NewBurnFee", "type": "event" }, { @@ -46572,391 +83922,355 @@ { "indexed": true, "internalType": "address", - "name": "user", + "name": "_owner", "type": "address" }, { "indexed": false, "internalType": "uint256", - "name": "amount", + "name": "_liquidationPenalty", "type": "uint256" } ], - "name": "Withdrawn", + "name": "NewLiquidationPenalty", "type": "event" }, { - "inputs": [], - "name": "DEFAULT_ADMIN_ROLE", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { + "anonymous": false, "inputs": [ { + "indexed": true, "internalType": "address", - "name": "_account", + "name": "_owner", "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ + }, { + "indexed": false, "internalType": "uint256", - "name": "", + "name": "_minimumTCAP", "type": "uint256" } ], - "stateMutability": "view", - "type": "function" + "name": "NewMinimumTCAP", + "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": true, "internalType": "address", - "name": "_account", + "name": "_owner", "type": "address" - } - ], - "name": "earned", - "outputs": [ + }, { + "indexed": false, "internalType": "uint256", - "name": "", + "name": "_mintFee", "type": "uint256" } ], - "stateMutability": "view", - "type": "function" + "name": "NewMintFee", + "type": "event" }, { + "anonymous": false, "inputs": [ { - "internalType": "address", - "name": "_staker", - "type": "address" - } - ], - "name": "exit", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "getReward", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "getRewardForDuration", - "outputs": [ - { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, "internalType": "uint256", - "name": "", + "name": "_ratio", "type": "uint256" } ], - "stateMutability": "view", - "type": "function" + "name": "NewRatio", + "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": true, "internalType": "address", - "name": "_staker", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "_tresury", "type": "address" } ], - "name": "getRewardFromVault", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "name": "NewTreasury", + "type": "event" }, { + "anonymous": false, "inputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" } ], - "name": "getRoleAdmin", - "outputs": [ + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ { - "internalType": "bytes32", - "name": "", - "type": "bytes32" + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" } ], - "stateMutability": "view", - "type": "function" + "name": "Paused", + "type": "event" }, { + "anonymous": false, "inputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" + "indexed": false, + "internalType": "address", + "name": "_token", + "type": "address" }, { + "indexed": false, "internalType": "uint256", - "name": "index", + "name": "_amount", "type": "uint256" } ], - "name": "getRoleMember", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" + "name": "Recovered", + "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" - } - ], - "name": "getRoleMemberCount", - "outputs": [ + }, { - "internalType": "uint256", - "name": "", - "type": "uint256" + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" } ], - "stateMutability": "view", - "type": "function" + "name": "RoleAdminChanged", + "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { + "indexed": true, "internalType": "address", "name": "account", "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" } ], - "name": "grantRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "name": "RoleGranted", + "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { + "indexed": true, "internalType": "address", "name": "account", "type": "address" - } - ], - "name": "hasRole", - "outputs": [ + }, { - "internalType": "bool", - "name": "", - "type": "bool" + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" } ], - "stateMutability": "view", - "type": "function" + "name": "RoleRevoked", + "type": "event" }, { - "inputs": [], - "name": "lastTimeRewardApplicable", - "outputs": [ + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, { + "indexed": true, "internalType": "uint256", - "name": "", + "name": "_id", "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "lastUpdateTime", - "outputs": [ + }, { + "indexed": false, "internalType": "uint256", - "name": "", + "name": "_amount", "type": "uint256" } ], - "stateMutability": "view", - "type": "function" + "name": "TokensBurned", + "type": "event" }, { + "anonymous": false, "inputs": [ { - "internalType": "uint256", - "name": "_a", - "type": "uint256" + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" }, { + "indexed": true, "internalType": "uint256", - "name": "_b", + "name": "_id", "type": "uint256" - } - ], - "name": "min", - "outputs": [ + }, { + "indexed": false, "internalType": "uint256", - "name": "", + "name": "_amount", "type": "uint256" } ], - "stateMutability": "pure", - "type": "function" + "name": "TokensMinted", + "type": "event" }, { + "anonymous": false, "inputs": [ { - "internalType": "uint256", - "name": "_reward", - "type": "uint256" - } - ], - "name": "notifyRewardAmount", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { + "indexed": false, "internalType": "address", - "name": "", + "name": "account", "type": "address" } ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "paused", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "periodFinish", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" + "name": "Unpaused", + "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": true, "internalType": "address", - "name": "_tokenAddress", + "name": "_owner", "type": "address" }, { + "indexed": true, "internalType": "uint256", - "name": "_tokenAmount", + "name": "_id", "type": "uint256" } ], - "name": "recoverERC20", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "name": "VaultCreated", + "type": "event" }, { + "anonymous": false, "inputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" + "indexed": true, + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" }, { + "indexed": true, "internalType": "address", - "name": "account", + "name": "_liquidator", "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_liquidationCollateral", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_reward", + "type": "uint256" } ], - "name": "renounceRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "name": "VaultLiquidated", + "type": "event" }, { - "inputs": [ + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ { "internalType": "bytes32", - "name": "role", + "name": "", "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" } ], - "name": "revokeRole", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "inputs": [], - "name": "rewardPerToken", + "name": "ETHPriceOracle", "outputs": [ { - "internalType": "uint256", + "internalType": "contract ChainlinkOracle", "name": "", - "type": "uint256" + "type": "address" } ], "stateMutability": "view", @@ -46964,12 +84278,12 @@ }, { "inputs": [], - "name": "rewardPerTokenStored", + "name": "MAX_DECIMAL_PLACES", "outputs": [ { - "internalType": "uint256", + "internalType": "uint8", "name": "", - "type": "uint256" + "type": "uint8" } ], "stateMutability": "view", @@ -46977,7 +84291,7 @@ }, { "inputs": [], - "name": "rewardRate", + "name": "MAX_FEE", "outputs": [ { "internalType": "uint256", @@ -46989,14 +84303,8 @@ "type": "function" }, { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "rewards", + "inputs": [], + "name": "MIN_RATIO", "outputs": [ { "internalType": "uint256", @@ -47009,11 +84317,11 @@ }, { "inputs": [], - "name": "rewardsDuration", + "name": "TCAPPrice", "outputs": [ { "internalType": "uint256", - "name": "", + "name": "price", "type": "uint256" } ], @@ -47022,10 +84330,10 @@ }, { "inputs": [], - "name": "rewardsToken", + "name": "TCAPToken", "outputs": [ { - "internalType": "contract IERC20", + "internalType": "contract TCAP", "name": "", "type": "address" } @@ -47037,36 +84345,38 @@ "inputs": [ { "internalType": "uint256", - "name": "_rewardsDuration", + "name": "_amount", "type": "uint256" } ], - "name": "setRewardsDuration", + "name": "addCollateral", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [], + "name": "addCollateralETH", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, { "inputs": [ - { - "internalType": "address", - "name": "_staker", - "type": "address" - }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], - "name": "stake", + "name": "burn", "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "payable", "type": "function" }, { "inputs": [], - "name": "totalSupply", + "name": "burnFee", "outputs": [ { "internalType": "uint256", @@ -47078,27 +84388,21 @@ "type": "function" }, { - "inputs": [ + "inputs": [], + "name": "collateralContract", + "outputs": [ { - "internalType": "address", - "name": "newOwner", + "internalType": "contract IERC20", + "name": "", "type": "address" } ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "userRewardPerTokenPaid", + "inputs": [], + "name": "collateralDecimalsAdjustmentFactor", "outputs": [ { "internalType": "uint256", @@ -47111,10 +84415,10 @@ }, { "inputs": [], - "name": "vault", + "name": "collateralPriceOracle", "outputs": [ { - "internalType": "address", + "internalType": "contract ChainlinkOracle", "name": "", "type": "address" } @@ -47123,467 +84427,368 @@ "type": "function" }, { - "inputs": [ - { - "internalType": "address", - "name": "_staker", - "type": "address" - }, + "inputs": [], + "name": "counter", + "outputs": [ { "internalType": "uint256", - "name": "_amount", + "name": "_value", "type": "uint256" } ], - "name": "withdraw", + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "createVault", "outputs": [], "stateMutability": "nonpayable", "type": "function" - } - ] - }, - "WETHVaultHandler": { - "address": "0xC3f56D2E04025e7f15Cc5f890cb5465A6EDE613A", - "abi": [ + }, { - "inputs": [ - { - "internalType": "contract Orchestrator", - "name": "_orchestrator", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_divisor", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_ratio", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_burnFee", - "type": "uint256" - }, + "inputs": [], + "name": "divisor", + "outputs": [ { "internalType": "uint256", - "name": "_liquidationPenalty", + "name": "", "type": "uint256" - }, - { - "internalType": "address", - "name": "_tcapOracle", - "type": "address" - }, - { - "internalType": "contract TCAP", - "name": "_tcapAddress", - "type": "address" - }, - { - "internalType": "address", - "name": "_collateralAddress", - "type": "address" - }, - { - "internalType": "address", - "name": "_collateralOracle", - "type": "address" - }, - { - "internalType": "address", - "name": "_ethOracle", - "type": "address" - }, - { - "internalType": "address", - "name": "_rewardHandler", - "type": "address" - }, - { - "internalType": "address", - "name": "_treasury", - "type": "address" } ], - "stateMutability": "nonpayable", - "type": "constructor" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "address", - "name": "_owner", - "type": "address" - }, - { - "indexed": true, "internalType": "uint256", - "name": "_id", + "name": "_amount", "type": "uint256" - }, + } + ], + "name": "getBurnFee", + "outputs": [ { - "indexed": false, "internalType": "uint256", - "name": "_amount", + "name": "fee", "type": "uint256" } ], - "name": "CollateralAdded", - "type": "event" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "address", - "name": "_owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "_id", - "type": "uint256" - }, - { - "indexed": false, "internalType": "uint256", "name": "_amount", "type": "uint256" } ], - "name": "CollateralRemoved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_owner", - "type": "address" - }, + "name": "getMintFee", + "outputs": [ { - "indexed": false, "internalType": "uint256", - "name": "_burnFee", + "name": "fee", "type": "uint256" } ], - "name": "NewBurnFee", - "type": "event" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "address", - "name": "_owner", + "internalType": "contract ChainlinkOracle", + "name": "_oracle", "type": "address" - }, + } + ], + "name": "getOraclePrice", + "outputs": [ { - "indexed": false, "internalType": "uint256", - "name": "_liquidationPenalty", + "name": "price", "type": "uint256" } ], - "name": "NewLiquidationPenalty", - "type": "event" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "address", - "name": "_owner", - "type": "address" - }, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ { - "indexed": false, - "internalType": "uint256", - "name": "_ratio", - "type": "uint256" + "internalType": "bytes32", + "name": "", + "type": "bytes32" } ], - "name": "NewRatio", - "type": "event" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "address", - "name": "_owner", - "type": "address" + "internalType": "bytes32", + "name": "role", + "type": "bytes32" }, { - "indexed": false, + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "getRoleMember", + "outputs": [ + { "internalType": "address", - "name": "_tresury", + "name": "", "type": "address" } ], - "name": "NewTreasury", - "type": "event" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleMemberCount", + "outputs": [ { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" + "internalType": "uint256", + "name": "", + "type": "uint256" } ], - "name": "OwnershipTransferred", - "type": "event" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": false, - "internalType": "address", - "name": "account", - "type": "address" + "internalType": "uint256", + "name": "_id", + "type": "uint256" } ], - "name": "Paused", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ + "name": "getVault", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, { - "indexed": false, "internalType": "address", - "name": "_token", + "name": "", "type": "address" }, { - "indexed": false, "internalType": "uint256", - "name": "_amount", + "name": "", "type": "uint256" } ], - "name": "Recovered", - "type": "event" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "previousAdminRole", - "type": "bytes32" - }, + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + } + ], + "name": "getVaultRatio", + "outputs": [ { - "indexed": true, - "internalType": "bytes32", - "name": "newAdminRole", - "type": "bytes32" + "internalType": "uint256", + "name": "currentRatio", + "type": "uint256" } ], - "name": "RoleAdminChanged", - "type": "event" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { - "indexed": true, "internalType": "address", "name": "account", "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" } ], - "name": "RoleGranted", - "type": "event" + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { - "indexed": true, "internalType": "address", "name": "account", "type": "address" - }, + } + ], + "name": "hasRole", + "outputs": [ { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" + "internalType": "bool", + "name": "", + "type": "bool" } ], - "name": "RoleRevoked", - "type": "event" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "address", - "name": "_owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "_id", - "type": "uint256" - }, + "internalType": "enum IVaultHandler.FunctionChoices", + "name": "", + "type": "uint8" + } + ], + "name": "isDisabled", + "outputs": [ { - "indexed": false, - "internalType": "uint256", - "name": "_amount", - "type": "uint256" + "internalType": "bool", + "name": "", + "type": "bool" } ], - "name": "TokensBurned", - "type": "event" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "address", - "name": "_owner", - "type": "address" - }, - { - "indexed": true, "internalType": "uint256", - "name": "_id", + "name": "_vaultId", "type": "uint256" }, { - "indexed": false, "internalType": "uint256", - "name": "_amount", + "name": "_maxTCAP", "type": "uint256" } ], - "name": "TokensMinted", - "type": "event" + "name": "liquidateVault", + "outputs": [], + "stateMutability": "payable", + "type": "function" }, { - "anonymous": false, - "inputs": [ + "inputs": [], + "name": "liquidationPenalty", + "outputs": [ { - "indexed": false, - "internalType": "address", - "name": "account", - "type": "address" + "internalType": "uint256", + "name": "", + "type": "uint256" } ], - "name": "Unpaused", - "type": "event" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "address", - "name": "_owner", - "type": "address" - }, + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + } + ], + "name": "liquidationReward", + "outputs": [ { - "indexed": true, "internalType": "uint256", - "name": "_id", + "name": "rewardCollateral", "type": "uint256" } ], - "name": "VaultCreated", - "type": "event" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, - "inputs": [ + "inputs": [], + "name": "minimumTCAP", + "outputs": [ { - "indexed": true, "internalType": "uint256", - "name": "_vaultId", + "name": "", "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "_liquidator", - "type": "address" - }, + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ { - "indexed": false, "internalType": "uint256", - "name": "_liquidationCollateral", + "name": "_amount", "type": "uint256" - }, + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "mintFee", + "outputs": [ { - "indexed": false, "internalType": "uint256", - "name": "_reward", + "name": "", "type": "uint256" } ], - "name": "VaultLiquidated", - "type": "event" + "stateMutability": "view", + "type": "function" }, { "inputs": [], - "name": "DEFAULT_ADMIN_ROLE", + "name": "oracleDigits", "outputs": [ { - "internalType": "bytes32", + "internalType": "uint256", "name": "", - "type": "bytes32" + "type": "uint256" } ], "stateMutability": "view", @@ -47591,10 +84796,10 @@ }, { "inputs": [], - "name": "ETHPriceOracle", + "name": "owner", "outputs": [ { - "internalType": "contract ChainlinkOracle", + "internalType": "address", "name": "", "type": "address" } @@ -47604,12 +84809,19 @@ }, { "inputs": [], - "name": "MAX_FEE", + "name": "pause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "paused", "outputs": [ { - "internalType": "uint256", + "internalType": "bool", "name": "", - "type": "uint256" + "type": "bool" } ], "stateMutability": "view", @@ -47617,7 +84829,7 @@ }, { "inputs": [], - "name": "MIN_RATIO", + "name": "ratio", "outputs": [ { "internalType": "uint256", @@ -47629,29 +84841,34 @@ "type": "function" }, { - "inputs": [], - "name": "TCAPPrice", - "outputs": [ + "inputs": [ + { + "internalType": "address", + "name": "_tokenAddress", + "type": "address" + }, { "internalType": "uint256", - "name": "price", + "name": "_tokenAmount", "type": "uint256" } ], - "stateMutability": "view", + "name": "recoverERC20", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [], - "name": "TCAPToken", - "outputs": [ + "inputs": [ { - "internalType": "contract TCAP", - "name": "", - "type": "address" + "internalType": "uint256", + "name": "_amount", + "type": "uint256" } ], - "stateMutability": "view", + "name": "removeCollateral", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { @@ -47662,38 +84879,49 @@ "type": "uint256" } ], - "name": "addCollateral", + "name": "removeCollateralETH", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], - "name": "addCollateralETH", + "name": "renounceOwnership", "outputs": [], - "stateMutability": "payable", + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" } ], - "name": "burn", + "name": "renounceRole", "outputs": [], - "stateMutability": "payable", + "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [], - "name": "burnFee", + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "requiredCollateral", "outputs": [ { "internalType": "uint256", - "name": "", + "name": "collateral", "type": "uint256" } ], @@ -47701,135 +84929,186 @@ "type": "function" }, { - "inputs": [], - "name": "collateralContract", + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + } + ], + "name": "requiredLiquidationTCAP", "outputs": [ { - "internalType": "contract IERC20", - "name": "", - "type": "address" + "internalType": "uint256", + "name": "amount", + "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { - "inputs": [], - "name": "collateralPriceOracle", - "outputs": [ + "inputs": [ { - "internalType": "contract ChainlinkOracle", - "name": "", + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", "type": "address" } ], - "stateMutability": "view", + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [], - "name": "counter", - "outputs": [ + "inputs": [ { "internalType": "uint256", - "name": "_value", + "name": "_burnFee", "type": "uint256" } ], - "stateMutability": "view", + "name": "setBurnFee", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [], - "name": "createVault", + "inputs": [ + { + "internalType": "uint256", + "name": "_liquidationPenalty", + "type": "uint256" + } + ], + "name": "setLiquidationPenalty", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [], - "name": "divisor", - "outputs": [ + "inputs": [ { "internalType": "uint256", - "name": "", + "name": "_minimumTCAP", "type": "uint256" } ], - "stateMutability": "view", + "name": "setMinimumTCAP", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_mintFee", + "type": "uint256" + } + ], + "name": "setMintFee", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_ratio", + "type": "uint256" + } + ], + "name": "setRatio", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_treasury", + "type": "address" + } + ], + "name": "setTreasury", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" + "internalType": "bytes4", + "name": "_interfaceId", + "type": "bytes4" } ], - "name": "getFee", + "name": "supportsInterface", "outputs": [ { - "internalType": "uint256", - "name": "fee", - "type": "uint256" + "internalType": "bool", + "name": "", + "type": "bool" } ], - "stateMutability": "view", + "stateMutability": "pure", "type": "function" }, { - "inputs": [ + "inputs": [], + "name": "tcapOracle", + "outputs": [ { "internalType": "contract ChainlinkOracle", - "name": "_oracle", + "name": "", "type": "address" } ], - "name": "getOraclePrice", - "outputs": [ - { - "internalType": "uint256", - "name": "price", - "type": "uint256" - } - ], "stateMutability": "view", "type": "function" }, { "inputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "getRoleAdmin", - "outputs": [ + "internalType": "enum IVaultHandler.FunctionChoices", + "name": "_function", + "type": "uint8" + }, { - "internalType": "bytes32", - "name": "", - "type": "bytes32" + "internalType": "bool", + "name": "_isDisabled", + "type": "bool" } ], - "stateMutability": "view", + "name": "toggleFunction", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "index", - "type": "uint256" + "internalType": "address", + "name": "newOwner", + "type": "address" } ], - "name": "getRoleMember", + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "treasury", "outputs": [ { "internalType": "address", @@ -47840,15 +85119,22 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "unpause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" + "internalType": "address", + "name": "", + "type": "address" } ], - "name": "getRoleMemberCount", + "name": "userToVault", "outputs": [ { "internalType": "uint256", @@ -47863,49 +85149,126 @@ "inputs": [ { "internalType": "uint256", - "name": "_id", + "name": "", "type": "uint256" } ], - "name": "getVault", + "name": "vaults", "outputs": [ { "internalType": "uint256", - "name": "", + "name": "Id", "type": "uint256" }, { "internalType": "uint256", - "name": "", + "name": "Collateral", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "Debt", "type": "uint256" }, { "internalType": "address", - "name": "", + "name": "Owner", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "stateMutability": "payable", + "type": "receive" + } + ] + } + } + } + }, + "421613": { + "arbitrum_goerli": { + "name": "arbitrum-goerli", + "chainId": "421613", + "contracts": { + "DAI": { + "address": "0xe8BFaB95180CAAAB795cdD5c2d5Dd4F35bF3f181", + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", "type": "address" }, { + "indexed": false, "internalType": "uint256", - "name": "", + "name": "value", "type": "uint256" } ], - "stateMutability": "view", - "type": "function" + "name": "Approval", + "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, "internalType": "uint256", - "name": "_vaultId", + "name": "value", "type": "uint256" } ], - "name": "getVaultRatio", + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", "outputs": [ { "internalType": "uint256", - "name": "currentRatio", + "name": "", "type": "uint256" } ], @@ -47914,41 +85277,42 @@ }, { "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, { "internalType": "address", - "name": "account", + "name": "spender", "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" } ], - "name": "grantRole", - "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, { "internalType": "address", "name": "account", "type": "address" } ], - "name": "hasRole", + "name": "balanceOf", "outputs": [ { - "internalType": "bool", + "internalType": "uint256", "name": "", - "type": "bool" + "type": "uint256" } ], "stateMutability": "view", @@ -47957,29 +85321,29 @@ { "inputs": [ { - "internalType": "uint256", - "name": "_vaultId", - "type": "uint256" + "internalType": "address", + "name": "_account", + "type": "address" }, { "internalType": "uint256", - "name": "_maxTCAP", + "name": "_amount", "type": "uint256" } ], - "name": "liquidateVault", + "name": "burn", "outputs": [], - "stateMutability": "payable", + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], - "name": "liquidationPenalty", + "name": "decimals", "outputs": [ { - "internalType": "uint256", + "internalType": "uint8", "name": "", - "type": "uint256" + "type": "uint8" } ], "stateMutability": "view", @@ -47987,57 +85351,78 @@ }, { "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, { "internalType": "uint256", - "name": "_vaultId", + "name": "subtractedValue", "type": "uint256" } ], - "name": "liquidationReward", + "name": "decreaseAllowance", "outputs": [ { - "internalType": "uint256", - "name": "rewardCollateral", - "type": "uint256" + "internalType": "bool", + "name": "", + "type": "bool" } ], - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, { "internalType": "uint256", - "name": "_amount", + "name": "addedValue", "type": "uint256" } ], - "name": "mint", - "outputs": [], + "name": "increaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [], - "name": "oracleDigits", - "outputs": [ + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + }, { "internalType": "uint256", - "name": "", + "name": "_amount", "type": "uint256" } ], - "stateMutability": "view", + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], - "name": "owner", + "name": "name", "outputs": [ { - "internalType": "address", + "internalType": "string", "name": "", - "type": "address" + "type": "string" } ], "stateMutability": "view", @@ -48045,19 +85430,12 @@ }, { "inputs": [], - "name": "pause", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "paused", + "name": "symbol", "outputs": [ { - "internalType": "bool", + "internalType": "string", "name": "", - "type": "bool" + "type": "string" } ], "stateMutability": "view", @@ -48065,7 +85443,7 @@ }, { "inputs": [], - "name": "ratio", + "name": "totalSupply", "outputs": [ { "internalType": "uint256", @@ -48080,103 +85458,148 @@ "inputs": [ { "internalType": "address", - "name": "_tokenAddress", + "name": "recipient", "type": "address" }, { "internalType": "uint256", - "name": "_tokenAmount", + "name": "amount", "type": "uint256" } ], - "name": "recoverERC20", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ + "name": "transfer", + "outputs": [ { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" + "internalType": "bool", + "name": "", + "type": "bool" } ], - "name": "removeCollateral", - "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, { "internalType": "uint256", - "name": "_amount", + "name": "amount", "type": "uint256" } ], - "name": "removeCollateralETH", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], "stateMutability": "nonpayable", "type": "function" - }, + } + ] + }, + "DAIOracle": { + "address": "0x435D960a2Dcfb04f9099F13A6B5d09AD8849AD6A", + "abi": [ { "inputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" + "internalType": "address", + "name": "_aggregator", + "type": "address" }, { "internalType": "address", - "name": "account", + "name": "_owner", "type": "address" } ], - "name": "renounceRole", - "outputs": [], "stateMutability": "nonpayable", - "type": "function" + "type": "constructor" }, { + "anonymous": false, "inputs": [ { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" } ], - "name": "requiredCollateral", + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [], + "name": "getLatestAnswer", "outputs": [ { - "internalType": "uint256", - "name": "collateral", - "type": "uint256" + "internalType": "int256", + "name": "", + "type": "int256" } ], "stateMutability": "view", "type": "function" }, { - "inputs": [ + "inputs": [], + "name": "getLatestRound", + "outputs": [ + { + "internalType": "uint80", + "name": "", + "type": "uint80" + }, + { + "internalType": "int256", + "name": "", + "type": "int256" + }, { "internalType": "uint256", - "name": "_vaultId", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", "type": "uint256" + }, + { + "internalType": "uint80", + "name": "", + "type": "uint80" } ], - "name": "requiredLiquidationTCAP", + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getLatestTimestamp", "outputs": [ { "internalType": "uint256", - "name": "amount", + "name": "", "type": "uint256" } ], @@ -48186,29 +85609,36 @@ { "inputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, + "internalType": "uint80", + "name": "_id", + "type": "uint80" + } + ], + "name": "getPreviousAnswer", + "outputs": [ { - "internalType": "address", - "name": "account", - "type": "address" + "internalType": "int256", + "name": "", + "type": "int256" } ], - "name": "revokeRole", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { - "inputs": [], - "name": "rewardHandler", + "inputs": [ + { + "internalType": "uint80", + "name": "_id", + "type": "uint80" + } + ], + "name": "getPreviousTimestamp", "outputs": [ { - "internalType": "contract IRewardHandler", + "internalType": "uint256", "name": "", - "type": "address" + "type": "uint256" } ], "stateMutability": "view", @@ -48216,39 +85646,59 @@ }, { "inputs": [ + { + "internalType": "uint80", + "name": "_id", + "type": "uint80" + } + ], + "name": "getRound", + "outputs": [ + { + "internalType": "uint80", + "name": "", + "type": "uint80" + }, + { + "internalType": "int256", + "name": "", + "type": "int256" + }, { "internalType": "uint256", - "name": "_burnFee", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", "type": "uint256" + }, + { + "internalType": "uint80", + "name": "", + "type": "uint80" } ], - "name": "setBurnFee", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { - "inputs": [ + "inputs": [], + "name": "owner", + "outputs": [ { - "internalType": "uint256", - "name": "_liquidationPenalty", - "type": "uint256" + "internalType": "address", + "name": "", + "type": "address" } ], - "name": "setLiquidationPenalty", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { - "inputs": [ - { - "internalType": "uint256", - "name": "_ratio", - "type": "uint256" - } - ], - "name": "setRatio", + "inputs": [], + "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" @@ -48257,11 +85707,11 @@ "inputs": [ { "internalType": "address", - "name": "_treasury", + "name": "_aggregator", "type": "address" } ], - "name": "setTreasury", + "name": "setReferenceContract", "outputs": [], "stateMutability": "nonpayable", "type": "function" @@ -48270,7 +85720,7 @@ "inputs": [ { "internalType": "bytes4", - "name": "_interfaceId", + "name": "interfaceId", "type": "bytes4" } ], @@ -48285,19 +85735,6 @@ "stateMutability": "pure", "type": "function" }, - { - "inputs": [], - "name": "tcapOracle", - "outputs": [ - { - "internalType": "contract ChainlinkOracle", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, { "inputs": [ { @@ -48310,126 +85747,77 @@ "outputs": [], "stateMutability": "nonpayable", "type": "function" - }, - { - "inputs": [], - "name": "treasury", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "unpause", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, + } + ] + }, + "DAIVaultHandler": { + "address": "0xCEcB53DDa8C14796966a3797351E62cC72a98beE", + "abi": [ { "inputs": [ { - "internalType": "address", - "name": "", + "internalType": "contract Orchestrator", + "name": "_orchestrator", "type": "address" - } - ], - "name": "userToVault", - "outputs": [ + }, { "internalType": "uint256", - "name": "", + "name": "_divisor", "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ + }, { "internalType": "uint256", - "name": "", + "name": "_ratio", "type": "uint256" - } - ], - "name": "vaults", - "outputs": [ + }, { "internalType": "uint256", - "name": "Id", + "name": "_burnFee", "type": "uint256" }, { "internalType": "uint256", - "name": "Collateral", + "name": "_liquidationPenalty", "type": "uint256" }, { - "internalType": "uint256", - "name": "Debt", - "type": "uint256" + "internalType": "address", + "name": "_tcapOracle", + "type": "address" + }, + { + "internalType": "contract TCAP", + "name": "_tcapAddress", + "type": "address" }, { "internalType": "address", - "name": "Owner", + "name": "_collateralAddress", "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "stateMutability": "payable", - "type": "receive" - } - ] - } - } - } - }, - "137": { - "polygon": { - "name": "polygon", - "chainId": "137", - "contracts": { - "AAVE": { - "address": "0x8F90583D4B7A8af2b662bAfed28F93A26ee2ffC6", - "abi": [ - { - "inputs": [], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ + }, { - "indexed": true, "internalType": "address", - "name": "owner", + "name": "_collateralOracle", "type": "address" }, { - "indexed": true, "internalType": "address", - "name": "spender", + "name": "_ethOracle", + "type": "address" + }, + { + "internalType": "address", + "name": "_treasury", "type": "address" }, { - "indexed": false, "internalType": "uint256", - "name": "value", + "name": "_minimumTCAP", "type": "uint256" } ], - "name": "Approval", - "type": "event" + "stateMutability": "nonpayable", + "type": "constructor" }, { "anonymous": false, @@ -48437,344 +85825,294 @@ { "indexed": true, "internalType": "address", - "name": "from", + "name": "_owner", "type": "address" }, { "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" + "internalType": "uint256", + "name": "_id", + "type": "uint256" }, { "indexed": false, "internalType": "uint256", - "name": "value", + "name": "_amount", "type": "uint256" } ], - "name": "Transfer", + "name": "CollateralAdded", "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": true, "internalType": "address", - "name": "owner", + "name": "_owner", "type": "address" }, { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, { + "indexed": false, "internalType": "uint256", - "name": "", + "name": "_amount", "type": "uint256" } ], - "stateMutability": "view", - "type": "function" + "name": "CollateralRemoved", + "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": true, "internalType": "address", - "name": "spender", + "name": "_owner", "type": "address" }, { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ + "indexed": false, + "internalType": "enum IVaultHandler.FunctionChoices", + "name": "_function", + "type": "uint8" + }, { + "indexed": false, "internalType": "bool", - "name": "", + "name": "_isDisabled", "type": "bool" } ], - "stateMutability": "nonpayable", - "type": "function" + "name": "FunctionToggled", + "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": true, "internalType": "address", - "name": "account", + "name": "_owner", "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ + }, { + "indexed": false, "internalType": "uint256", - "name": "", + "name": "_burnFee", "type": "uint256" } ], - "stateMutability": "view", - "type": "function" + "name": "NewBurnFee", + "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": true, "internalType": "address", - "name": "_account", + "name": "_owner", "type": "address" }, { + "indexed": false, "internalType": "uint256", - "name": "_amount", + "name": "_liquidationPenalty", "type": "uint256" } ], - "name": "burn", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" + "name": "NewLiquidationPenalty", + "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": true, "internalType": "address", - "name": "spender", + "name": "_owner", "type": "address" }, { + "indexed": false, "internalType": "uint256", - "name": "subtractedValue", + "name": "_minimumTCAP", "type": "uint256" } ], - "name": "decreaseAllowance", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" + "name": "NewMinimumTCAP", + "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": true, "internalType": "address", - "name": "spender", + "name": "_owner", "type": "address" }, { + "indexed": false, "internalType": "uint256", - "name": "addedValue", + "name": "_ratio", "type": "uint256" } ], - "name": "increaseAllowance", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" + "name": "NewRatio", + "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": true, "internalType": "address", - "name": "_account", + "name": "_owner", "type": "address" }, { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" + "indexed": false, + "internalType": "address", + "name": "_tresury", + "type": "address" } ], - "name": "mint", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "name": "NewTreasury", + "type": "event" }, { - "inputs": [], - "name": "name", - "outputs": [ + "anonymous": false, + "inputs": [ { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, { - "internalType": "string", - "name": "", - "type": "string" + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" } ], - "stateMutability": "view", - "type": "function" + "name": "OwnershipTransferred", + "type": "event" }, { - "inputs": [], - "name": "totalSupply", - "outputs": [ + "anonymous": false, + "inputs": [ { - "internalType": "uint256", - "name": "", - "type": "uint256" + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" } ], - "stateMutability": "view", - "type": "function" + "name": "Paused", + "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": false, "internalType": "address", - "name": "recipient", + "name": "_token", "type": "address" }, { + "indexed": false, "internalType": "uint256", - "name": "amount", + "name": "_amount", "type": "uint256" } ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" + "name": "Recovered", + "type": "event" }, { + "anonymous": false, "inputs": [ { - "internalType": "address", - "name": "sender", - "type": "address" + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" }, { - "internalType": "address", - "name": "recipient", - "type": "address" + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" }, { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" } ], - "stateMutability": "nonpayable", - "type": "function" + "name": "RoleAdminChanged", + "type": "event" }, { - "stateMutability": "payable", - "type": "receive" - } - ] - }, - "AaveOracle": { - "address": "0x73Ebb8b08f056F451c2aA53dCAd7A35ce6aD52D0", - "abi": [ - { + "anonymous": false, "inputs": [ { - "internalType": "string", - "name": "_name", - "type": "string" - }, - { - "internalType": "string", - "name": "_symbol", - "type": "string" - }, - { - "internalType": "uint256", - "name": "_cap", - "type": "uint256" + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" }, { - "internalType": "contract Orchestrator", - "name": "_orchestrator", + "indexed": true, + "internalType": "address", + "name": "account", "type": "address" }, { + "indexed": true, "internalType": "address", - "name": "_timelock", + "name": "sender", "type": "address" } ], - "stateMutability": "nonpayable", - "type": "constructor" + "name": "RoleGranted", + "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" + "internalType": "bytes32", + "name": "role", + "type": "bytes32" }, { "indexed": true, "internalType": "address", - "name": "spender", + "name": "account", "type": "address" }, { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" } ], - "name": "Approval", + "name": "RoleRevoked", "type": "event" }, { @@ -48786,6 +86124,12 @@ "name": "_owner", "type": "address" }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, { "indexed": false, "internalType": "uint256", @@ -48793,7 +86137,7 @@ "type": "uint256" } ], - "name": "NewCap", + "name": "TokensBurned", "type": "event" }, { @@ -48805,58 +86149,33 @@ "name": "_owner", "type": "address" }, - { - "indexed": false, - "internalType": "bool", - "name": "_enable", - "type": "bool" - } - ], - "name": "NewCapEnabled", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ { "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" + "internalType": "uint256", + "name": "_id", + "type": "uint256" }, { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" } ], - "name": "OwnershipTransferred", + "name": "TokensMinted", "type": "event" }, { "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, + "indexed": false, "internalType": "address", - "name": "to", + "name": "account", "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" } ], - "name": "Transfer", + "name": "Unpaused", "type": "event" }, { @@ -48870,12 +86189,12 @@ }, { "indexed": true, - "internalType": "address", - "name": "_tokenHandler", - "type": "address" + "internalType": "uint256", + "name": "_id", + "type": "uint256" } ], - "name": "VaultHandlerAdded", + "name": "VaultCreated", "type": "event" }, { @@ -48883,47 +86202,74 @@ "inputs": [ { "indexed": true, - "internalType": "address", - "name": "_owner", - "type": "address" + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" }, { "indexed": true, "internalType": "address", - "name": "_tokenHandler", + "name": "_liquidator", "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_liquidationCollateral", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_reward", + "type": "uint256" } ], - "name": "VaultHandlerRemoved", + "name": "VaultLiquidated", "type": "event" }, { - "inputs": [ + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ { - "internalType": "address", - "name": "_vaultHandler", - "type": "address" + "internalType": "bytes32", + "name": "", + "type": "bytes32" } ], - "name": "addVaultHandler", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { - "inputs": [ + "inputs": [], + "name": "ETHPriceOracle", + "outputs": [ { - "internalType": "address", - "name": "owner", + "internalType": "contract ChainlinkOracle", + "name": "", "type": "address" - }, + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MAX_DECIMAL_PLACES", + "outputs": [ { - "internalType": "address", - "name": "spender", - "type": "address" + "internalType": "uint8", + "name": "", + "type": "uint8" } ], - "name": "allowance", + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MAX_FEE", "outputs": [ { "internalType": "uint256", @@ -48935,55 +86281,59 @@ "type": "function" }, { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, + "inputs": [], + "name": "MIN_RATIO", + "outputs": [ { "internalType": "uint256", - "name": "amount", + "name": "", "type": "uint256" } ], - "name": "approve", + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "TCAPPrice", "outputs": [ { - "internalType": "bool", - "name": "", - "type": "bool" + "internalType": "uint256", + "name": "price", + "type": "uint256" } ], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { - "inputs": [ + "inputs": [], + "name": "TCAPToken", + "outputs": [ { - "internalType": "address", - "name": "account", + "internalType": "contract TCAP", + "name": "", "type": "address" } ], - "name": "balanceOf", - "outputs": [ + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ { "internalType": "uint256", - "name": "", + "name": "_amount", "type": "uint256" } ], - "stateMutability": "view", + "name": "addCollateral", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ - { - "internalType": "address", - "name": "_account", - "type": "address" - }, { "internalType": "uint256", "name": "_amount", @@ -48992,12 +86342,12 @@ ], "name": "burn", "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "payable", "type": "function" }, { "inputs": [], - "name": "cap", + "name": "burnFee", "outputs": [ { "internalType": "uint256", @@ -49010,12 +86360,12 @@ }, { "inputs": [], - "name": "capEnabled", + "name": "collateralContract", "outputs": [ { - "internalType": "bool", + "internalType": "contract IERC20", "name": "", - "type": "bool" + "type": "address" } ], "stateMutability": "view", @@ -49023,123 +86373,248 @@ }, { "inputs": [], - "name": "decimals", + "name": "collateralDecimalsAdjustmentFactor", "outputs": [ { - "internalType": "uint8", + "internalType": "uint256", "name": "", - "type": "uint8" + "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { - "inputs": [ + "inputs": [], + "name": "collateralPriceOracle", + "outputs": [ { - "internalType": "address", - "name": "spender", + "internalType": "contract ChainlinkOracle", + "name": "", "type": "address" - }, + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "counter", + "outputs": [ { "internalType": "uint256", - "name": "subtractedValue", + "name": "_value", "type": "uint256" } ], - "name": "decreaseAllowance", + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "createVault", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "divisor", "outputs": [ { - "internalType": "bool", + "internalType": "uint256", "name": "", - "type": "bool" + "type": "uint256" } ], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "inputs": [ { - "internalType": "bool", - "name": "_enable", - "type": "bool" + "internalType": "uint256", + "name": "_amount", + "type": "uint256" } ], - "name": "enableCap", - "outputs": [], - "stateMutability": "nonpayable", + "name": "getFee", + "outputs": [ + { + "internalType": "uint256", + "name": "fee", + "type": "uint256" + } + ], + "stateMutability": "view", "type": "function" - } - ] - }, - "AaveVaultHandler": { - "address": "0x119D37aFc784C81626b08813D83598b8673EEE66", - "abi": [ + }, { "inputs": [ { - "internalType": "contract Orchestrator", - "name": "_orchestrator", + "internalType": "contract ChainlinkOracle", + "name": "_oracle", "type": "address" - }, + } + ], + "name": "getOraclePrice", + "outputs": [ { "internalType": "uint256", - "name": "_divisor", + "name": "price", "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" }, { "internalType": "uint256", - "name": "_ratio", + "name": "index", "type": "uint256" - }, + } + ], + "name": "getRoleMember", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleMemberCount", + "outputs": [ { "internalType": "uint256", - "name": "_burnFee", + "name": "", "type": "uint256" - }, + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ { "internalType": "uint256", - "name": "_liquidationPenalty", + "name": "_id", "type": "uint256" - }, + } + ], + "name": "getVault", + "outputs": [ { - "internalType": "address", - "name": "_tcapOracle", - "type": "address" + "internalType": "uint256", + "name": "", + "type": "uint256" }, { - "internalType": "contract TCAP", - "name": "_tcapAddress", - "type": "address" + "internalType": "uint256", + "name": "", + "type": "uint256" }, { "internalType": "address", - "name": "_collateralAddress", + "name": "", "type": "address" }, { - "internalType": "address", - "name": "_collateralOracle", - "type": "address" - }, + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ { - "internalType": "address", - "name": "_ethOracle", - "type": "address" + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + } + ], + "name": "getVaultRatio", + "outputs": [ + { + "internalType": "uint256", + "name": "currentRatio", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" }, { "internalType": "address", - "name": "_rewardHandler", + "name": "account", "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" }, { "internalType": "address", - "name": "_treasury", + "name": "account", "type": "address" } ], - "name": "increaseAllowance", + "name": "hasRole", "outputs": [ { "internalType": "bool", @@ -49147,385 +86622,362 @@ "type": "bool" } ], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "inputs": [ { - "indexed": true, - "internalType": "address", - "name": "_owner", - "type": "address" - }, + "internalType": "enum IVaultHandler.FunctionChoices", + "name": "", + "type": "uint8" + } + ], + "name": "isDisabled", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ { - "indexed": true, "internalType": "uint256", - "name": "_id", + "name": "_vaultId", "type": "uint256" }, { "internalType": "uint256", - "name": "_amount", + "name": "_maxTCAP", "type": "uint256" } ], - "name": "CollateralAdded", - "type": "event" + "name": "liquidateVault", + "outputs": [], + "stateMutability": "payable", + "type": "function" }, { - "anonymous": false, - "inputs": [ + "inputs": [], + "name": "liquidationPenalty", + "outputs": [ { - "indexed": true, - "internalType": "address", - "name": "_owner", - "type": "address" - }, + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ { - "indexed": true, "internalType": "uint256", - "name": "_id", + "name": "_vaultId", "type": "uint256" - }, + } + ], + "name": "liquidationReward", + "outputs": [ { - "indexed": false, "internalType": "uint256", - "name": "_amount", + "name": "rewardCollateral", "type": "uint256" } ], - "name": "CollateralRemoved", - "type": "event" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_owner", - "type": "address" - }, + "inputs": [], + "name": "minimumTCAP", + "outputs": [ { - "indexed": false, "internalType": "uint256", - "name": "_burnFee", + "name": "", "type": "uint256" } ], - "name": "NewBurnFee", - "type": "event" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "address", - "name": "_owner", - "type": "address" - }, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "oracleDigits", + "outputs": [ { - "indexed": false, "internalType": "uint256", - "name": "_liquidationPenalty", + "name": "", "type": "uint256" } ], - "name": "NewLiquidationPenalty", - "type": "event" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, - "inputs": [ + "inputs": [], + "name": "owner", + "outputs": [ { - "indexed": true, "internalType": "address", - "name": "_owner", + "name": "", "type": "address" - }, + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "pause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "paused", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "ratio", + "outputs": [ { - "indexed": false, "internalType": "uint256", - "name": "_ratio", + "name": "", "type": "uint256" } ], - "name": "NewRatio", - "type": "event" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, "internalType": "address", - "name": "_owner", + "name": "_tokenAddress", "type": "address" }, { - "indexed": false, - "internalType": "address", - "name": "_tresury", - "type": "address" + "internalType": "uint256", + "name": "_tokenAmount", + "type": "uint256" } ], - "name": "NewTreasury", - "type": "event" + "name": "recoverERC20", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" + "internalType": "uint256", + "name": "_amount", + "type": "uint256" } ], - "name": "OwnershipTransferred", - "type": "event" + "name": "removeCollateral", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": false, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { "internalType": "address", "name": "account", "type": "address" } ], - "name": "Paused", - "type": "event" + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": false, - "internalType": "address", - "name": "_token", - "type": "address" - }, - { - "indexed": false, "internalType": "uint256", "name": "_amount", "type": "uint256" } ], - "name": "Recovered", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "previousAdminRole", - "type": "bytes32" - }, + "name": "requiredCollateral", + "outputs": [ { - "indexed": true, - "internalType": "bytes32", - "name": "newAdminRole", - "type": "bytes32" + "internalType": "uint256", + "name": "collateral", + "type": "uint256" } ], - "name": "RoleAdminChanged", - "type": "event" + "stateMutability": "view", + "type": "function" }, { "inputs": [ { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + } + ], + "name": "requiredLiquidationTCAP", + "outputs": [ { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" + "internalType": "uint256", + "name": "amount", + "type": "uint256" } ], - "name": "RoleGranted", - "type": "event" + "stateMutability": "view", + "type": "function" }, { "inputs": [ { - "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { - "indexed": true, "internalType": "address", "name": "account", "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" } ], - "name": "RoleRevoked", - "type": "event" + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { "inputs": [ { - "indexed": true, - "internalType": "address", - "name": "_owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "_id", - "type": "uint256" - }, - { - "indexed": false, "internalType": "uint256", - "name": "_amount", + "name": "_burnFee", "type": "uint256" } ], - "name": "TokensBurned", - "type": "event" + "name": "setBurnFee", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "address", - "name": "_owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "_id", - "type": "uint256" - }, - { - "indexed": false, "internalType": "uint256", - "name": "_amount", + "name": "_liquidationPenalty", "type": "uint256" } ], - "name": "TokensMinted", - "type": "event" + "name": "setLiquidationPenalty", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": false, - "internalType": "address", - "name": "account", - "type": "address" + "internalType": "uint256", + "name": "_minimumTCAP", + "type": "uint256" } ], - "name": "Unpaused", - "type": "event" + "name": "setMinimumTCAP", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "address", - "name": "_owner", - "type": "address" - }, - { - "indexed": true, "internalType": "uint256", - "name": "_id", + "name": "_ratio", "type": "uint256" } ], - "name": "VaultCreated", - "type": "event" + "name": "setRatio", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "uint256", - "name": "_vaultId", - "type": "uint256" - }, - { - "indexed": true, "internalType": "address", - "name": "_liquidator", + "name": "_treasury", "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_liquidationCollateral", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_reward", - "type": "uint256" } ], - "name": "VaultLiquidated", - "type": "event" + "name": "setTreasury", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { - "inputs": [], - "name": "DEFAULT_ADMIN_ROLE", + "inputs": [ + { + "internalType": "bytes4", + "name": "_interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", "outputs": [ { - "internalType": "bytes32", + "internalType": "bool", "name": "", - "type": "bytes32" + "type": "bool" } ], - "stateMutability": "view", + "stateMutability": "pure", "type": "function" }, { "inputs": [], - "name": "ETHPriceOracle", + "name": "tcapOracle", "outputs": [ { "internalType": "contract ChainlinkOracle", @@ -49537,38 +86989,69 @@ "type": "function" }, { - "inputs": [], - "name": "MAX_FEE", - "outputs": [ + "inputs": [ { - "internalType": "uint256", - "name": "amount", - "type": "uint256" + "internalType": "enum IVaultHandler.FunctionChoices", + "name": "_function", + "type": "uint8" + }, + { + "internalType": "bool", + "name": "_isDisabled", + "type": "bool" } ], - "stateMutability": "view", + "name": "toggleFunction", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], - "name": "MIN_RATIO", + "name": "treasury", "outputs": [ { - "internalType": "uint256", + "internalType": "address", "name": "", - "type": "uint256" + "type": "address" } ], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "inputs": [], - "name": "TCAPPrice", + "name": "unpause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "userToVault", "outputs": [ { "internalType": "uint256", - "name": "price", + "name": "", "type": "uint256" } ], @@ -49576,12 +87059,33 @@ "type": "function" }, { - "inputs": [], - "name": "TCAPToken", - "outputs": [ + "inputs": [ { - "internalType": "contract TCAP", + "internalType": "uint256", "name": "", + "type": "uint256" + } + ], + "name": "vaults", + "outputs": [ + { + "internalType": "uint256", + "name": "Id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "Collateral", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "Debt", + "type": "uint256" + }, + { + "internalType": "address", + "name": "Owner", "type": "address" } ], @@ -49590,25 +87094,30 @@ } ] }, - "Ctx": { - "address": "0xa400D66cE877f572c31Bb5483f17Fee4328da468", + "JPEGZ": { + "address": "0x7E1bb2f2c2773490598b9E9bA592079dD73E788b", "abi": [ { "inputs": [ { - "internalType": "address", - "name": "account", - "type": "address" + "internalType": "string", + "name": "_name", + "type": "string" }, { - "internalType": "address", - "name": "minter_", - "type": "address" + "internalType": "string", + "name": "_symbol", + "type": "string" }, { "internalType": "uint256", - "name": "mintingAllowedAfter_", + "name": "_cap", "type": "uint256" + }, + { + "internalType": "contract Orchestrator", + "name": "_orchestrator", + "type": "address" } ], "stateMutability": "nonpayable", @@ -49632,7 +87141,7 @@ { "indexed": false, "internalType": "uint256", - "name": "amount", + "name": "value", "type": "uint256" } ], @@ -49645,23 +87154,17 @@ { "indexed": true, "internalType": "address", - "name": "delegator", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "fromDelegate", + "name": "_owner", "type": "address" }, { - "indexed": true, - "internalType": "address", - "name": "toDelegate", - "type": "address" + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" } ], - "name": "DelegateChanged", + "name": "NewCap", "type": "event" }, { @@ -49670,42 +87173,36 @@ { "indexed": true, "internalType": "address", - "name": "delegate", + "name": "_owner", "type": "address" }, { "indexed": false, - "internalType": "uint256", - "name": "previousBalance", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "newBalance", - "type": "uint256" + "internalType": "bool", + "name": "_enable", + "type": "bool" } ], - "name": "DelegateVotesChanged", + "name": "NewCapEnabled", "type": "event" }, { "anonymous": false, "inputs": [ { - "indexed": false, + "indexed": true, "internalType": "address", - "name": "minter", + "name": "previousOwner", "type": "address" }, { - "indexed": false, + "indexed": true, "internalType": "address", - "name": "newMinter", + "name": "newOwner", "type": "address" } ], - "name": "MinterChanged", + "name": "OwnershipTransferred", "type": "event" }, { @@ -49726,7 +87223,7 @@ { "indexed": false, "internalType": "uint256", - "name": "amount", + "name": "value", "type": "uint256" } ], @@ -49734,148 +87231,75 @@ "type": "event" }, { - "inputs": [], - "name": "DELEGATION_TYPEHASH", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "DOMAIN_TYPEHASH", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "PERMIT_TYPEHASH", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { + "anonymous": false, "inputs": [ { + "indexed": true, "internalType": "address", - "name": "account", + "name": "_owner", "type": "address" }, { + "indexed": true, "internalType": "address", - "name": "spender", + "name": "_tokenHandler", "type": "address" } ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" + "name": "VaultHandlerAdded", + "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": true, "internalType": "address", - "name": "spender", + "name": "_owner", "type": "address" }, { - "internalType": "uint256", - "name": "rawAmount", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" + "indexed": true, + "internalType": "address", + "name": "_tokenHandler", + "type": "address" } ], - "stateMutability": "nonpayable", - "type": "function" + "name": "VaultHandlerRemoved", + "type": "event" }, { "inputs": [ { "internalType": "address", - "name": "account", + "name": "_vaultHandler", "type": "address" } ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", + "name": "addVaultHandler", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", - "name": "", + "name": "owner", "type": "address" }, { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "name": "checkpoints", - "outputs": [ - { - "internalType": "uint32", - "name": "fromBlock", - "type": "uint32" - }, - { - "internalType": "uint96", - "name": "votes", - "type": "uint96" + "internalType": "address", + "name": "spender", + "type": "address" } ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", + "name": "allowance", "outputs": [ { - "internalType": "uint8", + "internalType": "uint256", "name": "", - "type": "uint8" + "type": "uint256" } ], "stateMutability": "view", @@ -49890,11 +87314,11 @@ }, { "internalType": "uint256", - "name": "subtractedValue", + "name": "amount", "type": "uint256" } ], - "name": "decreaseAllowance", + "name": "approve", "outputs": [ { "internalType": "bool", @@ -49909,110 +87333,73 @@ "inputs": [ { "internalType": "address", - "name": "delegatee", + "name": "account", "type": "address" } ], - "name": "delegate", - "outputs": [], - "stateMutability": "nonpayable", + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", - "name": "delegatee", + "name": "_account", "type": "address" }, { "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expiry", + "name": "_amount", "type": "uint256" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" } ], - "name": "delegateBySig", + "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "delegates", + "inputs": [], + "name": "cap", "outputs": [ { - "internalType": "address", + "internalType": "uint256", "name": "", - "type": "address" + "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "getCurrentVotes", + "inputs": [], + "name": "capEnabled", "outputs": [ { - "internalType": "uint96", + "internalType": "bool", "name": "", - "type": "uint96" + "type": "bool" } ], "stateMutability": "view", "type": "function" }, { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "blockNumber", - "type": "uint256" - } - ], - "name": "getPriorVotes", + "inputs": [], + "name": "decimals", "outputs": [ { - "internalType": "uint96", + "internalType": "uint8", "name": "", - "type": "uint96" + "type": "uint8" } ], "stateMutability": "view", @@ -50027,11 +87414,11 @@ }, { "internalType": "uint256", - "name": "addedValue", + "name": "subtractedValue", "type": "uint256" } ], - "name": "increaseAllowance", + "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", @@ -50043,73 +87430,58 @@ "type": "function" }, { - "inputs": [], - "name": "minimumTimeBetweenMints", - "outputs": [ + "inputs": [ { - "internalType": "uint32", - "name": "", - "type": "uint32" + "internalType": "bool", + "name": "_enable", + "type": "bool" } ], - "stateMutability": "view", + "name": "enableCap", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", - "name": "dst", + "name": "spender", "type": "address" }, { "internalType": "uint256", - "name": "rawAmount", + "name": "addedValue", "type": "uint256" } ], - "name": "mint", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "mintCap", + "name": "increaseAllowance", "outputs": [ { - "internalType": "uint8", + "internalType": "bool", "name": "", - "type": "uint8" + "type": "bool" } ], - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [], - "name": "minter", - "outputs": [ + "inputs": [ { "internalType": "address", - "name": "", + "name": "_account", "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "mintingAllowedAfter", - "outputs": [ + }, { "internalType": "uint256", - "name": "", + "name": "_amount", "type": "uint256" } ], - "stateMutability": "view", + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { @@ -50126,21 +87498,15 @@ "type": "function" }, { - "inputs": [ + "inputs": [], + "name": "owner", + "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], - "name": "nonces", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], "stateMutability": "view", "type": "function" }, @@ -50148,60 +87514,31 @@ "inputs": [ { "internalType": "address", - "name": "", + "name": "_vaultHandler", "type": "address" } ], - "name": "numCheckpoints", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", + "name": "removeVaultHandler", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "rawAmount", - "type": "uint256" - }, { "internalType": "uint256", - "name": "deadline", + "name": "_cap", "type": "uint256" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" } ], - "name": "permit", + "name": "setCap", "outputs": [], "stateMutability": "nonpayable", "type": "function" @@ -50209,14 +87546,20 @@ { "inputs": [ { - "internalType": "address", - "name": "minter_", - "type": "address" + "internalType": "bytes4", + "name": "_interfaceId", + "type": "bytes4" } ], - "name": "setMinter", - "outputs": [], - "stateMutability": "nonpayable", + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", "type": "function" }, { @@ -50249,12 +87592,12 @@ "inputs": [ { "internalType": "address", - "name": "dst", + "name": "recipient", "type": "address" }, { "internalType": "uint256", - "name": "rawAmount", + "name": "amount", "type": "uint256" } ], @@ -50273,17 +87616,17 @@ "inputs": [ { "internalType": "address", - "name": "src", + "name": "sender", "type": "address" }, { "internalType": "address", - "name": "dst", + "name": "recipient", "type": "address" }, { "internalType": "uint256", - "name": "rawAmount", + "name": "amount", "type": "uint256" } ], @@ -50297,11 +87640,43 @@ ], "stateMutability": "nonpayable", "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "vaultHandlers", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" } ] }, - "DAIOracle": { - "address": "0x63615e94063103d02A2a1081E900bE8C858Dc543", + "JPEGZOracle": { + "address": "0xDB0d2fd6d01B12c9444FBdf852A80E27966bA9C9", "abi": [ { "inputs": [ @@ -50309,6 +87684,11 @@ "internalType": "address", "name": "_aggregator", "type": "address" + }, + { + "internalType": "address", + "name": "_owner", + "type": "address" } ], "stateMutability": "nonpayable", @@ -50536,69 +87916,29 @@ } ] }, - "DAIVaultHandler": { - "address": "0x81bF10c47aa773D9fE9B6177Cc74b046F71649A3", + "TCAP": { + "address": "0x8a6d2Cf959dedAf4ba5aBd5A349f33D38782948A", "abi": [ { "inputs": [ { - "internalType": "contract Orchestrator", - "name": "_orchestrator", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_divisor", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_ratio", - "type": "uint256" + "internalType": "string", + "name": "_name", + "type": "string" }, { - "internalType": "uint256", - "name": "_burnFee", - "type": "uint256" + "internalType": "string", + "name": "_symbol", + "type": "string" }, { "internalType": "uint256", - "name": "_liquidationPenalty", + "name": "_cap", "type": "uint256" }, { - "internalType": "address", - "name": "_tcapOracle", - "type": "address" - }, - { - "internalType": "contract TCAP", - "name": "_tcapAddress", - "type": "address" - }, - { - "internalType": "address", - "name": "_collateralAddress", - "type": "address" - }, - { - "internalType": "address", - "name": "_collateralOracle", - "type": "address" - }, - { - "internalType": "address", - "name": "_ethOracle", - "type": "address" - }, - { - "internalType": "address", - "name": "_rewardHandler", - "type": "address" - }, - { - "internalType": "address", - "name": "_treasury", + "internalType": "contract Orchestrator", + "name": "_orchestrator", "type": "address" } ], @@ -50611,23 +87951,23 @@ { "indexed": true, "internalType": "address", - "name": "_owner", + "name": "owner", "type": "address" }, { "indexed": true, - "internalType": "uint256", - "name": "_id", - "type": "uint256" + "internalType": "address", + "name": "spender", + "type": "address" }, { "indexed": false, "internalType": "uint256", - "name": "_amount", + "name": "value", "type": "uint256" } ], - "name": "CollateralAdded", + "name": "Approval", "type": "event" }, { @@ -50639,12 +87979,6 @@ "name": "_owner", "type": "address" }, - { - "indexed": true, - "internalType": "uint256", - "name": "_id", - "type": "uint256" - }, { "indexed": false, "internalType": "uint256", @@ -50652,7 +87986,7 @@ "type": "uint256" } ], - "name": "CollateralRemoved", + "name": "NewCap", "type": "event" }, { @@ -50666,12 +88000,12 @@ }, { "indexed": false, - "internalType": "uint256", - "name": "_burnFee", - "type": "uint256" + "internalType": "bool", + "name": "_enable", + "type": "bool" } ], - "name": "NewBurnFee", + "name": "NewCapEnabled", "type": "event" }, { @@ -50680,17 +88014,17 @@ { "indexed": true, "internalType": "address", - "name": "_owner", + "name": "previousOwner", "type": "address" }, { - "indexed": false, - "internalType": "uint256", - "name": "_liquidationPenalty", - "type": "uint256" + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" } ], - "name": "NewLiquidationPenalty", + "name": "OwnershipTransferred", "type": "event" }, { @@ -50699,17 +88033,23 @@ { "indexed": true, "internalType": "address", - "name": "_owner", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", - "name": "_ratio", + "name": "value", "type": "uint256" } ], - "name": "NewRatio", + "name": "Transfer", "type": "event" }, { @@ -50722,13 +88062,13 @@ "type": "address" }, { - "indexed": false, + "indexed": true, "internalType": "address", - "name": "_tresury", + "name": "_tokenHandler", "type": "address" } ], - "name": "NewTreasury", + "name": "VaultHandlerAdded", "type": "event" }, { @@ -50737,247 +88077,243 @@ { "indexed": true, "internalType": "address", - "name": "previousOwner", + "name": "_owner", "type": "address" }, { "indexed": true, "internalType": "address", - "name": "newOwner", + "name": "_tokenHandler", "type": "address" } ], - "name": "OwnershipTransferred", + "name": "VaultHandlerRemoved", "type": "event" }, { - "anonymous": false, "inputs": [ { - "indexed": false, "internalType": "address", - "name": "account", + "name": "_vaultHandler", "type": "address" } ], - "name": "Paused", - "type": "event" + "name": "addVaultHandler", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": false, "internalType": "address", - "name": "_token", + "name": "owner", "type": "address" }, { - "indexed": false, - "internalType": "uint256", - "name": "_amount", - "type": "uint256" + "internalType": "address", + "name": "spender", + "type": "address" } ], - "name": "Recovered", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "previousAdminRole", - "type": "bytes32" - }, + "name": "allowance", + "outputs": [ { - "indexed": true, - "internalType": "bytes32", - "name": "newAdminRole", - "type": "bytes32" + "internalType": "uint256", + "name": "", + "type": "uint256" } ], - "name": "RoleAdminChanged", - "type": "event" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "indexed": true, "internalType": "address", - "name": "account", + "name": "spender", "type": "address" }, { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" } ], - "name": "RoleGranted", - "type": "event" + "stateMutability": "nonpayable", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "indexed": true, "internalType": "address", "name": "account", "type": "address" - }, + } + ], + "name": "balanceOf", + "outputs": [ { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" + "internalType": "uint256", + "name": "", + "type": "uint256" } ], - "name": "RoleRevoked", - "type": "event" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, "internalType": "address", - "name": "_owner", + "name": "_account", "type": "address" }, { - "indexed": true, "internalType": "uint256", - "name": "_id", + "name": "_amount", "type": "uint256" - }, + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "cap", + "outputs": [ { - "indexed": false, "internalType": "uint256", - "name": "_amount", + "name": "", "type": "uint256" } ], - "name": "TokensBurned", - "type": "event" + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "capEnabled", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, "internalType": "address", - "name": "_owner", + "name": "spender", "type": "address" }, { - "indexed": true, "internalType": "uint256", - "name": "_id", + "name": "subtractedValue", "type": "uint256" - }, + } + ], + "name": "decreaseAllowance", + "outputs": [ { - "indexed": false, - "internalType": "uint256", - "name": "_amount", - "type": "uint256" + "internalType": "bool", + "name": "", + "type": "bool" } ], - "name": "TokensMinted", - "type": "event" + "stateMutability": "nonpayable", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": false, - "internalType": "address", - "name": "account", - "type": "address" + "internalType": "bool", + "name": "_enable", + "type": "bool" } ], - "name": "Unpaused", - "type": "event" + "name": "enableCap", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, "internalType": "address", - "name": "_owner", + "name": "spender", "type": "address" }, { - "indexed": true, "internalType": "uint256", - "name": "_id", + "name": "addedValue", "type": "uint256" } ], - "name": "VaultCreated", - "type": "event" + "name": "increaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "uint256", - "name": "_vaultId", - "type": "uint256" - }, - { - "indexed": true, "internalType": "address", - "name": "_liquidator", + "name": "_account", "type": "address" }, { - "indexed": false, - "internalType": "uint256", - "name": "_liquidationCollateral", - "type": "uint256" - }, - { - "indexed": false, "internalType": "uint256", - "name": "_reward", + "name": "_amount", "type": "uint256" } ], - "name": "VaultLiquidated", - "type": "event" + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { "inputs": [], - "name": "DEFAULT_ADMIN_ROLE", + "name": "name", "outputs": [ { - "internalType": "bytes32", + "internalType": "string", "name": "", - "type": "bytes32" + "type": "string" } ], "stateMutability": "view", @@ -50985,10 +88321,10 @@ }, { "inputs": [], - "name": "ETHPriceOracle", + "name": "owner", "outputs": [ { - "internalType": "contract ChainlinkOracle", + "internalType": "address", "name": "", "type": "address" } @@ -50997,52 +88333,65 @@ "type": "function" }, { - "inputs": [], - "name": "MAX_FEE", - "outputs": [ + "inputs": [ { - "internalType": "uint256", - "name": "", - "type": "uint256" + "internalType": "address", + "name": "_vaultHandler", + "type": "address" } ], - "stateMutability": "view", + "name": "removeVaultHandler", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], - "name": "MIN_RATIO", - "outputs": [ + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ { "internalType": "uint256", - "name": "", + "name": "_cap", "type": "uint256" } ], - "stateMutability": "view", + "name": "setCap", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [], - "name": "TCAPPrice", + "inputs": [ + { + "internalType": "bytes4", + "name": "_interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", "outputs": [ { - "internalType": "uint256", - "name": "price", - "type": "uint256" + "internalType": "bool", + "name": "", + "type": "bool" } ], - "stateMutability": "view", + "stateMutability": "pure", "type": "function" }, { "inputs": [], - "name": "TCAPToken", + "name": "symbol", "outputs": [ { - "internalType": "contract TCAP", + "internalType": "string", "name": "", - "type": "address" + "type": "string" } ], "stateMutability": "view", @@ -51050,12 +88399,12 @@ }, { "inputs": [], - "name": "VAULT_ROLE", + "name": "totalSupply", "outputs": [ { - "internalType": "bytes32", + "internalType": "uint256", "name": "", - "type": "bytes32" + "type": "uint256" } ], "stateMutability": "view", @@ -51063,64 +88412,137 @@ }, { "inputs": [ + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, { "internalType": "uint256", - "name": "_amount", + "name": "amount", "type": "uint256" } ], - "name": "addCollateral", - "outputs": [], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, { "internalType": "uint256", - "name": "_amount", + "name": "amount", "type": "uint256" } ], - "name": "burn", + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", "outputs": [], - "stateMutability": "payable", + "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [], - "name": "burnFee", + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "vaultHandlers", "outputs": [ { - "internalType": "uint256", + "internalType": "bool", "name": "", - "type": "uint256" + "type": "bool" } ], "stateMutability": "view", "type": "function" + } + ] + }, + "TCAPOracle": { + "address": "0x32a183C40721CF253E9F91b2c6411119aa09fCEf", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_aggregator", + "type": "address" + }, + { + "internalType": "address", + "name": "_owner", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" }, { - "inputs": [], - "name": "collateralContract", - "outputs": [ + "anonymous": false, + "inputs": [ { - "internalType": "contract IERC20", - "name": "", + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", "type": "address" } ], - "stateMutability": "view", - "type": "function" + "name": "OwnershipTransferred", + "type": "event" }, { "inputs": [], - "name": "collateralPriceOracle", + "name": "getLatestAnswer", "outputs": [ { - "internalType": "contract ChainlinkOracle", + "internalType": "int256", "name": "", - "type": "address" + "type": "int256" } ], "stateMutability": "view", @@ -51128,12 +88550,32 @@ }, { "inputs": [], - "name": "counter", + "name": "getLatestRound", "outputs": [ + { + "internalType": "uint80", + "name": "", + "type": "uint80" + }, + { + "internalType": "int256", + "name": "", + "type": "int256" + }, { "internalType": "uint256", - "name": "_value", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", "type": "uint256" + }, + { + "internalType": "uint80", + "name": "", + "type": "uint80" } ], "stateMutability": "view", @@ -51141,14 +88583,7 @@ }, { "inputs": [], - "name": "createVault", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "divisor", + "name": "getLatestTimestamp", "outputs": [ { "internalType": "uint256", @@ -51162,17 +88597,17 @@ { "inputs": [ { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" + "internalType": "uint80", + "name": "_id", + "type": "uint80" } ], - "name": "getFee", + "name": "getPreviousAnswer", "outputs": [ { - "internalType": "uint256", - "name": "fee", - "type": "uint256" + "internalType": "int256", + "name": "", + "type": "int256" } ], "stateMutability": "view", @@ -51181,16 +88616,16 @@ { "inputs": [ { - "internalType": "contract ChainlinkOracle", - "name": "_oracle", - "type": "address" + "internalType": "uint80", + "name": "_id", + "type": "uint80" } ], - "name": "getOraclePrice", + "name": "getPreviousTimestamp", "outputs": [ { "internalType": "uint256", - "name": "price", + "name": "", "type": "uint256" } ], @@ -51200,36 +88635,45 @@ { "inputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" + "internalType": "uint80", + "name": "_id", + "type": "uint80" } ], - "name": "getRoleAdmin", + "name": "getRound", "outputs": [ { - "internalType": "bytes32", + "internalType": "uint80", "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ + "type": "uint80" + }, { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" + "internalType": "int256", + "name": "", + "type": "int256" }, { "internalType": "uint256", - "name": "index", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", "type": "uint256" + }, + { + "internalType": "uint80", + "name": "", + "type": "uint80" } ], - "name": "getRoleMember", + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", "outputs": [ { "internalType": "address", @@ -51240,128 +88684,170 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" + "internalType": "address", + "name": "_aggregator", + "type": "address" } ], - "name": "getRoleMemberCount", + "name": "setReferenceContract", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", "outputs": [ { - "internalType": "uint256", + "internalType": "bool", "name": "", - "type": "uint256" + "type": "bool" } ], - "stateMutability": "view", + "stateMutability": "pure", "type": "function" }, { "inputs": [ { - "internalType": "uint256", - "name": "_id", - "type": "uint256" + "internalType": "address", + "name": "newOwner", + "type": "address" } ], - "name": "getVault", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ] + }, + "WETH": { + "address": "0x2B5a9D411F631491CE71127B1600b26215C63C14", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "src", + "type": "address" }, { + "indexed": true, "internalType": "address", - "name": "", + "name": "guy", "type": "address" }, { + "indexed": false, "internalType": "uint256", - "name": "", + "name": "wad", "type": "uint256" } ], - "stateMutability": "view", - "type": "function" + "name": "Approval", + "type": "event" }, { + "anonymous": false, "inputs": [ { - "internalType": "uint256", - "name": "_vaultId", - "type": "uint256" - } - ], - "name": "getVaultRatio", - "outputs": [ + "indexed": true, + "internalType": "address", + "name": "dst", + "type": "address" + }, { + "indexed": false, "internalType": "uint256", - "name": "currentRatio", + "name": "wad", "type": "uint256" } ], - "stateMutability": "view", - "type": "function" + "name": "Deposit", + "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": true, "internalType": "address", - "name": "_account", + "name": "src", "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "dst", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "wad", + "type": "uint256" } ], - "name": "grantAccess", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "name": "Transfer", + "type": "event" }, { + "anonymous": false, "inputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { + "indexed": true, "internalType": "address", - "name": "account", + "name": "src", "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "wad", + "type": "uint256" } ], - "name": "grantRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "name": "Withdrawal", + "type": "event" }, { "inputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" + "internalType": "address", + "name": "", + "type": "address" }, { "internalType": "address", - "name": "account", + "name": "", "type": "address" } ], - "name": "hasRole", + "name": "allowance", "outputs": [ { - "internalType": "bool", + "internalType": "uint256", "name": "", - "type": "bool" + "type": "uint256" } ], "stateMutability": "view", @@ -51370,74 +88856,54 @@ { "inputs": [ { - "internalType": "uint256", - "name": "_vaultId", - "type": "uint256" + "internalType": "address", + "name": "guy", + "type": "address" }, { "internalType": "uint256", - "name": "_maxTCAP", + "name": "wad", "type": "uint256" } ], - "name": "liquidateVault", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [], - "name": "liquidationPenalty", + "name": "approve", "outputs": [ { - "internalType": "uint256", + "internalType": "bool", "name": "", - "type": "uint256" + "type": "bool" } ], - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { - "internalType": "uint256", - "name": "_vaultId", - "type": "uint256" + "internalType": "address", + "name": "", + "type": "address" } ], - "name": "liquidationReward", + "name": "balanceOf", "outputs": [ { "internalType": "uint256", - "name": "rewardCollateral", + "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - } - ], - "name": "mint", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, { "inputs": [], - "name": "oracleDigits", + "name": "decimals", "outputs": [ { - "internalType": "uint256", + "internalType": "uint8", "name": "", - "type": "uint256" + "type": "uint8" } ], "stateMutability": "view", @@ -51445,12 +88911,19 @@ }, { "inputs": [], - "name": "owner", + "name": "deposit", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "name", "outputs": [ { - "internalType": "address", + "internalType": "string", "name": "", - "type": "address" + "type": "string" } ], "stateMutability": "view", @@ -51458,19 +88931,12 @@ }, { "inputs": [], - "name": "pause", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "paused", + "name": "symbol", "outputs": [ { - "internalType": "bool", + "internalType": "string", "name": "", - "type": "bool" + "type": "string" } ], "stateMutability": "view", @@ -51478,7 +88944,7 @@ }, { "inputs": [], - "name": "ratio", + "name": "totalSupply", "outputs": [ { "internalType": "uint256", @@ -51493,90 +88959,161 @@ "inputs": [ { "internalType": "address", - "name": "_tokenAddress", + "name": "dst", "type": "address" }, { "internalType": "uint256", - "name": "_tokenAmount", + "name": "wad", "type": "uint256" } ], - "name": "recoverERC20", - "outputs": [], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ + { + "internalType": "address", + "name": "src", + "type": "address" + }, + { + "internalType": "address", + "name": "dst", + "type": "address" + }, { "internalType": "uint256", - "name": "_amount", + "name": "wad", "type": "uint256" } ], - "name": "removeCollateral", - "outputs": [], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [], - "name": "renounceOwnership", + "inputs": [ + { + "internalType": "uint256", + "name": "wad", + "type": "uint256" + } + ], + "name": "withdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" - }, + } + ] + }, + "WETHOracle": { + "address": "0xaf26aA0F3b19D156499BdC26d3fAA88530024c31", + "abi": [ { "inputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" + "internalType": "address", + "name": "_aggregator", + "type": "address" }, { "internalType": "address", - "name": "account", + "name": "_owner", "type": "address" } ], - "name": "renounceRole", - "outputs": [], "stateMutability": "nonpayable", - "type": "function" + "type": "constructor" }, { + "anonymous": false, "inputs": [ { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" } ], - "name": "requiredCollateral", + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [], + "name": "getLatestAnswer", "outputs": [ { - "internalType": "uint256", - "name": "collateral", - "type": "uint256" + "internalType": "int256", + "name": "", + "type": "int256" } ], "stateMutability": "view", "type": "function" }, { - "inputs": [ + "inputs": [], + "name": "getLatestRound", + "outputs": [ + { + "internalType": "uint80", + "name": "", + "type": "uint80" + }, + { + "internalType": "int256", + "name": "", + "type": "int256" + }, { "internalType": "uint256", - "name": "_vaultId", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", "type": "uint256" + }, + { + "internalType": "uint80", + "name": "", + "type": "uint80" } ], - "name": "requiredLiquidationTCAP", + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getLatestTimestamp", "outputs": [ { "internalType": "uint256", - "name": "amount", + "name": "", "type": "uint256" } ], @@ -51586,29 +89123,17 @@ { "inputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" + "internalType": "uint80", + "name": "_id", + "type": "uint80" } ], - "name": "revokeRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "rewardHandler", + "name": "getPreviousAnswer", "outputs": [ { - "internalType": "contract IRewardHandler", + "internalType": "int256", "name": "", - "type": "address" + "type": "int256" } ], "stateMutability": "view", @@ -51616,39 +89141,78 @@ }, { "inputs": [ + { + "internalType": "uint80", + "name": "_id", + "type": "uint80" + } + ], + "name": "getPreviousTimestamp", + "outputs": [ { "internalType": "uint256", - "name": "_burnFee", + "name": "", "type": "uint256" } ], - "name": "setBurnFee", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "inputs": [ + { + "internalType": "uint80", + "name": "_id", + "type": "uint80" + } + ], + "name": "getRound", + "outputs": [ + { + "internalType": "uint80", + "name": "", + "type": "uint80" + }, + { + "internalType": "int256", + "name": "", + "type": "int256" + }, { "internalType": "uint256", - "name": "_liquidationPenalty", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", "type": "uint256" + }, + { + "internalType": "uint80", + "name": "", + "type": "uint80" } ], - "name": "setLiquidationPenalty", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { - "inputs": [ + "inputs": [], + "name": "owner", + "outputs": [ { - "internalType": "uint256", - "name": "_ratio", - "type": "uint256" + "internalType": "address", + "name": "", + "type": "address" } ], - "name": "setRatio", + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" @@ -51657,11 +89221,11 @@ "inputs": [ { "internalType": "address", - "name": "_treasury", + "name": "_aggregator", "type": "address" } ], - "name": "setTreasury", + "name": "setReferenceContract", "outputs": [], "stateMutability": "nonpayable", "type": "function" @@ -51670,7 +89234,7 @@ "inputs": [ { "internalType": "bytes4", - "name": "_interfaceId", + "name": "interfaceId", "type": "bytes4" } ], @@ -51685,19 +89249,6 @@ "stateMutability": "pure", "type": "function" }, - { - "inputs": [], - "name": "tcapOracle", - "outputs": [ - { - "internalType": "contract ChainlinkOracle", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, { "inputs": [ { @@ -51710,168 +89261,106 @@ "outputs": [], "stateMutability": "nonpayable", "type": "function" - }, - { - "inputs": [], - "name": "treasury", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "unpause", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, + } + ] + }, + "WETHVaultHandler": { + "address": "0x6c913fa678C81c567A11EdF19E06bE758DBeFe2D", + "abi": [ { "inputs": [ { - "internalType": "address", - "name": "", + "internalType": "contract Orchestrator", + "name": "_orchestrator", "type": "address" - } - ], - "name": "userToVault", - "outputs": [ + }, { "internalType": "uint256", - "name": "", + "name": "_divisor", "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ + }, { "internalType": "uint256", - "name": "", + "name": "_ratio", "type": "uint256" - } - ], - "name": "vaults", - "outputs": [ + }, { "internalType": "uint256", - "name": "Id", + "name": "_burnFee", "type": "uint256" }, { "internalType": "uint256", - "name": "Collateral", + "name": "_mintFee", "type": "uint256" }, { "internalType": "uint256", - "name": "Debt", + "name": "_liquidationPenalty", "type": "uint256" }, { "internalType": "address", - "name": "Owner", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - } - ] - }, - "DAIRewardHandler": { - "address": "0x0B3e7f177913452F8C7281Ebd5f4DE80849d3D54", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "_owner", + "name": "_tcapOracle", "type": "address" }, { - "internalType": "address", - "name": "_rewardsToken", + "internalType": "contract TCAP", + "name": "_tcapAddress", "type": "address" }, { "internalType": "address", - "name": "_vault", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", + "name": "_collateralAddress", "type": "address" }, { - "indexed": true, "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ + "name": "_collateralOracle", + "type": "address" + }, { - "indexed": false, "internalType": "address", - "name": "account", + "name": "_ethOracle", "type": "address" - } - ], - "name": "Paused", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ + }, { - "indexed": false, "internalType": "address", - "name": "token", + "name": "_treasury", "type": "address" }, { - "indexed": false, "internalType": "uint256", - "name": "amount", + "name": "_minimumTCAP", "type": "uint256" } ], - "name": "Recovered", - "type": "event" + "stateMutability": "nonpayable", + "type": "constructor" }, { "anonymous": false, "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, { "indexed": false, "internalType": "uint256", - "name": "reward", + "name": "_amount", "type": "uint256" } ], - "name": "RewardAdded", + "name": "CollateralAdded", "type": "event" }, { @@ -51880,30 +89369,23 @@ { "indexed": true, "internalType": "address", - "name": "user", + "name": "_owner", "type": "address" }, { - "indexed": false, + "indexed": true, "internalType": "uint256", - "name": "reward", + "name": "_id", "type": "uint256" - } - ], - "name": "RewardPaid", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ + }, { "indexed": false, "internalType": "uint256", - "name": "newDuration", + "name": "_amount", "type": "uint256" } ], - "name": "RewardsDurationUpdated", + "name": "CollateralRemoved", "type": "event" }, { @@ -51911,74 +89393,62 @@ "inputs": [ { "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" + "internalType": "address", + "name": "_owner", + "type": "address" }, { - "indexed": true, - "internalType": "bytes32", - "name": "previousAdminRole", - "type": "bytes32" + "indexed": false, + "internalType": "enum IVaultHandler.FunctionChoices", + "name": "_function", + "type": "uint8" }, { - "indexed": true, - "internalType": "bytes32", - "name": "newAdminRole", - "type": "bytes32" + "indexed": false, + "internalType": "bool", + "name": "_isDisabled", + "type": "bool" } ], - "name": "RoleAdminChanged", + "name": "FunctionToggled", "type": "event" }, { "anonymous": false, "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, { "indexed": true, "internalType": "address", - "name": "account", + "name": "_owner", "type": "address" }, { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" + "indexed": false, + "internalType": "uint256", + "name": "_burnFee", + "type": "uint256" } ], - "name": "RoleGranted", + "name": "NewBurnFee", "type": "event" }, { "anonymous": false, "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, { "indexed": true, "internalType": "address", - "name": "account", + "name": "_owner", "type": "address" }, { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" + "indexed": false, + "internalType": "uint256", + "name": "_liquidationPenalty", + "type": "uint256" } ], - "name": "RoleRevoked", + "name": "NewLiquidationPenalty", "type": "event" }, { @@ -51987,30 +89457,36 @@ { "indexed": true, "internalType": "address", - "name": "user", + "name": "_owner", "type": "address" }, { "indexed": false, "internalType": "uint256", - "name": "amount", + "name": "_minimumTCAP", "type": "uint256" } ], - "name": "Staked", + "name": "NewMinimumTCAP", "type": "event" }, { "anonymous": false, "inputs": [ { - "indexed": false, + "indexed": true, "internalType": "address", - "name": "account", + "name": "_owner", "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_mintFee", + "type": "uint256" } ], - "name": "Unpaused", + "name": "NewMintFee", "type": "event" }, { @@ -52019,391 +89495,285 @@ { "indexed": true, "internalType": "address", - "name": "user", + "name": "_owner", "type": "address" }, { "indexed": false, "internalType": "uint256", - "name": "amount", + "name": "_ratio", "type": "uint256" } ], - "name": "Withdrawn", + "name": "NewRatio", "type": "event" }, { - "inputs": [], - "name": "DEFAULT_ADMIN_ROLE", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { + "anonymous": false, "inputs": [ { + "indexed": true, "internalType": "address", - "name": "_account", + "name": "_owner", "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ + }, { - "internalType": "uint256", - "name": "", - "type": "uint256" + "indexed": false, + "internalType": "address", + "name": "_tresury", + "type": "address" } ], - "stateMutability": "view", - "type": "function" + "name": "NewTreasury", + "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": true, "internalType": "address", - "name": "_account", + "name": "previousOwner", "type": "address" - } - ], - "name": "earned", - "outputs": [ + }, { - "internalType": "uint256", - "name": "", - "type": "uint256" + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" } ], - "stateMutability": "view", - "type": "function" + "name": "OwnershipTransferred", + "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": false, "internalType": "address", - "name": "_staker", + "name": "account", "type": "address" } ], - "name": "exit", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "getReward", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "getRewardForDuration", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" + "name": "Paused", + "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": false, "internalType": "address", - "name": "_staker", + "name": "_token", "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" } ], - "name": "getRewardFromVault", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "name": "Recovered", + "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" - } - ], - "name": "getRoleAdmin", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ + }, { + "indexed": true, "internalType": "bytes32", - "name": "role", + "name": "previousAdminRole", "type": "bytes32" }, { - "internalType": "uint256", - "name": "index", - "type": "uint256" - } - ], - "name": "getRoleMember", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { + "indexed": true, "internalType": "bytes32", - "name": "role", + "name": "newAdminRole", "type": "bytes32" } ], - "name": "getRoleMemberCount", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" + "name": "RoleAdminChanged", + "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { + "indexed": true, "internalType": "address", "name": "account", "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" } ], - "name": "grantRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "name": "RoleGranted", + "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { + "indexed": true, "internalType": "address", "name": "account", "type": "address" - } - ], - "name": "hasRole", - "outputs": [ + }, { - "internalType": "bool", - "name": "", - "type": "bool" + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" } ], - "stateMutability": "view", - "type": "function" + "name": "RoleRevoked", + "type": "event" }, { - "inputs": [], - "name": "lastTimeRewardApplicable", - "outputs": [ + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, { + "indexed": true, "internalType": "uint256", - "name": "", + "name": "_id", "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "lastUpdateTime", - "outputs": [ + }, { + "indexed": false, "internalType": "uint256", - "name": "", + "name": "_amount", "type": "uint256" } ], - "stateMutability": "view", - "type": "function" + "name": "TokensBurned", + "type": "event" }, { + "anonymous": false, "inputs": [ { - "internalType": "uint256", - "name": "_a", - "type": "uint256" + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" }, { + "indexed": true, "internalType": "uint256", - "name": "_b", + "name": "_id", "type": "uint256" - } - ], - "name": "min", - "outputs": [ + }, { + "indexed": false, "internalType": "uint256", - "name": "", + "name": "_amount", "type": "uint256" } ], - "stateMutability": "pure", - "type": "function" + "name": "TokensMinted", + "type": "event" }, { + "anonymous": false, "inputs": [ { - "internalType": "uint256", - "name": "_reward", - "type": "uint256" - } - ], - "name": "notifyRewardAmount", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { + "indexed": false, "internalType": "address", - "name": "", + "name": "account", "type": "address" } ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "paused", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "periodFinish", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" + "name": "Unpaused", + "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": true, "internalType": "address", - "name": "_tokenAddress", + "name": "_owner", "type": "address" }, { + "indexed": true, "internalType": "uint256", - "name": "_tokenAmount", + "name": "_id", "type": "uint256" } ], - "name": "recoverERC20", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "name": "VaultCreated", + "type": "event" }, { + "anonymous": false, "inputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" + "indexed": true, + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" }, { + "indexed": true, "internalType": "address", - "name": "account", + "name": "_liquidator", "type": "address" - } - ], - "name": "renounceRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ + }, { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" + "indexed": false, + "internalType": "uint256", + "name": "_liquidationCollateral", + "type": "uint256" }, { - "internalType": "address", - "name": "account", - "type": "address" + "indexed": false, + "internalType": "uint256", + "name": "_reward", + "type": "uint256" } ], - "name": "revokeRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "name": "VaultLiquidated", + "type": "event" }, { "inputs": [], - "name": "rewardPerToken", + "name": "DEFAULT_ADMIN_ROLE", "outputs": [ { - "internalType": "uint256", + "internalType": "bytes32", "name": "", - "type": "uint256" + "type": "bytes32" } ], "stateMutability": "view", @@ -52411,12 +89781,12 @@ }, { "inputs": [], - "name": "rewardPerTokenStored", + "name": "ETHPriceOracle", "outputs": [ { - "internalType": "uint256", + "internalType": "contract ChainlinkOracle", "name": "", - "type": "uint256" + "type": "address" } ], "stateMutability": "view", @@ -52424,26 +89794,20 @@ }, { "inputs": [], - "name": "rewardRate", + "name": "MAX_DECIMAL_PLACES", "outputs": [ { - "internalType": "uint256", + "internalType": "uint8", "name": "", - "type": "uint256" + "type": "uint8" } ], "stateMutability": "view", "type": "function" }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "rewards", + { + "inputs": [], + "name": "MAX_FEE", "outputs": [ { "internalType": "uint256", @@ -52456,7 +89820,7 @@ }, { "inputs": [], - "name": "rewardsDuration", + "name": "MIN_RATIO", "outputs": [ { "internalType": "uint256", @@ -52469,83 +89833,66 @@ }, { "inputs": [], - "name": "rewardsToken", + "name": "TCAPPrice", "outputs": [ { - "internalType": "contract IERC20", - "name": "", - "type": "address" + "internalType": "uint256", + "name": "price", + "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { - "inputs": [ + "inputs": [], + "name": "TCAPToken", + "outputs": [ { - "internalType": "uint256", - "name": "_rewardsDuration", - "type": "uint256" + "internalType": "contract TCAP", + "name": "", + "type": "address" } ], - "name": "setRewardsDuration", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "inputs": [ - { - "internalType": "address", - "name": "_staker", - "type": "address" - }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], - "name": "stake", + "name": "addCollateral", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", + "name": "addCollateralETH", + "outputs": [], + "stateMutability": "payable", "type": "function" }, { "inputs": [ { - "internalType": "address", - "name": "newOwner", - "type": "address" + "internalType": "uint256", + "name": "_amount", + "type": "uint256" } ], - "name": "transferOwnership", + "name": "burn", "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "payable", "type": "function" }, { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "userRewardPerTokenPaid", + "inputs": [], + "name": "burnFee", "outputs": [ { "internalType": "uint256", @@ -52558,10 +89905,10 @@ }, { "inputs": [], - "name": "vault", + "name": "collateralContract", "outputs": [ { - "internalType": "address", + "internalType": "contract IERC20", "name": "", "type": "address" } @@ -52570,66 +89917,26 @@ "type": "function" }, { - "inputs": [ - { - "internalType": "address", - "name": "_staker", - "type": "address" - }, + "inputs": [], + "name": "collateralDecimalsAdjustmentFactor", + "outputs": [ { "internalType": "uint256", - "name": "_amount", + "name": "", "type": "uint256" } ], - "name": "withdraw", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" - } - ] - }, - "WETHOracle": { - "address": "0x7B838c8839886ffaa4E3481c83cea7d38ae0f236", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "_aggregator", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" }, { "inputs": [], - "name": "getLatestAnswer", + "name": "collateralPriceOracle", "outputs": [ { - "internalType": "int256", + "internalType": "contract ChainlinkOracle", "name": "", - "type": "int256" + "type": "address" } ], "stateMutability": "view", @@ -52637,32 +89944,12 @@ }, { "inputs": [], - "name": "getLatestRound", + "name": "counter", "outputs": [ - { - "internalType": "uint80", - "name": "", - "type": "uint80" - }, - { - "internalType": "int256", - "name": "", - "type": "int256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, { "internalType": "uint256", - "name": "", + "name": "_value", "type": "uint256" - }, - { - "internalType": "uint80", - "name": "", - "type": "uint80" } ], "stateMutability": "view", @@ -52670,7 +89957,14 @@ }, { "inputs": [], - "name": "getLatestTimestamp", + "name": "createVault", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "divisor", "outputs": [ { "internalType": "uint256", @@ -52684,17 +89978,17 @@ { "inputs": [ { - "internalType": "uint80", - "name": "_id", - "type": "uint80" + "internalType": "uint256", + "name": "_amount", + "type": "uint256" } ], - "name": "getPreviousAnswer", + "name": "getBurnFee", "outputs": [ { - "internalType": "int256", - "name": "", - "type": "int256" + "internalType": "uint256", + "name": "fee", + "type": "uint256" } ], "stateMutability": "view", @@ -52703,16 +89997,16 @@ { "inputs": [ { - "internalType": "uint80", - "name": "_id", - "type": "uint80" + "internalType": "uint256", + "name": "_amount", + "type": "uint256" } ], - "name": "getPreviousTimestamp", + "name": "getMintFee", "outputs": [ { "internalType": "uint256", - "name": "", + "name": "fee", "type": "uint256" } ], @@ -52722,572 +90016,277 @@ { "inputs": [ { - "internalType": "uint80", - "name": "_id", - "type": "uint80" + "internalType": "contract ChainlinkOracle", + "name": "_oracle", + "type": "address" } ], - "name": "getRound", + "name": "getOraclePrice", "outputs": [ - { - "internalType": "uint80", - "name": "", - "type": "uint80" - }, - { - "internalType": "int256", - "name": "", - "type": "int256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, { "internalType": "uint256", - "name": "", + "name": "price", "type": "uint256" - }, - { - "internalType": "uint80", - "name": "", - "type": "uint80" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" } ], "stateMutability": "view", "type": "function" }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_aggregator", - "type": "address" - } - ], - "name": "setReferenceContract", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, { "inputs": [ { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" + "internalType": "bytes32", + "name": "role", + "type": "bytes32" } ], - "name": "supportsInterface", + "name": "getRoleAdmin", "outputs": [ { - "internalType": "bool", + "internalType": "bytes32", "name": "", - "type": "bool" + "type": "bytes32" } ], - "stateMutability": "pure", + "stateMutability": "view", "type": "function" }, { "inputs": [ { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ] - }, - "WETHVaultHandler": { - "address": "0xAe49Ed0a9796bF44879BC050e5113C058e590e1b", - "abi": [ - { - "inputs": [ - { - "internalType": "contract Orchestrator", - "name": "_orchestrator", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_divisor", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_ratio", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_burnFee", - "type": "uint256" + "internalType": "bytes32", + "name": "role", + "type": "bytes32" }, { "internalType": "uint256", - "name": "_liquidationPenalty", + "name": "index", "type": "uint256" - }, - { - "internalType": "address", - "name": "_tcapOracle", - "type": "address" - }, - { - "internalType": "contract TCAP", - "name": "_tcapAddress", - "type": "address" - }, - { - "internalType": "address", - "name": "_collateralAddress", - "type": "address" - }, - { - "internalType": "address", - "name": "_collateralOracle", - "type": "address" - }, - { - "internalType": "address", - "name": "_ethOracle", - "type": "address" - }, - { - "internalType": "address", - "name": "_rewardHandler", - "type": "address" - }, - { - "internalType": "address", - "name": "_treasury", - "type": "address" } ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ + "name": "getRoleMember", + "outputs": [ { - "indexed": true, "internalType": "address", - "name": "_owner", + "name": "", "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "_id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_amount", - "type": "uint256" } ], - "name": "CollateralAdded", - "type": "event" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "address", - "name": "_owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "_id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_amount", - "type": "uint256" + "internalType": "bytes32", + "name": "role", + "type": "bytes32" } ], - "name": "CollateralRemoved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_owner", - "type": "address" - }, + "name": "getRoleMemberCount", + "outputs": [ { - "indexed": false, "internalType": "uint256", - "name": "_burnFee", + "name": "", "type": "uint256" } ], - "name": "NewBurnFee", - "type": "event" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "address", - "name": "_owner", - "type": "address" - }, - { - "indexed": false, "internalType": "uint256", - "name": "_liquidationPenalty", + "name": "_id", "type": "uint256" } ], - "name": "NewLiquidationPenalty", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ + "name": "getVault", + "outputs": [ { - "indexed": true, - "internalType": "address", - "name": "_owner", - "type": "address" + "internalType": "uint256", + "name": "", + "type": "uint256" }, { - "indexed": false, "internalType": "uint256", - "name": "_ratio", + "name": "", "type": "uint256" - } - ], - "name": "NewRatio", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_owner", - "type": "address" }, { - "indexed": false, - "internalType": "address", - "name": "_tresury", - "type": "address" - } - ], - "name": "NewTreasury", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, "internalType": "address", - "name": "previousOwner", + "name": "", "type": "address" }, { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "account", - "type": "address" + "internalType": "uint256", + "name": "", + "type": "uint256" } ], - "name": "Paused", - "type": "event" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": false, - "internalType": "address", - "name": "_token", - "type": "address" - }, - { - "indexed": false, "internalType": "uint256", - "name": "_amount", + "name": "_vaultId", "type": "uint256" } ], - "name": "Recovered", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "previousAdminRole", - "type": "bytes32" - }, + "name": "getVaultRatio", + "outputs": [ { - "indexed": true, - "internalType": "bytes32", - "name": "newAdminRole", - "type": "bytes32" + "internalType": "uint256", + "name": "currentRatio", + "type": "uint256" } ], - "name": "RoleAdminChanged", - "type": "event" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { - "indexed": true, "internalType": "address", "name": "account", "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" } ], - "name": "RoleGranted", - "type": "event" + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { - "indexed": true, "internalType": "address", "name": "account", "type": "address" - }, + } + ], + "name": "hasRole", + "outputs": [ { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" + "internalType": "bool", + "name": "", + "type": "bool" } ], - "name": "RoleRevoked", - "type": "event" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "address", - "name": "_owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "_id", - "type": "uint256" - }, + "internalType": "enum IVaultHandler.FunctionChoices", + "name": "", + "type": "uint8" + } + ], + "name": "isDisabled", + "outputs": [ { - "indexed": false, - "internalType": "uint256", - "name": "_amount", - "type": "uint256" + "internalType": "bool", + "name": "", + "type": "bool" } ], - "name": "TokensBurned", - "type": "event" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "address", - "name": "_owner", - "type": "address" - }, - { - "indexed": true, "internalType": "uint256", - "name": "_id", + "name": "_vaultId", "type": "uint256" }, { - "indexed": false, "internalType": "uint256", - "name": "_amount", + "name": "_maxTCAP", "type": "uint256" } ], - "name": "TokensMinted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "Unpaused", - "type": "event" + "name": "liquidateVault", + "outputs": [], + "stateMutability": "payable", + "type": "function" }, { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_owner", - "type": "address" - }, + "inputs": [], + "name": "liquidationPenalty", + "outputs": [ { - "indexed": true, "internalType": "uint256", - "name": "_id", + "name": "", "type": "uint256" } ], - "name": "VaultCreated", - "type": "event" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, "internalType": "uint256", "name": "_vaultId", "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "_liquidator", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_liquidationCollateral", - "type": "uint256" - }, + } + ], + "name": "liquidationReward", + "outputs": [ { - "indexed": false, "internalType": "uint256", - "name": "_reward", + "name": "rewardCollateral", "type": "uint256" } ], - "name": "VaultLiquidated", - "type": "event" + "stateMutability": "view", + "type": "function" }, { "inputs": [], - "name": "DEFAULT_ADMIN_ROLE", + "name": "minimumTCAP", "outputs": [ { - "internalType": "bytes32", + "internalType": "uint256", "name": "", - "type": "bytes32" + "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { - "inputs": [], - "name": "ETHPriceOracle", - "outputs": [ + "inputs": [ { - "internalType": "contract ChainlinkOracle", - "name": "", - "type": "address" + "internalType": "uint256", + "name": "_amount", + "type": "uint256" } ], - "stateMutability": "view", + "name": "mint", + "outputs": [], + "stateMutability": "payable", "type": "function" }, { "inputs": [], - "name": "MAX_FEE", + "name": "mintFee", "outputs": [ { "internalType": "uint256", @@ -53300,7 +90299,7 @@ }, { "inputs": [], - "name": "MIN_RATIO", + "name": "oracleDigits", "outputs": [ { "internalType": "uint256", @@ -53313,12 +90312,12 @@ }, { "inputs": [], - "name": "TCAPPrice", + "name": "owner", "outputs": [ { - "internalType": "uint256", - "name": "price", - "type": "uint256" + "internalType": "address", + "name": "", + "type": "address" } ], "stateMutability": "view", @@ -53326,12 +90325,19 @@ }, { "inputs": [], - "name": "TCAPToken", + "name": "pause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "paused", "outputs": [ { - "internalType": "contract TCAP", + "internalType": "bool", "name": "", - "type": "address" + "type": "bool" } ], "stateMutability": "view", @@ -53339,12 +90345,12 @@ }, { "inputs": [], - "name": "VAULT_ROLE", + "name": "ratio", "outputs": [ { - "internalType": "bytes32", + "internalType": "uint256", "name": "", - "type": "bytes32" + "type": "uint256" } ], "stateMutability": "view", @@ -53352,13 +90358,18 @@ }, { "inputs": [ + { + "internalType": "address", + "name": "_tokenAddress", + "type": "address" + }, { "internalType": "uint256", - "name": "_amount", + "name": "_tokenAmount", "type": "uint256" } ], - "name": "addCollateral", + "name": "recoverERC20", "outputs": [], "stateMutability": "nonpayable", "type": "function" @@ -53371,57 +90382,81 @@ "type": "uint256" } ], - "name": "burn", + "name": "removeCollateral", "outputs": [], - "stateMutability": "payable", + "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [], - "name": "burnFee", - "outputs": [ + "inputs": [ { "internalType": "uint256", - "name": "", + "name": "_amount", "type": "uint256" } ], - "stateMutability": "view", + "name": "removeCollateralETH", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], - "name": "collateralContract", - "outputs": [ + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ { - "internalType": "contract IERC20", - "name": "", + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", "type": "address" } ], - "stateMutability": "view", + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [], - "name": "collateralPriceOracle", + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "requiredCollateral", "outputs": [ { - "internalType": "contract ChainlinkOracle", - "name": "", - "type": "address" + "internalType": "uint256", + "name": "collateral", + "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { - "inputs": [], - "name": "counter", + "inputs": [ + { + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + } + ], + "name": "requiredLiquidationTCAP", "outputs": [ { "internalType": "uint256", - "name": "_value", + "name": "amount", "type": "uint256" } ], @@ -53429,77 +90464,128 @@ "type": "function" }, { - "inputs": [], - "name": "createVault", + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [], - "name": "divisor", - "outputs": [ + "inputs": [ { "internalType": "uint256", - "name": "", + "name": "_burnFee", "type": "uint256" } ], - "stateMutability": "view", + "name": "setBurnFee", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", - "name": "_amount", + "name": "_liquidationPenalty", "type": "uint256" } ], - "name": "getFee", - "outputs": [ + "name": "setLiquidationPenalty", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ { "internalType": "uint256", - "name": "fee", + "name": "_minimumTCAP", "type": "uint256" } ], - "stateMutability": "view", + "name": "setMinimumTCAP", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { - "internalType": "contract ChainlinkOracle", - "name": "_oracle", - "type": "address" + "internalType": "uint256", + "name": "_mintFee", + "type": "uint256" } ], - "name": "getOraclePrice", - "outputs": [ + "name": "setMintFee", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ { "internalType": "uint256", - "name": "price", + "name": "_ratio", "type": "uint256" } ], - "stateMutability": "view", + "name": "setRatio", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" + "internalType": "address", + "name": "_treasury", + "type": "address" } ], - "name": "getRoleAdmin", + "name": "setTreasury", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "_interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", "outputs": [ { - "internalType": "bytes32", + "internalType": "bool", "name": "", - "type": "bytes32" + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "tcapOracle", + "outputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "", + "type": "address" } ], "stateMutability": "view", @@ -53508,17 +90594,37 @@ { "inputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" + "internalType": "enum IVaultHandler.FunctionChoices", + "name": "_function", + "type": "uint8" }, { - "internalType": "uint256", - "name": "index", - "type": "uint256" + "internalType": "bool", + "name": "_isDisabled", + "type": "bool" } ], - "name": "getRoleMember", + "name": "toggleFunction", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "treasury", "outputs": [ { "internalType": "address", @@ -53529,15 +90635,22 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "unpause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" + "internalType": "address", + "name": "", + "type": "address" } ], - "name": "getRoleMemberCount", + "name": "userToVault", "outputs": [ { "internalType": "uint256", @@ -53552,105 +90665,170 @@ "inputs": [ { "internalType": "uint256", - "name": "_id", + "name": "", "type": "uint256" } ], - "name": "getVault", + "name": "vaults", "outputs": [ { "internalType": "uint256", - "name": "", + "name": "Id", "type": "uint256" }, { "internalType": "uint256", - "name": "", + "name": "Collateral", "type": "uint256" }, - { - "internalType": "address", - "name": "", - "type": "address" - }, { "internalType": "uint256", - "name": "", + "name": "Debt", "type": "uint256" + }, + { + "internalType": "address", + "name": "Owner", + "type": "address" } ], "stateMutability": "view", "type": "function" }, { + "stateMutability": "payable", + "type": "receive" + } + ] + } + } + } + }, + "80001": { + "mumbai": { + "name": "mumbai", + "chainId": "80001", + "contracts": { + "AAVE": { + "address": "0xa099e10Bca775FCE4f8c4A31fFcD41Bea16d48d9", + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, "inputs": [ { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, "internalType": "uint256", - "name": "_vaultId", + "name": "value", "type": "uint256" } ], - "name": "getVaultRatio", - "outputs": [ + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, "internalType": "uint256", - "name": "currentRatio", + "name": "value", "type": "uint256" } ], - "stateMutability": "view", - "type": "function" + "name": "Transfer", + "type": "event" }, { "inputs": [ { "internalType": "address", - "name": "_account", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", "type": "address" } ], - "name": "grantAccess", - "outputs": [], - "stateMutability": "nonpayable", + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", "type": "function" }, { "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, { "internalType": "address", - "name": "account", + "name": "spender", "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" } ], - "name": "grantRole", - "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, { "internalType": "address", "name": "account", "type": "address" } ], - "name": "hasRole", + "name": "balanceOf", "outputs": [ { - "internalType": "bool", + "internalType": "uint256", "name": "", - "type": "bool" + "type": "uint256" } ], "stateMutability": "view", @@ -53659,29 +90837,29 @@ { "inputs": [ { - "internalType": "uint256", - "name": "_vaultId", - "type": "uint256" + "internalType": "address", + "name": "_account", + "type": "address" }, { "internalType": "uint256", - "name": "_maxTCAP", + "name": "_amount", "type": "uint256" } ], - "name": "liquidateVault", + "name": "burn", "outputs": [], - "stateMutability": "payable", + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], - "name": "liquidationPenalty", + "name": "decimals", "outputs": [ { - "internalType": "uint256", + "internalType": "uint8", "name": "", - "type": "uint256" + "type": "uint8" } ], "stateMutability": "view", @@ -53689,57 +90867,78 @@ }, { "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, { "internalType": "uint256", - "name": "_vaultId", + "name": "subtractedValue", "type": "uint256" } ], - "name": "liquidationReward", + "name": "decreaseAllowance", "outputs": [ { - "internalType": "uint256", - "name": "rewardCollateral", - "type": "uint256" + "internalType": "bool", + "name": "", + "type": "bool" } ], - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, { "internalType": "uint256", - "name": "_amount", + "name": "addedValue", "type": "uint256" } ], - "name": "mint", - "outputs": [], + "name": "increaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [], - "name": "oracleDigits", - "outputs": [ + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + }, { "internalType": "uint256", - "name": "", + "name": "_amount", "type": "uint256" } ], - "stateMutability": "view", + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], - "name": "owner", + "name": "name", "outputs": [ { - "internalType": "address", + "internalType": "string", "name": "", - "type": "address" + "type": "string" } ], "stateMutability": "view", @@ -53747,19 +90946,12 @@ }, { "inputs": [], - "name": "pause", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "paused", + "name": "symbol", "outputs": [ { - "internalType": "bool", + "internalType": "string", "name": "", - "type": "bool" + "type": "string" } ], "stateMutability": "view", @@ -53767,7 +90959,7 @@ }, { "inputs": [], - "name": "ratio", + "name": "totalSupply", "outputs": [ { "internalType": "uint256", @@ -53782,72 +90974,151 @@ "inputs": [ { "internalType": "address", - "name": "_tokenAddress", + "name": "recipient", "type": "address" }, { "internalType": "uint256", - "name": "_tokenAmount", + "name": "amount", "type": "uint256" } ], - "name": "recoverERC20", - "outputs": [], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, { "internalType": "uint256", - "name": "_amount", + "name": "amount", "type": "uint256" } ], - "name": "removeCollateral", - "outputs": [], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], "stateMutability": "nonpayable", "type": "function" - }, + } + ] + }, + "AggregatorInterfaceTCAP": { + "address": "0xC0db3e1b05Ed411138508855cE45c86B07D12c20", + "abi": [ { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "int256", + "name": "current", + "type": "int256" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "roundId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "name": "AnswerUpdated", + "type": "event" }, { + "anonymous": false, "inputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" + "indexed": true, + "internalType": "uint256", + "name": "roundId", + "type": "uint256" }, { + "indexed": true, "internalType": "address", - "name": "account", + "name": "startedBy", "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "startedAt", + "type": "uint256" } ], - "name": "renounceRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "name": "NewRound", + "type": "event" }, { - "inputs": [ + "inputs": [], + "name": "latestAnswer", + "outputs": [ { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" + "internalType": "int256", + "name": "", + "type": "int256" } ], - "name": "requiredCollateral", + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "latestRoundData", "outputs": [ + { + "internalType": "uint80", + "name": "", + "type": "uint80" + }, + { + "internalType": "int256", + "name": "", + "type": "int256" + }, { "internalType": "uint256", - "name": "collateral", + "name": "", "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint80", + "name": "", + "type": "uint80" } ], "stateMutability": "view", @@ -53856,48 +91127,95 @@ { "inputs": [ { - "internalType": "uint256", - "name": "_vaultId", - "type": "uint256" + "internalType": "int256", + "name": "_tcap", + "type": "int256" } ], - "name": "requiredLiquidationTCAP", - "outputs": [ + "name": "setLatestAnswer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ] + }, + "DAI": { + "address": "0xb89c4c3ED0C6CA1C6a522CD2ddE9B197D4142Fe2", + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, "internalType": "uint256", - "name": "amount", + "name": "value", "type": "uint256" } ], - "stateMutability": "view", - "type": "function" + "name": "Approval", + "type": "event" }, { + "anonymous": false, "inputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" }, { + "indexed": true, "internalType": "address", - "name": "account", + "name": "to", "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" } ], - "name": "revokeRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "name": "Transfer", + "type": "event" }, { - "inputs": [], - "name": "rewardHandler", + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", "outputs": [ { - "internalType": "contract IRewardHandler", + "internalType": "uint256", "name": "", - "type": "address" + "type": "uint256" } ], "stateMutability": "view", @@ -53905,65 +91223,92 @@ }, { "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, { "internalType": "uint256", - "name": "_burnFee", + "name": "amount", "type": "uint256" } ], - "name": "setBurnFee", - "outputs": [], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ { "internalType": "uint256", - "name": "_liquidationPenalty", + "name": "", "type": "uint256" } ], - "name": "setLiquidationPenalty", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + }, { "internalType": "uint256", - "name": "_ratio", + "name": "_amount", "type": "uint256" } ], - "name": "setRatio", + "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [ + "inputs": [], + "name": "decimals", + "outputs": [ { - "internalType": "address", - "name": "_treasury", - "type": "address" + "internalType": "uint8", + "name": "", + "type": "uint8" } ], - "name": "setTreasury", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "inputs": [ { - "internalType": "bytes4", - "name": "_interfaceId", - "type": "bytes4" + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "subtractedValue", + "type": "uint256" } ], - "name": "supportsInterface", + "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", @@ -53971,43 +91316,59 @@ "type": "bool" } ], - "stateMutability": "pure", + "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [], - "name": "tcapOracle", + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "addedValue", + "type": "uint256" + } + ], + "name": "increaseAllowance", "outputs": [ { - "internalType": "contract ChainlinkOracle", + "internalType": "bool", "name": "", - "type": "address" + "type": "bool" } ], - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", - "name": "newOwner", + "name": "_account", "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" } ], - "name": "transferOwnership", + "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], - "name": "treasury", + "name": "name", "outputs": [ { - "internalType": "address", + "internalType": "string", "name": "", - "type": "address" + "type": "string" } ], "stateMutability": "view", @@ -54015,20 +91376,20 @@ }, { "inputs": [], - "name": "unpause", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ + "name": "symbol", + "outputs": [ { - "internalType": "address", + "internalType": "string", "name": "", - "type": "address" + "type": "string" } ], - "name": "userToVault", + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", "outputs": [ { "internalType": "uint256", @@ -54041,42 +91402,61 @@ }, { "inputs": [ + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, { "internalType": "uint256", - "name": "", + "name": "amount", "type": "uint256" } ], - "name": "vaults", + "name": "transfer", "outputs": [ { - "internalType": "uint256", - "name": "Id", - "type": "uint256" + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" }, { - "internalType": "uint256", - "name": "Collateral", - "type": "uint256" + "internalType": "address", + "name": "recipient", + "type": "address" }, { "internalType": "uint256", - "name": "Debt", + "name": "amount", "type": "uint256" - }, + } + ], + "name": "transferFrom", + "outputs": [ { - "internalType": "address", - "name": "Owner", - "type": "address" + "internalType": "bool", + "name": "", + "type": "bool" } ], - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function" } ] }, - "MATICOracle": { - "address": "0x5717DC7Cc0489dCc00316bcDB7e752aec664673e", + "DAIOracle": { + "address": "0xA3B91D3B4BC1896D7E95A04D1616BA4a7c0349d5", "abi": [ { "inputs": [ @@ -54084,6 +91464,11 @@ "internalType": "address", "name": "_aggregator", "type": "address" + }, + { + "internalType": "address", + "name": "_timelock", + "type": "address" } ], "stateMutability": "nonpayable", @@ -54311,8 +91696,8 @@ } ] }, - "MATICVaultHandler": { - "address": "0xEecF07643384C689C7AB804887ef2187cE75D5Ec", + "DAIVaultHandler": { + "address": "0x79F6483Cb8003d32a1e69a6857c3043035451120", "abi": [ { "inputs": [ @@ -54363,7 +91748,7 @@ }, { "internalType": "address", - "name": "_maticOracle", + "name": "_ethOracle", "type": "address" }, { @@ -54823,19 +92208,6 @@ "stateMutability": "view", "type": "function" }, - { - "inputs": [], - "name": "VAULT_ROLE", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, { "inputs": [ { @@ -54849,13 +92221,6 @@ "stateMutability": "nonpayable", "type": "function" }, - { - "inputs": [], - "name": "addCollateralMATIC", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, { "inputs": [ { @@ -55094,19 +92459,6 @@ "stateMutability": "view", "type": "function" }, - { - "inputs": [ - { - "internalType": "address", - "name": "_account", - "type": "address" - } - ], - "name": "grantAccess", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, { "inputs": [ { @@ -55302,19 +92654,6 @@ "stateMutability": "nonpayable", "type": "function" }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - } - ], - "name": "removeCollateralMATIC", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, { "inputs": [], "name": "renounceOwnership", @@ -55556,58 +92895,465 @@ "name": "vaults", "outputs": [ { - "internalType": "uint256", - "name": "Id", - "type": "uint256" + "internalType": "uint256", + "name": "Id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "Collateral", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "Debt", + "type": "uint256" + }, + { + "internalType": "address", + "name": "Owner", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + } + ] + }, + "LINK": { + "address": "0x98AFDDE512D8F2095f0A102F5AE9E0272615a06f", + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "addedValue", + "type": "uint256" + } + ], + "name": "increaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ] + }, + "MATICVaultHandler": { + "address": "0xE73C153535eb006B299c15729f67daEBC47B89A6", + "abi": [ + { + "inputs": [ + { + "internalType": "contract Orchestrator", + "name": "_orchestrator", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_divisor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_ratio", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_burnFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_liquidationPenalty", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_tcapOracle", + "type": "address" + }, + { + "internalType": "contract TCAP", + "name": "_tcapAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_collateralAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_collateralOracle", + "type": "address" + }, + { + "internalType": "address", + "name": "_maticOracle", + "type": "address" + }, + { + "internalType": "address", + "name": "_rewardHandler", + "type": "address" + }, + { + "internalType": "address", + "name": "_treasury", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" }, { + "indexed": true, "internalType": "uint256", - "name": "Collateral", + "name": "_id", "type": "uint256" }, { + "indexed": false, "internalType": "uint256", - "name": "Debt", + "name": "_amount", "type": "uint256" - }, - { - "internalType": "address", - "name": "Owner", - "type": "address" } ], - "stateMutability": "view", - "type": "function" + "name": "CollateralAdded", + "type": "event" }, { - "stateMutability": "payable", - "type": "receive" - } - ] - }, - "WETHRewardHandler": { - "address": "0x39347a6328e1D4601A389d4dB0B26aC305886fb0", - "abi": [ - { + "anonymous": false, "inputs": [ { + "indexed": true, "internalType": "address", "name": "_owner", "type": "address" }, { - "internalType": "address", - "name": "_rewardsToken", - "type": "address" + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" }, { - "internalType": "address", - "name": "_vault", - "type": "address" + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" } ], - "stateMutability": "nonpayable", - "type": "constructor" + "name": "CollateralRemoved", + "type": "event" }, { "anonymous": false, @@ -55615,62 +93361,74 @@ { "indexed": true, "internalType": "address", - "name": "previousOwner", + "name": "_owner", "type": "address" }, { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" + "indexed": false, + "internalType": "uint256", + "name": "_burnFee", + "type": "uint256" } ], - "name": "OwnershipTransferred", + "name": "NewBurnFee", "type": "event" }, { "anonymous": false, "inputs": [ { - "indexed": false, + "indexed": true, "internalType": "address", - "name": "account", + "name": "_owner", "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_liquidationPenalty", + "type": "uint256" } ], - "name": "Paused", + "name": "NewLiquidationPenalty", "type": "event" }, { "anonymous": false, "inputs": [ { - "indexed": false, + "indexed": true, "internalType": "address", - "name": "token", + "name": "_owner", "type": "address" }, { "indexed": false, "internalType": "uint256", - "name": "amount", + "name": "_ratio", "type": "uint256" } ], - "name": "Recovered", + "name": "NewRatio", "type": "event" }, { "anonymous": false, "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, { "indexed": false, - "internalType": "uint256", - "name": "reward", - "type": "uint256" + "internalType": "address", + "name": "_tresury", + "type": "address" } ], - "name": "RewardAdded", + "name": "NewTreasury", "type": "event" }, { @@ -55679,30 +93437,49 @@ { "indexed": true, "internalType": "address", - "name": "user", + "name": "previousOwner", "type": "address" }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ { "indexed": false, - "internalType": "uint256", - "name": "reward", - "type": "uint256" + "internalType": "address", + "name": "account", + "type": "address" } ], - "name": "RewardPaid", + "name": "Paused", "type": "event" }, { "anonymous": false, "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_token", + "type": "address" + }, { "indexed": false, "internalType": "uint256", - "name": "newDuration", + "name": "_amount", "type": "uint256" } ], - "name": "RewardsDurationUpdated", + "name": "Recovered", "type": "event" }, { @@ -55786,323 +93563,121 @@ { "indexed": true, "internalType": "address", - "name": "user", + "name": "_owner", "type": "address" }, { - "indexed": false, + "indexed": true, "internalType": "uint256", - "name": "amount", + "name": "_id", "type": "uint256" - } - ], - "name": "Staked", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "Unpaused", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" }, { "indexed": false, "internalType": "uint256", - "name": "amount", + "name": "_amount", "type": "uint256" } ], - "name": "Withdrawn", + "name": "TokensBurned", "type": "event" }, { - "inputs": [], - "name": "DEFAULT_ADMIN_ROLE", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { + "anonymous": false, "inputs": [ { + "indexed": true, "internalType": "address", - "name": "_account", + "name": "_owner", "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ + }, { + "indexed": true, "internalType": "uint256", - "name": "", + "name": "_id", "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_account", - "type": "address" - } - ], - "name": "earned", - "outputs": [ + }, { + "indexed": false, "internalType": "uint256", - "name": "", + "name": "_amount", "type": "uint256" } ], - "stateMutability": "view", - "type": "function" + "name": "TokensMinted", + "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": false, "internalType": "address", - "name": "_staker", + "name": "account", "type": "address" } ], - "name": "exit", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "getReward", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "getRewardForDuration", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" + "name": "Unpaused", + "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": true, "internalType": "address", - "name": "_staker", + "name": "_owner", "type": "address" - } - ], - "name": "getRewardFromVault", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "getRoleAdmin", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" }, { + "indexed": true, "internalType": "uint256", - "name": "index", + "name": "_id", "type": "uint256" } ], - "name": "getRoleMember", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" + "name": "VaultCreated", + "type": "event" }, { + "anonymous": false, "inputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "getRoleMemberCount", - "outputs": [ - { + "indexed": true, "internalType": "uint256", - "name": "", + "name": "_vaultId", "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" }, { + "indexed": true, "internalType": "address", - "name": "account", + "name": "_liquidator", "type": "address" - } - ], - "name": "grantRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" }, { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "hasRole", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "lastTimeRewardApplicable", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "lastUpdateTime", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { + "indexed": false, "internalType": "uint256", - "name": "_a", + "name": "_liquidationCollateral", "type": "uint256" }, { - "internalType": "uint256", - "name": "_b", - "type": "uint256" - } - ], - "name": "min", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { + "indexed": false, "internalType": "uint256", "name": "_reward", "type": "uint256" } ], - "name": "notifyRewardAmount", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "name": "VaultLiquidated", + "type": "event" }, { "inputs": [], - "name": "owner", + "name": "DEFAULT_ADMIN_ROLE", "outputs": [ { - "internalType": "address", + "internalType": "bytes32", "name": "", - "type": "address" + "type": "bytes32" } ], "stateMutability": "view", @@ -56110,12 +93685,12 @@ }, { "inputs": [], - "name": "paused", + "name": "ETHPriceOracle", "outputs": [ { - "internalType": "bool", + "internalType": "contract ChainlinkOracle", "name": "", - "type": "bool" + "type": "address" } ], "stateMutability": "view", @@ -56123,7 +93698,7 @@ }, { "inputs": [], - "name": "periodFinish", + "name": "MAX_FEE", "outputs": [ { "internalType": "uint256", @@ -56134,70 +93709,9 @@ "stateMutability": "view", "type": "function" }, - { - "inputs": [ - { - "internalType": "address", - "name": "_tokenAddress", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_tokenAmount", - "type": "uint256" - } - ], - "name": "recoverERC20", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "renounceRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "revokeRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, { "inputs": [], - "name": "rewardPerToken", + "name": "MIN_RATIO", "outputs": [ { "internalType": "uint256", @@ -56210,11 +93724,11 @@ }, { "inputs": [], - "name": "rewardPerTokenStored", + "name": "TCAPPrice", "outputs": [ { "internalType": "uint256", - "name": "", + "name": "price", "type": "uint256" } ], @@ -56223,12 +93737,12 @@ }, { "inputs": [], - "name": "rewardRate", + "name": "TCAPToken", "outputs": [ { - "internalType": "uint256", + "internalType": "contract TCAP", "name": "", - "type": "uint256" + "type": "address" } ], "stateMutability": "view", @@ -56237,25 +93751,39 @@ { "inputs": [ { - "internalType": "address", - "name": "", - "type": "address" + "internalType": "uint256", + "name": "_amount", + "type": "uint256" } ], - "name": "rewards", - "outputs": [ + "name": "addCollateral", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "addCollateralMATIC", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ { "internalType": "uint256", - "name": "", + "name": "_amount", "type": "uint256" } ], - "stateMutability": "view", + "name": "burn", + "outputs": [], + "stateMutability": "payable", "type": "function" }, { "inputs": [], - "name": "rewardsDuration", + "name": "burnFee", "outputs": [ { "internalType": "uint256", @@ -56268,7 +93796,7 @@ }, { "inputs": [], - "name": "rewardsToken", + "name": "collateralContract", "outputs": [ { "internalType": "contract IERC20", @@ -56280,39 +93808,41 @@ "type": "function" }, { - "inputs": [ + "inputs": [], + "name": "collateralPriceOracle", + "outputs": [ { - "internalType": "uint256", - "name": "_rewardsDuration", - "type": "uint256" + "internalType": "contract ChainlinkOracle", + "name": "", + "type": "address" } ], - "name": "setRewardsDuration", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { - "inputs": [ - { - "internalType": "address", - "name": "_staker", - "type": "address" - }, + "inputs": [], + "name": "counter", + "outputs": [ { "internalType": "uint256", - "name": "_amount", + "name": "_value", "type": "uint256" } ], - "name": "stake", + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "createVault", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], - "name": "totalSupply", + "name": "divisor", "outputs": [ { "internalType": "uint256", @@ -56326,29 +93856,35 @@ { "inputs": [ { - "internalType": "address", - "name": "newOwner", - "type": "address" + "internalType": "uint256", + "name": "_amount", + "type": "uint256" } ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", + "name": "getFee", + "outputs": [ + { + "internalType": "uint256", + "name": "fee", + "type": "uint256" + } + ], + "stateMutability": "view", "type": "function" }, { "inputs": [ { - "internalType": "address", - "name": "", + "internalType": "contract ChainlinkOracle", + "name": "_oracle", "type": "address" } ], - "name": "userRewardPerTokenPaid", + "name": "getOraclePrice", "outputs": [ { "internalType": "uint256", - "name": "", + "name": "price", "type": "uint256" } ], @@ -56356,13 +93892,19 @@ "type": "function" }, { - "inputs": [], - "name": "vault", + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", "outputs": [ { - "internalType": "address", + "internalType": "bytes32", "name": "", - "type": "address" + "type": "bytes32" } ], "stateMutability": "view", @@ -56371,138 +93913,113 @@ { "inputs": [ { - "internalType": "address", - "name": "_staker", - "type": "address" + "internalType": "bytes32", + "name": "role", + "type": "bytes32" }, { "internalType": "uint256", - "name": "_amount", + "name": "index", "type": "uint256" } ], - "name": "withdraw", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ] - }, - "Orchestrator": { - "address": "0x8364072aD72bf4E8Ad56Ea22e7c85533C4FbaAf1", - "abi": [ - { - "inputs": [ + "name": "getRoleMember", + "outputs": [ { "internalType": "address", - "name": "_guardian", + "name": "", "type": "address" } ], - "stateMutability": "nonpayable", - "type": "constructor" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "address", - "name": "_owner", - "type": "address" - }, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleMemberCount", + "outputs": [ { - "indexed": false, - "internalType": "address", - "name": "guardian", - "type": "address" + "internalType": "uint256", + "name": "", + "type": "uint256" } ], - "name": "GuardianSet", - "type": "event" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" + "internalType": "uint256", + "name": "_id", + "type": "uint256" } ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ + "name": "getVault", + "outputs": [ { - "indexed": true, - "internalType": "address", - "name": "target", - "type": "address" + "internalType": "uint256", + "name": "", + "type": "uint256" }, { - "indexed": false, "internalType": "uint256", - "name": "value", + "name": "", "type": "uint256" }, { - "indexed": false, - "internalType": "string", - "name": "signature", - "type": "string" + "internalType": "address", + "name": "", + "type": "address" }, { - "indexed": false, - "internalType": "bytes", - "name": "data", - "type": "bytes" + "internalType": "uint256", + "name": "", + "type": "uint256" } ], - "name": "TransactionExecuted", - "type": "event" + "stateMutability": "view", + "type": "function" }, { "inputs": [ { - "internalType": "contract TCAP", - "name": "_tcap", - "type": "address" - }, + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + } + ], + "name": "getVaultRatio", + "outputs": [ { - "internalType": "contract IVaultHandler", - "name": "_vault", - "type": "address" + "internalType": "uint256", + "name": "currentRatio", + "type": "uint256" } ], - "name": "addTCAPVault", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "inputs": [ { - "internalType": "contract TCAP", - "name": "_tcap", - "type": "address" + "internalType": "bytes32", + "name": "role", + "type": "bytes32" }, { - "internalType": "bool", - "name": "_enable", - "type": "bool" + "internalType": "address", + "name": "account", + "type": "address" } ], - "name": "enableTCAPCap", + "name": "grantRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" @@ -56510,58 +94027,53 @@ { "inputs": [ { - "internalType": "address", - "name": "target", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "string", - "name": "signature", - "type": "string" + "internalType": "bytes32", + "name": "role", + "type": "bytes32" }, { - "internalType": "bytes", - "name": "data", - "type": "bytes" + "internalType": "address", + "name": "account", + "type": "address" } ], - "name": "executeTransaction", + "name": "hasRole", "outputs": [ { - "internalType": "bytes", + "internalType": "bool", "name": "", - "type": "bytes" + "type": "bool" } ], - "stateMutability": "payable", + "stateMutability": "view", "type": "function" }, { - "inputs": [], - "name": "guardian", - "outputs": [ + "inputs": [ { - "internalType": "address", - "name": "", - "type": "address" + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_maxTCAP", + "type": "uint256" } ], - "stateMutability": "view", + "name": "liquidateVault", + "outputs": [], + "stateMutability": "payable", "type": "function" }, { "inputs": [], - "name": "owner", + "name": "liquidationPenalty", "outputs": [ { - "internalType": "address", + "internalType": "uint256", "name": "", - "type": "address" + "type": "uint256" } ], "stateMutability": "view", @@ -56570,161 +94082,121 @@ { "inputs": [ { - "internalType": "contract IVaultHandler", - "name": "_vault", - "type": "address" + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" } ], - "name": "pauseVault", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract TCAP", - "name": "_tcap", - "type": "address" - }, + "name": "liquidationReward", + "outputs": [ { - "internalType": "contract IVaultHandler", - "name": "_vault", - "type": "address" + "internalType": "uint256", + "name": "rewardCollateral", + "type": "uint256" } ], - "name": "removeTCAPVault", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "inputs": [ { - "internalType": "address", - "name": "_to", - "type": "address" + "internalType": "uint256", + "name": "_amount", + "type": "uint256" } ], - "name": "retrieveETH", + "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [ - { - "internalType": "contract IVaultHandler", - "name": "_vault", - "type": "address" - }, + "inputs": [], + "name": "oracleDigits", + "outputs": [ { "internalType": "uint256", - "name": "_burnFee", + "name": "", "type": "uint256" } ], - "name": "setBurnFee", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { - "inputs": [ + "inputs": [], + "name": "owner", + "outputs": [ { - "internalType": "contract IVaultHandler", - "name": "_vault", + "internalType": "address", + "name": "", "type": "address" } ], - "name": "setEmergencyBurnFee", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { - "inputs": [ - { - "internalType": "contract IVaultHandler", - "name": "_vault", - "type": "address" - } - ], - "name": "setEmergencyLiquidationPenalty", + "inputs": [], + "name": "pause", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [ + "inputs": [], + "name": "paused", + "outputs": [ { - "internalType": "address", - "name": "_guardian", - "type": "address" + "internalType": "bool", + "name": "", + "type": "bool" } ], - "name": "setGuardian", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { - "inputs": [ - { - "internalType": "contract IVaultHandler", - "name": "_vault", - "type": "address" - }, + "inputs": [], + "name": "ratio", + "outputs": [ { "internalType": "uint256", - "name": "_liquidationPenalty", + "name": "", "type": "uint256" } ], - "name": "setLiquidationPenalty", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "inputs": [ { - "internalType": "contract IVaultHandler", - "name": "_vault", + "internalType": "address", + "name": "_tokenAddress", "type": "address" }, { "internalType": "uint256", - "name": "_ratio", + "name": "_tokenAmount", "type": "uint256" } ], - "name": "setRatio", + "name": "recoverERC20", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ - { - "internalType": "contract TCAP", - "name": "_tcap", - "type": "address" - }, { "internalType": "uint256", - "name": "_cap", + "name": "_amount", "type": "uint256" } ], - "name": "setTCAPCap", + "name": "removeCollateral", "outputs": [], "stateMutability": "nonpayable", "type": "function" @@ -56732,126 +94204,54 @@ { "inputs": [ { - "internalType": "address", - "name": "newOwner", - "type": "address" + "internalType": "uint256", + "name": "_amount", + "type": "uint256" } ], - "name": "transferOwnership", + "name": "removeCollateralMATIC", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [ - { - "internalType": "contract IVaultHandler", - "name": "_vault", - "type": "address" - } - ], - "name": "unpauseVault", + "inputs": [], + "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, - { - "stateMutability": "payable", - "type": "receive" - } - ] - }, - "LinkOracle": { - "address": "0xEecF07643384C689C7AB804887ef2187cE75D5Ec", - "abi": [ { "inputs": [ { - "internalType": "address", - "name": "_aggregator", - "type": "address" + "internalType": "bytes32", + "name": "role", + "type": "bytes32" }, { "internalType": "address", - "name": "_timelock", + "name": "account", "type": "address" } ], + "name": "renounceRole", + "outputs": [], "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "inputs": [], - "name": "getLatestAnswer", - "outputs": [ - { - "internalType": "int256", - "name": "", - "type": "int256" - } - ], - "stateMutability": "view", "type": "function" }, { - "inputs": [], - "name": "getLatestRound", - "outputs": [ - { - "internalType": "uint80", - "name": "", - "type": "uint80" - }, - { - "internalType": "int256", - "name": "", - "type": "int256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, + "inputs": [ { "internalType": "uint256", - "name": "", + "name": "_amount", "type": "uint256" - }, - { - "internalType": "uint80", - "name": "", - "type": "uint80" } ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getLatestTimestamp", + "name": "requiredCollateral", "outputs": [ { "internalType": "uint256", - "name": "", + "name": "collateral", "type": "uint256" } ], @@ -56861,17 +94261,17 @@ { "inputs": [ { - "internalType": "uint80", - "name": "_id", - "type": "uint80" + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" } ], - "name": "getPreviousAnswer", + "name": "requiredLiquidationTCAP", "outputs": [ { - "internalType": "int256", - "name": "", - "type": "int256" + "internalType": "uint256", + "name": "amount", + "type": "uint256" } ], "stateMutability": "view", @@ -56880,17 +94280,29 @@ { "inputs": [ { - "internalType": "uint80", - "name": "_id", - "type": "uint80" + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" } ], - "name": "getPreviousTimestamp", + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "rewardHandler", "outputs": [ { - "internalType": "uint256", + "internalType": "contract IRewardHandler", "name": "", - "type": "uint256" + "type": "address" } ], "stateMutability": "view", @@ -56898,59 +94310,39 @@ }, { "inputs": [ - { - "internalType": "uint80", - "name": "_id", - "type": "uint80" - } - ], - "name": "getRound", - "outputs": [ - { - "internalType": "uint80", - "name": "", - "type": "uint80" - }, - { - "internalType": "int256", - "name": "", - "type": "int256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, { "internalType": "uint256", - "name": "", + "name": "_burnFee", "type": "uint256" - }, - { - "internalType": "uint80", - "name": "", - "type": "uint80" } ], - "stateMutability": "view", + "name": "setBurnFee", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [], - "name": "owner", - "outputs": [ + "inputs": [ { - "internalType": "address", - "name": "", - "type": "address" + "internalType": "uint256", + "name": "_liquidationPenalty", + "type": "uint256" } ], - "stateMutability": "view", + "name": "setLiquidationPenalty", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [], - "name": "renounceOwnership", + "inputs": [ + { + "internalType": "uint256", + "name": "_ratio", + "type": "uint256" + } + ], + "name": "setRatio", "outputs": [], "stateMutability": "nonpayable", "type": "function" @@ -56959,11 +94351,11 @@ "inputs": [ { "internalType": "address", - "name": "_aggregator", + "name": "_treasury", "type": "address" } ], - "name": "setReferenceContract", + "name": "setTreasury", "outputs": [], "stateMutability": "nonpayable", "type": "function" @@ -56972,7 +94364,7 @@ "inputs": [ { "internalType": "bytes4", - "name": "interfaceId", + "name": "_interfaceId", "type": "bytes4" } ], @@ -56987,6 +94379,19 @@ "stateMutability": "pure", "type": "function" }, + { + "inputs": [], + "name": "tcapOracle", + "outputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -56999,72 +94404,99 @@ "outputs": [], "stateMutability": "nonpayable", "type": "function" - } - ] - }, - "LinkVaultHandler": { - "address": "0xBd4a21cC2D12157765a8861A83FC4cfd216630b1", - "abi": [ + }, + { + "inputs": [], + "name": "treasury", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "unpause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [ { - "internalType": "contract Orchestrator", - "name": "_orchestrator", + "internalType": "address", + "name": "", "type": "address" - }, + } + ], + "name": "userToVault", + "outputs": [ { "internalType": "uint256", - "name": "_divisor", + "name": "", "type": "uint256" - }, + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ { "internalType": "uint256", - "name": "_ratio", + "name": "", "type": "uint256" - }, + } + ], + "name": "vaults", + "outputs": [ { "internalType": "uint256", - "name": "_burnFee", + "name": "Id", "type": "uint256" }, { "internalType": "uint256", - "name": "_liquidationPenalty", + "name": "Collateral", "type": "uint256" }, { - "internalType": "address", - "name": "_tcapOracle", - "type": "address" - }, - { - "internalType": "contract TCAP", - "name": "_tcapAddress", - "type": "address" - }, - { - "internalType": "address", - "name": "_collateralAddress", - "type": "address" - }, - { - "internalType": "address", - "name": "_collateralOracle", - "type": "address" + "internalType": "uint256", + "name": "Debt", + "type": "uint256" }, { "internalType": "address", - "name": "_ethOracle", + "name": "Owner", "type": "address" - }, + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "stateMutability": "payable", + "type": "receive" + } + ] + }, + "PolygonL2Messenger": { + "address": "0xf6252af194093adDbD03442D7dA186b8d272F296", + "abi": [ + { + "inputs": [ { "internalType": "address", - "name": "_rewardHandler", + "name": "_fxRootSender", "type": "address" }, { "internalType": "address", - "name": "_treasury", + "name": "_fxChild", "type": "address" } ], @@ -57075,252 +94507,203 @@ "anonymous": false, "inputs": [ { - "indexed": true, + "indexed": false, "internalType": "address", - "name": "_owner", + "name": "previousFxChild", "type": "address" }, - { - "indexed": true, - "internalType": "uint256", - "name": "_id", - "type": "uint256" - }, { "indexed": false, - "internalType": "uint256", - "name": "_amount", - "type": "uint256" + "internalType": "address", + "name": "newFxChild", + "type": "address" } ], - "name": "CollateralAdded", + "name": "FxChildUpdate", "type": "event" }, { "anonymous": false, "inputs": [ { - "indexed": true, + "indexed": false, "internalType": "address", - "name": "_owner", + "name": "previousFxRootSender", "type": "address" }, - { - "indexed": true, - "internalType": "uint256", - "name": "_id", - "type": "uint256" - }, { "indexed": false, - "internalType": "uint256", - "name": "_amount", - "type": "uint256" + "internalType": "address", + "name": "newFxRootSender", + "type": "address" } ], - "name": "CollateralRemoved", + "name": "FxRootSenderUpdate", "type": "event" }, { - "anonymous": false, - "inputs": [ + "inputs": [], + "name": "fxChild", + "outputs": [ { - "indexed": true, "internalType": "address", - "name": "_owner", + "name": "", "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_burnFee", - "type": "uint256" } ], - "name": "NewBurnFee", - "type": "event" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, - "inputs": [ + "inputs": [], + "name": "fxRootSender", + "outputs": [ { - "indexed": true, "internalType": "address", - "name": "_owner", + "name": "", "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_liquidationPenalty", - "type": "uint256" } ], - "name": "NewLiquidationPenalty", - "type": "event" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { "internalType": "address", - "name": "_owner", + "name": "rootMessageSender", "type": "address" }, { - "indexed": false, - "internalType": "uint256", - "name": "_ratio", - "type": "uint256" + "internalType": "bytes", + "name": "data", + "type": "bytes" } ], - "name": "NewRatio", - "type": "event" + "name": "processMessageFromRoot", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "address", - "name": "_owner", - "type": "address" - }, - { - "indexed": false, "internalType": "address", - "name": "_tresury", + "name": "_fxChild", "type": "address" } ], - "name": "NewTreasury", - "type": "event" + "name": "updateFxChild", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, "internalType": "address", - "name": "newOwner", + "name": "_fxRootSender", "type": "address" } ], - "name": "OwnershipTransferred", - "type": "event" + "name": "updateFxRootSender", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { - "anonymous": false, - "inputs": [ + "inputs": [], + "name": "xDomainMessageSender", + "outputs": [ { - "indexed": false, "internalType": "address", - "name": "account", + "name": "", "type": "address" } ], - "name": "Paused", - "type": "event" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, - "inputs": [ + "inputs": [], + "name": "xDomainMsgSender", + "outputs": [ { - "indexed": false, "internalType": "address", - "name": "_token", + "name": "", "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_amount", - "type": "uint256" } ], - "name": "Recovered", - "type": "event" - }, + "stateMutability": "view", + "type": "function" + } + ] + }, + "PolygonOrchestrator": { + "address": "0x13fcDc22A2C9E558f21d17B688C38B2B5E2B4eF6", + "abi": [ { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" + "internalType": "address", + "name": "_guardian", + "type": "address" }, { - "indexed": true, - "internalType": "bytes32", - "name": "previousAdminRole", - "type": "bytes32" + "internalType": "address", + "name": "_owner", + "type": "address" }, { - "indexed": true, - "internalType": "bytes32", - "name": "newAdminRole", - "type": "bytes32" + "internalType": "address", + "name": "_polygonMessenger", + "type": "address" } ], - "name": "RoleAdminChanged", - "type": "event" + "stateMutability": "nonpayable", + "type": "constructor" }, { "anonymous": false, "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, { "indexed": true, "internalType": "address", - "name": "account", + "name": "_owner", "type": "address" }, { - "indexed": true, + "indexed": false, "internalType": "address", - "name": "sender", + "name": "guardian", "type": "address" } ], - "name": "RoleGranted", + "name": "GuardianSet", "type": "event" }, { "anonymous": false, "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, { "indexed": true, "internalType": "address", - "name": "account", + "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", - "name": "sender", + "name": "newOwner", "type": "address" } ], - "name": "RoleRevoked", + "name": "OwnershipTransferred", "type": "event" }, { @@ -57329,132 +94712,126 @@ { "indexed": true, "internalType": "address", - "name": "_owner", + "name": "target", "type": "address" }, { - "indexed": true, + "indexed": false, "internalType": "uint256", - "name": "_id", + "name": "value", "type": "uint256" }, { "indexed": false, - "internalType": "uint256", - "name": "_amount", - "type": "uint256" + "internalType": "string", + "name": "signature", + "type": "string" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "data", + "type": "bytes" } ], - "name": "TokensBurned", + "name": "TransactionExecuted", "type": "event" }, { "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "address", - "name": "_owner", + "indexed": false, + "internalType": "contract PolygonL2Messenger", + "name": "oldPolygonMessenger", "type": "address" }, - { - "indexed": true, - "internalType": "uint256", - "name": "_id", - "type": "uint256" - }, { "indexed": false, - "internalType": "uint256", - "name": "_amount", - "type": "uint256" + "internalType": "contract PolygonL2Messenger", + "name": "newPolygonMessenger", + "type": "address" } ], - "name": "TokensMinted", + "name": "UpdatedPolygonMessenger", "type": "event" }, { - "anonymous": false, "inputs": [ { - "indexed": false, - "internalType": "address", - "name": "account", + "internalType": "contract TCAP", + "name": "_tcap", + "type": "address" + }, + { + "internalType": "contract IVaultHandler", + "name": "_vault", "type": "address" } ], - "name": "Unpaused", - "type": "event" + "name": "addTCAPVault", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "address", - "name": "_owner", + "internalType": "contract TCAP", + "name": "_tcap", "type": "address" }, { - "indexed": true, - "internalType": "uint256", - "name": "_id", - "type": "uint256" + "internalType": "bool", + "name": "_enable", + "type": "bool" } ], - "name": "VaultCreated", - "type": "event" + "name": "enableTCAPCap", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "uint256", - "name": "_vaultId", - "type": "uint256" - }, - { - "indexed": true, "internalType": "address", - "name": "_liquidator", + "name": "target", "type": "address" }, { - "indexed": false, "internalType": "uint256", - "name": "_liquidationCollateral", + "name": "value", "type": "uint256" }, { - "indexed": false, - "internalType": "uint256", - "name": "_reward", - "type": "uint256" - } - ], - "name": "VaultLiquidated", - "type": "event" - }, - { - "inputs": [], - "name": "DEFAULT_ADMIN_ROLE", + "internalType": "string", + "name": "signature", + "type": "string" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "executeTransaction", "outputs": [ { - "internalType": "bytes32", + "internalType": "bytes", "name": "", - "type": "bytes32" + "type": "bytes" } ], - "stateMutability": "view", + "stateMutability": "payable", "type": "function" }, { "inputs": [], - "name": "ETHPriceOracle", + "name": "guardian", "outputs": [ { - "internalType": "contract ChainlinkOracle", + "internalType": "address", "name": "", "type": "address" } @@ -57464,523 +94841,620 @@ }, { "inputs": [], - "name": "MAX_FEE", + "name": "owner", "outputs": [ { - "internalType": "uint256", + "internalType": "address", "name": "", - "type": "uint256" + "type": "address" } ], "stateMutability": "view", "type": "function" }, { - "inputs": [], - "name": "MIN_RATIO", - "outputs": [ + "inputs": [ { - "internalType": "uint256", - "name": "", - "type": "uint256" + "internalType": "contract IVaultHandler", + "name": "_vault", + "type": "address" } ], - "stateMutability": "view", + "name": "pauseVault", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], - "name": "TCAPPrice", + "name": "polygonMessenger", "outputs": [ { - "internalType": "uint256", - "name": "price", - "type": "uint256" + "internalType": "contract PolygonL2Messenger", + "name": "", + "type": "address" } ], "stateMutability": "view", "type": "function" }, { - "inputs": [], - "name": "TCAPToken", - "outputs": [ + "inputs": [ { "internalType": "contract TCAP", - "name": "", + "name": "_tcap", + "type": "address" + }, + { + "internalType": "contract IVaultHandler", + "name": "_vault", "type": "address" } ], - "stateMutability": "view", + "name": "removeTCAPVault", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" + "internalType": "address", + "name": "_to", + "type": "address" } ], - "name": "addCollateral", + "name": "retrieveETH", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ + { + "internalType": "contract IVaultHandler", + "name": "_vault", + "type": "address" + }, { "internalType": "uint256", - "name": "_amount", + "name": "_burnFee", "type": "uint256" } ], - "name": "burn", + "name": "setBurnFee", "outputs": [], - "stateMutability": "payable", + "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [], - "name": "burnFee", - "outputs": [ + "inputs": [ { - "internalType": "uint256", - "name": "", - "type": "uint256" + "internalType": "contract IVaultHandler", + "name": "_vault", + "type": "address" } ], - "stateMutability": "view", + "name": "setEmergencyBurnFee", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [], - "name": "collateralContract", - "outputs": [ + "inputs": [ { - "internalType": "contract IERC20", - "name": "", + "internalType": "contract IVaultHandler", + "name": "_vault", "type": "address" } ], - "stateMutability": "view", + "name": "setEmergencyLiquidationPenalty", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [], - "name": "collateralPriceOracle", - "outputs": [ + "inputs": [ { - "internalType": "contract ChainlinkOracle", - "name": "", + "internalType": "address", + "name": "_guardian", "type": "address" } ], - "stateMutability": "view", + "name": "setGuardian", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [], - "name": "counter", - "outputs": [ + "inputs": [ + { + "internalType": "contract IVaultHandler", + "name": "_vault", + "type": "address" + }, { "internalType": "uint256", - "name": "_value", + "name": "_liquidationPenalty", "type": "uint256" } ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "createVault", + "name": "setLiquidationPenalty", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [], - "name": "divisor", - "outputs": [ + "inputs": [ + { + "internalType": "contract IVaultHandler", + "name": "_vault", + "type": "address" + }, { "internalType": "uint256", - "name": "", + "name": "_ratio", "type": "uint256" } ], - "stateMutability": "view", + "name": "setRatio", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - } - ], - "name": "getFee", - "outputs": [ + "internalType": "contract TCAP", + "name": "_tcap", + "type": "address" + }, { "internalType": "uint256", - "name": "fee", + "name": "_cap", "type": "uint256" } ], - "stateMutability": "view", + "name": "setTCAPCap", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { - "internalType": "contract ChainlinkOracle", - "name": "_oracle", + "internalType": "address", + "name": "newOwner", "type": "address" } ], - "name": "getOraclePrice", - "outputs": [ - { - "internalType": "uint256", - "name": "price", - "type": "uint256" - } - ], - "stateMutability": "view", + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" + "internalType": "contract IVaultHandler", + "name": "_vault", + "type": "address" } ], - "name": "getRoleAdmin", - "outputs": [ + "name": "unpauseVault", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ { - "internalType": "bytes32", - "name": "", - "type": "bytes32" + "internalType": "address", + "name": "newPolygonMessenger", + "type": "address" } ], - "stateMutability": "view", + "name": "updatePolygonMessenger", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, + { + "stateMutability": "payable", + "type": "receive" + } + ] + }, + "PolygonTreasury": { + "address": "0x4FBbd5A7d387AC4Ed69F784BbEb6387750f94AfC", + "abi": [ { "inputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" + "internalType": "address", + "name": "_owner", + "type": "address" }, { - "internalType": "uint256", - "name": "index", - "type": "uint256" + "internalType": "address", + "name": "_polygonMessenger", + "type": "address" } ], - "name": "getRoleMember", - "outputs": [ + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ { + "indexed": true, "internalType": "address", - "name": "", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", "type": "address" } ], - "stateMutability": "view", - "type": "function" + "name": "OwnershipTransferred", + "type": "event" }, { + "anonymous": false, "inputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "getRoleMemberCount", - "outputs": [ + "indexed": true, + "internalType": "address", + "name": "target", + "type": "address" + }, { + "indexed": false, "internalType": "uint256", - "name": "", + "name": "value", "type": "uint256" + }, + { + "indexed": false, + "internalType": "string", + "name": "signature", + "type": "string" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "data", + "type": "bytes" } ], - "stateMutability": "view", - "type": "function" + "name": "TransactionExecuted", + "type": "event" }, { + "anonymous": false, "inputs": [ { - "internalType": "uint256", - "name": "_id", - "type": "uint256" + "indexed": false, + "internalType": "contract PolygonL2Messenger", + "name": "oldPolygonMessenger", + "type": "address" + }, + { + "indexed": false, + "internalType": "contract PolygonL2Messenger", + "name": "newPolygonMessenger", + "type": "address" } ], - "name": "getVault", - "outputs": [ + "name": "UpdatedPolygonMessenger", + "type": "event" + }, + { + "inputs": [ { - "internalType": "uint256", - "name": "", - "type": "uint256" + "internalType": "address", + "name": "target", + "type": "address" }, { "internalType": "uint256", - "name": "", + "name": "value", "type": "uint256" }, { - "internalType": "address", - "name": "", - "type": "address" + "internalType": "string", + "name": "signature", + "type": "string" }, { - "internalType": "uint256", + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "executeTransaction", + "outputs": [ + { + "internalType": "bytes", "name": "", - "type": "uint256" + "type": "bytes" } ], - "stateMutability": "view", + "stateMutability": "payable", "type": "function" }, { - "inputs": [ + "inputs": [], + "name": "owner", + "outputs": [ { - "internalType": "uint256", - "name": "_vaultId", - "type": "uint256" + "internalType": "address", + "name": "", + "type": "address" } ], - "name": "getVaultRatio", + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "polygonMessenger", "outputs": [ { - "internalType": "uint256", - "name": "currentRatio", - "type": "uint256" + "internalType": "contract PolygonL2Messenger", + "name": "", + "type": "address" } ], "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, { "internalType": "address", - "name": "account", + "name": "_to", "type": "address" } ], - "name": "grantRole", + "name": "retrieveETH", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, { "internalType": "address", - "name": "account", + "name": "newOwner", "type": "address" } ], - "name": "hasRole", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { - "internalType": "uint256", - "name": "_vaultId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_maxTCAP", - "type": "uint256" + "internalType": "address", + "name": "newPolygonMessenger", + "type": "address" } ], - "name": "liquidateVault", + "name": "updatePolygonMessenger", "outputs": [], - "stateMutability": "payable", + "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [], - "name": "liquidationPenalty", - "outputs": [ + "stateMutability": "payable", + "type": "receive" + } + ] + }, + "TCAP": { + "address": "0x10Da9F7b73F98702A2705D0130365d19B7c08557", + "abi": [ + { + "inputs": [ + { + "internalType": "string", + "name": "_name", + "type": "string" + }, + { + "internalType": "string", + "name": "_symbol", + "type": "string" + }, { "internalType": "uint256", - "name": "", + "name": "_cap", "type": "uint256" + }, + { + "internalType": "contract Orchestrator", + "name": "_orchestrator", + "type": "address" } ], - "stateMutability": "view", - "type": "function" + "stateMutability": "nonpayable", + "type": "constructor" }, { + "anonymous": false, "inputs": [ { - "internalType": "uint256", - "name": "_vaultId", - "type": "uint256" - } - ], - "name": "liquidationReward", - "outputs": [ + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, { + "indexed": false, "internalType": "uint256", - "name": "rewardCollateral", + "name": "value", "type": "uint256" } ], - "stateMutability": "view", - "type": "function" + "name": "Approval", + "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, "internalType": "uint256", "name": "_amount", "type": "uint256" } ], - "name": "mint", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "name": "NewCap", + "type": "event" }, { - "inputs": [], - "name": "oracleDigits", - "outputs": [ + "anonymous": false, + "inputs": [ { - "internalType": "uint256", - "name": "", - "type": "uint256" + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "_enable", + "type": "bool" } ], - "stateMutability": "view", - "type": "function" + "name": "NewCapEnabled", + "type": "event" }, { - "inputs": [], - "name": "owner", - "outputs": [ + "anonymous": false, + "inputs": [ { + "indexed": true, "internalType": "address", - "name": "", + "name": "previousOwner", "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "pause", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "paused", - "outputs": [ + }, { - "internalType": "bool", - "name": "", - "type": "bool" + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" } ], - "stateMutability": "view", - "type": "function" + "name": "OwnershipTransferred", + "type": "event" }, { - "inputs": [], - "name": "ratio", - "outputs": [ + "anonymous": false, + "inputs": [ { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, "internalType": "uint256", - "name": "", + "name": "value", "type": "uint256" } ], - "stateMutability": "view", - "type": "function" + "name": "Transfer", + "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": true, "internalType": "address", - "name": "_tokenAddress", + "name": "_owner", "type": "address" }, { - "internalType": "uint256", - "name": "_tokenAmount", - "type": "uint256" + "indexed": true, + "internalType": "address", + "name": "_tokenHandler", + "type": "address" } ], - "name": "recoverERC20", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "name": "VaultHandlerAdded", + "type": "event" }, { + "anonymous": false, "inputs": [ { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "_tokenHandler", + "type": "address" } ], - "name": "removeCollateral", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "name": "VaultHandlerRemoved", + "type": "event" }, { "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, { "internalType": "address", - "name": "account", + "name": "_vaultHandler", "type": "address" } ], - "name": "renounceRole", + "name": "addVaultHandler", "outputs": [], "stateMutability": "nonpayable", "type": "function" @@ -57988,16 +95462,21 @@ { "inputs": [ { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" } ], - "name": "requiredCollateral", + "name": "allowance", "outputs": [ { "internalType": "uint256", - "name": "collateral", + "name": "", "type": "uint256" } ], @@ -58006,49 +95485,42 @@ }, { "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, { "internalType": "uint256", - "name": "_vaultId", + "name": "amount", "type": "uint256" } ], - "name": "requiredLiquidationTCAP", + "name": "approve", "outputs": [ { - "internalType": "uint256", - "name": "amount", - "type": "uint256" + "internalType": "bool", + "name": "", + "type": "bool" } ], - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, { "internalType": "address", "name": "account", "type": "address" } ], - "name": "revokeRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "rewardHandler", + "name": "balanceOf", "outputs": [ { - "internalType": "contract IRewardHandler", + "internalType": "uint256", "name": "", - "type": "address" + "type": "uint256" } ], "stateMutability": "view", @@ -58056,65 +95528,75 @@ }, { "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + }, { "internalType": "uint256", - "name": "_burnFee", + "name": "_amount", "type": "uint256" } ], - "name": "setBurnFee", + "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [ + "inputs": [], + "name": "cap", + "outputs": [ { "internalType": "uint256", - "name": "_liquidationPenalty", + "name": "", "type": "uint256" } ], - "name": "setLiquidationPenalty", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { - "inputs": [ + "inputs": [], + "name": "capEnabled", + "outputs": [ { - "internalType": "uint256", - "name": "_ratio", - "type": "uint256" + "internalType": "bool", + "name": "", + "type": "bool" } ], - "name": "setRatio", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { - "inputs": [ + "inputs": [], + "name": "decimals", + "outputs": [ { - "internalType": "address", - "name": "_treasury", - "type": "address" + "internalType": "uint8", + "name": "", + "type": "uint8" } ], - "name": "setTreasury", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "inputs": [ { - "internalType": "bytes4", - "name": "_interfaceId", - "type": "bytes4" + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "subtractedValue", + "type": "uint256" } ], - "name": "supportsInterface", + "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", @@ -58122,52 +95604,43 @@ "type": "bool" } ], - "stateMutability": "pure", + "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [], - "name": "tcapOracle", - "outputs": [ + "inputs": [ { - "internalType": "contract ChainlinkOracle", - "name": "", - "type": "address" + "internalType": "bool", + "name": "_enable", + "type": "bool" } ], - "stateMutability": "view", + "name": "enableCap", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", - "name": "newOwner", + "name": "spender", "type": "address" + }, + { + "internalType": "uint256", + "name": "addedValue", + "type": "uint256" } ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "treasury", + "name": "increaseAllowance", "outputs": [ { - "internalType": "address", + "internalType": "bool", "name": "", - "type": "address" + "type": "bool" } ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "unpause", - "outputs": [], "stateMutability": "nonpayable", "type": "function" }, @@ -58175,221 +95648,106 @@ "inputs": [ { "internalType": "address", - "name": "", + "name": "_account", "type": "address" - } - ], - "name": "userToVault", - "outputs": [ + }, { "internalType": "uint256", - "name": "", + "name": "_amount", "type": "uint256" } ], - "stateMutability": "view", + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [ + "inputs": [], + "name": "name", + "outputs": [ { - "internalType": "uint256", + "internalType": "string", "name": "", - "type": "uint256" + "type": "string" } ], - "name": "vaults", + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", "outputs": [ - { - "internalType": "uint256", - "name": "Id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "Collateral", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "Debt", - "type": "uint256" - }, { "internalType": "address", - "name": "Owner", + "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" - } - ] - }, - "GovernorAlpha": { - "address": "0xc27e8BfB7a85f54498b2378d2a533126800d14E3", - "abi": [ + }, { "inputs": [ { "internalType": "address", - "name": "timelock_", - "type": "address" - }, - { - "internalType": "address", - "name": "ctx_", + "name": "_vaultHandler", "type": "address" } ], + "name": "removeVaultHandler", + "outputs": [], "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "ProposalCanceled", - "type": "event" + "type": "function" }, { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "address", - "name": "proposer", - "type": "address" - }, - { - "indexed": false, - "internalType": "address[]", - "name": "targets", - "type": "address[]" - }, - { - "indexed": false, - "internalType": "uint256[]", - "name": "values", - "type": "uint256[]" - }, - { - "indexed": false, - "internalType": "string[]", - "name": "signatures", - "type": "string[]" - }, - { - "indexed": false, - "internalType": "bytes[]", - "name": "calldatas", - "type": "bytes[]" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "startBlock", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "endBlock", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "string", - "name": "description", - "type": "string" - } - ], - "name": "ProposalCreated", - "type": "event" + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": false, "internalType": "uint256", - "name": "id", + "name": "_cap", "type": "uint256" } ], - "name": "ProposalExecuted", - "type": "event" + "name": "setCap", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "eta", - "type": "uint256" + "internalType": "bytes4", + "name": "_interfaceId", + "type": "bytes4" } ], - "name": "ProposalQueued", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "voter", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "proposalId", - "type": "uint256" - }, + "name": "supportsInterface", + "outputs": [ { - "indexed": false, "internalType": "bool", - "name": "support", + "name": "", "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "votes", - "type": "uint256" } ], - "name": "VoteCast", - "type": "event" + "stateMutability": "pure", + "type": "function" }, { "inputs": [], - "name": "BALLOT_TYPEHASH", + "name": "symbol", "outputs": [ { - "internalType": "bytes32", + "internalType": "string", "name": "", - "type": "bytes32" + "type": "string" } ], "stateMutability": "view", @@ -58397,12 +95755,12 @@ }, { "inputs": [], - "name": "DOMAIN_TYPEHASH", + "name": "totalSupply", "outputs": [ { - "internalType": "bytes32", + "internalType": "uint256", "name": "", - "type": "bytes32" + "type": "uint256" } ], "stateMutability": "view", @@ -58410,183 +95768,137 @@ }, { "inputs": [ + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, { "internalType": "uint256", - "name": "proposalId", + "name": "amount", "type": "uint256" } ], - "name": "cancel", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "proposalId", - "type": "uint256" - }, + "name": "transfer", + "outputs": [ { "internalType": "bool", - "name": "support", + "name": "", "type": "bool" } ], - "name": "castVote", - "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { - "internalType": "uint256", - "name": "proposalId", - "type": "uint256" - }, - { - "internalType": "bool", - "name": "support", - "type": "bool" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" + "internalType": "address", + "name": "sender", + "type": "address" }, { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" + "internalType": "address", + "name": "recipient", + "type": "address" }, { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" + "internalType": "uint256", + "name": "amount", + "type": "uint256" } ], - "name": "castVoteBySig", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "ctx", + "name": "transferFrom", "outputs": [ { - "internalType": "contract CtxInterface", + "internalType": "bool", "name": "", - "type": "address" + "type": "bool" } ], - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { - "internalType": "uint256", - "name": "proposalId", - "type": "uint256" + "internalType": "address", + "name": "newOwner", + "type": "address" } ], - "name": "execute", + "name": "transferOwnership", "outputs": [], - "stateMutability": "payable", + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { - "internalType": "uint256", - "name": "proposalId", - "type": "uint256" + "internalType": "address", + "name": "", + "type": "address" } ], - "name": "getActions", + "name": "vaultHandlers", "outputs": [ { - "internalType": "address[]", - "name": "targets", - "type": "address[]" - }, - { - "internalType": "uint256[]", - "name": "values", - "type": "uint256[]" - }, - { - "internalType": "string[]", - "name": "signatures", - "type": "string[]" - }, - { - "internalType": "bytes[]", - "name": "calldatas", - "type": "bytes[]" + "internalType": "bool", + "name": "", + "type": "bool" } ], "stateMutability": "view", "type": "function" - }, + } + ] + }, + "TCAPOracle": { + "address": "0x0a916A660157E7663AA57aA5f7De23A909ab42dB", + "abi": [ { "inputs": [ { - "internalType": "uint256", - "name": "proposalId", - "type": "uint256" + "internalType": "address", + "name": "_aggregator", + "type": "address" }, { "internalType": "address", - "name": "voter", + "name": "_timelock", "type": "address" } ], - "name": "getReceipt", - "outputs": [ - { - "components": [ - { - "internalType": "bool", - "name": "hasVoted", - "type": "bool" - }, - { - "internalType": "bool", - "name": "support", - "type": "bool" - }, - { - "internalType": "uint96", - "name": "votes", - "type": "uint96" - } - ], - "internalType": "struct GovernorAlpha.Receipt", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" + "stateMutability": "nonpayable", + "type": "constructor" }, { + "anonymous": false, "inputs": [ { + "indexed": true, "internalType": "address", - "name": "", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", "type": "address" } ], - "name": "latestProposalIds", + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [], + "name": "getLatestAnswer", "outputs": [ { - "internalType": "uint256", + "internalType": "int256", "name": "", - "type": "uint256" + "type": "int256" } ], "stateMutability": "view", @@ -58594,12 +95906,32 @@ }, { "inputs": [], - "name": "name", + "name": "getLatestRound", "outputs": [ { - "internalType": "string", + "internalType": "uint80", "name": "", - "type": "string" + "type": "uint80" + }, + { + "internalType": "int256", + "name": "", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint80", + "name": "", + "type": "uint80" } ], "stateMutability": "view", @@ -58607,7 +95939,7 @@ }, { "inputs": [], - "name": "proposalCount", + "name": "getLatestTimestamp", "outputs": [ { "internalType": "uint256", @@ -58619,21 +95951,33 @@ "type": "function" }, { - "inputs": [], - "name": "proposalMaxOperations", + "inputs": [ + { + "internalType": "uint80", + "name": "_id", + "type": "uint80" + } + ], + "name": "getPreviousAnswer", "outputs": [ { - "internalType": "uint256", + "internalType": "int256", "name": "", - "type": "uint256" + "type": "int256" } ], "stateMutability": "view", "type": "function" }, { - "inputs": [], - "name": "MIN_RATIO", + "inputs": [ + { + "internalType": "uint80", + "name": "_id", + "type": "uint80" + } + ], + "name": "getPreviousTimestamp", "outputs": [ { "internalType": "uint256", @@ -58645,13 +95989,39 @@ "type": "function" }, { - "inputs": [], - "name": "TCAPPrice", + "inputs": [ + { + "internalType": "uint80", + "name": "_id", + "type": "uint80" + } + ], + "name": "getRound", "outputs": [ + { + "internalType": "uint80", + "name": "", + "type": "uint80" + }, + { + "internalType": "int256", + "name": "", + "type": "int256" + }, { "internalType": "uint256", - "name": "price", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", "type": "uint256" + }, + { + "internalType": "uint80", + "name": "", + "type": "uint80" } ], "stateMutability": "view", @@ -58659,10 +96029,10 @@ }, { "inputs": [], - "name": "TCAPToken", + "name": "owner", "outputs": [ { - "internalType": "contract TCAP", + "internalType": "address", "name": "", "type": "address" } @@ -58671,14 +96041,8 @@ "type": "function" }, { - "inputs": [ - { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - } - ], - "name": "addCollateral", + "inputs": [], + "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" @@ -58686,50 +96050,96 @@ { "inputs": [ { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" + "internalType": "address", + "name": "_aggregator", + "type": "address" } ], - "name": "burn", + "name": "setReferenceContract", "outputs": [], - "stateMutability": "payable", + "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [], - "name": "burnFee", + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", "outputs": [ { - "internalType": "uint256", + "internalType": "bool", "name": "", - "type": "uint256" + "type": "bool" } ], - "stateMutability": "view", + "stateMutability": "pure", "type": "function" }, { - "inputs": [], - "name": "collateralContract", - "outputs": [ + "inputs": [ { - "internalType": "contract IERC20", - "name": "", + "internalType": "address", + "name": "newOwner", "type": "address" } ], - "stateMutability": "view", + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" + } + ] + }, + "MATICOracle": { + "address": "0xc06048bbded9eF7B8fca96E48fCb98c2d222d70a", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_aggregator", + "type": "address" + }, + { + "internalType": "address", + "name": "_timelock", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" }, { "inputs": [], - "name": "collateralPriceOracle", + "name": "getLatestAnswer", "outputs": [ { - "internalType": "contract ChainlinkOracle", + "internalType": "int256", "name": "", - "type": "address" + "type": "int256" } ], "stateMutability": "view", @@ -58737,12 +96147,32 @@ }, { "inputs": [], - "name": "counter", + "name": "getLatestRound", "outputs": [ + { + "internalType": "uint80", + "name": "", + "type": "uint80" + }, + { + "internalType": "int256", + "name": "", + "type": "int256" + }, { "internalType": "uint256", - "name": "_value", + "name": "", "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint80", + "name": "", + "type": "uint80" } ], "stateMutability": "view", @@ -58750,14 +96180,7 @@ }, { "inputs": [], - "name": "createVault", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "divisor", + "name": "getLatestTimestamp", "outputs": [ { "internalType": "uint256", @@ -58771,17 +96194,17 @@ { "inputs": [ { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" + "internalType": "uint80", + "name": "_id", + "type": "uint80" } ], - "name": "getFee", + "name": "getPreviousAnswer", "outputs": [ { - "internalType": "uint256", - "name": "fee", - "type": "uint256" + "internalType": "int256", + "name": "", + "type": "int256" } ], "stateMutability": "view", @@ -58790,16 +96213,16 @@ { "inputs": [ { - "internalType": "contract ChainlinkOracle", - "name": "_oracle", - "type": "address" + "internalType": "uint80", + "name": "_id", + "type": "uint80" } ], - "name": "getOraclePrice", + "name": "getPreviousTimestamp", "outputs": [ { "internalType": "uint256", - "name": "price", + "name": "", "type": "uint256" } ], @@ -58809,36 +96232,45 @@ { "inputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" + "internalType": "uint80", + "name": "_id", + "type": "uint80" } ], - "name": "getRoleAdmin", + "name": "getRound", "outputs": [ { - "internalType": "bytes32", + "internalType": "uint80", "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ + "type": "uint80" + }, { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" + "internalType": "int256", + "name": "", + "type": "int256" }, { "internalType": "uint256", - "name": "index", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", "type": "uint256" + }, + { + "internalType": "uint80", + "name": "", + "type": "uint80" } ], - "name": "getRoleMember", + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", "outputs": [ { "internalType": "address", @@ -58849,115 +96281,180 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" + "internalType": "address", + "name": "_aggregator", + "type": "address" } ], - "name": "getRoleMemberCount", + "name": "setReferenceContract", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", "outputs": [ { - "internalType": "uint256", + "internalType": "bool", "name": "", - "type": "uint256" + "type": "bool" } ], - "stateMutability": "view", + "stateMutability": "pure", "type": "function" }, { "inputs": [ { - "internalType": "uint256", - "name": "_id", - "type": "uint256" + "internalType": "address", + "name": "newOwner", + "type": "address" } ], - "name": "getVault", - "outputs": [ + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ] + }, + "WBTC": { + "address": "0x7F59668FC3ae87Ef345ab796DBfFaf109AA86DC1", + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ { - "internalType": "uint256", - "name": "", - "type": "uint256" + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" }, { + "indexed": false, "internalType": "uint256", - "name": "", + "name": "value", "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" }, { + "indexed": true, "internalType": "address", - "name": "", + "name": "to", "type": "address" }, { + "indexed": false, "internalType": "uint256", - "name": "", + "name": "value", "type": "uint256" } ], - "stateMutability": "view", - "type": "function" + "name": "Transfer", + "type": "event" }, { "inputs": [ { - "internalType": "uint256", - "name": "_vaultId", - "type": "uint256" + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" } ], - "name": "getVaultRatio", + "name": "allowance", "outputs": [ { "internalType": "uint256", - "name": "currentRatio", + "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, + { + "inputs": [ { "internalType": "address", - "name": "account", + "name": "spender", "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" } ], - "name": "grantRole", - "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, { "internalType": "address", "name": "account", "type": "address" } ], - "name": "hasRole", + "name": "balanceOf", "outputs": [ { - "internalType": "bool", + "internalType": "uint256", "name": "", - "type": "bool" + "type": "uint256" } ], "stateMutability": "view", @@ -58966,29 +96463,29 @@ { "inputs": [ { - "internalType": "uint256", - "name": "_vaultId", - "type": "uint256" + "internalType": "address", + "name": "_account", + "type": "address" }, { "internalType": "uint256", - "name": "_maxTCAP", + "name": "_amount", "type": "uint256" } ], - "name": "liquidateVault", + "name": "burn", "outputs": [], - "stateMutability": "payable", + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], - "name": "liquidationPenalty", + "name": "decimals", "outputs": [ { - "internalType": "uint256", + "internalType": "uint8", "name": "", - "type": "uint256" + "type": "uint8" } ], "stateMutability": "view", @@ -58996,57 +96493,78 @@ }, { "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, { "internalType": "uint256", - "name": "_vaultId", + "name": "subtractedValue", "type": "uint256" } ], - "name": "liquidationReward", + "name": "decreaseAllowance", "outputs": [ { - "internalType": "uint256", - "name": "rewardCollateral", - "type": "uint256" + "internalType": "bool", + "name": "", + "type": "bool" } ], - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, { "internalType": "uint256", - "name": "_amount", + "name": "addedValue", "type": "uint256" } ], - "name": "mint", - "outputs": [], + "name": "increaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [], - "name": "oracleDigits", - "outputs": [ + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + }, { "internalType": "uint256", - "name": "", + "name": "_amount", "type": "uint256" } ], - "stateMutability": "view", + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], - "name": "owner", + "name": "name", "outputs": [ { - "internalType": "address", + "internalType": "string", "name": "", - "type": "address" + "type": "string" } ], "stateMutability": "view", @@ -59054,19 +96572,12 @@ }, { "inputs": [], - "name": "pause", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "paused", + "name": "symbol", "outputs": [ { - "internalType": "bool", + "internalType": "string", "name": "", - "type": "bool" + "type": "string" } ], "stateMutability": "view", @@ -59074,7 +96585,7 @@ }, { "inputs": [], - "name": "ratio", + "name": "totalSupply", "outputs": [ { "internalType": "uint256", @@ -59089,90 +96600,148 @@ "inputs": [ { "internalType": "address", - "name": "_tokenAddress", + "name": "recipient", "type": "address" }, { "internalType": "uint256", - "name": "_tokenAmount", + "name": "amount", "type": "uint256" } ], - "name": "recoverERC20", - "outputs": [], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, { "internalType": "uint256", - "name": "_amount", + "name": "amount", "type": "uint256" } ], - "name": "removeCollateral", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], "stateMutability": "nonpayable", "type": "function" - }, + } + ] + }, + "WBTCOracle": { + "address": "0x5b1907d06DB64aE4c4Cb4DDc01e32fb11d9CB5BD", + "abi": [ { "inputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" + "internalType": "address", + "name": "_aggregator", + "type": "address" }, { "internalType": "address", - "name": "account", + "name": "_owner", "type": "address" } ], - "name": "renounceRole", - "outputs": [], "stateMutability": "nonpayable", - "type": "function" + "type": "constructor" }, { + "anonymous": false, "inputs": [ { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" } ], - "name": "requiredCollateral", + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [], + "name": "getLatestAnswer", "outputs": [ { - "internalType": "uint256", - "name": "collateral", - "type": "uint256" + "internalType": "int256", + "name": "", + "type": "int256" } ], "stateMutability": "view", "type": "function" }, { - "inputs": [ + "inputs": [], + "name": "getLatestRound", + "outputs": [ + { + "internalType": "uint80", + "name": "", + "type": "uint80" + }, + { + "internalType": "int256", + "name": "", + "type": "int256" + }, { "internalType": "uint256", - "name": "_vaultId", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", "type": "uint256" + }, + { + "internalType": "uint80", + "name": "", + "type": "uint80" } ], - "name": "requiredLiquidationTCAP", + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getLatestTimestamp", "outputs": [ { "internalType": "uint256", - "name": "amount", + "name": "", "type": "uint256" } ], @@ -59182,29 +96751,17 @@ { "inputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" + "internalType": "uint80", + "name": "_id", + "type": "uint80" } ], - "name": "revokeRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "rewardHandler", + "name": "getPreviousAnswer", "outputs": [ { - "internalType": "contract IRewardHandler", + "internalType": "int256", "name": "", - "type": "address" + "type": "int256" } ], "stateMutability": "view", @@ -59212,39 +96769,78 @@ }, { "inputs": [ + { + "internalType": "uint80", + "name": "_id", + "type": "uint80" + } + ], + "name": "getPreviousTimestamp", + "outputs": [ { "internalType": "uint256", - "name": "_burnFee", + "name": "", "type": "uint256" } ], - "name": "setBurnFee", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "inputs": [ + { + "internalType": "uint80", + "name": "_id", + "type": "uint80" + } + ], + "name": "getRound", + "outputs": [ + { + "internalType": "uint80", + "name": "", + "type": "uint80" + }, + { + "internalType": "int256", + "name": "", + "type": "int256" + }, { "internalType": "uint256", - "name": "_liquidationPenalty", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", "type": "uint256" + }, + { + "internalType": "uint80", + "name": "", + "type": "uint80" } ], - "name": "setLiquidationPenalty", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { - "inputs": [ + "inputs": [], + "name": "owner", + "outputs": [ { - "internalType": "uint256", - "name": "_ratio", - "type": "uint256" + "internalType": "address", + "name": "", + "type": "address" } ], - "name": "setRatio", + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" @@ -59253,11 +96849,11 @@ "inputs": [ { "internalType": "address", - "name": "_treasury", + "name": "_aggregator", "type": "address" } ], - "name": "setTreasury", + "name": "setReferenceContract", "outputs": [], "stateMutability": "nonpayable", "type": "function" @@ -59266,7 +96862,7 @@ "inputs": [ { "internalType": "bytes4", - "name": "_interfaceId", + "name": "interfaceId", "type": "bytes4" } ], @@ -59281,19 +96877,6 @@ "stateMutability": "pure", "type": "function" }, - { - "inputs": [], - "name": "tcapOracle", - "outputs": [ - { - "internalType": "contract ChainlinkOracle", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, { "inputs": [ { @@ -59306,110 +96889,127 @@ "outputs": [], "stateMutability": "nonpayable", "type": "function" - }, - { - "inputs": [], - "name": "treasury", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "unpause", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, + } + ] + }, + "WBTCVaultHandler": { + "address": "0x888ce9aD6B93733B52300E423A5f004324c83770", + "abi": [ { "inputs": [ { - "internalType": "address", - "name": "", + "internalType": "contract Orchestrator", + "name": "_orchestrator", "type": "address" - } - ], - "name": "userToVault", - "outputs": [ + }, { "internalType": "uint256", - "name": "", + "name": "_divisor", "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ + }, { "internalType": "uint256", - "name": "", + "name": "_ratio", "type": "uint256" - } - ], - "name": "vaults", - "outputs": [ + }, { "internalType": "uint256", - "name": "Id", + "name": "_burnFee", "type": "uint256" }, { "internalType": "uint256", - "name": "Collateral", + "name": "_liquidationPenalty", "type": "uint256" }, { - "internalType": "uint256", - "name": "Debt", - "type": "uint256" + "internalType": "address", + "name": "_tcapOracle", + "type": "address" + }, + { + "internalType": "contract TCAP", + "name": "_tcapAddress", + "type": "address" }, { "internalType": "address", - "name": "Owner", + "name": "_collateralAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_collateralOracle", + "type": "address" + }, + { + "internalType": "address", + "name": "_ethOracle", + "type": "address" + }, + { + "internalType": "address", + "name": "_rewardHandler", + "type": "address" + }, + { + "internalType": "address", + "name": "_treasury", "type": "address" } ], - "stateMutability": "view", - "type": "function" - } - ] - }, - "TCAP": { - "address": "0x39ACEcE80A54C6a87D888b0F0aad7DA2D0ac6FE5", - "abi": [ + "stateMutability": "nonpayable", + "type": "constructor" + }, { + "anonymous": false, "inputs": [ { - "internalType": "string", - "name": "_name", - "type": "string" + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" }, { - "internalType": "string", - "name": "_symbol", - "type": "string" + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" }, { + "indexed": false, "internalType": "uint256", - "name": "_cap", + "name": "_amount", "type": "uint256" - }, + } + ], + "name": "CollateralAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ { - "internalType": "contract Orchestrator", - "name": "_orchestrator", + "indexed": true, + "internalType": "address", + "name": "_owner", "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" } ], - "stateMutability": "nonpayable", - "type": "constructor" + "name": "CollateralRemoved", + "type": "event" }, { "anonymous": false, @@ -59417,23 +97017,36 @@ { "indexed": true, "internalType": "address", - "name": "owner", + "name": "_owner", "type": "address" }, + { + "indexed": false, + "internalType": "uint256", + "name": "_burnFee", + "type": "uint256" + } + ], + "name": "NewBurnFee", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ { "indexed": true, "internalType": "address", - "name": "spender", + "name": "_owner", "type": "address" }, { "indexed": false, "internalType": "uint256", - "name": "value", + "name": "_liquidationPenalty", "type": "uint256" } ], - "name": "Approval", + "name": "NewLiquidationPenalty", "type": "event" }, { @@ -59448,11 +97061,11 @@ { "indexed": false, "internalType": "uint256", - "name": "_amount", + "name": "_ratio", "type": "uint256" } ], - "name": "NewCap", + "name": "NewRatio", "type": "event" }, { @@ -59466,12 +97079,12 @@ }, { "indexed": false, - "internalType": "bool", - "name": "_enable", - "type": "bool" + "internalType": "address", + "name": "_tresury", + "type": "address" } ], - "name": "NewCapEnabled", + "name": "NewTreasury", "type": "event" }, { @@ -59497,25 +97110,32 @@ "anonymous": false, "inputs": [ { - "indexed": true, + "indexed": false, "internalType": "address", - "name": "from", + "name": "account", "type": "address" - }, + } + ], + "name": "Paused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ { - "indexed": true, + "indexed": false, "internalType": "address", - "name": "to", + "name": "_token", "type": "address" }, { "indexed": false, "internalType": "uint256", - "name": "value", + "name": "_amount", "type": "uint256" } ], - "name": "Transfer", + "name": "Recovered", "type": "event" }, { @@ -59523,145 +97143,197 @@ "inputs": [ { "indexed": true, - "internalType": "address", - "name": "_owner", - "type": "address" + "internalType": "bytes32", + "name": "role", + "type": "bytes32" }, { "indexed": true, - "internalType": "address", - "name": "_tokenHandler", - "type": "address" + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" } ], - "name": "VaultHandlerAdded", + "name": "RoleAdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, { "indexed": true, "internalType": "address", - "name": "_owner", + "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", - "name": "_tokenHandler", + "name": "sender", "type": "address" } ], - "name": "VaultHandlerRemoved", + "name": "RoleGranted", "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, "internalType": "address", - "name": "_vaultHandler", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", "type": "address" } ], - "name": "addVaultHandler", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "name": "RoleRevoked", + "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": true, "internalType": "address", - "name": "owner", + "name": "_owner", "type": "address" }, { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, { + "indexed": false, "internalType": "uint256", - "name": "", + "name": "_amount", "type": "uint256" } ], - "stateMutability": "view", - "type": "function" + "name": "TokensBurned", + "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": true, "internalType": "address", - "name": "spender", + "name": "_owner", "type": "address" }, { + "indexed": true, "internalType": "uint256", - "name": "amount", + "name": "_id", "type": "uint256" - } - ], - "name": "approve", - "outputs": [ + }, { - "internalType": "bool", - "name": "", - "type": "bool" + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" } ], - "stateMutability": "nonpayable", - "type": "function" + "name": "TokensMinted", + "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], - "name": "balanceOf", - "outputs": [ + "name": "Unpaused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, { + "indexed": true, "internalType": "uint256", - "name": "", + "name": "_id", "type": "uint256" } ], - "stateMutability": "view", - "type": "function" + "name": "VaultCreated", + "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": true, + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" + }, + { + "indexed": true, "internalType": "address", - "name": "_account", + "name": "_liquidator", "type": "address" }, { + "indexed": false, "internalType": "uint256", - "name": "_amount", + "name": "_liquidationCollateral", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_reward", "type": "uint256" } ], - "name": "burn", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "name": "VaultLiquidated", + "type": "event" }, { "inputs": [], - "name": "cap", + "name": "DEFAULT_ADMIN_ROLE", "outputs": [ { - "internalType": "uint256", + "internalType": "bytes32", "name": "", - "type": "uint256" + "type": "bytes32" } ], "stateMutability": "view", @@ -59669,12 +97341,12 @@ }, { "inputs": [], - "name": "capEnabled", + "name": "ETHPriceOracle", "outputs": [ { - "internalType": "bool", + "internalType": "contract ChainlinkOracle", "name": "", - "type": "bool" + "type": "address" } ], "stateMutability": "view", @@ -59682,7 +97354,7 @@ }, { "inputs": [], - "name": "decimals", + "name": "MAX_DECIMAL_PLACES", "outputs": [ { "internalType": "uint8", @@ -59694,92 +97366,117 @@ "type": "function" }, { - "inputs": [ + "inputs": [], + "name": "MAX_FEE", + "outputs": [ { - "internalType": "address", - "name": "spender", - "type": "address" - }, + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MIN_RATIO", + "outputs": [ { "internalType": "uint256", - "name": "subtractedValue", + "name": "", "type": "uint256" } ], - "name": "decreaseAllowance", + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "TCAPPrice", "outputs": [ { - "internalType": "bool", + "internalType": "uint256", + "name": "price", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "TCAPToken", + "outputs": [ + { + "internalType": "contract TCAP", "name": "", - "type": "bool" + "type": "address" } ], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "inputs": [ { - "internalType": "bool", - "name": "_enable", - "type": "bool" + "internalType": "uint256", + "name": "_amount", + "type": "uint256" } ], - "name": "enableCap", + "name": "addCollateral", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, { "internalType": "uint256", - "name": "addedValue", + "name": "_amount", "type": "uint256" } ], - "name": "increaseAllowance", + "name": "burn", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "burnFee", "outputs": [ { - "internalType": "bool", + "internalType": "uint256", "name": "", - "type": "bool" + "type": "uint256" } ], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { - "inputs": [ + "inputs": [], + "name": "collateralContract", + "outputs": [ { - "internalType": "address", - "name": "_account", + "internalType": "contract IERC20", + "name": "", "type": "address" - }, - { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" } ], - "name": "mint", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "inputs": [], - "name": "name", + "name": "collateralDecimalsAdjustmentFactor", "outputs": [ { - "internalType": "string", + "internalType": "uint256", "name": "", - "type": "string" + "type": "uint256" } ], "stateMutability": "view", @@ -59787,10 +97484,10 @@ }, { "inputs": [], - "name": "owner", + "name": "collateralPriceOracle", "outputs": [ { - "internalType": "address", + "internalType": "contract ChainlinkOracle", "name": "", "type": "address" } @@ -59799,78 +97496,90 @@ "type": "function" }, { - "inputs": [ + "inputs": [], + "name": "counter", + "outputs": [ { - "internalType": "address", - "name": "_vaultHandler", - "type": "address" + "internalType": "uint256", + "name": "_value", + "type": "uint256" } ], - "name": "removeVaultHandler", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "inputs": [], - "name": "renounceOwnership", + "name": "createVault", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [ + "inputs": [], + "name": "divisor", + "outputs": [ { "internalType": "uint256", - "name": "_cap", + "name": "", "type": "uint256" } ], - "name": "setCap", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "inputs": [ { - "internalType": "bytes4", - "name": "_interfaceId", - "type": "bytes4" + "internalType": "uint256", + "name": "_amount", + "type": "uint256" } ], - "name": "supportsInterface", + "name": "getFee", "outputs": [ { - "internalType": "bool", - "name": "", - "type": "bool" + "internalType": "uint256", + "name": "fee", + "type": "uint256" } ], - "stateMutability": "pure", + "stateMutability": "view", "type": "function" }, { - "inputs": [], - "name": "symbol", + "inputs": [ + { + "internalType": "contract ChainlinkOracle", + "name": "_oracle", + "type": "address" + } + ], + "name": "getOraclePrice", "outputs": [ { - "internalType": "string", - "name": "", - "type": "string" + "internalType": "uint256", + "name": "price", + "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { - "inputs": [], - "name": "totalSupply", + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", "outputs": [ { - "internalType": "uint256", + "internalType": "bytes32", "name": "", - "type": "uint256" + "type": "bytes32" } ], "stateMutability": "view", @@ -59879,172 +97588,162 @@ { "inputs": [ { - "internalType": "address", - "name": "recipient", - "type": "address" + "internalType": "bytes32", + "name": "role", + "type": "bytes32" }, { "internalType": "uint256", - "name": "amount", + "name": "index", "type": "uint256" } ], - "name": "transfer", + "name": "getRoleMember", "outputs": [ { - "internalType": "bool", + "internalType": "address", "name": "", - "type": "bool" + "type": "address" } ], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "inputs": [ { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "address", - "name": "recipient", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" + "internalType": "bytes32", + "name": "role", + "type": "bytes32" } ], - "name": "transferFrom", + "name": "getRoleMemberCount", "outputs": [ { - "internalType": "bool", + "internalType": "uint256", "name": "", - "type": "bool" + "type": "uint256" } ], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "inputs": [ + { + "internalType": "uint256", + "name": "_id", + "type": "uint256" + } + ], + "name": "getVault", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, { "internalType": "address", - "name": "newOwner", + "name": "", "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" } ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "inputs": [ { - "internalType": "address", - "name": "", - "type": "address" + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" } ], - "name": "vaultHandlers", + "name": "getVaultRatio", "outputs": [ { - "internalType": "bool", - "name": "", - "type": "bool" + "internalType": "uint256", + "name": "currentRatio", + "type": "uint256" } ], "stateMutability": "view", "type": "function" - } - ] - }, - "TCAPOracle": { - "address": "0x8B4A041A619aC26B33e5BAEe9585e569387ec837", - "abi": [ + }, { "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, { "internalType": "address", - "name": "_aggregator", + "name": "account", "type": "address" } ], + "name": "grantRole", + "outputs": [], "stateMutability": "nonpayable", - "type": "constructor" + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" + "internalType": "bytes32", + "name": "role", + "type": "bytes32" }, { - "indexed": true, "internalType": "address", - "name": "newOwner", + "name": "account", "type": "address" } ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "inputs": [], - "name": "getLatestAnswer", + "name": "hasRole", "outputs": [ { - "internalType": "int256", + "internalType": "bool", "name": "", - "type": "int256" + "type": "bool" } ], "stateMutability": "view", "type": "function" }, { - "inputs": [], - "name": "getLatestRound", - "outputs": [ - { - "internalType": "uint80", - "name": "", - "type": "uint80" - }, - { - "internalType": "int256", - "name": "", - "type": "int256" - }, + "inputs": [ { "internalType": "uint256", - "name": "", + "name": "_vaultId", "type": "uint256" }, { "internalType": "uint256", - "name": "", + "name": "_maxTCAP", "type": "uint256" - }, - { - "internalType": "uint80", - "name": "", - "type": "uint80" } ], - "stateMutability": "view", + "name": "liquidateVault", + "outputs": [], + "stateMutability": "payable", "type": "function" }, { "inputs": [], - "name": "getLatestTimestamp", + "name": "liquidationPenalty", "outputs": [ { "internalType": "uint256", @@ -60058,17 +97757,17 @@ { "inputs": [ { - "internalType": "uint80", - "name": "_id", - "type": "uint80" + "internalType": "uint256", + "name": "_vaultId", + "type": "uint256" } ], - "name": "getPreviousAnswer", + "name": "liquidationReward", "outputs": [ { - "internalType": "int256", - "name": "", - "type": "int256" + "internalType": "uint256", + "name": "rewardCollateral", + "type": "uint256" } ], "stateMutability": "view", @@ -60076,57 +97775,25 @@ }, { "inputs": [ - { - "internalType": "uint80", - "name": "_id", - "type": "uint80" - } - ], - "name": "getPreviousTimestamp", - "outputs": [ { "internalType": "uint256", - "name": "", + "name": "_amount", "type": "uint256" } ], - "stateMutability": "view", + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [ - { - "internalType": "uint80", - "name": "_id", - "type": "uint80" - } - ], - "name": "getRound", + "inputs": [], + "name": "oracleDigits", "outputs": [ - { - "internalType": "uint80", - "name": "", - "type": "uint80" - }, - { - "internalType": "int256", - "name": "", - "type": "int256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, { "internalType": "uint256", "name": "", "type": "uint256" - }, - { - "internalType": "uint80", - "name": "", - "type": "uint80" } ], "stateMutability": "view", @@ -60147,395 +97814,239 @@ }, { "inputs": [], - "name": "renounceOwnership", + "name": "pause", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [ + "inputs": [], + "name": "paused", + "outputs": [ { - "internalType": "address", - "name": "_aggregator", - "type": "address" + "internalType": "bool", + "name": "", + "type": "bool" } ], - "name": "setReferenceContract", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", + "inputs": [], + "name": "ratio", "outputs": [ { - "internalType": "bool", + "internalType": "uint256", "name": "", - "type": "bool" + "type": "uint256" } ], - "stateMutability": "pure", + "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", - "name": "newOwner", + "name": "_tokenAddress", "type": "address" + }, + { + "internalType": "uint256", + "name": "_tokenAmount", + "type": "uint256" } ], - "name": "transferOwnership", + "name": "recoverERC20", "outputs": [], "stateMutability": "nonpayable", "type": "function" - } - ] - }, - "Timelock": { - "address": "0x65a2B1B48b7997a50947E83aaf58E29a54a0B735", - "abi": [ + }, { "inputs": [ - { - "internalType": "address", - "name": "admin_", - "type": "address" - }, { "internalType": "uint256", - "name": "delay_", + "name": "_amount", "type": "uint256" } ], + "name": "removeCollateral", + "outputs": [], "stateMutability": "nonpayable", - "type": "constructor" + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, "internalType": "bytes32", - "name": "txHash", + "name": "role", "type": "bytes32" }, { - "indexed": true, "internalType": "address", - "name": "target", + "name": "account", "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "string", - "name": "signature", - "type": "string" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "eta", - "type": "uint256" } ], - "name": "CancelTransaction", - "type": "event" + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "bytes32", - "name": "txHash", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "target", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "string", - "name": "signature", - "type": "string" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "indexed": false, "internalType": "uint256", - "name": "eta", + "name": "_amount", "type": "uint256" } ], - "name": "ExecuteTransaction", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ + "name": "requiredCollateral", + "outputs": [ { - "indexed": true, - "internalType": "address", - "name": "newAdmin", - "type": "address" + "internalType": "uint256", + "name": "collateral", + "type": "uint256" } ], - "name": "NewAdmin", - "type": "event" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, "internalType": "uint256", - "name": "newDelay", + "name": "_vaultId", "type": "uint256" } ], - "name": "NewDelay", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ + "name": "requiredLiquidationTCAP", + "outputs": [ { - "indexed": true, - "internalType": "address", - "name": "newPendingAdmin", - "type": "address" + "internalType": "uint256", + "name": "amount", + "type": "uint256" } ], - "name": "NewPendingAdmin", - "type": "event" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, "internalType": "bytes32", - "name": "txHash", + "name": "role", "type": "bytes32" }, { - "indexed": true, "internalType": "address", - "name": "target", + "name": "account", "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "string", - "name": "signature", - "type": "string" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "eta", - "type": "uint256" } ], - "name": "QueueTransaction", - "type": "event" + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { "inputs": [], - "name": "GRACE_PERIOD", + "name": "rewardHandler", "outputs": [ { - "internalType": "uint256", + "internalType": "contract IRewardHandler", "name": "", - "type": "uint256" + "type": "address" } ], "stateMutability": "view", "type": "function" }, { - "inputs": [], - "name": "MAXIMUM_DELAY", - "outputs": [ + "inputs": [ { "internalType": "uint256", - "name": "", + "name": "_burnFee", "type": "uint256" } ], - "stateMutability": "view", + "name": "setBurnFee", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [], - "name": "MINIMUM_DELAY", - "outputs": [ + "inputs": [ { "internalType": "uint256", - "name": "", + "name": "_liquidationPenalty", "type": "uint256" } ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "acceptAdmin", + "name": "setLiquidationPenalty", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, - { - "inputs": [], - "name": "admin", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, { "inputs": [ - { - "internalType": "address", - "name": "target", - "type": "address" - }, { "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "string", - "name": "signature", - "type": "string" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "eta", + "name": "_ratio", "type": "uint256" } ], - "name": "cancelTransaction", + "name": "setRatio", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [], - "name": "delay", - "outputs": [ + "inputs": [ { - "internalType": "uint256", - "name": "", - "type": "uint256" + "internalType": "address", + "name": "_treasury", + "type": "address" } ], - "stateMutability": "view", + "name": "setTreasury", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { - "internalType": "address", - "name": "target", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "string", - "name": "signature", - "type": "string" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "eta", - "type": "uint256" + "internalType": "bytes4", + "name": "_interfaceId", + "type": "bytes4" } ], - "name": "executeTransaction", + "name": "supportsInterface", "outputs": [ { - "internalType": "bytes", + "internalType": "bool", "name": "", - "type": "bytes" + "type": "bool" } ], - "stateMutability": "payable", + "stateMutability": "pure", "type": "function" }, { "inputs": [], - "name": "pendingAdmin", + "name": "tcapOracle", "outputs": [ { - "internalType": "address", + "internalType": "contract ChainlinkOracle", "name": "", "type": "address" } @@ -60547,69 +98058,31 @@ "inputs": [ { "internalType": "address", - "name": "target", + "name": "newOwner", "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "string", - "name": "signature", - "type": "string" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "eta", - "type": "uint256" - } - ], - "name": "queueTransaction", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" } ], + "name": "transferOwnership", + "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "name": "queuedTransactions", + "inputs": [], + "name": "treasury", "outputs": [ { - "internalType": "bool", + "internalType": "address", "name": "", - "type": "bool" + "type": "address" } ], "stateMutability": "view", "type": "function" }, { - "inputs": [ - { - "internalType": "uint256", - "name": "delay_", - "type": "uint256" - } - ], - "name": "setDelay", + "inputs": [], + "name": "unpause", "outputs": [], "stateMutability": "nonpayable", "type": "function" @@ -60618,37 +98091,54 @@ "inputs": [ { "internalType": "address", - "name": "pendingAdmin_", + "name": "", "type": "address" } ], - "name": "setPendingAdmin", - "outputs": [], - "stateMutability": "nonpayable", + "name": "userToVault", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", "type": "function" }, { "inputs": [ { - "internalType": "bytes4", - "name": "_interfaceId", - "type": "bytes4" + "internalType": "uint256", + "name": "", + "type": "uint256" } ], - "name": "supportsInterface", + "name": "vaults", "outputs": [ { - "internalType": "bool", - "name": "", - "type": "bool" + "internalType": "uint256", + "name": "Id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "Collateral", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "Debt", + "type": "uint256" + }, + { + "internalType": "address", + "name": "Owner", + "type": "address" } ], - "stateMutability": "pure", + "stateMutability": "view", "type": "function" - }, - { - "stateMutability": "payable", - "type": "receive" } ] } diff --git a/src/hooks/index.tsx b/src/hooks/index.tsx new file mode 100644 index 00000000..1425dc34 --- /dev/null +++ b/src/hooks/index.tsx @@ -0,0 +1,37 @@ +export * from "./useArbitrum"; + +export * from "./useBalances"; + +export * from "./useEthereum"; + +export * from "./useGovernance"; + +export * from "./useHardVaults"; + +export * from "./useMerkleTree"; + +export * from "./useMushroomNft"; + +export * from "./useNetworks"; + +export * from "./usePrices"; + +export * from "./usePrices2"; + +export * from "./useOracles"; + +export * from "./useOptimism"; + +export * from "./useRatios"; + +export * from "./useRewards"; + +export * from "./useSigner"; + +export * from "./useTokens"; + +export * from "./useVault"; + +export * from "./useVaults"; + +export * from "./useVaultsSummary"; diff --git a/src/hooks/types.tsx b/src/hooks/types.tsx new file mode 100644 index 00000000..efc285ca --- /dev/null +++ b/src/hooks/types.tsx @@ -0,0 +1,23 @@ +export type BalancesType = { + tcapBalance: string; + jpegzBalance: string; + ctxBalance: string; + tcapSupplly: string; + jpegzSupplly: string; +}; + +export type OraclePricesType = { + jpegzOraclePrice: string; + jpegzMarketCap: string; + tcapOraclePrice: string; + tcapMarketCap: string; + wethOraclePrice: string; + daiOraclePrice: string; + aaveOraclePrice: string; + linkOraclePrice: string; + uniOraclePrice: string; + snxOraclePrice: string; + maticOraclePrice: string; + wbtcOraclePrice: string; + usdcOraclePrice: string; +}; diff --git a/src/hooks/useArbitrum.tsx b/src/hooks/useArbitrum.tsx new file mode 100644 index 00000000..b8d71e5d --- /dev/null +++ b/src/hooks/useArbitrum.tsx @@ -0,0 +1,34 @@ +import React, { useState } from "react"; +import { Contract } from "ethers-multicall"; +import { IArbitrumContext } from "../state"; + +export const useArbitrum = (): IArbitrumContext => { + const [jpegzTokenRead, setJpegzTokenRead] = useState(); + const [jpegzOracleRead, setJpegzOracleRead] = useState(); + const [wethOracleRead, setWethOracleRead] = useState(); + const [daiOracleRead, setDaiOracleRead] = useState(); + + const setCurrentJpegzTokenRead = React.useCallback((currentJpegzTokenRead: Contract): void => { + setJpegzTokenRead(currentJpegzTokenRead); + }, []); + const setCurrentJpegzOracleRead = React.useCallback((currentJpegzOracleRead: Contract): void => { + setJpegzOracleRead(currentJpegzOracleRead); + }, []); + const setCurrentWethOracleRead = React.useCallback((currentWethOracleRead: Contract): void => { + setWethOracleRead(currentWethOracleRead); + }, []); + const setCurrentDaiOracleRead = React.useCallback((currentDaiOracleRead: Contract): void => { + setDaiOracleRead(currentDaiOracleRead); + }, []); + + return { + jpegzTokenRead, + setCurrentJpegzTokenRead, + jpegzOracleRead, + setCurrentJpegzOracleRead, + wethOracleRead, + setCurrentWethOracleRead, + daiOracleRead, + setCurrentDaiOracleRead, + }; +}; diff --git a/src/hooks/useBalances.tsx b/src/hooks/useBalances.tsx new file mode 100644 index 00000000..202e8b3c --- /dev/null +++ b/src/hooks/useBalances.tsx @@ -0,0 +1,117 @@ +import { useContext, useEffect, useState } from "react"; +import { ethers } from "ethers"; +import { Provider } from "ethers-multicall"; +import { arbitrumContext, ethereumContext } from "../state/index"; +import { isArbitrum, isInLayer1, validOracles } from "../utils/utils"; +import { BalancesType } from "./types"; + +export const useBalances = ( + chainId: number, + ethcallProvider: Provider | undefined, + address: string +): [BalancesType, boolean] => { + const arbitrumContracts = useContext(arbitrumContext); + const ethereumContracts = useContext(ethereumContext); + const [loadingBalances, setLoadingBalances] = useState(true); + const [balances, setBalances] = useState({ + tcapBalance: "0", + jpegzBalance: "0", + ctxBalance: "0", + tcapSupplly: "0", + jpegzSupplly: "0", + }); + + const loadBalanceArbitrum = async () => { + const jpegzBalanceCall = arbitrumContracts.jpegzTokenRead?.balanceOf(address); + const jpegzSupplyCall = arbitrumContracts.jpegzTokenRead?.totalSupply(); + // @ts-ignore + const [jpegzBalance, jpegzSupply] = await ethcallProvider?.all([ + jpegzBalanceCall, + jpegzSupplyCall, + ]); + setBalances({ + tcapBalance: "0", + jpegzBalance: ethers.utils.formatEther(jpegzBalance), + ctxBalance: "0", + tcapSupplly: "0", + jpegzSupplly: ethers.utils.formatEther(jpegzSupply), + }); + }; + + const loadBalanceEthereum = async () => { + try { + const tcapBalanceCall = ethereumContracts.tcapTokenRead?.balanceOf(address); + const tcapSupplyCall = ethereumContracts.tcapTokenRead?.totalSupply(); + const ctxBalanceCall = ethereumContracts.ctxTokenRead?.balanceOf(address); + + // @ts-ignore + const [tcapBalance, tcapSupply, ctxBalance] = await ethcallProvider?.all([ + tcapBalanceCall, + tcapSupplyCall, + ctxBalanceCall, + ]); + + setBalances({ + tcapBalance: ethers.utils.formatEther(tcapBalance), + jpegzBalance: "0", + ctxBalance: ethers.utils.formatEther(ctxBalance), + tcapSupplly: ethers.utils.formatEther(tcapSupply), + jpegzSupplly: "0", + }); + } catch (error: any) {} + }; + + const loadBalance = async () => { + try { + if (arbitrumContracts && ethereumContracts && ethcallProvider) { + if (isArbitrum(chainId) && validOracles(chainId, arbitrumContracts)) { + await loadBalanceArbitrum(); + } + if (isInLayer1(chainId) && validOracles(chainId, ethereumContracts)) { + await loadBalanceEthereum(); + } + } + } catch (error: any) { } + setLoadingBalances(false); + }; + + const loadIndexSupply = async () => { + try { + if (ethcallProvider) { + let indexTokenRead = ethereumContracts.tcapTokenRead; + if (isArbitrum(chainId)) { + indexTokenRead = arbitrumContracts.jpegzTokenRead; + } + + if (indexTokenRead) { + const indexSupplyCall = indexTokenRead?.totalSupply(); + const [indexSupply] = await ethcallProvider?.all([indexSupplyCall]); + const indexSupplyVal = ethers.utils.formatEther(indexSupply); + + setBalances({ + tcapBalance: "0", + jpegzBalance: "0", + ctxBalance: "0", + tcapSupplly: !isArbitrum(chainId) ? indexSupplyVal : "0", + jpegzSupplly: isArbitrum(chainId) ? indexSupplyVal : "0", + }); + } + } + } catch (error: any) {} + }; + + useEffect( + () => { + if (ethcallProvider && address !== "") { + loadBalance(); + } else if (ethcallProvider) { + loadIndexSupply(); + setLoadingBalances(false); + } + }, + // eslint-disable-next-line + [chainId, ethcallProvider, address] + ); + + return [balances, loadingBalances]; +}; diff --git a/src/hooks/useEthereum.tsx b/src/hooks/useEthereum.tsx new file mode 100644 index 00000000..b0bae18c --- /dev/null +++ b/src/hooks/useEthereum.tsx @@ -0,0 +1,73 @@ +import React, { useState } from "react"; +import { Contract } from "ethers-multicall"; +import { IEthereumContext } from "../state"; + +export const useEthereum = (): IEthereumContext => { + const [tcapTokenRead, setTcapTokenRead] = useState(); + const [ctxTokenRead, setCtxTokenRead] = useState(); + const [ctxPoolTokenRead, setCtxPoolTokenRead] = useState(); + const [tcapOracleRead, setTcapOracleRead] = useState(); + const [wethOracleRead, setWethOracleRead] = useState(); + const [daiOracleRead, setDaiOracleRead] = useState(); + const [aaveOracleRead, setAaveOracleRead] = useState(); + const [linkOracleRead, setLinkOracleRead] = useState(); + const [wbtcOracleRead, setWbtcOracleRead] = useState(); + const [usdcOracleRead, setUsdcOracleRead] = useState(); + + const setCurrentTcapTokenRead = React.useCallback((currentTcapTokenRead: Contract): void => { + setTcapTokenRead(currentTcapTokenRead); + }, []); + const setCurrentCtxTokenRead = React.useCallback((currentCtxTokenRead: Contract): void => { + setCtxTokenRead(currentCtxTokenRead); + }, []); + const setCurrentCtxPoolTokenRead = React.useCallback( + (currentCtxPoolTokenRead: Contract): void => { + setCtxPoolTokenRead(currentCtxPoolTokenRead); + }, + [] + ); + const setCurrentTcapOracleRead = React.useCallback((currentTcapOracleRead: Contract): void => { + setTcapOracleRead(currentTcapOracleRead); + }, []); + const setCurrentWethOracleRead = React.useCallback((currentWethOracleRead: Contract): void => { + setWethOracleRead(currentWethOracleRead); + }, []); + const setCurrentDaiOracleRead = React.useCallback((currentDaiOracleRead: Contract): void => { + setDaiOracleRead(currentDaiOracleRead); + }, []); + const setCurrentAaveOracleRead = React.useCallback((currentAaveOracleRead: Contract): void => { + setAaveOracleRead(currentAaveOracleRead); + }, []); + const setCurrentLinkOracleRead = React.useCallback((currentLinkOracleRead: Contract): void => { + setLinkOracleRead(currentLinkOracleRead); + }, []); + const setCurrentWbtcOracleRead = React.useCallback((currentWbtcOracleRead: Contract): void => { + setWbtcOracleRead(currentWbtcOracleRead); + }, []); + const setCurrentUsdcOracleRead = React.useCallback((currentUsdcOracleRead: Contract): void => { + setUsdcOracleRead(currentUsdcOracleRead); + }, []); + + return { + tcapTokenRead, + setCurrentTcapTokenRead, + ctxTokenRead, + setCurrentCtxTokenRead, + ctxPoolTokenRead, + setCurrentCtxPoolTokenRead, + tcapOracleRead, + setCurrentTcapOracleRead, + wethOracleRead, + setCurrentWethOracleRead, + daiOracleRead, + setCurrentDaiOracleRead, + aaveOracleRead, + setCurrentAaveOracleRead, + linkOracleRead, + setCurrentLinkOracleRead, + wbtcOracleRead, + setCurrentWbtcOracleRead, + usdcOracleRead, + setCurrentUsdcOracleRead, + }; +}; diff --git a/src/hooks/useGovernance.tsx b/src/hooks/useGovernance.tsx index 5733c28b..94a29c58 100644 --- a/src/hooks/useGovernance.tsx +++ b/src/hooks/useGovernance.tsx @@ -1,9 +1,9 @@ import React, { useState } from "react"; import { ethers } from "ethers"; import { Contract } from "ethers-multicall"; -import { GovernanceContext } from "../state/GovernanceContext"; +import { IGovernanceContext } from "../state"; -export const useGovernance = (): GovernanceContext => { +export const useGovernance = (): IGovernanceContext => { const [governorAlpha, setGovernorAlpha] = useState(); const [timelock, setTimelock] = useState(); const [delegatorFactory, setDelegatorFactory] = useState(); diff --git a/src/hooks/useHardVaults.tsx b/src/hooks/useHardVaults.tsx new file mode 100644 index 00000000..d8a54349 --- /dev/null +++ b/src/hooks/useHardVaults.tsx @@ -0,0 +1,59 @@ +import React, { useState } from "react"; +import { ethers } from "ethers"; +import { Contract } from "ethers-multicall"; +import { IHardVaultsContext } from "../state"; + +export const useHardVaults = (): IHardVaultsContext => { + const [wethVault, setWETHVault] = useState(); + const [daiVault, setDAIVault] = useState(); + const [usdcVault, setUSDCVault] = useState(); + const [wbtcVault, setWBTCVault] = useState(); + const [wethVaultRead, setWETHVaultRead] = useState(); + const [daiVaultRead, setDAIVaultRead] = useState(); + const [usdcVaultRead, setUSDCVaultRead] = useState(); + const [wbtcVaultRead, setWBTCVaultRead] = useState(); + + const setCurrentWETHVault = React.useCallback((currentWETHVault: ethers.Contract): void => { + setWETHVault(currentWETHVault); + }, []); + const setCurrentDAIVault = React.useCallback((currentDAIVault: ethers.Contract): void => { + setDAIVault(currentDAIVault); + }, []); + const setCurrentUSDCVault = React.useCallback((currentUSDCVault: ethers.Contract): void => { + setUSDCVault(currentUSDCVault); + }, []); + const setCurrentWBTCVault = React.useCallback((currentWBTCVault: ethers.Contract): void => { + setWBTCVault(currentWBTCVault); + }, []); + const setCurrentWETHVaultRead = React.useCallback((currentWETHVaultRead: Contract): void => { + setWETHVaultRead(currentWETHVaultRead); + }, []); + const setCurrentDAIVaultRead = React.useCallback((currentDAIVaultRead: Contract): void => { + setDAIVaultRead(currentDAIVaultRead); + }, []); + const setCurrentUSDCVaultRead = React.useCallback((currentUSDCVaultRead: Contract): void => { + setUSDCVaultRead(currentUSDCVaultRead); + }, []); + const setCurrentWBTCVaultRead = React.useCallback((currentWBTCVaultRead: Contract): void => { + setWBTCVaultRead(currentWBTCVaultRead); + }, []); + + return { + wethVault, + setCurrentWETHVault, + daiVault, + setCurrentDAIVault, + usdcVault, + setCurrentUSDCVault, + wbtcVault, + setCurrentWBTCVault, + wethVaultRead, + setCurrentWETHVaultRead, + daiVaultRead, + setCurrentDAIVaultRead, + usdcVaultRead, + setCurrentUSDCVaultRead, + wbtcVaultRead, + setCurrentWBTCVaultRead, + }; +}; diff --git a/src/hooks/useMerkleTree.tsx b/src/hooks/useMerkleTree.tsx new file mode 100644 index 00000000..3a235670 --- /dev/null +++ b/src/hooks/useMerkleTree.tsx @@ -0,0 +1,27 @@ +import React from "react"; +import { MerkleTree } from "merkletreejs"; +import keccak256 from "keccak256"; + +class MerkleTreeFactory { + merkleTree: MerkleTree; + + constructor(whitellist: Array) { + const leaves = whitellist.map((addr) => keccak256(addr)); + this.merkleTree = new MerkleTree(leaves, keccak256, { sortPairs: true }); + } + + getProof = (address: string): any => this.merkleTree.getHexProof(keccak256(address)); + + verify = (address: string): boolean => { + const merkleRoot = this.merkleTree.getHexRoot(); + const proof = this.getProof(address); + + return this.merkleTree.verify(proof, keccak256(address), merkleRoot); + }; +} + +export const useMerkleTree = (whitellist: Array): MerkleTreeFactory => { + const merkleTree = React.useMemo(() => new MerkleTreeFactory(whitellist), [whitellist]); + + return merkleTree; +}; diff --git a/src/hooks/useMushroomNft.tsx b/src/hooks/useMushroomNft.tsx new file mode 100644 index 00000000..37015475 --- /dev/null +++ b/src/hooks/useMushroomNft.tsx @@ -0,0 +1,23 @@ +import React, { useState } from "react"; +import { ethers } from "ethers"; +import { Contract } from "ethers-multicall"; +import { IMushroomNftContext } from "../state"; + +export const useMushroomNft = (): IMushroomNftContext => { + const [mushroomNft, setMushroomNft] = useState(); + const [mushroomNftRead, setMushroomNftRead] = useState(); + + const setCurrentMushroomNft = React.useCallback((currentMushroomNft: ethers.Contract): void => { + setMushroomNft(currentMushroomNft); + }, []); + const setCurrentMushroomNftRead = React.useCallback((currentMushroomNftRead: Contract): void => { + setMushroomNftRead(currentMushroomNftRead); + }, []); + + return { + mushroomNft, + setCurrentMushroomNft, + mushroomNftRead, + setCurrentMushroomNftRead, + }; +}; diff --git a/src/hooks/useNetworks.tsx b/src/hooks/useNetworks.tsx index 7f03eb4c..062552b3 100644 --- a/src/hooks/useNetworks.tsx +++ b/src/hooks/useNetworks.tsx @@ -1,13 +1,14 @@ import React, { useState } from "react"; -import { NetworkContext } from "../state/NetworkContext"; +import { INetworkContext } from "../state"; -export const useNetworks = (): NetworkContext => { - const [chainId, setChainId] = useState(); +export const useNetworks = (): INetworkContext => { + const [chainId, setChainId] = useState(1); const [name, setName] = useState(); const [wethAddress, setWETHAddress] = useState(""); const [daiAddress, setDAIAddress] = useState(""); const [maticAddress, setMATICAddress] = useState(); const [wallet, setWallet] = useState(); + const [isBrowserWallet, setIsBrowserWallet] = useState(); const setCurrentChainId = React.useCallback((currentChainId: number): void => { setChainId(currentChainId); @@ -27,6 +28,9 @@ export const useNetworks = (): NetworkContext => { const setCurrentWallet = React.useCallback((currentWallet: string): void => { setWallet(currentWallet); }, []); + const setCurrentIsBrowserWallet = React.useCallback((currentIsBrowserWallet: boolean): void => { + setIsBrowserWallet(currentIsBrowserWallet); + }, []); return { chainId, setCurrentChainId, @@ -40,5 +44,7 @@ export const useNetworks = (): NetworkContext => { setCurrentMATICAddress, wallet, setCurrentWallet, + isBrowserWallet, + setCurrentIsBrowserWallet, }; }; diff --git a/src/hooks/useOptimism.tsx b/src/hooks/useOptimism.tsx new file mode 100644 index 00000000..d21a461f --- /dev/null +++ b/src/hooks/useOptimism.tsx @@ -0,0 +1,52 @@ +import React, { useState } from "react"; +import { Contract } from "ethers-multicall"; +import { IOptimismContext } from "../state"; + +export const useOptimism = (): IOptimismContext => { + const [tcapTokenRead, setTcapTokenRead] = useState(); + const [tcapOracleRead, setTcapOracleRead] = useState(); + const [wethOracleRead, setWethOracleRead] = useState(); + const [daiOracleRead, setDaiOracleRead] = useState(); + const [linkOracleRead, setLinkOracleRead] = useState(); + const [snxOracleRead, setSnxOracleRead] = useState(); + const [uniOracleRead, setUniOracleRead] = useState(); + + const setCurrentTcapTokenRead = React.useCallback((currentTcapTokenRead: Contract): void => { + setTcapTokenRead(currentTcapTokenRead); + }, []); + const setCurrentTcapOracleRead = React.useCallback((currentTcapOracleRead: Contract): void => { + setTcapOracleRead(currentTcapOracleRead); + }, []); + const setCurrentWethOracleRead = React.useCallback((currentWethOracleRead: Contract): void => { + setWethOracleRead(currentWethOracleRead); + }, []); + const setCurrentDaiOracleRead = React.useCallback((currentDaiOracleRead: Contract): void => { + setDaiOracleRead(currentDaiOracleRead); + }, []); + const setCurrentLinkOracleRead = React.useCallback((currentLinkOracleRead: Contract): void => { + setLinkOracleRead(currentLinkOracleRead); + }, []); + const setCurrentSnxOracleRead = React.useCallback((currentSnxOracleRead: Contract): void => { + setSnxOracleRead(currentSnxOracleRead); + }, []); + const setCurrentUniOracleRead = React.useCallback((currentUniOracleRead: Contract): void => { + setUniOracleRead(currentUniOracleRead); + }, []); + + return { + tcapTokenRead, + setCurrentTcapTokenRead, + tcapOracleRead, + setCurrentTcapOracleRead, + wethOracleRead, + setCurrentWethOracleRead, + daiOracleRead, + setCurrentDaiOracleRead, + linkOracleRead, + setCurrentLinkOracleRead, + snxOracleRead, + setCurrentSnxOracleRead, + uniOracleRead, + setCurrentUniOracleRead, + }; +}; diff --git a/src/hooks/useOracles.tsx b/src/hooks/useOracles.tsx index 84864a6e..8cefa751 100644 --- a/src/hooks/useOracles.tsx +++ b/src/hooks/useOracles.tsx @@ -1,23 +1,31 @@ import React, { useState } from "react"; import { ethers } from "ethers"; import { Contract } from "ethers-multicall"; -import { OraclesContext } from "../state/OraclesContext"; +import { IOraclesContext } from "../state"; -export const useOracles = (): OraclesContext => { +export const useOracles = (): IOraclesContext => { const [wethOracle, setETHOracle] = useState(); const [daiOracle, setDAIOracle] = useState(); const [wbtcOracle, setWBTCOracle] = useState(); + const [jpegzOracle, setJPEGZOracle] = useState(); const [tcapOracle, setTCAPOracle] = useState(); const [aaveOracle, setAAVEOracle] = useState(); const [linkOracle, setLINKOracle] = useState(); + const [snxOracle, setSNXOracle] = useState(); + const [uniOracle, setUNIOracle] = useState(); const [maticOracle, setMATICOracle] = useState(); + const [usdcOracle, setUSDCOracle] = useState(); const [wethOracleRead, setETHOracleRead] = useState(); const [daiOracleRead, setDAIOracleRead] = useState(); const [wbtcOracleRead, setWBTCOracleRead] = useState(); + const [jpegzOracleRead, setJPEGZOracleRead] = useState(); const [tcapOracleRead, setTCAPOracleRead] = useState(); const [aaveOracleRead, setAAVEOracleRead] = useState(); const [linkOracleRead, setLINKOracleRead] = useState(); + const [snxOracleRead, setSNXOracleRead] = useState(); + const [uniOracleRead, setUNIOracleRead] = useState(); const [maticOracleRead, setMATICOracleRead] = useState(); + const [usdcOracleRead, setUSDCOracleRead] = useState(); const setCurrentWETHOracle = React.useCallback((currentWETHOracle: ethers.Contract): void => { setETHOracle(currentWETHOracle); @@ -28,6 +36,9 @@ export const useOracles = (): OraclesContext => { const setCurrentWBTCOracle = React.useCallback((currentWBTCOracle: ethers.Contract): void => { setWBTCOracle(currentWBTCOracle); }, []); + const setCurrentJPEGZOracle = React.useCallback((currentJPEGZOracle: ethers.Contract): void => { + setJPEGZOracle(currentJPEGZOracle); + }, []); const setCurrentTCAPOracle = React.useCallback((currentTCAPOracle: ethers.Contract): void => { setTCAPOracle(currentTCAPOracle); }, []); @@ -37,9 +48,18 @@ export const useOracles = (): OraclesContext => { const setCurrentLINKOracle = React.useCallback((currentLINKOracle: ethers.Contract): void => { setLINKOracle(currentLINKOracle); }, []); + const setCurrentSNXOracle = React.useCallback((currentSNXOracle: ethers.Contract): void => { + setSNXOracle(currentSNXOracle); + }, []); + const setCurrentUNIOracle = React.useCallback((currentUNIOracle: ethers.Contract): void => { + setUNIOracle(currentUNIOracle); + }, []); const setCurrentMATICOracle = React.useCallback((currentMATICOracle: ethers.Contract): void => { setMATICOracle(currentMATICOracle); }, []); + const setCurrentUSDCOracle = React.useCallback((currentUSDCOracle: ethers.Contract): void => { + setUSDCOracle(currentUSDCOracle); + }, []); const setCurrentWETHOracleRead = React.useCallback((currentWETHOracleRead: Contract): void => { setETHOracleRead(currentWETHOracleRead); }, []); @@ -49,6 +69,9 @@ export const useOracles = (): OraclesContext => { const setCurrentWBTCOracleRead = React.useCallback((currentWBTCOracleRead: Contract): void => { setWBTCOracleRead(currentWBTCOracleRead); }, []); + const setCurrentJPEGZOracleRead = React.useCallback((currentJPEGZOracleRead: Contract): void => { + setJPEGZOracleRead(currentJPEGZOracleRead); + }, []); const setCurrentTCAPOracleRead = React.useCallback((currentTCAPOracleRead: Contract): void => { setTCAPOracleRead(currentTCAPOracleRead); }, []); @@ -58,9 +81,18 @@ export const useOracles = (): OraclesContext => { const setCurrentLINKOracleRead = React.useCallback((currentLINKOracleRead: Contract): void => { setLINKOracleRead(currentLINKOracleRead); }, []); + const setCurrentSNXOracleRead = React.useCallback((currentSNXOracleRead: Contract): void => { + setSNXOracleRead(currentSNXOracleRead); + }, []); + const setCurrentUNIOracleRead = React.useCallback((currentUNIOracleRead: Contract): void => { + setUNIOracleRead(currentUNIOracleRead); + }, []); const setCurrentMATICOracleRead = React.useCallback((currentMATICOracleRead: Contract): void => { setMATICOracleRead(currentMATICOracleRead); }, []); + const setCurrentUSDCOracleRead = React.useCallback((currentUSDCOracleRead: Contract): void => { + setUSDCOracleRead(currentUSDCOracleRead); + }, []); return { wethOracle, setCurrentWETHOracle, @@ -68,27 +100,43 @@ export const useOracles = (): OraclesContext => { setCurrentDAIOracle, wbtcOracle, setCurrentWBTCOracle, + jpegzOracle, + setCurrentJPEGZOracle, tcapOracle, setCurrentTCAPOracle, aaveOracle, setCurrentAAVEOracle, linkOracle, setCurrentLINKOracle, + snxOracle, + setCurrentSNXOracle, + uniOracle, + setCurrentUNIOracle, maticOracle, setCurrentMATICOracle, + usdcOracle, + setCurrentUSDCOracle, wethOracleRead, setCurrentWETHOracleRead, daiOracleRead, setCurrentDAIOracleRead, wbtcOracleRead, setCurrentWBTCOracleRead, + jpegzOracleRead, + setCurrentJPEGZOracleRead, tcapOracleRead, setCurrentTCAPOracleRead, aaveOracleRead, setCurrentAAVEOracleRead, linkOracleRead, setCurrentLINKOracleRead, + snxOracleRead, + setCurrentSNXOracleRead, + uniOracleRead, + setCurrentUNIOracleRead, maticOracleRead, setCurrentMATICOracleRead, + usdcOracleRead, + setCurrentUSDCOracleRead, }; }; diff --git a/src/hooks/usePrices.tsx b/src/hooks/usePrices.tsx new file mode 100644 index 00000000..09d19cc4 --- /dev/null +++ b/src/hooks/usePrices.tsx @@ -0,0 +1,114 @@ +import { useContext, useEffect, useState } from "react"; +import { ethers, BigNumber } from "ethers"; +import { oraclesContext, networkContext, signerContext } from "../state/index"; +import { isArbitrum, isInLayer1, validOracles } from "../utils/utils"; +import { OraclePricesType } from "./types"; + +export const usePrices = (): [OraclePricesType, boolean] => { + const currentNetwork = useContext(networkContext); + const oracles = useContext(oraclesContext); + const signer = useContext(signerContext); + const [loadingPrices, setLoadingPrices] = useState(true); + const [oraclePrices, setOraclePrices] = useState({ + jpegzOraclePrice: "0", + jpegzMarketCap: "0", + tcapOraclePrice: "0", + tcapMarketCap: "0", + wethOraclePrice: "0", + daiOraclePrice: "0", + aaveOraclePrice: "0", + linkOraclePrice: "0", + uniOraclePrice: "0", + snxOraclePrice: "0", + maticOraclePrice: "0", + wbtcOraclePrice: "0", + usdcOraclePrice: "0", + }); + + const loadPrices = async () => { + if (signer && oracles && validOracles(currentNetwork.chainId || 1, oracles)) { + const daiOraclePriceCall = oracles.daiOracleRead?.getLatestAnswer(); + + const ethcalls = [daiOraclePriceCall]; + if (isInLayer1(currentNetwork.chainId)) { + const tcapOraclePriceCall = oracles.tcapOracleRead?.getLatestAnswer(); + const wethOraclePriceCall = oracles.wethOracleRead?.getLatestAnswer(); + const aaveOraclePriceCall = oracles.aaveOracleRead?.getLatestAnswer(); + const linkOraclePriceCall = oracles.linkOracleRead?.getLatestAnswer(); + const usdcOraclePriceCall = oracles.usdcOracleRead?.getLatestAnswer(); + const wbtcOraclePriceCall = oracles.wbtcOracleRead?.getLatestAnswer(); + ethcalls.push(tcapOraclePriceCall); + ethcalls.push(wethOraclePriceCall); + ethcalls.push(aaveOraclePriceCall); + ethcalls.push(linkOraclePriceCall); + ethcalls.push(usdcOraclePriceCall); + ethcalls.push(wbtcOraclePriceCall); + } + if (isArbitrum(currentNetwork.chainId)) { + const jpegzPriceCall = oracles.jpegzOracleRead?.getLatestAnswer(); + const wethOraclePriceCall = oracles.wethOracleRead?.getLatestAnswer(); + ethcalls.push(jpegzPriceCall); + ethcalls.push(wethOraclePriceCall); + } + + let jpegzOraclePrice = BigNumber.from(0); + let tcapOraclePrice = BigNumber.from(0); + let wethOraclePrice = BigNumber.from(0); + let daiOraclePrice = BigNumber.from(0); + let aaveOraclePrice = BigNumber.from(0); + let linkOraclePrice = BigNumber.from(0); + let snxOraclePrice = BigNumber.from(0); + let uniOraclePrice = BigNumber.from(0); + let maticOraclePrice = BigNumber.from(0); + let wbtcOraclePrice = BigNumber.from(0); + let usdcOraclePrice = BigNumber.from(0); + + if (isInLayer1(currentNetwork.chainId)) { + // @ts-ignore + [ + daiOraclePrice, + tcapOraclePrice, + wethOraclePrice, + aaveOraclePrice, + linkOraclePrice, + usdcOraclePrice, + wbtcOraclePrice, + ] = await signer.ethcallProvider?.all(ethcalls); + } else { + // @ts-ignore + [daiOraclePrice, jpegzOraclePrice, wethOraclePrice] = await signer.ethcallProvider?.all( + ethcalls + ); + } + + setOraclePrices({ + jpegzOraclePrice: ethers.utils.formatEther(jpegzOraclePrice.mul(10)), + jpegzMarketCap: ethers.utils.formatEther(jpegzOraclePrice.mul(10000000000)), + tcapOraclePrice: ethers.utils.formatEther(tcapOraclePrice), + tcapMarketCap: ethers.utils.formatEther(tcapOraclePrice.mul(10000000000)), + wethOraclePrice: ethers.utils.formatEther(wethOraclePrice.mul(10000000000)), + daiOraclePrice: ethers.utils.formatEther(daiOraclePrice.mul(10000000000)), + aaveOraclePrice: ethers.utils.formatEther(aaveOraclePrice.mul(10000000000)), + linkOraclePrice: ethers.utils.formatEther(linkOraclePrice.mul(10000000000)), + uniOraclePrice: ethers.utils.formatEther(uniOraclePrice.mul(10000000000)), + snxOraclePrice: ethers.utils.formatEther(snxOraclePrice.mul(10000000000)), + maticOraclePrice: ethers.utils.formatEther(maticOraclePrice.mul(10000000000)), + wbtcOraclePrice: ethers.utils.formatEther(wbtcOraclePrice.mul(10000000000)), + usdcOraclePrice: ethers.utils.formatEther(usdcOraclePrice.mul(10000000000)), + }); + setLoadingPrices(false); + } + }; + + useEffect( + () => { + if (signer.ethcallProvider) { + loadPrices(); + } + }, + // eslint-disable-next-line + [signer.ethcallProvider] + ); + + return [oraclePrices, loadingPrices]; +}; diff --git a/src/hooks/usePrices2.tsx b/src/hooks/usePrices2.tsx new file mode 100644 index 00000000..00a63069 --- /dev/null +++ b/src/hooks/usePrices2.tsx @@ -0,0 +1,132 @@ +import { useContext, useEffect, useState } from "react"; +import { ethers, BigNumber } from "ethers"; +import { Provider } from "ethers-multicall"; +import { arbitrumContext, ethereumContext } from "../state/index"; +import { isArbitrum, isInLayer1, validOracles } from "../utils/utils"; +import { OraclePricesType } from "./types"; + +export const usePrices2 = ( + chainId: number, + ethcallProvider: Provider | undefined +): [OraclePricesType, boolean] => { + const arbitrumContracts = useContext(arbitrumContext); + const ethereumContracts = useContext(ethereumContext); + const [loadingPrices, setLoadingPrices] = useState(true); + const [oraclePrices, setOraclePrices] = useState({ + jpegzOraclePrice: "0", + jpegzMarketCap: "0", + tcapOraclePrice: "0", + tcapMarketCap: "0", + wethOraclePrice: "0", + daiOraclePrice: "0", + aaveOraclePrice: "0", + linkOraclePrice: "0", + uniOraclePrice: "0", + snxOraclePrice: "0", + maticOraclePrice: "0", + wbtcOraclePrice: "0", + usdcOraclePrice: "0", + }); + + const loadPricesArbitrum = async () => { + const jpegzPriceCall = arbitrumContracts.jpegzOracleRead?.getLatestAnswer(); + const wethOraclePriceCall = arbitrumContracts.wethOracleRead?.getLatestAnswer(); + const daiOraclePriceCall = arbitrumContracts.daiOracleRead?.getLatestAnswer(); + + let jpegzOraclePrice = BigNumber.from(0); + let wethOraclePrice = BigNumber.from(0); + let daiOraclePrice = BigNumber.from(0); + + // @ts-ignore + [jpegzOraclePrice, wethOraclePrice, daiOraclePrice] = await ethcallProvider?.all([ + jpegzPriceCall, + wethOraclePriceCall, + daiOraclePriceCall, + ]); + const marketCap = jpegzOraclePrice.mul(10000000000); + const p = oraclePrices; + p.jpegzOraclePrice = ethers.utils.formatEther(jpegzOraclePrice.mul(10)); + p.jpegzMarketCap = ethers.utils.formatEther(marketCap); + p.wethOraclePrice = ethers.utils.formatEther(wethOraclePrice.mul(10000000000)); + p.daiOraclePrice = ethers.utils.formatEther(daiOraclePrice.mul(10000000000)); + setOraclePrices(p); + }; + + const loadPricesEthereum = async () => { + const tcapPriceCall = ethereumContracts.tcapOracleRead?.getLatestAnswer(); + const wethOraclePriceCall = ethereumContracts.wethOracleRead?.getLatestAnswer(); + const daiOraclePriceCall = ethereumContracts.daiOracleRead?.getLatestAnswer(); + const aaveOraclePriceCall = ethereumContracts.aaveOracleRead?.getLatestAnswer(); + const linkOraclePriceCall = ethereumContracts.linkOracleRead?.getLatestAnswer(); + const wbtcOraclePriceCall = ethereumContracts.wbtcOracleRead?.getLatestAnswer(); + const usdcOraclePriceCall = ethereumContracts.usdcOracleRead?.getLatestAnswer(); + + let tcapOraclePrice = BigNumber.from(0); + let wethOraclePrice = BigNumber.from(0); + let daiOraclePrice = BigNumber.from(0); + let aaveOraclePrice = BigNumber.from(0); + let linkOraclePrice = BigNumber.from(0); + let wbtcOraclePrice = BigNumber.from(0); + let usdcOraclePrice = BigNumber.from(0); + + // @ts-ignore + [ + tcapOraclePrice, + wethOraclePrice, + daiOraclePrice, + aaveOraclePrice, + linkOraclePrice, + wbtcOraclePrice, + usdcOraclePrice, + ] = await ethcallProvider?.all([ + tcapPriceCall, + wethOraclePriceCall, + daiOraclePriceCall, + aaveOraclePriceCall, + linkOraclePriceCall, + wbtcOraclePriceCall, + usdcOraclePriceCall, + ]); + const marketCap = tcapOraclePrice.mul(10000000000); + + setOraclePrices({ + jpegzOraclePrice: "0", + jpegzMarketCap: "0", + tcapOraclePrice: ethers.utils.formatEther(tcapOraclePrice), + tcapMarketCap: ethers.utils.formatEther(marketCap), + wethOraclePrice: ethers.utils.formatEther(wethOraclePrice.mul(10000000000)), + daiOraclePrice: ethers.utils.formatEther(daiOraclePrice.mul(10000000000)), + aaveOraclePrice: ethers.utils.formatEther(aaveOraclePrice.mul(10000000000)), + linkOraclePrice: ethers.utils.formatEther(linkOraclePrice.mul(10000000000)), + uniOraclePrice: "0", + snxOraclePrice: "0", + maticOraclePrice: "0", + wbtcOraclePrice: ethers.utils.formatEther(wbtcOraclePrice.mul(10000000000)), + usdcOraclePrice: ethers.utils.formatEther(usdcOraclePrice.mul(10000000000)), + }); + }; + + const loadPrices = async () => { + if (arbitrumContracts && ethereumContracts) { + if (isArbitrum(chainId) && validOracles(chainId, arbitrumContracts)) { + await loadPricesArbitrum(); + } + if (isInLayer1(chainId) && validOracles(chainId, ethereumContracts)) { + await loadPricesEthereum(); + } + setLoadingPrices(false); + } + }; + + useEffect( + () => { + if (ethcallProvider) { + loadPrices(); + } + }, + // eslint-disable-next-line + [chainId, ethcallProvider] + ); + + return [oraclePrices, loadingPrices]; +}; diff --git a/src/hooks/useRatios.tsx b/src/hooks/useRatios.tsx new file mode 100644 index 00000000..e7b84e59 --- /dev/null +++ b/src/hooks/useRatios.tsx @@ -0,0 +1,136 @@ +import { useContext, useEffect, useState } from "react"; +import { hardVaultsContext, networkContext, signerContext, vaultsContext } from "../state/index"; +import { + isArbitrum, + isInLayer1, + isOptimism, + isPolygon, + validVaults, + validHardVaults, +} from "../utils/utils"; +import { VaultsRatioType } from "../components/Vaults/types"; + +export const useRatios = (): VaultsRatioType => { + const currentNetwork = useContext(networkContext); + const vaults = useContext(vaultsContext); + const hardVaults = useContext(hardVaultsContext); + const signer = useContext(signerContext); + const [vaultsRatio, setVaultsRatio] = useState({ + ethRatio: 150, + wethRatio: 200, + daiRatio: 200, + aaveRatio: 200, + linkRatio: 200, + uniRatio: 200, + snxRatio: 200, + maticRatio: 200, + wbtcRatio: 200, + hardEthRatio: 125, + hardWethRatio: 125, + hardDaiRatio: 125, + hardUsdcRatio: 125, + hardWbtcRatio: 125, + }); + + const loadRatios = async () => { + if ( + signer && + vaults && + hardVaults && + validVaults(currentNetwork.chainId || 1, vaults) && + validHardVaults(currentNetwork.chainId || 1, hardVaults) + ) { + const daiRatioCall = await vaults.daiVaultRead?.ratio(); + const ethcalls = [daiRatioCall]; + + if (isInLayer1(currentNetwork.chainId)) { + const wethRatioCall = await vaults.wethVaultRead?.ratio(); + const aaveRatioCall = await vaults.aaveVaultRead?.ratio(); + const linkRatioCall = await vaults.linkVaultRead?.ratio(); + const hardWethRatioCall = await hardVaults.wethVaultRead?.ratio(); + const hardDaiRatioCall = await hardVaults.daiVaultRead?.ratio(); + const hardUsdcRatioCall = await hardVaults.usdcVaultRead?.ratio(); + ethcalls.push(wethRatioCall); + ethcalls.push(aaveRatioCall); + ethcalls.push(linkRatioCall); + ethcalls.push(hardWethRatioCall); + ethcalls.push(hardDaiRatioCall); + ethcalls.push(hardUsdcRatioCall); + } + if (isOptimism(currentNetwork.chainId)) { + const wethRatioCall = await vaults.wethVaultRead?.ratio(); + const linkRatioCall = await vaults.linkVaultRead?.ratio(); + const snxRatioCall = await vaults.snxVaultRead?.ratio(); + const uniRatioCall = await vaults.uniVaultRead?.ratio(); + ethcalls.push(wethRatioCall); + ethcalls.push(linkRatioCall); + ethcalls.push(snxRatioCall); + ethcalls.push(uniRatioCall); + } + if (isPolygon(currentNetwork.chainId)) { + const maticRatioCall = await vaults.maticVaultRead?.ratio(); + const wbtcRatioCall = await vaults.wbtcVaultRead?.ratio(); + ethcalls.push(maticRatioCall); + ethcalls.push(wbtcRatioCall); + } + if (isArbitrum(currentNetwork.chainId)) { + const wethRatioCall = await vaults.wethVaultRead?.ratio(); + ethcalls.push(wethRatioCall); + } + let ethRatio = 0; + let daiRatio = 0; + let aaveRatio = 0; + let linkRatio = 0; + let snxRatio = 0; + let uniRatio = 0; + let maticRatio = 0; + let wbtcRatio = 0; + let hardEthRatio = 0; + let hardDaiRatio = 0; + let hardUsdcRatio = 0; + let hardWbtcRatio = 0; + if (isInLayer1(currentNetwork.chainId)) { + // @ts-ignore + [daiRatio, ethRatio, aaveRatio, linkRatio, hardEthRatio, hardDaiRatio, hardUsdcRatio] = + await signer.ethcallProvider?.all(ethcalls); + } else if (isOptimism(currentNetwork.chainId)) { + // @ts-ignore + [daiRatio, ethRatio, linkRatio, snxRatio, uniRatio] = await signer.ethcallProvider?.all( + ethcalls + ); + } else if (isPolygon(currentNetwork.chainId)) { + // @ts-ignore + [daiRatio, maticRatio, wbtcRatio] = await signer.ethcallProvider?.all(ethcalls); + } else { + // @ts-ignore + [daiRatio, ethRatio] = await signer.ethcallProvider?.all(ethcalls); + } + setVaultsRatio({ + ethRatio, + wethRatio: ethRatio, + daiRatio, + aaveRatio, + linkRatio, + uniRatio, + snxRatio, + maticRatio, + wbtcRatio, + hardEthRatio, + hardWethRatio: hardEthRatio, + hardDaiRatio, + hardUsdcRatio, + hardWbtcRatio, + }); + } + }; + + useEffect( + () => { + loadRatios(); + }, + // eslint-disable-next-line + [] + ); + + return vaultsRatio; +}; diff --git a/src/hooks/useRewards.tsx b/src/hooks/useRewards.tsx index ad4513be..572bbb72 100644 --- a/src/hooks/useRewards.tsx +++ b/src/hooks/useRewards.tsx @@ -1,9 +1,9 @@ import React, { useState } from "react"; import { ethers } from "ethers"; import { Contract } from "ethers-multicall"; -import { RewardsContext } from "../state/RewardsContext"; +import { IRewardsContext } from "../state"; -export const useRewards = (): RewardsContext => { +export const useRewards = (): IRewardsContext => { const [wethReward, setWETHReward] = useState(); const [daiReward, setDAIReward] = useState(); const [wbtcReward, setWBTCReward] = useState(); diff --git a/src/hooks/useSigner.tsx b/src/hooks/useSigner.tsx index b2828525..06c4d4d9 100644 --- a/src/hooks/useSigner.tsx +++ b/src/hooks/useSigner.tsx @@ -2,9 +2,9 @@ import React, { useState } from "react"; import { ethers } from "ethers"; import { Provider } from "ethers-multicall"; -import { SignerContext } from "../state/SignerContext"; +import { ISignerContext } from "../state"; -export const useSigner = (): SignerContext => { +export const useSigner = (): ISignerContext => { const [signer, setSigner] = useState(); const [ethcallProvider, setEthcallProvider] = useState(); const setCurrentSigner = React.useCallback((currentSigner: ethers.Signer): void => { diff --git a/src/hooks/useTokens.tsx b/src/hooks/useTokens.tsx index 195360b2..9d6a0a4a 100644 --- a/src/hooks/useTokens.tsx +++ b/src/hooks/useTokens.tsx @@ -1,17 +1,21 @@ import React, { useState } from "react"; import { ethers } from "ethers"; import { Contract } from "ethers-multicall"; -import { TokensContext } from "../state/TokensContext"; +import { ITokensContext } from "../state"; -export const useTokens = (): TokensContext => { +export const useTokens = (): ITokensContext => { const [wethToken, setETHToken] = useState(); const [daiToken, setDAIToken] = useState(); const [wbtcToken, setWBTCToken] = useState(); + const [jpegzToken, setJPEGZToken] = useState(); const [tcapToken, setTCAPToken] = useState(); const [ctxToken, setCtxToken] = useState(); const [aaveToken, setAAVEToken] = useState(); const [linkToken, setLINKToken] = useState(); + const [snxToken, setSNXToken] = useState(); + const [uniToken, setUNIToken] = useState(); const [maticToken, setMATICToken] = useState(); + const [usdcToken, setUSDCToken] = useState(); const [wethPoolToken, setWETHPoolToken] = useState(); const [daiPoolToken, setDAIPoolToken] = useState(); const [wbtcPoolToken, setWBTCPoolToken] = useState(); @@ -19,11 +23,15 @@ export const useTokens = (): TokensContext => { const [wethTokenRead, setETHTokenRead] = useState(); const [daiTokenRead, setDAITokenRead] = useState(); const [wbtcTokenRead, setWBTCTokenRead] = useState(); + const [jpegzTokenRead, setJPEGZTokenRead] = useState(); const [tcapTokenRead, setTCAPTokenRead] = useState(); const [ctxTokenRead, setCtxTokenRead] = useState(); const [aaveTokenRead, setAAVETokenRead] = useState(); const [linkTokenRead, setLINKTokenRead] = useState(); + const [snxTokenRead, setSNXTokenRead] = useState(); + const [uniTokenRead, setUNITokenRead] = useState(); const [maticTokenRead, setMATICTokenRead] = useState(); + const [usdcTokenRead, setUSDCTokenRead] = useState(); const [wethPoolTokenRead, setWETHPoolTokenRead] = useState(); const [daiPoolTokenRead, setDAIPoolTokenRead] = useState(); const [wbtcPoolTokenRead, setWBTCPoolTokenRead] = useState(); @@ -38,6 +46,9 @@ export const useTokens = (): TokensContext => { const setCurrentWBTCToken = React.useCallback((currentWBTCToken: ethers.Contract): void => { setWBTCToken(currentWBTCToken); }, []); + const setCurrentJPEGZToken = React.useCallback((currentJPEGZToken: ethers.Contract): void => { + setJPEGZToken(currentJPEGZToken); + }, []); const setCurrentTCAPToken = React.useCallback((currentTCAPToken: ethers.Contract): void => { setTCAPToken(currentTCAPToken); }, []); @@ -50,9 +61,18 @@ export const useTokens = (): TokensContext => { const setCurrentLINKToken = React.useCallback((currentLINKToken: ethers.Contract): void => { setLINKToken(currentLINKToken); }, []); + const setCurrentSNXToken = React.useCallback((currentSNXToken: ethers.Contract): void => { + setSNXToken(currentSNXToken); + }, []); + const setCurrentUNIToken = React.useCallback((currentUNIToken: ethers.Contract): void => { + setUNIToken(currentUNIToken); + }, []); const setCurrentMATICToken = React.useCallback((currentMATIC: ethers.Contract): void => { setMATICToken(currentMATIC); }, []); + const setCurrentUSDCToken = React.useCallback((currentUSDC: ethers.Contract): void => { + setUSDCToken(currentUSDC); + }, []); const setCurrentWETHPoolToken = React.useCallback( (currentWETHPoolToken: ethers.Contract): void => { setWETHPoolToken(currentWETHPoolToken); @@ -80,6 +100,9 @@ export const useTokens = (): TokensContext => { const setCurrentWBTCTokenRead = React.useCallback((currentWBTCTokenRead: Contract): void => { setWBTCTokenRead(currentWBTCTokenRead); }, []); + const setCurrentJPEGZTokenRead = React.useCallback((currentJPEGZTokenRead: Contract): void => { + setJPEGZTokenRead(currentJPEGZTokenRead); + }, []); const setCurrentTCAPTokenRead = React.useCallback((currentTCAPTokenRead: Contract): void => { setTCAPTokenRead(currentTCAPTokenRead); }, []); @@ -92,9 +115,18 @@ export const useTokens = (): TokensContext => { const setCurrentLINKTokenRead = React.useCallback((currentLINKTokenRead: Contract): void => { setLINKTokenRead(currentLINKTokenRead); }, []); + const setCurrentSNXTokenRead = React.useCallback((currentSNXTokenRead: Contract): void => { + setSNXTokenRead(currentSNXTokenRead); + }, []); + const setCurrentUNITokenRead = React.useCallback((currentUNITokenRead: Contract): void => { + setUNITokenRead(currentUNITokenRead); + }, []); const setCurrentMATICTokenRead = React.useCallback((currentMATICRead: Contract): void => { setMATICTokenRead(currentMATICRead); }, []); + const setCurrentUSDCTokenRead = React.useCallback((currentUSDCRead: Contract): void => { + setUSDCTokenRead(currentUSDCRead); + }, []); const setCurrentWETHPoolTokenRead = React.useCallback( (currentWETHPoolTokenRead: Contract): void => { setWETHPoolTokenRead(currentWETHPoolTokenRead); @@ -127,6 +159,8 @@ export const useTokens = (): TokensContext => { setCurrentDAIToken, wbtcToken, setCurrentWBTCToken, + jpegzToken, + setCurrentJPEGZToken, tcapToken, setCurrentTCAPToken, ctxToken, @@ -135,8 +169,14 @@ export const useTokens = (): TokensContext => { setCurrentAAVEToken, linkToken, setCurrentLINKToken, + snxToken, + setCurrentSNXToken, + uniToken, + setCurrentUNIToken, maticToken, setCurrentMATICToken, + usdcToken, + setCurrentUSDCToken, wethPoolToken, setCurrentWETHPoolToken, daiPoolToken, @@ -151,6 +191,8 @@ export const useTokens = (): TokensContext => { setCurrentDAITokenRead, wbtcTokenRead, setCurrentWBTCTokenRead, + jpegzTokenRead, + setCurrentJPEGZTokenRead, tcapTokenRead, setCurrentTCAPTokenRead, ctxTokenRead, @@ -159,8 +201,14 @@ export const useTokens = (): TokensContext => { setCurrentAAVETokenRead, linkTokenRead, setCurrentLINKTokenRead, + snxTokenRead, + setCurrentSNXTokenRead, + uniTokenRead, + setCurrentUNITokenRead, maticTokenRead, setCurrentMATICTokenRead, + usdcTokenRead, + setCurrentUSDCTokenRead, wethPoolTokenRead, setCurrentWETHPoolTokenRead, daiPoolTokenRead, diff --git a/src/hooks/useVault.tsx b/src/hooks/useVault.tsx new file mode 100644 index 00000000..ea13fc79 --- /dev/null +++ b/src/hooks/useVault.tsx @@ -0,0 +1,197 @@ +import { useContext, useEffect, useState } from "react"; +import { ethers } from "ethers"; +import { Contract } from "ethers-multicall"; +import { + hardVaultsContext, + oraclesContext, + networkContext, + signerContext, + tokensContext, + vaultsContext, +} from "../state/index"; +import { validVaults, validHardVaults } from "../utils/utils"; +import { NETWORKS, TOKENS_SYMBOLS } from "../utils/constants"; + +type contractsType = { + currentAsset: ethers.Contract | null; + currentCollateral: ethers.Contract | null; + currentVault: ethers.Contract | null; + currentAssetRead: Contract | null; + currentCollateralRead: Contract | null; + currentVaultRead: Contract | null; + currentCollateralOracleRead: Contract | null; + currentAssetOracleRead: Contract | null; +}; + +export const useVault = ( + assetSymbol: string, + collateralSymbol: string, + isHardVault: boolean +): [contractsType, boolean] => { + const currentNetwork = useContext(networkContext); + const signer = useContext(signerContext); + const oracles = useContext(oraclesContext); + const hardVaults = useContext(hardVaultsContext); + const vaults = useContext(vaultsContext); + const tokens = useContext(tokensContext); + + const [loadingVault, setLoadingVault] = useState(true); + const [currentAsset, setCurrentAsset] = useState(null); + const [currentCollateral, setCurrentCollateral] = useState(null); + const [currentVault, setCurrentVault] = useState(null); + const [currentAssetRead, setCurrentAssetRead] = useState(null); + const [currentCollateralRead, setCurrentCollateralRead] = useState(null); + const [currentVaultRead, setCurrentVaultRead] = useState(null); + const [currentOracleRead, setCurrentOracleRead] = useState(null); + const [currentAssetOracleRead, setCurrentAssetOracleRead] = useState(null); + + const loadContracts = async () => { + let cAsset = tokens.tcapToken; + let cAssetRead = tokens.tcapTokenRead; + let cCollateral = tokens.wethToken; + let cCollateralRead = tokens.wethTokenRead; + let cVault = hardVaults.wethVault; + let cVaultRead = hardVaults.wethVaultRead; + let cOracleRead = oracles.wethOracleRead; + let cAssetOracleRead = oracles.tcapOracleRead; + + if (isHardVault) { + cVault = hardVaults.wethVault; + cVaultRead = hardVaults.wethVaultRead; + } + if (assetSymbol === TOKENS_SYMBOLS.JPEGz) { + cAsset = tokens.jpegzToken; + cAssetRead = tokens.jpegzTokenRead; + cAssetOracleRead = oracles.jpegzOracleRead; + } + + switch (collateralSymbol) { + case TOKENS_SYMBOLS.DAI: + if (isHardVault) { + cVault = hardVaults.daiVault; + cVaultRead = hardVaults.daiVaultRead; + } else { + cVault = vaults.daiVault; + cVaultRead = vaults.daiVaultRead; + } + cCollateral = tokens.daiToken; + cCollateralRead = tokens.daiTokenRead; + cOracleRead = oracles.daiOracleRead; + break; + case TOKENS_SYMBOLS.AAVE: + cVault = vaults.aaveVault; + cVaultRead = vaults.aaveVaultRead; + cCollateral = tokens.aaveToken; + cCollateralRead = tokens.aaveTokenRead; + cOracleRead = oracles.aaveOracleRead; + break; + case TOKENS_SYMBOLS.LINK: + cVault = vaults.linkVault; + cVaultRead = vaults.linkVaultRead; + cCollateral = tokens.daiToken; + cCollateralRead = tokens.daiTokenRead; + cOracleRead = oracles.linkOracleRead; + break; + case TOKENS_SYMBOLS.SNX: + cVault = vaults.snxVault; + cVaultRead = vaults.snxVaultRead; + cCollateral = tokens.snxToken; + cCollateralRead = tokens.snxTokenRead; + cOracleRead = oracles.snxOracleRead; + break; + case TOKENS_SYMBOLS.UNI: + cVault = vaults.uniVault; + cVaultRead = vaults.uniVaultRead; + cCollateral = tokens.uniToken; + cCollateralRead = tokens.uniTokenRead; + cOracleRead = oracles.uniOracleRead; + break; + case TOKENS_SYMBOLS.MATIC: + cVault = vaults.maticVault; + cVaultRead = vaults.maticVaultRead; + cCollateral = tokens.maticToken; + cCollateralRead = tokens.maticTokenRead; + cOracleRead = oracles.maticOracleRead; + break; + case TOKENS_SYMBOLS.WBTC: + if (isHardVault) { + cVault = hardVaults.wbtcVault; + cVaultRead = hardVaults.wbtcVaultRead; + } else { + cVault = vaults.wbtcVault; + cVaultRead = vaults.wbtcVaultRead; + } + cCollateral = tokens.wbtcToken; + cCollateralRead = tokens.wbtcTokenRead; + cOracleRead = oracles.wbtcOracleRead; + break; + case TOKENS_SYMBOLS.USDC: + cVault = hardVaults.usdcVault; + cVaultRead = hardVaults.usdcVaultRead; + cCollateral = tokens.usdcToken; + cCollateralRead = tokens.usdcTokenRead; + cOracleRead = oracles.usdcOracleRead; + break; + default: + if (isHardVault) { + cVault = hardVaults.wethVault; + cVaultRead = hardVaults.wethVaultRead; + } else { + cVault = vaults.wethVault; + cVaultRead = vaults.wethVaultRead; + } + cCollateral = tokens.wethToken; + cCollateralRead = tokens.wethTokenRead; + cOracleRead = oracles.wethOracleRead; + break; + } + + // @ts-ignore + setCurrentAsset(cAsset); + // @ts-ignore + setCurrentCollateral(cCollateral); + // @ts-ignore + setCurrentAssetRead(cAssetRead); + // @ts-ignore + setCurrentCollateralRead(cCollateralRead); + // @ts-ignore + setCurrentVault(cVault); + // @ts-ignore + setCurrentVaultRead(cVaultRead); + // @ts-ignore + setCurrentOracleRead(cOracleRead); + // @ts-ignore + setCurrentAssetOracleRead(cAssetOracleRead); + }; + + useEffect(() => { + const load = async () => { + if ( + signer && + signer.signer && + validVaults(currentNetwork.chainId || NETWORKS.mainnet.chainId, vaults) && + validHardVaults(currentNetwork.chainId || NETWORKS.mainnet.chainId, hardVaults) + ) { + setLoadingVault(true); + await loadContracts(); + setLoadingVault(false); + } + }; + load(); + // eslint-disable-next-line + }, [signer.signer, collateralSymbol, isHardVault]); + + return [ + { + currentAsset, + currentCollateral, + currentVault, + currentAssetRead, + currentCollateralRead, + currentVaultRead, + currentCollateralOracleRead: currentOracleRead, + currentAssetOracleRead, + }, + loadingVault, + ]; +}; diff --git a/src/hooks/useVaults.tsx b/src/hooks/useVaults.tsx index 21fc07cc..ff276b73 100644 --- a/src/hooks/useVaults.tsx +++ b/src/hooks/useVaults.tsx @@ -1,20 +1,24 @@ import React, { useState } from "react"; import { ethers } from "ethers"; import { Contract } from "ethers-multicall"; -import { VaultsContext } from "../state/VaultsContext"; +import { IVaultsContext } from "../state"; -export const useVaults = (): VaultsContext => { +export const useVaults = (): IVaultsContext => { const [wethVault, setWETHVault] = useState(); const [daiVault, setDAIVault] = useState(); const [wbtcVault, setWBTCVault] = useState(); const [aaveVault, setAAVEVault] = useState(); const [linkVault, setLINKVault] = useState(); + const [snxVault, setSNXVault] = useState(); + const [uniVault, setUNIVault] = useState(); const [maticVault, setMaticVault] = useState(); const [wethVaultRead, setWETHVaultRead] = useState(); const [daiVaultRead, setDAIVaultRead] = useState(); const [wbtcVaultRead, setWBTCVaultRead] = useState(); const [aaveVaultRead, setAAVEVaultRead] = useState(); const [linkVaultRead, setLINKVaultRead] = useState(); + const [snxVaultRead, setSNXVaultRead] = useState(); + const [uniVaultRead, setUNIVaultRead] = useState(); const [maticVaultRead, setMaticVaultRead] = useState(); const setCurrentWETHVault = React.useCallback((currentWETHVault: ethers.Contract): void => { @@ -32,6 +36,12 @@ export const useVaults = (): VaultsContext => { const setCurrentLINKVault = React.useCallback((currentLINKVault: ethers.Contract): void => { setLINKVault(currentLINKVault); }, []); + const setCurrentSNXVault = React.useCallback((currentSNXVault: ethers.Contract): void => { + setSNXVault(currentSNXVault); + }, []); + const setCurrentUNIVault = React.useCallback((currentUNIVault: ethers.Contract): void => { + setUNIVault(currentUNIVault); + }, []); const setCurrentMaticVault = React.useCallback((currentMaticVault: ethers.Contract): void => { setMaticVault(currentMaticVault); }, []); @@ -50,6 +60,12 @@ export const useVaults = (): VaultsContext => { const setCurrentLINKVaultRead = React.useCallback((currentLINKVaultRead: Contract): void => { setLINKVaultRead(currentLINKVaultRead); }, []); + const setCurrentSNXVaultRead = React.useCallback((currentSNXVaultRead: Contract): void => { + setSNXVaultRead(currentSNXVaultRead); + }, []); + const setCurrentUNIVaultRead = React.useCallback((currentUNIVaultRead: Contract): void => { + setUNIVaultRead(currentUNIVaultRead); + }, []); const setCurrentMaticVaultRead = React.useCallback((currentMaticVaultRead: Contract): void => { setMaticVaultRead(currentMaticVaultRead); }, []); @@ -64,6 +80,10 @@ export const useVaults = (): VaultsContext => { setCurrentAAVEVault, linkVault, setCurrentLINKVault, + snxVault, + setCurrentSNXVault, + uniVault, + setCurrentUNIVault, maticVault, setCurrentMaticVault, wethVaultRead, @@ -76,6 +96,10 @@ export const useVaults = (): VaultsContext => { setCurrentAAVEVaultRead, linkVaultRead, setCurrentLINKVaultRead, + snxVaultRead, + setCurrentSNXVaultRead, + uniVaultRead, + setCurrentUNIVaultRead, maticVaultRead, setCurrentMaticVaultRead, }; diff --git a/src/hooks/useVaultsSummary.tsx b/src/hooks/useVaultsSummary.tsx new file mode 100644 index 00000000..188dfe02 --- /dev/null +++ b/src/hooks/useVaultsSummary.tsx @@ -0,0 +1,161 @@ +import { useEffect, useState } from "react"; +import { ethers } from "ethers"; +import { gql, useQuery } from "@apollo/client"; +import { OraclePricesType } from "./types"; +import { getCollateralPrice, VAULT_STATUS } from "../components/Vaults/common"; +import { BIG_NUMBER_ZERO } from "../utils/constants"; + +const VAULT_SUMMARY = gql` + query VaultSummary { + protocols { + id + totalCollateral + totalDebt + createdVaults + underlyingToken { + symbol + } + } + vaultSummaryByStatuses { + id + status + totalCollateral + totalDebt + vaultsAmount + underlyingToken { + symbol + } + } + } +`; + +type VaultSummary = { + id: string; + collateral: string; + collateralUsd: string; + debt: string; + vaultsAmount: number; +}; + +export const useVaultsSummary = ( + prices: OraclePricesType, + loadingPrices: boolean +): [() => {}, Array] => { + const { loading, data, refetch } = useQuery(VAULT_SUMMARY, { + fetchPolicy: "no-cache", + notifyOnNetworkStatusChange: true, + }); + const [vaultsSummary, setVaultsSummary] = useState>([]); + + const loadSummary = (protocols: any, vaultSummaryByStatuses: any) => { + const s = new Array(); + if (protocols && Array.isArray(protocols)) { + let totalCollateral = ethers.BigNumber.from("0"); + let totalCollateralUsd = 0; + let totalDebt = ethers.BigNumber.from("0"); + let vaultsAmount = ethers.BigNumber.from("0"); + + protocols.forEach((item: any) => { + const cPrice = getCollateralPrice(prices, item.underlyingToken.symbol); + const collateralUsd = + parseFloat(ethers.utils.formatEther(item.totalCollateral)) * parseFloat(cPrice); + s.push({ + id: item.id, + collateral: item.totalCollateral, + collateralUsd: collateralUsd.toFixed(2), + debt: ethers.utils.formatEther(item.totalDebt), + vaultsAmount: item.createdVaults, + }); + + totalCollateralUsd += collateralUsd; + totalCollateral = totalCollateral.add(item.totalCollateral); + totalDebt = totalDebt.add(item.totalDebt); + vaultsAmount = vaultsAmount.add(item.createdVaults); + }); + s.push({ + id: "all", + collateral: "0", + collateralUsd: totalCollateralUsd.toFixed(2), + debt: ethers.utils.formatEther(totalDebt), + vaultsAmount: vaultsAmount.toNumber(), + }); + } + + if (vaultSummaryByStatuses) { + let vEmptyAmount = 0; + let vReadyAmount = 0; + let vActiveAmount = 0; + let vReadyCollaterall = 0; + let vActiveCollaterall = 0; + let vActiveDebt = BIG_NUMBER_ZERO; + + vaultSummaryByStatuses.forEach((item: any) => { + const cPrice = getCollateralPrice(prices, item.underlyingToken.symbol); + const collateralUsd = + parseFloat(ethers.utils.formatEther(item.totalCollateral)) * parseFloat(cPrice); + + if (item.status === VAULT_STATUS.empty) { + vEmptyAmount += parseInt(item.vaultsAmount); + } else if (item.status === VAULT_STATUS.ready) { + vReadyAmount += parseInt(item.vaultsAmount); + vReadyCollaterall += collateralUsd; + } else { + vActiveAmount += parseInt(item.vaultsAmount); + vActiveCollaterall += collateralUsd; + vActiveDebt = vActiveDebt.add(item.totalDebt); + } + + s.push({ + id: item.id, + collateral: item.totalCollateral, + collateralUsd: collateralUsd.toFixed(2), + debt: ethers.utils.formatEther(item.totalDebt), + vaultsAmount: parseInt(item.vaultsAmount), + }); + }); + + s.push({ + id: VAULT_STATUS.empty, + collateral: "0", + collateralUsd: "0", + debt: "0", + vaultsAmount: vEmptyAmount, + }); + s.push({ + id: VAULT_STATUS.ready, + collateral: "0", + collateralUsd: vReadyCollaterall.toFixed(2), + debt: "0", + vaultsAmount: vReadyAmount, + }); + s.push({ + id: VAULT_STATUS.active, + collateral: "0", + collateralUsd: vActiveCollaterall.toFixed(2), + debt: ethers.utils.formatEther(vActiveDebt), + vaultsAmount: vActiveAmount, + }); + } + + setVaultsSummary(s); + }; + + useEffect( + () => { + const load = () => { + if (!loading && data && !loadingPrices) { + loadSummary(data.protocols, data.vaultSummaryByStatuses); + } + }; + load(); + }, + // eslint-disable-next-line + [loading, data, loadingPrices] + ); + + const refetchSummary = async () => { + await refetch(); + }; + + return [refetchSummary, vaultsSummary]; +}; diff --git a/src/i18n.js b/src/i18n.js new file mode 100644 index 00000000..b39e9ba8 --- /dev/null +++ b/src/i18n.js @@ -0,0 +1,41 @@ +import i18n from "i18next"; +import Backend from "i18next-http-backend"; +import LanguageDetector from "i18next-browser-languagedetector"; +import { initReactI18next } from "react-i18next"; + +i18n + // load translation using http -> see /public/locales + // learn more: https://github.com/i18next/i18next-http-backend + .use(Backend) + // pass the i18n instance to react-i18next. + .use(initReactI18next) + .use(LanguageDetector) + // init i18next + // for all options read: https://www.i18next.com/overview/configuration-options + .init({ + fallbackLng: "en", + detection: { + order: [ + "localStorage", + "navigator", + "sessionStorage", + "querystring", + "cookie", + "htmlTag", + "path", + "subdomain", + ], + // keys or params to lookup language from + lookupCookie: "language", + lookupLocalStorage: "language", + lookupSessionStorage: "language", + caches: ["localStorage", "cookie"], + }, + debug: false, + + interpolation: { + escapeValue: false, // not needed for react as it escapes by default + }, + }); + +export default i18n; diff --git a/src/index.tsx b/src/index.tsx index 5807be59..8b1081d2 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -1,14 +1,16 @@ import React from "react"; -import ReactDOM from "react-dom"; +import { createRoot } from "react-dom/client"; import { BrowserRouter as Router } from "react-router-dom"; import "./styles/app.scss"; import App from "./App"; -ReactDOM.render( +const container = document.getElementById("root"); +// @ts-ignore +const root = createRoot(container); +root.render( - , - document.getElementById("root") + ); diff --git a/src/state/ArbitrumContext.tsx b/src/state/ArbitrumContext.tsx new file mode 100644 index 00000000..462e3bb1 --- /dev/null +++ b/src/state/ArbitrumContext.tsx @@ -0,0 +1,22 @@ +import React from "react"; +import { Contract } from "ethers-multicall"; + +export interface IArbitrumContext { + jpegzTokenRead?: Contract; + setCurrentJpegzTokenRead: (currentTokenRead: Contract) => void; + jpegzOracleRead?: Contract; + setCurrentJpegzOracleRead: (currentOracle: Contract) => void; + wethOracleRead?: Contract; + setCurrentWethOracleRead: (currentOracle: Contract) => void; + daiOracleRead?: Contract; + setCurrentDaiOracleRead: (currentOracle: Contract) => void; +} + +export const ARBITRUM_DEFAULT_VALUE = { + setCurrentJpegzTokenRead: () => {}, + setCurrentJpegzOracleRead: () => {}, + setCurrentWethOracleRead: () => {}, + setCurrentDaiOracleRead: () => {}, +}; + +export const arbitrumContext = React.createContext(ARBITRUM_DEFAULT_VALUE); diff --git a/src/state/EthereumContext.tsx b/src/state/EthereumContext.tsx new file mode 100644 index 00000000..67f92c7f --- /dev/null +++ b/src/state/EthereumContext.tsx @@ -0,0 +1,40 @@ +import React from "react"; +import { Contract } from "ethers-multicall"; + +export interface IEthereumContext { + tcapTokenRead?: Contract; + setCurrentTcapTokenRead: (currentTokenRead: Contract) => void; + ctxTokenRead?: Contract; + setCurrentCtxTokenRead: (currentCtx: Contract) => void; + ctxPoolTokenRead?: Contract; + setCurrentCtxPoolTokenRead: (currentPoolTokenRead: Contract) => void; + tcapOracleRead?: Contract; + setCurrentTcapOracleRead: (currentOracle: Contract) => void; + wethOracleRead?: Contract; + setCurrentWethOracleRead: (currentOracle: Contract) => void; + daiOracleRead?: Contract; + setCurrentDaiOracleRead: (currentOracle: Contract) => void; + aaveOracleRead?: Contract; + setCurrentAaveOracleRead: (currentOracle: Contract) => void; + linkOracleRead?: Contract; + setCurrentLinkOracleRead: (currentOracle: Contract) => void; + wbtcOracleRead?: Contract; + setCurrentWbtcOracleRead: (currentOracle: Contract) => void; + usdcOracleRead?: Contract; + setCurrentUsdcOracleRead: (currentOracle: Contract) => void; +} + +export const ETHEREUM_DEFAULT_VALUE = { + setCurrentTcapTokenRead: () => {}, + setCurrentCtxTokenRead: () => {}, + setCurrentCtxPoolTokenRead: () => {}, + setCurrentTcapOracleRead: () => {}, + setCurrentWethOracleRead: () => {}, + setCurrentDaiOracleRead: () => {}, + setCurrentAaveOracleRead: () => {}, + setCurrentLinkOracleRead: () => {}, + setCurrentWbtcOracleRead: () => {}, + setCurrentUsdcOracleRead: () => {}, +}; + +export const ethereumContext = React.createContext(ETHEREUM_DEFAULT_VALUE); diff --git a/src/state/GovernanceContext.tsx b/src/state/GovernanceContext.tsx index 2319aee1..96495d38 100644 --- a/src/state/GovernanceContext.tsx +++ b/src/state/GovernanceContext.tsx @@ -2,7 +2,7 @@ import React from "react"; import { ethers } from "ethers"; import { Contract } from "ethers-multicall"; -export interface GovernanceContext { +export interface IGovernanceContext { governorAlpha?: ethers.Contract; setCurrentGovernorAlpha: (currentGovernorAlpha: ethers.Contract) => void; timelock?: ethers.Contract; @@ -26,6 +26,4 @@ export const GOVERNANCE_DEFAULT_VALUE = { setCurrentDelegatorFactoryRead: () => {}, }; -const governanceContext = React.createContext(GOVERNANCE_DEFAULT_VALUE); - -export default governanceContext; +export const governanceContext = React.createContext(GOVERNANCE_DEFAULT_VALUE); diff --git a/src/state/HardVaultsContext.tsx b/src/state/HardVaultsContext.tsx new file mode 100644 index 00000000..a78ac6c5 --- /dev/null +++ b/src/state/HardVaultsContext.tsx @@ -0,0 +1,35 @@ +import React from "react"; +import { ethers } from "ethers"; +import { Contract } from "ethers-multicall"; + +export interface IHardVaultsContext { + wethVault?: ethers.Contract; + setCurrentWETHVault: (currentVault: ethers.Contract) => void; + daiVault?: ethers.Contract; + setCurrentDAIVault: (currentVault: ethers.Contract) => void; + usdcVault?: ethers.Contract; + setCurrentUSDCVault: (currentVault: ethers.Contract) => void; + wbtcVault?: ethers.Contract; + setCurrentWBTCVault: (currentVault: ethers.Contract) => void; + wethVaultRead?: Contract; + setCurrentWETHVaultRead: (currentVaultRead: Contract) => void; + daiVaultRead?: Contract; + setCurrentDAIVaultRead: (currentVaultRead: Contract) => void; + usdcVaultRead?: Contract; + setCurrentUSDCVaultRead: (currentVaultRead: Contract) => void; + wbtcVaultRead?: Contract; + setCurrentWBTCVaultRead: (currentVaultRead: Contract) => void; +} + +export const HARD_VAULTS_DEFAULT_VALUE = { + setCurrentWETHVault: () => {}, + setCurrentDAIVault: () => {}, + setCurrentUSDCVault: () => {}, + setCurrentWBTCVault: () => {}, + setCurrentWETHVaultRead: () => {}, + setCurrentDAIVaultRead: () => {}, + setCurrentUSDCVaultRead: () => {}, + setCurrentWBTCVaultRead: () => {}, +}; + +export const hardVaultsContext = React.createContext(HARD_VAULTS_DEFAULT_VALUE); diff --git a/src/state/MushroomNftContext.tsx b/src/state/MushroomNftContext.tsx new file mode 100644 index 00000000..7c63e6e6 --- /dev/null +++ b/src/state/MushroomNftContext.tsx @@ -0,0 +1,17 @@ +import React from "react"; +import { ethers } from "ethers"; +import { Contract } from "ethers-multicall"; + +export interface IMushroomNftContext { + mushroomNft?: ethers.Contract; + setCurrentMushroomNft: (currentMushroom: ethers.Contract) => void; + mushroomNftRead?: Contract; + setCurrentMushroomNftRead: (currentMushroomRead: Contract) => void; +} + +export const MUSHROOM_VALUE = { + setCurrentMushroomNft: () => {}, + setCurrentMushroomNftRead: () => {}, +}; + +export const mushroomNftContext = React.createContext(MUSHROOM_VALUE); diff --git a/src/state/NetworkContext.tsx b/src/state/NetworkContext.tsx index 7f26c291..1b8681b0 100644 --- a/src/state/NetworkContext.tsx +++ b/src/state/NetworkContext.tsx @@ -1,7 +1,7 @@ import React from "react"; import { NETWORKS } from "../utils/constants"; -export interface NetworkContext { +export interface INetworkContext { chainId?: number; setCurrentChainId: (newChainId: number) => void; name?: string; @@ -14,6 +14,8 @@ export interface NetworkContext { setCurrentMATICAddress: (address: string) => void; wallet?: string; setCurrentWallet: (walletName: string) => void; + isBrowserWallet?: boolean; + setCurrentIsBrowserWallet: (isBrowserW: boolean) => void; } const NETWORK_DEFAULT_VALUE = { @@ -29,8 +31,8 @@ const NETWORK_DEFAULT_VALUE = { setCurrentMATICAddress: () => {}, wallet: "", setCurrentWallet: () => {}, + isBrowserWallet: false, + setCurrentIsBrowserWallet: () => {}, }; -const networkContext = React.createContext(NETWORK_DEFAULT_VALUE); - -export default networkContext; +export const networkContext = React.createContext(NETWORK_DEFAULT_VALUE); diff --git a/src/state/OptimismContext.tsx b/src/state/OptimismContext.tsx new file mode 100644 index 00000000..59725c4d --- /dev/null +++ b/src/state/OptimismContext.tsx @@ -0,0 +1,31 @@ +import React from "react"; +import { Contract } from "ethers-multicall"; + +export interface IOptimismContext { + tcapTokenRead?: Contract; + setCurrentTcapTokenRead: (currentTokenRead: Contract) => void; + tcapOracleRead?: Contract; + setCurrentTcapOracleRead: (currentOracleRead: Contract) => void; + wethOracleRead?: Contract; + setCurrentWethOracleRead: (currentOracleRead: Contract) => void; + daiOracleRead?: Contract; + setCurrentDaiOracleRead: (currentOracleRead: Contract) => void; + linkOracleRead?: Contract; + setCurrentLinkOracleRead: (currentOracleRead: Contract) => void; + snxOracleRead?: Contract; + setCurrentSnxOracleRead: (currentOracleRead: Contract) => void; + uniOracleRead?: Contract; + setCurrentUniOracleRead: (currentOracleRead: Contract) => void; +} + +export const OPTIMISM_DEFAULT_VALUE = { + setCurrentTcapTokenRead: () => {}, + setCurrentTcapOracleRead: () => {}, + setCurrentWethOracleRead: () => {}, + setCurrentDaiOracleRead: () => {}, + setCurrentLinkOracleRead: () => {}, + setCurrentSnxOracleRead: () => {}, + setCurrentUniOracleRead: () => {}, +}; + +export const optimismContext = React.createContext(OPTIMISM_DEFAULT_VALUE); diff --git a/src/state/OraclesContext.tsx b/src/state/OraclesContext.tsx index 9274e932..fc2c8ae0 100644 --- a/src/state/OraclesContext.tsx +++ b/src/state/OraclesContext.tsx @@ -2,54 +2,76 @@ import React from "react"; import { ethers } from "ethers"; import { Contract } from "ethers-multicall"; -export interface OraclesContext { +export interface IOraclesContext { wethOracle?: ethers.Contract; setCurrentWETHOracle: (currentOracle: ethers.Contract) => void; daiOracle?: ethers.Contract; setCurrentDAIOracle: (currentOracle: ethers.Contract) => void; wbtcOracle?: ethers.Contract; setCurrentWBTCOracle: (currentOracle: ethers.Contract) => void; + jpegzOracle?: ethers.Contract; + setCurrentJPEGZOracle: (currentOracle: ethers.Contract) => void; tcapOracle?: ethers.Contract; setCurrentTCAPOracle: (currentOracle: ethers.Contract) => void; aaveOracle?: ethers.Contract; setCurrentAAVEOracle: (currentOracle: ethers.Contract) => void; linkOracle?: ethers.Contract; setCurrentLINKOracle: (currentOracle: ethers.Contract) => void; + snxOracle?: ethers.Contract; + setCurrentSNXOracle: (currentOracle: ethers.Contract) => void; + uniOracle?: ethers.Contract; + setCurrentUNIOracle: (currentOracle: ethers.Contract) => void; maticOracle?: ethers.Contract; setCurrentMATICOracle: (currentOracle: ethers.Contract) => void; + usdcOracle?: ethers.Contract; + setCurrentUSDCOracle: (currentOracle: ethers.Contract) => void; wethOracleRead?: Contract; setCurrentWETHOracleRead: (currentOracle: Contract) => void; daiOracleRead?: Contract; setCurrentDAIOracleRead: (currentOracle: Contract) => void; wbtcOracleRead?: Contract; setCurrentWBTCOracleRead: (currentOracle: Contract) => void; + jpegzOracleRead?: Contract; + setCurrentJPEGZOracleRead: (currentOracle: Contract) => void; tcapOracleRead?: Contract; setCurrentTCAPOracleRead: (currentOracle: Contract) => void; aaveOracleRead?: Contract; setCurrentAAVEOracleRead: (currentOracle: Contract) => void; linkOracleRead?: Contract; setCurrentLINKOracleRead: (currentOracle: Contract) => void; + snxOracleRead?: Contract; + setCurrentSNXOracleRead: (currentOracle: Contract) => void; + uniOracleRead?: Contract; + setCurrentUNIOracleRead: (currentOracle: Contract) => void; maticOracleRead?: Contract; setCurrentMATICOracleRead: (currentOracle: Contract) => void; + usdcOracleRead?: Contract; + setCurrentUSDCOracleRead: (currentOracle: Contract) => void; } export const ORACLES_DEFAULT_VALUE = { setCurrentWETHOracle: () => {}, setCurrentDAIOracle: () => {}, setCurrentWBTCOracle: () => {}, + setCurrentJPEGZOracle: () => {}, setCurrentTCAPOracle: () => {}, setCurrentAAVEOracle: () => {}, setCurrentLINKOracle: () => {}, + setCurrentSNXOracle: () => {}, + setCurrentUNIOracle: () => {}, setCurrentMATICOracle: () => {}, + setCurrentUSDCOracle: () => {}, setCurrentWETHOracleRead: () => {}, setCurrentDAIOracleRead: () => {}, setCurrentWBTCOracleRead: () => {}, + setCurrentJPEGZOracleRead: () => {}, setCurrentTCAPOracleRead: () => {}, setCurrentAAVEOracleRead: () => {}, setCurrentLINKOracleRead: () => {}, + setCurrentSNXOracleRead: () => {}, + setCurrentUNIOracleRead: () => {}, setCurrentMATICOracleRead: () => {}, + setCurrentUSDCOracleRead: () => {}, }; -const oraclesContext = React.createContext(ORACLES_DEFAULT_VALUE); - -export default oraclesContext; +export const oraclesContext = React.createContext(ORACLES_DEFAULT_VALUE); diff --git a/src/state/RewardsContext.tsx b/src/state/RewardsContext.tsx index bb9f0d66..45d0efa8 100644 --- a/src/state/RewardsContext.tsx +++ b/src/state/RewardsContext.tsx @@ -2,7 +2,7 @@ import React from "react"; import { ethers } from "ethers"; import { Contract } from "ethers-multicall"; -export interface RewardsContext { +export interface IRewardsContext { wethReward?: ethers.Contract; setCurrentWETHReward: (currentReward: ethers.Contract) => void; daiReward?: ethers.Contract; @@ -50,6 +50,4 @@ export const REWARDS_DEFAULT_VALUE = { setCurrentCTXPoolRewardRead: () => {}, }; -const rewardsContext = React.createContext(REWARDS_DEFAULT_VALUE); - -export default rewardsContext; +export const rewardsContext = React.createContext(REWARDS_DEFAULT_VALUE); diff --git a/src/state/SignerContext.tsx b/src/state/SignerContext.tsx index 8758e911..73f8b498 100644 --- a/src/state/SignerContext.tsx +++ b/src/state/SignerContext.tsx @@ -2,7 +2,7 @@ import React from "react"; import { Provider } from "ethers-multicall"; import { ethers } from "ethers"; -export interface SignerContext { +export interface ISignerContext { signer?: ethers.Signer; setCurrentSigner: (currentSigner: ethers.Signer) => void; ethcallProvider?: Provider; @@ -14,6 +14,4 @@ export const SIGNER_DEFAULT_VALUE = { setCurrentEthcallProvider: () => {}, }; -const signerContext = React.createContext(SIGNER_DEFAULT_VALUE); - -export default signerContext; +export const signerContext = React.createContext(SIGNER_DEFAULT_VALUE); diff --git a/src/state/TokensContext.tsx b/src/state/TokensContext.tsx index 00016e89..c94f466b 100644 --- a/src/state/TokensContext.tsx +++ b/src/state/TokensContext.tsx @@ -2,23 +2,31 @@ import React from "react"; import { Contract } from "ethers-multicall"; import { ethers } from "ethers"; -export interface TokensContext { +export interface ITokensContext { wethToken?: ethers.Contract; setCurrentWETHToken: (currentToken: ethers.Contract) => void; daiToken?: ethers.Contract; setCurrentDAIToken: (currentToken: ethers.Contract) => void; wbtcToken?: ethers.Contract; setCurrentWBTCToken: (currentToken: ethers.Contract) => void; + jpegzToken?: ethers.Contract; + setCurrentJPEGZToken: (currentToken: ethers.Contract) => void; tcapToken?: ethers.Contract; setCurrentTCAPToken: (currentToken: ethers.Contract) => void; ctxToken?: ethers.Contract; setCurrentCtxToken: (currentCtx: ethers.Contract) => void; aaveToken?: ethers.Contract; - setCurrentAAVEToken: (currentCtx: ethers.Contract) => void; + setCurrentAAVEToken: (currentAave: ethers.Contract) => void; linkToken?: ethers.Contract; - setCurrentLINKToken: (currentCtx: ethers.Contract) => void; + setCurrentLINKToken: (currentLink: ethers.Contract) => void; + snxToken?: ethers.Contract; + setCurrentSNXToken: (currentSnx: ethers.Contract) => void; + uniToken?: ethers.Contract; + setCurrentUNIToken: (currentUni: ethers.Contract) => void; maticToken?: ethers.Contract; setCurrentMATICToken: (currentMATIC: ethers.Contract) => void; + usdcToken?: ethers.Contract; + setCurrentUSDCToken: (currentUSDC: ethers.Contract) => void; wethPoolToken?: ethers.Contract; setCurrentWETHPoolToken: (currentPoolToken: ethers.Contract) => void; daiPoolToken?: ethers.Contract; @@ -33,16 +41,24 @@ export interface TokensContext { setCurrentDAITokenRead: (currentTokenRead: Contract) => void; wbtcTokenRead?: Contract; setCurrentWBTCTokenRead: (currentTokenRead: Contract) => void; + jpegzTokenRead?: Contract; + setCurrentJPEGZTokenRead: (currentTokenRead: Contract) => void; tcapTokenRead?: Contract; setCurrentTCAPTokenRead: (currentTokenRead: Contract) => void; ctxTokenRead?: Contract; setCurrentCtxTokenRead: (currentCtx: Contract) => void; aaveTokenRead?: Contract; - setCurrentAAVETokenRead: (currentCtx: Contract) => void; + setCurrentAAVETokenRead: (currentAave: Contract) => void; linkTokenRead?: Contract; - setCurrentLINKTokenRead: (currentCtx: Contract) => void; + setCurrentLINKTokenRead: (currentLink: Contract) => void; + snxTokenRead?: Contract; + setCurrentSNXTokenRead: (currentSnx: Contract) => void; + uniTokenRead?: Contract; + setCurrentUNITokenRead: (currentUni: Contract) => void; maticTokenRead?: Contract; setCurrentMATICTokenRead: (currentMATIC: Contract) => void; + usdcTokenRead?: Contract; + setCurrentUSDCTokenRead: (currentUSDC: Contract) => void; wethPoolTokenRead?: Contract; setCurrentWETHPoolTokenRead: (currentPoolTokenRead: Contract) => void; daiPoolTokenRead?: Contract; @@ -57,11 +73,15 @@ export const TOKENS_DEFAULT_VALUE = { setCurrentWETHToken: () => {}, setCurrentDAIToken: () => {}, setCurrentWBTCToken: () => {}, + setCurrentJPEGZToken: () => {}, setCurrentTCAPToken: () => {}, setCurrentCtxToken: () => {}, setCurrentAAVEToken: () => {}, setCurrentLINKToken: () => {}, + setCurrentSNXToken: () => {}, + setCurrentUNIToken: () => {}, setCurrentMATICToken: () => {}, + setCurrentUSDCToken: () => {}, setCurrentWETHPoolToken: () => {}, setCurrentDAIPoolToken: () => {}, setCurrentWBTCPoolToken: () => {}, @@ -69,17 +89,19 @@ export const TOKENS_DEFAULT_VALUE = { setCurrentWETHTokenRead: () => {}, setCurrentDAITokenRead: () => {}, setCurrentWBTCTokenRead: () => {}, + setCurrentJPEGZTokenRead: () => {}, setCurrentTCAPTokenRead: () => {}, setCurrentCtxTokenRead: () => {}, setCurrentAAVETokenRead: () => {}, setCurrentLINKTokenRead: () => {}, + setCurrentSNXTokenRead: () => {}, + setCurrentUNITokenRead: () => {}, setCurrentMATICTokenRead: () => {}, + setCurrentUSDCTokenRead: () => {}, setCurrentWETHPoolTokenRead: () => {}, setCurrentDAIPoolTokenRead: () => {}, setCurrentWBTCPoolTokenRead: () => {}, setCurrentCTXPoolTokenRead: () => {}, }; -const tokensContext = React.createContext(TOKENS_DEFAULT_VALUE); - -export default tokensContext; +export const tokensContext = React.createContext(TOKENS_DEFAULT_VALUE); diff --git a/src/state/VaultsContext.tsx b/src/state/VaultsContext.tsx index 8c849c3c..c2e6c91f 100644 --- a/src/state/VaultsContext.tsx +++ b/src/state/VaultsContext.tsx @@ -2,7 +2,7 @@ import React from "react"; import { ethers } from "ethers"; import { Contract } from "ethers-multicall"; -export interface VaultsContext { +export interface IVaultsContext { wethVault?: ethers.Contract; setCurrentWETHVault: (currentVault: ethers.Contract) => void; daiVault?: ethers.Contract; @@ -13,6 +13,10 @@ export interface VaultsContext { setCurrentAAVEVault: (currentVault: ethers.Contract) => void; linkVault?: ethers.Contract; setCurrentLINKVault: (currentVault: ethers.Contract) => void; + snxVault?: ethers.Contract; + setCurrentSNXVault: (currentVault: ethers.Contract) => void; + uniVault?: ethers.Contract; + setCurrentUNIVault: (currentVault: ethers.Contract) => void; maticVault?: ethers.Contract; setCurrentMaticVault: (currentVault: ethers.Contract) => void; wethVaultRead?: Contract; @@ -25,6 +29,10 @@ export interface VaultsContext { setCurrentAAVEVaultRead: (currentVaultRead: Contract) => void; linkVaultRead?: Contract; setCurrentLINKVaultRead: (currentVaultRead: Contract) => void; + snxVaultRead?: Contract; + setCurrentSNXVaultRead: (currentVaultRead: Contract) => void; + uniVaultRead?: Contract; + setCurrentUNIVaultRead: (currentVaultRead: Contract) => void; maticVaultRead?: Contract; setCurrentMaticVaultRead: (currentVaultRead: Contract) => void; } @@ -35,15 +43,17 @@ export const VAULTS_DEFAULT_VALUE = { setCurrentWBTCVault: () => {}, setCurrentAAVEVault: () => {}, setCurrentLINKVault: () => {}, + setCurrentSNXVault: () => {}, + setCurrentUNIVault: () => {}, setCurrentMaticVault: () => {}, setCurrentWETHVaultRead: () => {}, setCurrentDAIVaultRead: () => {}, setCurrentWBTCVaultRead: () => {}, setCurrentAAVEVaultRead: () => {}, setCurrentLINKVaultRead: () => {}, + setCurrentSNXVaultRead: () => {}, + setCurrentUNIVaultRead: () => {}, setCurrentMaticVaultRead: () => {}, }; -const vaultsContext = React.createContext(VAULTS_DEFAULT_VALUE); - -export default vaultsContext; +export const vaultsContext = React.createContext(VAULTS_DEFAULT_VALUE); diff --git a/src/state/Web3ModalContext.tsx b/src/state/Web3ModalContext.tsx deleted file mode 100644 index 749d83a2..00000000 --- a/src/state/Web3ModalContext.tsx +++ /dev/null @@ -1,87 +0,0 @@ -import React from "react"; - -import Web3Modal from "web3modal"; -import Portis from "@portis/web3"; -import WalletConnectProvider from "@walletconnect/web3-provider"; -import Authereum from "authereum"; -import WalletLink from "walletlink"; -import Fortmatic from "fortmatic"; -import { NETWORKS } from "../utils/constants"; - -let network = "mainnet"; - -switch (process.env.REACT_APP_NETWORK_ID) { - case "1": - network = "mainnet"; - break; - case "3": - network = "ropsten"; - break; - case "4": - network = "rinkeby"; - break; - case "5": - network = "goerli"; - break; - case "69": - network = "optimism-kovan"; - break; - case "137": - network = "polygon"; - break; - default: - break; -} - -const providerOptions = { - walletlink: { - package: WalletLink, // Required - options: { - appName: "Cryptex Finance", // Required - infuraId: process.env.REACT_APP_INFURA_ID, - }, - }, - walletconnect: { - package: WalletConnectProvider, // required - options: { - infuraId: process.env.REACT_APP_INFURA_ID, // required - }, - }, - fortmatic: { - package: Fortmatic, - options: { - key: process.env.REACT_APP_FORTMATIC_KEY, - network: { - chainId: process.env.REACT_APP_NETWORK_ID, - rpcUrl: - process.env.REACT_APP_NETWORK_ID === "1" - ? NETWORKS.mainnet.infuraFortmaticRpcUrl - : NETWORKS.rinkeby.infuraFortmaticRpcUrl, - }, // if we don't pass it, it will default to localhost:8454 - }, - }, - portis: { - package: Portis, // required - options: { - id: process.env.REACT_APP_PORTIS_ID, - }, - }, - authereum: { - package: Authereum, // required - }, -}; - -const web3Modal = new Web3Modal({ - network, - cacheProvider: true, // optional - providerOptions, // required - theme: { - background: "#1d1d3c", - main: "white", - secondary: "#f5f5f5", - border: "#e440f2", - hover: "rgba(241, 36, 255, 0.0)", - }, -}); - -export const Web3ModalContext = React.createContext(web3Modal); diff --git a/src/state/index.tsx b/src/state/index.tsx new file mode 100644 index 00000000..a685e010 --- /dev/null +++ b/src/state/index.tsx @@ -0,0 +1,23 @@ +export * from "./ArbitrumContext"; + +export * from "./GovernanceContext"; + +export * from "./HardVaultsContext"; + +export * from "./EthereumContext"; + +export * from "./MushroomNftContext"; + +export * from "./NetworkContext"; + +export * from "./OraclesContext"; + +export * from "./OptimismContext"; + +export * from "./RewardsContext"; + +export * from "./SignerContext"; + +export * from "./TokensContext"; + +export * from "./VaultsContext"; diff --git a/src/styles/_colors.scss b/src/styles/_colors.scss index 472a65b1..49a3bd9a 100644 --- a/src/styles/_colors.scss +++ b/src/styles/_colors.scss @@ -4,7 +4,9 @@ $neon-highlight: rgba(223, 33, 254, 0.5); $purple: #7940f2; $dark: #494866; $darker: #212138; +$darkest: #281e31; $light: #9795b0; +$lighter: #d6d5e3; $white: #ffffff; $off-white: #f5f5f5; $pink: #e440f2; @@ -12,4 +14,6 @@ $orange: #f28040; $blue: #0fd9ff; $dark-blue: #2620fb; $green: #38d6b2; +$bright-green: #4dd70c; $yellow: rgb(252, 223, 73); +$background: #141429; diff --git a/src/styles/app.scss b/src/styles/app.scss index 1901a359..63a0e8ac 100644 --- a/src/styles/app.scss +++ b/src/styles/app.scss @@ -16,20 +16,30 @@ $theme-colors: ( @import "~bootstrap/scss/bootstrap"; -p { - color: $light; +p, li { + color: $lighter; } h1, h2, h3, h4, -h5 { +h5, +h6 { color: $white; } +span { + color: $white; +} + +h6, p { + margin-bottom: 0rem; + color: $off-white +} + body { - background-color: $primary; + background-color: $background; } .avatar { @@ -45,18 +55,71 @@ body { } .alert { + display: flex; + flex-direction: row-reverse; + align-items: center; + justify-content: space-between; background-color: $purple; color: $white; width: 95%; margin-left: auto; margin-right: auto; margin-top: 2rem; + padding-right: 1.5rem; + + &-warning { + background-color: #f280400d; + box-shadow: 0px 0px 25px -6px rgba(242, 128, 64, 0.4); + border-color: $orange; + } + + .btn-close { + height: 15px; + width: 15px; + background-color: transparent; + background-image: url("../assets/images/x-symbol.svg"); + background-size: cover; + background-repeat: no-repeat; + border: none; + } +} + +.alert-inside { + width: 100% !important; + height: auto !important; +} + +.badge.bg-light { + background-color: $off-white !important; } .btn { color: $white; font-family: "Nineteen Ninety Seven"; - border-width: 1px; + border-width: 1.2px; + background-color: transparent; +} + +.btn:disabled { + color: $lighter; +} + +.btn:hover { + background-color: $darker; +} + +.btn:active, +.btn-primary:active, +.btn-primary:focus, +.btn-primary:not(:disabled):not(.disabled):active +{ + background-color: $darker; + border: 1px solid $highlight; +} + +.btn-primary:focus, +.btn-primary:not(:disabled):not(.disabled):active:focus { + box-shadow: none; } .btn.neon-highlight { @@ -71,6 +134,13 @@ body { box-shadow: 0px 0px 39px -6px rgba(242, 128, 64, 0.4); border-radius: 2px; } +.btn.neon-pink { + background-color: $pink; +} + +.btn-success { + border-color: $bright-green; +} .input-group .btn.neon-orange { border: 1px solid $orange; @@ -85,32 +155,123 @@ body { } .btn.neon-green { - border: 1px solid $green; + border: 1px solid $bright-green; border-radius: 2px; box-sizing: border-box; box-shadow: 0px 0px 4px rgba(63, 217, 180, 0.3), 0px 4px 14px rgba(112, 235, 183, 0.2); } +/* .btn.neon-green { + border: 1px solid $green; + border-radius: 2px; + box-sizing: border-box; + box-shadow: 0px 0px 4px rgba(63, 217, 180, 0.3), 0px 4px 14px rgba(112, 235, 183, 0.2); +} */ + .btn.neon-pink { border: 1px solid $pink; box-sizing: border-box; box-shadow: 0px 6px 39px -6px rgba(241, 36, 255, 0.4); } +.btn.neon-brightgreen { + border: 1.5px solid $bright-green; + box-sizing: border-box; + box-shadow: 0px 6px 39px -6px #4cd70c77; +} + +.btn.neon-brightgreen { + background-color: $bright-green; +} + +.question-small { + border-radius: 2px; + width: 20px !important; + height: 20px !important; + margin-right: 0; + font-size: 10px; + padding: 2px; + margin-left: 5px; + margin-bottom: 0px !important; +} + +.dropdown { + border-radius: 5px; + .dropdown-toggle { + display: flex; + background-color: $darkest; + align-items: center; + justify-content: space-between; + height: 2.5rem; + width: 100%; + border: 1px solid #dfd1ea; + padding-right: 0.8rem; + border-radius: 5px; + div { + display: flex; + align-items: center; + flex: 1; + } + + span { + font-size: 1rem; + } + } + .dropdown-toggle:focus { + background-color: $darkest; + border: 1px solid #dfd1ea; + box-shadow: none; + } + .dropdown-toggle:active { + background-color: $darkest; + border: 1px solid #dfd1ea; + box-shadow: none; + } + .dropdown-menu { + background-color: $darkest; + + .dropdown-item { + color: $white; + } + + .dropdown-item.active { + background-color: rgba(121, 64, 242, 0.4); + } + + .dropdown-item:hover { + background-color: rgba(121, 64, 242, 0.3); + } + } +} +.show > .btn-secondary.dropdown-toggle { + background-color: $darkest; + border-color: #dfd1ea; +} +.show>.btn-secondary.dropdown-toggle:active { + background-color: $darkest; + border-color: #dfd1ea; + box-shadow: none; +} +.show>.btn-secondary.dropdown-toggle:focus { + background-color: $darkest; + border-color: #dfd1ea; + box-shadow: none; +} + .number.neon-highlight { text-shadow: 0px 4px 13px $neon-highlight; } .number.neon-orange, .danger { - text-shadow: 0px 4px 13px $orange; + text-shadow: 0px 2px 13px $orange; } .number.error { - text-shadow: 0px 4px 13px red; + text-shadow: 0px 2px 13px red; } .number.neon-blue, .safe { - text-shadow: 0px 4px 13px rgb(6, 136, 255); + text-shadow: 0px 2px 13px rgb(6, 136, 255); } .number.neon-dark-blue { @@ -118,7 +279,7 @@ body { } .number.neon-green { - text-shadow: 0px 4px 13px $green; + text-shadow: 0px 4px 13px $bright-green; } .number.neon-yellow, @@ -139,7 +300,7 @@ body { color: $white !important; } -@keyframes fire { +/* @keyframes fire { 80% { text-shadow: 0px -2px 8px $purple, 0px -2px 10px $yellow, 0px -5px 20px $orange, 0px -20px 40px #c33; @@ -148,7 +309,7 @@ body { text-shadow: 0px -2px 4px $purple, 0px -2px 10px $yellow, 0px -5px 20px $orange, 0px -20px 40px #c33; } -} +} */ .table thead th { border-top: 2px solid $highlight; @@ -188,8 +349,8 @@ input[type="file"] { input[type="text"].neon-green:focus, input[type="number"].neon-green:focus { - border-color: $green !important; - box-shadow: -1px 0px 15px -6px $green; + border-color: $bright-green !important; + box-shadow: -1px 0px 15px -6px $bright-green; background: no-repeat; color: $white; } @@ -209,6 +370,23 @@ input[type="number"].neon-hightlight:focus { background: no-repeat; } +span { + &.neon-green { + text-shadow: 0 0 4px #167226, 0 0 10px #61c4b3, 0 0 20px #167226, 0 -10px 40px #167226; + } + &.neon-orange { + color: $white; + text-shadow: 0 0 4px #eeb173,0 0 10px rgb(236, 97, 97),0 0 20px #eeb173,0 -10px 40px #c33; + } + &.neon-pink { + color: $white; + text-shadow: 0 0 4px #e440f2, 0 0 10px #e98ff1, 0 0 20px #e440f2, 0 -10px 40px #b626c4; + } + &.neon-purple { + text-shadow: 0 0 4px #7940f2, 0 0 10px #fcdf49, 0 0 20px #7940f2, 0 -10px 40px #c33; + } +} + textarea.neon-green:focus { border-color: $green !important; box-shadow: -1px 0px 15px -6px $green; @@ -216,9 +394,40 @@ textarea.neon-green:focus { color: $white; } -.card { +.card, .accordion { background-color: $darker; } + +.accordion { + border-radius: 5px; + + &-header { + margin-bottom: 0rem; + } + &-button { + display: flex; + align-items: center; + justify-content: space-between; + width: 100%; + padding: 0px; + background-color: transparent; + border: none; + } + &-button:after { + content: ""; + color: $white; + border-top: .4em solid; + border-right: .3em solid transparent; + border-bottom: 0; + border-left: .3em solid transparent; + margin-top: -5px; + } + .accordion-button:not(.collapsed):after { + border-top: 0; + border-bottom: .4em solid; + } +} + .custom-file { label { background: no-repeat; @@ -237,9 +446,7 @@ textarea.neon-green:focus { overflow: overlay; } .wrapper::before { - background-image: url("../assets/images/liquid.png"); - background-repeat: no-repeat; - background-size: cover; + background-color: $background; opacity: 0.3; position: absolute; z-index: -1; @@ -257,17 +464,240 @@ html, height: 100%; } +.tooltip > .tooltip-inner { + text-align: left; +} + .farm-tooltip > .tooltip-inner { max-width: 300px; width: 300px; text-align: left; padding: 0.8rem; } +.vaults-status-tooltip > .tooltip-inner { + min-width: 400px; + width: 400px; + text-align: left; + padding: 0.9rem; + .empty { + text-shadow: 0 0 4px #7940f2,0 0 10px #fcdf49,0 0 20px #f28040,0 -10px 40px #c33; + } + .ready { + text-shadow: 0 0 4px #167226,0 0 10px #61c4b3,0 0 20px #167226,0 -10px 40px #167226; + } + .active { + text-shadow: 0 0 4px #e440f2,0 0 10px #e98ff1,0 0 20px #e440f2,0 -10px 40px #b626c4; + } + .liquidation { + text-shadow: 0 0 4px #c33,0 0 10px rgb(236, 97, 97),0 0 20px #c33,0 -10px 40px #c33; + } +} + +.vaults-tooltip > .tooltip-inner { + width: auto; + text-align: right; + padding: 0.9rem; +} + +.ttip-hard-vault > .tooltip-inner { + max-width: 390px; + width: 390px; + text-align: left; +} + +.ttip-features > .tooltip-inner { + max-width: 550px; + width: 550px; + text-align: left; +} +.ttip-balance >.tooltip-inner { + max-width: 200px; + width: 200px; + text-align: left; +} + +.univ3-expired-tooltip > .tooltip-inner { + min-width: 300px; + width: 300px; + text-align: left; + padding: 0.9rem; +} + +.univ3-status-tooltip > .tooltip-inner { + min-width: 400px; + width: 400px; + text-align: left; + padding: 0.9rem; + .unstaked { + text-shadow: 0 0 4px #7940f2,0 0 10px #fcdf49,0 0 20px #f28040,0 -10px 40px #c33; + } + .deposited { + text-shadow: 0 0 4px #167226,0 0 10px #61c4b3,0 0 20px #167226,0 -10px 40px #167226; + } + .staked { + text-shadow: 0 0 4px #e440f2,0 0 10px #e98ff1,0 0 20px #e440f2,0 -10px 40px #b626c4; + } + .not_approved { + text-shadow: 0 0 4px #eeb173,0 0 10px rgb(236, 97, 97),0 0 20px #eeb173,0 -10px 40px #c33; + } + .out_range { + text-shadow: 0 0 4px rgb(233, 42, 42),0 0 10px rgb(236, 97, 97),0 0 20px rgb(233, 42, 42),0 -10px 40px #c33; + } + + @media (max-width: 450px) { + width: 360px; + min-width: 360px; + } +} form { .field-error { color: $orange; } + .add-file-icon { + svg { + background:rgba(142, 126, 155, 0.3); + color: rgba(209, 194, 239, 0.65); + border-radius: 50%; + width: 70px; + height: 70px; + } + } + .add-file-icon.loading { + svg { + border: 3px solid #f3f3f3; + border-radius: 50%; + border-top: 3px solid $green; + color: transparent; + width: 120px; + height: 120px; + -webkit-animation: spin 2s linear infinite; /* Safari */ + animation: spin 2s linear infinite; + } + } + .add-file-icon.error { + svg { + border: 3px solid $orange; + } + } +} + +.btn-primary:not(:disabled):not(.disabled).active { + background-color: $darker; +} + +.btn { + &.empty { + border: 1px solid #f28040; + } + &.ready { + border: 1px solid #167226; + } + &.active { + border: 1px solid #e440f2 !important; + } + &.liquidation { + border: 1px solid #c33; + } +} + +.btn:active { + background-color: transparent; +} + +/* Safari */ +@-webkit-keyframes spin { + 0% { -webkit-transform: rotate(0deg); } + 100% { -webkit-transform: rotate(360deg); } +} + +@keyframes spin { + 0% { transform: rotate(0deg); } + 100% { transform: rotate(360deg); } +} + +.table { + color: $white; + thead { + th { + vertical-align: middle; + } + .btn { + width: 37px; + min-width: 35px; + height: 35px; + border-radius: 0.25rem; + background-color: $dark; + margin-top: 5px; + margin-left: 7px; + } + } + tbody { + tr:hover { + color: $white; + } + td { + vertical-align: middle; + a { + font-weight: bold; + color: $purple; + } + a.uniswap { + color: #ff007a; + } + a.btn { + padding-top: 0.4rem; + height: 2.5rem; + color: white; + width: 5rem; + margin-left: auto; + margin-right: auto; + } + } + } +} + +.spinner-container { + display: block; + height: 100%; +} +.spinner { + margin: 5rem 50%; + color: $highlight !important; + + &.small { + margin: 0.1rem 0.5rem; + padding: 0.5rem; + } + &.xsmall { + margin: 0.1rem 0.5rem; + padding: 0.4rem; + font-size: 0.4em; + height: 5px; + width: 5px; + } +} +.spinner-green { + color: $green !important; +} +.spinner-orange { + color: $orange !important; +} +.spinner-gray { + color: $light !important; +} + +.info-message { + display: flex; + justify-content: center; + margin-top: 2rem; + + h5, h6 { + color: #bc99d7; + } + h6 { + font-size: 1.3rem; + } } #WEB3_CONNECT_MODAL_ID { @@ -303,12 +733,61 @@ form { } } +.card, .accordion { + &-header { + background-color: transparent; + } +} + + + +@media (max-width: 850px) { + .box { + display: flex; + justify-content: space-between; + margin: 0.75rem 0rem; + border: 0.5px solid $highlight; + border-radius: 5px; + + .title { + display: flex; + width: 45%; + padding: 0.5rem; + background-color: $darkest; + border-top-left-radius: 5px; + border-bottom-left-radius: 5px; + color: $white; + } + + .value { + display: flex; + justify-content: flex-end; + align-items: center; + width: 55%; + padding: 0.5rem; + } + } +} + @media (max-width: 600px) { .wrapper { padding-left: 0rem; + padding-right: 0rem; } .alert { margin-top: 4rem; + padding-right: 0.7rem; + .btn-close { + background-size: contain; + height: 20px; + width: 25px; + } + } +} + +@media (max-width: 400px) { + .number { + font-size: 0.9rem; } } diff --git a/src/styles/delegators.scss b/src/styles/delegators.scss index 9c52dd1d..376f6c4d 100644 --- a/src/styles/delegators.scss +++ b/src/styles/delegators.scss @@ -16,11 +16,9 @@ &.off { margin-top: 0rem; } - + .create { - position: relative; width: 15rem; - margin-top: -4rem; } .grid { @@ -32,7 +30,7 @@ @media (min-width: 1700px) { grid-template-columns: auto auto auto; } - @media (max-width: 450px) { + @media (max-width: 900px) { grid-template-columns: auto; } } @@ -87,6 +85,10 @@ } .btn:focus { border: none; + box-shadow: none; + } + .btn:hover { + background-color: transparent; } } } @@ -169,7 +171,7 @@ } } - .badge-highlight { + .badge.bg-light { //border: 1px solid $highlight; border-radius: 25px; height: 30px; @@ -359,10 +361,158 @@ } } } + + .end-date { + text-align: right; + } } @media (max-width: 450px) { padding: 2rem 1rem; } } } + + .keepers-options { + display: flex; + flex-direction: row; + justify-content: space-between; + align-items: center; + background-color: $darker; + margin-top: 1rem; + padding: 1.5rem; + .sort-box { + display: flex; + align-items: center; + } + + .dropdown { + margin-left: 0.5rem; + .dropdown-toggle { + min-height: 2.5rem; + height: 2.5rem; + + span { + font-size: 0.8rem; + } + } + .sort-by-toggle { + margin-right: 0.5rem; + } + } + + .create { + .btn { + min-height: 2.7rem; + } + } + } + + @media (max-width: 900px) { + display: flex; + flex-direction: column; + align-items: center; + .staker-wrapper { + width: 90%; + padding-left: 0rem; + } + .keepers-options { + width: 90%; + } + .grid { + justify-items: center; + } + .card { + width: 90%; + } + } + + @media (max-width: 600px) { + .card { + width: 100%; + } + + .staker-wrapper { + width: 100%; + .staker { + width: 100%; + } + } + + .keepers-options { + width: 100%; + } + + .stake-reward-mobile { + h2 { + margin-bottom: 0rem; + } + .btn { + width: 100%; + margin-left: 0rem !important; + margin-top: 1rem; + } + .accordion-button::after { + margin-top: 0.2rem; + } + .accordion-body { + margin-top: 2rem; + } + } + + .keepers-options { + flex-direction: column; + align-items: flex-start; + + .search-box { + width: 100%; + margin-bottom: 1.5rem; + + .sort-box { + display: flex; + justify-content: space-between; + width: 100%; + } + .titles { + width: 35%; + } + .dropdown { + width: 80%; + } + } + + .create { + width: 100%; + } + } + } +} + +.cryptkeeper-form { + .avatar { + border: 0.8px solid $green; + } + .add-file-icon { + svg { + background:rgba(0, 0, 0, 0.175); + border: 3px solid rgba(209, 194, 239, 0.65); + color: rgba(209, 194, 239, 0.65); + border-radius: 50%; + width: 120px; + height: 120px; + } + } + + @media (max-width: 600px) { + .image-group { + margin-bottom: 2rem !important; + + .keeper-names { + width: 30rem; + } + + a { + margin-left: 0rem !important; + } + } + } } diff --git a/src/styles/farm.scss b/src/styles/farm.scss index 6e49716a..786f7ac1 100644 --- a/src/styles/farm.scss +++ b/src/styles/farm.scss @@ -2,8 +2,9 @@ @import "./fonts"; .farm { - padding: 1rem 3rem; + padding: 3rem 3rem; padding-bottom: 2rem; + background-color: $background; // Small devices (landscape phones, 576px and up) @media (min-width: 576px) { @@ -62,7 +63,7 @@ .card-wrapper { margin-top: 2rem; - + margin-left: 0rem; h2 { font-size: 1.375rem; margin-bottom: 1.5625rem; @@ -75,7 +76,7 @@ p { font-size: 0.875; } - + // Small devices (landscape phones, 576px and up) @media (min-width: 576px) { .use-tcap { @@ -190,6 +191,7 @@ small { color: white; + filter: drop-shadow(0 0 5px #a440f2); } &.pool { @@ -206,7 +208,7 @@ } } } - &.diamond { + &.univ3, &.liquidity { padding-bottom: 1rem; width: 100%; p { @@ -219,41 +221,22 @@ box-shadow: 0px 0px 39px -6px rgba(63, 217, 180, 0.4); } } - - .table { + .btn:disabled { color: $white; - tr:hover { - color: $white; - } + } + .table { td { - vertical-align: middle; - - a { - font-weight: bold; - color: $purple; - } - a.uniswap { color: #ff007a; } - + a.btn { + padding-top: 0.4rem; + } .end-date { font-size: 0.8rem; color: $light; } - &.vested-reward { - padding-top: 2.2rem; - } - } - - a.btn { - padding-top: 0.4rem; - height: 2.5rem; - color: white; - width: 5rem; - margin-left: auto; - margin-right: auto; } .btn { @@ -283,6 +266,11 @@ } thead { + .rewards { + display: flex; + flex-direction: row; + align-items: center; + } .btn { width: 37px; min-width: 35px; @@ -292,11 +280,6 @@ margin-top: 5px; margin-left: 7px; } - .rewards { - display: flex; - flex-direction: row; - align-items: center; - } @media (max-width: 1500px) { .title { flex: 1; @@ -315,8 +298,284 @@ } } } - } + .univ3-header { + display: flex; + justify-content: space-between; + align-items: baseline; + padding-left: 0rem; + } + + .univ3-body { + padding: 1rem 0rem; + thead { + .btn { + margin-top: 0rem; + margin-bottom: 0rem; + } + } + tbody{ + border-bottom: 1px solid #a440f2; + .status { + font-family: "Nineteen Ninety Seven"; + font-size: 15px; + color: #fff !important; + } + } + th.right { + text-align: right; + } + th.center { + text-align: center; + } + th.status { + width: 15%; + } + .btn { + width: 7rem; + margin-left: 1.5rem; + } + .btn.small { + width: 5rem; + @media (max-width: 1550px) { + width: 7rem; + } + } + .btn.claim { + background-color: #281e31; + border-radius: 5px; + height: 2.2rem; + width: 6rem; + margin-right: 1rem; + padding: 0.1rem 1rem; + } + .claim-button2 { + .btn.claim { + margin-right: 0rem; + } + } + .btn.position-url { + border-width: 1px; + border-color: $bright-green; + } + .number { + font-size: 1rem; + color: $white; + text-shadow: 0 0 4px #f195f9,0 0 10px #fff,0 0 20px #e440f2,0 -10px 40px #b626c4; + } + .current-rewards { + display: flex; + flex-direction: row; + align-items: center; + } + .fire { + .number { + font-family: "Nineteen Ninety Seven"; + } + } + h6 { + color: $white; + margin-top: 3px; + margin-right: 15px; + font-size: 1.1rem; + } + .rewards { + display: flex; + justify-content: space-between; + margin-bottom: 1rem; + + h6 { + margin: 0rem; + margin-right: 0.4rem; + } + .btn { + margin-left: 0.5rem; + } + &-item { + display: flex; + padding-right: 2.2rem; + align-items: center; + } + &-tier { + display: flex; + flex-direction: row; + align-items: center; + } + &-total { + display: flex; + flex-direction: row; + align-items: center; + &-heading { + display: flex; + flex-direction: row; + align-items: center; + } + &-claim { + display: flex; + flex-direction: row; + align-items: center; + } + .btn { + margin-left: 0rem; + } + .amount { + display: flex; + + svg { + margin-top: -3px; + margin-left: 4px; + } + } + } + } + .position { + padding-right: 4rem; + .description{ + display: flex; + align-items: center; + font-weight: bold; + small { + margin-left: 10px; + } + } + .tokens { + font-size: 0.9rem; + color: $purple ; + } + .ranges { + display: flex; + width: 100%; + flex-direction: row; + align-items: center; + .min-range { + font-size: 1rem; + margin-right: 2.5rem; + } + .max-range { + font-size: 1rem; + margin-left: 2.5rem; + } + @media (max-width: 1350px) { + .min-range { + margin-right: 1rem; + } + .max-range { + margin-left: 1rem; + } + } + } + } + } + + .empty-lp { + display: flex; + flex-direction: column; + align-items: center; + + .lp-box { + border: 1px solid $light; + border-radius: 5px; + background-color: #281e31a3; + } + + .lp-info { + display: flex; + flex-direction: column; + padding: 15px; + + .row1 { + display: flex; + flex-direction: row; + } + + .row2 { + display: flex; + flex-direction: row; + justify-content: center; + align-items: center; + margin-top: 0.6rem; + + h6 { + font-size: 0.9rem; + margin: 0rem; + } + + .number { + font-size: 0.85rem; + margin-left: 0.3rem; + } + + .neon-pink { + margin-left: 0.3rem; + font-size: 0.9rem; + text-shadow: 0 0 4px #f195f9, 0 0 10px #fff, 0 0 20px #e440f2, 0 -10px 40px #b626c4; + } + } + } + + .icons { + display: flex; + align-items: center; + padding: 5px; + padding-top: 0px; + } + + .description { + margin-left: 10px; + padding: 5px; + } + + .uni { + margin-left: -10px; + filter: drop-shadow(0 0 5px #a440f2); + } + + .btn-box { + width: 100%; + } + + .btn { + font-size: 0.9rem; + height: 2.5rem; + width: 100%; + border: 0px; + border-top: 0.8px solid $light; + background-color: #281e31; + margin: 0px; + padding-top: 8px; + border-bottom-left-radius: 5px; + border-bottom-right-radius: 5px; + } + + .btn:hover { + color: $white; + } + + small { + margin-left: -10px; + } + } + + .unstaked { + text-shadow: 0 0 4px #7940f2, 0 0 10px #fcdf49, 0 0 20px #f28040, 0 -10px 40px #c33; + } + + .deposited { + text-shadow: 0 0 4px #167226, 0 0 10px #61c4b3, 0 0 20px #167226, 0 -10px 40px #167226; + } + + .staked { + text-shadow: 0 0 4px #e440f2, 0 0 10px #e98ff1, 0 0 20px #e440f2, 0 -10px 40px #b626c4; + } + + .not_approved { + text-shadow: 0 0 4px #eeb173, 0 0 10px rgb(236, 97, 97), 0 0 20px #eeb173, 0 -10px 40px #c33; + } + + .out_range { + text-shadow: 0 0 4px rgb(233, 42, 42), 0 0 10px rgb(236, 97, 97), 0 0 20px rgb(233, 42, 42), 0 -10px 40px #c33; + } + } th { vertical-align: middle; } @@ -378,6 +637,40 @@ margin-right: 0.5rem; } } + .question-small { + border-radius: 2px; + width: 20px !important; + height: 20px !important; + margin-right: 0; + font-size: 10px; + padding: 2px; + margin-left: 5px; + margin-bottom: 0px !important; + } + } + + @media (max-width: 1370px) { + width: 115%; + } + + @media (max-width: 1280px) { + width: 125%; + } + + @media (max-width: 1200px) { + width: 138%; + } + + @media (max-width: 1070px) { + width: 155%; + } + + @media (max-width: 1000px) { + width: 170%; + } + + @media (max-width: 930px) { + width: 180%; } @media (max-width: 1050px) { @@ -400,8 +693,10 @@ } } - @media (max-width: 600px) { + @media (max-width: 850px) { + width: 100%; padding-top: 4rem; + margin-left: 2rem; #connect { width: 12rem; @@ -413,4 +708,237 @@ } } } + + @media (max-width: 850px) { + margin-top: 2rem; + padding: 1rem; + + .card-wrapper { + margin: 0rem; + .card { + background-color: transparent; + padding: 0rem; + overflow-x: unset; + + &-header { + h3 { + font-size: 1.2rem; + } + } + } + } + + .rewards-mobile { + margin-top: 1.5rem; + margin-bottom: 1rem; + background-color: $darker !important; + } + + .box { + display: flex; + justify-content: space-between; + margin: 0.75rem 0rem; + border: 0.5px solid $highlight; + border-radius: 5px; + + .title { + display: flex; + width: 45%; + padding: 0.5rem; + background-color: $darkest; + border-top-left-radius: 5px; + border-bottom-left-radius: 5px; + + &-price { + font-size: 0.85rem; + } + } + + .value { + display: flex; + justify-content: flex-end; + align-items: center; + width: 55%; + padding: 0.5rem; + } + } + + .rewards { + display: flex; + flex-direction: column; + + &-tier { + flex-direction: column; + align-items: flex-start; + } + &-item { + .title { + width: 55%; + } + .value { + width: 45%; + } + } + + &-total { + margin-top: 1.5rem; + &-heading { + display: flex; + flex-direction: row; + } + &-claim { + display: flex; + flex-direction: row; + align-items: center; + margin-top: 0.5rem; + border: 0.5px solid $highlight; + border-radius: 5px; + .amount { + display: flex; + align-items: center; + width: 55%; + height: 100%; + padding-left: 0.7rem; + } + .claim-button { + width: 45%; + .btn { + height: 3rem; + width: 100% !important; + margin: 0rem !important; + border-top-right-radius: 5px; + border-bottom-right-radius: 5px; + } + } + } + } + } + + .empty-lp { + margin-top: 2rem; + + .lp-box { + width: 95%; + } + .lp-info { + padding-bottom: 1.6rem !important; + } + .btn { + display: flex; + align-items: center; + justify-content: center; + height: 3rem !important; + } + } + + .positions-mobile { + svg { + color: white; + } + .position { + padding: 1rem !important; + background-color: $darker; + + .card-header { + padding: 0rem; + } + .card-body { + padding: 0rem; + padding-top: 1rem; + } + &-title { + display: flex; + align-items: center; + } + + .title { + display: flex; + align-items: center; + } + .description { + display: flex; + flex-direction: row; + margin-bottom: 1rem; + svg { + color: $highlight; + } + .title { + flex-direction: column; + align-items: flex-start; + justify-content: center; + } + } + .icons { + display: flex; + flex-direction: row; + align-items: center; + margin-right: 1rem; + + svg { + margin-top: 0rem; + } + + .weth { + margin-right: 0.5rem; + } + } + .ranges { + align-items: center; + padding: 0.5rem; + border: 0.5px solid $highlight; + border-radius: 5px; + } + .status { + .value { + display: flex; + font-family: "Nineteen Ninety Seven"; + } + } + + &-actions { + display: grid; + grid-template-columns: 50% 50%; + gap: 0.5rem; + padding: 1rem 0rem; + .btn { + height: 3rem; + width: 95% !important; + margin: 0rem !important; + } + } + } + } + + .liquidity { + margin-top: 4rem !important; + + &-reward { + background-color: $darker !important; + margin-bottom: 1.5rem; + + &-header { + display: flex; + align-items: center; + .icons { + margin-right: 1rem; + } + } + &-actions { + display: grid; + grid-template-columns: 50% 50%; + gap: 0.5rem; + + .btn { + height: 3rem !important; + width: 95% !important; + margin: 0rem !important; + } + } + } + } + } + + @media (max-width: 600px) { + margin-left: 0rem; + } } diff --git a/src/styles/faucet.scss b/src/styles/faucet.scss deleted file mode 100644 index 14cb596e..00000000 --- a/src/styles/faucet.scss +++ /dev/null @@ -1,112 +0,0 @@ -@import "./colors"; -@import "./fonts"; - -div.faucet { - padding: 1rem 3rem; - padding-bottom: 0px; - - .btn { - width: 13.4375rem; - height: 3.875rem; - border-radius: 1px; - margin-top: 2rem; - } - - .info { - border-bottom: 1px solid $dark; - - h4 { - padding: 2rem; - padding-bottom: 0; - } - p { - padding: 2rem; - padding-top: 0; - padding-bottom: 0; - } - } - - form { - padding: 2rem; - - label { - font-family: "Nineteen Ninety Seven"; - color: $white; - } - - .text-muted { - text-align: right; - font-size: 1rem; - } - - input[type="text"] { - border-radius: 1px; - background: no-repeat; - border-color: $dark; - color: $white; - height: 3.375rem; - } - - .btn { - margin-top: 2rem; - border-radius: 1px; - width: 100%; - box-shadow: 0px 6px 25px -6px rgba(241, 36, 255, 0.4); - } - } - - // Small devices (landscape phones, 576px and up) - @media (min-width: 576px) { - .actions { - margin-top: 2.5rem; - display: grid; - grid-template-columns: auto; - margin-bottom: 4rem; - } - .card { - margin-bottom: 2rem; - } - } - - // Large devices (desktops, 992px and up) - @media (min-width: 992px) { - .actions { - margin-top: 2.5rem; - display: grid; - grid-template-columns: 33% auto 33%; - margin-bottom: 0rem; - column-gap: 1rem; - } - - .card { - margin-bottom: 0rem; - } - - @media (max-width: 1100px) { - .card { - .info { - h4 { - font-size: 1.4rem; - } - } - } - - @media (max-height: 780px) { - .actions { - margin-top: 2rem; - } - form { - padding: 1rem 2rem; - } - } - } - } - - @media (max-width: 600px) { - padding: 4rem 1.4rem; - - .card { - margin-top: 2rem; - } - } -} diff --git a/src/styles/graph.scss b/src/styles/graph.scss deleted file mode 100644 index 47dd2bcc..00000000 --- a/src/styles/graph.scss +++ /dev/null @@ -1,219 +0,0 @@ -.graph { - padding-bottom: 0px; - - // Small devices (landscape phones, 576px and up) - @media (min-width: 300px) { - padding: 1rem 1rem; - padding-bottom: 0px; - - .grid { - display: grid; - grid-template-columns: auto; - grid-template-rows: auto auto auto; - gap: 2rem; - margin-bottom: 4rem; - } - - h4 { - font-size: 1rem; - margin-top: 2rem; - margin-bottom: 0; - } - - h5 { - margin-top: 0.75rem; - font-size: 1rem; - margin-bottom: 0; - } - - .card { - padding: 2rem; - } - } - - // Small devices (landscape phones, 576px and up) - @media (min-width: 576px) { - padding: 5rem 3rem; - - .grid { - display: grid; - grid-template-columns: auto auto; - grid-template-rows: auto auto auto; - gap: 2rem; - margin-bottom: 4rem; - } - - h4 { - font-size: 1rem; - margin-top: 2rem; - margin-bottom: 0; - } - - h5 { - margin-top: 0.75rem; - font-size: 1rem; - margin-bottom: 0; - } - .card { - padding: 2.2rem; - - @media (max-width: 750px) { - padding: 1.8rem; - h4 { - font-size: 0.9rem; - } - h5 { - font-size: 0.9rem; - } - } - @media (max-width: 680px) { - padding: 1.5rem; - h4 { - font-size: 0.8rem; - } - h5 { - font-size: 0.8rem; - margin-top: 0.5rem; - } - } - } - } - - // Medium devices (tablets, 768px and up) - @media (min-width: 768px) { - padding: 5rem 2rem; - - .card { - h4 { - font-size: 1.25rem; - margin-top: 1.5rem; - margin-bottom: 0; - } - - h5 { - margin-top: 0.75rem; - font-size: 1.3rem; - margin-bottom: 0; - } - - @media (max-width: 935px) { - h4 { - font-size: 1.2rem; - margin-top: 1.7rem; - } - h5 { - font-size: 1.25rem; - } - } - @media (max-width: 830px) { - padding: 2rem; - h4 { - font-size: 1.15rem; - } - h5 { - font-size: 1.2rem; - } - } - } - } - - // Large devices (desktops, 992px and up) - @media (min-width: 992px) { - padding: 3rem 3rem; - .grid { - display: grid; - grid-template-columns: auto auto auto; - grid-template-rows: auto auto; - gap: 2rem; - margin-bottom: 0rem; - } - @media (max-height: 820px) { - padding: 1rem 3rem; - } - @media (max-height: 680px) { - padding: 2rem 3rem; - .grid { - gap: 1.5rem; - } - } - - .card { - @media (max-width: 1340px) { - h4 { - font-size: 1.2rem; - } - h5 { - font-size: 1.25rem; - } - } - @media (max-width: 1310px) { - h4 { - font-size: 1.1rem; - } - h5 { - font-size: 1.23rem; - } - } - @media (max-width: 1250px) { - padding: 2.2rem; - h4 { - font-size: 1rem; - } - h5 { - font-size: 1.2rem; - } - } - @media (max-width: 1180px) { - padding: 1.8rem; - } - @media (max-width: 1110px) { - padding: 1.6rem; - h4 { - font-size: 0.9rem; - } - h5 { - font-size: 1.1rem; - } - } - } - } - - .card { - height: 14rem; - @media (max-height: 870px) { - height: 13rem; - } - - svg { - height: 16.25rem; - } - - svg.stake { - filter: drop-shadow(0px 0px 5px rgba(191, 245, 225, 0.7)); - } - - svg.h24 { - filter: drop-shadow(0px 0px 5px rgba(6, 180, 255, 0.53)); - } - - svg.tcap { - width: 3rem; - } - - svg.weth { - filter: drop-shadow(0px 0px 5px rgba(111, 19, 202, 0.53)); - } - - svg.wbtc { - filter: drop-shadow(0px 0px 5px rgba(249, 252, 73, 0.42)); - } - - svg.dai { - filter: drop-shadow(0px 0px 5px rgba(242, 128, 64, 0.42)); - } - - svg.ctx { - width: 3rem; - } - } -} diff --git a/src/styles/header.scss b/src/styles/header.scss index 7e210536..d605740d 100644 --- a/src/styles/header.scss +++ b/src/styles/header.scss @@ -5,18 +5,67 @@ flex-direction: row; justify-content: flex-end; align-items: center; - padding-right: 3rem; + padding-right: 2rem; .network-container { display: flex; flex: 1; flex-direction: row; padding-left: 3rem; + + .dropdown { + border-radius: 0.3rem; + border: solid 1px $highlight; + background-color: $darker; + } + .network-toggle { + display: flex; + h6 { + line-height: 2rem; + } + svg { + margin-right: 12px; + } + } + .dropdown-menu { + background-color: $darker; + margin-top: 1px !important; + width: 200px; + .dropdown-item { + display: flex; + padding: 0.5rem 1rem; + h6 { + line-height: 1.5rem; + color: $white; + } + svg { + margin-right: 20px; + } + } + .dropdown-item.active { + background-color: rgba(121, 64, 242, 0.4); + } + .dropdown-item:hover { + background-color: rgba(121, 64, 242, 0.3); + } + } + .dropdown-toggle::after { + position: absolute; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.5em solid; + border-right: 0.5em solid transparent; + border-bottom: 0; + border-left: 0.5em solid transparent; + margin-left: 155px; + } + .btn { height: 3.2rem; width: 10.5rem; border-radius: 0.3rem; - + border: 1px solid $highlight; svg { height: 2rem; } @@ -39,7 +88,6 @@ } } @media (max-width: 600px) { - margin-bottom: 1rem; padding-left: 0rem; justify-content: center; } @@ -67,20 +115,194 @@ flex-direction: row; align-items: center; justify-content: flex-end; + + &-address { + display: flex; + flex-direction: row; + background-color: $darker; + border: 0.5px solid $highlight;; + padding: 0.5rem; + border-radius: 5px; + } } .btn-network-container{ padding-left: 1rem; } + .btn-language { + margin-left: 15px; + button { + border-radius: 5px; + border-color: $green; + background-color: $darker !important; + width: auto; + } + .dropdown-toggle { + background-color: $darker; + border-color: $highlight; + } + .dropdown-menu { + background-color: $darker; + border-color: $highlight; + } + .dropdown-item { + color: $white; + } + .dropdown-item:hover { + color: $off-white; + background-color: rgba(205, 149, 214, 0.4); + } + } + .btn-language.small { + button { + height: 2.5rem; + } + } + .address { color: white; margin-top:-5px; } + .logout { + border: 0.5px solid $highlight; + width: auto; + height: 2.7rem; + border-radius: 5px; + margin-left: 10px; + } + + button { + border: 1px solid $highlight !important; + } + + [data-testid="connect-button"] { + background-color: $primary !important; + border: 1px solid $highlight; + + button { + background-color: $primary !important; + border: 1px solid $highlight; + } + } + + @media (max-width: 769px) { + .address { + font-size: 1rem; + } + .neon-pink { + font-size: 1rem; + } + .network-container { + padding-left: 2rem; + .btn { + height: 2.9rem; + } + .dropdown { + width: 85%; + + button{ + width: 100% !important; + } + } + .dropdown-menu { + width: 100%; + } + .dropdown-toggle::after { + margin-left: 75%; + } + .network-toggle { + h6 { + font-size: 0.9rem; + } + svg { + height: 1.8rem; + margin-right: 10px; + } + } + } + } @media (max-width: 600px) { padding-right: 0rem; justify-content: center; - margin-top: 70px; + margin-top: 50px; + + .address { + font-size: 0.9rem; + } + .neon-pink { + font-size: 0.9rem; + } + .network-container { + padding-left: 0.5rem; + .btn { + height: 2.8rem; + } + .dropdown { + width: 85%; + + button{ + width: 100% !important; + } + } + .dropdown-menu { + width: 100%; + } + .dropdown-toggle::after { + margin-left: 75%; + } + .network-toggle { + h6 { + font-size: 0.8rem; + } + svg { + height: 1.7rem; + } + } + } + .info { + justify-content: center; + } + } + @media (max-width: 530px) { + .btn-connect { + width: 90%; + } + .network-container { + margin-bottom: 1rem; + .dropdown-toggle::after { + margin-left: 82%; + } + } + .btn-language { + display: none; + } + } + @media (max-width: 450px) { + display: flex; + flex-direction: column; + padding: 1rem; + .network-container { + width: 100%; + margin-bottom: 1rem; + padding-left: 0rem; + .dropdown { + width: 100%; + border: 0.5px solid $highlight; + } + .dropdown-toggle { + border: 0.5px solid $highlight; + } + .dropdown-toggle::after { + margin-left: 87%; + } + } + .info { + width: 100%; + &-address { + width: 100%; + } + } } } diff --git a/src/styles/modal.scss b/src/styles/modal.scss index fda39d9f..9952f59a 100644 --- a/src/styles/modal.scss +++ b/src/styles/modal.scss @@ -1,6 +1,8 @@ @import "./colors"; @import "./fonts"; + + .modal-content { padding: 2rem; background-color: $primary; @@ -24,6 +26,29 @@ border: 0px; } + .modal-header { + .btn-close { + height: 20px; + width: 20px; + background-color: transparent; + background-image: url("../assets/images/x-symbol.svg"); + background-size: cover; + background-repeat: no-repeat; + border: none; + margin-top: -1rem; + margin-right: -1rem; + + @media (max-width: 900px) { + margin-top: -0.3rem; + margin-right: -0.3rem; + } + @media (max-width: 900px) { + height: 15px; + width: 15px; + } + } + } + .modal-title { font-family: "Nineteen Ninety Seven"; color: $white; @@ -40,13 +65,7 @@ } margin-bottom: 0.5rem; } - - .close { - margin-top: -2rem; - margin-right: -1rem; - color: $white; - opacity: 1; - } + ul { list-style-type: none; padding: 0; @@ -54,6 +73,11 @@ color: $light; } } + + .delegate-description { + margin-bottom: 3rem; + } + form { // padding: 2rem 2rem 0rem 2rem; margin-top: 1rem; @@ -65,7 +89,7 @@ &.max { float: right; a { - color: $green; + color: $bright-green; &.orange { color: $orange; @@ -75,9 +99,12 @@ } .avatar { - height: 92%; - width: 80%; position: absolute; + height: 92%; + width: 65%; + margin-left: 20px; + cursor: pointer; + z-index: 0; } .image-group { @@ -91,7 +118,7 @@ } a { position: absolute; - margin-left: 20px; + margin-left: 35px; } } @@ -99,9 +126,23 @@ text-align: left; font-size: 0.8rem; } + .text-muted.liquidation-fee, + .text-muted.liquidation-reward { + color: #9ca5ad !important; + font-size: 0.9rem; + } + .liquidation-data { + display: flex; + margin-top: 5px; + justify-content: space-between; + + .reward-usd { + padding-left: 25px; + } + } input[type="text"].neon-green { - border-color: $green !important; + border-color: $bright-green !important; border-radius: 1px; background: no-repeat; border-color: $dark; @@ -118,28 +159,29 @@ height: 87%; width: 80%; } + input[type="file"] { - background-color: $dark; - height: 90%; + background-color: transparent; + border: none; + color: transparent; + height: 100%; width: 90%; + margin-left: 20px; + cursor: pointer; + z-index: 1; } - .custom-file-label { - border-color: $green; - height: 3.375rem; - line-height: 1.5; - display: none; + input[type="file"]:focus { + box-shadow: none; } - .custom-file-label::after { - background-color: $darker; - border-color: $pink; - color: $white; - font-family: "Nineteen Ninety Seven"; - font-size: 0.9rem; - font-weight: 400; + + input::file-selector-button { + background-color: transparent; + color: transparent; + border: none; } textarea.neon-green { - border-color: $green; + border-color: $bright-green; border-radius: 1px; background: no-repeat; color: $white; @@ -156,17 +198,88 @@ font-family: "Space Mono"; } } - .btn { background-color: $darker; border-radius: 1px; height: 3.375rem; width: 100%; } - .remove { margin-top: 3.5rem; } + + .liquidate-input { + .form-control { + z-index: 1; + } + .text-muted { + position: absolute; + width: 100%; + text-align: right; + font-size: 0.9rem; + padding: 0.7rem 0.75rem 0.375rem 0.75rem; + } + } + } + + table.liq-info { + margin-top: 3rem !important; + .btn-dark { + padding-top: 5px; + padding-left: 10px; + } + th { + text-align: right; + border-bottom: 1px; + } + td { + text-align: right; + } + .net-reward { + font-size: 18px; + text-shadow: 0 0 4px #e440f2,0 0 10px #e98ff1,0 0 20px #e440f2,0 -10px 40px #b626c4; + } + } + + .liq-info.mobile { + display: flex; + flex-direction: column; + margin-top: 1rem; + + .box { + display: flex; + flex-direction: row; + border: 0.5px solid $off-white; + border-radius: 5px; + margin-top: 1rem; + + .title { + display: flex; + flex-direction: row; + align-items: center; + padding: 0.5rem; + width: 50%; + background-color: $darkest; + border-top-left-radius: 5px; + border-bottom-left-radius: 5px; + font-size: 0.8rem; + color: white; + } + .value { + display: flex; + flex-direction: row; + justify-content: flex-end; + align-items: center; + padding: 0.5rem; + width: 50%; + font-size: 0.8rem; + color: white; + } + .net-reward { + font-size: 0.9rem; + text-shadow: 0 0 4px #e440f2, 0 0 10px #e98ff1, 0 0 20px #e440f2, 0 -10px 40px #b626c4; + } + } } .progress { @@ -223,4 +336,20 @@ } } + @media (max-width: 1000px) { + padding: 0.5rem; + + .modal-body { + padding: 0rem 0.5rem; + } + .modal-footer { + padding: 0.5rem; + } + } } + +@media (max-width: 900px) { + .modal-dialog { + max-width: 600px; + } +} \ No newline at end of file diff --git a/src/styles/sewagefruit.scss b/src/styles/sewagefruit.scss new file mode 100644 index 00000000..39e614a6 --- /dev/null +++ b/src/styles/sewagefruit.scss @@ -0,0 +1,113 @@ +@import "./colors"; +@import "./fonts"; + +/* .wrapper::before { + background-image: none; + background-color: black; +} */ + +.sewage-fruit { + display: flex; + flex-direction: column; + margin: 2rem; + padding: 1rem; + + [class^="col-"] { + padding-left: 0px; + padding-right: 0px; + } + + .spinner { + margin: 5rem 0rem; + } + + .content { + display: grid; + grid-template-columns: 46% 46%; + grid-gap: 3rem; + } + + .card { + padding: 1rem; + margin-top: 2rem; + + ul { + margin: 2.5rem 0rem; + } + + &-footer { + display: flex; + justify-content: flex-end; + } + + img { + width: 60%; + } + .img-sewage { + width: 100%; + } + .img-minted { + width: 70%; + border-radius: 50%; + } + .btn { + background-color: $darker; + width: 10rem; + height: 2.7rem; + } + } + + .info { + a { + margin-left: 10px; + } + .link-blog { + margin-left: 0px; + } + } + + .mint { + background-color: rgba(33, 33, 56, 0.7); + p { + font-size: 1.1rem; + } + .card-body { + display: flex; + justify-content: center; + align-items: center; + + + } + } + + @media (max-width: 1300px) { + .content { + grid-template-columns: 49% 49%; + } + } + @media (max-width: 1080px) { + .content { + grid-template-columns: 100%; + grid-gap: 1rem; + } + } + @media (max-width: 1024px) { + margin: 4rem 1rem; + padding: 0.5rem; + } + @media (max-width: 500px) { + margin: 2rem 0.2rem 4rem 0.7rem; + padding: 0rem; + .card { + img { + width: 75%; + } + .img-minted { + width: 82%; + } + } + .mint { + height: 27rem; + } + } +} \ No newline at end of file diff --git a/src/styles/sidebar.scss b/src/styles/sidebar.scss index e6ac24e1..bb462c35 100644 --- a/src/styles/sidebar.scss +++ b/src/styles/sidebar.scss @@ -1,7 +1,7 @@ @import "./colors"; .sidebar { - width: 5rem; + width: 6.1rem; height: 100%; background-color: $darker; border-right: solid 2px $dark; @@ -25,9 +25,19 @@ margin-right: auto; display: block; } - - a svg { - &:hover { + + a { + display: flex; + flex-direction: column; + align-items: center; + color: $light; + } + a:hover { + svg { + -webkit-filter: drop-shadow(3px 3px 2px $highlight); + filter: brightness(1118%) drop-shadow(0px 0px 12px $highlight); + } + .title { -webkit-filter: drop-shadow(3px 3px 2px $highlight); filter: brightness(1118%) drop-shadow(0px 0px 12px $highlight); } @@ -38,19 +48,37 @@ filter: #A9A7BE; } + a svg.sewagefruit, svg.logout-icon { + margin-top: 0.8rem; + } + a.active svg { -webkit-filter: drop-shadow(3px 3px 2px $highlight); filter: brightness(1118%) drop-shadow(0px 0px 12px $highlight); + text-shadow: none; + } + .title { + font-size: 0.75rem; + margin-top: 2px; + } + .title.active { + -webkit-filter: drop-shadow(3px 3px 2px $highlight); + filter: brightness(1118%) drop-shadow(0px 0px 12px $highlight); + text-shadow: none; } } &.mobile { - width: 4.5rem; + width: 5.5rem; z-index: 10; top: 0; svg.menu { fill: $white; } + a svg.sewagefruit, + svg.logout-icon { + margin-top: 0.8rem; + } .mt-4.nav-item { margin-top: 0.5rem !important; } @@ -58,7 +86,7 @@ height: 4.5rem; } &.slide-out { - left: -5rem; + left: -5.5rem; transition: left 0.6s ease-out; } diff --git a/src/styles/summary.scss b/src/styles/summary.scss new file mode 100644 index 00000000..eba83e98 --- /dev/null +++ b/src/styles/summary.scss @@ -0,0 +1,378 @@ +@import "./colors"; +@import "./fonts"; + +.dashboard { + display: flex; + flex-direction: row; + flex-wrap: wrap; + margin-top: 0.5rem; + padding: 3rem 2rem; + padding-bottom: 2rem; + + .jpegz-icon { + width: 2.1rem; + } + .spinner-container { + padding-top: 3rem; + width: 100%; + } + + h2 { + font-size: 1.375rem; + margin-bottom: 0rem; + } + h3 { + font-size: 1.1rem; + margin-bottom: 0rem; + } + h4 { + font-size: 0.9rem; + } + h5 { + font-size: 0.9rem; + text-align: right; + } + + .btn { + background-color: $darker; + width: 7rem; + height: 2.7rem; + font-size: 0.8rem; + + &.question { + border-radius: 2px; + width: 20px; + height: 20px; + margin-right: 0px; + font-size: 10px; + padding: 2px; + margin-left: 5px; + } + } + .btn:disabled { + color: $light; + opacity: 0.8; + } + + .card { + padding: 1.5rem; + + &-header { + padding: 0.5rem 1rem; + } + + .cls-1 { + fill: $darker; + } + b { + font-family: "Nineteen Ninety Seven"; + color: $purple; + } + + .row { + margin-top: 0rem; + } + + &.diamond { + padding-bottom: 0rem; + p { + width: 80%; + } + .btn { + width: 11.0625rem; + margin-bottom: 0.8rem; + margin-left: 0.8rem; + border-radius: 5px; + + &.neon-green { + box-shadow: 0px 0px 39px -6px rgba(63, 217, 180, 0.4); + } + &.neon-blue { + box-shadow: 0px 0px 39px -6px rgba(15, 217, 255, 0.4); + } + } + } + } + + .col-wrapper { + p { + font-size: 1rem; + } + div[class*="col-"] { + padding: 0rem; + } + .balance { + margin-bottom: 1.5rem; + padding-bottom: 0.8rem; + } + } + + .features { + flex: 1; + margin-right: 1rem; + &-title { + margin-bottom: 2rem; + } + .btn-feature { + display: flex; + justify-content: space-between; + align-items: center; + background-color: $darkest; + margin-bottom: 1.5rem; + padding: 0rem 2rem; + width: 100%; + height: 5rem; + border: 0.7px solid $highlight; + } + .feature-content { + display: flex; + align-items: center; + p { + text-align: left; + } + + svg { + height: 25px; + margin-right: 1.5rem; + -webkit-filter: drop-shadow(3px 3px 2px $highlight); + filter: brightness(1118%) drop-shadow(0px 0px 12px $highlight); + } + + .stake-icon { + height: 30px; + } + } + } + + .summary { + flex: 1; + margin-left: 1rem; + width: 100%; + padding-left: 1rem; + padding-right: 1rem; + + .dropdown { + margin-right: 1rem; + + .btn { + width: 100%; + background-color: $darkest; + } + .btn:after { + margin-top: 0.2rem; + margin-left: 0.6rem; + border-top: 0.5em solid; + border-right: 0.5em solid transparent; + border-left: 0.5em solid transparent; + } + } + .card-header { + display: flex; + } + } + + .protocol, .indexes, .balance-container { + width: 100%; + + .detail { + display: grid; + grid-template-columns: 50% 50%; + gap: 1rem; + row-gap: 1.7rem; + height: fit-content; + width: 100%; + } + + .totals { + display: flex; + flex-direction: row; + align-items: center; + justify-content: space-between; + height: fit-content; + padding: 0.7rem; + background-color: #281e31; + border: 0.7px solid $highlight; + border-radius: 5px; + } + + .market-cap, .total-supply { + grid-column-start: 1; + grid-column-end: 3; + } + + .asset { + display: flex; + flex-direction: row; + justify-content: space-between; + align-items: center; + height: fit-content; + min-height: 4rem; + padding: 0.7rem; + background-color: #281e31; + border: 0.7px solid $highlight; + border-radius: 5px; + + h5 { + margin-bottom: 0.5rem; + } + } + + .staked { + display: flex; + flex-direction: column-reverse; + margin-left: 1rem; + + h6 { + margin-bottom: 0rem; + text-align: right; + color: $lighter; + } + } + + svg { + width: 2.1rem; + } + .weth { + height: 2.1rem; + width: 1rem; + } + + @media (min-width: 1151px) and (max-width: 1320px) { + h6 { + font-size: 0.9rem; + } + } + + @media (min-width: 760px) and (max-width: 1150px) { + .detail { + display: flex; + flex-direction: column; + } + } + } + + .balance-container { + .spinner { + margin: 3.7rem 50%; + } + .detail { + grid-template-columns: 50% 50%; + .staked { + .value { + display: flex; + flex-direction: column; + + &-separator { + display: none; + margin: 0px 15px; + } + } + h6 { + margin-top: 0.35rem; + } + .number { + margin-bottom: 0rem; + } + .number.neon-green { + margin-bottom: 0.45rem; + } + } + } + .jpegz-icon { + width: 2.5rem; + } + svg { + width: 2.5rem; + } + .warnings { + padding: 1.5rem 0rem; + &-vaults { + display: flex; + align-items: center; + justify-content: space-between; + padding: 1.7rem 1rem; + width: 100%; + } + } + } + + @media (max-width: 1024px) { + display: flex; + flex-direction: column; + + .features { + margin-bottom: 2rem; + margin-right: 0rem; + } + .summary { + margin-left: 0rem; + } + } + + @media (max-width: 600px) { + padding: 3rem 1rem; + + .card { + padding: 1.5rem 0rem; + margin-bottom: 3rem; + + &-header { + display: flex; + flex-direction: column; + .dropdown { + margin-bottom: 0.7rem; + .btn { + h6 { + font-size: 0.9rem; + } + } + } + } + } + + .features { + margin-bottom: 1rem; + .btn-feature { + padding: 0rem 1rem; + } + .feature-content { + p { + font-size: 0.8rem; + } + svg { + height: 45px; + margin-right: 0.7rem; + } + .farm-icon { + height: 17px; + } + } + } + + .protocol, + .indexes, + .balance-container { + .detail { + display: flex; + flex-direction: column; + + h6 { + font-size: 0.85rem; + } + } + } + + .balance-container { + .value { + display: flex; + flex-direction: column; + .number { + margin-bottom: 0.5rem !important; + } + } + .value-separator { + display: none; + } + } + } +} diff --git a/src/styles/toast.scss b/src/styles/toast.scss index 0aaa9e6d..afa9546e 100644 --- a/src/styles/toast.scss +++ b/src/styles/toast.scss @@ -89,4 +89,7 @@ margin-right: 1rem; } } + p { + margin-left: 4.3rem; + } } diff --git a/src/styles/topbar.scss b/src/styles/topbar.scss index 8d85d377..68679b4f 100644 --- a/src/styles/topbar.scss +++ b/src/styles/topbar.scss @@ -11,12 +11,18 @@ top: 0px; z-index: 9; + .menu.nav-item { + width: 25%; + padding-left: 8px; + } .logo.nav-item { - width: 75%; + width: 50%; } - .menu.nav-item { + .settings.nav-item { + display: none; + justify-content: flex-end; width: 25%; - padding-left: 5px; + padding-right: 10px; } .nav-item { @@ -54,3 +60,36 @@ display: none; } } + +.top-settings { + position: absolute; + display: flex; + flex-direction: column; + padding: 1rem; + width: 100%; + background: $darkest; + margin-top: 3.3rem; + .info-address { + display: flex; + flex-direction: row; + padding: 1rem; + + .avatar { + height: 35px; + width: 35px; + border-radius: 50%; + } + .address { + color: $white; + } + } + .logout { + display: flex; + flex-direction: row; + align-items: center; + border: none; + h6 { + margin-left: 10px; + } + } +} diff --git a/src/styles/vault-monitoring.scss b/src/styles/vault-monitoring.scss new file mode 100644 index 00000000..c4f74fc5 --- /dev/null +++ b/src/styles/vault-monitoring.scss @@ -0,0 +1,758 @@ +@import "./colors"; +@import "./fonts"; + +span { + &.empty, &.ready, &.active, &.liquidation, &.liquidated { + font-family: "Nineteen Ninety Seven"; + font-size: 15px; + -webkit-animation: fire 2s infinite alternate; + animation: fire 2s infinite alternate; + color: #fff !important; + } +} + +.empty { + text-shadow: 0 0 4px #7940f2, 0 0 10px #fcdf49, 0 0 20px #f28040, 0 -10px 40px #c33; +} +.ready { + text-shadow: 0 0 4px $bright-green, 0 0 10px $bright-green, 0 0 20px $bright-green, 0 -10px 40px #4cd70cc7; +} +.active { + text-shadow: 0 0 4px #b626c4, 0 0 10px #e440f2, 0 0 20px #e440f2, 0 -10px 40px #b626c4; +} +.liquidation { + text-shadow: 0 0 4px #c33, 0 0 10px rgb(236, 97, 97), 0 0 20px #c33, 0 -10px 40px #c33; +} +.liquidated { + text-shadow: 0 0 4px #7940f2, 0 0 10px #fcdf49, 0 0 20px #f28040, 0 -10px 40px #c33; +} + +.vault-monitoring { + margin-top: 2rem; + margin-left: 1rem; + padding: 1rem 2rem; + + .btn:active { + background-color: transparent; + } + + .card, .accordion { + padding: 1.5rem 2.8125rem; + width: 100%; + @media (max-width: 1400px) { + padding: 1.5rem 2rem; + } + .actions { + display: flex; + align-items: flex-end; + + .dropdown { + .dropdown-toggle { + display: flex; + height: 2.1rem; + width: 150px; + background-color: #281e31; + border: 1px solid #dfd1ea; + + div { + display: flex; + align-items: center; + flex: 1; + } + span { + font-size: 0.8rem; + } + svg { + height: 20px; + margin-right: 5px; + } + } + .dropdown-toggle::after { + position: absolute; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.4em solid; + border-right: 0.4em solid transparent; + border-bottom: 0; + border-left: 0.4em solid transparent; + margin-top: 2px; + margin-left: 70%; + } + .dropdown-menu { + width: 85%; + margin-top: 3px !important; + margin-right: 1rem; + background-color: #211828; + + .dropdown-item { + color: $white; + } + .dropdown-item.active { + background-color: rgba(121, 64, 242, 0.4); + } + .dropdown-item:hover { + background-color: rgba(121, 64, 242, 0.3); + } + } + .ratio-range-toggle { + width: 180px; + } + .ratio-range-toggle::after { + margin-left: 80%; + } + .ratio-range-menu { + display: flex; + flex-direction: column; + width: 17rem; + .btn { + background-color: $darker; + font-size: 0.8rem; + margin: 0rem 0.5rem; + } + .range-container { + display: flex; + align-items: center; + justify-content: space-between; + padding: 0.5rem; + } + svg { + color: $white; + } + } + } + .filters { + display: flex; + flex-direction: row; + justify-content: flex-end; + padding: 0px; + width: 100%; + input[type="radio"] { + display: none; + } + } + .dd { + &-container { + display: flex; + flex-direction: column; + align-items: flex-start; + justify-content: flex-end; + margin-left: 1.2rem; + h6 { + margin-right: 5px; + } + + &.view { + flex-direction: row; + align-items: center; + } + .btn-create-vault { + font-size: 0.9rem; + } + } + @media (max-width: 1670px) { + &-container { + margin-left: 1rem; + } + } + @media (max-width: 1450px) { + &-collateral, &-mode { + .dropdown-toggle { + width: 6.7rem; + } + .dropdown-toggle::after { + margin-left: 62%; + } + .dropdown-menu { + width: 7rem; + min-width: 7rem; + } + } + } + } + input[type="number"] { + background-color: #281e31; + border: 1px solid #dfd1ea; + border-radius: 5px; + text-align: right; + height: 2.1rem; + width: 6rem; + } + .neon-orange { + border: 1px solid $orange !important; + box-shadow: 0px 0px 39px -6px rgba(242, 128, 64, 0.4); + } + .btn-group { + border: 1px solid #dfd1ea; + border-radius: 5px; + padding-left: 1px; + margin-bottom: 0rem !important; + .btn-secondary { + margin-bottom: 0rem; + font-size: 0.8rem; + background-color: #281e31; + border-top-left-radius: 0px; + border-bottom-left-radius: 0px; + } + .btn-check:checked + .btn { + background-color: $neon-highlight; + } + } + .items-view { + .dd-container { + margin-left: 0rem; + } + .dropdown { + .dropdown-toggle { + height: 2.1rem; + width: 80px; + } + .dropdown-toggle::after { + margin-left: 50%; + } + .dropdown-menu { + width: 120px; + min-width: 120px; + } + } + } + div[class*="col-"] { + padding: 0px; + } + .titles { + color: $white; + margin-bottom: 5px; + } + } + .vaults { + margin-top: 1.8rem !important; + margin-bottom: 0.2rem; + + .number { + flex: 1; + text-align: right; + font-size: 0.8rem; + } + .btn { + margin-top: 0px; + padding: 0.3rem 0.6rem; + } + .btn:active { + background-color: transparent; + } + thead { + th { + text-align: center; + } + .vault-id { + text-align: left; + } + .status { + text-align: left; + } + .collateral, .collateral-usd, .debt, .debt-usd, .ratio { + text-align: right; + } + .collateral { + padding-right: 40px; + } + .sort { + background-color: transparent; + border: 0 solid transparent; + padding-right: 0px; + svg { + color: $white; + } + .asc { + margin-top: 5px; + } + .desc { + margin-top: -8px; + } + } + } + tbody { + div { + display: flex; + } + tr.hide { + display: none; + } + td { + border-top: 0.5px solid #a440f2; + } + td.go-to-vault { + text-align: center; + } + .has-tooltip { + cursor: pointer; + } + .collateral{ + display: flex; + flex-direction: row; + align-items: center; + span { + flex: 2; + margin-right: -15px; + } + svg { + flex: 1; + height: 25px; + } + } + .debt { + display: flex; + flex-direction: row; + align-items: center; + justify-content: flex-end; + + .tcap, + .jpegz { + width: 30px; + margin-left: 10px; + } + } + .ratio { + width: 100%; + justify-content: flex-end; + + span { + font-family: "Erbos Draco 1st Open NBP"; + font-weight: 100; + font-size: 0.9rem; + } + } + .status { + display: flex; + flex-direction: column; + //align-items: center; + font-family: "Nineteen Ninety Seven"; + font-size: 15px; + -webkit-animation: fire 2s infinite alternate; + animation: fire 2s infinite alternate; + color: #fff !important; + .mode { + font-size: 0.6rem; + text-shadow: none; + color: $off-white; + } + svg { + margin-left: 7px; + &.empty { + filter: brightness(1118%) drop-shadow(0px 0px 5px #f28040); + } + &.ready { + filter: brightness(1118%) drop-shadow(0px 0px 5px $bright-green); + } + &.active { + filter: brightness(1118%) drop-shadow(0px 0px 5px #e440f2); + } + &.liquidation { + filter: brightness(1118%) drop-shadow(0px 0px 5px #c33); + } + } + button { + background: transparent; + border: 0.8px solid #f28040; + } + a { + color: $white; + } + } + } + } + .pag-container{ + display: flex; + justify-content: center; + padding-top: 2rem; + border-top: 2px solid $highlight; + .page-link { + color: $off-white; + background-color: $darker; + border: 1px solid $highlight; + .visually-hidden { + display: none; + } + } + .page-link:hover { + background-color: $primary; + } + .page-item.active { + .page-link { + background-color: $neon-highlight; + } + } + } + } + .accordion.totals { + .totals-container { + display: flex; + flex-direction: row; + } + div[class*="col-"] { + padding: 0px; + } + .total-box { + display: flex; + flex-direction: column-reverse; + h6 { + color: $off-white; + } + .debt { + display: flex; + flex-direction: row; + } + } + h6 { + color: $light; + margin-top: 5px; + } + .number { + color: $white; + text-shadow: 0 0 4px #f195f9,0 0 10px #fff,0 0 20px #e440f2,0 -10px 40px #b626c4; + margin-bottom: 8px; + } + .tcap, .jpegz { + width: 30px; + margin-left: 10px; + } + } + .card-header { + padding: 0rem; + border: 0px; + } + .card-body { + padding: 1.25rem 0rem; + } + + .btn-update-vault { + background-color: transparent; + border: none; + span { + font-size: 1rem; + font-family: "Space Mono"; + text-decoration: underline; + } + } + + .no-vaults-box { + display: flex; + justify-content: center; + width: 100%; + padding-top: 2rem; + padding-bottom: 1rem; + + p { + font-size: 1.2rem; + } + + .btn-create-vault { + border: none; + padding-top: 0rem; + padding-bottom: 0.25rem; + color: $highlight; + } + } + + @media (max-width: 1360px) { + width: 105%; + } + + @media (max-width: 1300px) { + width: 110%; + .row { + display: flex; + margin-top: 1rem; + } + .card { + .items-view { + display: flex; + } + } + } + + @media (max-width: 1210px) { + width: 115%; + } + + @media (max-width: 1150px) { + width: 130%; + + .card { + .actions { + .items-view { + .dd-container { + flex-direction: column; + align-items: flex-start; + } + } + } + } + } + + @media (max-width: 1050px) { + width: 140%; + } + + @media (max-width: 1000px) { + width: 165%; + } + + @media (min-width: 851px) { + .accordion { + &-button:after { + display: none; + } + } + } + + @media (max-width: 850px) { + width: 100%; + .accordion.totals { + .totals-container { + display: grid; + grid-template-columns: 50% 50%; + gap: 1.5rem; + margin-top: 2rem; + } + .total-box { + max-width: 100%; + } + } + + .accordion.actions { + margin-top: 2rem; + .accordion-body { + margin: 3rem 0rem; + + .dd-container { + margin-bottom: 2rem; + + .titles { + margin-bottom: 0.5rem; + } + + .btn-create-vault { + display: none; + } + } + } + } + + .btn-create-vault { + background-color: $highlight; + margin-top: 3rem; + width: 100%; + height: 3rem; + } + } + + @media (max-width: 600px) { + margin-top: 1rem; + margin-left: 0rem; + padding: 1rem; + + .accordion.totals { + .totals-container { + display: flex; + flex-direction: column; + } + .total-box { + flex-direction: row; + justify-content: space-between; + margin: 0.7rem 0rem; + } + } + + .accordion.actions { + margin-top: 1rem; + .accordion-body { + margin: 1rem 0rem; + + .dd-container { + margin-bottom: 1.2rem; + .titles { + margin-bottom: 0.3rem; + } + } + } + } + } + + .btn-load-more { + width: 100%; + height: 3rem; + } + + .vaults-mobile { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + margin-bottom: 1rem; + .status { + font-size: 1.2rem; + } + + .card { + &-body { + width: 100%; + padding: 0.5rem 0.7rem; + } + &-footer { + width: 100%; + padding: 0.5rem 0.7rem; + } + } + + .btn-load-more { + width: 100%; + } + + .vault { + width: 100%; + background-color: $darker; + padding: 1rem 0.3rem; + margin: 1rem 0rem; + + &.hide { + display: none; + } + + h5 { + font-size: 1rem; + margin-bottom: 0rem; + } + + svg, + .tcap { + height: 30px; + margin-right: 10px; + } + + .jpegz { + height: 30px; + width: 30px; + margin-right: 10px; + } + + &-type { + display: flex; + justify-content: flex-end; + margin-top: -0.5rem; + margin-bottom: 1rem; + } + + &-assets { + display: flex; + flex-direction: row; + justify-content: space-between; + + .asset-box { + display: flex; + flex-direction: column; + width: 100%; + } + + .asset { + display: flex; + flex-direction: row; + align-items: center; + padding: 0.5rem; + margin-top: 0.5rem; + background-color: $darkest; + border-radius: 5px; + border: 1px solid $light; + + &.index { + margin-right: 0.8rem; + } + + &.collateral { + margin-left: 0.8rem; + } + } + } + + &-values { + display: flex; + flex-direction: row; + justify-content: space-between; + align-items: center; + margin: 1rem 0rem; + border: 0.5px solid $off-white; + border-radius: 5px; + + .title { + display: flex; + align-items: center; + background-color: $darkest; + border-top-left-radius: 5px; + border-bottom-left-radius: 5px; + padding-left: 0.6rem; + height: 3.5rem; + width: 40%; + } + + .values { + display: flex; + flex-direction: column; + padding: 0.5rem; + } + + .status { + font-size: 1rem; + span { + text-align: right; + } + } + + .number { + font-size: 0.85rem; + text-align: right; + } + + .neon-green { + margin-bottom: 0.5rem; + } + } + + &-actions { + display: grid; + grid-template-columns: 100%; + + &.two { + grid-template-columns: 50% 50%; + gap: 1rem; + padding-right: 2.5rem; + } + + .btn { + height: 2.7rem; + width: 100%; + } + } + + /* .ratio { + .values { + display: flex; + flex-direction: row; + align-items: center; + .empty { + font-size: 0.9rem; + } + .separator { + margin: 0px 8px; + } + } + } */ + } + + .no-vaults-box { + padding: 2rem; + border: 1px solid $neon-highlight; + border-radius: 5px; + margin-top: 1.8rem; + } + } +} \ No newline at end of file diff --git a/src/styles/vault.scss b/src/styles/vault.scss index f43062ee..56cf6c30 100644 --- a/src/styles/vault.scss +++ b/src/styles/vault.scss @@ -1,512 +1,748 @@ @import "./colors"; @import "./fonts"; + + .vault { + display: flex; + flex-direction: column; + align-items: center; + width: 100%; padding-bottom: 0px; - margin-bottom: 3rem; - - // Small devices (landscape phones, 576px and up) - @media (min-width: 576px) { - padding: 1rem 3rem; + margin-left: -1.5rem; + + .alert-warning { + flex-direction: row; + margin-top: 0rem; + margin-bottom: 0rem; + padding: 0.2rem 1rem; + height: 2rem; + width: 70%; + + span { + color: $highlight; + margin: 0px 10px; + } + span:hover { + cursor: pointer; + } + .question-small { + margin-top: -3px; + } } - // Large devices (desktops, 992px and up) - @media (min-width: 992px) { - padding: 1rem 1.5rem; + .alert-inside { + margin-top: -2rem; + margin-bottom: 2rem; } - // Large devices (small laptos) - @media (min-width: 1300px) { - padding: 1rem 3rem; + .btn-dark { + background-color: $dark; } - .loading-container { - padding-top: 12.5%; + .btn:active { + background-color: transparent; } - .icon-container { - margin-top: 1.5rem; - - svg { - margin-top: 7px; - vertical-align: top; - width: 0.9rem; + .vault-container { + display: flex; + flex-direction: column; + margin-top: 3rem; + width: 38%; + background-color: $darker; + } - &.btc { - margin-top: 10px; - width: 1.5rem; - } - &.dai { - margin-top: 12px; - width: 1.3rem; + .vault { + &-header { + display: flex; + flex-direction: row; + align-items: center; + justify-content: space-between; + padding: 2rem 2rem 1.5rem 2rem; + background-color: $darker; + border-bottom: 0.5px solid $dark; + .header-col1 { + display: flex; + align-items: center; } - &.aave { - margin-top: 10px; - width: 1.5rem; + .go-back { + // background-color: transparent; + border: none; + padding-top: 0px; + padding-bottom: 0px; + margin-top: -2rem; + margin-right: -1.2rem; } - &.link { - margin-top: 3px; - width: 1.5rem; + svg { + color: white; + transform: rotate(45deg); } } - .select-container { - display: inline-block; - margin-left: 1rem; + &-select { + display: flex; + justify-content: space-between; + margin-bottom: 2rem; + } + + &-controls { + background-color: $darker; + margin-bottom: 1rem; + padding: 0rem; + + label { + font-family: "Nineteen Ninety Seven"; + color: $white; + } - p { - margin-left: -2rem; + .form-group { + .burn-fee2 { + display: none; + } } + + .input-group { + position: relative; + background-color: #281e31; + border: 1px solid $dark; + border-radius: 5px; + + .text-muted { + position: absolute; + text-align: left; + font-size: .9rem; + padding-left: 1rem; + z-index: 1; + height: 100%; + display: flex; + align-items: flex-end; + padding-bottom: 0.58rem; + } + + input[type="number"] { + font-size: 1.3rem; + padding-bottom: 1.8rem; + border-top-left-radius: 5px; + border-bottom-left-radius: 5px; + border-color: transparent; + color: $white; + height: 4.1rem; + z-index: 2; + } + + .btn { + background-color: $darker; + width: 7.5rem; + height: 4.1rem; + border-top-right-radius: 5px; + border-bottom-right-radius: 5px; + } + } + + .burn-fee.text-muted { + position: relative; + text-align: right; + font-size: 1rem; + margin-top: .5rem; + margin-right: .2rem; + margin-bottom: 0; + padding-bottom: 0; + font-size: .8rem; + color: #f5f5f5 !important; + } + } + + &-actios-container { + display: flex; + flex-direction: column; + margin-top: 1rem; + padding: 2rem; + background-color: $darker; } } - select { - font-size: 1.2rem; - font-family: "Nineteen Ninety Seven"; - background: none; - border: none; - color: $white; - -webkit-appearance: none; - appearance: none; - width: 7.8rem; - background: url("../assets/images/select-arrow.svg") 96% / 15% no-repeat; - outline: none; - - &::-ms-expand { - display: none; + .dd-collateral { + display: flex; + flex-direction: column; + border-radius: 10px; + margin-bottom: 1rem; + width: 95%; + + h6 { + color: $white; + margin: 0px; + font-size: 0.9rem; } - &:focus { - outline: none; + .balance-container { + display: flex; + align-items: center; + margin: 0rem 1rem; + color: $light; + + .number { + margin-bottom: 0rem; + color: $light; + } } - &.form-control:focus { - color: $white; - background: url("../assets/images/select-arrow.svg") 96% / 15% no-repeat; - outline: 0; - box-shadow: 0 0 0 0 rgba(164, 64, 242, 0); + .dropdown { + margin-top: 0.5rem; + + .btn { + margin-top: 0rem; + } + + .dropdown-toggle { + svg { + height: 23px; + margin-right: 5px; + } + .tcap, .jpegz { + width: 30px; + margin-right: 7px; + } + } + + .dropdown-toggle:active { + background-color: $darkest; + } + + .dropdown-menu { + width: 85%; + margin-top: 3px !important; + margin-right: 1rem; + } + + .dropdown-item { + display: flex; + align-items: center; + padding: 0.3rem 1.2rem; + svg { + margin-right: 10px; + width: 25px; + } + .eth { + width: 15px; + margin-left: 5px; + margin-right: 15px; + } + .dai, .usdc, .wbtc { + width: 25px; + } + .jpegz { + width: 30px; + margin-right: 10px; + } + } } + } + + .vault-actions { + background-color: $darker; - &.form-control { - padding: 0; + .btn-max { + display: flex; + padding: 0.4rem 0.8rem; + border: 1px solid $bright-green; + border-radius: 5px; + background-color: $darkest; + font-size: 0.9rem; + color: $bright-green; + + &.orange { + border: 1px solid $orange; + color: $orange; + } } - option { - background-color: $primary; - border: none; - color: $white; + .actions-options { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 0.6rem; + + .options-container { + display: flex; + flex-direction: column; + + .options-buttons { + display: flex; + flex-direction: row; + margin-top: 0.3rem; + } + } + + .burn-fee { + display: flex; + align-self: end; + margin-right: 0.4rem; + + span { + color: $off-white; + font-size: 0.85rem; + } + + .number { + color: $white; + padding: 0rem 0.3rem; + } + } + .burn-fee:hover { + cursor: pointer; + } + } + + .dropdown { + height: 100%; + width: 160px; + margin-right: 0.5rem; + + .dropdown-toggle { + padding-right: 1rem; + border-radius: 5px; + width: 100%; + height: 100%; + + span { + font-family: "space mono"; + font-size: 1rem; + } + } } } - .action-title { - margin-top: 1rem; - margin-bottom: 2.25rem; + .actions-goback { + background-color: transparent; + border: 0px; + padding: 0rem; + padding-left: 0.2rem; } - .pre-actions { - p { - width: 30rem; + .loading-container { + padding-top: 12.5%; + } + + .icon-container { + display: flex; + flex-direction: row; + // width: 30%; + + .btn-group { + width: fit-content; + border: 1px solid #dfd1ea; + border-radius: 5px; + margin-bottom: 0rem !important; + margin-right: 0.5rem; + + input[type="radio"] { + display: none; + } + + .btn-secondary { + margin-bottom: 0rem; + font-size: 0.8rem; + background-color: #281e31; + } + + .btn-secondary.active { + background-color: $neon-highlight; + } + + .radio-1 { + border-top-left-radius: 0px; + border-bottom-left-radius: 0px; + } + } + + .btn-dark { + margin-top: 0.3rem; } + } + .create-vault { .btn { width: 13.4375rem; height: 3.875rem; border-radius: 1px; - margin-top: 2rem; + margin-top: 1rem; } } - .actions-container { - margin-top: 1rem; - column-gap: 2rem; + .btn-group { + margin: 0.35rem; + background-color: #1d1d3c82; + border: 1px solid #dfd1ea; + border-radius: 5px; + padding-left: 1px; - p { - width: 100%; + .btn-check { + display: none; } - .card { - padding: 2rem; + .btn-secondary { + margin-bottom: 0rem; + background-color: #281e31; + border-top-left-radius: 5px; + border-bottom-left-radius: 5px; } - .info { - display: flex; - align-items: top; + .btn-check:checked+.btn { + background-color: $neon-highlight; + } + } - div { - width: 100%; + .vault-assets { + display: flex; + flex-direction: column; + width: 100%; + background-color: transparent; + + svg.tcap, svg.jpegz { + width: 23px; + height: 23px; + } + + svg.small { + vertical-align: top; + width: 0.6rem; + filter: brightness(1118%) drop-shadow(0px 0px 5px $highlight); + + @supports (-webkit-touch-callout: none) { + height: intrinsic; } - p { - text-align: right; + &.btc.small { + margin-top: 0px; + width: 1.5rem; } - .amount { - display: flex; - flex-direction: row; - justify-content: flex-end; + &.dai.small { + margin-top: 0px; + width: 1rem; + filter: drop-shadow(0px 0px 5px $highlight); } - } - .form-card { - .card { - min-height: 26rem; - padding: 0; + &.aave.small { + margin-top: 2px; + width: 1.5rem; + filter: drop-shadow(0px 0px 5px $highlight); + } - .info { - border-bottom: 1px solid $dark; - padding: 2rem; + &.link.small { + margin-top: 7px; + width: 1.4rem; + filter: drop-shadow(0px 0px 5px $highlight); + } - p, - h4 { - padding-bottom: 0; - margin-bottom: 0; - } + &.uni.small { + margin-top: -5px; + width: 1.5rem; + filter: drop-shadow(0px 0px 5px $highlight); + } - .amount { - display: flex; - justify-content: flex-end; - } - } + &.snx.small { + margin-top: -3px; + width: 1.3rem; + filter: drop-shadow(0px 0px 5px $highlight); + } - svg { - //margin-top: -5px; - vertical-align: top; - width: 0.8rem; - filter: brightness(1118%) drop-shadow(0px 0px 5px rgba(6, 52, 255, 0.53)); - @supports (-webkit-touch-callout: none) { - height: intrinsic; - } + &.usdc.small { + margin-top: -5px; + width: 1.3rem; + } + } - &.tcap-neon { - margin-top: 0px; - filter: none; - width: 2rem; - } - &.btc { - margin-top: 0px; - width: 1.8rem; - } - &.dai { - margin-top: 0px; - width: 1.5rem; - filter: none; - margin-right: 2px; - filter: drop-shadow(0px 0px 5px $dark-blue); - } + h5 { + font-size: 1rem; + } - &.polygon { - margin-top: 0px; - width: 1.5rem; - } - &.aave { - width: 1.5rem; - margin-top: 2px; - } - &.link { - width: 1.6rem; - margin-top: -3px; - } - } + .assets-box-options { + display: flex; + flex-direction: row; + justify-content: space-between; + padding: 0rem 1rem; + } + + .asset-box { + width: 100%; + &.right { + align-items: flex-end; } + } - form { - padding: 2rem 2rem 0rem 2rem; + .vault-form { + margin-top: 3.5rem; + padding: 0rem 1rem; + } - label { - font-family: "Nineteen Ninety Seven"; - color: $white; + .assets-balance { + display: flex; + flex-direction: row; + justify-content: space-between; + padding: 1rem 0.5rem; + border: 0.6px solid $light; + border-radius: 5px; + margin: 1.3rem 0rem; - &.max { - float: right; - @media (min-width: 992px) and (max-width: 1300px) { - font-size: 0.9rem; - } - a { - color: $green; + .balance { + display: flex; + flex-direction: column; - &.orange { - color: $orange; - } - } - } + &.collateral { + align-items: flex-end; } + } - .text-muted { - text-align: right; - font-size: 1rem; - margin-top: -2.375rem; - margin-right: 4.375rem; - } + .number { + font-size: 0.9rem; + margin-bottom: 0rem; + margin-left: 0rem; - .burn-fee.text-muted { - text-align: right; - font-size: 1rem; - margin-top: 1rem; - margin-right: 0; - margin-bottom: 0; - padding-bottom: 0; + &-usd { font-size: 0.8rem; - color: $off-white !important; - } - - input[type="text"] { - border-radius: 1px; - background: no-repeat; - border-color: $dark; - color: $white; - height: 3.375rem; - } - - .btn { - background-color: $darker; - width: 3.375rem; - border-radius: 1px; } + } - .remove { - margin-top: 3.5rem; - } + .amount { + display: flex; + margin-bottom: 0.4rem; } } - - .balance { + + .asset-box-container { display: flex; - flex-direction: column; + flex-direction: row; justify-content: space-between; + padding-bottom: 2rem; + // border-bottom: 0.5px solid #a540f254; + } - .card { - min-height: 12rem; - } - - .eth { - filter: drop-shadow(0px 0px 15px rgba(111, 19, 202, 1)); - } - - .ratio { - width: 1.9375rem; - filter: drop-shadow(0px 0px 15px rgba(15, 217, 255, 0.53)); + &-box { + display: flex; + flex-direction: column; + background-color: $darker; + padding: 2rem 1.5rem; + margin-bottom: 1rem; + + h6 { + color: $white; + margin: 0px; + font-size: 0.9rem; } - .info-data { + .asset-box { display: flex; flex-direction: column; + background-color: $darker; + // border: 0.7px solid $light; + border-radius: 10px; } - .info { - margin-top: 1rem; - - .btn { - margin-top: 0.7rem; - height: 40px; + .asset-box-balance { + display: flex; + justify-content: space-between; + align-items: center; + width: 94%; + border: 0.5px solid $dark; + border-radius: 5px; + margin-bottom: 0.7rem; + + &-title { + padding: 0.5rem; + width: 50%; + color: $lighter; + font-size: 0.8rem; + margin-right: 0.5rem; } - p, - h4 { - padding-bottom: 0; - margin-bottom: 0; - } - .amount h4 { - margin-bottom: 0.5rem; - } - } + .token-value { + display: flex; + flex-direction: row; + align-items: center; + margin-bottom: 0.2rem; + svg, .jpegz { + width: 17px; + height: 17px; + margin-right: 5px; + } - svg.small { - @supports not (-webkit-touch-callout: none) { - margin-top: -5px; - } - vertical-align: top; - width: 0.8rem; - filter: brightness(1118%) drop-shadow(0px 0px 5px $highlight); - @supports (-webkit-touch-callout: none) { - height: intrinsic; } - &.btc.small { - margin-top: -5px; - width: 1.8rem; + &-value { + display: flex; + flex-direction: column; + align-items: flex-end; + justify-content: space-around; + padding: 0.2rem 0.5rem; + width: 50%; + font-size: 0.75rem; + color: $white; + text-shadow: 0px 4px 13px rgba(225, 33, 254, 0.661); } - &.dai.small { - margin-top: -5px; - width: 1.5rem; - filter: drop-shadow(0px 0px 5px $highlight); + .usd-balance { + font-size: 0.6rem; } - &.aave.small { - margin-top: 2px; - width: 1.7rem; - filter: drop-shadow(0px 0px 5px $highlight); - } - &.link.small { - margin-top: -3px; - width: 1.7rem; - filter: drop-shadow(0px 0px 5px $highlight); + + &-value:hover { + cursor: pointer; } } } - .tcap { - .card { - min-height: 26rem; - } - } - .token-icon-container { + .vault-ratio { display: flex; + align-items: center; flex-direction: row; - flex-wrap: wrap; - justify-content: flex-end; - min-height: 0rem; - min-width: 0rem; + justify-content: space-between; + margin-top: 0.2rem; + border: 0.7px solid $white; + border-radius: 5px; + + h6 { + font-size: 1rem; + color: $white; + align-self: center; + margin-bottom: 0rem; + } + .title { + display: flex; + padding: 0.5rem 0.8rem; + width: 40%; + background-color: $darkest; + } + .values { + display: flex; + align-items: center; + justify-content: flex-end; + padding: 0.5rem 0.8rem; + width: 60%; + .number { + font-size: 0.95rem; + margin-bottom: 0rem; + } + .separator { + margin: 0rem 0.5rem; + } + .ratio-status { + font-size: 0.95rem; + } + } } } - // Small devices (landscape phones, 576px and up) - @media (min-width: 576px) { - .actions-container { - display: grid; - grid-template-columns: auto; - margin-bottom: 2rem; - } - - .balance { - grid-row-gap: 0rem; - row-gap: 0rem; + @media (max-width: 1500px) { + .vault-container { + width: 43%; } + } - .card { - margin-bottom: 2rem; + @media (max-width: 1400px) { + .vault-container { + width: 51%; } } - // Large devices (desktops, 992px and up) - @media (min-width: 992px) { - .actions-container { - display: grid; - grid-template-columns: auto 33% 33%; - margin-bottom: 0rem; - } - .balance { - row-gap: 2rem; + @media (max-width: 1200px) { + .vault-container { + width: 55%; } + } - .card { - margin-bottom: 0rem; + @media (max-width: 1000px) { + .vault-container { + width: 80%; } } - @media (min-width: 992px) and (max-width: 1200px) { - .actions-container { - column-gap: 1rem; - .balance { - .card { - padding: 2rem 1.2rem; - } - h4 { - font-size: 1.35rem; - } - p { - font-size: 0.9rem; - } + @media (max-width: 700px) { + margin-left: 1rem; + .vault { + &-container { + width: 95%; + margin-bottom: 6rem; } - .form-card { - form { - padding: 2rem 1.2rem 0rem 1.2rem; - label { - font-size: 0.87rem; - } + &-header { + padding: 2rem 1rem 1.5rem 0.5rem; + } + + &-actions { + .dropdown { + width: 170px; } - .card { - .info { - padding: 2rem 1rem; - } + .actions-options { + .burn-fee { + display: none; + } } } - @media (max-width: 1140px) { - .form-group { - span { - font-size: 0.9rem; + + &-assets { + &-box { + padding: 2rem 0.5rem; + + .assets-box-options { + display: flex; + flex-direction: column; } - } - .form-card { - h4 { - font-size: 1.32rem; + + .asset-box.right { + margin-top: 1.5rem; + align-items: flex-start; } } - .balance { - h4 { - font-size: 1.25rem; + .vault-ratio { + .title { + width: 30%; } - } - } - } - } - - @media (max-height: 820px) and (min-width: 992px) { - .icon-container { - margin-top: 1rem; - } - .actions-container { - margin-top: 0rem; - .card { - padding: 1rem 1rem; - } - .form-card { - .card { - min-height: 23rem; + .values { + width: 70%; - .info { - padding-top: 1.3rem; - padding-bottom: 1.3rem; - } - } - form { - padding-top: 1.5rem; - .remove { - margin-top: 2.7rem; + .number { + font-size: 0.85rem; + } } } } - .balance { - row-gap: 1rem; - .card { - min-height: 11.17rem; - } - } - } - } - - @media (max-width: 730px) { - padding-top: 4rem; - padding-left: 1rem; + + &-controls { + .form-group { + display: flex; + flex-direction: column; - .pre-actions { - p { - width: 20rem; - } - } + .burn-fee2 { + display: flex; + justify-content: flex-end; + margin-top: 0.5rem; + margin-right: 0.5rem; - @media (max-width: 575px) { - .actions-container { - .card { - padding: 2rem 1.5rem; - } - .form-card { - .card { - .info { - padding: 2rem 1rem; + span { + color: $off-white; + font-size: 0.85rem; + } + + .number { + color: $white; + padding: 0rem 0.3rem; } } - } - @media (max-width: 380px) { - .card { - padding: 2rem 0.9rem; + .burn-fee2:hover { + cursor: pointer; } } - } + .input-group { + .btn { + width: 6.2rem; + font-size: 0.9rem; + } + } + } + } + } - .card { - margin-bottom: 2rem; - } - } + @media (max-width: 600px) { + margin-left: 0rem; } } diff --git a/src/styles/welcome.scss b/src/styles/welcome.scss deleted file mode 100644 index e49b82d4..00000000 --- a/src/styles/welcome.scss +++ /dev/null @@ -1,221 +0,0 @@ -@import "./colors"; -@import "./fonts"; - -.welcome { - padding: 5rem 3rem; - padding-bottom: 2rem; - - // Small devices (landscape phones, 576px and up) - @media (min-width: 576px) { - .token-price { - margin-top: 2rem; - } - } - - // Large devices (desktops, 992px and up) - @media (min-width: 992px) { - .token-price { - margin-top: 0rem; - } - } - - h2 { - font-size: 1.75rem; - margin-bottom: 0.875rem; - - @media (max-width: 1275px) { - font-size: 1.6rem; - } - @media (max-width: 1180px) { - font-size: 1.3rem; - } - @media (max-width: 1100px) { - font-size: 1.3rem; - } - } - - .btn { - background-color: $darker; - width: 10rem; - height: 3rem; - margin-right: 30px; - - &.question { - border-radius: 2px; - width: 20px; - height: 20px; - margin-right: 0px; - font-size: 10px; - padding: 2px; - margin-left: 5px; - } - } - - #connect { - background-color: $pink; - width: 15rem; - height: 3rem; - border-radius: 0; - } - - .card-wrapper { - margin-top: 2.9375rem; - h2 { - font-size: 1.375rem; - margin-bottom: 1.5625rem; - } - - h3 { - font-size: 1.625rem; - @media (max-width: 450px) { - font-size: 1.45rem; - } - } - - p { - font-size: 0.875; - } - - // Small devices (landscape phones, 576px and up) - @media (min-width: 576px) { - .use-tcap { - margin-top: 2rem; - margin-bottom: 4rem; - } - } - - // Large devices (desktops, 992px and up) - @media (min-width: 992px) { - .use-tcap { - margin-top: 0rem; - margin-bottom: 0rem; - } - } - - .card { - padding: 3.125rem 2.8125rem; - min-height: 20.1875rem; - @media (max-width: 400px) { - padding: 3.125rem 2rem; - } - - .cls-1 { - fill: $darker; - } - b { - font-family: "Nineteen Ninety Seven"; - color: $purple; - } - p { - margin-bottom: 1.5rem; - } - .row { - margin-top: 0.5rem; - } - - &.balance { - .row { - margin-top: 2rem; - @media (min-width: 1100px) and (max-width: 1350px) { - margin-top: 1rem; - } - } - .col { - margin-top: 1rem; - } - .tcap-balance { - display: flex; - } - - svg { - height: 2rem; - margin-right: 0.5rem; - filter: drop-shadow(0px 4px 13px $dark-blue); - - &.tcap-neon { - filter: none; - } - } - - h3 { - display: flex; - align-items: center; - } - - p { - margin-top: 1rem; - } - - p.usd-balance { - margin-bottom: 0rem; - margin-top: 0.2rem; - } - p.title { - margin-left: 0.35rem; - } - } - - &.diamond { - background-image: url("../assets/images/welcome/diamond.svg"); - background-repeat: no-repeat; - background-position: right bottom; - - p { - width: 70%; - } - .btn { - width: 11.0625rem; - margin-bottom: 0.8rem; - - &.neon-green { - box-shadow: 0px 0px 39px -6px rgba(63, 217, 180, 0.4); - } - &.neon-blue { - box-shadow: 0px 0px 39px -6px rgba(15, 217, 255, 0.4); - } - } - } - } - } - - @media (max-height: 820px) and (min-width: 992px) { - padding-top: 1rem; - .card-wrapper { - margin-top: 1.5rem; - .card { - padding: 2rem 2.8125rem; - } - } - } - - @media (min-width: 992px) and (max-width: 1280px) { - .card-wrapper { - .card { - padding-left: 2rem; - padding-right: 2rem; - } - - @media (max-width: 1200px) { - h3 { - font-size: 1.5rem; - } - } - } - } - - @media (max-width: 600px) { - padding: 5rem 1.2rem; - - .card-wrapper { - .card { - margin-bottom: 1.2rem; - - &.diamond { - p { - width: 85%; - } - } - } - } - } -} diff --git a/src/utils/constants.tsx b/src/utils/constants.tsx index dded6b0f..303dff81 100644 --- a/src/utils/constants.tsx +++ b/src/utils/constants.tsx @@ -1,3 +1,5 @@ +import { BigNumber } from "ethers"; + export const NETWORKS = { mainnet: { chainId: 1, @@ -6,32 +8,66 @@ export const NETWORKS = { eth: "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", weth: "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", dai: "0x6b175474e89094c44da98b954eedeac495271d0f", + mushroomNft: "0x91877f3928379E972aC28Ea9076DED52C9738b7c", ethPool: "0xa87e2c5d5964955242989b954474ff2eb08dd2f5", - ethUniPool: "0x3436d87664964df8a1825f826f127dec13117b0b", + ethUniPool: "0x11456b3750E991383bB8943118ed79C1afdEE192", daiPool: "", ctxPool: "0x2a93167ed63a31f35ca4788e2eb9fbd9fa6089d0", lpUrl: "https://app.sushi.com", + alchemyUrl: "https://eth-mainnet.g.alchemy.com/v2/".concat( + process.env.REACT_APP_ALCHEMY_KEY || "" + ), infuraRpcUrl: "https://mainnet.infura.io/v3/".concat(process.env.REACT_APP_INFURA_ID || ""), infuraFortmaticRpcUrl: "https://mainnet.infura.io/v3/".concat( process.env.REACT_APP_FORTMATIC_INFURA_ID || "" ), }, - rinkeby: { - chainId: 4, - hexChainId: "0x4", - name: "rinkeby", - eth: "0x5D3E425A099c2863224d6D63b330Df0F22B299b9", - weth: "0x5D3E425A099c2863224d6D63b330Df0F22B299b9", - dai: "0x118a4238E4086FAE2621D0336C0E6cdC1257BE82", - ethPool: "0x7d7db1ba4bc85f7d4ea43bad63acece407364aff", - ethUniPool: "0x3436d87664964df8a1825f826f127dec13117b0b", - daiPool: "0xb9625c0ec3dd89b00d20d1e3ea03d5b4072f03b4", - ctxPool: "0x9c4438470b1593cf4efe0f85108e7416c3b582f8", - infuraRpcUrl: "https://rinkeby.infura.io/v3/".concat(process.env.REACT_APP_INFURA_ID || ""), - infuraFortmaticRpcUrl: "https://rinkeby.infura.io/v3/".concat( + goerli: { + chainId: 5, + hexChainId: "0x5", + name: "goerli", + dai: "0x6c913fa678C81c567A11EdF19E06bE758DBeFe2D", + eth: "0xFfb99f4A02712C909d8F7cC44e67C87Ea1E71E83", + weth: "0xAEb34d4C107BDa831C0B50d68eb13F2469FB21f5", + mushroomNft: "0x209c23db16298504354112fa4210d368e1d564da", + alchemyUrl: "https://eth-goerli.g.alchemy.com/v2/".concat( + process.env.REACT_APP_ALCHEMY_KEY_GOERLI || "" + ), + infuraRpcUrl: "https://goerli.infura.io/v3/".concat(process.env.REACT_APP_INFURA_ID || ""), + infuraFortmaticRpcUrl: "https://goerli.infura.io/v3/".concat( process.env.REACT_APP_FORTMATIC_INFURA_ID || "" ), }, + arbitrum: { + chainId: 42161, + hexChainId: "0xA4B1", + name: "Arbitrum One", + eth: "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + weth: "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + dai: "0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1", + }, + arbitrum_goerli: { + chainId: 421613, + hexChainId: "0x66EED", + name: "Arbitrum Goerli", + eth: "0xfe46F29B9fC3d83d09336dDe9195553aDb812A16", + weth: "0xfe46F29B9fC3d83d09336dDe9195553aDb812A16", + dai: "0x630c6B571ba97081215a10690364eF352AA98d20", + }, + optimism: { + chainId: 10, + hexChainId: "0xA", + name: "optimism", + eth: "0x4200000000000000000000000000000000000006", + weth: "0x4200000000000000000000000000000000000006", + dai: "0xda10009cbd5d07dd0cecc66161fc93d7c9000da1", + link: "0x350a791bfc2c21f9ed5d10980dad2e2638ffa7f6", + snx: "0x8700daec35af8ff88c16bdf0418774cb3d7599b4", + uni: "0x6fd9d7ad17242c41f7131d257212c54a0e816691", + infuraRpcUrl: "https://optimism-mainnet.infura.io/v3/".concat( + process.env.REACT_APP_INFURA_ID || "" + ), + }, okovan: { chainId: 69, hexChainId: "0x45", @@ -39,30 +75,64 @@ export const NETWORKS = { eth: "0x13fcDc22A2C9E558f21d17B688C38B2B5E2B4eF6", weth: "0x13fcDc22A2C9E558f21d17B688C38B2B5E2B4eF6", dai: "0xda10009cbd5d07dd0cecc66161fc93d7c9000da1", + infuraRpcUrl: "https://optimism-kovan.infura.io/v3/".concat( + process.env.REACT_APP_INFURA_ID || "" + ), }, polygon: { chainId: 137, hexChainId: "0x89", name: "matic", - eth: "0x7ceb23fd6bc0add59e62ac25578270cff1b9f619", - weth: "0x7ceb23fd6bc0add59e62ac25578270cff1b9f619", dai: "0x8f3cf7ad23cd3cadbd9735aff958023239c6a063", matic: "0x0d500b1d8e8ef31e21c99d1db9a6444d3adf1270", }, + mumbai: { + chainId: 80001, + hexChainId: "0x13881", + name: "matic", + dai: "0xb89c4c3ED0C6CA1C6a522CD2ddE9B197D4142Fe2", + matic: "0x9c3C9283D3e44854697Cd22D3Faa240Cfb032889", + }, }; export const API_ENDPOINT = "https://api.cryptex.finance"; export const GRAPHQL_ENDPOINT = { - mainnet: "https://api.thegraph.com/subgraphs/name/jdestephen/tcap-demo-2", - rinkeby: "https://api.thegraph.com/subgraphs/name/cryptexfinance/tcap-rinkeby-two", + mainnet: "https://subgraph.satsuma-prod.com/0b9d5e79fdb9/cryptex/tcap-graph/api", + goerli: "https://api.thegraph.com/subgraphs/name/jdestephen/cryptex-goerli-demo", + arbitrum: "https://subgraph.satsuma-prod.com/0b9d5e79fdb9/cryptex/cryptex-arbitrum/api", + arbitrum_goerli: "https://api.thegraph.com/subgraphs/name/jdestephen/arbitrum-goerli-demo", + optimism: "https://api.thegraph.com/subgraphs/name/cryptexfinance/cryptex-optimism", okovan: "https://api.thegraph.com/subgraphs/name/jdestephen/tcap-demo", polygon: "https://api.thegraph.com/subgraphs/name/cryptexfinance/tcap-polygon", + mumbai: "https://api.thegraph.com/subgraphs/name/cryptexfinance/tcap-polygon", +}; + +export const OS_API_URL = { + mainnet: "https://deep-index.moralis.io/api/v2", + goerli: "https://deep-index.moralis.io/api/v2", }; export const FEATURES = { - KEEPERS_API: false, - NEW_VAULTS: false, + KEEPERS_API: true, + NEW_VAULTS: true, OPTIMISM: false, POLYGON: false, }; + +export const TOKENS_SYMBOLS = { + AAVE: "AAVE", + DAI: "DAI", + ETH: "ETH", + JPEGz: "JPEGz", + LINK: "LINK", + MATIC: "MATIC", + SNX: "SNX", + TCAP: "TCAP", + UNI: "UNI", + USDC: "USDC", + WETH: "WETH", + WBTC: "WBTC", +}; + +export const BIG_NUMBER_ZERO = BigNumber.from("0"); diff --git a/src/utils/univ3.tsx b/src/utils/univ3.tsx new file mode 100644 index 00000000..c0313103 --- /dev/null +++ b/src/utils/univ3.tsx @@ -0,0 +1,77 @@ +import { ethers } from "ethers"; + +export const UNIV3 = { + NFPositionManagerAddress: "0xC36442b4a4522E871399CD717aBDD847Ab11FE88", + stakerAddress: "0xe34139463bA50bD61336E0c446Bd8C0867c6fE65", + mainnet: { + tcapPool: { + id: "0x11456b3750E991383bB8943118ed79C1afdEE192", + feeTier: 3000, + incentives: [ + { + rewardToken: "0x321C2fE4446C7c963dc41Dd58879AF648838f98D", + pool: "0x11456b3750E991383bB8943118ed79C1afdEE192", + startTime: 1677001966, + endTime: 1684691574, + refundee: "0xa70b638B70154EdfCbb8DbbBd04900F328F32c35", + }, + { + rewardToken: "0x321C2fE4446C7c963dc41Dd58879AF648838f98D", + pool: "0x11456b3750E991383bB8943118ed79C1afdEE192", + startTime: 1668805867, + endTime: 1676754667, + refundee: "0xa70b638B70154EdfCbb8DbbBd04900F328F32c35", + }, + { + rewardToken: "0x321C2fE4446C7c963dc41Dd58879AF648838f98D", + pool: "0x11456b3750E991383bB8943118ed79C1afdEE192", + startTime: 1660854590, + endTime: 1668630590, + refundee: "0xa70b638B70154EdfCbb8DbbBd04900F328F32c35", + }, + { + rewardToken: "0x321C2fE4446C7c963dc41Dd58879AF648838f98D", + pool: "0x11456b3750E991383bB8943118ed79C1afdEE192", + startTime: 1652823662, + endTime: 1660772462, + refundee: "0xa70b638B70154EdfCbb8DbbBd04900F328F32c35", + }, + ], + }, + }, + goerli: { + tcapPool: { + id: "0xfb7BDD5B703f57BC7807b9D731503050EdC8c722", + feeTier: 3000, + incentives: [ + { + rewardToken: "0xAa715DbD2ED909B7B7727dC864F3B78276D14A19", + pool: "0xfb7BDD5B703f57BC7807b9D731503050EdC8c722", + startTime: 1647347412, + endTime: 1662899412, + refundee: "0x570f581D23a2AB09FD1990279D9DB6f5DcE18F4A", + }, + ], + }, + }, +}; + +export const GRAPHQL_UNIV3_ENDPOINT = { + mainnet: "https://api.thegraph.com/subgraphs/name/jdestephen/cryptex-univ3", + goerli: "https://api.thegraph.com/subgraphs/name/cryptexfinance/tcap-rinkeby-two", +}; + +export const encodeIncentive = (dataMap: any): string => { + const INCENTIVE_KEY_ABI = + "tuple(address rewardToken, address pool, uint256 startTime, uint256 endTime, address refundee)"; + const abiCoder = new ethers.utils.AbiCoder(); + return abiCoder.encode([INCENTIVE_KEY_ABI], [dataMap]); +}; + +export const computeIncentiveId = (dataMap: any): string => { + const INCENTIVE_KEY_ABI = + "tuple(address rewardToken, address pool, uint256 startTime, uint256 endTime, address refundee)"; + const abiCoder = new ethers.utils.AbiCoder(); + const bytes = abiCoder.encode([INCENTIVE_KEY_ABI], [dataMap]); + return ethers.utils.keccak256(bytes); +}; diff --git a/src/utils/utils.tsx b/src/utils/utils.tsx index d286b44b..812071e4 100644 --- a/src/utils/utils.tsx +++ b/src/utils/utils.tsx @@ -1,9 +1,13 @@ import React from "react"; -import { ethers, utils } from "ethers"; +import { BigNumber, ethers, utils } from "ethers"; import { Fragment, JsonFragment } from "@ethersproject/abi"; import { toast } from "react-toastify"; -import toasty from "../assets/images/toasty.png"; -import { FEATURES, NETWORKS } from "./constants"; +import successImg from "../assets/images/noti-success.png"; +import errorImg from "../assets/images/noti-error.png"; +import { GRAPHQL_ENDPOINT, FEATURES, NETWORKS } from "./constants"; +import { IHardVaultsContext, IVaultsContext } from "../state"; + +export const capitalize = (str: string) => str.charAt(0).toUpperCase() + str.slice(1); export const makeShortAddress = (address: string) => { const shortAddress = `${address.substr(0, 6).toString()}...${address @@ -27,7 +31,10 @@ export const getENS = async (address: string) => { }; export const getAddressFromENS = async (ens: string) => { - const provider = ethers.getDefaultProvider(); + const provider = ethers.getDefaultProvider(NETWORKS.mainnet.name, { + infura: process.env.REACT_APP_INFURA_ID, + alchemy: process.env.REACT_APP_ALCHEMY_KEY, + }); const address = await provider.resolveName(ens); if (address) { return address; @@ -82,14 +89,17 @@ export const sendNotification = async ( ) => { const toastConstant = (
- toasty + {className === "error" ? ( + toasty + ) : ( + toasty + )}
{title}

{body}

); toast(toastConstant, { - // @ts-ignore - position: toast.POSITION.TOP_RIGHT, + position: "top-right", autoClose: duration, hideProgressBar: true, delay, @@ -105,8 +115,6 @@ export const errorNotification = async (body: string) => { sendNotification(title, body, 3000, () => {}, 0, "error"); }; -// const sleep = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms)); - export const notifyUser = async (tx: ethers.ContractTransaction, fn: any = () => {}) => { try { let notificationTitle = "⏰ Transaction Sent!"; @@ -116,11 +124,11 @@ export const notifyUser = async (tx: ethers.ContractTransaction, fn: any = () => toast.dismiss(); notificationTitle = "✔️ Transaction Confirmed!"; - notificationBody = "All set, please wait for another confirmation"; + notificationBody = "All set, transaction confirmed"; sendNotification(notificationTitle, notificationBody, 3000, fn, 1000, "success"); // In case the graph isn't updated on the first transaction, try to update on second transaction. - await tx.wait(2); - fn(); + // await tx.wait(2); + // fn(); } catch (error) { // catch error when vault screen changes in the middle of an update } @@ -141,14 +149,30 @@ export const getRatio = async ( return ratio; }; +export const getRatio2 = ( + collateral: string, + collateralPrice: string, + debt: string, + tcapPrice: string +) => { + const c = parseFloat(collateral); + const cp = parseFloat(collateralPrice); + const d = parseFloat(debt); + const tp = parseFloat(tcapPrice); + if (d === 0 || tp === 0) return 0; + const ratio = (c * cp * 100) / (d * tp); + return ratio; +}; + export const getSafeMint = async ( ratio: string, collateral: string, collateralPrice: string, tcapPrice: string, - debt: string + debt: string, + isHardMode: boolean ) => { - const r = parseFloat(ratio) + 50; + const r = parseFloat(ratio) + (isHardMode ? 20 : 50); const c = parseFloat(collateral); const cp = parseFloat(collateralPrice); const tp = parseFloat(tcapPrice); @@ -168,9 +192,10 @@ export const getSafeRemoveCollateral = async ( collateral: string, collateralPrice: string, tcapPrice: string, - debt: string + debt: string, + isHardMode: boolean ) => { - const r = parseFloat(ratio) + 50; + const r = parseFloat(ratio) + (isHardMode ? 20 : 50); const c = parseFloat(collateral); const cp = parseFloat(collateralPrice); const tp = parseFloat(tcapPrice); @@ -246,41 +271,194 @@ export function toFragment(abi: JsonFragment[]): Fragment[] { } export const isValidNetwork = (chainId: number) => { - const name = process.env.REACT_APP_NETWORK_NAME || "rinkeby"; + const name = process.env.REACT_APP_NETWORK_NAME || "goerli"; if (name.toLowerCase() === "mainnet") { return ( chainId === NETWORKS.mainnet.chainId || - (FEATURES.OPTIMISM && chainId === NETWORKS.okovan.chainId) || + chainId === NETWORKS.arbitrum.chainId || + (FEATURES.OPTIMISM && chainId === NETWORKS.optimism.chainId) || (FEATURES.POLYGON && chainId === NETWORKS.polygon.chainId) ); } return ( - chainId === NETWORKS.rinkeby.chainId || + chainId === NETWORKS.goerli.chainId || + chainId === NETWORKS.arbitrum_goerli.chainId || (FEATURES.OPTIMISM && chainId === NETWORKS.okovan.chainId) || - (FEATURES.POLYGON && chainId === NETWORKS.polygon.chainId) + (FEATURES.POLYGON && chainId === NETWORKS.mumbai.chainId) ); }; export const isInLayer1 = (chainId: number | undefined) => { if (!isUndefined(chainId)) { - return chainId === NETWORKS.mainnet.chainId || chainId === NETWORKS.rinkeby.chainId; + return chainId === NETWORKS.mainnet.chainId || chainId === NETWORKS.goerli.chainId; + } + return false; +}; + +export const isArbitrum = (chainId: number | undefined) => { + if (!isUndefined(chainId)) { + return chainId === NETWORKS.arbitrum.chainId || chainId === NETWORKS.arbitrum_goerli.chainId; + } + return false; +}; + +export const isOptimism = (chainId: number | undefined) => { + if (!isUndefined(chainId)) { + return chainId === NETWORKS.optimism.chainId || chainId === NETWORKS.okovan.chainId; + } + return false; +}; + +export const isPolygon = (chainId: number | undefined) => { + if (!isUndefined(chainId)) { + return chainId === NETWORKS.polygon.chainId || chainId === NETWORKS.mumbai.chainId; } return false; }; -export const getDefaultProvider = (chainId: number | undefined, name: string | undefined) => { +export const isGoerli = (chainId: number | undefined) => { + if (!isUndefined(chainId)) { + return chainId === NETWORKS.goerli.chainId; + } + return false; +}; + +export const getDefaultProvider = (chainId: number | undefined) => { let provider; - if (chainId === NETWORKS.okovan.chainId) { - provider = ethers.getDefaultProvider(process.env.REACT_APP_ALCHEMY_URL_OKOVAN); + if (chainId === NETWORKS.arbitrum.chainId) { + provider = new ethers.providers.InfuraProvider("arbitrum", { + infura: process.env.REACT_APP_INFURA_ID, + }); } else { - const alchemyKey = - chainId === NETWORKS.mainnet.chainId - ? process.env.REACT_APP_ALCHEMY_KEY - : process.env.REACT_APP_ALCHEMY_KEY_RINKEBY; - provider = ethers.getDefaultProvider(name, { + provider = new ethers.providers.InfuraProvider("mainnet", { infura: process.env.REACT_APP_INFURA_ID, - alchemy: alchemyKey, }); } return provider; }; + +export const getGraphqlEndPoint = (chainId: number) => { + let endPoint = GRAPHQL_ENDPOINT.mainnet; + switch (chainId) { + case NETWORKS.goerli.chainId: + endPoint = GRAPHQL_ENDPOINT.goerli; + break; + case NETWORKS.arbitrum.chainId: + endPoint = GRAPHQL_ENDPOINT.arbitrum; + break; + case NETWORKS.arbitrum_goerli.chainId: + endPoint = GRAPHQL_ENDPOINT.arbitrum_goerli; + break; + case NETWORKS.optimism.chainId: + endPoint = GRAPHQL_ENDPOINT.optimism; + break; + case NETWORKS.okovan.chainId: + endPoint = GRAPHQL_ENDPOINT.okovan; + break; + case NETWORKS.polygon.chainId: + endPoint = GRAPHQL_ENDPOINT.polygon; + break; + case NETWORKS.mumbai.chainId: + endPoint = GRAPHQL_ENDPOINT.mumbai; + break; + default: + endPoint = GRAPHQL_ENDPOINT.mainnet; + break; + } + + return endPoint; +}; + +export const validOracles = (chainId: number, oracles: any): boolean => { + let valid = !isUndefined(oracles.daiOracleRead); + + if (isInLayer1(chainId)) { + valid = + valid && + !isUndefined(oracles.tcapOracleRead) && + !isUndefined(oracles.wethOracleRead) && + !isUndefined(oracles.aaveOracleRead) && + !isUndefined(oracles.linkOracleRead) && + !isUndefined(oracles.usdcOracleRead) && + !isUndefined(oracles.wbtcOracleRead); + } + + if (isArbitrum(chainId)) { + valid = valid && !isUndefined(oracles.jpegzOracleRead) && !isUndefined(oracles.wethOracleRead); + } + + return valid; +}; + +export const validVaults = (chainId: number, vaults: IVaultsContext): boolean => { + let valid = !isUndefined(vaults.daiVaultRead); + + if (isInLayer1(chainId)) { + valid = + valid && + !isUndefined(vaults.wethVaultRead) && + !isUndefined(vaults.aaveVaultRead) && + !isUndefined(vaults.linkVaultRead) && + !isUndefined(vaults.wbtcVaultRead); + } + if (isOptimism(chainId)) { + valid = + valid && + !isUndefined(vaults.wethVaultRead) && + !isUndefined(vaults.linkVaultRead) && + !isUndefined(vaults.snxVaultRead) && + !isUndefined(vaults.uniVaultRead); + } + if (isPolygon(chainId)) { + valid = valid && !isUndefined(vaults.maticVaultRead) && !isUndefined(vaults.wbtcVaultRead); + } + if (isArbitrum(chainId)) { + valid = valid && !isUndefined(vaults.wethVaultRead); + } + return valid; +}; + +export const validHardVaults = (chainId: number, hardVaults: IHardVaultsContext): boolean => { + let valid = true; + if (isInLayer1(chainId)) { + valid = + valid && + !isUndefined(hardVaults.wethVaultRead) && + !isUndefined(hardVaults.daiVaultRead) && + !isUndefined(hardVaults.wbtcVaultRead) && + !isUndefined(hardVaults.usdcVaultRead); + } + return valid; +}; + +export const numberFormatStr = ( + value: string, + minDecimals: number | undefined, + maxDecimals: number | undefined +) => { + if (parseFloat(value) < 103849213185522) { + const numberFormat = new Intl.NumberFormat([], { + minimumFractionDigits: minDecimals, + maximumFractionDigits: maxDecimals, + }); + if (minDecimals) { + return numberFormat.format(parseFloat(parseFloat(value).toFixed(maxDecimals))); + } + return numberFormat.format(parseFloat(value)); + } + return Number.parseFloat(value).toExponential(minDecimals); +}; + +// token0 = TCAP, and token1 = WETH +export const calculateCumulativePrice = ( + tickCumulative0: BigNumber, + tickCumulative1: BigNumber, + timeElapsed: number +): number => { + const difference = tickCumulative1.sub(tickCumulative0); + const tickReading = difference.div(BigNumber.from(timeElapsed)); + // p(i) = 1.0001**i + const price = 1.0001 ** tickReading.toNumber(); + + return price; +}; diff --git a/src/utils/web3ModalConfig.tsx b/src/utils/web3ModalConfig.tsx new file mode 100644 index 00000000..d65037a8 --- /dev/null +++ b/src/utils/web3ModalConfig.tsx @@ -0,0 +1,36 @@ +import { defaultConfig } from '@web3modal/ethers5/react' + +const CoinbaseId = 'fd20dc426fb37566d803205b19bbc1d4096b248ac04548e3cfb6b3a38bd033aa'; +const TrustWalletId = '4622a2b2d6af1c9844944291e5e7351a6aa24cd7b23099efac1b2fd875da31a0'; +const RainbowKitId = '1ae92b26df02f0abca6304df07debccd18262fdf5fe82daa81593582dac9a369'; +const OkxWalletId = '971e689d0a5be527bac79629b4ee9b925e82208e5168b733496a09c0faed0709'; + +export const mainnet = { + chainId: 1, + name: 'Ethereum', + currency: 'ETH', + explorerUrl: 'https://etherscan.io', + rpcUrl: 'https://cloudflare-eth.com' +} + +export const arbitrum = { + chainId: 42161, + name: 'Arbitrum One', + currency: 'ETH', + explorerUrl: 'https://arbiscan.io/', + rpcUrl: 'https://arb1.arbitrum.io/' +} + +export const walletIds = [CoinbaseId, TrustWalletId, RainbowKitId, OkxWalletId] + +const metadata = { + name: 'Cryptex Finance V1', + description: 'Building innovative, open-source index tokens that empower the crypto and NFT community.', + url: 'https://cryptex.finance/', // origin must match your domain & subdomain + icons: ['https://avatars.mywebsite.com/'] +} + +export const web3ModalEthersConfig = defaultConfig({ + metadata, + defaultChainId: 1, // used for the Coinbase SDK +}) diff --git a/tsconfig.json b/tsconfig.json index 7b1d3c6f..9bf382d0 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,6 +1,6 @@ { "compilerOptions": { - "target": "es5", + "target": "ES2020", "lib": [ "dom", "dom.iterable", diff --git a/yarn.lock b/yarn.lock index 1f72161a..cf0944b3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,49 +2,65 @@ # yarn lockfile v1 -"@apollo/client@^3.2.5": - version "3.5.7" - resolved "https://registry.yarnpkg.com/@apollo/client/-/client-3.5.7.tgz#38051c0a414ebf784319fa5131faa19df24fa9ec" - integrity sha512-HSLqTGp3sp/PVIWYLLr5v3fjQSr6Fxg6Z5RQj5Q9ALyseIVudD8GZk1jHplaUblTFMBueXGw3Z6DXObuVAr3tw== - dependencies: - "@graphql-typed-document-node/core" "^3.0.0" - "@wry/context" "^0.6.0" - "@wry/equality" "^0.5.0" - "@wry/trie" "^0.3.0" - graphql-tag "^2.12.3" - hoist-non-react-statics "^3.3.2" - optimism "^0.16.1" - prop-types "^15.7.2" - symbol-observable "^4.0.0" - ts-invariant "^0.9.4" - tslib "^2.3.0" - zen-observable-ts "^1.2.0" +"@adobe/css-tools@^4.0.1": + version "4.3.3" + resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.3.3.tgz#90749bde8b89cd41764224f5aac29cd4138f75ff" + integrity sha512-rE0Pygv0sEZ4vBWHlAgJLGDU7Pm8xoO6p3wsEceb7GYAjScrOHpEo8KK/eVkAcnSM+slAEtXjA2JpdjLp4fJQQ== -"@babel/code-frame@7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a" - integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg== +"@alloc/quick-lru@^5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@alloc/quick-lru/-/quick-lru-5.2.0.tgz#7bf68b20c0a350f936915fcae06f58e32007ce30" + integrity sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw== + +"@ampproject/remapping@^2.2.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.3.0.tgz#ed441b6fa600072520ce18b43d2c8cc8caecc7f4" + integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw== + dependencies: + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.24" + +"@apideck/better-ajv-errors@^0.3.1": + version "0.3.6" + resolved "https://registry.yarnpkg.com/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.6.tgz#957d4c28e886a64a8141f7522783be65733ff097" + integrity sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA== dependencies: - "@babel/highlight" "^7.10.4" + json-schema "^0.4.0" + jsonpointer "^5.0.0" + leven "^3.1.0" -"@babel/code-frame@7.12.11": - version "7.12.11" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" - integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== +"@apollo/client@^3.7.1": + version "3.10.3" + resolved "https://registry.yarnpkg.com/@apollo/client/-/client-3.10.3.tgz#07b90daea8a2cc83b1aca992caed55e5e9572c9d" + integrity sha512-4EIgZnFmRO1laWv3NCxlVIxcvimG63djuAXvyXhpQH3wkNMv9SykrasKRN08+z+cn/fVisBOLmkSRdyNyP9f4A== dependencies: - "@babel/highlight" "^7.10.4" + "@graphql-typed-document-node/core" "^3.1.1" + "@wry/caches" "^1.0.0" + "@wry/equality" "^0.5.6" + "@wry/trie" "^0.5.0" + graphql-tag "^2.12.6" + hoist-non-react-statics "^3.3.2" + optimism "^0.18.0" + prop-types "^15.7.2" + rehackt "^0.1.0" + response-iterator "^0.2.6" + symbol-observable "^4.0.0" + ts-invariant "^0.10.3" + tslib "^2.3.0" + zen-observable-ts "^1.2.5" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.16.7", "@babel/code-frame@^7.5.5": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.7.tgz#44416b6bd7624b998f5b1af5d470856c40138789" - integrity sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg== +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.0", "@babel/code-frame@^7.23.5", "@babel/code-frame@^7.24.2", "@babel/code-frame@^7.8.3": + version "7.24.2" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.24.2.tgz#718b4b19841809a58b29b68cde80bc5e1aa6d9ae" + integrity sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ== dependencies: - "@babel/highlight" "^7.16.7" + "@babel/highlight" "^7.24.2" + picocolors "^1.0.0" -"@babel/compat-data@^7.12.1", "@babel/compat-data@^7.13.11", "@babel/compat-data@^7.16.4", "@babel/compat-data@^7.16.8": - version "7.16.8" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.16.8.tgz#31560f9f29fdf1868de8cb55049538a1b9732a60" - integrity sha512-m7OkX0IdKLKPpBlJtF561YJal5y/jyI5fNfWbPxh2D/nbzzGI4qRyrD8xO2jB24u7l+5I2a43scCG2IrfjC50Q== +"@babel/compat-data@^7.12.1", "@babel/compat-data@^7.20.5", "@babel/compat-data@^7.22.6", "@babel/compat-data@^7.23.5", "@babel/compat-data@^7.24.4": + version "7.24.4" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.24.4.tgz#6f102372e9094f25d908ca0d34fc74c74606059a" + integrity sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ== "@babel/core@7.12.3": version "7.12.3" @@ -68,409 +84,405 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/core@^7.1.0", "@babel/core@^7.12.3", "@babel/core@^7.16.0", "@babel/core@^7.7.5", "@babel/core@^7.8.4", "@babel/core@^7.9.0": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.16.7.tgz#db990f931f6d40cb9b87a0dc7d2adc749f1dcbcf" - integrity sha512-aeLaqcqThRNZYmbMqtulsetOQZ/5gbR/dWruUCJcpas4Qoyy+QeagfDsPdMrqwsPRDNxJvBlRiZxxX7THO7qtA== - dependencies: - "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.16.7" - "@babel/helper-compilation-targets" "^7.16.7" - "@babel/helper-module-transforms" "^7.16.7" - "@babel/helpers" "^7.16.7" - "@babel/parser" "^7.16.7" - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.16.7" - "@babel/types" "^7.16.7" - convert-source-map "^1.7.0" +"@babel/core@^7.1.0", "@babel/core@^7.11.1", "@babel/core@^7.12.3", "@babel/core@^7.16.0", "@babel/core@^7.7.2", "@babel/core@^7.8.0": + version "7.24.5" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.24.5.tgz#15ab5b98e101972d171aeef92ac70d8d6718f06a" + integrity sha512-tVQRucExLQ02Boi4vdPp49svNGcfL2GhdTCT9aldhXgCJVAI21EtRfBettiuLUwce/7r6bFdgs6JFkcdTiFttA== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.24.2" + "@babel/generator" "^7.24.5" + "@babel/helper-compilation-targets" "^7.23.6" + "@babel/helper-module-transforms" "^7.24.5" + "@babel/helpers" "^7.24.5" + "@babel/parser" "^7.24.5" + "@babel/template" "^7.24.0" + "@babel/traverse" "^7.24.5" + "@babel/types" "^7.24.5" + convert-source-map "^2.0.0" debug "^4.1.0" gensync "^1.0.0-beta.2" - json5 "^2.1.2" - semver "^6.3.0" - source-map "^0.5.0" - -"@babel/generator@^7.12.1", "@babel/generator@^7.16.7", "@babel/generator@^7.16.8": - version "7.16.8" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.16.8.tgz#359d44d966b8cd059d543250ce79596f792f2ebe" - integrity sha512-1ojZwE9+lOXzcWdWmO6TbUzDfqLD39CmEhN8+2cX9XkDo5yW1OpgfejfliysR2AWLpMamTiOiAp/mtroaymhpw== - dependencies: - "@babel/types" "^7.16.8" + json5 "^2.2.3" + semver "^6.3.1" + +"@babel/eslint-parser@^7.16.3": + version "7.24.5" + resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.24.5.tgz#3b0f7d383a540329a30a6a9937cfc89461d26217" + integrity sha512-gsUcqS/fPlgAw1kOtpss7uhY6E9SFFANQ6EFX5GTvzUwaV0+sGaZWk6xq22MOdeT9wfxyokW3ceCUvOiRtZciQ== + dependencies: + "@nicolo-ribaudo/eslint-scope-5-internals" "5.1.1-v1" + eslint-visitor-keys "^2.1.0" + semver "^6.3.1" + +"@babel/generator@^7.12.1", "@babel/generator@^7.24.5", "@babel/generator@^7.7.2": + version "7.24.5" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.24.5.tgz#e5afc068f932f05616b66713e28d0f04e99daeb3" + integrity sha512-x32i4hEXvr+iI0NEoEfDKzlemF8AmtOP8CcrRaEcpzysWuoEb1KknpcvMsHKPONoKZiDuItklgWhB18xEhr9PA== + dependencies: + "@babel/types" "^7.24.5" + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" jsesc "^2.5.1" - source-map "^0.5.0" - -"@babel/helper-annotate-as-pure@^7.16.0", "@babel/helper-annotate-as-pure@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz#bb2339a7534a9c128e3102024c60760a3a7f3862" - integrity sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-builder-binary-assignment-operator-visitor@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz#38d138561ea207f0f69eb1626a418e4f7e6a580b" - integrity sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA== - dependencies: - "@babel/helper-explode-assignable-expression" "^7.16.7" - "@babel/types" "^7.16.7" -"@babel/helper-compilation-targets@^7.12.1", "@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz#06e66c5f299601e6c7da350049315e83209d551b" - integrity sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA== +"@babel/helper-annotate-as-pure@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882" + integrity sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg== dependencies: - "@babel/compat-data" "^7.16.4" - "@babel/helper-validator-option" "^7.16.7" - browserslist "^4.17.5" - semver "^6.3.0" + "@babel/types" "^7.22.5" -"@babel/helper-create-class-features-plugin@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.16.7.tgz#9c5b34b53a01f2097daf10678d65135c1b9f84ba" - integrity sha512-kIFozAvVfK05DM4EVQYKK+zteWvY85BFdGBRQBytRyY3y+6PX0DkDOn/CZ3lEuczCfrCxEzwt0YtP/87YPTWSw== +"@babel/helper-builder-binary-assignment-operator-visitor@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz#5426b109cf3ad47b91120f8328d8ab1be8b0b956" + integrity sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw== dependencies: - "@babel/helper-annotate-as-pure" "^7.16.7" - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-function-name" "^7.16.7" - "@babel/helper-member-expression-to-functions" "^7.16.7" - "@babel/helper-optimise-call-expression" "^7.16.7" - "@babel/helper-replace-supers" "^7.16.7" - "@babel/helper-split-export-declaration" "^7.16.7" + "@babel/types" "^7.22.15" -"@babel/helper-create-regexp-features-plugin@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.16.7.tgz#0cb82b9bac358eb73bfbd73985a776bfa6b14d48" - integrity sha512-fk5A6ymfp+O5+p2yCkXAu5Kyj6v0xh0RBeNcAkYUMDvvAAoxvSKXn+Jb37t/yWFiQVDFK1ELpUTD8/aLhCPu+g== +"@babel/helper-compilation-targets@^7.12.1", "@babel/helper-compilation-targets@^7.20.7", "@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz#4d79069b16cbcf1461289eccfbbd81501ae39991" + integrity sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ== dependencies: - "@babel/helper-annotate-as-pure" "^7.16.7" - regexpu-core "^4.7.1" - -"@babel/helper-define-polyfill-provider@^0.3.0": - version "0.3.0" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.0.tgz#c5b10cf4b324ff840140bb07e05b8564af2ae971" - integrity sha512-7hfT8lUljl/tM3h+izTX/pO3W3frz2ok6Pk+gzys8iJqDfZrZy2pXjRTZAvG2YmfHun1X4q8/UZRLatMfqc5Tg== + "@babel/compat-data" "^7.23.5" + "@babel/helper-validator-option" "^7.23.5" + browserslist "^4.22.2" + lru-cache "^5.1.1" + semver "^6.3.1" + +"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.24.1", "@babel/helper-create-class-features-plugin@^7.24.4", "@babel/helper-create-class-features-plugin@^7.24.5": + version "7.24.5" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.5.tgz#7d19da92c7e0cd8d11c09af2ce1b8e7512a6e723" + integrity sha512-uRc4Cv8UQWnE4NXlYTIIdM7wfFkOqlFztcC/gVXDKohKoVB3OyonfelUBaJzSwpBntZ2KYGF/9S7asCHsXwW6g== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-member-expression-to-functions" "^7.24.5" + "@babel/helper-optimise-call-expression" "^7.22.5" + "@babel/helper-replace-supers" "^7.24.1" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.24.5" + semver "^6.3.1" + +"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.22.15", "@babel/helper-create-regexp-features-plugin@^7.22.5": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz#5ee90093914ea09639b01c711db0d6775e558be1" + integrity sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + regexpu-core "^5.3.1" + semver "^6.3.1" + +"@babel/helper-define-polyfill-provider@^0.6.1", "@babel/helper-define-polyfill-provider@^0.6.2": + version "0.6.2" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz#18594f789c3594acb24cfdb4a7f7b7d2e8bd912d" + integrity sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ== dependencies: - "@babel/helper-compilation-targets" "^7.13.0" - "@babel/helper-module-imports" "^7.12.13" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/traverse" "^7.13.0" + "@babel/helper-compilation-targets" "^7.22.6" + "@babel/helper-plugin-utils" "^7.22.5" debug "^4.1.1" lodash.debounce "^4.0.8" resolve "^1.14.2" - semver "^6.1.2" - -"@babel/helper-environment-visitor@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz#ff484094a839bde9d89cd63cba017d7aae80ecd7" - integrity sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag== + +"@babel/helper-environment-visitor@^7.18.9", "@babel/helper-environment-visitor@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" + integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== + +"@babel/helper-function-name@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759" + integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw== dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-explode-assignable-expression@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz#12a6d8522fdd834f194e868af6354e8650242b7a" - integrity sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ== + "@babel/template" "^7.22.15" + "@babel/types" "^7.23.0" + +"@babel/helper-hoist-variables@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" + integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-function-name@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz#f1ec51551fb1c8956bc8dd95f38523b6cf375f8f" - integrity sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA== + "@babel/types" "^7.22.5" + +"@babel/helper-member-expression-to-functions@^7.23.0", "@babel/helper-member-expression-to-functions@^7.24.5": + version "7.24.5" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.5.tgz#5981e131d5c7003c7d1fa1ad49e86c9b097ec475" + integrity sha512-4owRteeihKWKamtqg4JmWSsEZU445xpFRXPEwp44HbgbxdWlUV1b4Agg4lkA806Lil5XM/e+FJyS0vj5T6vmcA== dependencies: - "@babel/helper-get-function-arity" "^7.16.7" - "@babel/template" "^7.16.7" - "@babel/types" "^7.16.7" + "@babel/types" "^7.24.5" + +"@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.12.1", "@babel/helper-module-imports@^7.22.15", "@babel/helper-module-imports@^7.24.1", "@babel/helper-module-imports@^7.24.3": + version "7.24.3" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz#6ac476e6d168c7c23ff3ba3cf4f7841d46ac8128" + integrity sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg== + dependencies: + "@babel/types" "^7.24.0" -"@babel/helper-get-function-arity@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz#ea08ac753117a669f1508ba06ebcc49156387419" - integrity sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw== +"@babel/helper-module-transforms@^7.12.1", "@babel/helper-module-transforms@^7.23.3", "@babel/helper-module-transforms@^7.24.5": + version "7.24.5" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.24.5.tgz#ea6c5e33f7b262a0ae762fd5986355c45f54a545" + integrity sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A== + dependencies: + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-module-imports" "^7.24.3" + "@babel/helper-simple-access" "^7.24.5" + "@babel/helper-split-export-declaration" "^7.24.5" + "@babel/helper-validator-identifier" "^7.24.5" + +"@babel/helper-optimise-call-expression@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz#f21531a9ccbff644fdd156b4077c16ff0c3f609e" + integrity sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.24.0", "@babel/helper-plugin-utils@^7.24.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.24.5" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.5.tgz#a924607dd254a65695e5bd209b98b902b3b2f11a" + integrity sha512-xjNLDopRzW2o6ba0gKbkZq5YWEBaK3PCyTOY1K2P/O07LGMhMqlMXPxwN4S5/RhWuCobT8z0jrlKGlYmeR1OhQ== + +"@babel/helper-remap-async-to-generator@^7.18.9", "@babel/helper-remap-async-to-generator@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz#7b68e1cb4fa964d2996fd063723fb48eca8498e0" + integrity sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-wrap-function" "^7.22.20" + +"@babel/helper-replace-supers@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.24.1.tgz#7085bd19d4a0b7ed8f405c1ed73ccb70f323abc1" + integrity sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ== + dependencies: + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-member-expression-to-functions" "^7.23.0" + "@babel/helper-optimise-call-expression" "^7.22.5" + +"@babel/helper-simple-access@^7.22.5", "@babel/helper-simple-access@^7.24.5": + version "7.24.5" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.24.5.tgz#50da5b72f58c16b07fbd992810be6049478e85ba" + integrity sha512-uH3Hmf5q5n7n8mz7arjUlDOCbttY/DW4DYhE6FUsjKJ/oYC1kQQUvwEQWxRwUpX9qQKRXeqLwWxrqilMrf32sQ== + dependencies: + "@babel/types" "^7.24.5" + +"@babel/helper-skip-transparent-expression-wrappers@^7.20.0", "@babel/helper-skip-transparent-expression-wrappers@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz#007f15240b5751c537c40e77abb4e89eeaaa8847" + integrity sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-split-export-declaration@^7.24.5": + version "7.24.5" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.5.tgz#b9a67f06a46b0b339323617c8c6213b9055a78b6" + integrity sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q== + dependencies: + "@babel/types" "^7.24.5" + +"@babel/helper-string-parser@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz#f99c36d3593db9540705d0739a1f10b5e20c696e" + integrity sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ== + +"@babel/helper-validator-identifier@^7.22.20", "@babel/helper-validator-identifier@^7.24.5": + version "7.24.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.5.tgz#918b1a7fa23056603506370089bd990d8720db62" + integrity sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA== + +"@babel/helper-validator-option@^7.12.1", "@babel/helper-validator-option@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz#907a3fbd4523426285365d1206c423c4c5520307" + integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw== + +"@babel/helper-wrap-function@^7.22.20": + version "7.24.5" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.24.5.tgz#335f934c0962e2c1ed1fb9d79e06a56115067c09" + integrity sha512-/xxzuNvgRl4/HLNKvnFwdhdgN3cpLxgLROeLDl83Yx0AJ1SGvq1ak0OszTOjDfiB8Vx03eJbeDWh9r+jCCWttw== + dependencies: + "@babel/helper-function-name" "^7.23.0" + "@babel/template" "^7.24.0" + "@babel/types" "^7.24.5" + +"@babel/helpers@^7.12.1", "@babel/helpers@^7.24.5": + version "7.24.5" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.24.5.tgz#fedeb87eeafa62b621160402181ad8585a22a40a" + integrity sha512-CiQmBMMpMQHwM5m01YnrM6imUG1ebgYJ+fAIW4FZe6m4qHTPaRHti+R8cggAwkdz4oXhtO4/K9JWlh+8hIfR2Q== dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-hoist-variables@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz#86bcb19a77a509c7b77d0e22323ef588fa58c246" - integrity sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-member-expression-to-functions@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.7.tgz#42b9ca4b2b200123c3b7e726b0ae5153924905b0" - integrity sha512-VtJ/65tYiU/6AbMTDwyoXGPKHgTsfRarivm+YbB5uAzKUyuPjgZSgAFeG87FCigc7KNHu2Pegh1XIT3lXjvz3Q== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.12.1", "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.16.0", "@babel/helper-module-imports@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz#25612a8091a999704461c8a222d0efec5d091437" - integrity sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-module-transforms@^7.12.1", "@babel/helper-module-transforms@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz#7665faeb721a01ca5327ddc6bba15a5cb34b6a41" - integrity sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng== - dependencies: - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-module-imports" "^7.16.7" - "@babel/helper-simple-access" "^7.16.7" - "@babel/helper-split-export-declaration" "^7.16.7" - "@babel/helper-validator-identifier" "^7.16.7" - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.16.7" - "@babel/types" "^7.16.7" - -"@babel/helper-optimise-call-expression@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz#a34e3560605abbd31a18546bd2aad3e6d9a174f2" - integrity sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz#aa3a8ab4c3cceff8e65eb9e73d87dc4ff320b2f5" - integrity sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA== - -"@babel/helper-remap-async-to-generator@^7.16.8": - version "7.16.8" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz#29ffaade68a367e2ed09c90901986918d25e57e3" - integrity sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.16.7" - "@babel/helper-wrap-function" "^7.16.8" - "@babel/types" "^7.16.8" - -"@babel/helper-replace-supers@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz#e9f5f5f32ac90429c1a4bdec0f231ef0c2838ab1" - integrity sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw== - dependencies: - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-member-expression-to-functions" "^7.16.7" - "@babel/helper-optimise-call-expression" "^7.16.7" - "@babel/traverse" "^7.16.7" - "@babel/types" "^7.16.7" - -"@babel/helper-simple-access@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz#d656654b9ea08dbb9659b69d61063ccd343ff0f7" - integrity sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-skip-transparent-expression-wrappers@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz#0ee3388070147c3ae051e487eca3ebb0e2e8bb09" - integrity sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw== - dependencies: - "@babel/types" "^7.16.0" - -"@babel/helper-split-export-declaration@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz#0b648c0c42da9d3920d85ad585f2778620b8726b" - integrity sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-validator-identifier@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz#e8c602438c4a8195751243da9031d1607d247cad" - integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw== - -"@babel/helper-validator-option@^7.12.1", "@babel/helper-validator-option@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz#b203ce62ce5fe153899b617c08957de860de4d23" - integrity sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ== - -"@babel/helper-wrap-function@^7.16.8": - version "7.16.8" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz#58afda087c4cd235de92f7ceedebca2c41274200" - integrity sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw== - dependencies: - "@babel/helper-function-name" "^7.16.7" - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.16.8" - "@babel/types" "^7.16.8" - -"@babel/helpers@^7.12.1", "@babel/helpers@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.16.7.tgz#7e3504d708d50344112767c3542fc5e357fffefc" - integrity sha512-9ZDoqtfY7AuEOt3cxchfii6C7GDyyMBffktR5B2jvWv8u2+efwvpnVKXMWzNehqy68tKgAfSwfdw/lWpthS2bw== - dependencies: - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.16.7" - "@babel/types" "^7.16.7" - -"@babel/highlight@^7.10.4", "@babel/highlight@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.7.tgz#81a01d7d675046f0d96f82450d9d9578bdfd6b0b" - integrity sha512-aKpPMfLvGO3Q97V0qhw/V2SWNWlwfJknuwAunU7wZLSfrM4xTBvg7E5opUVi1kJTBKihE38CPg4nBiqX83PWYw== - dependencies: - "@babel/helper-validator-identifier" "^7.16.7" - chalk "^2.0.0" + "@babel/template" "^7.24.0" + "@babel/traverse" "^7.24.5" + "@babel/types" "^7.24.5" + +"@babel/highlight@^7.24.2": + version "7.24.5" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.24.5.tgz#bc0613f98e1dd0720e99b2a9ee3760194a704b6e" + integrity sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw== + dependencies: + "@babel/helper-validator-identifier" "^7.24.5" + chalk "^2.4.2" js-tokens "^4.0.0" + picocolors "^1.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.12.3", "@babel/parser@^7.14.7", "@babel/parser@^7.16.7", "@babel/parser@^7.16.8", "@babel/parser@^7.7.0": - version "7.16.8" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.8.tgz#61c243a3875f7d0b0962b0543a33ece6ff2f1f17" - integrity sha512-i7jDUfrVBWc+7OKcBzEe5n7fbv3i2fWtxKzzCvOjnzSxMfWMigAhtfJ7qzZNGFNMsCCd67+uz553dYKWXPvCKw== +"@babel/parser@^7.1.0", "@babel/parser@^7.12.3", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.24.0", "@babel/parser@^7.24.4", "@babel/parser@^7.24.5": + version "7.24.5" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.5.tgz#4a4d5ab4315579e5398a82dcf636ca80c3392790" + integrity sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg== -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz#4eda6d6c2a0aa79c70fa7b6da67763dfe2141050" - integrity sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg== +"@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.24.5": + version "7.24.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.5.tgz#4c3685eb9cd790bcad2843900fe0250c91ccf895" + integrity sha512-LdXRi1wEMTrHVR4Zc9F8OewC3vdm5h4QB6L71zy6StmYeqGi1b3ttIO8UC+BfZKcH9jdr4aI249rBkm+3+YvHw== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-plugin-utils" "^7.24.5" -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz#cc001234dfc139ac45f6bcf801866198c8c72ff9" - integrity sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw== +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.1.tgz#b645d9ba8c2bc5b7af50f0fe949f9edbeb07c8cf" + integrity sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" - "@babel/plugin-proposal-optional-chaining" "^7.16.7" + "@babel/helper-plugin-utils" "^7.24.0" -"@babel/plugin-proposal-async-generator-functions@^7.12.1", "@babel/plugin-proposal-async-generator-functions@^7.16.8": - version "7.16.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz#3bdd1ebbe620804ea9416706cd67d60787504bc8" - integrity sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ== +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.1.tgz#da8261f2697f0f41b0855b91d3a20a1fbfd271d3" + integrity sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-remap-async-to-generator" "^7.16.8" - "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/plugin-transform-optional-chaining" "^7.24.1" -"@babel/plugin-proposal-class-properties@^7.12.1", "@babel/plugin-proposal-class-properties@^7.16.0", "@babel/plugin-proposal-class-properties@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz#925cad7b3b1a2fcea7e59ecc8eb5954f961f91b0" - integrity sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww== +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.1.tgz#1181d9685984c91d657b8ddf14f0487a6bab2988" + integrity sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw== dependencies: - "@babel/helper-create-class-features-plugin" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-plugin-utils" "^7.24.0" -"@babel/plugin-proposal-class-static-block@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.16.7.tgz#712357570b612106ef5426d13dc433ce0f200c2a" - integrity sha512-dgqJJrcZoG/4CkMopzhPJjGxsIe9A8RlkQLnL/Vhhx8AA9ZuaRwGSlscSh42hazc7WSrya/IK7mTeoF0DP9tEw== +"@babel/plugin-proposal-async-generator-functions@^7.12.1": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz#bfb7276d2d573cb67ba379984a2334e262ba5326" + integrity sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA== dependencies: - "@babel/helper-create-class-features-plugin" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/plugin-syntax-class-static-block" "^7.14.5" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-remap-async-to-generator" "^7.18.9" + "@babel/plugin-syntax-async-generators" "^7.8.4" + +"@babel/plugin-proposal-class-properties@^7.12.1", "@babel/plugin-proposal-class-properties@^7.16.0": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3" + integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-proposal-decorators@^7.16.4": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.16.7.tgz#922907d2e3e327f5b07d2246bcfc0bd438f360d2" - integrity sha512-DoEpnuXK14XV9btI1k8tzNGCutMclpj4yru8aXKoHlVmbO1s+2A+g2+h4JhcjrxkFJqzbymnLG6j/niOf3iFXQ== + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.24.1.tgz#bab2b9e174a2680f0a80f341f3ec70f809f8bb4b" + integrity sha512-zPEvzFijn+hRvJuX2Vu3KbEBN39LN3f7tW3MQO2LsIs57B26KU+kUc82BdAktS1VCM6libzh45eKGI65lg0cpA== dependencies: - "@babel/helper-create-class-features-plugin" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/plugin-syntax-decorators" "^7.16.7" + "@babel/helper-create-class-features-plugin" "^7.24.1" + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/plugin-syntax-decorators" "^7.24.1" -"@babel/plugin-proposal-dynamic-import@^7.12.1", "@babel/plugin-proposal-dynamic-import@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz#c19c897eaa46b27634a00fee9fb7d829158704b2" - integrity sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg== +"@babel/plugin-proposal-dynamic-import@^7.12.1": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz#72bcf8d408799f547d759298c3c27c7e7faa4d94" + integrity sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-dynamic-import" "^7.8.3" -"@babel/plugin-proposal-export-namespace-from@^7.12.1", "@babel/plugin-proposal-export-namespace-from@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz#09de09df18445a5786a305681423ae63507a6163" - integrity sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA== +"@babel/plugin-proposal-export-namespace-from@^7.12.1": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz#5f7313ab348cdb19d590145f9247540e94761203" + integrity sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" -"@babel/plugin-proposal-json-strings@^7.12.1", "@babel/plugin-proposal-json-strings@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz#9732cb1d17d9a2626a08c5be25186c195b6fa6e8" - integrity sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ== +"@babel/plugin-proposal-json-strings@^7.12.1": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz#7e8788c1811c393aff762817e7dbf1ebd0c05f0b" + integrity sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-json-strings" "^7.8.3" -"@babel/plugin-proposal-logical-assignment-operators@^7.12.1", "@babel/plugin-proposal-logical-assignment-operators@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz#be23c0ba74deec1922e639832904be0bea73cdea" - integrity sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg== +"@babel/plugin-proposal-logical-assignment-operators@^7.12.1": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz#dfbcaa8f7b4d37b51e8bfb46d94a5aea2bb89d83" + integrity sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.20.2" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" -"@babel/plugin-proposal-nullish-coalescing-operator@^7.12.1", "@babel/plugin-proposal-nullish-coalescing-operator@^7.16.0", "@babel/plugin-proposal-nullish-coalescing-operator@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz#141fc20b6857e59459d430c850a0011e36561d99" - integrity sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ== +"@babel/plugin-proposal-nullish-coalescing-operator@^7.12.1", "@babel/plugin-proposal-nullish-coalescing-operator@^7.16.0": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz#fdd940a99a740e577d6c753ab6fbb43fdb9467e1" + integrity sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" -"@babel/plugin-proposal-numeric-separator@^7.12.1", "@babel/plugin-proposal-numeric-separator@^7.16.0", "@babel/plugin-proposal-numeric-separator@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz#d6b69f4af63fb38b6ca2558442a7fb191236eba9" - integrity sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw== +"@babel/plugin-proposal-numeric-separator@^7.12.1", "@babel/plugin-proposal-numeric-separator@^7.16.0": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz#899b14fbafe87f053d2c5ff05b36029c62e13c75" + integrity sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-proposal-object-rest-spread@^7.12.1", "@babel/plugin-proposal-object-rest-spread@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.16.7.tgz#94593ef1ddf37021a25bdcb5754c4a8d534b01d8" - integrity sha512-3O0Y4+dw94HA86qSg9IHfyPktgR7q3gpNVAeiKQd+8jBKFaU5NQS1Yatgo4wY+UFNuLjvxcSmzcsHqrhgTyBUA== +"@babel/plugin-proposal-object-rest-spread@^7.12.1": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz#aa662940ef425779c75534a5c41e9d936edc390a" + integrity sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg== dependencies: - "@babel/compat-data" "^7.16.4" - "@babel/helper-compilation-targets" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/compat-data" "^7.20.5" + "@babel/helper-compilation-targets" "^7.20.7" + "@babel/helper-plugin-utils" "^7.20.2" "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.16.7" + "@babel/plugin-transform-parameters" "^7.20.7" -"@babel/plugin-proposal-optional-catch-binding@^7.12.1", "@babel/plugin-proposal-optional-catch-binding@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz#c623a430674ffc4ab732fd0a0ae7722b67cb74cf" - integrity sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA== +"@babel/plugin-proposal-optional-catch-binding@^7.12.1": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz#f9400d0e6a3ea93ba9ef70b09e72dd6da638a2cb" + integrity sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-proposal-optional-chaining@^7.12.1", "@babel/plugin-proposal-optional-chaining@^7.16.0", "@babel/plugin-proposal-optional-chaining@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz#7cd629564724816c0e8a969535551f943c64c39a" - integrity sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA== +"@babel/plugin-proposal-optional-chaining@^7.12.1", "@babel/plugin-proposal-optional-chaining@^7.16.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz#886f5c8978deb7d30f678b2e24346b287234d3ea" + integrity sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" "@babel/plugin-syntax-optional-chaining" "^7.8.3" -"@babel/plugin-proposal-private-methods@^7.12.1", "@babel/plugin-proposal-private-methods@^7.16.0", "@babel/plugin-proposal-private-methods@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.7.tgz#e418e3aa6f86edd6d327ce84eff188e479f571e0" - integrity sha512-7twV3pzhrRxSwHeIvFE6coPgvo+exNDOiGUMg39o2LiLo1Y+4aKpfkcLGcg1UHonzorCt7SNXnoMyCnnIOA8Sw== +"@babel/plugin-proposal-private-methods@^7.12.1", "@babel/plugin-proposal-private-methods@^7.16.0": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz#5209de7d213457548a98436fa2882f52f4be6bea" + integrity sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA== dependencies: - "@babel/helper-create-class-features-plugin" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-create-class-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-proposal-private-property-in-object@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz#b0b8cef543c2c3d57e59e2c611994861d46a3fce" - integrity sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.16.7" - "@babel/helper-create-class-features-plugin" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" +"@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": + version "7.21.0-placeholder-for-preset-env.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz#7844f9289546efa9febac2de4cfe358a050bd703" + integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w== -"@babel/plugin-proposal-unicode-property-regex@^7.12.1", "@babel/plugin-proposal-unicode-property-regex@^7.16.7", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz#635d18eb10c6214210ffc5ff4932552de08188a2" - integrity sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg== +"@babel/plugin-proposal-unicode-property-regex@^7.12.1", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz#af613d2cd5e643643b65cded64207b15c85cb78e" + integrity sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-async-generators@^7.8.0", "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" @@ -500,12 +512,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-decorators@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.16.7.tgz#f66a0199f16de7c1ef5192160ccf5d069739e3d3" - integrity sha512-vQ+PxL+srA7g6Rx6I1e15m55gftknl2X8GCUW1JTlkTaXZLJOS0UcaY0eK9jYT7IYf4awn6qwyghVHLDz1WyMw== +"@babel/plugin-syntax-decorators@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.24.1.tgz#71d9ad06063a6ac5430db126b5df48c70ee885fa" + integrity sha512-05RJdO/cCrtVWuAaSn1tS3bH8jbsJa/Y1uD186u6J4C/1mnHFxseeuWpsqr9anvo7TUulev7tm7GDwRV+VuhDw== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/plugin-syntax-dynamic-import@^7.8.0", "@babel/plugin-syntax-dynamic-import@^7.8.3": version "7.8.3" @@ -521,14 +533,28 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-syntax-flow@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.16.7.tgz#202b147e5892b8452bbb0bb269c7ed2539ab8832" - integrity sha512-UDo3YGQO0jH6ytzVwgSLv9i/CzMcUjbKenL67dTrAZPPv6GFAtDhe6jqnvmoKzC/7htNTohhos+onPtDMqJwaQ== +"@babel/plugin-syntax-flow@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.24.1.tgz#875c25e3428d7896c87589765fc8b9d32f24bd8d" + integrity sha512-sxi2kLTI5DeW5vDtMUsk4mTPwvlUDbjOnoWayhynCwrw4QXRld4QEYwqzY8JmQXaJUtgUuCIurtSRH5sn4c7mA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-syntax-import-assertions@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.1.tgz#db3aad724153a00eaac115a3fb898de544e34971" + integrity sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-syntax-import-attributes@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.1.tgz#c66b966c63b714c4eec508fcf5763b1f2d381093" + integrity sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.24.0" -"@babel/plugin-syntax-import-meta@^7.8.3": +"@babel/plugin-syntax-import-meta@^7.10.4", "@babel/plugin-syntax-import-meta@^7.8.3": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== @@ -542,12 +568,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-jsx@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz#50b6571d13f764266a113d77c82b4a6508bbe665" - integrity sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q== +"@babel/plugin-syntax-jsx@^7.23.3", "@babel/plugin-syntax-jsx@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.1.tgz#3f6ca04b8c841811dbc3c5c5f837934e0d626c10" + integrity sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": version "7.10.4" @@ -605,331 +631,477 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-typescript@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.7.tgz#39c9b55ee153151990fb038651d58d3fd03f98f8" - integrity sha512-YhUIJHHGkqPgEcMYkPCKTyGUdoGKWtopIycQyjJH8OjvRgOYsXsaKehLVPScKJWAULPxMa4N1vCe6szREFlZ7A== +"@babel/plugin-syntax-typescript@^7.24.1", "@babel/plugin-syntax-typescript@^7.7.2": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.1.tgz#b3bcc51f396d15f3591683f90239de143c076844" + integrity sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-syntax-unicode-sets-regex@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz#d49a3b3e6b52e5be6740022317580234a6a47357" + integrity sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-arrow-functions@^7.12.1", "@babel/plugin-transform-arrow-functions@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.1.tgz#2bf263617060c9cc45bcdbf492b8cc805082bf27" + integrity sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-async-generator-functions@^7.24.3": + version "7.24.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.3.tgz#8fa7ae481b100768cc9842c8617808c5352b8b89" + integrity sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-remap-async-to-generator" "^7.22.20" + "@babel/plugin-syntax-async-generators" "^7.8.4" -"@babel/plugin-transform-arrow-functions@^7.12.1", "@babel/plugin-transform-arrow-functions@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz#44125e653d94b98db76369de9c396dc14bef4154" - integrity sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ== +"@babel/plugin-transform-async-to-generator@^7.12.1", "@babel/plugin-transform-async-to-generator@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.1.tgz#0e220703b89f2216800ce7b1c53cb0cf521c37f4" + integrity sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-module-imports" "^7.24.1" + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-remap-async-to-generator" "^7.22.20" -"@babel/plugin-transform-async-to-generator@^7.12.1", "@babel/plugin-transform-async-to-generator@^7.16.8": - version "7.16.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz#b83dff4b970cf41f1b819f8b49cc0cfbaa53a808" - integrity sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg== +"@babel/plugin-transform-block-scoped-functions@^7.12.1", "@babel/plugin-transform-block-scoped-functions@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.1.tgz#1c94799e20fcd5c4d4589523bbc57b7692979380" + integrity sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg== dependencies: - "@babel/helper-module-imports" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-remap-async-to-generator" "^7.16.8" + "@babel/helper-plugin-utils" "^7.24.0" -"@babel/plugin-transform-block-scoped-functions@^7.12.1", "@babel/plugin-transform-block-scoped-functions@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz#4d0d57d9632ef6062cdf354bb717102ee042a620" - integrity sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg== +"@babel/plugin-transform-block-scoping@^7.12.1", "@babel/plugin-transform-block-scoping@^7.24.5": + version "7.24.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.5.tgz#89574191397f85661d6f748d4b89ee4d9ee69a2a" + integrity sha512-sMfBc3OxghjC95BkYrYocHL3NaOplrcaunblzwXhGmlPwpmfsxr4vK+mBBt49r+S240vahmv+kUxkeKgs+haCw== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.24.5" -"@babel/plugin-transform-block-scoping@^7.12.1", "@babel/plugin-transform-block-scoping@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz#f50664ab99ddeaee5bc681b8f3a6ea9d72ab4f87" - integrity sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ== +"@babel/plugin-transform-class-properties@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.1.tgz#bcbf1aef6ba6085cfddec9fc8d58871cf011fc29" + integrity sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-create-class-features-plugin" "^7.24.1" + "@babel/helper-plugin-utils" "^7.24.0" -"@babel/plugin-transform-classes@^7.12.1", "@babel/plugin-transform-classes@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz#8f4b9562850cd973de3b498f1218796eb181ce00" - integrity sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ== +"@babel/plugin-transform-class-static-block@^7.24.4": + version "7.24.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.4.tgz#1a4653c0cf8ac46441ec406dece6e9bc590356a4" + integrity sha512-B8q7Pz870Hz/q9UgP8InNpY01CSLDSCyqX7zcRuv3FcPl87A2G17lASroHWaCtbdIcbYzOZ7kWmXFKbijMSmFg== dependencies: - "@babel/helper-annotate-as-pure" "^7.16.7" - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-function-name" "^7.16.7" - "@babel/helper-optimise-call-expression" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-replace-supers" "^7.16.7" - "@babel/helper-split-export-declaration" "^7.16.7" + "@babel/helper-create-class-features-plugin" "^7.24.4" + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + +"@babel/plugin-transform-classes@^7.12.1", "@babel/plugin-transform-classes@^7.24.5": + version "7.24.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.5.tgz#05e04a09df49a46348299a0e24bfd7e901129339" + integrity sha512-gWkLP25DFj2dwe9Ck8uwMOpko4YsqyfZJrOmqqcegeDYEbp7rmn4U6UQZNj08UF6MaX39XenSpKRCvpDRBtZ7Q== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-compilation-targets" "^7.23.6" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-plugin-utils" "^7.24.5" + "@babel/helper-replace-supers" "^7.24.1" + "@babel/helper-split-export-declaration" "^7.24.5" globals "^11.1.0" -"@babel/plugin-transform-computed-properties@^7.12.1", "@babel/plugin-transform-computed-properties@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz#66dee12e46f61d2aae7a73710f591eb3df616470" - integrity sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw== +"@babel/plugin-transform-computed-properties@^7.12.1", "@babel/plugin-transform-computed-properties@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.1.tgz#bc7e787f8e021eccfb677af5f13c29a9934ed8a7" + integrity sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/template" "^7.24.0" + +"@babel/plugin-transform-destructuring@^7.12.1", "@babel/plugin-transform-destructuring@^7.24.5": + version "7.24.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.5.tgz#80843ee6a520f7362686d1a97a7b53544ede453c" + integrity sha512-SZuuLyfxvsm+Ah57I/i1HVjveBENYK9ue8MJ7qkc7ndoNjqquJiElzA7f5yaAXjyW2hKojosOTAQQRX50bPSVg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.5" + +"@babel/plugin-transform-dotall-regex@^7.12.1", "@babel/plugin-transform-dotall-regex@^7.24.1", "@babel/plugin-transform-dotall-regex@^7.4.4": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.1.tgz#d56913d2f12795cc9930801b84c6f8c47513ac13" + integrity sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-create-regexp-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.24.0" -"@babel/plugin-transform-destructuring@^7.12.1", "@babel/plugin-transform-destructuring@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.16.7.tgz#ca9588ae2d63978a4c29d3f33282d8603f618e23" - integrity sha512-VqAwhTHBnu5xBVDCvrvqJbtLUa++qZaWC0Fgr2mqokBlulZARGyIvZDoqbPlPaKImQ9dKAcCzbv+ul//uqu70A== +"@babel/plugin-transform-duplicate-keys@^7.12.1", "@babel/plugin-transform-duplicate-keys@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.1.tgz#5347a797fe82b8d09749d10e9f5b83665adbca88" + integrity sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.24.0" -"@babel/plugin-transform-dotall-regex@^7.12.1", "@babel/plugin-transform-dotall-regex@^7.16.7", "@babel/plugin-transform-dotall-regex@^7.4.4": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz#6b2d67686fab15fb6a7fd4bd895d5982cfc81241" - integrity sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ== +"@babel/plugin-transform-dynamic-import@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.1.tgz#2a5a49959201970dd09a5fca856cb651e44439dd" + integrity sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" -"@babel/plugin-transform-duplicate-keys@^7.12.1", "@babel/plugin-transform-duplicate-keys@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz#2207e9ca8f82a0d36a5a67b6536e7ef8b08823c9" - integrity sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw== +"@babel/plugin-transform-exponentiation-operator@^7.12.1", "@babel/plugin-transform-exponentiation-operator@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.1.tgz#6650ebeb5bd5c012d5f5f90a26613a08162e8ba4" + integrity sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.22.15" + "@babel/helper-plugin-utils" "^7.24.0" -"@babel/plugin-transform-exponentiation-operator@^7.12.1", "@babel/plugin-transform-exponentiation-operator@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz#efa9862ef97e9e9e5f653f6ddc7b665e8536fe9b" - integrity sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA== +"@babel/plugin-transform-export-namespace-from@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.1.tgz#f033541fc036e3efb2dcb58eedafd4f6b8078acd" + integrity sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ== dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" "@babel/plugin-transform-flow-strip-types@^7.16.0": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.16.7.tgz#291fb140c78dabbf87f2427e7c7c332b126964b8" - integrity sha512-mzmCq3cNsDpZZu9FADYYyfZJIOrSONmHcop2XEKPdBNMa4PDC4eEvcOvzZaCNcjKu72v0XQlA5y1g58aLRXdYg== + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.24.1.tgz#fa8d0a146506ea195da1671d38eed459242b2dcc" + integrity sha512-iIYPIWt3dUmUKKE10s3W+jsQ3icFkw0JyRVyY1B7G4yK/nngAOHLVx8xlhA6b/Jzl/Y0nis8gjqhqKtRDQqHWQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/plugin-syntax-flow" "^7.24.1" + +"@babel/plugin-transform-for-of@^7.12.1", "@babel/plugin-transform-for-of@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.1.tgz#67448446b67ab6c091360ce3717e7d3a59e202fd" + integrity sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + +"@babel/plugin-transform-function-name@^7.12.1", "@babel/plugin-transform-function-name@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.1.tgz#8cba6f7730626cc4dfe4ca2fa516215a0592b361" + integrity sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA== + dependencies: + "@babel/helper-compilation-targets" "^7.23.6" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-json-strings@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.1.tgz#08e6369b62ab3e8a7b61089151b161180c8299f7" + integrity sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/plugin-syntax-json-strings" "^7.8.3" + +"@babel/plugin-transform-literals@^7.12.1", "@babel/plugin-transform-literals@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.1.tgz#0a1982297af83e6b3c94972686067df588c5c096" + integrity sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-logical-assignment-operators@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.1.tgz#719d8aded1aa94b8fb34e3a785ae8518e24cfa40" + integrity sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + +"@babel/plugin-transform-member-expression-literals@^7.12.1", "@babel/plugin-transform-member-expression-literals@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.1.tgz#896d23601c92f437af8b01371ad34beb75df4489" + integrity sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/plugin-syntax-flow" "^7.16.7" + "@babel/helper-plugin-utils" "^7.24.0" -"@babel/plugin-transform-for-of@^7.12.1", "@babel/plugin-transform-for-of@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz#649d639d4617dff502a9a158c479b3b556728d8c" - integrity sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg== +"@babel/plugin-transform-modules-amd@^7.12.1", "@babel/plugin-transform-modules-amd@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.1.tgz#b6d829ed15258536977e9c7cc6437814871ffa39" + integrity sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helper-plugin-utils" "^7.24.0" -"@babel/plugin-transform-function-name@^7.12.1", "@babel/plugin-transform-function-name@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz#5ab34375c64d61d083d7d2f05c38d90b97ec65cf" - integrity sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA== +"@babel/plugin-transform-modules-commonjs@^7.12.1", "@babel/plugin-transform-modules-commonjs@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.1.tgz#e71ba1d0d69e049a22bf90b3867e263823d3f1b9" + integrity sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw== dependencies: - "@babel/helper-compilation-targets" "^7.16.7" - "@babel/helper-function-name" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-simple-access" "^7.22.5" -"@babel/plugin-transform-literals@^7.12.1", "@babel/plugin-transform-literals@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz#254c9618c5ff749e87cb0c0cef1a0a050c0bdab1" - integrity sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ== +"@babel/plugin-transform-modules-systemjs@^7.12.1", "@babel/plugin-transform-modules-systemjs@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.1.tgz#2b9625a3d4e445babac9788daec39094e6b11e3e" + integrity sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-hoist-variables" "^7.22.5" + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-validator-identifier" "^7.22.20" -"@babel/plugin-transform-member-expression-literals@^7.12.1", "@babel/plugin-transform-member-expression-literals@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz#6e5dcf906ef8a098e630149d14c867dd28f92384" - integrity sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw== +"@babel/plugin-transform-modules-umd@^7.12.1", "@babel/plugin-transform-modules-umd@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.1.tgz#69220c66653a19cf2c0872b9c762b9a48b8bebef" + integrity sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helper-plugin-utils" "^7.24.0" -"@babel/plugin-transform-modules-amd@^7.12.1", "@babel/plugin-transform-modules-amd@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz#b28d323016a7daaae8609781d1f8c9da42b13186" - integrity sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g== +"@babel/plugin-transform-named-capturing-groups-regex@^7.12.1", "@babel/plugin-transform-named-capturing-groups-regex@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz#67fe18ee8ce02d57c855185e27e3dc959b2e991f" + integrity sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ== dependencies: - "@babel/helper-module-transforms" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - babel-plugin-dynamic-import-node "^2.3.3" + "@babel/helper-create-regexp-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-modules-commonjs@^7.12.1", "@babel/plugin-transform-modules-commonjs@^7.16.8": - version "7.16.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.8.tgz#cdee19aae887b16b9d331009aa9a219af7c86afe" - integrity sha512-oflKPvsLT2+uKQopesJt3ApiaIS2HW+hzHFcwRNtyDGieAeC/dIHZX8buJQ2J2X1rxGPy4eRcUijm3qcSPjYcA== +"@babel/plugin-transform-new-target@^7.12.1", "@babel/plugin-transform-new-target@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.1.tgz#29c59988fa3d0157de1c871a28cd83096363cc34" + integrity sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug== dependencies: - "@babel/helper-module-transforms" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-simple-access" "^7.16.7" - babel-plugin-dynamic-import-node "^2.3.3" + "@babel/helper-plugin-utils" "^7.24.0" -"@babel/plugin-transform-modules-systemjs@^7.12.1", "@babel/plugin-transform-modules-systemjs@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.7.tgz#887cefaef88e684d29558c2b13ee0563e287c2d7" - integrity sha512-DuK5E3k+QQmnOqBR9UkusByy5WZWGRxfzV529s9nPra1GE7olmxfqO2FHobEOYSPIjPBTr4p66YDcjQnt8cBmw== +"@babel/plugin-transform-nullish-coalescing-operator@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.1.tgz#0cd494bb97cb07d428bd651632cb9d4140513988" + integrity sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw== dependencies: - "@babel/helper-hoist-variables" "^7.16.7" - "@babel/helper-module-transforms" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-validator-identifier" "^7.16.7" - babel-plugin-dynamic-import-node "^2.3.3" + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + +"@babel/plugin-transform-numeric-separator@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.1.tgz#5bc019ce5b3435c1cadf37215e55e433d674d4e8" + integrity sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + +"@babel/plugin-transform-object-rest-spread@^7.24.5": + version "7.24.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.5.tgz#f91bbcb092ff957c54b4091c86bda8372f0b10ef" + integrity sha512-7EauQHszLGM3ay7a161tTQH7fj+3vVM/gThlz5HpFtnygTxjrlvoeq7MPVA1Vy9Q555OB8SnAOsMkLShNkkrHA== + dependencies: + "@babel/helper-compilation-targets" "^7.23.6" + "@babel/helper-plugin-utils" "^7.24.5" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.24.5" + +"@babel/plugin-transform-object-super@^7.12.1", "@babel/plugin-transform-object-super@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.1.tgz#e71d6ab13483cca89ed95a474f542bbfc20a0520" + integrity sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-replace-supers" "^7.24.1" -"@babel/plugin-transform-modules-umd@^7.12.1", "@babel/plugin-transform-modules-umd@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz#23dad479fa585283dbd22215bff12719171e7618" - integrity sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ== +"@babel/plugin-transform-optional-catch-binding@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.1.tgz#92a3d0efe847ba722f1a4508669b23134669e2da" + integrity sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA== dependencies: - "@babel/helper-module-transforms" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-transform-named-capturing-groups-regex@^7.12.1", "@babel/plugin-transform-named-capturing-groups-regex@^7.16.8": - version "7.16.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz#7f860e0e40d844a02c9dcf9d84965e7dfd666252" - integrity sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw== +"@babel/plugin-transform-optional-chaining@^7.24.1", "@babel/plugin-transform-optional-chaining@^7.24.5": + version "7.24.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.5.tgz#a6334bebd7f9dd3df37447880d0bd64b778e600f" + integrity sha512-xWCkmwKT+ihmA6l7SSTpk8e4qQl/274iNbSKRRS8mpqFR32ksy36+a+LWY8OXCCEefF8WFlnOHVsaDI2231wBg== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.16.7" + "@babel/helper-plugin-utils" "^7.24.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" -"@babel/plugin-transform-new-target@^7.12.1", "@babel/plugin-transform-new-target@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz#9967d89a5c243818e0800fdad89db22c5f514244" - integrity sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg== +"@babel/plugin-transform-parameters@^7.12.1", "@babel/plugin-transform-parameters@^7.20.7", "@babel/plugin-transform-parameters@^7.24.5": + version "7.24.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.5.tgz#5c3b23f3a6b8fed090f9b98f2926896d3153cc62" + integrity sha512-9Co00MqZ2aoky+4j2jhofErthm6QVLKbpQrvz20c3CH9KQCLHyNB+t2ya4/UrRpQGR+Wrwjg9foopoeSdnHOkA== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.24.5" -"@babel/plugin-transform-object-super@^7.12.1", "@babel/plugin-transform-object-super@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz#ac359cf8d32cf4354d27a46867999490b6c32a94" - integrity sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw== +"@babel/plugin-transform-private-methods@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.1.tgz#a0faa1ae87eff077e1e47a5ec81c3aef383dc15a" + integrity sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-replace-supers" "^7.16.7" + "@babel/helper-create-class-features-plugin" "^7.24.1" + "@babel/helper-plugin-utils" "^7.24.0" -"@babel/plugin-transform-parameters@^7.12.1", "@babel/plugin-transform-parameters@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz#a1721f55b99b736511cb7e0152f61f17688f331f" - integrity sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw== +"@babel/plugin-transform-private-property-in-object@^7.24.5": + version "7.24.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.5.tgz#f5d1fcad36e30c960134cb479f1ca98a5b06eda5" + integrity sha512-JM4MHZqnWR04jPMujQDTBVRnqxpLLpx2tkn7iPn+Hmsc0Gnb79yvRWOkvqFOx3Z7P7VxiRIR22c4eGSNj87OBQ== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-create-class-features-plugin" "^7.24.5" + "@babel/helper-plugin-utils" "^7.24.5" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" -"@babel/plugin-transform-property-literals@^7.12.1", "@babel/plugin-transform-property-literals@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz#2dadac85155436f22c696c4827730e0fe1057a55" - integrity sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw== +"@babel/plugin-transform-property-literals@^7.12.1", "@babel/plugin-transform-property-literals@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.1.tgz#d6a9aeab96f03749f4eebeb0b6ea8e90ec958825" + integrity sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.24.0" -"@babel/plugin-transform-react-constant-elements@^7.9.0": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.16.7.tgz#19e9e4c2df2f6c3e6b3aea11778297d81db8df62" - integrity sha512-lF+cfsyTgwWkcw715J88JhMYJ5GpysYNLhLP1PkvkhTRN7B3e74R/1KsDxFxhRpSn0UUD3IWM4GvdBR2PEbbQQ== +"@babel/plugin-transform-react-constant-elements@^7.12.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.24.1.tgz#d493a0918b9fdad7540f5afd9b5eb5c52500d18d" + integrity sha512-QXp1U9x0R7tkiGB0FOk8o74jhnap0FlZ5gNkRIWdG3eP+SvMFg118e1zaWewDzgABb106QSKpVsD3Wgd8t6ifA== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.24.0" -"@babel/plugin-transform-react-display-name@^7.16.0", "@babel/plugin-transform-react-display-name@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.7.tgz#7b6d40d232f4c0f550ea348593db3b21e2404340" - integrity sha512-qgIg8BcZgd0G/Cz916D5+9kqX0c7nPZyXaP8R2tLNN5tkyIZdG5fEwBrxwplzSnjC1jvQmyMNVwUCZPcbGY7Pg== +"@babel/plugin-transform-react-display-name@^7.16.0", "@babel/plugin-transform-react-display-name@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.24.1.tgz#554e3e1a25d181f040cf698b93fd289a03bfdcdb" + integrity sha512-mvoQg2f9p2qlpDQRBC7M3c3XTr0k7cp/0+kFKKO/7Gtu0LSw16eKB+Fabe2bDT/UpsyasTBBkAnbdsLrkD5XMw== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.24.0" -"@babel/plugin-transform-react-jsx-development@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.7.tgz#43a00724a3ed2557ed3f276a01a929e6686ac7b8" - integrity sha512-RMvQWvpla+xy6MlBpPlrKZCMRs2AGiHOGHY3xRwl0pEeim348dDyxeH4xBsMPbIMhujeq7ihE702eM2Ew0Wo+A== +"@babel/plugin-transform-react-jsx-development@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.22.5.tgz#e716b6edbef972a92165cd69d92f1255f7e73e87" + integrity sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A== dependencies: - "@babel/plugin-transform-react-jsx" "^7.16.7" + "@babel/plugin-transform-react-jsx" "^7.22.5" -"@babel/plugin-transform-react-jsx@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.16.7.tgz#86a6a220552afd0e4e1f0388a68a372be7add0d4" - integrity sha512-8D16ye66fxiE8m890w0BpPpngG9o9OVBBy0gH2E+2AR7qMR2ZpTYJEqLxAsoroenMId0p/wMW+Blc0meDgu0Ag== +"@babel/plugin-transform-react-jsx@^7.22.5", "@babel/plugin-transform-react-jsx@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.23.4.tgz#393f99185110cea87184ea47bcb4a7b0c2e39312" + integrity sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA== dependencies: - "@babel/helper-annotate-as-pure" "^7.16.7" - "@babel/helper-module-imports" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/plugin-syntax-jsx" "^7.16.7" - "@babel/types" "^7.16.7" + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-module-imports" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-jsx" "^7.23.3" + "@babel/types" "^7.23.4" -"@babel/plugin-transform-react-pure-annotations@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.16.7.tgz#232bfd2f12eb551d6d7d01d13fe3f86b45eb9c67" - integrity sha512-hs71ToC97k3QWxswh2ElzMFABXHvGiJ01IB1TbYQDGeWRKWz/MPUTh5jGExdHvosYKpnJW5Pm3S4+TA3FyX+GA== +"@babel/plugin-transform-react-pure-annotations@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.24.1.tgz#c86bce22a53956331210d268e49a0ff06e392470" + integrity sha512-+pWEAaDJvSm9aFvJNpLiM2+ktl2Sn2U5DdyiWdZBxmLc6+xGt88dvFqsHiAiDS+8WqUwbDfkKz9jRxK3M0k+kA== dependencies: - "@babel/helper-annotate-as-pure" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" -"@babel/plugin-transform-regenerator@^7.12.1", "@babel/plugin-transform-regenerator@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.7.tgz#9e7576dc476cb89ccc5096fff7af659243b4adeb" - integrity sha512-mF7jOgGYCkSJagJ6XCujSQg+6xC1M77/03K2oBmVJWoFGNUtnVJO4WHKJk3dnPC8HCcj4xBQP1Egm8DWh3Pb3Q== +"@babel/plugin-transform-regenerator@^7.12.1", "@babel/plugin-transform-regenerator@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.1.tgz#625b7545bae52363bdc1fbbdc7252b5046409c8c" + integrity sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw== dependencies: - regenerator-transform "^0.14.2" + "@babel/helper-plugin-utils" "^7.24.0" + regenerator-transform "^0.15.2" -"@babel/plugin-transform-reserved-words@^7.12.1", "@babel/plugin-transform-reserved-words@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz#1d798e078f7c5958eec952059c460b220a63f586" - integrity sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg== +"@babel/plugin-transform-reserved-words@^7.12.1", "@babel/plugin-transform-reserved-words@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.1.tgz#8de729f5ecbaaf5cf83b67de13bad38a21be57c1" + integrity sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/plugin-transform-runtime@^7.16.4", "@babel/plugin-transform-runtime@^7.5.5": - version "7.16.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.16.8.tgz#3339368701103edae708f0fba9e4bfb70a3e5872" - integrity sha512-6Kg2XHPFnIarNweZxmzbgYnnWsXxkx9WQUVk2sksBRL80lBC1RAQV3wQagWxdCHiYHqPN+oenwNIuttlYgIbQQ== - dependencies: - "@babel/helper-module-imports" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - babel-plugin-polyfill-corejs2 "^0.3.0" - babel-plugin-polyfill-corejs3 "^0.5.0" - babel-plugin-polyfill-regenerator "^0.3.0" - semver "^6.3.0" + version "7.24.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.24.3.tgz#dc58ad4a31810a890550365cc922e1ff5acb5d7f" + integrity sha512-J0BuRPNlNqlMTRJ72eVptpt9VcInbxO6iP3jaxr+1NPhC0UkKL+6oeX6VXMEYdADnuqmMmsBspt4d5w8Y/TCbQ== + dependencies: + "@babel/helper-module-imports" "^7.24.3" + "@babel/helper-plugin-utils" "^7.24.0" + babel-plugin-polyfill-corejs2 "^0.4.10" + babel-plugin-polyfill-corejs3 "^0.10.1" + babel-plugin-polyfill-regenerator "^0.6.1" + semver "^6.3.1" + +"@babel/plugin-transform-shorthand-properties@^7.12.1", "@babel/plugin-transform-shorthand-properties@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.1.tgz#ba9a09144cf55d35ec6b93a32253becad8ee5b55" + integrity sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" -"@babel/plugin-transform-shorthand-properties@^7.12.1", "@babel/plugin-transform-shorthand-properties@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz#e8549ae4afcf8382f711794c0c7b6b934c5fbd2a" - integrity sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg== +"@babel/plugin-transform-spread@^7.12.1", "@babel/plugin-transform-spread@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.1.tgz#a1acf9152cbf690e4da0ba10790b3ac7d2b2b391" + integrity sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" -"@babel/plugin-transform-spread@^7.12.1", "@babel/plugin-transform-spread@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz#a303e2122f9f12e0105daeedd0f30fb197d8ff44" - integrity sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg== +"@babel/plugin-transform-sticky-regex@^7.12.1", "@babel/plugin-transform-sticky-regex@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.1.tgz#f03e672912c6e203ed8d6e0271d9c2113dc031b9" + integrity sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" + "@babel/helper-plugin-utils" "^7.24.0" -"@babel/plugin-transform-sticky-regex@^7.12.1", "@babel/plugin-transform-sticky-regex@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz#c84741d4f4a38072b9a1e2e3fd56d359552e8660" - integrity sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw== +"@babel/plugin-transform-template-literals@^7.12.1", "@babel/plugin-transform-template-literals@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.1.tgz#15e2166873a30d8617e3e2ccadb86643d327aab7" + integrity sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.24.0" -"@babel/plugin-transform-template-literals@^7.12.1", "@babel/plugin-transform-template-literals@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz#f3d1c45d28967c8e80f53666fc9c3e50618217ab" - integrity sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA== +"@babel/plugin-transform-typeof-symbol@^7.12.1", "@babel/plugin-transform-typeof-symbol@^7.24.5": + version "7.24.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.5.tgz#703cace5ef74155fb5eecab63cbfc39bdd25fe12" + integrity sha512-UTGnhYVZtTAjdwOTzT+sCyXmTn8AhaxOS/MjG9REclZ6ULHWF9KoCZur0HSGU7hk8PdBFKKbYe6+gqdXWz84Jg== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.24.5" -"@babel/plugin-transform-typeof-symbol@^7.12.1", "@babel/plugin-transform-typeof-symbol@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz#9cdbe622582c21368bd482b660ba87d5545d4f7e" - integrity sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ== +"@babel/plugin-transform-typescript@^7.24.1": + version "7.24.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.24.5.tgz#bcba979e462120dc06a75bd34c473a04781931b8" + integrity sha512-E0VWu/hk83BIFUWnsKZ4D81KXjN5L3MobvevOHErASk9IPwKHOkTgvqzvNo1yP/ePJWqqK2SpUR5z+KQbl6NVw== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-create-class-features-plugin" "^7.24.5" + "@babel/helper-plugin-utils" "^7.24.5" + "@babel/plugin-syntax-typescript" "^7.24.1" -"@babel/plugin-transform-typescript@^7.16.7": - version "7.16.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.16.8.tgz#591ce9b6b83504903fa9dd3652c357c2ba7a1ee0" - integrity sha512-bHdQ9k7YpBDO2d0NVfkj51DpQcvwIzIusJ7mEUaMlbZq3Kt/U47j24inXZHQ5MDiYpCs+oZiwnXyKedE8+q7AQ== +"@babel/plugin-transform-unicode-escapes@^7.12.1", "@babel/plugin-transform-unicode-escapes@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.1.tgz#fb3fa16676549ac7c7449db9b342614985c2a3a4" + integrity sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw== dependencies: - "@babel/helper-create-class-features-plugin" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/plugin-syntax-typescript" "^7.16.7" + "@babel/helper-plugin-utils" "^7.24.0" -"@babel/plugin-transform-unicode-escapes@^7.12.1", "@babel/plugin-transform-unicode-escapes@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz#da8717de7b3287a2c6d659750c964f302b31ece3" - integrity sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q== +"@babel/plugin-transform-unicode-property-regex@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.1.tgz#56704fd4d99da81e5e9f0c0c93cabd91dbc4889e" + integrity sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-create-regexp-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.24.0" -"@babel/plugin-transform-unicode-regex@^7.12.1", "@babel/plugin-transform-unicode-regex@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz#0f7aa4a501198976e25e82702574c34cfebe9ef2" - integrity sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q== +"@babel/plugin-transform-unicode-regex@^7.12.1", "@babel/plugin-transform-unicode-regex@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.1.tgz#57c3c191d68f998ac46b708380c1ce4d13536385" + integrity sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-create-regexp-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-unicode-sets-regex@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.1.tgz#c1ea175b02afcffc9cf57a9c4658326625165b7f" + integrity sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.24.0" "@babel/preset-env@7.12.1": version "7.12.1" @@ -1003,37 +1175,28 @@ core-js-compat "^3.6.2" semver "^5.5.0" -"@babel/preset-env@^7.16.4", "@babel/preset-env@^7.8.4", "@babel/preset-env@^7.9.5": - version "7.16.8" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.16.8.tgz#e682fa0bcd1cf49621d64a8956318ddfb9a05af9" - integrity sha512-9rNKgVCdwHb3z1IlbMyft6yIXIeP3xz6vWvGaLHrJThuEIqWfHb0DNBH9VuTgnDfdbUDhkmkvMZS/YMCtP7Elg== - dependencies: - "@babel/compat-data" "^7.16.8" - "@babel/helper-compilation-targets" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-validator-option" "^7.16.7" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.16.7" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.16.7" - "@babel/plugin-proposal-async-generator-functions" "^7.16.8" - "@babel/plugin-proposal-class-properties" "^7.16.7" - "@babel/plugin-proposal-class-static-block" "^7.16.7" - "@babel/plugin-proposal-dynamic-import" "^7.16.7" - "@babel/plugin-proposal-export-namespace-from" "^7.16.7" - "@babel/plugin-proposal-json-strings" "^7.16.7" - "@babel/plugin-proposal-logical-assignment-operators" "^7.16.7" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.16.7" - "@babel/plugin-proposal-numeric-separator" "^7.16.7" - "@babel/plugin-proposal-object-rest-spread" "^7.16.7" - "@babel/plugin-proposal-optional-catch-binding" "^7.16.7" - "@babel/plugin-proposal-optional-chaining" "^7.16.7" - "@babel/plugin-proposal-private-methods" "^7.16.7" - "@babel/plugin-proposal-private-property-in-object" "^7.16.7" - "@babel/plugin-proposal-unicode-property-regex" "^7.16.7" +"@babel/preset-env@^7.11.0", "@babel/preset-env@^7.12.1", "@babel/preset-env@^7.16.4": + version "7.24.5" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.24.5.tgz#6a9ac90bd5a5a9dae502af60dfc58c190551bbcd" + integrity sha512-UGK2ifKtcC8i5AI4cH+sbLLuLc2ktYSFJgBAXorKAsHUZmrQ1q6aQ6i3BvU24wWs2AAKqQB6kq3N9V9Gw1HiMQ== + dependencies: + "@babel/compat-data" "^7.24.4" + "@babel/helper-compilation-targets" "^7.23.6" + "@babel/helper-plugin-utils" "^7.24.5" + "@babel/helper-validator-option" "^7.23.5" + "@babel/plugin-bugfix-firefox-class-in-computed-class-key" "^7.24.5" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.24.1" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.24.1" + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.24.1" + "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-syntax-class-properties" "^7.12.13" "@babel/plugin-syntax-class-static-block" "^7.14.5" "@babel/plugin-syntax-dynamic-import" "^7.8.3" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-syntax-import-assertions" "^7.24.1" + "@babel/plugin-syntax-import-attributes" "^7.24.1" + "@babel/plugin-syntax-import-meta" "^7.10.4" "@babel/plugin-syntax-json-strings" "^7.8.3" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" @@ -1043,50 +1206,75 @@ "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-private-property-in-object" "^7.14.5" "@babel/plugin-syntax-top-level-await" "^7.14.5" - "@babel/plugin-transform-arrow-functions" "^7.16.7" - "@babel/plugin-transform-async-to-generator" "^7.16.8" - "@babel/plugin-transform-block-scoped-functions" "^7.16.7" - "@babel/plugin-transform-block-scoping" "^7.16.7" - "@babel/plugin-transform-classes" "^7.16.7" - "@babel/plugin-transform-computed-properties" "^7.16.7" - "@babel/plugin-transform-destructuring" "^7.16.7" - "@babel/plugin-transform-dotall-regex" "^7.16.7" - "@babel/plugin-transform-duplicate-keys" "^7.16.7" - "@babel/plugin-transform-exponentiation-operator" "^7.16.7" - "@babel/plugin-transform-for-of" "^7.16.7" - "@babel/plugin-transform-function-name" "^7.16.7" - "@babel/plugin-transform-literals" "^7.16.7" - "@babel/plugin-transform-member-expression-literals" "^7.16.7" - "@babel/plugin-transform-modules-amd" "^7.16.7" - "@babel/plugin-transform-modules-commonjs" "^7.16.8" - "@babel/plugin-transform-modules-systemjs" "^7.16.7" - "@babel/plugin-transform-modules-umd" "^7.16.7" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.16.8" - "@babel/plugin-transform-new-target" "^7.16.7" - "@babel/plugin-transform-object-super" "^7.16.7" - "@babel/plugin-transform-parameters" "^7.16.7" - "@babel/plugin-transform-property-literals" "^7.16.7" - "@babel/plugin-transform-regenerator" "^7.16.7" - "@babel/plugin-transform-reserved-words" "^7.16.7" - "@babel/plugin-transform-shorthand-properties" "^7.16.7" - "@babel/plugin-transform-spread" "^7.16.7" - "@babel/plugin-transform-sticky-regex" "^7.16.7" - "@babel/plugin-transform-template-literals" "^7.16.7" - "@babel/plugin-transform-typeof-symbol" "^7.16.7" - "@babel/plugin-transform-unicode-escapes" "^7.16.7" - "@babel/plugin-transform-unicode-regex" "^7.16.7" - "@babel/preset-modules" "^0.1.5" - "@babel/types" "^7.16.8" - babel-plugin-polyfill-corejs2 "^0.3.0" - babel-plugin-polyfill-corejs3 "^0.5.0" - babel-plugin-polyfill-regenerator "^0.3.0" - core-js-compat "^3.20.2" - semver "^6.3.0" + "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" + "@babel/plugin-transform-arrow-functions" "^7.24.1" + "@babel/plugin-transform-async-generator-functions" "^7.24.3" + "@babel/plugin-transform-async-to-generator" "^7.24.1" + "@babel/plugin-transform-block-scoped-functions" "^7.24.1" + "@babel/plugin-transform-block-scoping" "^7.24.5" + "@babel/plugin-transform-class-properties" "^7.24.1" + "@babel/plugin-transform-class-static-block" "^7.24.4" + "@babel/plugin-transform-classes" "^7.24.5" + "@babel/plugin-transform-computed-properties" "^7.24.1" + "@babel/plugin-transform-destructuring" "^7.24.5" + "@babel/plugin-transform-dotall-regex" "^7.24.1" + "@babel/plugin-transform-duplicate-keys" "^7.24.1" + "@babel/plugin-transform-dynamic-import" "^7.24.1" + "@babel/plugin-transform-exponentiation-operator" "^7.24.1" + "@babel/plugin-transform-export-namespace-from" "^7.24.1" + "@babel/plugin-transform-for-of" "^7.24.1" + "@babel/plugin-transform-function-name" "^7.24.1" + "@babel/plugin-transform-json-strings" "^7.24.1" + "@babel/plugin-transform-literals" "^7.24.1" + "@babel/plugin-transform-logical-assignment-operators" "^7.24.1" + "@babel/plugin-transform-member-expression-literals" "^7.24.1" + "@babel/plugin-transform-modules-amd" "^7.24.1" + "@babel/plugin-transform-modules-commonjs" "^7.24.1" + "@babel/plugin-transform-modules-systemjs" "^7.24.1" + "@babel/plugin-transform-modules-umd" "^7.24.1" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.22.5" + "@babel/plugin-transform-new-target" "^7.24.1" + "@babel/plugin-transform-nullish-coalescing-operator" "^7.24.1" + "@babel/plugin-transform-numeric-separator" "^7.24.1" + "@babel/plugin-transform-object-rest-spread" "^7.24.5" + "@babel/plugin-transform-object-super" "^7.24.1" + "@babel/plugin-transform-optional-catch-binding" "^7.24.1" + "@babel/plugin-transform-optional-chaining" "^7.24.5" + "@babel/plugin-transform-parameters" "^7.24.5" + "@babel/plugin-transform-private-methods" "^7.24.1" + "@babel/plugin-transform-private-property-in-object" "^7.24.5" + "@babel/plugin-transform-property-literals" "^7.24.1" + "@babel/plugin-transform-regenerator" "^7.24.1" + "@babel/plugin-transform-reserved-words" "^7.24.1" + "@babel/plugin-transform-shorthand-properties" "^7.24.1" + "@babel/plugin-transform-spread" "^7.24.1" + "@babel/plugin-transform-sticky-regex" "^7.24.1" + "@babel/plugin-transform-template-literals" "^7.24.1" + "@babel/plugin-transform-typeof-symbol" "^7.24.5" + "@babel/plugin-transform-unicode-escapes" "^7.24.1" + "@babel/plugin-transform-unicode-property-regex" "^7.24.1" + "@babel/plugin-transform-unicode-regex" "^7.24.1" + "@babel/plugin-transform-unicode-sets-regex" "^7.24.1" + "@babel/preset-modules" "0.1.6-no-external-plugins" + babel-plugin-polyfill-corejs2 "^0.4.10" + babel-plugin-polyfill-corejs3 "^0.10.4" + babel-plugin-polyfill-regenerator "^0.6.1" + core-js-compat "^3.31.0" + semver "^6.3.1" + +"@babel/preset-modules@0.1.6-no-external-plugins": + version "0.1.6-no-external-plugins" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz#ccb88a2c49c817236861fee7826080573b8a923a" + integrity sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/types" "^7.4.4" + esutils "^2.0.2" -"@babel/preset-modules@^0.1.3", "@babel/preset-modules@^0.1.5": - version "0.1.5" - resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.5.tgz#ef939d6e7f268827e1841638dc6ff95515e115d9" - integrity sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA== +"@babel/preset-modules@^0.1.3": + version "0.1.6" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.6.tgz#31bcdd8f19538437339d17af00d177d854d9d458" + integrity sha512-ID2yj6K/4lKfhuU3+EX4UvNbIt7eACFbHmNUjzA+ep+B5971CknnA/9DEWKbRokfbbtblxxxXFJJrH47UEAMVg== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" @@ -1094,73 +1282,81 @@ "@babel/types" "^7.4.4" esutils "^2.0.2" -"@babel/preset-react@^7.16.0", "@babel/preset-react@^7.9.4": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.16.7.tgz#4c18150491edc69c183ff818f9f2aecbe5d93852" - integrity sha512-fWpyI8UM/HE6DfPBzD8LnhQ/OcH8AgTaqcqP2nGOXEUV+VKBR5JRN9hCk9ai+zQQ57vtm9oWeXguBCPNUjytgA== +"@babel/preset-react@^7.12.5", "@babel/preset-react@^7.16.0": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.24.1.tgz#2450c2ac5cc498ef6101a6ca5474de251e33aa95" + integrity sha512-eFa8up2/8cZXLIpkafhaADTXSnl7IsUFCYenRWrARBz0/qZwcT0RBXpys0LJU4+WfPoF2ZG6ew6s2V6izMCwRA== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-validator-option" "^7.16.7" - "@babel/plugin-transform-react-display-name" "^7.16.7" - "@babel/plugin-transform-react-jsx" "^7.16.7" - "@babel/plugin-transform-react-jsx-development" "^7.16.7" - "@babel/plugin-transform-react-pure-annotations" "^7.16.7" + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-validator-option" "^7.23.5" + "@babel/plugin-transform-react-display-name" "^7.24.1" + "@babel/plugin-transform-react-jsx" "^7.23.4" + "@babel/plugin-transform-react-jsx-development" "^7.22.5" + "@babel/plugin-transform-react-pure-annotations" "^7.24.1" "@babel/preset-typescript@^7.16.0": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.16.7.tgz#ab114d68bb2020afc069cd51b37ff98a046a70b9" - integrity sha512-WbVEmgXdIyvzB77AQjGBEyYPZx+8tTsO50XtfozQrkW8QB2rLJpH2lgx0TRw5EJrBxOZQ+wCcyPVQvS8tjEHpQ== + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.24.1.tgz#89bdf13a3149a17b3b2a2c9c62547f06db8845ec" + integrity sha512-1DBaMmRDpuYQBPWD8Pf/WEwCrtgRHxsZnP4mIy9G/X+hFfbI47Q2G4t1Paakld84+qsk2fSsUPMKg71jkoOOaQ== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-validator-option" "^7.16.7" - "@babel/plugin-transform-typescript" "^7.16.7" + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-validator-option" "^7.23.5" + "@babel/plugin-syntax-jsx" "^7.24.1" + "@babel/plugin-transform-modules-commonjs" "^7.24.1" + "@babel/plugin-transform-typescript" "^7.24.1" + +"@babel/regjsgen@^0.8.0": + version "0.8.0" + resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" + integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== "@babel/runtime-corejs3@^7.10.2": - version "7.16.8" - resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.16.8.tgz#ea533d96eda6fdc76b1812248e9fbd0c11d4a1a7" - integrity sha512-3fKhuICS1lMz0plI5ktOE/yEtBRMVxplzRkdn6mJQ197XiY0JnrzYV0+Mxozq3JZ8SBV9Ecurmw1XsGbwOf+Sg== - dependencies: - core-js-pure "^3.20.2" - regenerator-runtime "^0.13.4" - -"@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.13.8", "@babel/runtime@^7.14.0", "@babel/runtime@^7.16.3", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.16.7.tgz#03ff99f64106588c9c403c6ecb8c3bafbbdff1fa" - integrity sha512-9E9FJowqAsytyOY6LG+1KuueckRL+aQW+mKvXRXnuFGyRAyepJPmEo9vgMfXUA6O9u3IeEdv9MAkppFcaQwogQ== - dependencies: - regenerator-runtime "^0.13.4" - -"@babel/template@^7.10.4", "@babel/template@^7.16.7", "@babel/template@^7.3.3": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.7.tgz#8d126c8701fde4d66b264b3eba3d96f07666d155" - integrity sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w== - dependencies: - "@babel/code-frame" "^7.16.7" - "@babel/parser" "^7.16.7" - "@babel/types" "^7.16.7" - -"@babel/traverse@^7.1.0", "@babel/traverse@^7.12.1", "@babel/traverse@^7.13.0", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.4.5", "@babel/traverse@^7.7.0": - version "7.16.8" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.16.8.tgz#bab2f2b09a5fe8a8d9cad22cbfe3ba1d126fef9c" - integrity sha512-xe+H7JlvKsDQwXRsBhSnq1/+9c+LlQcCK3Tn/l5sbx02HYns/cn7ibp9+RV1sIUqu7hKg91NWsgHurO9dowITQ== - dependencies: - "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.16.8" - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-function-name" "^7.16.7" - "@babel/helper-hoist-variables" "^7.16.7" - "@babel/helper-split-export-declaration" "^7.16.7" - "@babel/parser" "^7.16.8" - "@babel/types" "^7.16.8" - debug "^4.1.0" + version "7.24.5" + resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.24.5.tgz#d2a5f46a088caf8f3899ad095054f83b0a686194" + integrity sha512-GWO0mgzNMLWaSYM4z4NVIuY0Cd1fl8cPnuetuddu5w/qGuvt5Y7oUi/kvvQGK9xgOkFJDQX2heIvTRn/OQ1XTg== + dependencies: + core-js-pure "^3.30.2" + regenerator-runtime "^0.14.0" + +"@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.14.5", "@babel/runtime@^7.16.3", "@babel/runtime@^7.17.2", "@babel/runtime@^7.19.0", "@babel/runtime@^7.21.0", "@babel/runtime@^7.22.5", "@babel/runtime@^7.23.2", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": + version "7.24.5" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.24.5.tgz#230946857c053a36ccc66e1dd03b17dd0c4ed02c" + integrity sha512-Nms86NXrsaeU9vbBJKni6gXiEXZ4CVpYVzEjDH9Sb8vmZ3UljyA1GSOJl/6LGPO8EHLuSF9H+IxNXHPX8QHJ4g== + dependencies: + regenerator-runtime "^0.14.0" + +"@babel/template@^7.10.4", "@babel/template@^7.22.15", "@babel/template@^7.24.0", "@babel/template@^7.3.3": + version "7.24.0" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.24.0.tgz#c6a524aa93a4a05d66aaf31654258fae69d87d50" + integrity sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA== + dependencies: + "@babel/code-frame" "^7.23.5" + "@babel/parser" "^7.24.0" + "@babel/types" "^7.24.0" + +"@babel/traverse@^7.12.1", "@babel/traverse@^7.24.5", "@babel/traverse@^7.7.2": + version "7.24.5" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.24.5.tgz#972aa0bc45f16983bf64aa1f877b2dd0eea7e6f8" + integrity sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA== + dependencies: + "@babel/code-frame" "^7.24.2" + "@babel/generator" "^7.24.5" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-hoist-variables" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.24.5" + "@babel/parser" "^7.24.5" + "@babel/types" "^7.24.5" + debug "^4.3.1" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.12.1", "@babel/types@^7.12.6", "@babel/types@^7.16.0", "@babel/types@^7.16.7", "@babel/types@^7.16.8", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4", "@babel/types@^7.7.0": - version "7.16.8" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.16.8.tgz#0ba5da91dd71e0a4e7781a30f22770831062e3c1" - integrity sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg== +"@babel/types@^7.0.0", "@babel/types@^7.12.1", "@babel/types@^7.12.6", "@babel/types@^7.20.7", "@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.4", "@babel/types@^7.24.0", "@babel/types@^7.24.5", "@babel/types@^7.3.3", "@babel/types@^7.4.4": + version "7.24.5" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.24.5.tgz#7661930afc638a5383eb0c4aee59b74f38db84d7" + integrity sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ== dependencies: - "@babel/helper-validator-identifier" "^7.16.7" + "@babel/helper-string-parser" "^7.24.1" + "@babel/helper-validator-identifier" "^7.24.5" to-fast-properties "^2.0.0" "@bcoe/v8-coverage@^0.2.3": @@ -1168,89 +1364,211 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@cnakazawa/watch@^1.0.3": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.4.tgz#f864ae85004d0fcab6f50be9141c4da368d1656a" - integrity sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ== +"@coinbase/wallet-sdk@3.9.1": + version "3.9.1" + resolved "https://registry.yarnpkg.com/@coinbase/wallet-sdk/-/wallet-sdk-3.9.1.tgz#503a14671bb392d653623ef2340934e213ac971f" + integrity sha512-cGUE8wm1/cMI8irRMVOqbFWYcnNugqCtuy2lnnHfgloBg+GRLs9RsrkOUDMdv/StfUeeKhCDyYudsXXvcL1xIA== dependencies: - exec-sh "^0.3.2" - minimist "^1.2.0" + bn.js "^5.2.1" + buffer "^6.0.3" + clsx "^1.2.1" + eth-block-tracker "^7.1.0" + eth-json-rpc-filters "^6.0.0" + eventemitter3 "^5.0.1" + keccak "^3.0.3" + preact "^10.16.0" + sha.js "^2.4.11" + +"@csstools/normalize.css@*": + version "12.1.1" + resolved "https://registry.yarnpkg.com/@csstools/normalize.css/-/normalize.css-12.1.1.tgz#f0ad221b7280f3fc814689786fd9ee092776ef8f" + integrity sha512-YAYeJ+Xqh7fUou1d1j9XHl44BmsuThiTr4iNrgCQ3J27IbhXsxXDGZ1cXv8Qvs99d4rBbLiSKy3+WZiet32PcQ== + +"@csstools/postcss-cascade-layers@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-1.1.1.tgz#8a997edf97d34071dd2e37ea6022447dd9e795ad" + integrity sha512-+KdYrpKC5TgomQr2DlZF4lDEpHcoxnj5IGddYYfBWJAKfj1JtuHUIqMa+E1pJJ+z3kvDViWMqyqPlG4Ja7amQA== + dependencies: + "@csstools/selector-specificity" "^2.0.2" + postcss-selector-parser "^6.0.10" -"@csstools/convert-colors@^1.4.0": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@csstools/convert-colors/-/convert-colors-1.4.0.tgz#ad495dc41b12e75d588c6db8b9834f08fa131eb7" - integrity sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw== +"@csstools/postcss-color-function@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-color-function/-/postcss-color-function-1.1.1.tgz#2bd36ab34f82d0497cfacdc9b18d34b5e6f64b6b" + integrity sha512-Bc0f62WmHdtRDjf5f3e2STwRAl89N2CLb+9iAwzrv4L2hncrbDwnQD9PCq0gtAt7pOI2leIV08HIBUd4jxD8cw== + dependencies: + "@csstools/postcss-progressive-custom-properties" "^1.1.0" + postcss-value-parser "^4.2.0" -"@csstools/normalize.css@^10.1.0": - version "10.1.0" - resolved "https://registry.yarnpkg.com/@csstools/normalize.css/-/normalize.css-10.1.0.tgz#f0950bba18819512d42f7197e56c518aa491cf18" - integrity sha512-ij4wRiunFfaJxjB0BdrYHIH8FxBJpOwNPhhAcunlmPdXudL1WQV1qoP9un6JsEBAgQH+7UXyyjh0g7jTxXK6tg== +"@csstools/postcss-font-format-keywords@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-1.0.1.tgz#677b34e9e88ae997a67283311657973150e8b16a" + integrity sha512-ZgrlzuUAjXIOc2JueK0X5sZDjCtgimVp/O5CEqTcs5ShWBa6smhWYbS0x5cVc/+rycTDbjjzoP0KTDnUneZGOg== + dependencies: + postcss-value-parser "^4.2.0" -"@davatar/react@^1.8.1": - version "1.8.1" - resolved "https://registry.yarnpkg.com/@davatar/react/-/react-1.8.1.tgz#2fe3e619422a46092c57025328be56b1e911550e" - integrity sha512-vq9zNwAfnZCoY8W2eAbjWP1GPQutUfdxG+lKG2fAPqNFP2qrzDhIziKyCKtt7jwaXp79P1Cy1Gjzlvs1XkzwOQ== +"@csstools/postcss-hwb-function@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.2.tgz#ab54a9fce0ac102c754854769962f2422ae8aa8b" + integrity sha512-YHdEru4o3Rsbjmu6vHy4UKOXZD+Rn2zmkAmLRfPet6+Jz4Ojw8cbWxe1n42VaXQhD3CQUXXTooIy8OkVbUcL+w== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-ic-unit@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-ic-unit/-/postcss-ic-unit-1.0.1.tgz#28237d812a124d1a16a5acc5c3832b040b303e58" + integrity sha512-Ot1rcwRAaRHNKC9tAqoqNZhjdYBzKk1POgWfhN4uCOE47ebGcLRqXjKkApVDpjifL6u2/55ekkpnFcp+s/OZUw== + dependencies: + "@csstools/postcss-progressive-custom-properties" "^1.1.0" + postcss-value-parser "^4.2.0" + +"@csstools/postcss-is-pseudo-class@^2.0.7": + version "2.0.7" + resolved "https://registry.yarnpkg.com/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.7.tgz#846ae6c0d5a1eaa878fce352c544f9c295509cd1" + integrity sha512-7JPeVVZHd+jxYdULl87lvjgvWldYu+Bc62s9vD/ED6/QTGjy0jy0US/f6BG53sVMTBJ1lzKZFpYmofBN9eaRiA== dependencies: - "@ethersproject/contracts" "^5.4.1" - "@ethersproject/providers" "^5.4.5" + "@csstools/selector-specificity" "^2.0.0" + postcss-selector-parser "^6.0.10" + +"@csstools/postcss-nested-calc@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@csstools/postcss-nested-calc/-/postcss-nested-calc-1.0.0.tgz#d7e9d1d0d3d15cf5ac891b16028af2a1044d0c26" + integrity sha512-JCsQsw1wjYwv1bJmgjKSoZNvf7R6+wuHDAbi5f/7MbFhl2d/+v+TvBTU4BJH3G1X1H87dHl0mh6TfYogbT/dJQ== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-normalize-display-values@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-1.0.1.tgz#15da54a36e867b3ac5163ee12c1d7f82d4d612c3" + integrity sha512-jcOanIbv55OFKQ3sYeFD/T0Ti7AMXc9nM1hZWu8m/2722gOTxFg7xYu4RDLJLeZmPUVQlGzo4jhzvTUq3x4ZUw== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-oklab-function@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.1.1.tgz#88cee0fbc8d6df27079ebd2fa016ee261eecf844" + integrity sha512-nJpJgsdA3dA9y5pgyb/UfEzE7W5Ka7u0CX0/HIMVBNWzWemdcTH3XwANECU6anWv/ao4vVNLTMxhiPNZsTK6iA== + dependencies: + "@csstools/postcss-progressive-custom-properties" "^1.1.0" + postcss-value-parser "^4.2.0" + +"@csstools/postcss-progressive-custom-properties@^1.1.0", "@csstools/postcss-progressive-custom-properties@^1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.3.0.tgz#542292558384361776b45c85226b9a3a34f276fa" + integrity sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-stepped-value-functions@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-1.0.1.tgz#f8772c3681cc2befed695e2b0b1d68e22f08c4f4" + integrity sha512-dz0LNoo3ijpTOQqEJLY8nyaapl6umbmDcgj4AD0lgVQ572b2eqA1iGZYTTWhrcrHztWDDRAX2DGYyw2VBjvCvQ== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-text-decoration-shorthand@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-1.0.0.tgz#ea96cfbc87d921eca914d3ad29340d9bcc4c953f" + integrity sha512-c1XwKJ2eMIWrzQenN0XbcfzckOLLJiczqy+YvfGmzoVXd7pT9FfObiSEfzs84bpE/VqfpEuAZ9tCRbZkZxxbdw== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-trigonometric-functions@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-1.0.2.tgz#94d3e4774c36d35dcdc88ce091336cb770d32756" + integrity sha512-woKaLO///4bb+zZC2s80l+7cm07M7268MsyG3M0ActXXEFi6SuhvriQYcb58iiKGbjwwIU7n45iRLEHypB47Og== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-unset-value@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@csstools/postcss-unset-value/-/postcss-unset-value-1.0.2.tgz#c99bb70e2cdc7312948d1eb41df2412330b81f77" + integrity sha512-c8J4roPBILnelAsdLr4XOAR/GsTm0GJi4XpcfvoWk3U6KiTCqiFYc63KhRMQQX35jYMp4Ao8Ij9+IZRgMfJp1g== + +"@csstools/selector-specificity@^2.0.0", "@csstools/selector-specificity@^2.0.2": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@csstools/selector-specificity/-/selector-specificity-2.2.0.tgz#2cbcf822bf3764c9658c4d2e568bd0c0cb748016" + integrity sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw== + +"@davatar/react@^1.8.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@davatar/react/-/react-1.11.1.tgz#4d260ee3ec178da78002ce070422bcafe7c92288" + integrity sha512-j28OvzkRs/Ce+kVJ+w14HPlV9bTtGE43pr2BZb2plgptoT8LRCziX/abzFDNk9Zib5/Qf3/eWUitI0ksXAl+3w== + dependencies: + "@ethersproject/abstract-signer" "^5" + "@ethersproject/contracts" "^5" + "@ethersproject/logger" "^5" + "@ethersproject/properties" "^5" + "@ethersproject/providers" "^5" "@types/react-blockies" "^1.4.1" bn.js "^5.2.0" color "^3.2.1" mersenne-twister "^1.1.0" react-blockies "^1.4.1" -"@emotion/is-prop-valid@^0.8.8": - version "0.8.8" - resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz#db28b1c4368a259b60a97311d6a952d4fd01ac1a" - integrity sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA== +"@eslint-community/eslint-utils@^4.2.0": + version "4.4.0" + resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" + integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== dependencies: - "@emotion/memoize" "0.7.4" - -"@emotion/memoize@0.7.4": - version "0.7.4" - resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.4.tgz#19bf0f5af19149111c40d98bb0cf82119f5d9eeb" - integrity sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw== - -"@emotion/stylis@^0.8.4": - version "0.8.5" - resolved "https://registry.yarnpkg.com/@emotion/stylis/-/stylis-0.8.5.tgz#deacb389bd6ee77d1e7fcaccce9e16c5c7e78e04" - integrity sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ== + eslint-visitor-keys "^3.3.0" -"@emotion/unitless@^0.7.4": - version "0.7.5" - resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.7.5.tgz#77211291c1900a700b8a78cfafda3160d76949ed" - integrity sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg== +"@eslint-community/regexpp@^4.4.0", "@eslint-community/regexpp@^4.6.1": + version "4.10.0" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63" + integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== -"@eslint/eslintrc@^0.2.0": - version "0.2.2" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.2.2.tgz#d01fc791e2fc33e88a29d6f3dc7e93d0cd784b76" - integrity sha512-EfB5OHNYp1F4px/LI/FEnGylop7nOqkQ1LRzCM0KccA2U8tvV8w01KBv37LbO7nW4H+YhKyo2LcJhRwjjV17QQ== +"@eslint/eslintrc@^2.1.4": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad" + integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== dependencies: ajv "^6.12.4" - debug "^4.1.1" - espree "^7.3.0" - globals "^12.1.0" - ignore "^4.0.6" + debug "^4.3.2" + espree "^9.6.0" + globals "^13.19.0" + ignore "^5.2.0" import-fresh "^3.2.1" - js-yaml "^3.13.1" - lodash "^4.17.19" - minimatch "^3.0.4" + js-yaml "^4.1.0" + minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/eslintrc@^0.4.3": - version "0.4.3" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c" - integrity sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw== +"@eslint/js@8.57.0": + version "8.57.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.57.0.tgz#a5417ae8427873f1dd08b70b3574b453e67b5f7f" + integrity sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g== + +"@ethereumjs/common@^3.2.0": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@ethereumjs/common/-/common-3.2.0.tgz#b71df25845caf5456449163012074a55f048e0a0" + integrity sha512-pksvzI0VyLgmuEF2FA/JR/4/y6hcPq8OUail3/AvycBaW1d5VSauOZzqGvJ3RTmR4MU35lWE8KseKOsEhrFRBA== dependencies: - ajv "^6.12.4" - debug "^4.1.1" - espree "^7.3.0" - globals "^13.9.0" - ignore "^4.0.6" - import-fresh "^3.2.1" - js-yaml "^3.13.1" - minimatch "^3.0.4" - strip-json-comments "^3.1.1" + "@ethereumjs/util" "^8.1.0" + crc-32 "^1.2.0" + +"@ethereumjs/rlp@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@ethereumjs/rlp/-/rlp-4.0.1.tgz#626fabfd9081baab3d0a3074b0c7ecaf674aaa41" + integrity sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw== + +"@ethereumjs/tx@^4.1.2", "@ethereumjs/tx@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@ethereumjs/tx/-/tx-4.2.0.tgz#5988ae15daf5a3b3c815493bc6b495e76009e853" + integrity sha512-1nc6VO4jtFd172BbSnTnDQVr9IYBFl1y4xPzZdtkrkKIncBCkdbgfdRV+MiTkJYAtTxvV12GRZLqBFT1PNK6Yw== + dependencies: + "@ethereumjs/common" "^3.2.0" + "@ethereumjs/rlp" "^4.0.1" + "@ethereumjs/util" "^8.1.0" + ethereum-cryptography "^2.0.0" + +"@ethereumjs/util@^8.1.0": + version "8.1.0" + resolved "https://registry.yarnpkg.com/@ethereumjs/util/-/util-8.1.0.tgz#299df97fb6b034e0577ce9f94c7d9d1004409ed4" + integrity sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA== + dependencies: + "@ethereumjs/rlp" "^4.0.1" + ethereum-cryptography "^2.0.0" + micro-ftch "^0.3.1" "@ethersproject/abi@5.0.0": version "5.0.0" @@ -1267,406 +1585,388 @@ "@ethersproject/properties" "^5.0.0" "@ethersproject/strings" "^5.0.0" -"@ethersproject/abi@5.5.0", "@ethersproject/abi@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.5.0.tgz#fb52820e22e50b854ff15ce1647cc508d6660613" - integrity sha512-loW7I4AohP5KycATvc0MgujU6JyCHPqHdeoo9z3Nr9xEiNioxa65ccdm1+fsoJhkuhdRtfcL8cfyGamz2AxZ5w== - dependencies: - "@ethersproject/address" "^5.5.0" - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/constants" "^5.5.0" - "@ethersproject/hash" "^5.5.0" - "@ethersproject/keccak256" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - "@ethersproject/strings" "^5.5.0" - -"@ethersproject/abstract-provider@5.5.1", "@ethersproject/abstract-provider@^5.5.0": - version "5.5.1" - resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.5.1.tgz#2f1f6e8a3ab7d378d8ad0b5718460f85649710c5" - integrity sha512-m+MA/ful6eKbxpr99xUYeRvLkfnlqzrF8SZ46d/xFB1A7ZVknYc/sXJG0RcufF52Qn2jeFj1hhcoQ7IXjNKUqg== - dependencies: - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/networks" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - "@ethersproject/transactions" "^5.5.0" - "@ethersproject/web" "^5.5.0" - -"@ethersproject/abstract-signer@5.5.0", "@ethersproject/abstract-signer@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.5.0.tgz#590ff6693370c60ae376bf1c7ada59eb2a8dd08d" - integrity sha512-lj//7r250MXVLKI7sVarXAbZXbv9P50lgmJQGr2/is82EwEb8r7HrxsmMqAjTsztMYy7ohrIhGMIml+Gx4D3mA== - dependencies: - "@ethersproject/abstract-provider" "^5.5.0" - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - -"@ethersproject/address@5.5.0", "@ethersproject/address@^5.0.0", "@ethersproject/address@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.5.0.tgz#bcc6f576a553f21f3dd7ba17248f81b473c9c78f" - integrity sha512-l4Nj0eWlTUh6ro5IbPTgbpT4wRbdH5l8CQf7icF7sb/SI3Nhd9Y9HzhonTSTi6CefI0necIw7LJqQPopPLZyWw== - dependencies: - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/keccak256" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/rlp" "^5.5.0" - -"@ethersproject/base64@5.5.0", "@ethersproject/base64@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.5.0.tgz#881e8544e47ed976930836986e5eb8fab259c090" - integrity sha512-tdayUKhU1ljrlHzEWbStXazDpsx4eg1dBXUSI6+mHlYklOXoXF6lZvw8tnD6oVaWfnMxAgRSKROg3cVKtCcppA== - dependencies: - "@ethersproject/bytes" "^5.5.0" - -"@ethersproject/basex@5.5.0", "@ethersproject/basex@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.5.0.tgz#e40a53ae6d6b09ab4d977bd037010d4bed21b4d3" - integrity sha512-ZIodwhHpVJ0Y3hUCfUucmxKsWQA5TMnavp5j/UOuDdzZWzJlRmuOjcTMIGgHCYuZmHt36BfiSyQPSRskPxbfaQ== - dependencies: - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - -"@ethersproject/bignumber@5.5.0", "@ethersproject/bignumber@^5.0.0", "@ethersproject/bignumber@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.5.0.tgz#875b143f04a216f4f8b96245bde942d42d279527" - integrity sha512-6Xytlwvy6Rn3U3gKEc1vP7nR92frHkv6wtVr95LFR3jREXiCPzdWxKQ1cx4JGQBXxcguAwjA8murlYN2TSiEbg== - dependencies: - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - bn.js "^4.11.9" - -"@ethersproject/bytes@5.5.0", "@ethersproject/bytes@^5.0.0", "@ethersproject/bytes@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.5.0.tgz#cb11c526de657e7b45d2e0f0246fb3b9d29a601c" - integrity sha512-ABvc7BHWhZU9PNM/tANm/Qx4ostPGadAuQzWTr3doklZOhDlmcBqclrQe/ZXUIj3K8wC28oYeuRa+A37tX9kog== - dependencies: - "@ethersproject/logger" "^5.5.0" - -"@ethersproject/constants@5.5.0", "@ethersproject/constants@^5.0.0", "@ethersproject/constants@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.5.0.tgz#d2a2cd7d94bd1d58377d1d66c4f53c9be4d0a45e" - integrity sha512-2MsRRVChkvMWR+GyMGY4N1sAX9Mt3J9KykCsgUFd/1mwS0UH1qw+Bv9k1UJb3X3YJYFco9H20pjSlOIfCG5HYQ== - dependencies: - "@ethersproject/bignumber" "^5.5.0" - -"@ethersproject/contracts@5.5.0", "@ethersproject/contracts@^5.4.1": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.5.0.tgz#b735260d4bd61283a670a82d5275e2a38892c197" - integrity sha512-2viY7NzyvJkh+Ug17v7g3/IJC8HqZBDcOjYARZLdzRxrfGlRgmYgl6xPRKVbEzy1dWKw/iv7chDcS83pg6cLxg== - dependencies: - "@ethersproject/abi" "^5.5.0" - "@ethersproject/abstract-provider" "^5.5.0" - "@ethersproject/abstract-signer" "^5.5.0" - "@ethersproject/address" "^5.5.0" - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/constants" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - "@ethersproject/transactions" "^5.5.0" - -"@ethersproject/hash@5.5.0", "@ethersproject/hash@^5.0.0", "@ethersproject/hash@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.5.0.tgz#7cee76d08f88d1873574c849e0207dcb32380cc9" - integrity sha512-dnGVpK1WtBjmnp3mUT0PlU2MpapnwWI0PibldQEq1408tQBAbZpPidkWoVVuNMOl/lISO3+4hXZWCL3YV7qzfg== - dependencies: - "@ethersproject/abstract-signer" "^5.5.0" - "@ethersproject/address" "^5.5.0" - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/keccak256" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - "@ethersproject/strings" "^5.5.0" - -"@ethersproject/hdnode@5.5.0", "@ethersproject/hdnode@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/hdnode/-/hdnode-5.5.0.tgz#4a04e28f41c546f7c978528ea1575206a200ddf6" - integrity sha512-mcSOo9zeUg1L0CoJH7zmxwUG5ggQHU1UrRf8jyTYy6HxdZV+r0PBoL1bxr+JHIPXRzS6u/UW4mEn43y0tmyF8Q== - dependencies: - "@ethersproject/abstract-signer" "^5.5.0" - "@ethersproject/basex" "^5.5.0" - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/pbkdf2" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - "@ethersproject/sha2" "^5.5.0" - "@ethersproject/signing-key" "^5.5.0" - "@ethersproject/strings" "^5.5.0" - "@ethersproject/transactions" "^5.5.0" - "@ethersproject/wordlists" "^5.5.0" - -"@ethersproject/json-wallets@5.5.0", "@ethersproject/json-wallets@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/json-wallets/-/json-wallets-5.5.0.tgz#dd522d4297e15bccc8e1427d247ec8376b60e325" - integrity sha512-9lA21XQnCdcS72xlBn1jfQdj2A1VUxZzOzi9UkNdnokNKke/9Ya2xA9aIK1SC3PQyBDLt4C+dfps7ULpkvKikQ== - dependencies: - "@ethersproject/abstract-signer" "^5.5.0" - "@ethersproject/address" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/hdnode" "^5.5.0" - "@ethersproject/keccak256" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/pbkdf2" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - "@ethersproject/random" "^5.5.0" - "@ethersproject/strings" "^5.5.0" - "@ethersproject/transactions" "^5.5.0" +"@ethersproject/abi@5.7.0", "@ethersproject/abi@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.7.0.tgz#b3f3e045bbbeed1af3947335c247ad625a44e449" + integrity sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA== + dependencies: + "@ethersproject/address" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/hash" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + +"@ethersproject/abstract-provider@5.7.0", "@ethersproject/abstract-provider@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz#b0a8550f88b6bf9d51f90e4795d48294630cb9ef" + integrity sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw== + dependencies: + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/networks" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + "@ethersproject/web" "^5.7.0" + +"@ethersproject/abstract-signer@5.7.0", "@ethersproject/abstract-signer@^5", "@ethersproject/abstract-signer@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz#13f4f32117868452191a4649723cb086d2b596b2" + integrity sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ== + dependencies: + "@ethersproject/abstract-provider" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + +"@ethersproject/address@5.7.0", "@ethersproject/address@^5.0.0", "@ethersproject/address@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.7.0.tgz#19b56c4d74a3b0a46bfdbb6cfcc0a153fc697f37" + integrity sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA== + dependencies: + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/rlp" "^5.7.0" + +"@ethersproject/base64@5.7.0", "@ethersproject/base64@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.7.0.tgz#ac4ee92aa36c1628173e221d0d01f53692059e1c" + integrity sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ== + dependencies: + "@ethersproject/bytes" "^5.7.0" + +"@ethersproject/basex@5.7.0", "@ethersproject/basex@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.7.0.tgz#97034dc7e8938a8ca943ab20f8a5e492ece4020b" + integrity sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + +"@ethersproject/bignumber@5.7.0", "@ethersproject/bignumber@^5.0.0", "@ethersproject/bignumber@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.7.0.tgz#e2f03837f268ba655ffba03a57853e18a18dc9c2" + integrity sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + bn.js "^5.2.1" + +"@ethersproject/bytes@5.7.0", "@ethersproject/bytes@^5.0.0", "@ethersproject/bytes@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.7.0.tgz#a00f6ea8d7e7534d6d87f47188af1148d71f155d" + integrity sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A== + dependencies: + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/constants@5.7.0", "@ethersproject/constants@^5.0.0", "@ethersproject/constants@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.7.0.tgz#df80a9705a7e08984161f09014ea012d1c75295e" + integrity sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA== + dependencies: + "@ethersproject/bignumber" "^5.7.0" + +"@ethersproject/contracts@5.7.0", "@ethersproject/contracts@^5": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.7.0.tgz#c305e775abd07e48aa590e1a877ed5c316f8bd1e" + integrity sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg== + dependencies: + "@ethersproject/abi" "^5.7.0" + "@ethersproject/abstract-provider" "^5.7.0" + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/address" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + +"@ethersproject/hash@5.7.0", "@ethersproject/hash@^5.0.0", "@ethersproject/hash@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.7.0.tgz#eb7aca84a588508369562e16e514b539ba5240a7" + integrity sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g== + dependencies: + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/address" "^5.7.0" + "@ethersproject/base64" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + +"@ethersproject/hdnode@5.7.0", "@ethersproject/hdnode@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/hdnode/-/hdnode-5.7.0.tgz#e627ddc6b466bc77aebf1a6b9e47405ca5aef9cf" + integrity sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg== + dependencies: + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/basex" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/pbkdf2" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/sha2" "^5.7.0" + "@ethersproject/signing-key" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + "@ethersproject/wordlists" "^5.7.0" + +"@ethersproject/json-wallets@5.7.0", "@ethersproject/json-wallets@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz#5e3355287b548c32b368d91014919ebebddd5360" + integrity sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g== + dependencies: + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/address" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/hdnode" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/pbkdf2" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/random" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" aes-js "3.0.0" scrypt-js "3.0.1" -"@ethersproject/keccak256@5.5.0", "@ethersproject/keccak256@^5.0.0", "@ethersproject/keccak256@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.5.0.tgz#e4b1f9d7701da87c564ffe336f86dcee82983492" - integrity sha512-5VoFCTjo2rYbBe1l2f4mccaRFN/4VQEYFwwn04aJV2h7qf4ZvI2wFxUE1XOX+snbwCLRzIeikOqtAoPwMza9kg== +"@ethersproject/keccak256@5.7.0", "@ethersproject/keccak256@^5.0.0", "@ethersproject/keccak256@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.7.0.tgz#3186350c6e1cd6aba7940384ec7d6d9db01f335a" + integrity sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg== dependencies: - "@ethersproject/bytes" "^5.5.0" + "@ethersproject/bytes" "^5.7.0" js-sha3 "0.8.0" -"@ethersproject/logger@5.5.0", "@ethersproject/logger@^5.0.0", "@ethersproject/logger@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.5.0.tgz#0c2caebeff98e10aefa5aef27d7441c7fd18cf5d" - integrity sha512-rIY/6WPm7T8n3qS2vuHTUBPdXHl+rGxWxW5okDfo9J4Z0+gRRZT0msvUdIJkE4/HS29GUMziwGaaKO2bWONBrg== - -"@ethersproject/networks@5.5.2", "@ethersproject/networks@^5.5.0": - version "5.5.2" - resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.5.2.tgz#784c8b1283cd2a931114ab428dae1bd00c07630b" - integrity sha512-NEqPxbGBfy6O3x4ZTISb90SjEDkWYDUbEeIFhJly0F7sZjoQMnj5KYzMSkMkLKZ+1fGpx00EDpHQCy6PrDupkQ== - dependencies: - "@ethersproject/logger" "^5.5.0" - -"@ethersproject/pbkdf2@5.5.0", "@ethersproject/pbkdf2@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.5.0.tgz#e25032cdf02f31505d47afbf9c3e000d95c4a050" - integrity sha512-SaDvQFvXPnz1QGpzr6/HToLifftSXGoXrbpZ6BvoZhmx4bNLHrxDe8MZisuecyOziP1aVEwzC2Hasj+86TgWVg== - dependencies: - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/sha2" "^5.5.0" +"@ethersproject/logger@5.7.0", "@ethersproject/logger@^5", "@ethersproject/logger@^5.0.0", "@ethersproject/logger@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.7.0.tgz#6ce9ae168e74fecf287be17062b590852c311892" + integrity sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig== -"@ethersproject/properties@5.5.0", "@ethersproject/properties@^5.0.0", "@ethersproject/properties@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.5.0.tgz#61f00f2bb83376d2071baab02245f92070c59995" - integrity sha512-l3zRQg3JkD8EL3CPjNK5g7kMx4qSwiR60/uk5IVjd3oq1MZR5qUg40CNOoEJoX5wc3DyY5bt9EbMk86C7x0DNA== - dependencies: - "@ethersproject/logger" "^5.5.0" - -"@ethersproject/providers@5.5.2", "@ethersproject/providers@^5.4.5": - version "5.5.2" - resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.5.2.tgz#131ccf52dc17afd0ab69ed444b8c0e3a27297d99" - integrity sha512-hkbx7x/MKcRjyrO4StKXCzCpWer6s97xnm34xkfPiarhtEUVAN4TBBpamM+z66WcTt7H5B53YwbRj1n7i8pZoQ== - dependencies: - "@ethersproject/abstract-provider" "^5.5.0" - "@ethersproject/abstract-signer" "^5.5.0" - "@ethersproject/address" "^5.5.0" - "@ethersproject/basex" "^5.5.0" - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/constants" "^5.5.0" - "@ethersproject/hash" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/networks" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - "@ethersproject/random" "^5.5.0" - "@ethersproject/rlp" "^5.5.0" - "@ethersproject/sha2" "^5.5.0" - "@ethersproject/strings" "^5.5.0" - "@ethersproject/transactions" "^5.5.0" - "@ethersproject/web" "^5.5.0" +"@ethersproject/networks@5.7.1", "@ethersproject/networks@^5.7.0": + version "5.7.1" + resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.7.1.tgz#118e1a981d757d45ccea6bb58d9fd3d9db14ead6" + integrity sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ== + dependencies: + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/pbkdf2@5.7.0", "@ethersproject/pbkdf2@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz#d2267d0a1f6e123f3771007338c47cccd83d3102" + integrity sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/sha2" "^5.7.0" + +"@ethersproject/properties@5.7.0", "@ethersproject/properties@^5", "@ethersproject/properties@^5.0.0", "@ethersproject/properties@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.7.0.tgz#a6e12cb0439b878aaf470f1902a176033067ed30" + integrity sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw== + dependencies: + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/providers@5.7.2", "@ethersproject/providers@^5": + version "5.7.2" + resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.7.2.tgz#f8b1a4f275d7ce58cf0a2eec222269a08beb18cb" + integrity sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg== + dependencies: + "@ethersproject/abstract-provider" "^5.7.0" + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/address" "^5.7.0" + "@ethersproject/base64" "^5.7.0" + "@ethersproject/basex" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/hash" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/networks" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/random" "^5.7.0" + "@ethersproject/rlp" "^5.7.0" + "@ethersproject/sha2" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + "@ethersproject/web" "^5.7.0" bech32 "1.1.4" ws "7.4.6" -"@ethersproject/random@5.5.1", "@ethersproject/random@^5.5.0": - version "5.5.1" - resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.5.1.tgz#7cdf38ea93dc0b1ed1d8e480ccdaf3535c555415" - integrity sha512-YaU2dQ7DuhL5Au7KbcQLHxcRHfgyNgvFV4sQOo0HrtW3Zkrc9ctWNz8wXQ4uCSfSDsqX2vcjhroxU5RQRV0nqA== +"@ethersproject/random@5.7.0", "@ethersproject/random@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.7.0.tgz#af19dcbc2484aae078bb03656ec05df66253280c" + integrity sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ== dependencies: - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/logger" "^5.5.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" -"@ethersproject/rlp@5.5.0", "@ethersproject/rlp@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.5.0.tgz#530f4f608f9ca9d4f89c24ab95db58ab56ab99a0" - integrity sha512-hLv8XaQ8PTI9g2RHoQGf/WSxBfTB/NudRacbzdxmst5VHAqd1sMibWG7SENzT5Dj3yZ3kJYx+WiRYEcQTAkcYA== +"@ethersproject/rlp@5.7.0", "@ethersproject/rlp@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.7.0.tgz#de39e4d5918b9d74d46de93af80b7685a9c21304" + integrity sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w== dependencies: - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/logger" "^5.5.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" -"@ethersproject/sha2@5.5.0", "@ethersproject/sha2@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.5.0.tgz#a40a054c61f98fd9eee99af2c3cc6ff57ec24db7" - integrity sha512-B5UBoglbCiHamRVPLA110J+2uqsifpZaTmid2/7W5rbtYVz6gus6/hSDieIU/6gaKIDcOj12WnOdiymEUHIAOA== +"@ethersproject/sha2@5.7.0", "@ethersproject/sha2@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.7.0.tgz#9a5f7a7824ef784f7f7680984e593a800480c9fb" + integrity sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw== dependencies: - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/logger" "^5.5.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" hash.js "1.1.7" -"@ethersproject/signing-key@5.5.0", "@ethersproject/signing-key@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.5.0.tgz#2aa37169ce7e01e3e80f2c14325f624c29cedbe0" - integrity sha512-5VmseH7qjtNmDdZBswavhotYbWB0bOwKIlOTSlX14rKn5c11QmJwGt4GHeo7NrL/Ycl7uo9AHvEqs5xZgFBTng== +"@ethersproject/signing-key@5.7.0", "@ethersproject/signing-key@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.7.0.tgz#06b2df39411b00bc57c7c09b01d1e41cf1b16ab3" + integrity sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q== dependencies: - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - bn.js "^4.11.9" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + bn.js "^5.2.1" elliptic "6.5.4" hash.js "1.1.7" -"@ethersproject/solidity@5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/solidity/-/solidity-5.5.0.tgz#2662eb3e5da471b85a20531e420054278362f93f" - integrity sha512-9NgZs9LhGMj6aCtHXhtmFQ4AN4sth5HuFXVvAQtzmm0jpSCNOTGtrHZJAeYTh7MBjRR8brylWZxBZR9zDStXbw== - dependencies: - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/keccak256" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/sha2" "^5.5.0" - "@ethersproject/strings" "^5.5.0" - -"@ethersproject/strings@5.5.0", "@ethersproject/strings@^5.0.0", "@ethersproject/strings@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.5.0.tgz#e6784d00ec6c57710755699003bc747e98c5d549" - integrity sha512-9fy3TtF5LrX/wTrBaT8FGE6TDJyVjOvXynXJz5MT5azq+E6D92zuKNx7i29sWW2FjVOaWjAsiZ1ZWznuduTIIQ== - dependencies: - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/constants" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - -"@ethersproject/transactions@5.5.0", "@ethersproject/transactions@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.5.0.tgz#7e9bf72e97bcdf69db34fe0d59e2f4203c7a2908" - integrity sha512-9RZYSKX26KfzEd/1eqvv8pLauCKzDTub0Ko4LfIgaERvRuwyaNV78mJs7cpIgZaDl6RJui4o49lHwwCM0526zA== - dependencies: - "@ethersproject/address" "^5.5.0" - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/constants" "^5.5.0" - "@ethersproject/keccak256" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - "@ethersproject/rlp" "^5.5.0" - "@ethersproject/signing-key" "^5.5.0" - -"@ethersproject/units@5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/units/-/units-5.5.0.tgz#104d02db5b5dc42cc672cc4587bafb87a95ee45e" - integrity sha512-7+DpjiZk4v6wrikj+TCyWWa9dXLNU73tSTa7n0TSJDxkYbV3Yf1eRh9ToMLlZtuctNYu9RDNNy2USq3AdqSbag== - dependencies: - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/constants" "^5.5.0" - "@ethersproject/logger" "^5.5.0" +"@ethersproject/solidity@5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/solidity/-/solidity-5.7.0.tgz#5e9c911d8a2acce2a5ebb48a5e2e0af20b631cb8" + integrity sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA== + dependencies: + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/sha2" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + +"@ethersproject/strings@5.7.0", "@ethersproject/strings@^5.0.0", "@ethersproject/strings@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.7.0.tgz#54c9d2a7c57ae8f1205c88a9d3a56471e14d5ed2" + integrity sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/transactions@5.7.0", "@ethersproject/transactions@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.7.0.tgz#91318fc24063e057885a6af13fdb703e1f993d3b" + integrity sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ== + dependencies: + "@ethersproject/address" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/rlp" "^5.7.0" + "@ethersproject/signing-key" "^5.7.0" + +"@ethersproject/units@5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/units/-/units-5.7.0.tgz#637b563d7e14f42deeee39245275d477aae1d8b1" + integrity sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg== + dependencies: + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/wallet@5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/wallet/-/wallet-5.7.0.tgz#4e5d0790d96fe21d61d38fb40324e6c7ef350b2d" + integrity sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA== + dependencies: + "@ethersproject/abstract-provider" "^5.7.0" + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/address" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/hash" "^5.7.0" + "@ethersproject/hdnode" "^5.7.0" + "@ethersproject/json-wallets" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/random" "^5.7.0" + "@ethersproject/signing-key" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + "@ethersproject/wordlists" "^5.7.0" + +"@ethersproject/web@5.7.1", "@ethersproject/web@^5.7.0": + version "5.7.1" + resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.7.1.tgz#de1f285b373149bee5928f4eb7bcb87ee5fbb4ae" + integrity sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w== + dependencies: + "@ethersproject/base64" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + +"@ethersproject/wordlists@5.7.0", "@ethersproject/wordlists@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.7.0.tgz#8fb2c07185d68c3e09eb3bfd6e779ba2774627f5" + integrity sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/hash" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + +"@graphql-typed-document-node/core@^3.1.1": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@graphql-typed-document-node/core/-/core-3.2.0.tgz#5f3d96ec6b2354ad6d8a28bf216a1d97b5426861" + integrity sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ== -"@ethersproject/wallet@5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/wallet/-/wallet-5.5.0.tgz#322a10527a440ece593980dca6182f17d54eae75" - integrity sha512-Mlu13hIctSYaZmUOo7r2PhNSd8eaMPVXe1wxrz4w4FCE4tDYBywDH+bAR1Xz2ADyXGwqYMwstzTrtUVIsKDO0Q== - dependencies: - "@ethersproject/abstract-provider" "^5.5.0" - "@ethersproject/abstract-signer" "^5.5.0" - "@ethersproject/address" "^5.5.0" - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/hash" "^5.5.0" - "@ethersproject/hdnode" "^5.5.0" - "@ethersproject/json-wallets" "^5.5.0" - "@ethersproject/keccak256" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - "@ethersproject/random" "^5.5.0" - "@ethersproject/signing-key" "^5.5.0" - "@ethersproject/transactions" "^5.5.0" - "@ethersproject/wordlists" "^5.5.0" - -"@ethersproject/web@5.5.1", "@ethersproject/web@^5.5.0": - version "5.5.1" - resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.5.1.tgz#cfcc4a074a6936c657878ac58917a61341681316" - integrity sha512-olvLvc1CB12sREc1ROPSHTdFCdvMh0J5GSJYiQg2D0hdD4QmJDy8QYDb1CvoqD/bF1c++aeKv2sR5uduuG9dQg== - dependencies: - "@ethersproject/base64" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - "@ethersproject/strings" "^5.5.0" - -"@ethersproject/wordlists@5.5.0", "@ethersproject/wordlists@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.5.0.tgz#aac74963aa43e643638e5172353d931b347d584f" - integrity sha512-bL0UTReWDiaQJJYOC9sh/XcRu/9i2jMrzf8VLRmPKx58ckSlOJiohODkECCO50dtLZHcGU6MLXQ4OOrgBwP77Q== +"@humanwhocodes/config-array@^0.11.14": + version "0.11.14" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.14.tgz#d78e481a039f7566ecc9660b4ea7fe6b1fec442b" + integrity sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg== dependencies: - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/hash" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - "@ethersproject/strings" "^5.5.0" - -"@gar/promisify@^1.0.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.2.tgz#30aa825f11d438671d585bd44e7fd564535fc210" - integrity sha512-82cpyJyKRoQoRi+14ibCeGPu0CwypgtBAdBhq1WfvagpCZNKqwXbKwXllYSMG91DhmG4jt9gN8eP6lGOtozuaw== - -"@graphql-typed-document-node/core@^3.0.0": - version "3.1.1" - resolved "https://registry.yarnpkg.com/@graphql-typed-document-node/core/-/core-3.1.1.tgz#076d78ce99822258cf813ecc1e7fa460fa74d052" - integrity sha512-NQ17ii0rK1b34VZonlmT2QMJFI70m0TRwbknO/ihlbatXyaktDhN/98vBiUU6kNBPljqGqyIrl2T4nY2RpFANg== - -"@hapi/address@2.x.x": - version "2.1.4" - resolved "https://registry.yarnpkg.com/@hapi/address/-/address-2.1.4.tgz#5d67ed43f3fd41a69d4b9ff7b56e7c0d1d0a81e5" - integrity sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ== - -"@hapi/bourne@1.x.x": - version "1.3.2" - resolved "https://registry.yarnpkg.com/@hapi/bourne/-/bourne-1.3.2.tgz#0a7095adea067243ce3283e1b56b8a8f453b242a" - integrity sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA== + "@humanwhocodes/object-schema" "^2.0.2" + debug "^4.3.1" + minimatch "^3.0.5" -"@hapi/hoek@8.x.x", "@hapi/hoek@^8.3.0": - version "8.5.1" - resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-8.5.1.tgz#fde96064ca446dec8c55a8c2f130957b070c6e06" - integrity sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow== +"@humanwhocodes/module-importer@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" + integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== -"@hapi/joi@^15.1.0": - version "15.1.1" - resolved "https://registry.yarnpkg.com/@hapi/joi/-/joi-15.1.1.tgz#c675b8a71296f02833f8d6d243b34c57b8ce19d7" - integrity sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ== - dependencies: - "@hapi/address" "2.x.x" - "@hapi/bourne" "1.x.x" - "@hapi/hoek" "8.x.x" - "@hapi/topo" "3.x.x" +"@humanwhocodes/object-schema@^2.0.2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz#4a2868d75d6d6963e423bcf90b7fd1be343409d3" + integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA== -"@hapi/topo@3.x.x": - version "3.1.6" - resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-3.1.6.tgz#68d935fa3eae7fdd5ab0d7f953f3205d8b2bfc29" - integrity sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ== +"@isaacs/cliui@^8.0.2": + version "8.0.2" + resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" + integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== dependencies: - "@hapi/hoek" "^8.3.0" + string-width "^5.1.2" + string-width-cjs "npm:string-width@^4.2.0" + strip-ansi "^7.0.1" + strip-ansi-cjs "npm:strip-ansi@^6.0.1" + wrap-ansi "^8.1.0" + wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" -"@humanwhocodes/config-array@^0.5.0": - version "0.5.0" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.5.0.tgz#1407967d4c6eecd7388f83acf1eaf4d0c6e58ef9" - integrity sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg== - dependencies: - "@humanwhocodes/object-schema" "^1.2.0" - debug "^4.1.1" - minimatch "^3.0.4" - -"@humanwhocodes/object-schema@^1.2.0": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" - integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== - -"@istanbuljs/load-nyc-config@^1.0.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" - integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== +"@istanbuljs/load-nyc-config@^1.0.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" + integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== dependencies: camelcase "^5.3.1" find-up "^4.1.0" @@ -1679,167 +1979,208 @@ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== -"@jest/console@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-26.6.2.tgz#4e04bc464014358b03ab4937805ee36a0aeb98f2" - integrity sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g== +"@jest/console@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-27.5.1.tgz#260fe7239602fe5130a94f1aa386eff54b014bba" + integrity sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg== dependencies: - "@jest/types" "^26.6.2" + "@jest/types" "^27.5.1" "@types/node" "*" chalk "^4.0.0" - jest-message-util "^26.6.2" - jest-util "^26.6.2" + jest-message-util "^27.5.1" + jest-util "^27.5.1" slash "^3.0.0" -"@jest/core@^26.6.0", "@jest/core@^26.6.3": - version "26.6.3" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-26.6.3.tgz#7639fcb3833d748a4656ada54bde193051e45fad" - integrity sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw== +"@jest/console@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-28.1.3.tgz#2030606ec03a18c31803b8a36382762e447655df" + integrity sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw== dependencies: - "@jest/console" "^26.6.2" - "@jest/reporters" "^26.6.2" - "@jest/test-result" "^26.6.2" - "@jest/transform" "^26.6.2" - "@jest/types" "^26.6.2" + "@jest/types" "^28.1.3" + "@types/node" "*" + chalk "^4.0.0" + jest-message-util "^28.1.3" + jest-util "^28.1.3" + slash "^3.0.0" + +"@jest/core@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-27.5.1.tgz#267ac5f704e09dc52de2922cbf3af9edcd64b626" + integrity sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ== + dependencies: + "@jest/console" "^27.5.1" + "@jest/reporters" "^27.5.1" + "@jest/test-result" "^27.5.1" + "@jest/transform" "^27.5.1" + "@jest/types" "^27.5.1" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" + emittery "^0.8.1" exit "^0.1.2" - graceful-fs "^4.2.4" - jest-changed-files "^26.6.2" - jest-config "^26.6.3" - jest-haste-map "^26.6.2" - jest-message-util "^26.6.2" - jest-regex-util "^26.0.0" - jest-resolve "^26.6.2" - jest-resolve-dependencies "^26.6.3" - jest-runner "^26.6.3" - jest-runtime "^26.6.3" - jest-snapshot "^26.6.2" - jest-util "^26.6.2" - jest-validate "^26.6.2" - jest-watcher "^26.6.2" - micromatch "^4.0.2" - p-each-series "^2.1.0" + graceful-fs "^4.2.9" + jest-changed-files "^27.5.1" + jest-config "^27.5.1" + jest-haste-map "^27.5.1" + jest-message-util "^27.5.1" + jest-regex-util "^27.5.1" + jest-resolve "^27.5.1" + jest-resolve-dependencies "^27.5.1" + jest-runner "^27.5.1" + jest-runtime "^27.5.1" + jest-snapshot "^27.5.1" + jest-util "^27.5.1" + jest-validate "^27.5.1" + jest-watcher "^27.5.1" + micromatch "^4.0.4" rimraf "^3.0.0" slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^26.6.0", "@jest/environment@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-26.6.2.tgz#ba364cc72e221e79cc8f0a99555bf5d7577cf92c" - integrity sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA== +"@jest/environment@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-27.5.1.tgz#d7425820511fe7158abbecc010140c3fd3be9c74" + integrity sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA== dependencies: - "@jest/fake-timers" "^26.6.2" - "@jest/types" "^26.6.2" + "@jest/fake-timers" "^27.5.1" + "@jest/types" "^27.5.1" "@types/node" "*" - jest-mock "^26.6.2" + jest-mock "^27.5.1" -"@jest/fake-timers@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-26.6.2.tgz#459c329bcf70cee4af4d7e3f3e67848123535aad" - integrity sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA== +"@jest/expect-utils@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.7.0.tgz#023efe5d26a8a70f21677d0a1afc0f0a44e3a1c6" + integrity sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA== dependencies: - "@jest/types" "^26.6.2" - "@sinonjs/fake-timers" "^6.0.1" + jest-get-type "^29.6.3" + +"@jest/fake-timers@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-27.5.1.tgz#76979745ce0579c8a94a4678af7a748eda8ada74" + integrity sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ== + dependencies: + "@jest/types" "^27.5.1" + "@sinonjs/fake-timers" "^8.0.1" "@types/node" "*" - jest-message-util "^26.6.2" - jest-mock "^26.6.2" - jest-util "^26.6.2" + jest-message-util "^27.5.1" + jest-mock "^27.5.1" + jest-util "^27.5.1" -"@jest/globals@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-26.6.2.tgz#5b613b78a1aa2655ae908eba638cc96a20df720a" - integrity sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA== +"@jest/globals@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-27.5.1.tgz#7ac06ce57ab966566c7963431cef458434601b2b" + integrity sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q== dependencies: - "@jest/environment" "^26.6.2" - "@jest/types" "^26.6.2" - expect "^26.6.2" + "@jest/environment" "^27.5.1" + "@jest/types" "^27.5.1" + expect "^27.5.1" -"@jest/reporters@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-26.6.2.tgz#1f518b99637a5f18307bd3ecf9275f6882a667f6" - integrity sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw== +"@jest/reporters@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-27.5.1.tgz#ceda7be96170b03c923c37987b64015812ffec04" + integrity sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^26.6.2" - "@jest/test-result" "^26.6.2" - "@jest/transform" "^26.6.2" - "@jest/types" "^26.6.2" + "@jest/console" "^27.5.1" + "@jest/test-result" "^27.5.1" + "@jest/transform" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/node" "*" chalk "^4.0.0" collect-v8-coverage "^1.0.0" exit "^0.1.2" glob "^7.1.2" - graceful-fs "^4.2.4" + graceful-fs "^4.2.9" istanbul-lib-coverage "^3.0.0" - istanbul-lib-instrument "^4.0.3" + istanbul-lib-instrument "^5.1.0" istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" - istanbul-reports "^3.0.2" - jest-haste-map "^26.6.2" - jest-resolve "^26.6.2" - jest-util "^26.6.2" - jest-worker "^26.6.2" + istanbul-reports "^3.1.3" + jest-haste-map "^27.5.1" + jest-resolve "^27.5.1" + jest-util "^27.5.1" + jest-worker "^27.5.1" slash "^3.0.0" source-map "^0.6.0" string-length "^4.0.1" terminal-link "^2.0.0" - v8-to-istanbul "^7.0.0" - optionalDependencies: - node-notifier "^8.0.0" + v8-to-istanbul "^8.1.0" -"@jest/source-map@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-26.6.2.tgz#29af5e1e2e324cafccc936f218309f54ab69d535" - integrity sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA== +"@jest/schemas@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-28.1.3.tgz#ad8b86a66f11f33619e3d7e1dcddd7f2d40ff905" + integrity sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg== + dependencies: + "@sinclair/typebox" "^0.24.1" + +"@jest/schemas@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.3.tgz#430b5ce8a4e0044a7e3819663305a7b3091c8e03" + integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA== + dependencies: + "@sinclair/typebox" "^0.27.8" + +"@jest/source-map@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-27.5.1.tgz#6608391e465add4205eae073b55e7f279e04e8cf" + integrity sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg== dependencies: callsites "^3.0.0" - graceful-fs "^4.2.4" + graceful-fs "^4.2.9" source-map "^0.6.0" -"@jest/test-result@^26.6.0", "@jest/test-result@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-26.6.2.tgz#55da58b62df134576cc95476efa5f7949e3f5f18" - integrity sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ== +"@jest/test-result@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-27.5.1.tgz#56a6585fa80f7cdab72b8c5fc2e871d03832f5bb" + integrity sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag== dependencies: - "@jest/console" "^26.6.2" - "@jest/types" "^26.6.2" + "@jest/console" "^27.5.1" + "@jest/types" "^27.5.1" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^26.6.3": - version "26.6.3" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-26.6.3.tgz#98e8a45100863886d074205e8ffdc5a7eb582b17" - integrity sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw== +"@jest/test-result@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-28.1.3.tgz#5eae945fd9f4b8fcfce74d239e6f725b6bf076c5" + integrity sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg== dependencies: - "@jest/test-result" "^26.6.2" - graceful-fs "^4.2.4" - jest-haste-map "^26.6.2" - jest-runner "^26.6.3" - jest-runtime "^26.6.3" + "@jest/console" "^28.1.3" + "@jest/types" "^28.1.3" + "@types/istanbul-lib-coverage" "^2.0.0" + collect-v8-coverage "^1.0.0" -"@jest/transform@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-26.6.2.tgz#5ac57c5fa1ad17b2aae83e73e45813894dcf2e4b" - integrity sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA== +"@jest/test-sequencer@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz#4057e0e9cea4439e544c6353c6affe58d095745b" + integrity sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ== + dependencies: + "@jest/test-result" "^27.5.1" + graceful-fs "^4.2.9" + jest-haste-map "^27.5.1" + jest-runtime "^27.5.1" + +"@jest/transform@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-27.5.1.tgz#6c3501dcc00c4c08915f292a600ece5ecfe1f409" + integrity sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw== dependencies: "@babel/core" "^7.1.0" - "@jest/types" "^26.6.2" - babel-plugin-istanbul "^6.0.0" + "@jest/types" "^27.5.1" + babel-plugin-istanbul "^6.1.1" chalk "^4.0.0" convert-source-map "^1.4.0" fast-json-stable-stringify "^2.0.0" - graceful-fs "^4.2.4" - jest-haste-map "^26.6.2" - jest-regex-util "^26.0.0" - jest-util "^26.6.2" - micromatch "^4.0.2" - pirates "^4.0.1" + graceful-fs "^4.2.9" + jest-haste-map "^27.5.1" + jest-regex-util "^27.5.1" + jest-util "^27.5.1" + micromatch "^4.0.4" + pirates "^4.0.4" slash "^3.0.0" source-map "^0.6.1" write-file-atomic "^3.0.0" -"@jest/types@^26.6.0", "@jest/types@^26.6.2": +"@jest/types@^26.6.2": version "26.6.2" resolved "https://registry.yarnpkg.com/@jest/types/-/types-26.6.2.tgz#bef5a532030e1d88a2f5a6d933f84e97226ed48e" integrity sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ== @@ -1850,11 +2191,260 @@ "@types/yargs" "^15.0.0" chalk "^4.0.0" +"@jest/types@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.5.1.tgz#3c79ec4a8ba61c170bf937bcf9e98a9df175ec80" + integrity sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^16.0.0" + chalk "^4.0.0" + +"@jest/types@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-28.1.3.tgz#b05de80996ff12512bc5ceb1d208285a7d11748b" + integrity sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ== + dependencies: + "@jest/schemas" "^28.1.3" + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^17.0.8" + chalk "^4.0.0" + +"@jest/types@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.6.3.tgz#1131f8cf634e7e84c5e77bab12f052af585fba59" + integrity sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw== + dependencies: + "@jest/schemas" "^29.6.3" + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^17.0.8" + chalk "^4.0.0" + +"@jridgewell/gen-mapping@^0.3.2", "@jridgewell/gen-mapping@^0.3.5": + version "0.3.5" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz#dcce6aff74bdf6dad1a95802b69b04a2fcb1fb36" + integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== + dependencies: + "@jridgewell/set-array" "^1.2.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.24" + +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== + +"@jridgewell/set-array@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280" + integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== + +"@jridgewell/source-map@^0.3.3": + version "0.3.6" + resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.6.tgz#9d71ca886e32502eb9362c9a74a46787c36df81a" + integrity sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ== + dependencies: + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" + +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.4.15": + version "1.4.15" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" + integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== + +"@jridgewell/trace-mapping@^0.3.20", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": + version "0.3.25" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" + integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + +"@leichtgewicht/ip-codec@^2.0.1": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz#4fc56c15c580b9adb7dc3c333a134e540b44bfb1" + integrity sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw== + +"@lit-labs/ssr-dom-shim@^1.0.0", "@lit-labs/ssr-dom-shim@^1.1.0", "@lit-labs/ssr-dom-shim@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.2.0.tgz#353ce4a76c83fadec272ea5674ede767650762fd" + integrity sha512-yWJKmpGE6lUURKAaIltoPIE/wrbY3TEkqQt+X0m+7fQNnAv0keydnYvbiJFP1PnMhizmIWRWOG5KLhYyc/xl+g== + +"@lit/reactive-element@^1.3.0", "@lit/reactive-element@^1.6.0": + version "1.6.3" + resolved "https://registry.yarnpkg.com/@lit/reactive-element/-/reactive-element-1.6.3.tgz#25b4eece2592132845d303e091bad9b04cdcfe03" + integrity sha512-QuTgnG52Poic7uM1AN5yJ09QMe0O28e10XzSvWDz02TJiiKee4stsiownEIadWm8nYzyDAyT+gKzUoZmiWQtsQ== + dependencies: + "@lit-labs/ssr-dom-shim" "^1.0.0" + +"@lit/reactive-element@^2.0.0", "@lit/reactive-element@^2.0.4": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@lit/reactive-element/-/reactive-element-2.0.4.tgz#8f2ed950a848016383894a26180ff06c56ae001b" + integrity sha512-GFn91inaUa2oHLak8awSIigYz0cU0Payr1rcFsrkf5OJ5eSPxElyZfKh0f2p9FsTiZWXQdWGJeXZICEfXXYSXQ== + dependencies: + "@lit-labs/ssr-dom-shim" "^1.2.0" + +"@metamask/eth-json-rpc-provider@^1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@metamask/eth-json-rpc-provider/-/eth-json-rpc-provider-1.0.1.tgz#3fd5316c767847f4ca107518b611b15396a5a32c" + integrity sha512-whiUMPlAOrVGmX8aKYVPvlKyG4CpQXiNNyt74vE1xb5sPvmx5oA7B/kOi/JdBvhGQq97U1/AVdXEdk2zkP8qyA== + dependencies: + "@metamask/json-rpc-engine" "^7.0.0" + "@metamask/safe-event-emitter" "^3.0.0" + "@metamask/utils" "^5.0.1" + +"@metamask/json-rpc-engine@^7.0.0": + version "7.3.3" + resolved "https://registry.yarnpkg.com/@metamask/json-rpc-engine/-/json-rpc-engine-7.3.3.tgz#f2b30a2164558014bfcca45db10f5af291d989af" + integrity sha512-dwZPq8wx9yV3IX2caLi9q9xZBw2XeIoYqdyihDDDpuHVCEiqadJLwqM3zy+uwf6F1QYQ65A8aOMQg1Uw7LMLNg== + dependencies: + "@metamask/rpc-errors" "^6.2.1" + "@metamask/safe-event-emitter" "^3.0.0" + "@metamask/utils" "^8.3.0" + +"@metamask/rpc-errors@^6.2.1": + version "6.2.1" + resolved "https://registry.yarnpkg.com/@metamask/rpc-errors/-/rpc-errors-6.2.1.tgz#f5daf429ededa7cb83069dc621bd5738fe2a1d80" + integrity sha512-VTgWkjWLzb0nupkFl1duQi9Mk8TGT9rsdnQg6DeRrYEFxtFOh0IF8nAwxM/4GWqDl6uIB06lqUBgUrAVWl62Bw== + dependencies: + "@metamask/utils" "^8.3.0" + fast-safe-stringify "^2.0.6" + "@metamask/safe-event-emitter@2.0.0", "@metamask/safe-event-emitter@^2.0.0": version "2.0.0" resolved "https://registry.yarnpkg.com/@metamask/safe-event-emitter/-/safe-event-emitter-2.0.0.tgz#af577b477c683fad17c619a78208cede06f9605c" integrity sha512-/kSXhY692qiV1MXu6EeOZvg5nECLclxNXcKCxJ3cXQgYuRymRHpdx/t7JXfsK+JLjwA1e1c1/SBrlQYpusC29Q== +"@metamask/safe-event-emitter@^3.0.0": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@metamask/safe-event-emitter/-/safe-event-emitter-3.1.1.tgz#e89b840a7af8097a8ed4953d8dc8470d1302d3ef" + integrity sha512-ihb3B0T/wJm1eUuArYP4lCTSEoZsClHhuWyfo/kMX3m/odpqNcPfsz5O2A3NT7dXCAgWPGDQGPqygCpgeniKMw== + +"@metamask/utils@^5.0.1": + version "5.0.2" + resolved "https://registry.yarnpkg.com/@metamask/utils/-/utils-5.0.2.tgz#140ba5061d90d9dac0280c19cab101bc18c8857c" + integrity sha512-yfmE79bRQtnMzarnKfX7AEJBwFTxvTyw3nBQlu/5rmGXrjAeAMltoGxO62TFurxrQAFMNa/fEjIHNvungZp0+g== + dependencies: + "@ethereumjs/tx" "^4.1.2" + "@types/debug" "^4.1.7" + debug "^4.3.4" + semver "^7.3.8" + superstruct "^1.0.3" + +"@metamask/utils@^8.3.0": + version "8.4.0" + resolved "https://registry.yarnpkg.com/@metamask/utils/-/utils-8.4.0.tgz#f44812c96467a4e1b70b2edff6ee89a9caa4e354" + integrity sha512-dbIc3C7alOe0agCuBHM1h71UaEaEqOk2W8rAtEn8QGz4haH2Qq7MoK6i7v2guzvkJVVh79c+QCzIqphC3KvrJg== + dependencies: + "@ethereumjs/tx" "^4.2.0" + "@noble/hashes" "^1.3.1" + "@scure/base" "^1.1.3" + "@types/debug" "^4.1.7" + debug "^4.3.4" + pony-cause "^2.1.10" + semver "^7.5.4" + superstruct "^1.0.3" + uuid "^9.0.1" + +"@motionone/animation@^10.15.1", "@motionone/animation@^10.17.0": + version "10.17.0" + resolved "https://registry.yarnpkg.com/@motionone/animation/-/animation-10.17.0.tgz#7633c6f684b5fee2b61c405881b8c24662c68fca" + integrity sha512-ANfIN9+iq1kGgsZxs+Nz96uiNcPLGTXwfNo2Xz/fcJXniPYpaz/Uyrfa+7I5BPLxCP82sh7quVDudf1GABqHbg== + dependencies: + "@motionone/easing" "^10.17.0" + "@motionone/types" "^10.17.0" + "@motionone/utils" "^10.17.0" + tslib "^2.3.1" + +"@motionone/dom@^10.16.2", "@motionone/dom@^10.16.4": + version "10.17.0" + resolved "https://registry.yarnpkg.com/@motionone/dom/-/dom-10.17.0.tgz#519dd78aab0750a94614c69a82da5290cd617383" + integrity sha512-cMm33swRlCX/qOPHWGbIlCl0K9Uwi6X5RiL8Ma6OrlJ/TP7Q+Np5GE4xcZkFptysFjMTi4zcZzpnNQGQ5D6M0Q== + dependencies: + "@motionone/animation" "^10.17.0" + "@motionone/generators" "^10.17.0" + "@motionone/types" "^10.17.0" + "@motionone/utils" "^10.17.0" + hey-listen "^1.0.8" + tslib "^2.3.1" + +"@motionone/easing@^10.17.0": + version "10.17.0" + resolved "https://registry.yarnpkg.com/@motionone/easing/-/easing-10.17.0.tgz#d66cecf7e3ee30104ad00389fb3f0b2282d81aa9" + integrity sha512-Bxe2wSuLu/qxqW4rBFS5m9tMLOw+QBh8v5A7Z5k4Ul4sTj5jAOfZG5R0bn5ywmk+Fs92Ij1feZ5pmC4TeXA8Tg== + dependencies: + "@motionone/utils" "^10.17.0" + tslib "^2.3.1" + +"@motionone/generators@^10.17.0": + version "10.17.0" + resolved "https://registry.yarnpkg.com/@motionone/generators/-/generators-10.17.0.tgz#878d292539c41434c13310d5f863a87a94e6e689" + integrity sha512-T6Uo5bDHrZWhIfxG/2Aut7qyWQyJIWehk6OB4qNvr/jwA/SRmixwbd7SOrxZi1z5rH3LIeFFBKK1xHnSbGPZSQ== + dependencies: + "@motionone/types" "^10.17.0" + "@motionone/utils" "^10.17.0" + tslib "^2.3.1" + +"@motionone/svelte@^10.16.2": + version "10.16.4" + resolved "https://registry.yarnpkg.com/@motionone/svelte/-/svelte-10.16.4.tgz#5daf117cf5b2576fc6dd487c5e0500938a742470" + integrity sha512-zRVqk20lD1xqe+yEDZhMYgftsuHc25+9JSo+r0a0OWUJFocjSV9D/+UGhX4xgJsuwB9acPzXLr20w40VnY2PQA== + dependencies: + "@motionone/dom" "^10.16.4" + tslib "^2.3.1" + +"@motionone/types@^10.15.1", "@motionone/types@^10.17.0": + version "10.17.0" + resolved "https://registry.yarnpkg.com/@motionone/types/-/types-10.17.0.tgz#179571ce98851bac78e19a1c3974767227f08ba3" + integrity sha512-EgeeqOZVdRUTEHq95Z3t8Rsirc7chN5xFAPMYFobx8TPubkEfRSm5xihmMUkbaR2ErKJTUw3347QDPTHIW12IA== + +"@motionone/utils@^10.15.1", "@motionone/utils@^10.17.0": + version "10.17.0" + resolved "https://registry.yarnpkg.com/@motionone/utils/-/utils-10.17.0.tgz#cc0ba8acdc6848ff48d8c1f2d0d3e7602f4f942e" + integrity sha512-bGwrki4896apMWIj9yp5rAS2m0xyhxblg6gTB/leWDPt+pb410W8lYWsxyurX+DH+gO1zsQsfx2su/c1/LtTpg== + dependencies: + "@motionone/types" "^10.17.0" + hey-listen "^1.0.8" + tslib "^2.3.1" + +"@motionone/vue@^10.16.2": + version "10.16.4" + resolved "https://registry.yarnpkg.com/@motionone/vue/-/vue-10.16.4.tgz#07d09e3aa5115ca0bcc0076cb9e5322775277c09" + integrity sha512-z10PF9JV6SbjFq+/rYabM+8CVlMokgl8RFGvieSGNTmrkQanfHn+15XBrhG3BgUfvmTeSeyShfOHpG0i9zEdcg== + dependencies: + "@motionone/dom" "^10.16.4" + tslib "^2.3.1" + +"@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1": + version "5.1.1-v1" + resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz#dbf733a965ca47b1973177dc0bb6c889edcfb129" + integrity sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg== + dependencies: + eslint-scope "5.1.1" + +"@noble/curves@1.3.0", "@noble/curves@~1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.3.0.tgz#01be46da4fd195822dab821e72f71bf4aeec635e" + integrity sha512-t01iSXPuN+Eqzb4eBX0S5oubSqXbK/xXa1Ne18Hj8f9pStxztHCE2gfboSp/dZRLSqfuLpRK2nDXDK+W9puocA== + dependencies: + "@noble/hashes" "1.3.3" + +"@noble/hashes@1.3.3", "@noble/hashes@~1.3.2": + version "1.3.3" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.3.tgz#39908da56a4adc270147bb07968bf3b16cfe1699" + integrity sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA== + +"@noble/hashes@^1.3.1", "@noble/hashes@^1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.4.0.tgz#45814aa329f30e4fe0ba49426f49dfccdd066426" + integrity sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg== + "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" @@ -1868,7 +2458,7 @@ resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== -"@nodelib/fs.walk@^1.2.3": +"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": version "1.2.8" resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== @@ -1876,106 +2466,176 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" -"@npmcli/fs@^1.0.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-1.1.0.tgz#bec1d1b89c170d40e1b73ad6c943b0b75e7d2951" - integrity sha512-VhP1qZLXcrXRIaPoqb4YA55JQxLNF3jNR4T55IdOJa3+IFJKNYHtPvtXx8slmeMavj37vCzCfrqQM1vWLsYKLA== +"@parcel/watcher-android-arm64@2.4.1": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.4.1.tgz#c2c19a3c442313ff007d2d7a9c2c1dd3e1c9ca84" + integrity sha512-LOi/WTbbh3aTn2RYddrO8pnapixAziFl6SMxHM69r3tvdSm94JtCenaKgk1GRg5FJ5wpMCpHeW+7yqPlvZv7kg== + +"@parcel/watcher-darwin-arm64@2.4.1": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.4.1.tgz#c817c7a3b4f3a79c1535bfe54a1c2818d9ffdc34" + integrity sha512-ln41eihm5YXIY043vBrrHfn94SIBlqOWmoROhsMVTSXGh0QahKGy77tfEywQ7v3NywyxBBkGIfrWRHm0hsKtzA== + +"@parcel/watcher-darwin-x64@2.4.1": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.4.1.tgz#1a3f69d9323eae4f1c61a5f480a59c478d2cb020" + integrity sha512-yrw81BRLjjtHyDu7J61oPuSoeYWR3lDElcPGJyOvIXmor6DEo7/G2u1o7I38cwlcoBHQFULqF6nesIX3tsEXMg== + +"@parcel/watcher-freebsd-x64@2.4.1": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.4.1.tgz#0d67fef1609f90ba6a8a662bc76a55fc93706fc8" + integrity sha512-TJa3Pex/gX3CWIx/Co8k+ykNdDCLx+TuZj3f3h7eOjgpdKM+Mnix37RYsYU4LHhiYJz3DK5nFCCra81p6g050w== + +"@parcel/watcher-linux-arm-glibc@2.4.1": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.4.1.tgz#ce5b340da5829b8e546bd00f752ae5292e1c702d" + integrity sha512-4rVYDlsMEYfa537BRXxJ5UF4ddNwnr2/1O4MHM5PjI9cvV2qymvhwZSFgXqbS8YoTk5i/JR0L0JDs69BUn45YA== + +"@parcel/watcher-linux-arm64-glibc@2.4.1": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.4.1.tgz#6d7c00dde6d40608f9554e73998db11b2b1ff7c7" + integrity sha512-BJ7mH985OADVLpbrzCLgrJ3TOpiZggE9FMblfO65PlOCdG++xJpKUJ0Aol74ZUIYfb8WsRlUdgrZxKkz3zXWYA== + +"@parcel/watcher-linux-arm64-musl@2.4.1": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.4.1.tgz#bd39bc71015f08a4a31a47cd89c236b9d6a7f635" + integrity sha512-p4Xb7JGq3MLgAfYhslU2SjoV9G0kI0Xry0kuxeG/41UfpjHGOhv7UoUDAz/jb1u2elbhazy4rRBL8PegPJFBhA== + +"@parcel/watcher-linux-x64-glibc@2.4.1": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.4.1.tgz#0ce29966b082fb6cdd3de44f2f74057eef2c9e39" + integrity sha512-s9O3fByZ/2pyYDPoLM6zt92yu6P4E39a03zvO0qCHOTjxmt3GHRMLuRZEWhWLASTMSrrnVNWdVI/+pUElJBBBg== + +"@parcel/watcher-linux-x64-musl@2.4.1": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.4.1.tgz#d2ebbf60e407170bb647cd6e447f4f2bab19ad16" + integrity sha512-L2nZTYR1myLNST0O632g0Dx9LyMNHrn6TOt76sYxWLdff3cB22/GZX2UPtJnaqQPdCRoszoY5rcOj4oMTtp5fQ== + +"@parcel/watcher-wasm@^2.4.1": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-wasm/-/watcher-wasm-2.4.1.tgz#c4353e4fdb96ee14389856f7f6f6d21b7dcef9e1" + integrity sha512-/ZR0RxqxU/xxDGzbzosMjh4W6NdYFMqq2nvo2b8SLi7rsl/4jkL8S5stIikorNkdR50oVDvqb/3JT05WM+CRRA== dependencies: - "@gar/promisify" "^1.0.1" - semver "^7.3.5" + is-glob "^4.0.3" + micromatch "^4.0.5" + napi-wasm "^1.1.0" -"@npmcli/move-file@^1.0.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.1.2.tgz#1a82c3e372f7cae9253eb66d72543d6b8685c674" - integrity sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg== +"@parcel/watcher-win32-arm64@2.4.1": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.4.1.tgz#eb4deef37e80f0b5e2f215dd6d7a6d40a85f8adc" + integrity sha512-Uq2BPp5GWhrq/lcuItCHoqxjULU1QYEcyjSO5jqqOK8RNFDBQnenMMx4gAl3v8GiWa59E9+uDM7yZ6LxwUIfRg== + +"@parcel/watcher-win32-ia32@2.4.1": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.4.1.tgz#94fbd4b497be39fd5c8c71ba05436927842c9df7" + integrity sha512-maNRit5QQV2kgHFSYwftmPBxiuK5u4DXjbXx7q6eKjq5dsLXZ4FJiVvlcw35QXzk0KrUecJmuVFbj4uV9oYrcw== + +"@parcel/watcher-win32-x64@2.4.1": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.4.1.tgz#4bf920912f67cae5f2d264f58df81abfea68dadf" + integrity sha512-+DvS92F9ezicfswqrvIRM2njcYJbd5mb9CUgtrHCHmvn7pPPa+nMDRu1o1bYYz/l5IB2NVGNJWiH7h1E58IF2A== + +"@parcel/watcher@^2.4.1": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher/-/watcher-2.4.1.tgz#a50275151a1bb110879c6123589dba90c19f1bf8" + integrity sha512-HNjmfLQEVRZmHRET336f20H/8kOozUGwk7yajvsonjNxbj2wBTK1WsQuHkD5yYh9RxFGL2EyDHryOihOwUoKDA== dependencies: - mkdirp "^1.0.4" - rimraf "^3.0.2" + detect-libc "^1.0.3" + is-glob "^4.0.3" + micromatch "^4.0.5" + node-addon-api "^7.0.0" + optionalDependencies: + "@parcel/watcher-android-arm64" "2.4.1" + "@parcel/watcher-darwin-arm64" "2.4.1" + "@parcel/watcher-darwin-x64" "2.4.1" + "@parcel/watcher-freebsd-x64" "2.4.1" + "@parcel/watcher-linux-arm-glibc" "2.4.1" + "@parcel/watcher-linux-arm64-glibc" "2.4.1" + "@parcel/watcher-linux-arm64-musl" "2.4.1" + "@parcel/watcher-linux-x64-glibc" "2.4.1" + "@parcel/watcher-linux-x64-musl" "2.4.1" + "@parcel/watcher-win32-arm64" "2.4.1" + "@parcel/watcher-win32-ia32" "2.4.1" + "@parcel/watcher-win32-x64" "2.4.1" + +"@pkgjs/parseargs@^0.11.0": + version "0.11.0" + resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" + integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== -"@pmmmwh/react-refresh-webpack-plugin@0.4.2": - version "0.4.2" - resolved "https://registry.yarnpkg.com/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.4.2.tgz#1f9741e0bde9790a0e13272082ed7272a083620d" - integrity sha512-Loc4UDGutcZ+Bd56hBInkm6JyjyCwWy4t2wcDXzN8EDPANgVRj0VP8Nxn0Zq2pc+WKauZwEivQgbDGg4xZO20A== +"@pmmmwh/react-refresh-webpack-plugin@^0.5.3": + version "0.5.13" + resolved "https://registry.yarnpkg.com/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.13.tgz#02338a92a92f541a5189b97e922caf3215221e49" + integrity sha512-odZVYXly+JwzYri9rKqqUAk0cY6zLpv4dxoKinhoJNShV36Gpxf+CyDIILJ4tYsJ1ZxIWs233Y39iVnynvDA/g== dependencies: - ansi-html "^0.0.7" + ansi-html-community "^0.0.8" + core-js-pure "^3.23.3" error-stack-parser "^2.0.6" - html-entities "^1.2.1" - native-url "^0.2.6" - schema-utils "^2.6.5" + html-entities "^2.1.0" + loader-utils "^2.0.4" + schema-utils "^3.0.0" source-map "^0.7.3" -"@popperjs/core@^2.8.6": - version "2.11.2" - resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.2.tgz#830beaec4b4091a9e9398ac50f865ddea52186b9" - integrity sha512-92FRmppjjqz29VMJ2dn+xdyXZBrMlE42AV6Kq6BwjWV7CNUW1hs2FtxSNLQE+gJhaZ6AAmYuO9y8dshhcBl7vA== - -"@portis/web3-provider-engine@1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@portis/web3-provider-engine/-/web3-provider-engine-1.1.2.tgz#97f383156ea6b70fba69ae93a945fdd94159b1ba" - integrity sha512-NiiF0UPfngf4ulo32ybEDAMaad4i7h44HJaN8ea8HHt/vaFiUcPtINjC2o21jhWaLANerW4ZbOrNs1iCLH4p6A== - dependencies: - async "^2.5.0" - backoff "^2.5.0" - clone "^2.0.0" - cross-fetch "^2.1.0" - eth-block-tracker "^4.2.0" - eth-json-rpc-filters "^4.0.2" - eth-json-rpc-infura "^3.1.0" - eth-json-rpc-middleware "^5.0.2" - eth-sig-util "2.5.3" - ethereumjs-block "^1.2.2" - ethereumjs-tx "^1.2.0" - ethereumjs-util "^5.1.5" - ethereumjs-vm "^2.3.4" - json-rpc-error "^2.0.0" - json-stable-stringify "^1.0.1" - promise-to-callback "^1.0.0" - readable-stream "^2.2.9" - request "^2.85.0" - semaphore "^1.0.3" - ws "^5.1.1" - xhr "^2.2.0" - xtend "^4.0.1" +"@popperjs/core@^2.11.6": + version "2.11.8" + resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.8.tgz#6b79032e760a0899cd4204710beede972a3a185f" + integrity sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A== -"@portis/web3@^2.0.0-beta.59": - version "2.0.0-beta.59" - resolved "https://registry.yarnpkg.com/@portis/web3/-/web3-2.0.0-beta.59.tgz#2e5292d8e1daf6070aa3b4a8cb33c1a9e0315011" - integrity sha512-QdIdrI3uK+TyT+dxRK5bEYOi2PBlUDJ7vszR2uu0bT49wy7O52B9td6fL/5gsfk0VpCsmrYov3x3gEQYwGUyvQ== +"@react-aria/ssr@^3.5.0": + version "3.9.3" + resolved "https://registry.yarnpkg.com/@react-aria/ssr/-/ssr-3.9.3.tgz#9e7d4e019965aaf86cec3da2411a392be49ac2b3" + integrity sha512-5bUZ93dmvHFcmfUcEN7qzYe8yQQ8JY+nHN6m9/iSDCQ/QmCiE0kWXYwhurjw5ch6I8WokQzx66xKIMHBAa4NNA== dependencies: - "@portis/web3-provider-engine" "1.1.2" - ethereumjs-util "5.2.0" - penpal "3.0.7" - pocket-js-core "0.0.3" + "@swc/helpers" "^0.5.0" "@react-hook/media-query@^1.1.1": version "1.1.1" resolved "https://registry.yarnpkg.com/@react-hook/media-query/-/media-query-1.1.1.tgz#7fc4e52591784a39be924b62b4270ae3e18ec578" integrity sha512-VM14wDOX5CW5Dn6b2lTiMd79BFMTut9AZj2+vIRT3LCKgMCYmdqruTtzDPSnIVDQdtxdPgtOzvU9oK20LopuOw== -"@restart/context@^2.1.4": - version "2.1.4" - resolved "https://registry.yarnpkg.com/@restart/context/-/context-2.1.4.tgz#a99d87c299a34c28bd85bb489cb07bfd23149c02" - integrity sha512-INJYZQJP7g+IoDUh/475NlGiTeMfwTXUEr3tmRneckHIxNolGOW9CTq83S8cxq0CgJwwcMzMJFchxvlwe7Rk8Q== +"@restart/hooks@^0.4.9": + version "0.4.16" + resolved "https://registry.yarnpkg.com/@restart/hooks/-/hooks-0.4.16.tgz#95ae8ac1cc7e2bd4fed5e39800ff85604c6d59fb" + integrity sha512-f7aCv7c+nU/3mF7NWLtVVr0Ra80RqsO89hO72r+Y/nvQr5+q0UFGkocElTH6MJApvReVh6JHUFYn2cw1WdHF3w== + dependencies: + dequal "^2.0.3" -"@restart/hooks@^0.3.26": - version "0.3.27" - resolved "https://registry.yarnpkg.com/@restart/hooks/-/hooks-0.3.27.tgz#91f356d66d4699a8cd8b3d008402708b6a9dc505" - integrity sha512-s984xV/EapUIfkjlf8wz9weP2O9TNKR96C68FfMEy2bE69+H4cNv3RD4Mf97lW7Htt7PjZrYTjSC8f3SB9VCXw== +"@restart/ui@^1.6.8": + version "1.6.9" + resolved "https://registry.yarnpkg.com/@restart/ui/-/ui-1.6.9.tgz#05ec905a56486fa39b62f29c09b3917e57acd62f" + integrity sha512-mUbygUsJcRurjZCt1f77gg4DpheD1D+Sc7J3JjAkysUj7t8m4EBJVOqWC9788Qtbc69cJ+HlJc6jBguKwS8Mcw== dependencies: - dequal "^2.0.2" + "@babel/runtime" "^7.21.0" + "@popperjs/core" "^2.11.6" + "@react-aria/ssr" "^3.5.0" + "@restart/hooks" "^0.4.9" + "@types/warning" "^3.0.0" + dequal "^2.0.3" + dom-helpers "^5.2.0" + uncontrollable "^8.0.1" + warning "^4.0.3" -"@rollup/plugin-node-resolve@^7.1.1": - version "7.1.3" - resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-7.1.3.tgz#80de384edfbd7bfc9101164910f86078151a3eca" - integrity sha512-RxtSL3XmdTAE2byxekYLnx+98kEUOrPHF/KRVjLH+DEIHy6kjIw7YINQzn+NXiH/NTrQLAwYs0GWB+csWygA9Q== +"@rollup/plugin-babel@^5.2.0": + version "5.3.1" + resolved "https://registry.yarnpkg.com/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz#04bc0608f4aa4b2e4b1aebf284344d0f68fda283" + integrity sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q== + dependencies: + "@babel/helper-module-imports" "^7.10.4" + "@rollup/pluginutils" "^3.1.0" + +"@rollup/plugin-node-resolve@^11.2.1": + version "11.2.1" + resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz#82aa59397a29cd4e13248b106e6a4a1880362a60" + integrity sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg== dependencies: - "@rollup/pluginutils" "^3.0.8" - "@types/resolve" "0.0.8" + "@rollup/pluginutils" "^3.1.0" + "@types/resolve" "1.17.1" builtin-modules "^3.1.0" + deepmerge "^4.2.2" is-module "^1.0.0" - resolve "^1.14.2" + resolve "^1.19.0" -"@rollup/plugin-replace@^2.3.1": +"@rollup/plugin-replace@^2.4.1": version "2.4.2" resolved "https://registry.yarnpkg.com/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz#a2d539314fbc77c244858faa523012825068510a" integrity sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg== @@ -1983,7 +2643,7 @@ "@rollup/pluginutils" "^3.1.0" magic-string "^0.25.7" -"@rollup/pluginutils@^3.0.8", "@rollup/pluginutils@^3.1.0": +"@rollup/pluginutils@^3.1.0": version "3.1.0" resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b" integrity sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg== @@ -1992,27 +2652,200 @@ estree-walker "^1.0.1" picomatch "^2.2.2" +"@rushstack/eslint-patch@^1.1.0": + version "1.10.2" + resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.10.2.tgz#053f1540703faa81dea2966b768ee5581c66aeda" + integrity sha512-hw437iINopmQuxWPSUEvqE56NCPsiU8N4AYtfHmJFckclktzK9YQJieD3XkDCDH4OjL+C7zgPUh73R/nrcHrqw== + +"@scure/base@^1.1.3", "@scure/base@~1.1.4": + version "1.1.6" + resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.1.6.tgz#8ce5d304b436e4c84f896e0550c83e4d88cb917d" + integrity sha512-ok9AWwhcgYuGG3Zfhyqg+zwl+Wn5uE+dwC0NV/2qQkx4dABbb/bx96vWu8NSj+BNjjSjno+JRYRjle1jV08k3g== + +"@scure/bip32@1.3.3": + version "1.3.3" + resolved "https://registry.yarnpkg.com/@scure/bip32/-/bip32-1.3.3.tgz#a9624991dc8767087c57999a5d79488f48eae6c8" + integrity sha512-LJaN3HwRbfQK0X1xFSi0Q9amqOgzQnnDngIt+ZlsBC3Bm7/nE7K0kwshZHyaru79yIVRv/e1mQAjZyuZG6jOFQ== + dependencies: + "@noble/curves" "~1.3.0" + "@noble/hashes" "~1.3.2" + "@scure/base" "~1.1.4" + +"@scure/bip39@1.2.2": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-1.2.2.tgz#f3426813f4ced11a47489cbcf7294aa963966527" + integrity sha512-HYf9TUXG80beW+hGAt3TRM8wU6pQoYur9iNypTROm42dorCGmLnFe3eWjz3gOq6G62H2WRh0FCzAR1PI+29zIA== + dependencies: + "@noble/hashes" "~1.3.2" + "@scure/base" "~1.1.4" + +"@sinclair/typebox@^0.24.1": + version "0.24.51" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.51.tgz#645f33fe4e02defe26f2f5c0410e1c094eac7f5f" + integrity sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA== + +"@sinclair/typebox@^0.27.8": + version "0.27.8" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e" + integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== + "@sinonjs/commons@^1.7.0": - version "1.8.3" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d" - integrity sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ== + version "1.8.6" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.6.tgz#80c516a4dc264c2a69115e7578d62581ff455ed9" + integrity sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ== dependencies: type-detect "4.0.8" -"@sinonjs/fake-timers@^6.0.1": - version "6.0.1" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz#293674fccb3262ac782c7aadfdeca86b10c75c40" - integrity sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA== +"@sinonjs/fake-timers@^8.0.1": + version "8.1.0" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz#3fdc2b6cb58935b21bfb8d1625eb1300484316e7" + integrity sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg== dependencies: "@sinonjs/commons" "^1.7.0" -"@surma/rollup-plugin-off-main-thread@^1.1.1": - version "1.4.2" - resolved "https://registry.yarnpkg.com/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-1.4.2.tgz#e6786b6af5799f82f7ab3a82e53f6182d2b91a58" - integrity sha512-yBMPqmd1yEJo/280PAMkychuaALyQ9Lkb5q1ck3mjJrFuEobIfhnQ4J3mbvBoISmR3SWMWV+cGB/I0lCQee79A== +"@stablelib/aead@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/aead/-/aead-1.0.1.tgz#c4b1106df9c23d1b867eb9b276d8f42d5fc4c0c3" + integrity sha512-q39ik6sxGHewqtO0nP4BuSe3db5G1fEJE8ukvngS2gLkBXyy6E7pLubhbYgnkDFv6V8cWaxcE4Xn0t6LWcJkyg== + +"@stablelib/binary@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/binary/-/binary-1.0.1.tgz#c5900b94368baf00f811da5bdb1610963dfddf7f" + integrity sha512-ClJWvmL6UBM/wjkvv/7m5VP3GMr9t0osr4yVgLZsLCOz4hGN9gIAFEqnJ0TsSMAN+n840nf2cHZnA5/KFqHC7Q== + dependencies: + "@stablelib/int" "^1.0.1" + +"@stablelib/bytes@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/bytes/-/bytes-1.0.1.tgz#0f4aa7b03df3080b878c7dea927d01f42d6a20d8" + integrity sha512-Kre4Y4kdwuqL8BR2E9hV/R5sOrUj6NanZaZis0V6lX5yzqC3hBuVSDXUIBqQv/sCpmuWRiHLwqiT1pqqjuBXoQ== + +"@stablelib/chacha20poly1305@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/chacha20poly1305/-/chacha20poly1305-1.0.1.tgz#de6b18e283a9cb9b7530d8767f99cde1fec4c2ee" + integrity sha512-MmViqnqHd1ymwjOQfghRKw2R/jMIGT3wySN7cthjXCBdO+qErNPUBnRzqNpnvIwg7JBCg3LdeCZZO4de/yEhVA== + dependencies: + "@stablelib/aead" "^1.0.1" + "@stablelib/binary" "^1.0.1" + "@stablelib/chacha" "^1.0.1" + "@stablelib/constant-time" "^1.0.1" + "@stablelib/poly1305" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + +"@stablelib/chacha@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/chacha/-/chacha-1.0.1.tgz#deccfac95083e30600c3f92803a3a1a4fa761371" + integrity sha512-Pmlrswzr0pBzDofdFuVe1q7KdsHKhhU24e8gkEwnTGOmlC7PADzLVxGdn2PoNVBBabdg0l/IfLKg6sHAbTQugg== dependencies: - ejs "^2.6.1" + "@stablelib/binary" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + +"@stablelib/constant-time@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/constant-time/-/constant-time-1.0.1.tgz#bde361465e1cf7b9753061b77e376b0ca4c77e35" + integrity sha512-tNOs3uD0vSJcK6z1fvef4Y+buN7DXhzHDPqRLSXUel1UfqMB1PWNsnnAezrKfEwTLpN0cGH2p9NNjs6IqeD0eg== + +"@stablelib/ed25519@^1.0.2": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@stablelib/ed25519/-/ed25519-1.0.3.tgz#f8fdeb6f77114897c887bb6a3138d659d3f35996" + integrity sha512-puIMWaX9QlRsbhxfDc5i+mNPMY+0TmQEskunY1rZEBPi1acBCVQAhnsk/1Hk50DGPtVsZtAWQg4NHGlVaO9Hqg== + dependencies: + "@stablelib/random" "^1.0.2" + "@stablelib/sha512" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + +"@stablelib/hash@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/hash/-/hash-1.0.1.tgz#3c944403ff2239fad8ebb9015e33e98444058bc5" + integrity sha512-eTPJc/stDkdtOcrNMZ6mcMK1e6yBbqRBaNW55XA1jU8w/7QdnCF0CmMmOD1m7VSkBR44PWrMHU2l6r8YEQHMgg== + +"@stablelib/hkdf@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/hkdf/-/hkdf-1.0.1.tgz#b4efd47fd56fb43c6a13e8775a54b354f028d98d" + integrity sha512-SBEHYE16ZXlHuaW5RcGk533YlBj4grMeg5TooN80W3NpcHRtLZLLXvKyX0qcRFxf+BGDobJLnwkvgEwHIDBR6g== + dependencies: + "@stablelib/hash" "^1.0.1" + "@stablelib/hmac" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + +"@stablelib/hmac@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/hmac/-/hmac-1.0.1.tgz#3d4c1b8cf194cb05d28155f0eed8a299620a07ec" + integrity sha512-V2APD9NSnhVpV/QMYgCVMIYKiYG6LSqw1S65wxVoirhU/51ACio6D4yDVSwMzuTJXWZoVHbDdINioBwKy5kVmA== + dependencies: + "@stablelib/constant-time" "^1.0.1" + "@stablelib/hash" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + +"@stablelib/int@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/int/-/int-1.0.1.tgz#75928cc25d59d73d75ae361f02128588c15fd008" + integrity sha512-byr69X/sDtDiIjIV6m4roLVWnNNlRGzsvxw+agj8CIEazqWGOQp2dTYgQhtyVXV9wpO6WyXRQUzLV/JRNumT2w== + +"@stablelib/keyagreement@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/keyagreement/-/keyagreement-1.0.1.tgz#4612efb0a30989deb437cd352cee637ca41fc50f" + integrity sha512-VKL6xBwgJnI6l1jKrBAfn265cspaWBPAPEc62VBQrWHLqVgNRE09gQ/AnOEyKUWrrqfD+xSQ3u42gJjLDdMDQg== + dependencies: + "@stablelib/bytes" "^1.0.1" + +"@stablelib/poly1305@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/poly1305/-/poly1305-1.0.1.tgz#93bfb836c9384685d33d70080718deae4ddef1dc" + integrity sha512-1HlG3oTSuQDOhSnLwJRKeTRSAdFNVB/1djy2ZbS35rBSJ/PFqx9cf9qatinWghC2UbfOYD8AcrtbUQl8WoxabA== + dependencies: + "@stablelib/constant-time" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + +"@stablelib/random@^1.0.1", "@stablelib/random@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@stablelib/random/-/random-1.0.2.tgz#2dece393636489bf7e19c51229dd7900eddf742c" + integrity sha512-rIsE83Xpb7clHPVRlBj8qNe5L8ISQOzjghYQm/dZ7VaM2KHYwMW5adjQjrzTZCchFnNCNhkwtnOBa9HTMJCI8w== + dependencies: + "@stablelib/binary" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + +"@stablelib/sha256@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/sha256/-/sha256-1.0.1.tgz#77b6675b67f9b0ea081d2e31bda4866297a3ae4f" + integrity sha512-GIIH3e6KH+91FqGV42Kcj71Uefd/QEe7Dy42sBTeqppXV95ggCcxLTk39bEr+lZfJmp+ghsR07J++ORkRELsBQ== + dependencies: + "@stablelib/binary" "^1.0.1" + "@stablelib/hash" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + +"@stablelib/sha512@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/sha512/-/sha512-1.0.1.tgz#6da700c901c2c0ceacbd3ae122a38ac57c72145f" + integrity sha512-13gl/iawHV9zvDKciLo1fQ8Bgn2Pvf7OV6amaRVKiq3pjQ3UmEpXxWiAfV8tYjUpeZroBxtyrwtdooQT/i3hzw== + dependencies: + "@stablelib/binary" "^1.0.1" + "@stablelib/hash" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + +"@stablelib/wipe@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/wipe/-/wipe-1.0.1.tgz#d21401f1d59ade56a62e139462a97f104ed19a36" + integrity sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg== + +"@stablelib/x25519@^1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@stablelib/x25519/-/x25519-1.0.3.tgz#13c8174f774ea9f3e5e42213cbf9fc68a3c7b7fd" + integrity sha512-KnTbKmUhPhHavzobclVJQG5kuivH+qDLpe84iRqX3CLrKp881cF160JvXJ+hjn1aMyCwYOKeIZefIH/P5cJoRw== + dependencies: + "@stablelib/keyagreement" "^1.0.1" + "@stablelib/random" "^1.0.2" + "@stablelib/wipe" "^1.0.1" + +"@surma/rollup-plugin-off-main-thread@^2.2.3": + version "2.2.3" + resolved "https://registry.yarnpkg.com/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz#ee34985952ca21558ab0d952f00298ad2190c053" + integrity sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ== + dependencies: + ejs "^3.1.6" + json5 "^2.2.0" magic-string "^0.25.0" + string.prototype.matchall "^4.0.6" "@svgr/babel-plugin-add-jsx-attribute@^5.4.0": version "5.4.0" @@ -2068,7 +2901,7 @@ "@svgr/babel-plugin-transform-react-native-svg" "^5.4.0" "@svgr/babel-plugin-transform-svg-component" "^5.5.0" -"@svgr/core@^5.4.0": +"@svgr/core@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@svgr/core/-/core-5.5.0.tgz#82e826b8715d71083120fe8f2492ec7d7874a579" integrity sha512-q52VOcsJPvV3jO1wkPtzTuKlvX7Y3xIcWRpCMtBF3MrteZJtBfQw/+u0B1BHy5ColpQc1/YVTrPEtSYIMNZlrQ== @@ -2084,7 +2917,7 @@ dependencies: "@babel/types" "^7.12.6" -"@svgr/plugin-jsx@^5.4.0", "@svgr/plugin-jsx@^5.5.0": +"@svgr/plugin-jsx@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@svgr/plugin-jsx/-/plugin-jsx-5.5.0.tgz#1aa8cd798a1db7173ac043466d7b52236b369000" integrity sha512-V/wVh33j12hGh05IDg8GpIUXbjAPnTdPTKuP4VNLggnwaHMPNQNae2pRnyTAILWCQdz5GyMqtO488g7CKM8CBA== @@ -2094,7 +2927,7 @@ "@svgr/hast-util-to-babel-ast" "^5.5.0" svg-parser "^2.0.2" -"@svgr/plugin-svgo@^5.4.0": +"@svgr/plugin-svgo@^5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@svgr/plugin-svgo/-/plugin-svgo-5.5.0.tgz#02da55d85320549324e201c7b2e53bf431fcc246" integrity sha512-r5swKk46GuQl4RrVejVwpeeJaydoxkdwkM1mBKOgJLBUJPGaLci6ylg/IjhrRsREKDkr4kbMWdgOtbXEh0fyLQ== @@ -2103,20 +2936,27 @@ deepmerge "^4.2.2" svgo "^1.2.2" -"@svgr/webpack@5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@svgr/webpack/-/webpack-5.4.0.tgz#b68bc86e29cf007292b96ced65f80971175632e0" - integrity sha512-LjepnS/BSAvelnOnnzr6Gg0GcpLmnZ9ThGFK5WJtm1xOqdBE/1IACZU7MMdVzjyUkfFqGz87eRE4hFaSLiUwYg== - dependencies: - "@babel/core" "^7.9.0" - "@babel/plugin-transform-react-constant-elements" "^7.9.0" - "@babel/preset-env" "^7.9.5" - "@babel/preset-react" "^7.9.4" - "@svgr/core" "^5.4.0" - "@svgr/plugin-jsx" "^5.4.0" - "@svgr/plugin-svgo" "^5.4.0" +"@svgr/webpack@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@svgr/webpack/-/webpack-5.5.0.tgz#aae858ee579f5fa8ce6c3166ef56c6a1b381b640" + integrity sha512-DOBOK255wfQxguUta2INKkzPj6AIS6iafZYiYmHn6W3pHlycSRRlvWKCfLDG10fXfLWqE3DJHgRUOyJYmARa7g== + dependencies: + "@babel/core" "^7.12.3" + "@babel/plugin-transform-react-constant-elements" "^7.12.1" + "@babel/preset-env" "^7.12.1" + "@babel/preset-react" "^7.12.5" + "@svgr/core" "^5.5.0" + "@svgr/plugin-jsx" "^5.5.0" + "@svgr/plugin-svgo" "^5.5.0" loader-utils "^2.0.0" +"@swc/helpers@^0.5.0": + version "0.5.11" + resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.11.tgz#5bab8c660a6e23c13b2d23fcd1ee44a2db1b0cb7" + integrity sha512-YNlnKRWF2sVojTpIyzwou9XoTNbzbzONwRhOoniEioF1AtaitTvVZblaQRrAzChWQ1bLYyYSWzM18y4WwgzJ+A== + dependencies: + tslib "^2.4.0" + "@testing-library/dom@^7.28.1": version "7.31.2" resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-7.31.2.tgz#df361db38f5212b88555068ab8119f5d841a8c4a" @@ -2132,15 +2972,15 @@ pretty-format "^26.6.2" "@testing-library/jest-dom@^5.11.4": - version "5.16.1" - resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-5.16.1.tgz#3db7df5ae97596264a7da9696fe14695ba02e51f" - integrity sha512-ajUJdfDIuTCadB79ukO+0l8O+QwN0LiSxDaYUTI4LndbbUsGi6rWU1SCexXzBA2NSjlVB9/vbkasQIL3tmPBjw== + version "5.17.0" + resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-5.17.0.tgz#5e97c8f9a15ccf4656da00fecab505728de81e0c" + integrity sha512-ynmNeT7asXyH3aSVv4vvX4Rb+0qjOhdNHnO/3vuZNqPmhDpV/+rCSGwQ7bLcmU2cJ4dvoheIO85LQj0IbJHEtg== dependencies: + "@adobe/css-tools" "^4.0.1" "@babel/runtime" "^7.9.2" "@types/testing-library__jest-dom" "^5.9.1" aria-query "^5.0.0" chalk "^3.0.0" - css "^3.0.0" css.escape "^1.5.1" dom-accessibility-api "^0.5.6" lodash "^4.17.15" @@ -2166,43 +3006,61 @@ resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== +"@trysound/sax@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad" + integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== + +"@typeform/embed-react@^2.1.0": + version "2.31.0" + resolved "https://registry.yarnpkg.com/@typeform/embed-react/-/embed-react-2.31.0.tgz#60bd5c5d174d120a6c81dec14f0f6735f89fa6ab" + integrity sha512-DZKxt38/mi9cUDAwc5sofl7pMok2t5t8xX8RsxqG7m+2ytX7C3T/ih7zrP5tReBBM2u9mt3y3/llLSvASncqrw== + dependencies: + "@typeform/embed" "2.16.1" + fast-deep-equal "^3.1.3" + +"@typeform/embed@2.16.1": + version "2.16.1" + resolved "https://registry.yarnpkg.com/@typeform/embed/-/embed-2.16.1.tgz#1c40330c10941b80af7800648eaee625071af038" + integrity sha512-CId70qZjKs//Y/MP69U3di/HT6zUR609+QImsgm0gaFodKHAxBZ1bbeg1VkLDD2q5jPbnb+D0KBhE4B28lsOWQ== + "@types/aria-query@^4.2.0": version "4.2.2" resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-4.2.2.tgz#ed4e0ad92306a704f9fb132a0cfcf77486dbe2bc" integrity sha512-HnYpAE1Y6kRyKM/XkEuiRQhTHvkzMBurTHnpFLYLBGPIylZNPs9jJcuOOYWxPLJCSEtmZT0Y8rHDokKN7rRTig== -"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.7": - version "7.1.18" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.18.tgz#1a29abcc411a9c05e2094c98f9a1b7da6cdf49f8" - integrity sha512-S7unDjm/C7z2A2R9NzfKCK1I+BAALDtxEmsJBwlB3EzNfb929ykjL++1CK9LO++EIp2fQrC8O+BwjKvz6UeDyQ== +"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.14": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.5.tgz#3df15f27ba85319caa07ba08d0721889bb39c017" + integrity sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA== dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" + "@babel/parser" "^7.20.7" + "@babel/types" "^7.20.7" "@types/babel__generator" "*" "@types/babel__template" "*" "@types/babel__traverse" "*" "@types/babel__generator@*": - version "7.6.4" - resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.4.tgz#1f20ce4c5b1990b37900b63f050182d28c2439b7" - integrity sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg== + version "7.6.8" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.8.tgz#f836c61f48b1346e7d2b0d93c6dacc5b9535d3ab" + integrity sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw== dependencies: "@babel/types" "^7.0.0" "@types/babel__template@*": - version "7.4.1" - resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.1.tgz#3d1a48fd9d6c0edfd56f2ff578daed48f36c8969" - integrity sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g== + version "7.4.4" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.4.tgz#5672513701c1b2199bc6dad636a9d7491586766f" + integrity sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A== dependencies: "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" "@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.14.2.tgz#ffcd470bbb3f8bf30481678fb5502278ca833a43" - integrity sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA== + version "7.20.5" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.5.tgz#7b7502be0aa80cc4ef22978846b983edaafcd4dd" + integrity sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ== dependencies: - "@babel/types" "^7.3.0" + "@babel/types" "^7.20.7" "@types/bn.js@^4.11.3": version "4.11.6" @@ -2211,80 +3069,144 @@ dependencies: "@types/node" "*" -"@types/eslint@^7.28.2": - version "7.29.0" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.29.0.tgz#e56ddc8e542815272720bb0b4ccc2aff9c3e1c78" - integrity sha512-VNcvioYDH8/FxaeTKkM4/TiTwt6pBV9E3OfGmvaw8tPl0rrHCJ4Ll15HRT+pMiFAf/MLQvAzC+6RzUMEL9Ceng== +"@types/body-parser@*": + version "1.19.5" + resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.5.tgz#04ce9a3b677dc8bd681a17da1ab9835dc9d3ede4" + integrity sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg== dependencies: - "@types/estree" "*" - "@types/json-schema" "*" + "@types/connect" "*" + "@types/node" "*" -"@types/estree@*": - version "0.0.50" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.50.tgz#1e0caa9364d3fccd2931c3ed96fdbeaa5d4cca83" - integrity sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw== +"@types/bonjour@^3.5.9": + version "3.5.13" + resolved "https://registry.yarnpkg.com/@types/bonjour/-/bonjour-3.5.13.tgz#adf90ce1a105e81dd1f9c61fdc5afda1bfb92956" + integrity sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ== + dependencies: + "@types/node" "*" -"@types/estree@0.0.39": - version "0.0.39" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" - integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== +"@types/connect-history-api-fallback@^1.3.5": + version "1.5.4" + resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz#7de71645a103056b48ac3ce07b3520b819c1d5b3" + integrity sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw== + dependencies: + "@types/express-serve-static-core" "*" + "@types/node" "*" -"@types/glob@^7.1.1": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb" - integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== +"@types/connect@*": + version "3.4.38" + resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.38.tgz#5ba7f3bc4fbbdeaff8dded952e5ff2cc53f8d858" + integrity sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug== + dependencies: + "@types/node" "*" + +"@types/debug@^4.1.7": + version "4.1.12" + resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.12.tgz#a155f21690871953410df4b6b6f53187f0500917" + integrity sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ== + dependencies: + "@types/ms" "*" + +"@types/eslint-scope@^3.7.3": + version "3.7.7" + resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.7.tgz#3108bd5f18b0cdb277c867b3dd449c9ed7079ac5" + integrity sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg== + dependencies: + "@types/eslint" "*" + "@types/estree" "*" + +"@types/eslint@*", "@types/eslint@^7.29.0 || ^8.4.1": + version "8.56.10" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.56.10.tgz#eb2370a73bf04a901eeba8f22595c7ee0f7eb58d" + integrity sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ== + dependencies: + "@types/estree" "*" + "@types/json-schema" "*" + +"@types/estree@*", "@types/estree@^1.0.5": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" + integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== + +"@types/estree@0.0.39": + version "0.0.39" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" + integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== + +"@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.33": + version "4.19.0" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.19.0.tgz#3ae8ab3767d98d0b682cda063c3339e1e86ccfaa" + integrity sha512-bGyep3JqPCRry1wq+O5n7oiBgGWmeIJXPjXXCo8EK0u8duZGSYar7cGqd3ML2JUsLGeB7fmc06KYo9fLGWqPvQ== dependencies: - "@types/minimatch" "*" "@types/node" "*" + "@types/qs" "*" + "@types/range-parser" "*" + "@types/send" "*" + +"@types/express@*", "@types/express@^4.17.13": + version "4.17.21" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.21.tgz#c26d4a151e60efe0084b23dc3369ebc631ed192d" + integrity sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ== + dependencies: + "@types/body-parser" "*" + "@types/express-serve-static-core" "^4.17.33" + "@types/qs" "*" + "@types/serve-static" "*" "@types/graceful-fs@^4.1.2": - version "4.1.5" - resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.5.tgz#21ffba0d98da4350db64891f92a9e5db3cdb4e15" - integrity sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw== + version "4.1.9" + resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.9.tgz#2a06bc0f68a20ab37b3e36aa238be6abdf49e8b4" + integrity sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ== dependencies: "@types/node" "*" -"@types/history@*": - version "4.7.10" - resolved "https://registry.yarnpkg.com/@types/history/-/history-4.7.10.tgz#992865313bb97d80eefa6aab5f2e4f1e10e84e86" - integrity sha512-kq1vceWANyZLEt/+hbTWSAjLNhhXYgUw6Ywi0KQ9C7pZJP4Qrr0xjSKb3t59e5GwWtk1L6zt5KTxjH4oPk2l/w== +"@types/history@^4.7.11": + version "4.7.11" + resolved "https://registry.yarnpkg.com/@types/history/-/history-4.7.11.tgz#56588b17ae8f50c53983a524fc3cc47437969d64" + integrity sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA== -"@types/html-minifier-terser@^5.0.0": - version "5.1.2" - resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-5.1.2.tgz#693b316ad323ea97eed6b38ed1a3cc02b1672b57" - integrity sha512-h4lTMgMJctJybDp8CQrxTUiiYmedihHWkjnF/8Pxseu2S6Nlfcy8kwboQ8yejh456rP2yWoEVm1sS/FVsfM48w== +"@types/html-minifier-terser@^6.0.0": + version "6.1.0" + resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#4fc33a00c1d0c16987b1a20cf92d20614c55ac35" + integrity sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg== -"@types/invariant@^2.2.33": - version "2.2.35" - resolved "https://registry.yarnpkg.com/@types/invariant/-/invariant-2.2.35.tgz#cd3ebf581a6557452735688d8daba6cf0bd5a3be" - integrity sha512-DxX1V9P8zdJPYQat1gHyY0xj3efl8gnMVjiM9iCY6y27lj+PoQWkgjt8jDqmovPqULkKVpKRg8J36iQiA+EtEg== +"@types/http-errors@*": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.4.tgz#7eb47726c391b7345a6ec35ad7f4de469cf5ba4f" + integrity sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA== + +"@types/http-proxy@^1.17.8": + version "1.17.14" + resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.14.tgz#57f8ccaa1c1c3780644f8a94f9c6b5000b5e2eec" + integrity sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w== + dependencies: + "@types/node" "*" "@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#8467d4b3c087805d63580480890791277ce35c44" - integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g== + version "2.0.6" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz#7739c232a1fee9b4d3ce8985f314c0c6d33549d7" + integrity sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w== "@types/istanbul-lib-report@*": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" - integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz#53047614ae72e19fc0401d872de3ae2b4ce350bf" + integrity sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA== dependencies: "@types/istanbul-lib-coverage" "*" "@types/istanbul-reports@^3.0.0": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz#9153fe98bba2bd565a63add9436d6f0d7f8468ff" - integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw== + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz#0f03e3d2f670fbdac586e34b433783070cc16f54" + integrity sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ== dependencies: "@types/istanbul-lib-report" "*" "@types/jest@*": - version "27.4.0" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-27.4.0.tgz#037ab8b872067cae842a320841693080f9cb84ed" - integrity sha512-gHl8XuC1RZ8H2j5sHv/JqsaxXkDDM9iDOgu0Wp8sjs4u/snb2PVehyWXJPr+ORA0RPpgw231mnutWI1+0hgjIQ== + version "29.5.12" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.12.tgz#7f7dc6eb4cf246d2474ed78744b05d06ce025544" + integrity sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw== dependencies: - jest-diff "^27.0.0" - pretty-format "^27.0.0" + expect "^29.0.0" + pretty-format "^29.0.0" "@types/jest@^26.0.15": version "26.0.24" @@ -2294,645 +3216,944 @@ jest-diff "^26.0.0" pretty-format "^26.0.0" -"@types/json-schema@*", "@types/json-schema@^7.0.3", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.7", "@types/json-schema@^7.0.8": - version "7.0.9" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d" - integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ== +"@types/json-schema@*", "@types/json-schema@^7.0.4", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": + version "7.0.15" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" + integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== "@types/json5@^0.0.29": version "0.0.29" resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" - integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= + integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== + +"@types/mime@^1": + version "1.3.5" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.5.tgz#1ef302e01cf7d2b5a0fa526790c9123bf1d06690" + integrity sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w== -"@types/minimatch@*", "@types/minimatch@^3.0.3": +"@types/minimatch@^3.0.3": version "3.0.5" resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40" integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== -"@types/node@*": - version "17.0.8" - resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.8.tgz#50d680c8a8a78fe30abe6906453b21ad8ab0ad7b" - integrity sha512-YofkM6fGv4gDJq78g4j0mMuGMkZVxZDgtU0JRdx6FgiJDG+0fY0GKVolOV8WqVmEhLCXkQRjwDdKyPxJp/uucg== +"@types/ms@*": + version "0.7.34" + resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.34.tgz#10964ba0dee6ac4cd462e2795b6bebd407303433" + integrity sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g== -"@types/node@^14.14.2": - version "14.18.5" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.5.tgz#0dd636fe7b2c6055cbed0d4ca3b7fb540f130a96" - integrity sha512-LMy+vDDcQR48EZdEx5wRX1q/sEl6NdGuHXPnfeL8ixkwCOSZ2qnIyIZmcCbdX0MeRqHhAcHmX+haCbrS8Run+A== +"@types/node-forge@^1.3.0": + version "1.3.11" + resolved "https://registry.yarnpkg.com/@types/node-forge/-/node-forge-1.3.11.tgz#0972ea538ddb0f4d9c2fa0ec5db5724773a604da" + integrity sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ== + dependencies: + "@types/node" "*" -"@types/normalize-package-data@^2.4.0": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" - integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== +"@types/node@*": + version "20.12.11" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.12.11.tgz#c4ef00d3507000d17690643278a60dc55a9dc9be" + integrity sha512-vDg9PZ/zi+Nqp6boSOT7plNuthRugEKixDv5sFTIpkE89MmNtEArAShI4mxuX2+UrLEe9pxC1vm2cjm9YlWbJw== + dependencies: + undici-types "~5.26.4" "@types/parse-json@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" - integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== + version "4.0.2" + resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.2.tgz#5950e50960793055845e956c427fc2b0d70c5239" + integrity sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw== "@types/pbkdf2@^3.0.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@types/pbkdf2/-/pbkdf2-3.1.0.tgz#039a0e9b67da0cdc4ee5dab865caa6b267bb66b1" - integrity sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ== + version "3.1.2" + resolved "https://registry.yarnpkg.com/@types/pbkdf2/-/pbkdf2-3.1.2.tgz#2dc43808e9985a2c69ff02e2d2027bd4fe33e8dc" + integrity sha512-uRwJqmiXmh9++aSu1VNEn3iIxWOhd8AHXNSdlaLfdAAdSTY9jYVeGWnzejM3dvrkbqE3/hyQkQQ29IFATEGlew== dependencies: "@types/node" "*" -"@types/prettier@^2.0.0": - version "2.4.2" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.4.2.tgz#4c62fae93eb479660c3bd93f9d24d561597a8281" - integrity sha512-ekoj4qOQYp7CvjX8ZDBgN86w3MqQhLE1hczEJbEIjgFEumDy+na/4AJAbLXfgEWFNB2pKadM5rPFtuSGMWK7xA== +"@types/prettier@^2.1.5": + version "2.7.3" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.3.tgz#3e51a17e291d01d17d3fc61422015a933af7a08f" + integrity sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA== -"@types/prop-types@*", "@types/prop-types@^15.7.3": - version "15.7.4" - resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.4.tgz#fcf7205c25dff795ee79af1e30da2c9790808f11" - integrity sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ== +"@types/prop-types@*": + version "15.7.12" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.12.tgz#12bb1e2be27293c1406acb6af1c3f3a1481d98c6" + integrity sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q== "@types/q@^1.5.1": - version "1.5.5" - resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.5.tgz#75a2a8e7d8ab4b230414505d92335d1dcb53a6df" - integrity sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ== + version "1.5.8" + resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.8.tgz#95f6c6a08f2ad868ba230ead1d2d7f7be3db3837" + integrity sha512-hroOstUScF6zhIi+5+x0dzqrHA1EJi+Irri6b1fxolMTqqHIV/Cg77EtnQcZqZCu8hR3mX2BzIxN4/GzI68Kfw== + +"@types/qs@*": + version "6.9.15" + resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.15.tgz#adde8a060ec9c305a82de1babc1056e73bd64dce" + integrity sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg== + +"@types/range-parser@*": + version "1.2.7" + resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.7.tgz#50ae4353eaaddc04044279812f52c8c65857dbcb" + integrity sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ== "@types/react-blockies@^1.4.1": - version "1.4.1" - resolved "https://registry.yarnpkg.com/@types/react-blockies/-/react-blockies-1.4.1.tgz#d5f6fff8ece3e90f2e7708f8f3156c87333312df" - integrity sha512-aDX0g0hwzdodkGLSDNUQr6gXxwclGjnhS8jhsR8uQhAfe/7i3GZD/NDcSlQ2SiQiLhfRxX3NlY+nvBwf5Y0tTg== + version "1.4.4" + resolved "https://registry.yarnpkg.com/@types/react-blockies/-/react-blockies-1.4.4.tgz#17c3650b89fdc267a4a9a9668dbb35ed7834c7dd" + integrity sha512-7QfFeT1y/izwP/Wxmnl9Ii73udFQIBsfI/IvG+841sPxqc7Pf79ZDZP3XQsmYzAjDXdoZXquLgI/Q/tmAZwB0w== dependencies: "@types/react" "*" -"@types/react-dom@^16.9.8": - version "16.9.14" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-16.9.14.tgz#674b8f116645fe5266b40b525777fc6bb8eb3bcd" - integrity sha512-FIX2AVmPTGP30OUJ+0vadeIFJJ07Mh1m+U0rxfgyW34p3rTlXI+nlenvAxNn4BP36YyI9IJ/+UJ7Wu22N1pI7A== +"@types/react-dom@^18.0.8": + version "18.3.0" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.3.0.tgz#0cbc818755d87066ab6ca74fbedb2547d74a82b0" + integrity sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg== dependencies: - "@types/react" "^16" + "@types/react" "*" "@types/react-router-dom@^5.1.6": - version "5.3.2" - resolved "https://registry.yarnpkg.com/@types/react-router-dom/-/react-router-dom-5.3.2.tgz#ebd8e145cf056db5c66eb1dac63c72f52e8542ee" - integrity sha512-ELEYRUie2czuJzaZ5+ziIp9Hhw+juEw8b7C11YNA4QdLCVbQ3qLi2l4aq8XnlqM7V31LZX8dxUuFUCrzHm6sqQ== + version "5.3.3" + resolved "https://registry.yarnpkg.com/@types/react-router-dom/-/react-router-dom-5.3.3.tgz#e9d6b4a66fcdbd651a5f106c2656a30088cc1e83" + integrity sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw== dependencies: - "@types/history" "*" + "@types/history" "^4.7.11" "@types/react" "*" "@types/react-router" "*" "@types/react-router@*": - version "5.1.17" - resolved "https://registry.yarnpkg.com/@types/react-router/-/react-router-5.1.17.tgz#087091006213b11042f39570e5cd414863693968" - integrity sha512-RNSXOyb3VyRs/EOGmjBhhGKTbnN6fHWvy5FNLzWfOWOGjgVUKqJZXfpKzLmgoU8h6Hj8mpALj/mbXQASOb92wQ== + version "5.1.20" + resolved "https://registry.yarnpkg.com/@types/react-router/-/react-router-5.1.20.tgz#88eccaa122a82405ef3efbcaaa5dcdd9f021387c" + integrity sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q== dependencies: - "@types/history" "*" + "@types/history" "^4.7.11" "@types/react" "*" -"@types/react-transition-group@^4.4.1": - version "4.4.4" - resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.4.tgz#acd4cceaa2be6b757db61ed7b432e103242d163e" - integrity sha512-7gAPz7anVK5xzbeQW9wFBDg7G++aPLAFY0QaSMOou9rJZpbuI58WAuJrgu+qR92l61grlnCUe7AFX8KGahAgug== +"@types/react-transition-group@^4.4.6": + version "4.4.10" + resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.10.tgz#6ee71127bdab1f18f11ad8fb3322c6da27c327ac" + integrity sha512-hT/+s0VQs2ojCX823m60m5f0sL5idt9SO6Tj6Dg+rdphGPIeJbJ6CxvBYkgkGKrYeDjvIpKTR38UzmtHJOGW3Q== dependencies: "@types/react" "*" -"@types/react@*", "@types/react@>=16.14.8", "@types/react@>=16.9.11": - version "17.0.38" - resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.38.tgz#f24249fefd89357d5fa71f739a686b8d7c7202bd" - integrity sha512-SI92X1IA+FMnP3qM5m4QReluXzhcmovhZnLNm3pyeQlooi02qI7sLiepEYqT678uNiyc25XfCqxREFpy3W7YhQ== +"@types/react@*", "@types/react@>=16.9.11", "@types/react@^18.0.24": + version "18.3.2" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.3.2.tgz#462ae4904973bc212fa910424d901e3d137dbfcd" + integrity sha512-Btgg89dAnqD4vV7R3hlwOxgqobUQKgx3MmrQRi0yYbs/P0ym8XozIAlkqVilPqHQwXs4e9Tf63rrCgl58BcO4w== dependencies: "@types/prop-types" "*" - "@types/scheduler" "*" csstype "^3.0.2" -"@types/react@^16", "@types/react@^16.9.53": - version "16.14.21" - resolved "https://registry.yarnpkg.com/@types/react/-/react-16.14.21.tgz#35199b21a278355ec7a3c40003bd6a334bd4ae4a" - integrity sha512-rY4DzPKK/4aohyWiDRHS2fotN5rhBSK6/rz1X37KzNna9HJyqtaGAbq9fVttrEPWF5ywpfIP1ITL8Xi2QZn6Eg== +"@types/resolve@1.17.1": + version "1.17.1" + resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.17.1.tgz#3afd6ad8967c77e4376c598a82ddd58f46ec45d6" + integrity sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw== dependencies: - "@types/prop-types" "*" - "@types/scheduler" "*" - csstype "^3.0.2" + "@types/node" "*" -"@types/resolve@0.0.8": - version "0.0.8" - resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-0.0.8.tgz#f26074d238e02659e323ce1a13d041eee280e194" - integrity sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ== +"@types/retry@0.12.0": + version "0.12.0" + resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.0.tgz#2b35eccfcee7d38cd72ad99232fbd58bffb3c84d" + integrity sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA== + +"@types/secp256k1@^4.0.1": + version "4.0.6" + resolved "https://registry.yarnpkg.com/@types/secp256k1/-/secp256k1-4.0.6.tgz#d60ba2349a51c2cbc5e816dcd831a42029d376bf" + integrity sha512-hHxJU6PAEUn0TP4S/ZOzuTUvJWuZ6eIKeNKb5RBpODvSl6hp1Wrw4s7ATY50rklRCScUDpHzVA/DQdSjJ3UoYQ== dependencies: "@types/node" "*" -"@types/scheduler@*": - version "0.16.2" - resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39" - integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew== +"@types/semver@^7.3.12": + version "7.5.8" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.8.tgz#8268a8c57a3e4abd25c165ecd36237db7948a55e" + integrity sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ== -"@types/secp256k1@^4.0.1": - version "4.0.3" - resolved "https://registry.yarnpkg.com/@types/secp256k1/-/secp256k1-4.0.3.tgz#1b8e55d8e00f08ee7220b4d59a6abe89c37a901c" - integrity sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w== +"@types/send@*": + version "0.17.4" + resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.4.tgz#6619cd24e7270793702e4e6a4b958a9010cfc57a" + integrity sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA== dependencies: + "@types/mime" "^1" "@types/node" "*" -"@types/source-list-map@*": - version "0.1.2" - resolved "https://registry.yarnpkg.com/@types/source-list-map/-/source-list-map-0.1.2.tgz#0078836063ffaf17412349bba364087e0ac02ec9" - integrity sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA== +"@types/serve-index@^1.9.1": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@types/serve-index/-/serve-index-1.9.4.tgz#e6ae13d5053cb06ed36392110b4f9a49ac4ec898" + integrity sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug== + dependencies: + "@types/express" "*" -"@types/stack-utils@^2.0.0": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" - integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== +"@types/serve-static@*", "@types/serve-static@^1.13.10": + version "1.15.7" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.7.tgz#22174bbd74fb97fe303109738e9b5c2f3064f714" + integrity sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw== + dependencies: + "@types/http-errors" "*" + "@types/node" "*" + "@types/send" "*" -"@types/tapable@^1", "@types/tapable@^1.0.5": - version "1.0.8" - resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.8.tgz#b94a4391c85666c7b73299fd3ad79d4faa435310" - integrity sha512-ipixuVrh2OdNmauvtT51o3d8z12p6LtFW9in7U79der/kwejjdNchQC5UMn5u/KxNoM7VHHOs/l8KS8uHxhODQ== +"@types/sockjs@^0.3.33": + version "0.3.36" + resolved "https://registry.yarnpkg.com/@types/sockjs/-/sockjs-0.3.36.tgz#ce322cf07bcc119d4cbf7f88954f3a3bd0f67535" + integrity sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q== + dependencies: + "@types/node" "*" + +"@types/stack-utils@^2.0.0": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.3.tgz#6209321eb2c1712a7e7466422b8cb1fc0d9dd5d8" + integrity sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw== "@types/testing-library__jest-dom@^5.9.1": - version "5.14.2" - resolved "https://registry.yarnpkg.com/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.2.tgz#564fb2b2dc827147e937a75b639a05d17ce18b44" - integrity sha512-vehbtyHUShPxIa9SioxDwCvgxukDMH//icJG90sXQBUm5lJOHLT5kNeU9tnivhnA/TkOFMzGIXN2cTc4hY8/kg== + version "5.14.9" + resolved "https://registry.yarnpkg.com/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.9.tgz#0fb1e6a0278d87b6737db55af5967570b67cb466" + integrity sha512-FSYhIjFlfOpGSRyVoMBMuS3ws5ehFQODymf3vlI7U1K8c7PHwWwFY7VREfmsuzHSOnoKs/9/Y983ayOs7eRzqw== dependencies: "@types/jest" "*" -"@types/uglify-js@*": - version "3.13.1" - resolved "https://registry.yarnpkg.com/@types/uglify-js/-/uglify-js-3.13.1.tgz#5e889e9e81e94245c75b6450600e1c5ea2878aea" - integrity sha512-O3MmRAk6ZuAKa9CHgg0Pr0+lUOqoMLpc9AS4R8ano2auvsg7IE8syF3Xh/NPr26TWklxYcqoEEFdzLLs1fV9PQ== - dependencies: - source-map "^0.6.1" +"@types/trusted-types@^2.0.2": + version "2.0.7" + resolved "https://registry.yarnpkg.com/@types/trusted-types/-/trusted-types-2.0.7.tgz#baccb07a970b91707df3a3e8ba6896c57ead2d11" + integrity sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw== "@types/warning@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/warning/-/warning-3.0.0.tgz#0d2501268ad8f9962b740d387c4654f5f8e23e52" - integrity sha1-DSUBJorY+ZYrdA04fEZU9fjiPlI= - -"@types/webpack-sources@*": - version "3.2.0" - resolved "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-3.2.0.tgz#16d759ba096c289034b26553d2df1bf45248d38b" - integrity sha512-Ft7YH3lEVRQ6ls8k4Ff1oB4jN6oy/XmU6tQISKdhfh+1mR+viZFphS6WL0IrtDOzvefmJg5a0s7ZQoRXwqTEFg== - dependencies: - "@types/node" "*" - "@types/source-list-map" "*" - source-map "^0.7.3" + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/warning/-/warning-3.0.3.tgz#d1884c8cc4a426d1ac117ca2611bf333834c6798" + integrity sha512-D1XC7WK8K+zZEveUPY+cf4+kgauk8N4eHr/XIHXGlGYkHLud6hK9lYfZk1ry1TNh798cZUCgb6MqGEG8DkJt6Q== -"@types/webpack@^4.41.8": - version "4.41.32" - resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.32.tgz#a7bab03b72904070162b2f169415492209e94212" - integrity sha512-cb+0ioil/7oz5//7tZUSwbrSAN/NWHrQylz5cW8G0dWTcF/g+/dSdMlKVZspBYuMAN1+WnwHrkxiRrLcwd0Heg== +"@types/ws@^8.5.5": + version "8.5.10" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.10.tgz#4acfb517970853fa6574a3a6886791d04a396787" + integrity sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A== dependencies: "@types/node" "*" - "@types/tapable" "^1" - "@types/uglify-js" "*" - "@types/webpack-sources" "*" - anymatch "^3.0.0" - source-map "^0.6.0" "@types/yargs-parser@*": - version "20.2.1" - resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.1.tgz#3b9ce2489919d9e4fea439b76916abc34b2df129" - integrity sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw== + version "21.0.3" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz#815e30b786d2e8f0dcd85fd5bcf5e1a04d008f15" + integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ== "@types/yargs@^15.0.0": - version "15.0.14" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.14.tgz#26d821ddb89e70492160b66d10a0eb6df8f6fb06" - integrity sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ== + version "15.0.19" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.19.tgz#328fb89e46109ecbdb70c295d96ff2f46dfd01b9" + integrity sha512-2XUaGVmyQjgyAZldf0D0c14vvo/yv0MhQBSTJcejMMaitsn3nxCB6TmH4G0ZQf+uxROOa9mpanoSm8h6SG/1ZA== dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@^4.5.0": - version "4.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.33.0.tgz#c24dc7c8069c7706bc40d99f6fa87edcb2005276" - integrity sha512-aINiAxGVdOl1eJyVjaWn/YcVAq4Gi/Yo35qHGCnqbWVz61g39D0h23veY/MA0rFFGfxK7TySg2uwDeNv+JgVpg== +"@types/yargs@^16.0.0": + version "16.0.9" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-16.0.9.tgz#ba506215e45f7707e6cbcaf386981155b7ab956e" + integrity sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA== dependencies: - "@typescript-eslint/experimental-utils" "4.33.0" - "@typescript-eslint/scope-manager" "4.33.0" - debug "^4.3.1" - functional-red-black-tree "^1.0.1" - ignore "^5.1.8" - regexpp "^3.1.0" - semver "^7.3.5" - tsutils "^3.21.0" + "@types/yargs-parser" "*" -"@typescript-eslint/experimental-utils@4.33.0", "@typescript-eslint/experimental-utils@^4.0.1": - version "4.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.33.0.tgz#6f2a786a4209fa2222989e9380b5331b2810f7fd" - integrity sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q== +"@types/yargs@^17.0.8": + version "17.0.32" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.32.tgz#030774723a2f7faafebf645f4e5a48371dca6229" + integrity sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog== dependencies: - "@types/json-schema" "^7.0.7" - "@typescript-eslint/scope-manager" "4.33.0" - "@typescript-eslint/types" "4.33.0" - "@typescript-eslint/typescript-estree" "4.33.0" - eslint-scope "^5.1.1" - eslint-utils "^3.0.0" - -"@typescript-eslint/experimental-utils@^3.10.1": - version "3.10.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-3.10.1.tgz#e179ffc81a80ebcae2ea04e0332f8b251345a686" - integrity sha512-DewqIgscDzmAfd5nOGe4zm6Bl7PKtMG2Ad0KG8CUZAHlXfAKTF9Ol5PXhiMh39yRL2ChRH1cuuUGOcVyyrhQIw== - dependencies: - "@types/json-schema" "^7.0.3" - "@typescript-eslint/types" "3.10.1" - "@typescript-eslint/typescript-estree" "3.10.1" - eslint-scope "^5.0.0" - eslint-utils "^2.0.0" - -"@typescript-eslint/parser@^4.5.0": - version "4.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.33.0.tgz#dfe797570d9694e560528d18eecad86c8c744899" - integrity sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA== - dependencies: - "@typescript-eslint/scope-manager" "4.33.0" - "@typescript-eslint/types" "4.33.0" - "@typescript-eslint/typescript-estree" "4.33.0" - debug "^4.3.1" + "@types/yargs-parser" "*" -"@typescript-eslint/scope-manager@4.33.0": - version "4.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz#d38e49280d983e8772e29121cf8c6e9221f280a3" - integrity sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ== +"@typescript-eslint/eslint-plugin@^5.5.0": + version "5.62.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz#aeef0328d172b9e37d9bab6dbc13b87ed88977db" + integrity sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag== + dependencies: + "@eslint-community/regexpp" "^4.4.0" + "@typescript-eslint/scope-manager" "5.62.0" + "@typescript-eslint/type-utils" "5.62.0" + "@typescript-eslint/utils" "5.62.0" + debug "^4.3.4" + graphemer "^1.4.0" + ignore "^5.2.0" + natural-compare-lite "^1.4.0" + semver "^7.3.7" + tsutils "^3.21.0" + +"@typescript-eslint/experimental-utils@^5.0.0": + version "5.62.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.62.0.tgz#14559bf73383a308026b427a4a6129bae2146741" + integrity sha512-RTXpeB3eMkpoclG3ZHft6vG/Z30azNHuqY6wKPBHlVMZFuEvrtlEDe8gMqDb+SO+9hjC/pLekeSCryf9vMZlCw== dependencies: - "@typescript-eslint/types" "4.33.0" - "@typescript-eslint/visitor-keys" "4.33.0" + "@typescript-eslint/utils" "5.62.0" -"@typescript-eslint/types@3.10.1": - version "3.10.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-3.10.1.tgz#1d7463fa7c32d8a23ab508a803ca2fe26e758727" - integrity sha512-+3+FCUJIahE9q0lDi1WleYzjCwJs5hIsbugIgnbB+dSCYUxl8L6PwmsyOPFZde2hc1DlTo/xnkOgiTLSyAbHiQ== +"@typescript-eslint/parser@^5.5.0": + version "5.62.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.62.0.tgz#1b63d082d849a2fcae8a569248fbe2ee1b8a56c7" + integrity sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA== + dependencies: + "@typescript-eslint/scope-manager" "5.62.0" + "@typescript-eslint/types" "5.62.0" + "@typescript-eslint/typescript-estree" "5.62.0" + debug "^4.3.4" -"@typescript-eslint/types@4.33.0": - version "4.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.33.0.tgz#a1e59036a3b53ae8430ceebf2a919dc7f9af6d72" - integrity sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ== +"@typescript-eslint/scope-manager@5.62.0": + version "5.62.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz#d9457ccc6a0b8d6b37d0eb252a23022478c5460c" + integrity sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w== + dependencies: + "@typescript-eslint/types" "5.62.0" + "@typescript-eslint/visitor-keys" "5.62.0" -"@typescript-eslint/typescript-estree@3.10.1": - version "3.10.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-3.10.1.tgz#fd0061cc38add4fad45136d654408569f365b853" - integrity sha512-QbcXOuq6WYvnB3XPsZpIwztBoquEYLXh2MtwVU+kO8jgYCiv4G5xrSP/1wg4tkvrEE+esZVquIPX/dxPlePk1w== +"@typescript-eslint/type-utils@5.62.0": + version "5.62.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz#286f0389c41681376cdad96b309cedd17d70346a" + integrity sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew== dependencies: - "@typescript-eslint/types" "3.10.1" - "@typescript-eslint/visitor-keys" "3.10.1" - debug "^4.1.1" - glob "^7.1.6" - is-glob "^4.0.1" - lodash "^4.17.15" - semver "^7.3.2" - tsutils "^3.17.1" + "@typescript-eslint/typescript-estree" "5.62.0" + "@typescript-eslint/utils" "5.62.0" + debug "^4.3.4" + tsutils "^3.21.0" -"@typescript-eslint/typescript-estree@4.33.0": - version "4.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz#0dfb51c2908f68c5c08d82aefeaf166a17c24609" - integrity sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA== +"@typescript-eslint/types@5.62.0": + version "5.62.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.62.0.tgz#258607e60effa309f067608931c3df6fed41fd2f" + integrity sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ== + +"@typescript-eslint/typescript-estree@5.62.0": + version "5.62.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz#7d17794b77fabcac615d6a48fb143330d962eb9b" + integrity sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA== dependencies: - "@typescript-eslint/types" "4.33.0" - "@typescript-eslint/visitor-keys" "4.33.0" - debug "^4.3.1" - globby "^11.0.3" - is-glob "^4.0.1" - semver "^7.3.5" + "@typescript-eslint/types" "5.62.0" + "@typescript-eslint/visitor-keys" "5.62.0" + debug "^4.3.4" + globby "^11.1.0" + is-glob "^4.0.3" + semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/visitor-keys@3.10.1": - version "3.10.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-3.10.1.tgz#cd4274773e3eb63b2e870ac602274487ecd1e931" - integrity sha512-9JgC82AaQeglebjZMgYR5wgmfUdUc+EitGUUMW8u2nDckaeimzW+VsoLV6FoimPv2id3VQzfjwBxEMVz08ameQ== +"@typescript-eslint/utils@5.62.0", "@typescript-eslint/utils@^5.58.0": + version "5.62.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.62.0.tgz#141e809c71636e4a75daa39faed2fb5f4b10df86" + integrity sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@types/json-schema" "^7.0.9" + "@types/semver" "^7.3.12" + "@typescript-eslint/scope-manager" "5.62.0" + "@typescript-eslint/types" "5.62.0" + "@typescript-eslint/typescript-estree" "5.62.0" + eslint-scope "^5.1.1" + semver "^7.3.7" + +"@typescript-eslint/visitor-keys@5.62.0": + version "5.62.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz#2174011917ce582875954ffe2f6912d5931e353e" + integrity sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw== dependencies: - eslint-visitor-keys "^1.1.0" + "@typescript-eslint/types" "5.62.0" + eslint-visitor-keys "^3.3.0" -"@typescript-eslint/visitor-keys@4.33.0": - version "4.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz#2a22f77a41604289b7a186586e9ec48ca92ef1dd" - integrity sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg== +"@ungap/structured-clone@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" + integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== + +"@vue/compiler-core@3.4.27": + version "3.4.27" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.4.27.tgz#e69060f4b61429fe57976aa5872cfa21389e4d91" + integrity sha512-E+RyqY24KnyDXsCuQrI+mlcdW3ALND6U7Gqa/+bVwbcpcR3BRRIckFoz7Qyd4TTlnugtwuI7YgjbvsLmxb+yvg== + dependencies: + "@babel/parser" "^7.24.4" + "@vue/shared" "3.4.27" + entities "^4.5.0" + estree-walker "^2.0.2" + source-map-js "^1.2.0" + +"@vue/compiler-dom@3.4.27": + version "3.4.27" + resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.4.27.tgz#d51d35f40d00ce235d7afc6ad8b09dfd92b1cc1c" + integrity sha512-kUTvochG/oVgE1w5ViSr3KUBh9X7CWirebA3bezTbB5ZKBQZwR2Mwj9uoSKRMFcz4gSMzzLXBPD6KpCLb9nvWw== + dependencies: + "@vue/compiler-core" "3.4.27" + "@vue/shared" "3.4.27" + +"@vue/compiler-sfc@3.4.27": + version "3.4.27" + resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.4.27.tgz#399cac1b75c6737bf5440dc9cf3c385bb2959701" + integrity sha512-nDwntUEADssW8e0rrmE0+OrONwmRlegDA1pD6QhVeXxjIytV03yDqTey9SBDiALsvAd5U4ZrEKbMyVXhX6mCGA== + dependencies: + "@babel/parser" "^7.24.4" + "@vue/compiler-core" "3.4.27" + "@vue/compiler-dom" "3.4.27" + "@vue/compiler-ssr" "3.4.27" + "@vue/shared" "3.4.27" + estree-walker "^2.0.2" + magic-string "^0.30.10" + postcss "^8.4.38" + source-map-js "^1.2.0" + +"@vue/compiler-ssr@3.4.27": + version "3.4.27" + resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.4.27.tgz#2a8ecfef1cf448b09be633901a9c020360472e3d" + integrity sha512-CVRzSJIltzMG5FcidsW0jKNQnNRYC8bT21VegyMMtHmhW3UOI7knmUehzswXLrExDLE6lQCZdrhD4ogI7c+vuw== + dependencies: + "@vue/compiler-dom" "3.4.27" + "@vue/shared" "3.4.27" + +"@vue/reactivity@3.4.27": + version "3.4.27" + resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.4.27.tgz#6ece72331bf719953f5eaa95ec60b2b8d49e3791" + integrity sha512-kK0g4NknW6JX2yySLpsm2jlunZJl2/RJGZ0H9ddHdfBVHcNzxmQ0sS0b09ipmBoQpY8JM2KmUw+a6sO8Zo+zIA== + dependencies: + "@vue/shared" "3.4.27" + +"@vue/runtime-core@3.4.27": + version "3.4.27" + resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.4.27.tgz#1b6e1d71e4604ba7442dd25ed22e4a1fc6adbbda" + integrity sha512-7aYA9GEbOOdviqVvcuweTLe5Za4qBZkUY7SvET6vE8kyypxVgaT1ixHLg4urtOlrApdgcdgHoTZCUuTGap/5WA== + dependencies: + "@vue/reactivity" "3.4.27" + "@vue/shared" "3.4.27" + +"@vue/runtime-dom@3.4.27": + version "3.4.27" + resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.4.27.tgz#fe8d1ce9bbe8921d5dd0ad5c10df0e04ef7a5ee7" + integrity sha512-ScOmP70/3NPM+TW9hvVAz6VWWtZJqkbdf7w6ySsws+EsqtHvkhxaWLecrTorFxsawelM5Ys9FnDEMt6BPBDS0Q== + dependencies: + "@vue/runtime-core" "3.4.27" + "@vue/shared" "3.4.27" + csstype "^3.1.3" + +"@vue/server-renderer@3.4.27": + version "3.4.27" + resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.4.27.tgz#3306176f37e648ba665f97dda3ce705687be63d2" + integrity sha512-dlAMEuvmeA3rJsOMJ2J1kXU7o7pOxgsNHVr9K8hB3ImIkSuBrIdy0vF66h8gf8Tuinf1TK3mPAz2+2sqyf3KzA== + dependencies: + "@vue/compiler-ssr" "3.4.27" + "@vue/shared" "3.4.27" + +"@vue/shared@3.4.27": + version "3.4.27" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.4.27.tgz#f05e3cd107d157354bb4ae7a7b5fc9cf73c63b50" + integrity sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA== + +"@walletconnect/core@2.11.1": + version "2.11.1" + resolved "https://registry.yarnpkg.com/@walletconnect/core/-/core-2.11.1.tgz#da2be26b8b6514c74f06dc9a5ffb450bdec3456d" + integrity sha512-T57Vd7YdbHPsy3tthBuwrhaZNafN0+PqjISFRNeJy/bsKdXxpJg2hGSARuOTpCO7V6VcaatqlaSMuG3DrnG5rA== + dependencies: + "@walletconnect/heartbeat" "1.2.1" + "@walletconnect/jsonrpc-provider" "1.0.13" + "@walletconnect/jsonrpc-types" "1.0.3" + "@walletconnect/jsonrpc-utils" "1.0.8" + "@walletconnect/jsonrpc-ws-connection" "1.0.14" + "@walletconnect/keyvaluestorage" "^1.1.1" + "@walletconnect/logger" "^2.0.1" + "@walletconnect/relay-api" "^1.0.9" + "@walletconnect/relay-auth" "^1.0.4" + "@walletconnect/safe-json" "^1.0.2" + "@walletconnect/time" "^1.0.2" + "@walletconnect/types" "2.11.1" + "@walletconnect/utils" "2.11.1" + events "^3.3.0" + isomorphic-unfetch "3.1.0" + lodash.isequal "4.5.0" + uint8arrays "^3.1.0" + +"@walletconnect/environment@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@walletconnect/environment/-/environment-1.0.1.tgz#1d7f82f0009ab821a2ba5ad5e5a7b8ae3b214cd7" + integrity sha512-T426LLZtHj8e8rYnKfzsw1aG6+M0BT1ZxayMdv/p8yM0MU+eJDISqNY3/bccxRr4LrF9csq02Rhqt08Ibl0VRg== + dependencies: + tslib "1.14.1" + +"@walletconnect/ethereum-provider@2.11.1": + version "2.11.1" + resolved "https://registry.yarnpkg.com/@walletconnect/ethereum-provider/-/ethereum-provider-2.11.1.tgz#6e0174ec9026940eaadeedc53417e222eb45f5aa" + integrity sha512-UfQH0ho24aa2M1xYmanbJv2ggQPebKmQytp2j20QEvURJ2R0v7YKWZ+0PfwOs6o6cuGw6gGxy/0WQXQRZSAsfg== + dependencies: + "@walletconnect/jsonrpc-http-connection" "^1.0.7" + "@walletconnect/jsonrpc-provider" "^1.0.13" + "@walletconnect/jsonrpc-types" "^1.0.3" + "@walletconnect/jsonrpc-utils" "^1.0.8" + "@walletconnect/modal" "^2.6.2" + "@walletconnect/sign-client" "2.11.1" + "@walletconnect/types" "2.11.1" + "@walletconnect/universal-provider" "2.11.1" + "@walletconnect/utils" "2.11.1" + events "^3.3.0" + +"@walletconnect/events@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@walletconnect/events/-/events-1.0.1.tgz#2b5f9c7202019e229d7ccae1369a9e86bda7816c" + integrity sha512-NPTqaoi0oPBVNuLv7qPaJazmGHs5JGyO8eEAk5VGKmJzDR7AHzD4k6ilox5kxk1iwiOnFopBOOMLs86Oa76HpQ== dependencies: - "@typescript-eslint/types" "4.33.0" - eslint-visitor-keys "^2.0.0" + keyvaluestorage-interface "^1.0.0" + tslib "1.14.1" -"@walletconnect/browser-utils@^1.7.1": - version "1.7.1" - resolved "https://registry.yarnpkg.com/@walletconnect/browser-utils/-/browser-utils-1.7.1.tgz#2a28846cd4d73166debbbf7d470e78ba25616f5e" - integrity sha512-y6KvxPhi52sWzS0/HtA3EhdgmtG8mXcxdc26YURDOVC/BJh3MxV8E16JFrT4InylOqYJs6dcSLWVfcnJaiPtZw== +"@walletconnect/heartbeat@1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@walletconnect/heartbeat/-/heartbeat-1.2.1.tgz#afaa3a53232ae182d7c9cff41c1084472d8f32e9" + integrity sha512-yVzws616xsDLJxuG/28FqtZ5rzrTA4gUjdEMTbWB5Y8V1XHRmqq4efAxCw5ie7WjbXFSUyBHaWlMR+2/CpQC5Q== dependencies: - "@walletconnect/safe-json" "1.0.0" - "@walletconnect/types" "^1.7.1" - "@walletconnect/window-getters" "1.0.0" - "@walletconnect/window-metadata" "1.0.0" - detect-browser "5.2.0" + "@walletconnect/events" "^1.0.1" + "@walletconnect/time" "^1.0.2" + tslib "1.14.1" -"@walletconnect/client@^1.7.1": - version "1.7.1" - resolved "https://registry.yarnpkg.com/@walletconnect/client/-/client-1.7.1.tgz#aaa74199bdc0605db9ac2ecdf8a463b271586d3b" - integrity sha512-xD8B8s1hL7Z5vJwb3L0u1bCVAk6cRQfIY9ycymf7KkmIhkAONQJNf2Y0C0xIpbPp2fdn9VwnSfLm5Ed/Ht/1IA== +"@walletconnect/jsonrpc-http-connection@^1.0.7": + version "1.0.8" + resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-http-connection/-/jsonrpc-http-connection-1.0.8.tgz#2f4c3948f074960a3edd07909560f3be13e2c7ae" + integrity sha512-+B7cRuaxijLeFDJUq5hAzNyef3e3tBDIxyaCNmFtjwnod5AGis3RToNqzFU33vpVcxFhofkpE7Cx+5MYejbMGw== dependencies: - "@walletconnect/core" "^1.7.1" - "@walletconnect/iso-crypto" "^1.7.1" - "@walletconnect/types" "^1.7.1" - "@walletconnect/utils" "^1.7.1" + "@walletconnect/jsonrpc-utils" "^1.0.6" + "@walletconnect/safe-json" "^1.0.1" + cross-fetch "^3.1.4" + events "^3.3.0" -"@walletconnect/core@^1.7.1": - version "1.7.1" - resolved "https://registry.yarnpkg.com/@walletconnect/core/-/core-1.7.1.tgz#321c14d63af81241658b028022e0e5fa6dc7f374" - integrity sha512-qO+4wykyRNiq3HEuaAA2pW2PDnMM4y7pyPAgiCwfHiqF4PpWvtcdB301hI0K5am9ghuqKZMy1HlE9LWNOEBvcw== +"@walletconnect/jsonrpc-provider@1.0.13": + version "1.0.13" + resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-provider/-/jsonrpc-provider-1.0.13.tgz#9a74da648d015e1fffc745f0c7d629457f53648b" + integrity sha512-K73EpThqHnSR26gOyNEL+acEex3P7VWZe6KE12ZwKzAt2H4e5gldZHbjsu2QR9cLeJ8AXuO7kEMOIcRv1QEc7g== dependencies: - "@walletconnect/socket-transport" "^1.7.1" - "@walletconnect/types" "^1.7.1" - "@walletconnect/utils" "^1.7.1" + "@walletconnect/jsonrpc-utils" "^1.0.8" + "@walletconnect/safe-json" "^1.0.2" + tslib "1.14.1" -"@walletconnect/crypto@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@walletconnect/crypto/-/crypto-1.0.1.tgz#d4c1b1cd5dd1be88fe9a82dfc54cadbbb3f9d325" - integrity sha512-IgUReNrycIFxkGgq8YT9HsosCkhutakWD9Q411PR0aJfxpEa/VKJeaLRtoz6DvJpztWStwhIHnAbBoOVR72a6g== +"@walletconnect/jsonrpc-provider@^1.0.13": + version "1.0.14" + resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-provider/-/jsonrpc-provider-1.0.14.tgz#696f3e3b6d728b361f2e8b853cfc6afbdf2e4e3e" + integrity sha512-rtsNY1XqHvWj0EtITNeuf8PHMvlCLiS3EjQL+WOkxEOA4KPxsohFnBDeyPYiNm4ZvkQdLnece36opYidmtbmow== dependencies: - "@walletconnect/encoding" "^1.0.0" - "@walletconnect/environment" "^1.0.0" - "@walletconnect/randombytes" "^1.0.1" - aes-js "^3.1.2" - hash.js "^1.1.7" + "@walletconnect/jsonrpc-utils" "^1.0.8" + "@walletconnect/safe-json" "^1.0.2" + events "^3.3.0" -"@walletconnect/encoding@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@walletconnect/encoding/-/encoding-1.0.0.tgz#e24190cb5e803526f9dfd7191fb0e4dc53c6d864" - integrity sha512-4nkJFnS0QF5JdieG/3VPD1/iEWkLSZ14EBInLZ00RWxmC6EMZrzAeHNAWIgm+xP3NK0lqz+7lEsmWGtcl5gYnQ== +"@walletconnect/jsonrpc-types@1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-types/-/jsonrpc-types-1.0.3.tgz#65e3b77046f1a7fa8347ae02bc1b841abe6f290c" + integrity sha512-iIQ8hboBl3o5ufmJ8cuduGad0CQm3ZlsHtujv9Eu16xq89q+BG7Nh5VLxxUgmtpnrePgFkTwXirCTkwJH1v+Yw== dependencies: - is-typedarray "1.0.0" - typedarray-to-buffer "3.1.5" + keyvaluestorage-interface "^1.0.0" + tslib "1.14.1" -"@walletconnect/environment@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@walletconnect/environment/-/environment-1.0.0.tgz#c4545869fa9c389ec88c364e1a5f8178e8ab5034" - integrity sha512-4BwqyWy6KpSvkocSaV7WR3BlZfrxLbJSLkg+j7Gl6pTDE+U55lLhJvQaMuDVazXYxcjBsG09k7UlH7cGiUI5vQ== +"@walletconnect/jsonrpc-types@^1.0.2", "@walletconnect/jsonrpc-types@^1.0.3": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-types/-/jsonrpc-types-1.0.4.tgz#ce1a667d79eadf2a2d9d002c152ceb68739c230c" + integrity sha512-P6679fG/M+wuWg9TY8mh6xFSdYnFyFjwFelxyISxMDrlbXokorEVXYOxiqEbrU3x1BmBoCAJJ+vtEaEoMlpCBQ== + dependencies: + events "^3.3.0" + keyvaluestorage-interface "^1.0.0" -"@walletconnect/http-connection@^1.7.1": - version "1.7.1" - resolved "https://registry.yarnpkg.com/@walletconnect/http-connection/-/http-connection-1.7.1.tgz#fddddccd70a5c659c6e6ac25ba5305290c158705" - integrity sha512-cz3pw2MsTyBT5hy8qhs67NFHTIFOzltdMx9Hy1ftkjXQYtenxIBzAQpZzF6l/lXC3GmMziueYnknZILo1+wgfg== +"@walletconnect/jsonrpc-utils@1.0.8", "@walletconnect/jsonrpc-utils@^1.0.6", "@walletconnect/jsonrpc-utils@^1.0.7", "@walletconnect/jsonrpc-utils@^1.0.8": + version "1.0.8" + resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-utils/-/jsonrpc-utils-1.0.8.tgz#82d0cc6a5d6ff0ecc277cb35f71402c91ad48d72" + integrity sha512-vdeb03bD8VzJUL6ZtzRYsFMq1eZQcM3EAzT0a3st59dyLfJ0wq+tKMpmGH7HlB7waD858UWgfIcudbPFsbzVdw== dependencies: - "@walletconnect/types" "^1.7.1" - "@walletconnect/utils" "^1.7.1" - eventemitter3 "4.0.7" - xhr2-cookies "1.1.0" + "@walletconnect/environment" "^1.0.1" + "@walletconnect/jsonrpc-types" "^1.0.3" + tslib "1.14.1" -"@walletconnect/iso-crypto@^1.7.1": - version "1.7.1" - resolved "https://registry.yarnpkg.com/@walletconnect/iso-crypto/-/iso-crypto-1.7.1.tgz#c463bb5874686c2f21344e2c7f3cf4d71c34ca70" - integrity sha512-qMiW0kLN6KCjnLMD50ijIj1lQqjNjGszGUwrSVUiS2/Dp4Ecx+4QEtHbmVwGEkfx4kelYPFpDJV3ZJpQ4Kqg/g== +"@walletconnect/jsonrpc-ws-connection@1.0.14": + version "1.0.14" + resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-ws-connection/-/jsonrpc-ws-connection-1.0.14.tgz#eec700e74766c7887de2bd76c91a0206628732aa" + integrity sha512-Jsl6fC55AYcbkNVkwNM6Jo+ufsuCQRqViOQ8ZBPH9pRREHH9welbBiszuTLqEJiQcO/6XfFDl6bzCJIkrEi8XA== dependencies: - "@walletconnect/crypto" "^1.0.1" - "@walletconnect/types" "^1.7.1" - "@walletconnect/utils" "^1.7.1" + "@walletconnect/jsonrpc-utils" "^1.0.6" + "@walletconnect/safe-json" "^1.0.2" + events "^3.3.0" + ws "^7.5.1" -"@walletconnect/jsonrpc-types@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-types/-/jsonrpc-types-1.0.0.tgz#fa75ad5e8f106a2e33287b1e6833e22ed0225055" - integrity sha512-11QXNq5H1PKZk7bP8SxgmCw3HRaDuPOVE+wObqEvmhc7OWYUZqfuaaMb+OXGRSOHL3sbC+XHfdeCxFTMXSFyng== +"@walletconnect/keyvaluestorage@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@walletconnect/keyvaluestorage/-/keyvaluestorage-1.1.1.tgz#dd2caddabfbaf80f6b8993a0704d8b83115a1842" + integrity sha512-V7ZQq2+mSxAq7MrRqDxanTzu2RcElfK1PfNYiaVnJgJ7Q7G7hTVwF8voIBx92qsRyGHZihrwNPHuZd1aKkd0rA== dependencies: - keyvaluestorage-interface "^1.0.0" + "@walletconnect/safe-json" "^1.0.1" + idb-keyval "^6.2.1" + unstorage "^1.9.0" -"@walletconnect/jsonrpc-utils@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-utils/-/jsonrpc-utils-1.0.0.tgz#1a2f668d606e8f0b6e7d8fdebae86001bd037a3f" - integrity sha512-qUHbKUK6sHeHn67qtHZoLoYk5hS6x1arTPjKDRkY93/6Fx+ZmNIpdm1owX3l6aYueyegJ7mz43FpvYHUqJ8xcw== +"@walletconnect/logger@^2.0.1": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@walletconnect/logger/-/logger-2.1.2.tgz#813c9af61b96323a99f16c10089bfeb525e2a272" + integrity sha512-aAb28I3S6pYXZHQm5ESB+V6rDqIYfsnHaQyzFbwUUBFY4H0OXx/YtTl8lvhUNhMMfb9UxbwEBS253TlXUYJWSw== dependencies: - "@walletconnect/environment" "^1.0.0" - "@walletconnect/jsonrpc-types" "^1.0.0" + "@walletconnect/safe-json" "^1.0.2" + pino "7.11.0" -"@walletconnect/mobile-registry@^1.4.0": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@walletconnect/mobile-registry/-/mobile-registry-1.4.0.tgz#502cf8ab87330841d794819081e748ebdef7aee5" - integrity sha512-ZtKRio4uCZ1JUF7LIdecmZt7FOLnX72RPSY7aUVu7mj7CSfxDwUn6gBuK6WGtH+NZCldBqDl5DenI5fFSvkKYw== - -"@walletconnect/qrcode-modal@^1.7.1": - version "1.7.1" - resolved "https://registry.yarnpkg.com/@walletconnect/qrcode-modal/-/qrcode-modal-1.7.1.tgz#89b19c2eb6466ec237ccd597388d7a1b1b946067" - integrity sha512-m/4lSx3pgj8V2eHVJcGnxBKUSCNFtyVIcg5tqbSJHi9HjKIBxvRq4D5M4X4yEpgXYtRmTucihxNCrj2zQrmlSQ== - dependencies: - "@walletconnect/browser-utils" "^1.7.1" - "@walletconnect/mobile-registry" "^1.4.0" - "@walletconnect/types" "^1.7.1" - copy-to-clipboard "^3.3.1" - preact "10.4.1" - qrcode "1.4.4" - -"@walletconnect/randombytes@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@walletconnect/randombytes/-/randombytes-1.0.1.tgz#87f0f02d9206704ce1c9e23f07d3b28898c48385" - integrity sha512-YJTyq69i0PtxVg7osEpKfvjTaWuAsR49QEcqGKZRKVQWMbGXBZ65fovemK/SRgtiFRv0V8PwsrlKSheqzfPNcg== +"@walletconnect/modal-core@2.6.2": + version "2.6.2" + resolved "https://registry.yarnpkg.com/@walletconnect/modal-core/-/modal-core-2.6.2.tgz#d73e45d96668764e0c8668ea07a45bb8b81119e9" + integrity sha512-cv8ibvdOJQv2B+nyxP9IIFdxvQznMz8OOr/oR/AaUZym4hjXNL/l1a2UlSQBXrVjo3xxbouMxLb3kBsHoYP2CA== dependencies: - "@walletconnect/encoding" "^1.0.0" - "@walletconnect/environment" "^1.0.0" - randombytes "^2.1.0" + valtio "1.11.2" -"@walletconnect/safe-json@1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@walletconnect/safe-json/-/safe-json-1.0.0.tgz#12eeb11d43795199c045fafde97e3c91646683b2" - integrity sha512-QJzp/S/86sUAgWY6eh5MKYmSfZaRpIlmCJdi5uG4DJlKkZrHEF7ye7gA+VtbVzvTtpM/gRwO2plQuiooIeXjfg== - -"@walletconnect/socket-transport@^1.7.1": - version "1.7.1" - resolved "https://registry.yarnpkg.com/@walletconnect/socket-transport/-/socket-transport-1.7.1.tgz#cc4c8dcf21c40b805812ecb066b2abb156fdb146" - integrity sha512-Gu1RPro0eLe+HHtLhq/1T5TNFfO/HW2z3BnWuUYuJ/F8w1U9iK7+4LMHe+LTgwgWy9Ybcb2k0tiO5e3LgjHBHQ== - dependencies: - "@walletconnect/types" "^1.7.1" - "@walletconnect/utils" "^1.7.1" - ws "7.5.3" - -"@walletconnect/types@^1.7.1": - version "1.7.1" - resolved "https://registry.yarnpkg.com/@walletconnect/types/-/types-1.7.1.tgz#86cc3832e02415dc9f518f3dcb5366722afbfc03" - integrity sha512-X0NunEUgq46ExDcKo7BnnFpFhuZ89bZ04/1FtohNziBWcP2Mblp2yf+FN7iwmZiuZ3bRTb8J1O4oJH2JGP9I7A== - -"@walletconnect/utils@^1.7.1": - version "1.7.1" - resolved "https://registry.yarnpkg.com/@walletconnect/utils/-/utils-1.7.1.tgz#f858d5f22425a4c2da2a28ae493bde7f2eecf815" - integrity sha512-7Lig9rruqTMaFuwEhBrArq1QgzIf2NuzO6J3sCUYCZh60EQ7uIZjekaDonQjiQJAbfYcgWUBm8qa0PG1TzYN3Q== - dependencies: - "@walletconnect/browser-utils" "^1.7.1" - "@walletconnect/encoding" "^1.0.0" - "@walletconnect/jsonrpc-utils" "^1.0.0" - "@walletconnect/types" "^1.7.1" - bn.js "4.11.8" - js-sha3 "0.8.0" - query-string "6.13.5" +"@walletconnect/modal-ui@2.6.2": + version "2.6.2" + resolved "https://registry.yarnpkg.com/@walletconnect/modal-ui/-/modal-ui-2.6.2.tgz#fa57c087c57b7f76aaae93deab0f84bb68b59cf9" + integrity sha512-rbdstM1HPGvr7jprQkyPggX7rP4XiCG85ZA+zWBEX0dVQg8PpAgRUqpeub4xQKDgY7pY/xLRXSiCVdWGqvG2HA== + dependencies: + "@walletconnect/modal-core" "2.6.2" + lit "2.8.0" + motion "10.16.2" + qrcode "1.5.3" -"@walletconnect/web3-provider@^1.3.6": - version "1.7.1" - resolved "https://registry.yarnpkg.com/@walletconnect/web3-provider/-/web3-provider-1.7.1.tgz#3b7bf41bfd0198b18f5cc5626e1ec28e931667c7" - integrity sha512-dhoYwQaBVbaKIiELNeCF4kW7Dslbf73wDIsxOF9gmjVch1Qi18kNlqbR03u56iBcAsXU0tAwfd9Z7cGHfUX1Fg== +"@walletconnect/modal@^2.6.2": + version "2.6.2" + resolved "https://registry.yarnpkg.com/@walletconnect/modal/-/modal-2.6.2.tgz#4b534a836f5039eeb3268b80be7217a94dd12651" + integrity sha512-eFopgKi8AjKf/0U4SemvcYw9zlLpx9njVN8sf6DAkowC2Md0gPU/UNEbH1Wwj407pEKnEds98pKWib1NN1ACoA== dependencies: - "@walletconnect/client" "^1.7.1" - "@walletconnect/http-connection" "^1.7.1" - "@walletconnect/qrcode-modal" "^1.7.1" - "@walletconnect/types" "^1.7.1" - "@walletconnect/utils" "^1.7.1" - web3-provider-engine "16.0.1" + "@walletconnect/modal-core" "2.6.2" + "@walletconnect/modal-ui" "2.6.2" -"@walletconnect/window-getters@1.0.0", "@walletconnect/window-getters@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@walletconnect/window-getters/-/window-getters-1.0.0.tgz#1053224f77e725dfd611c83931b5f6c98c32bfc8" - integrity sha512-xB0SQsLaleIYIkSsl43vm8EwETpBzJ2gnzk7e0wMF3ktqiTGS6TFHxcprMl5R44KKh4tCcHCJwolMCaDSwtAaA== +"@walletconnect/relay-api@^1.0.9": + version "1.0.10" + resolved "https://registry.yarnpkg.com/@walletconnect/relay-api/-/relay-api-1.0.10.tgz#5aef3cd07c21582b968136179aa75849dcc65499" + integrity sha512-tqrdd4zU9VBNqUaXXQASaexklv6A54yEyQQEXYOCr+Jz8Ket0dmPBDyg19LVSNUN2cipAghQc45/KVmfFJ0cYw== + dependencies: + "@walletconnect/jsonrpc-types" "^1.0.2" -"@walletconnect/window-metadata@1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@walletconnect/window-metadata/-/window-metadata-1.0.0.tgz#93b1cc685e6b9b202f29c26be550fde97800c4e5" - integrity sha512-9eFvmJxIKCC3YWOL97SgRkKhlyGXkrHwamfechmqszbypFspaSk+t2jQXAEU7YClHF6Qjw5eYOmy1//zFi9/GA== +"@walletconnect/relay-auth@^1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@walletconnect/relay-auth/-/relay-auth-1.0.4.tgz#0b5c55c9aa3b0ef61f526ce679f3ff8a5c4c2c7c" + integrity sha512-kKJcS6+WxYq5kshpPaxGHdwf5y98ZwbfuS4EE/NkQzqrDFm5Cj+dP8LofzWvjrrLkZq7Afy7WrQMXdLy8Sx7HQ== dependencies: - "@walletconnect/window-getters" "^1.0.0" + "@stablelib/ed25519" "^1.0.2" + "@stablelib/random" "^1.0.1" + "@walletconnect/safe-json" "^1.0.1" + "@walletconnect/time" "^1.0.2" + tslib "1.14.1" + uint8arrays "^3.0.0" -"@webassemblyjs/ast@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" - integrity sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA== +"@walletconnect/safe-json@^1.0.1", "@walletconnect/safe-json@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@walletconnect/safe-json/-/safe-json-1.0.2.tgz#7237e5ca48046e4476154e503c6d3c914126fa77" + integrity sha512-Ogb7I27kZ3LPC3ibn8ldyUr5544t3/STow9+lzz7Sfo808YD7SBWk7SAsdBFlYgP2zDRy2hS3sKRcuSRM0OTmA== + dependencies: + tslib "1.14.1" + +"@walletconnect/sign-client@2.11.1": + version "2.11.1" + resolved "https://registry.yarnpkg.com/@walletconnect/sign-client/-/sign-client-2.11.1.tgz#c073b8d2d594e792bb783d36c8b021bd37a9d4f6" + integrity sha512-s3oKSx6/F5X2WmkV1jfJImBFACf9Km5HpTb+n5q+mobJVpUQw/clvoVyIrNNppLhm1V1S/ylHXh0qCrDppDpCA== + dependencies: + "@walletconnect/core" "2.11.1" + "@walletconnect/events" "^1.0.1" + "@walletconnect/heartbeat" "1.2.1" + "@walletconnect/jsonrpc-utils" "1.0.8" + "@walletconnect/logger" "^2.0.1" + "@walletconnect/time" "^1.0.2" + "@walletconnect/types" "2.11.1" + "@walletconnect/utils" "2.11.1" + events "^3.3.0" + +"@walletconnect/time@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@walletconnect/time/-/time-1.0.2.tgz#6c5888b835750ecb4299d28eecc5e72c6d336523" + integrity sha512-uzdd9woDcJ1AaBZRhqy5rNC9laqWGErfc4dxA9a87mPdKOgWMD85mcFo9dIYIts/Jwocfwn07EC6EzclKubk/g== + dependencies: + tslib "1.14.1" + +"@walletconnect/types@2.11.1": + version "2.11.1" + resolved "https://registry.yarnpkg.com/@walletconnect/types/-/types-2.11.1.tgz#4f705b43ddc286b69eb9bf91bb6e9496d20de0e3" + integrity sha512-UbdbX+d6MOK0AXKxt5imV3KvAcLVpZUHylaRDIP5ffwVylM/p4DHnKppil1Qq5N+IGDr3RsUwLGFkKjqsQYRKw== + dependencies: + "@walletconnect/events" "^1.0.1" + "@walletconnect/heartbeat" "1.2.1" + "@walletconnect/jsonrpc-types" "1.0.3" + "@walletconnect/keyvaluestorage" "^1.1.1" + "@walletconnect/logger" "^2.0.1" + events "^3.3.0" + +"@walletconnect/universal-provider@2.11.1": + version "2.11.1" + resolved "https://registry.yarnpkg.com/@walletconnect/universal-provider/-/universal-provider-2.11.1.tgz#988f2a78325eb52ef7481a220851a56efb209d64" + integrity sha512-BJvPYByIfbBYF4x8mqDV79ebQX0tD54pp8itsqrHWn0qKZeJyIH8sQ69yY0GnbJrzoFS3ZLULdC0yDxWDeuRGw== + dependencies: + "@walletconnect/jsonrpc-http-connection" "^1.0.7" + "@walletconnect/jsonrpc-provider" "1.0.13" + "@walletconnect/jsonrpc-types" "^1.0.2" + "@walletconnect/jsonrpc-utils" "^1.0.7" + "@walletconnect/logger" "^2.0.1" + "@walletconnect/sign-client" "2.11.1" + "@walletconnect/types" "2.11.1" + "@walletconnect/utils" "2.11.1" + events "^3.3.0" + +"@walletconnect/utils@2.11.1": + version "2.11.1" + resolved "https://registry.yarnpkg.com/@walletconnect/utils/-/utils-2.11.1.tgz#56116d9c410c6f2ae8d562017cf6876cccb366f1" + integrity sha512-wRFDHN86dZ05mCET1H3912odIeQa8j7cZKxl1FlWRpV2YsILj9HCYSX6Uq2brwO02Kv2vryke44G1r8XI/LViA== + dependencies: + "@stablelib/chacha20poly1305" "1.0.1" + "@stablelib/hkdf" "1.0.1" + "@stablelib/random" "^1.0.2" + "@stablelib/sha256" "1.0.1" + "@stablelib/x25519" "^1.0.3" + "@walletconnect/relay-api" "^1.0.9" + "@walletconnect/safe-json" "^1.0.2" + "@walletconnect/time" "^1.0.2" + "@walletconnect/types" "2.11.1" + "@walletconnect/window-getters" "^1.0.1" + "@walletconnect/window-metadata" "^1.0.1" + detect-browser "5.3.0" + query-string "7.1.3" + uint8arrays "^3.1.0" + +"@walletconnect/window-getters@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@walletconnect/window-getters/-/window-getters-1.0.1.tgz#f36d1c72558a7f6b87ecc4451fc8bd44f63cbbdc" + integrity sha512-vHp+HqzGxORPAN8gY03qnbTMnhqIwjeRJNOMOAzePRg4xVEEE2WvYsI9G2NMjOknA8hnuYbU3/hwLcKbjhc8+Q== dependencies: - "@webassemblyjs/helper-module-context" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/wast-parser" "1.9.0" + tslib "1.14.1" -"@webassemblyjs/floating-point-hex-parser@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4" - integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA== +"@walletconnect/window-metadata@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@walletconnect/window-metadata/-/window-metadata-1.0.1.tgz#2124f75447b7e989e4e4e1581d55d25bc75f7be5" + integrity sha512-9koTqyGrM2cqFRW517BPY/iEtUDx2r1+Pwwu5m7sJ7ka79wi3EyqhqcICk/yDmv6jAS1rjKgTKXlEhanYjijcA== + dependencies: + "@walletconnect/window-getters" "^1.0.1" + tslib "1.14.1" -"@webassemblyjs/helper-api-error@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2" - integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw== +"@web3modal/common@4.1.0": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@web3modal/common/-/common-4.1.0.tgz#1a55872b39895896639c0ced2b5262fb48cb21bd" + integrity sha512-9BUoIYEEW2Zf69OYLculsdhjjqNkXho3gN7HkKyDJ2T1NVnMkf+YuSJwaQGGK4TLR+y+IiSkvYqPHJFXJXKYVg== + dependencies: + dayjs "1.11.10" -"@webassemblyjs/helper-buffer@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00" - integrity sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA== +"@web3modal/core@4.1.0": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@web3modal/core/-/core-4.1.0.tgz#023edca66157e1b9328e78ff3d991cd43c7122bf" + integrity sha512-MJG8djPg0eMKTLjDMvYcoVay4u5t3CuhRkTYuKr5EZA0xKhf5m0s/toblYGP059ZkuD21qO7hLz/CmyeBqusUg== + dependencies: + "@web3modal/common" "4.1.0" + "@web3modal/wallet" "4.1.0" + valtio "1.11.2" -"@webassemblyjs/helper-code-frame@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz#647f8892cd2043a82ac0c8c5e75c36f1d9159f27" - integrity sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA== +"@web3modal/ethers5@4.1.0": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@web3modal/ethers5/-/ethers5-4.1.0.tgz#2ed4747d4301dbb108ce4804199f06c2900efe26" + integrity sha512-QfEe5PSOcH/2UFw6tyn8UM67IB4FdUCJkC4AWIg2kAq+na/SgRFLGod89HDIi7gTYePn1ahwL2roMejL8KeH7Q== + dependencies: + "@coinbase/wallet-sdk" "3.9.1" + "@walletconnect/ethereum-provider" "2.11.1" + "@web3modal/polyfills" "4.1.0" + "@web3modal/scaffold" "4.1.0" + "@web3modal/scaffold-react" "4.1.0" + "@web3modal/scaffold-utils" "4.1.0" + "@web3modal/scaffold-vue" "4.1.0" + valtio "1.11.2" + optionalDependencies: + "@web3modal/siwe" "4.1.0" + react ">=17" + react-dom ">=17" + vue ">=3" + +"@web3modal/polyfills@4.1.0": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@web3modal/polyfills/-/polyfills-4.1.0.tgz#2d0d61b74faf202498c548722cfd21b27028fb27" + integrity sha512-TdSeTjtmsOHt/P76bxokelCd5h3bNgDZsy1ucjJPCKVkLjp/eSsLaYOjqENDLi+bOMDNn69x1UtDVHbfaLJZFw== dependencies: - "@webassemblyjs/wast-printer" "1.9.0" + buffer "6.0.3" -"@webassemblyjs/helper-fsm@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz#c05256b71244214671f4b08ec108ad63b70eddb8" - integrity sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw== +"@web3modal/scaffold-react@4.1.0": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@web3modal/scaffold-react/-/scaffold-react-4.1.0.tgz#c7cf1b1f88ee40c482c249f4e544fc445a60a5c7" + integrity sha512-Xj01CeFYMLt6POGuG7cSNGe4qpJKzZJ5gCgBSHWiB7I4c1Lhnl3UyX52UY6DHBNoFMiMm/rSa8LqYmtQ3FimdA== + dependencies: + "@web3modal/scaffold" "4.1.0" -"@webassemblyjs/helper-module-context@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz#25d8884b76839871a08a6c6f806c3979ef712f07" - integrity sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g== +"@web3modal/scaffold-utils@4.1.0": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@web3modal/scaffold-utils/-/scaffold-utils-4.1.0.tgz#3ae82324c071983ee0445b2ac9fffc598816a9ac" + integrity sha512-WZuUI6tYmCBb5D3vKXNJVju9WFMipCSLMKPklfasuuLSexSsLE01INT6LnWdEANtGQ6rMezsK3j8yEBM4h9FhQ== dependencies: - "@webassemblyjs/ast" "1.9.0" + "@web3modal/core" "4.1.0" + "@web3modal/polyfills" "4.1.0" + valtio "1.11.2" -"@webassemblyjs/helper-wasm-bytecode@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790" - integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw== +"@web3modal/scaffold-vue@4.1.0": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@web3modal/scaffold-vue/-/scaffold-vue-4.1.0.tgz#b4f7ce8ef145f0712a57376f483e37b1f4b22d84" + integrity sha512-oe4HTasDjAVD2hDmmOJWS/8FaKTm1Vrt6zDG9Fj6tb/hF4i63EeWj0kNBQ9zL6bQsVfuo6wPzhDRxjBL+W9sMg== + dependencies: + "@web3modal/scaffold" "4.1.0" -"@webassemblyjs/helper-wasm-section@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346" - integrity sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw== +"@web3modal/scaffold@4.1.0": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@web3modal/scaffold/-/scaffold-4.1.0.tgz#094ef1831d48ae9881d278778ae4d35d2054f73e" + integrity sha512-BZdE+T65jmm1hLwXjayZZVGim4LU8acUuKUbzvnHHQrop/oaM4cQbAhRdLll6xpWK4hDfvb+Ep9PBu/1IiLDHg== dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" + "@web3modal/common" "4.1.0" + "@web3modal/core" "4.1.0" + "@web3modal/ui" "4.1.0" + lit "3.1.0" + optionalDependencies: + "@web3modal/siwe" "4.1.0" -"@webassemblyjs/ieee754@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4" - integrity sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg== +"@web3modal/siwe@4.1.0": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@web3modal/siwe/-/siwe-4.1.0.tgz#bf2dcb8e5a83f6803189cfdef2cf29c6c5081a00" + integrity sha512-tFxIA2DyJ6160heEsIyD7sJrBelAsoUdtM8R1yi2Z3+u3pu6I8x2DxnYOGRMetvu+nf6dUFYWoLcJR5PK5Y2Xg== dependencies: - "@xtuc/ieee754" "^1.2.0" + "@web3modal/core" "4.1.0" + "@web3modal/scaffold-utils" "4.1.0" -"@webassemblyjs/leb128@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95" - integrity sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw== +"@web3modal/ui@4.1.0": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@web3modal/ui/-/ui-4.1.0.tgz#0e182f22130b16c0958c43608320266ac2e859b4" + integrity sha512-Cz2bWrLz0yMjxq1IrHFlLcpdHEqFuo52KYPPgvKqfILj57JRsaPyjzGUYn3OU5g6VMm4rxTJJGyntFanRuuuiA== + dependencies: + lit "3.1.0" + qrcode "1.5.3" + +"@web3modal/wallet@4.1.0": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@web3modal/wallet/-/wallet-4.1.0.tgz#0527323c213b0b4d7c6fa88287a1d01d43c30859" + integrity sha512-HDh+sJ/bVOMJ+xiCqFjr4cMWwJbaqy3E9/dzukMuHVTsJhrXWObrWi5UPNB5gKb4c8/SPSd9Y81zKhG9FL2lOg== + dependencies: + zod "3.22.4" + +"@webassemblyjs/ast@1.12.1", "@webassemblyjs/ast@^1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.12.1.tgz#bb16a0e8b1914f979f45864c23819cc3e3f0d4bb" + integrity sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg== + dependencies: + "@webassemblyjs/helper-numbers" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + +"@webassemblyjs/floating-point-hex-parser@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz#dacbcb95aff135c8260f77fa3b4c5fea600a6431" + integrity sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw== + +"@webassemblyjs/helper-api-error@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz#6132f68c4acd59dcd141c44b18cbebbd9f2fa768" + integrity sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q== + +"@webassemblyjs/helper-buffer@1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz#6df20d272ea5439bf20ab3492b7fb70e9bfcb3f6" + integrity sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw== + +"@webassemblyjs/helper-numbers@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz#cbce5e7e0c1bd32cf4905ae444ef64cea919f1b5" + integrity sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g== dependencies: + "@webassemblyjs/floating-point-hex-parser" "1.11.6" + "@webassemblyjs/helper-api-error" "1.11.6" "@xtuc/long" "4.2.2" -"@webassemblyjs/utf8@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab" - integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w== +"@webassemblyjs/helper-wasm-bytecode@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz#bb2ebdb3b83aa26d9baad4c46d4315283acd51e9" + integrity sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA== -"@webassemblyjs/wasm-edit@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf" - integrity sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/helper-wasm-section" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" - "@webassemblyjs/wasm-opt" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" - "@webassemblyjs/wast-printer" "1.9.0" - -"@webassemblyjs/wasm-gen@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz#50bc70ec68ded8e2763b01a1418bf43491a7a49c" - integrity sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA== +"@webassemblyjs/helper-wasm-section@1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz#3da623233ae1a60409b509a52ade9bc22a37f7bf" + integrity sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g== dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/ieee754" "1.9.0" - "@webassemblyjs/leb128" "1.9.0" - "@webassemblyjs/utf8" "1.9.0" + "@webassemblyjs/ast" "1.12.1" + "@webassemblyjs/helper-buffer" "1.12.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/wasm-gen" "1.12.1" -"@webassemblyjs/wasm-opt@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz#2211181e5b31326443cc8112eb9f0b9028721a61" - integrity sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A== +"@webassemblyjs/ieee754@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz#bb665c91d0b14fffceb0e38298c329af043c6e3a" + integrity sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg== dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" + "@xtuc/ieee754" "^1.2.0" -"@webassemblyjs/wasm-parser@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz#9d48e44826df4a6598294aa6c87469d642fff65e" - integrity sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA== +"@webassemblyjs/leb128@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.6.tgz#70e60e5e82f9ac81118bc25381a0b283893240d7" + integrity sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ== dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-api-error" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/ieee754" "1.9.0" - "@webassemblyjs/leb128" "1.9.0" - "@webassemblyjs/utf8" "1.9.0" + "@xtuc/long" "4.2.2" -"@webassemblyjs/wast-parser@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz#3031115d79ac5bd261556cecc3fa90a3ef451914" - integrity sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/floating-point-hex-parser" "1.9.0" - "@webassemblyjs/helper-api-error" "1.9.0" - "@webassemblyjs/helper-code-frame" "1.9.0" - "@webassemblyjs/helper-fsm" "1.9.0" +"@webassemblyjs/utf8@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.6.tgz#90f8bc34c561595fe156603be7253cdbcd0fab5a" + integrity sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA== + +"@webassemblyjs/wasm-edit@^1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz#9f9f3ff52a14c980939be0ef9d5df9ebc678ae3b" + integrity sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g== + dependencies: + "@webassemblyjs/ast" "1.12.1" + "@webassemblyjs/helper-buffer" "1.12.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/helper-wasm-section" "1.12.1" + "@webassemblyjs/wasm-gen" "1.12.1" + "@webassemblyjs/wasm-opt" "1.12.1" + "@webassemblyjs/wasm-parser" "1.12.1" + "@webassemblyjs/wast-printer" "1.12.1" + +"@webassemblyjs/wasm-gen@1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz#a6520601da1b5700448273666a71ad0a45d78547" + integrity sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w== + dependencies: + "@webassemblyjs/ast" "1.12.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/ieee754" "1.11.6" + "@webassemblyjs/leb128" "1.11.6" + "@webassemblyjs/utf8" "1.11.6" + +"@webassemblyjs/wasm-opt@1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz#9e6e81475dfcfb62dab574ac2dda38226c232bc5" + integrity sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg== + dependencies: + "@webassemblyjs/ast" "1.12.1" + "@webassemblyjs/helper-buffer" "1.12.1" + "@webassemblyjs/wasm-gen" "1.12.1" + "@webassemblyjs/wasm-parser" "1.12.1" + +"@webassemblyjs/wasm-parser@1.12.1", "@webassemblyjs/wasm-parser@^1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz#c47acb90e6f083391e3fa61d113650eea1e95937" + integrity sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ== + dependencies: + "@webassemblyjs/ast" "1.12.1" + "@webassemblyjs/helper-api-error" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/ieee754" "1.11.6" + "@webassemblyjs/leb128" "1.11.6" + "@webassemblyjs/utf8" "1.11.6" + +"@webassemblyjs/wast-printer@1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz#bcecf661d7d1abdaf989d8341a4833e33e2b31ac" + integrity sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA== + dependencies: + "@webassemblyjs/ast" "1.12.1" "@xtuc/long" "4.2.2" -"@webassemblyjs/wast-printer@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz#4935d54c85fef637b00ce9f52377451d00d47899" - integrity sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA== +"@wry/caches@^1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@wry/caches/-/caches-1.0.1.tgz#8641fd3b6e09230b86ce8b93558d44cf1ece7e52" + integrity sha512-bXuaUNLVVkD20wcGBWRyo7j9N3TxePEWFZj2Y+r9OoUzfqmavM84+mFykRicNsBqatba5JLay1t48wxaXaWnlA== dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/wast-parser" "1.9.0" - "@xtuc/long" "4.2.2" + tslib "^2.3.0" -"@wry/context@^0.6.0": - version "0.6.1" - resolved "https://registry.yarnpkg.com/@wry/context/-/context-0.6.1.tgz#c3c29c0ad622adb00f6a53303c4f965ee06ebeb2" - integrity sha512-LOmVnY1iTU2D8tv4Xf6MVMZZ+juIJ87Kt/plMijjN20NMAXGmH4u8bS1t0uT74cZ5gwpocYueV58YwyI8y+GKw== +"@wry/context@^0.7.0": + version "0.7.4" + resolved "https://registry.yarnpkg.com/@wry/context/-/context-0.7.4.tgz#e32d750fa075955c4ab2cfb8c48095e1d42d5990" + integrity sha512-jmT7Sb4ZQWI5iyu3lobQxICu2nC/vbUhP0vIdd6tHC9PTfenmRmuIFqktc6GH9cgi+ZHnsLWPvfSvc4DrYmKiQ== dependencies: tslib "^2.3.0" -"@wry/equality@^0.5.0": - version "0.5.2" - resolved "https://registry.yarnpkg.com/@wry/equality/-/equality-0.5.2.tgz#72c8a7a7d884dff30b612f4f8464eba26c080e73" - integrity sha512-oVMxbUXL48EV/C0/M7gLVsoK6qRHPS85x8zECofEZOVvxGmIPLA9o5Z27cc2PoAyZz1S2VoM2A7FLAnpfGlneA== +"@wry/equality@^0.5.6": + version "0.5.7" + resolved "https://registry.yarnpkg.com/@wry/equality/-/equality-0.5.7.tgz#72ec1a73760943d439d56b7b1e9985aec5d497bb" + integrity sha512-BRFORjsTuQv5gxcXsuDXx6oGRhuVsEGwZy6LOzRRfgu+eSfxbhUQ9L9YtSEIuIjY/o7g3iWFjrc5eSY1GXP2Dw== dependencies: tslib "^2.3.0" -"@wry/trie@^0.3.0": - version "0.3.1" - resolved "https://registry.yarnpkg.com/@wry/trie/-/trie-0.3.1.tgz#2279b790f15032f8bcea7fc944d27988e5b3b139" - integrity sha512-WwB53ikYudh9pIorgxrkHKrQZcCqNM/Q/bDzZBffEaGUKGuHrRb3zZUT9Sh2qw9yogC7SsdRmQ1ER0pqvd3bfw== +"@wry/trie@^0.4.3": + version "0.4.3" + resolved "https://registry.yarnpkg.com/@wry/trie/-/trie-0.4.3.tgz#077d52c22365871bf3ffcbab8e95cb8bc5689af4" + integrity sha512-I6bHwH0fSf6RqQcnnXLJKhkSXG45MFral3GxPaY4uAl0LYDZM+YDVDAiU9bYwjTuysy1S0IeecWtmq1SZA3M1w== + dependencies: + tslib "^2.3.0" + +"@wry/trie@^0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@wry/trie/-/trie-0.5.0.tgz#11e783f3a53f6e4cd1d42d2d1323f5bc3fa99c94" + integrity sha512-FNoYzHawTMk/6KMQoEG5O4PuioX19UbwdQKF44yw0nLfOypfQdjtfZzo/UIJWAJ23sNIFbD1Ug9lbaDGMwbqQA== dependencies: tslib "^2.3.0" @@ -2947,36 +4168,17 @@ integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== abab@^2.0.3, abab@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" - integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q== - -abbrev@1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" - integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== - -abstract-leveldown@~2.6.0: - version "2.6.3" - resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz#1c5e8c6a5ef965ae8c35dfb3a8770c476b82c4b8" - integrity sha512-2++wDf/DYqkPR3o5tbfdhF96EfMApo1GpPfzOsR/ZYXdkSmELlvOOEAl9iKkRsktMPHdGjO4rtkBpf2I7TiTeA== - dependencies: - xtend "~4.0.0" + version "2.0.6" + resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291" + integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== -abstract-leveldown@~2.7.1: - version "2.7.2" - resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz#87a44d7ebebc341d59665204834c8b7e0932cc93" - integrity sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w== +accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8: + version "1.3.8" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" + integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== dependencies: - xtend "~4.0.0" - -accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: - version "1.3.7" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" - integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== - dependencies: - mime-types "~2.1.24" - negotiator "0.6.2" + mime-types "~2.1.34" + negotiator "0.6.3" acorn-globals@^6.0.0: version "6.0.0" @@ -2986,7 +4188,12 @@ acorn-globals@^6.0.0: acorn "^7.1.1" acorn-walk "^7.1.1" -acorn-jsx@^5.3.1: +acorn-import-assertions@^1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz#507276249d684797c84e0734ef84860334cfb1ac" + integrity sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA== + +acorn-jsx@^5.3.2: version "5.3.2" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== @@ -2996,25 +4203,20 @@ acorn-walk@^7.1.1: resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== -acorn@^6.4.1: - version "6.4.2" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" - integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== - -acorn@^7.1.0, acorn@^7.1.1, acorn@^7.4.0: +acorn@^7.1.1: version "7.4.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== -acorn@^8.2.4: - version "8.7.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.0.tgz#90951fde0f8f09df93549481e5fc141445b791cf" - integrity sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ== +acorn@^8.11.3, acorn@^8.2.4, acorn@^8.7.1, acorn@^8.8.2, acorn@^8.9.0: + version "8.11.3" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a" + integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== -address@1.1.2, address@^1.0.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/address/-/address-1.1.2.tgz#bf1116c9c758c51b7a933d296b72c221ed9428b6" - integrity sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA== +address@^1.0.1, address@^1.1.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/address/-/address-1.2.2.tgz#2b5248dac5485a6390532c6a517fda2e3faac89e" + integrity sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA== adjust-sourcemap-loader@3.0.0: version "3.0.0" @@ -3024,15 +4226,18 @@ adjust-sourcemap-loader@3.0.0: loader-utils "^2.0.0" regex-parser "^2.2.11" +adjust-sourcemap-loader@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz#fc4a0fd080f7d10471f30a7320f25560ade28c99" + integrity sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A== + dependencies: + loader-utils "^2.0.0" + regex-parser "^2.2.11" + aes-js@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.0.0.tgz#e21df10ad6c2053295bcbb8dab40b09dbea87e4d" - integrity sha1-4h3xCtbCBTKVvLuNq0Cwnb6ofk0= - -aes-js@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.1.2.tgz#db9aabde85d5caabbfc0d4f2a4446960f627146a" - integrity sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ== + integrity sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw== agent-base@6: version "6.0.2" @@ -3041,25 +4246,26 @@ agent-base@6: dependencies: debug "4" -aggregate-error@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" - integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== +ajv-formats@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520" + integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== dependencies: - clean-stack "^2.0.0" - indent-string "^4.0.0" + ajv "^8.0.0" -ajv-errors@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" - integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== - -ajv-keywords@^3.1.0, ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: +ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: version "3.5.2" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== -ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: +ajv-keywords@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz#69d4d385a4733cdbeab44964a1170a88f87f0e16" + integrity sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw== + dependencies: + fast-deep-equal "^3.1.3" + +ajv@^6.12.2, ajv@^6.12.4, ajv@^6.12.5: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -3069,35 +4275,15 @@ ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ajv@^8.0.1: - version "8.8.2" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.8.2.tgz#01b4fef2007a28bf75f0b7fc009f62679de4abbb" - integrity sha512-x9VuX+R/jcFj1DHo/fCp99esgGDWiHENrKxaCENuCxpoMCmAt/COCGVDwA7kleEpEzJjDnvh3yGoOuLu0Dtllw== +ajv@^8.0.0, ajv@^8.6.0, ajv@^8.9.0: + version "8.13.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.13.0.tgz#a3939eaec9fb80d217ddf0c3376948c023f28c91" + integrity sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA== dependencies: - fast-deep-equal "^3.1.1" + fast-deep-equal "^3.1.3" json-schema-traverse "^1.0.0" require-from-string "^2.0.2" - uri-js "^4.2.2" - -alphanum-sort@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" - integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= - -amdefine@>=0.0.4: - version "1.0.1" - resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" - integrity sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU= - -ansi-colors@^3.0.0: - version "3.2.4" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" - integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== - -ansi-colors@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" - integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== + uri-js "^4.4.1" ansi-escapes@^4.2.1, ansi-escapes@^4.3.1: version "4.3.2" @@ -3106,32 +4292,22 @@ ansi-escapes@^4.2.1, ansi-escapes@^4.3.1: dependencies: type-fest "^0.21.3" -ansi-html@0.0.7, ansi-html@^0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" - integrity sha1-gTWEAhliqenm/QOflA0S9WynhZ4= - -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= - -ansi-regex@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" - integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== +ansi-html-community@^0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz#69fbc4d6ccbe383f9736934ae34c3f8290f1bf41" + integrity sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw== ansi-regex@^5.0.0, ansi-regex@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= +ansi-regex@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" + integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== -ansi-styles@^3.2.0, ansi-styles@^3.2.1: +ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== @@ -3150,39 +4326,28 @@ ansi-styles@^5.0.0: resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== -anymatch@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" - integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== - dependencies: - micromatch "^3.1.4" - normalize-path "^2.1.1" +ansi-styles@^6.1.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" + integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== -anymatch@^3.0.0, anymatch@^3.0.3, anymatch@~3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" - integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== +any-promise@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" + integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A== + +anymatch@^3.0.3, anymatch@^3.1.3, anymatch@~3.1.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== dependencies: normalize-path "^3.0.0" picomatch "^2.0.4" -aproba@^1.0.3, aproba@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" - integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== - -are-we-there-yet@~1.1.2: - version "1.1.7" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz#b15474a932adab4ff8a50d9adfa7e4e926f21146" - integrity sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g== - dependencies: - delegates "^1.0.0" - readable-stream "^2.0.6" - -arg@^4.1.0: - version "4.1.3" - resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" - integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== +arg@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c" + integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg== argparse@^1.0.7: version "1.0.10" @@ -3191,6 +4356,11 @@ argparse@^1.0.7: dependencies: sprintf-js "~1.0.2" +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + aria-query@^4.2.2: version "4.2.2" resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-4.2.2.tgz#0d2ca6c9aceb56b8977e9fed6aed7e15bbd2f83b" @@ -3199,188 +4369,159 @@ aria-query@^4.2.2: "@babel/runtime" "^7.10.2" "@babel/runtime-corejs3" "^7.10.2" -aria-query@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.0.0.tgz#210c21aaf469613ee8c9a62c7f86525e058db52c" - integrity sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg== +aria-query@^5.0.0, aria-query@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.3.0.tgz#650c569e41ad90b51b3d7df5e5eed1c7549c103e" + integrity sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A== + dependencies: + dequal "^2.0.3" arity-n@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/arity-n/-/arity-n-1.0.4.tgz#d9e76b11733e08569c0847ae7b39b2860b30b745" - integrity sha1-2edrEXM+CFacCEeuezmyhgswt0U= - -arr-diff@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" - integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= - -arr-flatten@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" - integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== + integrity sha512-fExL2kFDC1Q2DUOx3whE/9KoN66IzkY4b4zUHUBFM1ojEYjZZYDcUW3bek/ufGionX9giIKDC5redH2IlGqcQQ== -arr-union@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" - integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= +array-buffer-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz#1e5583ec16763540a27ae52eed99ff899223568f" + integrity sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg== + dependencies: + call-bind "^1.0.5" + is-array-buffer "^3.0.4" array-differ@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-3.0.0.tgz#3cbb3d0f316810eafcc47624734237d6aee4ae6b" integrity sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg== -array-find-index@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" - integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E= - array-flatten@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" - integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= - -array-flatten@^2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" - integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== - -array-includes@^3.1.3, array-includes@^3.1.4: - version "3.1.4" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.4.tgz#f5b493162c760f3539631f005ba2bb46acb45ba9" - integrity sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" - get-intrinsic "^1.1.1" + integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== + +array-includes@^3.1.6, array-includes@^3.1.7: + version "3.1.8" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.8.tgz#5e370cbe172fdd5dd6530c1d4aadda25281ba97d" + integrity sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-object-atoms "^1.0.0" + get-intrinsic "^1.2.4" is-string "^1.0.7" -array-union@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" - integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= - dependencies: - array-uniq "^1.0.1" - array-union@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== -array-uniq@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" - integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= - -array-unique@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" - integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= - -array.prototype.flat@^1.2.5: +array.prototype.findlast@^1.2.4: version "1.2.5" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz#07e0975d84bbc7c48cd1879d609e682598d33e13" - integrity sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg== + resolved "https://registry.yarnpkg.com/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz#3e4fbcb30a15a7f5bf64cf2faae22d139c2e4904" + integrity sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ== dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.0" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + es-shim-unscopables "^1.0.2" -array.prototype.flatmap@^1.2.5: +array.prototype.findlastindex@^1.2.3: version "1.2.5" - resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz#908dc82d8a406930fdf38598d51e7411d18d4446" - integrity sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA== + resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz#8c35a755c72908719453f87145ca011e39334d0d" + integrity sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ== dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - es-abstract "^1.19.0" - -arrify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" - integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= - -arrify@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" - integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== - -asap@~2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" - integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + es-shim-unscopables "^1.0.2" -asn1.js@^5.2.0: - version "5.4.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" - integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== +array.prototype.flat@^1.3.1, array.prototype.flat@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz#1476217df8cff17d72ee8f3ba06738db5b387d18" + integrity sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA== dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - safer-buffer "^2.1.0" + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + es-shim-unscopables "^1.0.0" -asn1@~0.2.3: - version "0.2.6" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d" - integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== +array.prototype.flatmap@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz#c9a7c6831db8e719d6ce639190146c24bbd3e527" + integrity sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ== dependencies: - safer-buffer "~2.1.0" + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + es-shim-unscopables "^1.0.0" -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= +array.prototype.reduce@^1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/array.prototype.reduce/-/array.prototype.reduce-1.0.7.tgz#6aadc2f995af29cb887eb866d981dc85ab6f7dc7" + integrity sha512-mzmiUCVwtiD4lgxYP8g7IYy8El8p2CSMePvIbTS7gchKir/L1fgJrk0yDKmAX6mnRQFKNADYIk8nNlTris5H1Q== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-array-method-boxes-properly "^1.0.0" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + is-string "^1.0.7" -assert@^1.1.1: - version "1.5.0" - resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" - integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== +array.prototype.toreversed@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/array.prototype.toreversed/-/array.prototype.toreversed-1.1.2.tgz#b989a6bf35c4c5051e1dc0325151bf8088954eba" + integrity sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA== dependencies: - object-assign "^4.1.1" - util "0.10.3" - -assign-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" - integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= - -ast-types-flow@^0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" - integrity sha1-9wtzXGvKGlycItmCw+Oef+ujva0= - -astral-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" - integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + es-shim-unscopables "^1.0.0" -astral-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" - integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== +array.prototype.tosorted@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/array.prototype.tosorted/-/array.prototype.tosorted-1.1.3.tgz#c8c89348337e51b8a3c48a9227f9ce93ceedcba8" + integrity sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg== + dependencies: + call-bind "^1.0.5" + define-properties "^1.2.1" + es-abstract "^1.22.3" + es-errors "^1.1.0" + es-shim-unscopables "^1.0.2" -async-each@^1.0.1: +arraybuffer.prototype.slice@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" - integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== + resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz#097972f4255e41bc3425e37dc3f6421cf9aefde6" + integrity sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A== + dependencies: + array-buffer-byte-length "^1.0.1" + call-bind "^1.0.5" + define-properties "^1.2.1" + es-abstract "^1.22.3" + es-errors "^1.2.1" + get-intrinsic "^1.2.3" + is-array-buffer "^3.0.4" + is-shared-array-buffer "^1.0.2" -async-eventemitter@^0.2.2: - version "0.2.4" - resolved "https://registry.yarnpkg.com/async-eventemitter/-/async-eventemitter-0.2.4.tgz#f5e7c8ca7d3e46aab9ec40a292baf686a0bafaca" - integrity sha512-pd20BwL7Yt1zwDFy+8MX8F1+WCT8aQeKj0kQnTrH9WaeRETlRamVhD0JtRPmrV4GfOJ2F9CvdQkZeZhnh2TuHw== - dependencies: - async "^2.4.0" +arrify@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" + integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== -async-foreach@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/async-foreach/-/async-foreach-0.1.3.tgz#36121f845c0578172de419a97dbeb1d16ec34542" - integrity sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI= +asap@~2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" + integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== -async-limiter@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" - integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== +ast-types-flow@^0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.8.tgz#0a85e1c92695769ac13a428bb653e7538bea27d6" + integrity sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ== async-mutex@^0.2.6: version "0.2.6" @@ -3389,27 +4530,15 @@ async-mutex@^0.2.6: dependencies: tslib "^2.0.0" -async@3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/async/-/async-3.2.0.tgz#b3a2685c5ebb641d3de02d161002c60fc9f85720" - integrity sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw== - -async@^1.4.2: - version "1.5.2" - resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" - integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo= - -async@^2.0.1, async@^2.1.2, async@^2.4.0, async@^2.5.0, async@^2.6.2: - version "2.6.3" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" - integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== - dependencies: - lodash "^4.17.14" +async@^3.2.3: + version "3.2.5" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.5.tgz#ebd52a8fdaf7a2289a24df399f8d8485c8a46b66" + integrity sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg== asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== at-least-node@^1.0.0: version "1.0.0" @@ -3421,294 +4550,67 @@ atob@^2.1.2: resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== -authereum@^0.1.0: - version "0.1.14" - resolved "https://registry.yarnpkg.com/authereum/-/authereum-0.1.14.tgz#5655e543b296d899136e350d09f9cfe4c12fbc38" - integrity sha512-o1lsXXGg+oYDAEutZ8Ak1Qn2Dnk+qSyQ2ZokyLHRSYGJj6HpEHaSlQA6W3VTHD5r68Q+W0JD/BN9hDSF2xyshQ== - dependencies: - async "3.2.0" - bn.js "5.1.2" - ethereum-private-key-to-address "0.0.3" - ethers "4.0.47" - eventemitter3 "4.0.0" - is-buffer "2.0.4" - penpal "4.1.1" - pify "4.0.1" - querystring "0.2.0" - store "2.0.12" - to-hex "0.0.11" - uuidv4 "6.0.6" - web3-provider-engine "15.0.4" - web3-utils "1.2.1" - -autoprefixer@^9.6.1: - version "9.8.8" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.8.tgz#fd4bd4595385fa6f06599de749a4d5f7a474957a" - integrity sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA== - dependencies: - browserslist "^4.12.0" - caniuse-lite "^1.0.30001109" - normalize-range "^0.1.2" - num2fraction "^1.2.2" - picocolors "^0.2.1" - postcss "^7.0.32" - postcss-value-parser "^4.1.0" - -aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= - -aws4@^1.8.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" - integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== +atomic-sleep@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/atomic-sleep/-/atomic-sleep-1.0.0.tgz#eb85b77a601fc932cfe432c5acd364a9e2c9075b" + integrity sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ== -axe-core@^4.3.5: - version "4.3.5" - resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.3.5.tgz#78d6911ba317a8262bfee292aeafcc1e04b49cc5" - integrity sha512-WKTW1+xAzhMS5dJsxWkliixlO/PqC4VhmO9T4juNYcaTg9jzWiJsou6m5pxWYGfigWbwzJWeFY6z47a+4neRXA== +autoprefixer@^10.4.13: + version "10.4.19" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.19.tgz#ad25a856e82ee9d7898c59583c1afeb3fa65f89f" + integrity sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew== + dependencies: + browserslist "^4.23.0" + caniuse-lite "^1.0.30001599" + fraction.js "^4.3.7" + normalize-range "^0.1.2" + picocolors "^1.0.0" + postcss-value-parser "^4.2.0" -axios@^0.18.0: - version "0.18.1" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.18.1.tgz#ff3f0de2e7b5d180e757ad98000f1081b87bcea3" - integrity sha512-0BfJq4NSfQXd+SkFdrvFbG7addhYSBA2mQwISr46pD6E5iqkWg02RAs8vyTT/j0RTnoYmeXauBuSv1qKwR179g== +available-typed-arrays@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz#a5cc375d6a03c2efc87a553f3e0b1522def14846" + integrity sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ== dependencies: - follow-redirects "1.5.10" - is-buffer "^2.0.2" + possible-typed-array-names "^1.0.0" -axobject-query@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.2.0.tgz#943d47e10c0b704aa42275e20edf3722648989be" - integrity sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA== +axe-core@=4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.7.0.tgz#34ba5a48a8b564f67e103f0aa5768d76e15bbbbf" + integrity sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ== -babel-code-frame@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" - integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s= +axobject-query@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-3.2.1.tgz#39c378a6e3b06ca679f29138151e45b2b32da62a" + integrity sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg== dependencies: - chalk "^1.1.3" - esutils "^2.0.2" - js-tokens "^3.0.2" - -babel-core@^6.0.14, babel-core@^6.26.0: - version "6.26.3" - resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207" - integrity sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA== - dependencies: - babel-code-frame "^6.26.0" - babel-generator "^6.26.0" - babel-helpers "^6.24.1" - babel-messages "^6.23.0" - babel-register "^6.26.0" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - convert-source-map "^1.5.1" - debug "^2.6.9" - json5 "^0.5.1" - lodash "^4.17.4" - minimatch "^3.0.4" - path-is-absolute "^1.0.1" - private "^0.1.8" - slash "^1.0.0" - source-map "^0.5.7" + dequal "^2.0.3" -babel-eslint@^10.1.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.1.0.tgz#6968e568a910b78fb3779cdd8b6ac2f479943232" - integrity sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg== +babel-jest@^27.4.2, babel-jest@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-27.5.1.tgz#a1bf8d61928edfefd21da27eb86a695bfd691444" + integrity sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg== dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/parser" "^7.7.0" - "@babel/traverse" "^7.7.0" - "@babel/types" "^7.7.0" - eslint-visitor-keys "^1.0.0" - resolve "^1.12.0" - -babel-extract-comments@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/babel-extract-comments/-/babel-extract-comments-1.0.0.tgz#0a2aedf81417ed391b85e18b4614e693a0351a21" - integrity sha512-qWWzi4TlddohA91bFwgt6zO/J0X+io7Qp184Fw0m2JYRSTZnJbFR8+07KmzudHCZgOiKRCrjhylwv9Xd8gfhVQ== - dependencies: - babylon "^6.18.0" - -babel-generator@^6.26.0: - version "6.26.1" - resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" - integrity sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA== - dependencies: - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - detect-indent "^4.0.0" - jsesc "^1.3.0" - lodash "^4.17.4" - source-map "^0.5.7" - trim-right "^1.0.1" - -babel-helper-builder-binary-assignment-operator-visitor@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664" - integrity sha1-zORReto1b0IgvK6KAsKzRvmlZmQ= - dependencies: - babel-helper-explode-assignable-expression "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-call-delegate@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" - integrity sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340= - dependencies: - babel-helper-hoist-variables "^6.24.1" - babel-runtime "^6.22.0" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-define-map@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz#a5f56dab41a25f97ecb498c7ebaca9819f95be5f" - integrity sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8= - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-helper-explode-assignable-expression@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa" - integrity sha1-8luCz33BBDPFX3BZLVdGQArCLKo= - dependencies: - babel-runtime "^6.22.0" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-function-name@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" - integrity sha1-00dbjAPtmCQqJbSDUasYOZ01gKk= - dependencies: - babel-helper-get-function-arity "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-get-function-arity@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" - integrity sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0= - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-hoist-variables@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" - integrity sha1-HssnaJydJVE+rbyZFKc/VAi+enY= - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-optimise-call-expression@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257" - integrity sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc= - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-regex@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72" - integrity sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI= - dependencies: - babel-runtime "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-helper-remap-async-to-generator@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b" - integrity sha1-XsWBgnrXI/7N04HxySg5BnbkVRs= - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-replace-supers@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a" - integrity sha1-v22/5Dk40XNpohPKiov3S2qQqxo= - dependencies: - babel-helper-optimise-call-expression "^6.24.1" - babel-messages "^6.23.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helpers@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" - integrity sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI= - dependencies: - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-jest@^26.6.0, babel-jest@^26.6.3: - version "26.6.3" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-26.6.3.tgz#d87d25cb0037577a0c89f82e5755c5d293c01056" - integrity sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA== - dependencies: - "@jest/transform" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/babel__core" "^7.1.7" - babel-plugin-istanbul "^6.0.0" - babel-preset-jest "^26.6.2" + "@jest/transform" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/babel__core" "^7.1.14" + babel-plugin-istanbul "^6.1.1" + babel-preset-jest "^27.5.1" chalk "^4.0.0" - graceful-fs "^4.2.4" + graceful-fs "^4.2.9" slash "^3.0.0" -babel-loader@8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.1.0.tgz#c611d5112bd5209abe8b9fa84c3e4da25275f1c3" - integrity sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw== +babel-loader@^8.2.3: + version "8.3.0" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.3.0.tgz#124936e841ba4fe8176786d6ff28add1f134d6a8" + integrity sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q== dependencies: - find-cache-dir "^2.1.0" - loader-utils "^1.4.0" - mkdirp "^0.5.3" - pify "^4.0.1" + find-cache-dir "^3.3.1" + loader-utils "^2.0.0" + make-dir "^3.1.0" schema-utils "^2.6.5" -babel-messages@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" - integrity sha1-8830cDhYA1sqKVHG7F7fbGLyYw4= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-check-es2015-constants@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" - integrity sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-dynamic-import-node@^2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" - integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== - dependencies: - object.assign "^4.1.0" - -babel-plugin-istanbul@^6.0.0: +babel-plugin-istanbul@^6.1.1: version "6.1.1" resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73" integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== @@ -3719,10 +4621,10 @@ babel-plugin-istanbul@^6.0.0: istanbul-lib-instrument "^5.0.4" test-exclude "^6.0.0" -babel-plugin-jest-hoist@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz#8185bd030348d254c6d7dd974355e6a28b21e62d" - integrity sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw== +babel-plugin-jest-hoist@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz#9be98ecf28c331eb9f5df9c72d6f89deb8181c2e" + integrity sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ== dependencies: "@babel/template" "^7.3.3" "@babel/types" "^7.3.3" @@ -3738,306 +4640,40 @@ babel-plugin-macros@^3.1.0: cosmiconfig "^7.0.0" resolve "^1.19.0" -babel-plugin-named-asset-import@^0.3.7: +babel-plugin-named-asset-import@^0.3.8: version "0.3.8" resolved "https://registry.yarnpkg.com/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.8.tgz#6b7fa43c59229685368683c28bc9734f24524cc2" integrity sha512-WXiAc++qo7XcJ1ZnTYGtLxmBCVbddAml3CEXgWaBzNzLNoxtQ8AiGEFDMOhot9XjTCQbvP5E77Fj9Gk924f00Q== -babel-plugin-polyfill-corejs2@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.0.tgz#407082d0d355ba565af24126fb6cb8e9115251fd" - integrity sha512-wMDoBJ6uG4u4PNFh72Ty6t3EgfA91puCuAwKIazbQlci+ENb/UU9A3xG5lutjUIiXCIn1CY5L15r9LimiJyrSA== +babel-plugin-polyfill-corejs2@^0.4.10: + version "0.4.11" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz#30320dfe3ffe1a336c15afdcdafd6fd615b25e33" + integrity sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q== dependencies: - "@babel/compat-data" "^7.13.11" - "@babel/helper-define-polyfill-provider" "^0.3.0" - semver "^6.1.1" + "@babel/compat-data" "^7.22.6" + "@babel/helper-define-polyfill-provider" "^0.6.2" + semver "^6.3.1" -babel-plugin-polyfill-corejs3@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.0.tgz#f81371be3fe499d39e074e272a1ef86533f3d268" - integrity sha512-Hcrgnmkf+4JTj73GbK3bBhlVPiLL47owUAnoJIf69Hakl3q+KfodbDXiZWGMM7iqCZTxCG3Z2VRfPNYES4rXqQ== +babel-plugin-polyfill-corejs3@^0.10.1, babel-plugin-polyfill-corejs3@^0.10.4: + version "0.10.4" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.4.tgz#789ac82405ad664c20476d0233b485281deb9c77" + integrity sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg== dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.0" - core-js-compat "^3.20.0" + "@babel/helper-define-polyfill-provider" "^0.6.1" + core-js-compat "^3.36.1" -babel-plugin-polyfill-regenerator@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.0.tgz#9ebbcd7186e1a33e21c5e20cae4e7983949533be" - integrity sha512-dhAPTDLGoMW5/84wkgwiLRwMnio2i1fUe53EuvtKMv0pn2p3S8OCoV1xAzfJPl0KOX7IB89s2ib85vbYiea3jg== +babel-plugin-polyfill-regenerator@^0.6.1: + version "0.6.2" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz#addc47e240edd1da1058ebda03021f382bba785e" + integrity sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg== dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.0" - -"babel-plugin-styled-components@>= 1.12.0": - version "2.0.2" - resolved "https://registry.yarnpkg.com/babel-plugin-styled-components/-/babel-plugin-styled-components-2.0.2.tgz#0fac11402dc9db73698b55847ab1dc73f5197c54" - integrity sha512-7eG5NE8rChnNTDxa6LQfynwgHTVOYYaHJbUYSlOhk8QBXIQiMBKq4gyfHBBKPrxUcVBXVJL61ihduCpCQbuNbw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.16.0" - "@babel/helper-module-imports" "^7.16.0" - babel-plugin-syntax-jsx "^6.18.0" - lodash "^4.17.11" - -babel-plugin-syntax-async-functions@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" - integrity sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU= - -babel-plugin-syntax-exponentiation-operator@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" - integrity sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4= - -babel-plugin-syntax-jsx@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946" - integrity sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY= - -babel-plugin-syntax-object-rest-spread@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" - integrity sha1-/WU28rzhODb/o6VFjEkDpZe7O/U= - -babel-plugin-syntax-trailing-function-commas@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3" - integrity sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM= - -babel-plugin-transform-async-to-generator@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761" - integrity sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E= - dependencies: - babel-helper-remap-async-to-generator "^6.24.1" - babel-plugin-syntax-async-functions "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-arrow-functions@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221" - integrity sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141" - integrity sha1-u8UbSflk1wy42OC5ToICRs46YUE= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-block-scoping@^6.23.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f" - integrity sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8= - dependencies: - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-plugin-transform-es2015-classes@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" - integrity sha1-WkxYpQyclGHlZLSyo7+ryXolhNs= - dependencies: - babel-helper-define-map "^6.24.1" - babel-helper-function-name "^6.24.1" - babel-helper-optimise-call-expression "^6.24.1" - babel-helper-replace-supers "^6.24.1" - babel-messages "^6.23.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-computed-properties@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" - integrity sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM= - dependencies: - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-destructuring@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" - integrity sha1-mXux8auWf2gtKwh2/jWNYOdlxW0= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-duplicate-keys@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e" - integrity sha1-c+s9MQypaePvnskcU3QabxV2Qj4= - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-for-of@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" - integrity sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-function-name@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" - integrity sha1-g0yJhTvDaxrw86TF26qU/Y6sqos= - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-literals@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e" - integrity sha1-T1SgLWzWbPkVKAAZox0xklN3yi4= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-modules-amd@^6.22.0, babel-plugin-transform-es2015-modules-amd@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154" - integrity sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ= - dependencies: - babel-plugin-transform-es2015-modules-commonjs "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-modules-commonjs@^6.23.0, babel-plugin-transform-es2015-modules-commonjs@^6.24.1: - version "6.26.2" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz#58a793863a9e7ca870bdc5a881117ffac27db6f3" - integrity sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q== - dependencies: - babel-plugin-transform-strict-mode "^6.24.1" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-types "^6.26.0" - -babel-plugin-transform-es2015-modules-systemjs@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" - integrity sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM= - dependencies: - babel-helper-hoist-variables "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-modules-umd@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468" - integrity sha1-rJl+YoXNGO1hdq22B9YCNErThGg= - dependencies: - babel-plugin-transform-es2015-modules-amd "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-object-super@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d" - integrity sha1-JM72muIcuDp/hgPa0CH1cusnj40= - dependencies: - babel-helper-replace-supers "^6.24.1" - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-parameters@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" - integrity sha1-V6w1GrScrxSpfNE7CfZv3wpiXys= - dependencies: - babel-helper-call-delegate "^6.24.1" - babel-helper-get-function-arity "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-shorthand-properties@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" - integrity sha1-JPh11nIch2YbvZmkYi5R8U3jiqA= - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-spread@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" - integrity sha1-1taKmfia7cRTbIGlQujdnxdG+NE= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-sticky-regex@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" - integrity sha1-AMHNsaynERLN8M9hJsLta0V8zbw= - dependencies: - babel-helper-regex "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-template-literals@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d" - integrity sha1-qEs0UPfp+PH2g51taH2oS7EjbY0= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-typeof-symbol@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372" - integrity sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-unicode-regex@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" - integrity sha1-04sS9C6nMj9yk4fxinxa4frrNek= - dependencies: - babel-helper-regex "^6.24.1" - babel-runtime "^6.22.0" - regexpu-core "^2.0.0" - -babel-plugin-transform-exponentiation-operator@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e" - integrity sha1-KrDJx/MJj6SJB3cruBP+QejeOg4= - dependencies: - babel-helper-builder-binary-assignment-operator-visitor "^6.24.1" - babel-plugin-syntax-exponentiation-operator "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-object-rest-spread@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz#0f36692d50fef6b7e2d4b3ac1478137a963b7b06" - integrity sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY= - dependencies: - babel-plugin-syntax-object-rest-spread "^6.8.0" - babel-runtime "^6.26.0" + "@babel/helper-define-polyfill-provider" "^0.6.2" babel-plugin-transform-react-remove-prop-types@^0.4.24: version "0.4.24" resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz#f2edaf9b4c6a5fbe5c1d678bfb531078c1555f3a" integrity sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA== -babel-plugin-transform-regenerator@^6.22.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f" - integrity sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8= - dependencies: - regenerator-transform "^0.10.0" - -babel-plugin-transform-strict-mode@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" - integrity sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g= - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - babel-preset-current-node-syntax@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" @@ -4056,51 +4692,15 @@ babel-preset-current-node-syntax@^1.0.0: "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-top-level-await" "^7.8.3" -babel-preset-env@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.7.0.tgz#dea79fa4ebeb883cd35dab07e260c1c9c04df77a" - integrity sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg== - dependencies: - babel-plugin-check-es2015-constants "^6.22.0" - babel-plugin-syntax-trailing-function-commas "^6.22.0" - babel-plugin-transform-async-to-generator "^6.22.0" - babel-plugin-transform-es2015-arrow-functions "^6.22.0" - babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" - babel-plugin-transform-es2015-block-scoping "^6.23.0" - babel-plugin-transform-es2015-classes "^6.23.0" - babel-plugin-transform-es2015-computed-properties "^6.22.0" - babel-plugin-transform-es2015-destructuring "^6.23.0" - babel-plugin-transform-es2015-duplicate-keys "^6.22.0" - babel-plugin-transform-es2015-for-of "^6.23.0" - babel-plugin-transform-es2015-function-name "^6.22.0" - babel-plugin-transform-es2015-literals "^6.22.0" - babel-plugin-transform-es2015-modules-amd "^6.22.0" - babel-plugin-transform-es2015-modules-commonjs "^6.23.0" - babel-plugin-transform-es2015-modules-systemjs "^6.23.0" - babel-plugin-transform-es2015-modules-umd "^6.23.0" - babel-plugin-transform-es2015-object-super "^6.22.0" - babel-plugin-transform-es2015-parameters "^6.23.0" - babel-plugin-transform-es2015-shorthand-properties "^6.22.0" - babel-plugin-transform-es2015-spread "^6.22.0" - babel-plugin-transform-es2015-sticky-regex "^6.22.0" - babel-plugin-transform-es2015-template-literals "^6.22.0" - babel-plugin-transform-es2015-typeof-symbol "^6.23.0" - babel-plugin-transform-es2015-unicode-regex "^6.22.0" - babel-plugin-transform-exponentiation-operator "^6.22.0" - babel-plugin-transform-regenerator "^6.22.0" - browserslist "^3.2.6" - invariant "^2.2.2" - semver "^5.3.0" - -babel-preset-jest@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz#747872b1171df032252426586881d62d31798fee" - integrity sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ== +babel-preset-jest@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz#91f10f58034cb7989cb4f962b69fa6eef6a6bc81" + integrity sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag== dependencies: - babel-plugin-jest-hoist "^26.6.2" + babel-plugin-jest-hoist "^27.5.1" babel-preset-current-node-syntax "^1.0.0" -babel-preset-react-app@^10.0.0: +babel-preset-react-app@^10.0.1: version "10.0.1" resolved "https://registry.yarnpkg.com/babel-preset-react-app/-/babel-preset-react-app-10.0.1.tgz#ed6005a20a24f2c88521809fa9aea99903751584" integrity sha512-b0D9IZ1WhhCWkrTXyFuIIgqGzSkRIH5D5AmB0bXbzYAB1OBAwHcUeyWW2LorutLWF5btNo/N7r/cIdmvvKJlYg== @@ -4122,83 +4722,6 @@ babel-preset-react-app@^10.0.0: babel-plugin-macros "^3.1.0" babel-plugin-transform-react-remove-prop-types "^0.4.24" -babel-register@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" - integrity sha1-btAhFz4vy0htestFxgCahW9kcHE= - dependencies: - babel-core "^6.26.0" - babel-runtime "^6.26.0" - core-js "^2.5.0" - home-or-tmp "^2.0.0" - lodash "^4.17.4" - mkdirp "^0.5.1" - source-map-support "^0.4.15" - -babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" - integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= - dependencies: - core-js "^2.4.0" - regenerator-runtime "^0.11.0" - -babel-template@^6.24.1, babel-template@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" - integrity sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI= - dependencies: - babel-runtime "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - lodash "^4.17.4" - -babel-traverse@^6.24.1, babel-traverse@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" - integrity sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4= - dependencies: - babel-code-frame "^6.26.0" - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - debug "^2.6.8" - globals "^9.18.0" - invariant "^2.2.2" - lodash "^4.17.4" - -babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" - integrity sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc= - dependencies: - babel-runtime "^6.26.0" - esutils "^2.0.2" - lodash "^4.17.4" - to-fast-properties "^1.0.3" - -babelify@^7.3.0: - version "7.3.0" - resolved "https://registry.yarnpkg.com/babelify/-/babelify-7.3.0.tgz#aa56aede7067fd7bd549666ee16dc285087e88e5" - integrity sha1-qlau3nBn/XvVSWZu4W3ChQh+iOU= - dependencies: - babel-core "^6.0.14" - object-assign "^4.0.0" - -babylon@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" - integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== - -backoff@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/backoff/-/backoff-2.5.0.tgz#f616eda9d3e4b66b8ca7fca79f695722c5f8e26f" - integrity sha1-9hbtqdPktmuMp/ynn2lXIsX44m8= - dependencies: - precond "0.2" - balanced-match@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" @@ -4211,35 +4734,15 @@ base-x@^3.0.2: dependencies: safe-buffer "^5.0.1" -base64-js@^1.0.2, base64-js@^1.3.1: +base64-js@^1.3.1: version "1.5.1" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== -base@^0.11.1: - version "0.11.2" - resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" - integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== - dependencies: - cache-base "^1.0.1" - class-utils "^0.3.5" - component-emitter "^1.2.1" - define-property "^1.0.0" - isobject "^3.0.1" - mixin-deep "^1.2.0" - pascalcase "^0.1.1" - batch@0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" - integrity sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY= - -bcrypt-pbkdf@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" - integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= - dependencies: - tweetnacl "^0.14.3" + integrity sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw== bech32@1.1.4: version "1.1.4" @@ -4247,13 +4750,14 @@ bech32@1.1.4: integrity sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ== bfj@^7.0.2: - version "7.0.2" - resolved "https://registry.yarnpkg.com/bfj/-/bfj-7.0.2.tgz#1988ce76f3add9ac2913fd8ba47aad9e651bfbb2" - integrity sha512-+e/UqUzwmzJamNF50tBV6tZPTORow7gQ96iFow+8b562OdMpEK0BcJEq2OSPEDmAbSMBQ7PKZ87ubFkgxpYWgw== + version "7.1.0" + resolved "https://registry.yarnpkg.com/bfj/-/bfj-7.1.0.tgz#c5177d522103f9040e1b12980fe8c38cf41d3f8b" + integrity sha512-I6MMLkn+anzNdCUp9hMRyui1HaNEUCco50lxbvNS4+EyXg8lN3nJ48PjPWtbH8UVS9CuMoaKE9U2V3l29DaRQw== dependencies: - bluebird "^3.5.5" - check-types "^11.1.1" + bluebird "^3.7.2" + check-types "^11.2.3" hoopy "^0.1.4" + jsonpath "^1.1.1" tryer "^1.0.1" big.js@^5.2.2: @@ -4261,114 +4765,86 @@ big.js@^5.2.2: resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== -binary-extensions@^1.0.0: - version "1.13.1" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" - integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== +bignumber.js@^9.0.1: + version "9.1.2" + resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.2.tgz#b7c4242259c008903b13707983b5f4bbd31eda0c" + integrity sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug== binary-extensions@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" - integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + version "2.3.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" + integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== bind-decorator@^1.0.11: version "1.0.11" resolved "https://registry.yarnpkg.com/bind-decorator/-/bind-decorator-1.0.11.tgz#e41bc06a1f65dd9cec476c91c5daf3978488252f" - integrity sha1-5BvAah9l3ZzsR2yRxdrzl4SIJS8= - -bindings@^1.2.1, bindings@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" - integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== - dependencies: - file-uri-to-path "1.0.0" - -bip66@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/bip66/-/bip66-1.1.5.tgz#01fa8748785ca70955d5011217d1b3139969ca22" - integrity sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI= - dependencies: - safe-buffer "^5.0.1" + integrity sha512-yzkH0uog6Vv/vQ9+rhSKxecnqGUZHYncg7qS7voz3Q76+TAi1SGiOKk2mlOvusQnFz9Dc4BC/NMkeXu11YgjJg== blakejs@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.1.1.tgz#bf313053978b2cd4c444a48795710be05c785702" - integrity sha512-bLG6PHOCZJKNshTjGRBvET0vTciwQE6zFKOKKXPDJfwFBd4Ac0yBfPZqcGvGJap50l7ktvlpFqc2jGVaUgbJgg== - -block-stream@*: - version "0.0.9" - resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" - integrity sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo= - dependencies: - inherits "~2.0.0" + version "1.2.1" + resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.2.1.tgz#5057e4206eadb4a97f7c0b6e197a505042fc3814" + integrity sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ== -bluebird@^3.5.5: +bluebird@^3.7.2: version "3.7.2" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== +blueimp-canvas-to-blob@^3.29.0: + version "3.29.0" + resolved "https://registry.yarnpkg.com/blueimp-canvas-to-blob/-/blueimp-canvas-to-blob-3.29.0.tgz#d965f06cb1a67fdae207a2be56683f55ef531466" + integrity sha512-0pcSSGxC0QxT+yVkivxIqW0Y4VlO2XSDPofBAqoJ1qJxgH9eiUDLv50Rixij2cDuEfx4M6DpD9UGZpRhT5Q8qg== + bn.js@4.11.6: version "4.11.6" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.6.tgz#53344adb14617a13f6e8dd2ce28905d1c0ba3215" - integrity sha1-UzRK2xRhehP26N0s4okF0cC6MhU= - -bn.js@4.11.8: - version "4.11.8" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" - integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== + integrity sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA== -bn.js@5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.2.tgz#c9686902d3c9a27729f43ab10f9d79c2004da7b0" - integrity sha512-40rZaf3bUNKTVYu9sIeeEGOg7g14Yvnj9kH7b50EiwX0Q7A6umbvfI5tvHaOERH0XigqKkfLkFQxzb4e6CIXnA== - -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.10.0, bn.js@^4.11.0, bn.js@^4.11.6, bn.js@^4.11.8, bn.js@^4.11.9, bn.js@^4.4.0, bn.js@^4.8.0: +bn.js@^4.11.0, bn.js@^4.11.8, bn.js@^4.11.9: version "4.12.0" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== -bn.js@^5.0.0, bn.js@^5.1.1, bn.js@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002" - integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw== +bn.js@^5.1.1, bn.js@^5.2.0, bn.js@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" + integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== -body-parser@1.19.1: - version "1.19.1" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.1.tgz#1499abbaa9274af3ecc9f6f10396c995943e31d4" - integrity sha512-8ljfQi5eBk8EJfECMrgqNGWPEY5jWP+1IzkzkGdFFEwFQZZyaZ21UqdaHktgiMlH0xLHqIFtE/u2OYE5dOtViA== +body-parser@1.20.2: + version "1.20.2" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.2.tgz#6feb0e21c4724d06de7ff38da36dad4f57a747fd" + integrity sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA== dependencies: - bytes "3.1.1" - content-type "~1.0.4" + bytes "3.1.2" + content-type "~1.0.5" debug "2.6.9" - depd "~1.1.2" - http-errors "1.8.1" + depd "2.0.0" + destroy "1.2.0" + http-errors "2.0.0" iconv-lite "0.4.24" - on-finished "~2.3.0" - qs "6.9.6" - raw-body "2.4.2" + on-finished "2.4.1" + qs "6.11.0" + raw-body "2.5.2" type-is "~1.6.18" + unpipe "1.0.0" -bonjour@^3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" - integrity sha1-jokKGD2O6aI5OzhExpGkK897yfU= +bonjour-service@^1.0.11: + version "1.2.1" + resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.2.1.tgz#eb41b3085183df3321da1264719fbada12478d02" + integrity sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw== dependencies: - array-flatten "^2.1.0" - deep-equal "^1.0.1" - dns-equal "^1.0.0" - dns-txt "^2.0.2" - multicast-dns "^6.0.1" - multicast-dns-service-types "^1.1.0" + fast-deep-equal "^3.1.3" + multicast-dns "^7.2.5" boolbase@^1.0.0, boolbase@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" - integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= + integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== bootstrap@^4.5.3: - version "4.6.1" - resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-4.6.1.tgz#bc25380c2c14192374e8dec07cf01b2742d222a2" - integrity sha512-0dj+VgI9Ecom+rvvpNZ4MUZJz8dcX7WCX+eTID9+/8HgOkv3dsRzi8BGeZJCQU6flWQVYxwTQnEZFrmJSEO7og== + version "4.6.2" + resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-4.6.2.tgz#8e0cd61611728a5bf65a3a2b8d6ff6c77d5d7479" + integrity sha512-51Bbp/Uxr9aTuy6ca/8FbFloBUJZLHwnhTcnjIeRn2suQWsWzcuJhGjKDB5eppVte/8oCdOL3VuwxvZDUggwGQ== brace-expansion@^1.1.7: version "1.1.11" @@ -4378,40 +4854,31 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" -braces@^2.3.1, braces@^2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" - integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== - dependencies: - arr-flatten "^1.1.0" - array-unique "^0.3.2" - extend-shallow "^2.0.1" - fill-range "^4.0.0" - isobject "^3.0.1" - repeat-element "^1.1.2" - snapdragon "^0.8.1" - snapdragon-node "^2.0.1" - split-string "^3.0.2" - to-regex "^3.0.1" - -braces@^3.0.1, braces@~3.0.2: +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + +braces@^3.0.2, braces@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== dependencies: fill-range "^7.0.1" -brorand@^1.0.1, brorand@^1.1.0: +brorand@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= + integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== browser-process-hrtime@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== -browserify-aes@^1.0.0, browserify-aes@^1.0.4, browserify-aes@^1.0.6, browserify-aes@^1.2.0: +browserify-aes@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== @@ -4423,88 +4890,20 @@ browserify-aes@^1.0.0, browserify-aes@^1.0.4, browserify-aes@^1.0.6, browserify- inherits "^2.0.1" safe-buffer "^5.0.1" -browserify-cipher@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" - integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== - dependencies: - browserify-aes "^1.0.4" - browserify-des "^1.0.0" - evp_bytestokey "^1.0.0" - -browserify-des@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" - integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== - dependencies: - cipher-base "^1.0.1" - des.js "^1.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" - integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== - dependencies: - bn.js "^5.0.0" - randombytes "^2.0.1" - -browserify-sign@^4.0.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3" - integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg== - dependencies: - bn.js "^5.1.1" - browserify-rsa "^4.0.1" - create-hash "^1.2.0" - create-hmac "^1.1.7" - elliptic "^6.5.3" - inherits "^2.0.4" - parse-asn1 "^5.1.5" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -browserify-zlib@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" - integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== - dependencies: - pako "~1.0.5" - -browserslist@4.14.2: - version "4.14.2" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.14.2.tgz#1b3cec458a1ba87588cc5e9be62f19b6d48813ce" - integrity sha512-HI4lPveGKUR0x2StIz+2FXfDk9SfVMrxn6PLh1JeGUwcuoDkdKZebWiyLRJ68iIPDpMI4JLVDf7S7XzslgWOhw== - dependencies: - caniuse-lite "^1.0.30001125" - electron-to-chromium "^1.3.564" - escalade "^3.0.2" - node-releases "^1.1.61" - -browserslist@^3.2.6: - version "3.2.8" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-3.2.8.tgz#b0005361d6471f0f5952797a76fc985f1f978fc6" - integrity sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ== - dependencies: - caniuse-lite "^1.0.30000844" - electron-to-chromium "^1.3.47" - -browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.17.5, browserslist@^4.19.1, browserslist@^4.6.2, browserslist@^4.6.4: - version "4.19.1" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.19.1.tgz#4ac0435b35ab655896c31d53018b6dd5e9e4c9a3" - integrity sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A== +browserslist@^4.0.0, browserslist@^4.18.1, browserslist@^4.21.10, browserslist@^4.21.4, browserslist@^4.22.2, browserslist@^4.23.0: + version "4.23.0" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.23.0.tgz#8f3acc2bbe73af7213399430890f86c63a5674ab" + integrity sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ== dependencies: - caniuse-lite "^1.0.30001286" - electron-to-chromium "^1.4.17" - escalade "^3.1.1" - node-releases "^2.0.1" - picocolors "^1.0.0" + caniuse-lite "^1.0.30001587" + electron-to-chromium "^1.4.668" + node-releases "^2.0.14" + update-browserslist-db "^1.0.13" bs58@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" - integrity sha1-vhYedsNU9veIrkBx9j806MTwpCo= + integrity sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw== dependencies: base-x "^3.0.2" @@ -4529,62 +4928,22 @@ btoa@^1.2.1: resolved "https://registry.yarnpkg.com/btoa/-/btoa-1.2.1.tgz#01a9909f8b2c93f6bf680ba26131eb30f7fa3d73" integrity sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g== -buffer-alloc-unsafe@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" - integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== - -buffer-alloc@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" - integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== - dependencies: - buffer-alloc-unsafe "^1.1.0" - buffer-fill "^1.0.0" - -buffer-fill@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" - integrity sha1-+PeLdniYiO858gXNY39o5wISKyw= - -buffer-from@^1.0.0, buffer-from@^1.1.1: +buffer-from@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== -buffer-indexof@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" - integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g== - -buffer-to-arraybuffer@^0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz#6064a40fa76eb43c723aba9ef8f6e1216d10511a" - integrity sha1-YGSkD6dutDxyOrqe+PbhIW0QURo= +buffer-reverse@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/buffer-reverse/-/buffer-reverse-1.0.1.tgz#49283c8efa6f901bc01fa3304d06027971ae2f60" + integrity sha512-M87YIUBsZ6N924W57vDwT/aOu8hw7ZgdByz6ijksLjmHJELBASmYTTlNHRgjE+pTsT9oJXGaDSgqqwfdHotDUg== buffer-xor@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" - integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= - -buffer@^4.3.0: - version "4.9.2" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" - integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - isarray "^1.0.0" - -buffer@^5.2.1, buffer@^5.4.3: - version "5.7.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" - integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.1.13" + integrity sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ== -buffer@^6.0.3: +buffer@6.0.3, buffer@^6.0.3: version "6.0.3" resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== @@ -4593,118 +4952,37 @@ buffer@^6.0.3: ieee754 "^1.2.1" builtin-modules@^3.1.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.2.0.tgz#45d5db99e7ee5e6bc4f362e008bf917ab5049887" - integrity sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA== - -builtin-status-codes@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" - integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= + version "3.3.0" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.3.0.tgz#cae62812b89801e9656336e46223e030386be7b6" + integrity sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw== bytes@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" - integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= - -bytes@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.1.tgz#3f018291cb4cbad9accb6e6970bca9c8889e879a" - integrity sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg== - -cacache@^12.0.2: - version "12.0.4" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c" - integrity sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ== - dependencies: - bluebird "^3.5.5" - chownr "^1.1.1" - figgy-pudding "^3.5.1" - glob "^7.1.4" - graceful-fs "^4.1.15" - infer-owner "^1.0.3" - lru-cache "^5.1.1" - mississippi "^3.0.0" - mkdirp "^0.5.1" - move-concurrently "^1.0.1" - promise-inflight "^1.0.1" - rimraf "^2.6.3" - ssri "^6.0.1" - unique-filename "^1.1.1" - y18n "^4.0.0" + integrity sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw== -cacache@^15.0.5: - version "15.3.0" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.3.0.tgz#dc85380fb2f556fe3dda4c719bfa0ec875a7f1eb" - integrity sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ== - dependencies: - "@npmcli/fs" "^1.0.0" - "@npmcli/move-file" "^1.0.1" - chownr "^2.0.0" - fs-minipass "^2.0.0" - glob "^7.1.4" - infer-owner "^1.0.4" - lru-cache "^6.0.0" - minipass "^3.1.1" - minipass-collect "^1.0.2" - minipass-flush "^1.0.5" - minipass-pipeline "^1.2.2" - mkdirp "^1.0.3" - p-map "^4.0.0" - promise-inflight "^1.0.1" - rimraf "^3.0.2" - ssri "^8.0.1" - tar "^6.0.2" - unique-filename "^1.1.1" - -cache-base@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" - integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== - dependencies: - collection-visit "^1.0.0" - component-emitter "^1.2.1" - get-value "^2.0.6" - has-value "^1.0.0" - isobject "^3.0.1" - set-value "^2.0.0" - to-object-path "^0.3.0" - union-value "^1.0.0" - unset-value "^1.0.0" - -call-bind@^1.0.0, call-bind@^1.0.2, call-bind@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== - dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" - -caller-callsite@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" - integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= - dependencies: - callsites "^2.0.0" +bytes@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" + integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== -caller-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" - integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= +call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6, call-bind@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" + integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== dependencies: - caller-callsite "^2.0.0" - -callsites@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" - integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= + es-define-property "^1.0.0" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + set-function-length "^1.2.1" callsites@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== -camel-case@^4.1.1: +camel-case@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.2.tgz#9728072a954f805228225a6deea6b38461e1bd5a" integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw== @@ -4712,48 +4990,21 @@ camel-case@^4.1.1: pascal-case "^3.1.2" tslib "^2.0.3" -camelcase-keys@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" - integrity sha1-MIvur/3ygRkFHvodkyITyRuPkuc= - dependencies: - camelcase "^2.0.0" - map-obj "^1.0.0" - -camelcase-keys@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-4.2.0.tgz#a2aa5fb1af688758259c32c141426d78923b9b77" - integrity sha1-oqpfsa9oh1glnDLBQUJteJI7m3c= - dependencies: - camelcase "^4.1.0" - map-obj "^2.0.0" - quick-lru "^1.0.0" +camelcase-css@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5" + integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== camelcase@5.3.1, camelcase@^5.0.0, camelcase@^5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -camelcase@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" - integrity sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8= - -camelcase@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" - integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= - -camelcase@^6.0.0, camelcase@^6.1.0, camelcase@^6.2.0: +camelcase@^6.2.0, camelcase@^6.2.1: version "6.3.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -camelize@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/camelize/-/camelize-1.0.0.tgz#164a5483e630fa4321e5af07020e531831b2609b" - integrity sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs= - caniuse-api@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" @@ -4764,29 +5015,17 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001125, caniuse-lite@^1.0.30001286: - version "1.0.30001298" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001298.tgz#0e690039f62e91c3ea581673d716890512e7ec52" - integrity sha512-AcKqikjMLlvghZL/vfTHorlQsLDhGRalYf1+GmWCf5SCMziSGjRYQW/JEksj14NaYHIR6KIhrFAy0HV5C25UzQ== - -capture-exit@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4" - integrity sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g== - dependencies: - rsvp "^4.8.4" - -case-sensitive-paths-webpack-plugin@2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.3.0.tgz#23ac613cc9a856e4f88ff8bb73bbb5e989825cf7" - integrity sha512-/4YgnZS8y1UXXmC02xD5rRrBEu6T5ub+mQHLNRj0fzTRbgdBYhsNo2V5EqwgqrExjxsjtF/OpAKAMkKsxbD5XQ== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001587, caniuse-lite@^1.0.30001599: + version "1.0.30001617" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001617.tgz#809bc25f3f5027ceb33142a7d6c40759d7a901eb" + integrity sha512-mLyjzNI9I+Pix8zwcrpxEbGlfqOkF9kM3ptzmKNw5tizSyYwMe+nGLTqMK9cO+0E+Bh6TsBxNAaHWEM8xwSsmA== -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= +case-sensitive-paths-webpack-plugin@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz#db64066c6422eed2e08cc14b986ca43796dbc6d4" + integrity sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw== -chalk@2.4.2, chalk@^2.0.0, chalk@^2.4.1, chalk@^2.4.2: +chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -4795,17 +5034,6 @@ chalk@2.4.2, chalk@^2.0.0, chalk@^2.4.1, chalk@^2.4.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^1.1.1, chalk@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= - dependencies: - ansi-styles "^2.2.1" - escape-string-regexp "^1.0.2" - has-ansi "^2.0.0" - strip-ansi "^3.0.0" - supports-color "^2.0.0" - chalk@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" @@ -4814,7 +5042,7 @@ chalk@^3.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -chalk@^4.0.0, chalk@^4.1.0: +chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -4827,22 +5055,20 @@ char-regex@^1.0.2: resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== -check-types@^11.1.1: - version "11.1.2" - resolved "https://registry.yarnpkg.com/check-types/-/check-types-11.1.2.tgz#86a7c12bf5539f6324eb0e70ca8896c0e38f3e2f" - integrity sha512-tzWzvgePgLORb9/3a0YenggReLKAIb2owL03H2Xdoe5pKcUyWRSEQ8xfCar8t2SIAuEDwtmx2da1YB52YuHQMQ== +char-regex@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-2.0.1.tgz#6dafdb25f9d3349914079f010ba8d0e6ff9cd01e" + integrity sha512-oSvEeo6ZUD7NepqAat3RqoucZ5SeqLJgOvVIwkafu6IP3V0pO38s/ypdVUmDDK6qIIHNlYHJAKX9E7R7HoKElw== -checkpoint-store@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/checkpoint-store/-/checkpoint-store-1.1.0.tgz#04e4cb516b91433893581e6d4601a78e9552ea06" - integrity sha1-BOTLUWuRQziTWB5tRgGnjpVS6gY= - dependencies: - functional-red-black-tree "^1.0.1" +check-types@^11.2.3: + version "11.2.3" + resolved "https://registry.yarnpkg.com/check-types/-/check-types-11.2.3.tgz#1ffdf68faae4e941fce252840b1787b8edc93b71" + integrity sha512-+67P1GkJRaxQD6PKK0Et9DhwQB+vGg3PM5+aavopCpZT1lj9jeqfvpgTLAWErNj8qApkkmXlu/Ug74kmhagkXg== -"chokidar@>=3.0.0 <4.0.0", chokidar@^3.4.1: - version "3.5.2" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75" - integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== +"chokidar@>=3.0.0 <4.0.0", chokidar@^3.4.2, chokidar@^3.5.3, chokidar@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" + integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== dependencies: anymatch "~3.1.2" braces "~3.0.2" @@ -4854,44 +5080,15 @@ checkpoint-store@^1.1.0: optionalDependencies: fsevents "~2.3.2" -chokidar@^2.1.8: - version "2.1.8" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" - integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== - dependencies: - anymatch "^2.0.0" - async-each "^1.0.1" - braces "^2.3.2" - glob-parent "^3.1.0" - inherits "^2.0.3" - is-binary-path "^1.0.0" - is-glob "^4.0.0" - normalize-path "^3.0.0" - path-is-absolute "^1.0.0" - readdirp "^2.2.1" - upath "^1.1.1" - optionalDependencies: - fsevents "^1.2.7" - -chownr@^1.1.1: - version "1.1.4" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" - integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== - -chownr@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" - integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== - chrome-trace-event@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== -ci-info@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" - integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== +ci-info@^3.2.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4" + integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" @@ -4901,46 +5098,38 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: inherits "^2.0.1" safe-buffer "^5.0.1" -cjs-module-lexer@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz#4186fcca0eae175970aee870b9fe2d6cf8d5655f" - integrity sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw== - -class-utils@^0.3.5: - version "0.3.6" - resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" - integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== +citty@^0.1.5, citty@^0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/citty/-/citty-0.1.6.tgz#0f7904da1ed4625e1a9ea7e0fa780981aab7c5e4" + integrity sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ== dependencies: - arr-union "^3.1.0" - define-property "^0.2.5" - isobject "^3.0.0" - static-extend "^0.1.1" + consola "^3.2.3" -classnames@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.3.1.tgz#dfcfa3891e306ec1dad105d0e88f4417b8535e8e" - integrity sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA== +cjs-module-lexer@^1.0.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.3.1.tgz#c485341ae8fd999ca4ee5af2d7a1c9ae01e0099c" + integrity sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q== -clean-css@^4.2.3: - version "4.2.4" - resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.4.tgz#733bf46eba4e607c6891ea57c24a989356831178" - integrity sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A== +classnames@^2.3.2: + version "2.5.1" + resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.5.1.tgz#ba774c614be0f016da105c858e7159eae8e7687b" + integrity sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow== + +clean-css@^5.2.2: + version "5.3.3" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-5.3.3.tgz#b330653cd3bd6b75009cc25c714cae7b93351ccd" + integrity sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg== dependencies: source-map "~0.6.0" -clean-stack@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" - integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== - -cliui@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" - integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== +clipboardy@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/clipboardy/-/clipboardy-4.0.0.tgz#e73ced93a76d19dd379ebf1f297565426dffdca1" + integrity sha512-5mOlNS0mhX0707P2I0aZ2V/cmHUEO/fL7VFLqszkhUsxt7RwnmrInf/eEQKlf5GzvYeHIjT+Ov1HRfNmymlG0w== dependencies: - string-width "^3.1.0" - strip-ansi "^5.2.0" - wrap-ansi "^5.1.0" + execa "^8.0.1" + is-wsl "^3.1.0" + is64bit "^2.0.0" cliui@^6.0.0: version "6.0.0" @@ -4951,29 +5140,34 @@ cliui@^6.0.0: strip-ansi "^6.0.0" wrap-ansi "^6.2.0" -clone-deep@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" - integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== dependencies: - is-plain-object "^2.0.4" - kind-of "^6.0.2" - shallow-clone "^3.0.0" + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" -clone@^2.0.0, clone@^2.1.1: +clone@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" - integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= + integrity sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w== -clsx@^1.1.0, clsx@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.1.1.tgz#98b3134f9abbdf23b2663491ace13c5c03a73188" - integrity sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA== +clsx@^1.1.0, clsx@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.2.1.tgz#0ddc4a20a549b59c93a4116bb26f5294ca17dc12" + integrity sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg== + +clsx@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/clsx/-/clsx-2.1.1.tgz#eed397c9fd8bd882bfb18deab7102049a2f32999" + integrity sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA== co@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" - integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= + integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ== coa@^2.0.2: version "2.0.2" @@ -4984,23 +5178,10 @@ coa@^2.0.2: chalk "^2.4.1" q "^1.1.2" -code-point-at@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" - integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= - collect-v8-coverage@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59" - integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg== - -collection-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" - integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= - dependencies: - map-visit "^1.0.0" - object-visit "^1.0.0" + version "1.0.2" + resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz#c0b29bcd33bcd0779a1344c2136051e6afd3d9e9" + integrity sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q== color-convert@^1.9.0, color-convert@^1.9.3: version "1.9.3" @@ -5019,7 +5200,7 @@ color-convert@^2.0.1: color-name@1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== color-name@^1.0.0, color-name@~1.1.4: version "1.1.4" @@ -5027,14 +5208,14 @@ color-name@^1.0.0, color-name@~1.1.4: integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== color-string@^1.6.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.0.tgz#63b6ebd1bec11999d1df3a79a7569451ac2be8aa" - integrity sha512-9Mrz2AQLefkH1UvASKj6v6hj/7eWgjnT/cVsR8CumieLoT+g900exWeNogqtweI8dxloXN9BDQTYro1oWu/5CQ== + version "1.9.1" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4" + integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== dependencies: color-name "^1.0.0" simple-swizzle "^0.2.2" -color@^3.0.0, color@^3.2.1: +color@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164" integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA== @@ -5042,7 +5223,17 @@ color@^3.0.0, color@^3.2.1: color-convert "^1.9.3" color-string "^1.6.0" -combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: +colord@^2.9.1: + version "2.9.3" + resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.3.tgz#4f8ce919de456f1d5c1c368c307fe20f3e59fb43" + integrity sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw== + +colorette@^2.0.10: + version "2.0.20" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" + integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== + +combined-stream@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== @@ -5054,11 +5245,21 @@ commander@^2.20.0: resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== -commander@^4.1.1: +commander@^4.0.0: version "4.1.1" resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== +commander@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" + integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== + +commander@^8.3.0: + version "8.3.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" + integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== + common-tags@^1.8.0: version "1.8.2" resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.2.tgz#94ebb3c076d26032745fd54face7f688ef5ac9c6" @@ -5067,17 +5268,12 @@ common-tags@^1.8.0: commondir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= - -component-emitter@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" - integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== + integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== compose-function@3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/compose-function/-/compose-function-3.0.3.tgz#9ed675f13cc54501d30950a486ff6a7ba3ab185f" - integrity sha1-ntZ18TzFRQHTCVCkhv9qe6OrGF8= + integrity sha512-xzhzTJ5eC+gmIzvZq+C3kCJHsp9os6tJkrigDRZclyGtOKINbZtE8n1Tzmeh32jW+BUDPbvZpibwvJHBLGMVwg== dependencies: arity-n "^1.0.4" @@ -5101,45 +5297,38 @@ compression@^1.7.4: safe-buffer "5.1.2" vary "~1.1.2" +compressorjs@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/compressorjs/-/compressorjs-1.1.1.tgz#54c147cf37fb38828b08c48646d0258d52faf050" + integrity sha512-SysRuUPfmUNoq+RviE0iMFVUmoX2q/x+7PkEPUmk6NGkd85hDrmvujx0Qtp8UCGA6KMe5kuodsylPQcNaLf60w== + dependencies: + blueimp-canvas-to-blob "^3.29.0" + is-blob "^2.1.0" + concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== -concat-stream@^1.5.0, concat-stream@^1.5.1: - version "1.6.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" - integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" +confbox@^0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/confbox/-/confbox-0.1.7.tgz#ccfc0a2bcae36a84838e83a3b7f770fb17d6c579" + integrity sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA== -confusing-browser-globals@^1.0.10: +confusing-browser-globals@^1.0.11: version "1.0.11" resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz#ae40e9b57cdd3915408a2805ebd3a5585608dc81" integrity sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA== -connect-history-api-fallback@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" - integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== - -console-browserify@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" - integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== - -console-control-strings@^1.0.0, console-control-strings@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" - integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= +connect-history-api-fallback@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz#647264845251a0daf25b97ce87834cace0f5f1c8" + integrity sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA== -constants-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" - integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= +consola@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/consola/-/consola-3.2.3.tgz#0741857aa88cfa0d6fd53f1cff0375136e98502f" + integrity sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ== content-disposition@0.5.4: version "0.5.4" @@ -5148,10 +5337,10 @@ content-disposition@0.5.4: dependencies: safe-buffer "5.2.1" -content-type@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" - integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== +content-type@~1.0.4, content-type@~1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" + integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== convert-source-map@1.7.0: version "1.7.0" @@ -5163,101 +5352,70 @@ convert-source-map@1.7.0: convert-source-map@^0.3.3: version "0.3.5" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-0.3.5.tgz#f1d802950af7dd2631a1febe0596550c86ab3190" - integrity sha1-8dgClQr33SYxof6+BZZVDIarMZA= + integrity sha512-+4nRk0k3oEpwUB7/CalD7xE2z4VmtEnnq0GO2IPTkrooTrAhEsWvuLF5iWP1dXrwluki/azwXV1ve7gtYuPldg== -convert-source-map@^1.4.0, convert-source-map@^1.5.1, convert-source-map@^1.6.0, convert-source-map@^1.7.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369" - integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== - dependencies: - safe-buffer "~5.1.1" +convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" + integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== + +convert-source-map@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" + integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== + +cookie-es@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/cookie-es/-/cookie-es-1.1.0.tgz#68f8d9f48aeb5a534f3896f80e792760d3d20def" + integrity sha512-L2rLOcK0wzWSfSDA33YR+PUHDG10a8px7rUHKWbGLP4YfbsMed2KFUw5fczvDPbT98DDe3LEzviswl810apTEw== cookie-signature@1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= - -cookie@0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.1.tgz#afd713fe26ebd21ba95ceb61f9a8116e50a537d1" - integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA== + integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== -cookiejar@^2.1.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.3.tgz#fc7a6216e408e74414b90230050842dacda75acc" - integrity sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ== - -copy-concurrently@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" - integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== - dependencies: - aproba "^1.1.1" - fs-write-stream-atomic "^1.0.8" - iferr "^0.1.5" - mkdirp "^0.5.1" - rimraf "^2.5.4" - run-queue "^1.0.0" - -copy-descriptor@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" - integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= - -copy-to-clipboard@^3.3.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/copy-to-clipboard/-/copy-to-clipboard-3.3.1.tgz#115aa1a9998ffab6196f93076ad6da3b913662ae" - integrity sha512-i13qo6kIHTTpCm8/Wup+0b1mVWETvu2kIMzKoK8FpkLkFxlt0znUAHcMzox+T8sPlqtZXq3CulEjQHsYiGFJUw== - dependencies: - toggle-selection "^1.0.6" +cookie@0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.6.0.tgz#2798b04b071b0ecbff0dbb62a505a8efa4e19051" + integrity sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw== -core-js-compat@^3.20.0, core-js-compat@^3.20.2, core-js-compat@^3.6.2: - version "3.20.2" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.20.2.tgz#d1ff6936c7330959b46b2e08b122a8b14e26140b" - integrity sha512-qZEzVQ+5Qh6cROaTPFLNS4lkvQ6mBzE3R6A6EEpssj7Zr2egMHgsy4XapdifqJDGC9CBiNv7s+ejI96rLNQFdg== +core-js-compat@^3.31.0, core-js-compat@^3.36.1, core-js-compat@^3.6.2: + version "3.37.0" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.37.0.tgz#d9570e544163779bb4dff1031c7972f44918dc73" + integrity sha512-vYq4L+T8aS5UuFg4UwDhc7YNRWVeVZwltad9C/jV3R2LgVOpS9BDr7l/WL6BN0dbV3k1XejPTHqqEzJgsa0frA== dependencies: - browserslist "^4.19.1" - semver "7.0.0" - -core-js-pure@^3.20.2: - version "3.20.2" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.20.2.tgz#5d263565f0e34ceeeccdc4422fae3e84ca6b8c0f" - integrity sha512-CmWHvSKn2vNL6p6StNp1EmMIfVY/pqn3JLAjfZQ8WZGPOlGoO92EkX9/Mk81i6GxvoPXjUqEQnpM3rJ5QxxIOg== - -core-js@^2.4.0, core-js@^2.5.0: - version "2.6.12" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" - integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== + browserslist "^4.23.0" -core-js@^3.6.5: - version "3.20.2" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.20.2.tgz#46468d8601eafc8b266bd2dd6bf9dee622779581" - integrity sha512-nuqhq11DcOAbFBV4zCbKeGbKQsUDRqTX0oqx7AttUBuqe3h20ixsE039QHelbL6P4h+9kytVqyEtyZ6gsiwEYw== +core-js-pure@^3.23.3, core-js-pure@^3.30.2: + version "3.37.0" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.37.0.tgz#ce99fb4a7cec023fdbbe5b5bd1f06bbcba83316e" + integrity sha512-d3BrpyFr5eD4KcbRvQ3FTUx/KWmaDesr7+a3+1+P46IUnNoEt+oiLijPINZMEon7w9oGkIINWxrBAU9DEciwFQ== -core-util-is@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= +core-js@^3.19.2: + version "3.37.0" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.37.0.tgz#d8dde58e91d156b2547c19d8a4efd5c7f6c426bb" + integrity sha512-fu5vHevQ8ZG4og+LXug8ulUtVxjOcEYvifJr7L5Bfq9GOztVqsKd9/59hUk2ZSbCrS3BqUr3EpaYGIYzq7g3Ug== core-util-is@~1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== -cosmiconfig@^5.0.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" - integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== +cosmiconfig@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982" + integrity sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg== dependencies: - import-fresh "^2.0.0" - is-directory "^0.3.1" - js-yaml "^3.13.1" - parse-json "^4.0.0" + "@types/parse-json" "^4.0.0" + import-fresh "^3.1.0" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.7.2" cosmiconfig@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.1.tgz#714d756522cace867867ccb4474c5d01bbae5d6d" - integrity sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ== + version "7.1.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.1.0.tgz#1443b9afa596b670082ea46cbd8f6a62b84635f6" + integrity sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA== dependencies: "@types/parse-json" "^4.0.0" import-fresh "^3.2.1" @@ -5265,13 +5423,10 @@ cosmiconfig@^7.0.0: path-type "^4.0.0" yaml "^1.10.0" -create-ecdh@^4.0.0: - version "4.0.4" - resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" - integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== - dependencies: - bn.js "^4.1.0" - elliptic "^6.5.3" +crc-32@^1.2.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/crc-32/-/crc-32-1.2.2.tgz#3cad35a934b8bf71f25ca524b6da51fb7eace2ff" + integrity sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ== create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: version "1.2.0" @@ -5284,7 +5439,7 @@ create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: ripemd160 "^2.0.1" sha.js "^2.4.0" -create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: +create-hmac@^1.1.4, create-hmac@^1.1.7: version "1.1.7" resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== @@ -5296,15 +5451,21 @@ create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: safe-buffer "^5.0.1" sha.js "^2.4.8" -cross-fetch@^2.1.0, cross-fetch@^2.1.1: - version "2.2.5" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-2.2.5.tgz#afaf5729f3b6c78d89c9296115c9f142541a5705" - integrity sha512-xqYAhQb4NhCJSRym03dwxpP1bYXpK3y7UN83Bo2WFi3x1Zmzn0SL/6xGoPr+gpt4WmNrgCCX3HPysvOwFOW36w== +cross-fetch@3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.5.tgz#e1389f44d9e7ba767907f7af8454787952ab534f" + integrity sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw== + dependencies: + node-fetch "2.6.7" + +cross-fetch@^3.1.4: + version "3.1.8" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.8.tgz#0327eba65fd68a7d119f8fb2bf9334a1a7956f82" + integrity sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg== dependencies: - node-fetch "2.6.1" - whatwg-fetch "2.0.4" + node-fetch "^2.6.12" -cross-spawn@7.0.3, cross-spawn@^7.0.0, cross-spawn@^7.0.2: +cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== @@ -5313,104 +5474,75 @@ cross-spawn@7.0.3, cross-spawn@^7.0.0, cross-spawn@^7.0.2: shebang-command "^2.0.0" which "^2.0.1" -cross-spawn@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-3.0.1.tgz#1256037ecb9f0c5f79e3d6ef135e30770184b982" - integrity sha1-ElYDfsufDF9549bvE14wdwGEuYI= - dependencies: - lru-cache "^4.0.1" - which "^1.2.9" - -cross-spawn@^6.0.0: - version "6.0.5" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" - integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== - dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" +crossws@^0.2.0, crossws@^0.2.2: + version "0.2.4" + resolved "https://registry.yarnpkg.com/crossws/-/crossws-0.2.4.tgz#82a8b518bff1018ab1d21ced9e35ffbe1681ad03" + integrity sha512-DAxroI2uSOgUKLz00NX6A8U/8EE3SZHmIND+10jkVSaypvyt57J5JEOxAQOL6lQxyzi/wZbTIwssU1uy69h5Vg== -crypto-browserify@^3.11.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" - integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== - dependencies: - browserify-cipher "^1.0.0" - browserify-sign "^4.0.0" - create-ecdh "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.0" - diffie-hellman "^5.0.0" - inherits "^2.0.1" - pbkdf2 "^3.0.3" - public-encrypt "^4.0.0" - randombytes "^2.0.0" - randomfill "^1.0.3" +crypto-js@^3.1.9-1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-3.3.0.tgz#846dd1cce2f68aacfa156c8578f926a609b7976b" + integrity sha512-DIT51nX0dCfKltpRiXV+/TVZq+Qq2NgF4644+K7Ttnla7zEzqc+kjJyiB96BHNyUTBxyjzRcZYpUdZa+QAqi6Q== -crypto-random-string@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" - integrity sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4= +crypto-random-string@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" + integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== -css-blank-pseudo@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/css-blank-pseudo/-/css-blank-pseudo-0.1.4.tgz#dfdefd3254bf8a82027993674ccf35483bfcb3c5" - integrity sha512-LHz35Hr83dnFeipc7oqFDmsjHdljj3TQtxGGiNWSOsTLIAubSm4TEz8qCaKFpk7idaQ1GfWscF4E6mgpBysA1w== +css-blank-pseudo@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz#36523b01c12a25d812df343a32c322d2a2324561" + integrity sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ== dependencies: - postcss "^7.0.5" - -css-color-keywords@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/css-color-keywords/-/css-color-keywords-1.0.0.tgz#fea2616dc676b2962686b3af8dbdbe180b244e05" - integrity sha1-/qJhbcZ2spYmhrOvjb2+GAskTgU= - -css-color-names@0.0.4, css-color-names@^0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" - integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA= + postcss-selector-parser "^6.0.9" -css-declaration-sorter@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22" - integrity sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA== - dependencies: - postcss "^7.0.1" - timsort "^0.3.0" +css-declaration-sorter@^6.3.1: + version "6.4.1" + resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.4.1.tgz#28beac7c20bad7f1775be3a7129d7eae409a3a71" + integrity sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g== -css-has-pseudo@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/css-has-pseudo/-/css-has-pseudo-0.10.0.tgz#3c642ab34ca242c59c41a125df9105841f6966ee" - integrity sha512-Z8hnfsZu4o/kt+AuFzeGpLVhFOGO9mluyHBaA2bA8aCGTwah5sT3WV/fTHH8UNZUytOIImuGPrl/prlb4oX4qQ== - dependencies: - postcss "^7.0.6" - postcss-selector-parser "^5.0.0-rc.4" +css-has-pseudo@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/css-has-pseudo/-/css-has-pseudo-3.0.4.tgz#57f6be91ca242d5c9020ee3e51bbb5b89fc7af73" + integrity sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw== + dependencies: + postcss-selector-parser "^6.0.9" + +css-loader@^6.5.1: + version "6.11.0" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.11.0.tgz#33bae3bf6363d0a7c2cf9031c96c744ff54d85ba" + integrity sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g== + dependencies: + icss-utils "^5.1.0" + postcss "^8.4.33" + postcss-modules-extract-imports "^3.1.0" + postcss-modules-local-by-default "^4.0.5" + postcss-modules-scope "^3.2.0" + postcss-modules-values "^4.0.0" + postcss-value-parser "^4.2.0" + semver "^7.5.4" + +css-mediaquery@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/css-mediaquery/-/css-mediaquery-0.1.2.tgz#6a2c37344928618631c54bd33cedd301da18bea0" + integrity sha512-COtn4EROW5dBGlE/4PiKnh6rZpAPxDeFLaEEwt4i10jpDMFt2EhQGS79QmmrO+iKCHv0PU/HrOWEhijFd1x99Q== -css-loader@4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-4.3.0.tgz#c888af64b2a5b2e85462c72c0f4a85c7e2e0821e" - integrity sha512-rdezjCjScIrsL8BSYszgT4s476IcNKt6yX69t0pHjJVnPUTDpn4WfIpDQTN3wCJvUvfsz/mFjuGOekf3PY3NUg== - dependencies: - camelcase "^6.0.0" - cssesc "^3.0.0" - icss-utils "^4.1.1" - loader-utils "^2.0.0" - postcss "^7.0.32" - postcss-modules-extract-imports "^2.0.0" - postcss-modules-local-by-default "^3.0.3" - postcss-modules-scope "^2.2.0" - postcss-modules-values "^3.0.0" - postcss-value-parser "^4.1.0" - schema-utils "^2.7.1" - semver "^7.3.2" +css-minimizer-webpack-plugin@^3.2.0: + version "3.4.1" + resolved "https://registry.yarnpkg.com/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.4.1.tgz#ab78f781ced9181992fe7b6e4f3422e76429878f" + integrity sha512-1u6D71zeIfgngN2XNRJefc/hY7Ybsxd74Jm4qngIXyUEk7fss3VUzuHxLAq/R8NAba4QU9OUSaMZlbpRc7bM4Q== + dependencies: + cssnano "^5.0.6" + jest-worker "^27.0.2" + postcss "^8.3.5" + schema-utils "^4.0.0" + serialize-javascript "^6.0.0" + source-map "^0.6.1" -css-prefers-color-scheme@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/css-prefers-color-scheme/-/css-prefers-color-scheme-3.1.1.tgz#6f830a2714199d4f0d0d0bb8a27916ed65cff1f4" - integrity sha512-MTu6+tMs9S3EUqzmqLXEcgNRbNkkD/TGFvowpeoWJn5Vfq7FMgsmRQs9X5NXAURiOBmOxm/lLjsDNXDE6k9bhg== - dependencies: - postcss "^7.0.5" +css-prefers-color-scheme@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz#ca8a22e5992c10a5b9d315155e7caee625903349" + integrity sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA== css-select-base-adapter@^0.1.1: version "0.1.1" @@ -5428,25 +5560,16 @@ css-select@^2.0.0: nth-check "^1.0.2" css-select@^4.1.3: - version "4.2.1" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.2.1.tgz#9e665d6ae4c7f9d65dbe69d0316e3221fb274cdd" - integrity sha512-/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ== + version "4.3.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.3.0.tgz#db7129b2846662fd8628cfc496abb2b59e41529b" + integrity sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ== dependencies: boolbase "^1.0.0" - css-what "^5.1.0" - domhandler "^4.3.0" + css-what "^6.0.1" + domhandler "^4.3.1" domutils "^2.8.0" nth-check "^2.0.1" -css-to-react-native@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/css-to-react-native/-/css-to-react-native-3.0.0.tgz#62dbe678072a824a689bcfee011fc96e02a7d756" - integrity sha512-Ro1yETZA813eoyUp2GDBhG2j+YggidUmzO1/v9eYBKR2EHVEniE2MI/NqpTQ954BMpTPZFsGNPm46qFB9dpaPQ== - dependencies: - camelize "^1.0.0" - css-color-keywords "^1.0.0" - postcss-value-parser "^4.0.2" - css-tree@1.0.0-alpha.37: version "1.0.0-alpha.37" resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22" @@ -5455,7 +5578,7 @@ css-tree@1.0.0-alpha.37: mdn-data "2.0.4" source-map "^0.6.1" -css-tree@^1.1.2: +css-tree@^1.1.2, css-tree@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== @@ -5468,15 +5591,15 @@ css-what@^3.2.1: resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.4.2.tgz#ea7026fcb01777edbde52124e21f327e7ae950e4" integrity sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ== -css-what@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-5.1.0.tgz#3f7b707aadf633baf62c2ceb8579b545bb40f7fe" - integrity sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw== +css-what@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" + integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== css.escape@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/css.escape/-/css.escape-1.5.1.tgz#42e27d4fa04ae32f931a4b4d4191fa9cddee97cb" - integrity sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s= + integrity sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg== css@^2.0.0: version "2.2.4" @@ -5488,99 +5611,66 @@ css@^2.0.0: source-map-resolve "^0.5.2" urix "^0.1.0" -css@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/css/-/css-3.0.0.tgz#4447a4d58fdd03367c516ca9f64ae365cee4aa5d" - integrity sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ== - dependencies: - inherits "^2.0.4" - source-map "^0.6.1" - source-map-resolve "^0.6.0" - -cssdb@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-4.4.0.tgz#3bf2f2a68c10f5c6a08abd92378331ee803cddb0" - integrity sha512-LsTAR1JPEM9TpGhl/0p3nQecC2LJ0kD8X5YARu1hk/9I1gril5vDtMZyNxcEpxxDj34YNck/ucjuoUd66K03oQ== - -cssesc@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-2.0.0.tgz#3b13bd1bb1cb36e1bcb5a4dcd27f54c5dcb35703" - integrity sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg== +cssdb@^7.1.0: + version "7.11.2" + resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-7.11.2.tgz#127a2f5b946ee653361a5af5333ea85a39df5ae5" + integrity sha512-lhQ32TFkc1X4eTefGfYPvgovRSzIMofHkigfH8nWtyRL4XJLsRhJFreRvEgKzept7x1rjBuy3J/MurXLaFxW/A== cssesc@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== -cssnano-preset-default@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz#920622b1fc1e95a34e8838203f1397a504f2d3ff" - integrity sha512-LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ== - dependencies: - css-declaration-sorter "^4.0.1" - cssnano-util-raw-cache "^4.0.1" - postcss "^7.0.0" - postcss-calc "^7.0.1" - postcss-colormin "^4.0.3" - postcss-convert-values "^4.0.1" - postcss-discard-comments "^4.0.2" - postcss-discard-duplicates "^4.0.2" - postcss-discard-empty "^4.0.1" - postcss-discard-overridden "^4.0.1" - postcss-merge-longhand "^4.0.11" - postcss-merge-rules "^4.0.3" - postcss-minify-font-values "^4.0.2" - postcss-minify-gradients "^4.0.2" - postcss-minify-params "^4.0.2" - postcss-minify-selectors "^4.0.2" - postcss-normalize-charset "^4.0.1" - postcss-normalize-display-values "^4.0.2" - postcss-normalize-positions "^4.0.2" - postcss-normalize-repeat-style "^4.0.2" - postcss-normalize-string "^4.0.2" - postcss-normalize-timing-functions "^4.0.2" - postcss-normalize-unicode "^4.0.1" - postcss-normalize-url "^4.0.1" - postcss-normalize-whitespace "^4.0.2" - postcss-ordered-values "^4.1.2" - postcss-reduce-initial "^4.0.3" - postcss-reduce-transforms "^4.0.2" - postcss-svgo "^4.0.3" - postcss-unique-selectors "^4.0.1" - -cssnano-util-get-arguments@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f" - integrity sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8= - -cssnano-util-get-match@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d" - integrity sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0= - -cssnano-util-raw-cache@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282" - integrity sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA== - dependencies: - postcss "^7.0.0" - -cssnano-util-same-parent@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3" - integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q== +cssnano-preset-default@^5.2.14: + version "5.2.14" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.2.14.tgz#309def4f7b7e16d71ab2438052093330d9ab45d8" + integrity sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A== + dependencies: + css-declaration-sorter "^6.3.1" + cssnano-utils "^3.1.0" + postcss-calc "^8.2.3" + postcss-colormin "^5.3.1" + postcss-convert-values "^5.1.3" + postcss-discard-comments "^5.1.2" + postcss-discard-duplicates "^5.1.0" + postcss-discard-empty "^5.1.1" + postcss-discard-overridden "^5.1.0" + postcss-merge-longhand "^5.1.7" + postcss-merge-rules "^5.1.4" + postcss-minify-font-values "^5.1.0" + postcss-minify-gradients "^5.1.1" + postcss-minify-params "^5.1.4" + postcss-minify-selectors "^5.2.1" + postcss-normalize-charset "^5.1.0" + postcss-normalize-display-values "^5.1.0" + postcss-normalize-positions "^5.1.1" + postcss-normalize-repeat-style "^5.1.1" + postcss-normalize-string "^5.1.0" + postcss-normalize-timing-functions "^5.1.0" + postcss-normalize-unicode "^5.1.1" + postcss-normalize-url "^5.1.0" + postcss-normalize-whitespace "^5.1.1" + postcss-ordered-values "^5.1.3" + postcss-reduce-initial "^5.1.2" + postcss-reduce-transforms "^5.1.0" + postcss-svgo "^5.1.0" + postcss-unique-selectors "^5.1.1" + +cssnano-utils@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-3.1.0.tgz#95684d08c91511edfc70d2636338ca37ef3a6861" + integrity sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA== -cssnano@^4.1.10: - version "4.1.11" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.11.tgz#c7b5f5b81da269cb1fd982cb960c1200910c9a99" - integrity sha512-6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g== +cssnano@^5.0.6: + version "5.1.15" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.1.15.tgz#ded66b5480d5127fcb44dac12ea5a983755136bf" + integrity sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw== dependencies: - cosmiconfig "^5.0.0" - cssnano-preset-default "^4.0.8" - is-resolvable "^1.0.0" - postcss "^7.0.0" + cssnano-preset-default "^5.2.14" + lilconfig "^2.0.3" + yaml "^1.10.2" -csso@^4.0.2: +csso@^4.0.2, csso@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529" integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== @@ -5604,43 +5694,24 @@ cssstyle@^2.3.0: dependencies: cssom "~0.3.6" -csstype@^3.0.2: - version "3.0.10" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.10.tgz#2ad3a7bed70f35b965707c092e5f30b327c290e5" - integrity sha512-2u44ZG2OcNUO9HDp/Jl8C07x6pU/eTR3ncV91SiK3dhG9TWvRVsCoJw14Ckx5DgWkzGA3waZWO3d7pgqpUI/XA== - -currently-unhandled@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" - integrity sha1-mI3zP+qxke95mmE2nddsF635V+o= - dependencies: - array-find-index "^1.0.1" - -cyclist@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" - integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= +csstype@^3.0.2, csstype@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" + integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== -d@1, d@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" - integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== +d@1, d@^1.0.1, d@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.2.tgz#2aefd554b81981e7dccf72d6842ae725cb17e5de" + integrity sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw== dependencies: - es5-ext "^0.10.50" - type "^1.0.1" + es5-ext "^0.10.64" + type "^2.7.2" -damerau-levenshtein@^1.0.7: +damerau-levenshtein@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7" integrity sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA== -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= - dependencies: - assert-plus "^1.0.0" - data-urls@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b" @@ -5650,80 +5721,78 @@ data-urls@^2.0.0: whatwg-mimetype "^2.3.0" whatwg-url "^8.0.0" -debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.8, debug@^2.6.9: +data-view-buffer@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/data-view-buffer/-/data-view-buffer-1.0.1.tgz#8ea6326efec17a2e42620696e671d7d5a8bc66b2" + integrity sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-data-view "^1.0.1" + +data-view-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz#90721ca95ff280677eb793749fce1011347669e2" + integrity sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + is-data-view "^1.0.1" + +data-view-byte-offset@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz#5e0bbfb4828ed2d1b9b400cd8a7d119bca0ff18a" + integrity sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-data-view "^1.0.1" + +dayjs@1.11.10: + version "1.11.10" + resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.10.tgz#68acea85317a6e164457d6d6947564029a6a16a0" + integrity sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ== + +debug@2.6.9, debug@^2.6.0: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: ms "2.0.0" -debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1: - version "4.3.3" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664" - integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q== +debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== dependencies: ms "2.1.2" -debug@=3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" - integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== - dependencies: - ms "2.0.0" - -debug@^3.1.1, debug@^3.2.5, debug@^3.2.7: +debug@^3.2.7: version "3.2.7" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== dependencies: ms "^2.1.1" -decamelize-keys@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9" - integrity sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk= - dependencies: - decamelize "^1.1.0" - map-obj "^1.0.0" - -decamelize@^1.1.0, decamelize@^1.1.2, decamelize@^1.2.0: +decamelize@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= + integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== decimal.js@^10.2.1: - version "10.3.1" - resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.3.1.tgz#d8c3a444a9c6774ba60ca6ad7261c3a94fd5e783" - integrity sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ== - -decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" - integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= + version "10.4.3" + resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.3.tgz#1044092884d245d1b7f65725fa4ad4c6f781cc23" + integrity sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA== -decompress-response@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" - integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= - dependencies: - mimic-response "^1.0.0" +decode-uri-component@^0.2.0, decode-uri-component@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9" + integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ== dedent@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" - integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= - -deep-equal@^1.0.1, deep-equal@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" - integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== - dependencies: - is-arguments "^1.0.4" - is-date-object "^1.0.1" - is-regex "^1.0.4" - object-is "^1.0.1" - object-keys "^1.1.1" - regexp.prototype.flags "^1.2.0" + integrity sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA== deep-is@^0.1.3, deep-is@~0.1.3: version "0.1.4" @@ -5731,121 +5800,84 @@ deep-is@^0.1.3, deep-is@~0.1.3: integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== deepmerge@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" - integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== - -default-gateway@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b" - integrity sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA== - dependencies: - execa "^1.0.0" - ip-regex "^2.1.0" - -deferred-leveldown@~1.2.1: - version "1.2.2" - resolved "https://registry.yarnpkg.com/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz#3acd2e0b75d1669924bc0a4b642851131173e1eb" - integrity sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA== - dependencies: - abstract-leveldown "~2.6.0" + version "4.3.1" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" + integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== -define-properties@^1.1.2, define-properties@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" - integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== +default-gateway@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-6.0.3.tgz#819494c888053bdb743edbf343d6cdf7f2943a71" + integrity sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg== dependencies: - object-keys "^1.0.12" + execa "^5.0.0" -define-property@^0.2.5: - version "0.2.5" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" - integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= +define-data-property@^1.0.1, define-data-property@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" + integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== dependencies: - is-descriptor "^0.1.0" + es-define-property "^1.0.0" + es-errors "^1.3.0" + gopd "^1.0.1" -define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" - integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= - dependencies: - is-descriptor "^1.0.0" +define-lazy-prop@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" + integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== -define-property@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" - integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== +define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" + integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== dependencies: - is-descriptor "^1.0.2" - isobject "^3.0.1" - -defined@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" - integrity sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM= + define-data-property "^1.0.1" + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" -del@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4" - integrity sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ== - dependencies: - "@types/glob" "^7.1.1" - globby "^6.1.0" - is-path-cwd "^2.0.0" - is-path-in-cwd "^2.0.0" - p-map "^2.0.0" - pify "^4.0.1" - rimraf "^2.6.3" +defu@^6.1.3, defu@^6.1.4: + version "6.1.4" + resolved "https://registry.yarnpkg.com/defu/-/defu-6.1.4.tgz#4e0c9cf9ff68fe5f3d7f2765cc1a012dfdcb0479" + integrity sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg== delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== -delegates@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" - integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= +depd@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== depd@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= + integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== -dequal@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.2.tgz#85ca22025e3a87e65ef75a7a437b35284a7e319d" - integrity sha512-q9K8BlJVxK7hQYqa6XISGmBZbtQQWVXSrRrWreHC94rMt1QL/Impruc+7p2CYSYuVIUr+YCt6hjrs1kkdJRTug== - -des.js@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" - integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== - dependencies: - inherits "^2.0.1" - minimalistic-assert "^1.0.0" +dequal@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" + integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== -destroy@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" - integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= +destr@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/destr/-/destr-2.0.3.tgz#7f9e97cb3d16dbdca7be52aca1644ce402cfe449" + integrity sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ== -detect-browser@5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/detect-browser/-/detect-browser-5.2.0.tgz#c9cd5afa96a6a19fda0bbe9e9be48a6b6e1e9c97" - integrity sha512-tr7XntDAu50BVENgQfajMLzacmSe34D+qZc4zjnniz0ZVuw/TZcLcyxHQjYpJTM36sGEkZZlYLnIM1hH7alTMA== +destroy@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" + integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== -detect-browser@^5.1.0: +detect-browser@5.3.0: version "5.3.0" resolved "https://registry.yarnpkg.com/detect-browser/-/detect-browser-5.3.0.tgz#9705ef2bddf46072d0f7265a1fe300e36fe7ceca" integrity sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w== -detect-indent@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" - integrity sha1-920GQ1LN9Docts5hnE7jqUdd4gg= - dependencies: - repeating "^2.0.0" +detect-libc@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" + integrity sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg== detect-newline@^3.0.0: version "3.1.0" @@ -5857,7 +5889,7 @@ detect-node@^2.0.4: resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== -detect-port-alt@1.1.6: +detect-port-alt@^1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/detect-port-alt/-/detect-port-alt-1.1.6.tgz#24707deabe932d4a3cf621302027c2b266568275" integrity sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q== @@ -5865,34 +5897,30 @@ detect-port-alt@1.1.6: address "^1.0.1" debug "^2.6.0" +didyoumean@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/didyoumean/-/didyoumean-1.2.2.tgz#989346ffe9e839b4555ecf5666edea0d3e8ad037" + integrity sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw== + diff-sequences@^26.6.2: version "26.6.2" resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.6.2.tgz#48ba99157de1923412eed41db6b6d4aa9ca7c0b1" integrity sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q== -diff-sequences@^27.4.0: - version "27.4.0" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-27.4.0.tgz#d783920ad8d06ec718a060d00196dfef25b132a5" - integrity sha512-YqiQzkrsmHMH5uuh8OdQFU9/ZpADnwzml8z0O5HvRNda+5UZsaX/xN+AAxfR2hWq1Y7HZnAzO9J5lJXOuDz2Ww== +diff-sequences@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-27.5.1.tgz#eaecc0d327fd68c8d9672a1e64ab8dccb2ef5327" + integrity sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ== -diff@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" - integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== - -diffie-hellman@^5.0.0: - version "5.0.3" - resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" - integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== - dependencies: - bn.js "^4.1.0" - miller-rabin "^4.0.0" - randombytes "^2.0.0" +diff-sequences@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.6.3.tgz#4deaf894d11407c51efc8418012f9e70b84ea921" + integrity sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q== dijkstrajs@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/dijkstrajs/-/dijkstrajs-1.0.2.tgz#2e48c0d3b825462afe75ab4ad5e829c8ece36257" - integrity sha512-QV6PMaHTCNmKSeP6QoXhVTw9snc9VD8MulTT0Bd99Pacp4SS1cjcrYPgBPmibqKVtMJJfqC6XvOXgPMEEPH/fg== + version "1.0.3" + resolved "https://registry.yarnpkg.com/dijkstrajs/-/dijkstrajs-1.0.3.tgz#4c8dbdea1f0f6478bff94d9c49c784d623e4fc23" + integrity sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA== dir-glob@^3.0.1: version "3.0.1" @@ -5901,25 +5929,17 @@ dir-glob@^3.0.1: dependencies: path-type "^4.0.0" -dns-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" - integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0= - -dns-packet@^1.3.1: - version "1.3.4" - resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.4.tgz#e3455065824a2507ba886c55a89963bb107dec6f" - integrity sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA== - dependencies: - ip "^1.1.0" - safe-buffer "^5.0.1" +dlv@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79" + integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA== -dns-txt@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" - integrity sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY= +dns-packet@^5.2.2: + version "5.6.1" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-5.6.1.tgz#ae888ad425a9d1478a0674256ab866de1012cf2f" + integrity sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw== dependencies: - buffer-indexof "^1.0.0" + "@leichtgewicht/ip-codec" "^2.0.1" doctrine@^2.1.0: version "2.1.0" @@ -5936,9 +5956,9 @@ doctrine@^3.0.0: esutils "^2.0.2" dom-accessibility-api@^0.5.6: - version "0.5.10" - resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.5.10.tgz#caa6d08f60388d0bb4539dd75fe458a9a1d0014c" - integrity sha512-Xu9mD0UjrJisTmv7lmVSDMagQcU9R5hwAbxsaAE/35XPnPLJobbuREfV/rraiSaEj/UOvgrzQs66zyTWTlyd+g== + version "0.5.16" + resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz#5a7429e6066eb3664d911e33fb0e45de8eb08453" + integrity sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg== dom-converter@^0.2.0: version "0.2.0" @@ -5964,33 +5984,23 @@ dom-serializer@0: entities "^2.0.0" dom-serializer@^1.0.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.3.2.tgz#6206437d32ceefaec7161803230c7a20bc1b4d91" - integrity sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig== + version "1.4.1" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.4.1.tgz#de5d41b1aea290215dc45a6dae8adcf1d32e2d30" + integrity sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag== dependencies: domelementtype "^2.0.1" domhandler "^4.2.0" entities "^2.0.0" -dom-walk@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84" - integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w== - -domain-browser@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" - integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== - domelementtype@1: version "1.3.1" resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== domelementtype@^2.0.1, domelementtype@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57" - integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A== + version "2.3.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" + integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== domexception@^2.0.1: version "2.0.1" @@ -5999,10 +6009,10 @@ domexception@^2.0.1: dependencies: webidl-conversions "^5.0.0" -domhandler@^4.0.0, domhandler@^4.2.0, domhandler@^4.2.2, domhandler@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.0.tgz#16c658c626cf966967e306f966b431f77d4a5626" - integrity sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g== +domhandler@^4.0.0, domhandler@^4.2.0, domhandler@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.1.tgz#8d792033416f59d68bc03a5aa7b018c1ca89279c" + integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ== dependencies: domelementtype "^2.2.0" @@ -6031,14 +6041,7 @@ dot-case@^3.0.4: no-case "^3.0.4" tslib "^2.0.3" -dot-prop@^5.2.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" - integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== - dependencies: - is-obj "^2.0.0" - -dotenv-expand@5.1.0: +dotenv-expand@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz#3fbaf020bfd794884072ea26b1e9791d45a629f0" integrity sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA== @@ -6048,74 +6051,49 @@ dotenv@8.2.0: resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a" integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw== -dotignore@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/dotignore/-/dotignore-0.1.2.tgz#f942f2200d28c3a76fbdd6f0ee9f3257c8a2e905" - integrity sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw== - dependencies: - minimatch "^3.0.4" - -drbg.js@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/drbg.js/-/drbg.js-1.0.1.tgz#3e36b6c42b37043823cdbc332d58f31e2445480b" - integrity sha1-Pja2xCs3BDgjzbwzLVjzHiRFSAs= - dependencies: - browserify-aes "^1.0.6" - create-hash "^1.1.2" - create-hmac "^1.1.4" +dotenv@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-10.0.0.tgz#3d4227b8fb95f81096cdd2b66653fb2c7085ba81" + integrity sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q== -duplexer@^0.1.1: +duplexer@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== -duplexify@^3.4.2, duplexify@^3.6.0: - version "3.7.1" - resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" - integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== +duplexify@^4.1.2: + version "4.1.3" + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-4.1.3.tgz#a07e1c0d0a2c001158563d32592ba58bddb0236f" + integrity sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA== dependencies: - end-of-stream "^1.0.0" - inherits "^2.0.1" - readable-stream "^2.0.0" - stream-shift "^1.0.0" + end-of-stream "^1.4.1" + inherits "^2.0.3" + readable-stream "^3.1.1" + stream-shift "^1.0.2" -ecc-jsbn@~0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= - dependencies: - jsbn "~0.1.0" - safer-buffer "^2.1.0" +eastasianwidth@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== -ejs@^2.6.1: - version "2.7.4" - resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.7.4.tgz#48661287573dcc53e366c7a1ae52c3a120eec9ba" - integrity sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA== - -electron-to-chromium@^1.3.47, electron-to-chromium@^1.3.564, electron-to-chromium@^1.4.17: - version "1.4.41" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.41.tgz#0b2e126796e7fafb9fd71e29304468b9d0af5d65" - integrity sha512-VQEXEJc+8rJIva85H8EPtB5Ux9g8TzkNGBanqphM9ZWMZ34elueKJ+5g+BPhz3Lk8gkujfQRcIZ+fpA0btUIuw== - -elliptic@6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.2.tgz#05c5678d7173c049d8ca433552224a495d0e3762" - integrity sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw== +ejs@^3.1.6: + version "3.1.10" + resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.10.tgz#69ab8358b14e896f80cc39e62087b88500c3ac3b" + integrity sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA== dependencies: - bn.js "^4.4.0" - brorand "^1.0.1" - hash.js "^1.0.0" - hmac-drbg "^1.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.0" + jake "^10.8.5" -elliptic@6.5.4, elliptic@^6.4.0, elliptic@^6.5.2, elliptic@^6.5.3, elliptic@^6.5.4: +electron-to-chromium@^1.4.668: + version "1.4.765" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.765.tgz#c43f651b94d9c309acf165cd0fc17e9b025de03d" + integrity sha512-70APzI2AGyJgcWVSnfJCytP2Gejptk6cIm0t5uuUfwdKN63xBIZBzD0N5l/s0hWr8tj0w/p6UaPz+hLAm+Orjw== + +elliptic@6.5.4: version "6.5.4" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== @@ -6128,15 +6106,28 @@ elliptic@6.5.4, elliptic@^6.4.0, elliptic@^6.5.2, elliptic@^6.5.3, elliptic@^6.5 minimalistic-assert "^1.0.1" minimalistic-crypto-utils "^1.0.1" -emittery@^0.7.1: - version "0.7.2" - resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.7.2.tgz#25595908e13af0f5674ab419396e2fb394cdfa82" - integrity sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ== +elliptic@^6.5.2, elliptic@^6.5.4: + version "6.5.5" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.5.tgz#c715e09f78b6923977610d4c2346d6ce22e6dded" + integrity sha512-7EjbcmUm17NQFu4Pmgmq2olYMj8nwMnpcddByChSUjArp8F5DQWcIcpriwO4ZToLNAJig0yiyjswfyGNje/ixw== + dependencies: + bn.js "^4.11.9" + brorand "^1.1.0" + hash.js "^1.0.0" + hmac-drbg "^1.0.1" + inherits "^2.0.4" + minimalistic-assert "^1.0.1" + minimalistic-crypto-utils "^1.0.1" + +emittery@^0.10.2: + version "0.10.2" + resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.10.2.tgz#902eec8aedb8c41938c46e9385e9db7e03182933" + integrity sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw== -emoji-regex@^7.0.1: - version "7.0.3" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" - integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== +emittery@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.8.1.tgz#bb23cc86d03b30aa75a7f734819dee2e1ba70860" + integrity sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg== emoji-regex@^8.0.0: version "8.0.0" @@ -6148,69 +6139,47 @@ emoji-regex@^9.2.2: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== -emojis-list@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" - integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= - emojis-list@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== +encode-utf8@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/encode-utf8/-/encode-utf8-1.0.3.tgz#f30fdd31da07fb596f281beb2f6b027851994cda" + integrity sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw== + encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= - -encoding@^0.1.11: - version "0.1.13" - resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" - integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== - dependencies: - iconv-lite "^0.6.2" + integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== -end-of-stream@^1.0.0, end-of-stream@^1.1.0: +end-of-stream@^1.1.0, end-of-stream@^1.4.1: version "1.4.4" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== dependencies: once "^1.4.0" -enhanced-resolve@^4.3.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz#2f3cfd84dbe3b487f18f2db2ef1e064a571ca5ec" - integrity sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg== - dependencies: - graceful-fs "^4.1.2" - memory-fs "^0.5.0" - tapable "^1.0.0" - -enquirer@^2.3.5: - version "2.3.6" - resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" - integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== +enhanced-resolve@^5.16.0: + version "5.16.1" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.16.1.tgz#e8bc63d51b826d6f1cbc0a150ecb5a8b0c62e567" + integrity sha512-4U5pNsuDl0EhuZpq46M5xPslstkviJuhrdobaRDBk2Jy2KO37FDAJl4lb2KlNabxT0m4MTK2UHNrsAcphE8nyw== dependencies: - ansi-colors "^4.1.1" + graceful-fs "^4.2.4" + tapable "^2.2.0" entities@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== -entities@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/entities/-/entities-3.0.1.tgz#2b887ca62585e96db3903482d336c1006c3001d4" - integrity sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q== - -errno@^0.1.3, errno@~0.1.1, errno@~0.1.7: - version "0.1.8" - resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" - integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== - dependencies: - prr "~1.0.1" +entities@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" + integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== -error-ex@^1.2.0, error-ex@^1.3.1: +error-ex@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== @@ -6218,37 +6187,128 @@ error-ex@^1.2.0, error-ex@^1.3.1: is-arrayish "^0.2.1" error-stack-parser@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-2.0.6.tgz#5a99a707bd7a4c58a797902d48d82803ede6aad8" - integrity sha512-d51brTeqC+BHlwF0BhPtcYgF5nlzf9ZZ0ZIUQNZpc9ZB9qw5IJ2diTrBY9jlCJkTLITYPjmiX6OWCwH+fuyNgQ== - dependencies: - stackframe "^1.1.1" - -es-abstract@^1.17.2, es-abstract@^1.19.0, es-abstract@^1.19.1: - version "1.19.1" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.19.1.tgz#d4885796876916959de78edaa0df456627115ec3" - integrity sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w== - dependencies: - call-bind "^1.0.2" + version "2.1.4" + resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-2.1.4.tgz#229cb01cdbfa84440bfa91876285b94680188286" + integrity sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ== + dependencies: + stackframe "^1.3.4" + +es-abstract@^1.17.2, es-abstract@^1.22.1, es-abstract@^1.22.3, es-abstract@^1.23.0, es-abstract@^1.23.1, es-abstract@^1.23.2, es-abstract@^1.23.3: + version "1.23.3" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.23.3.tgz#8f0c5a35cd215312573c5a27c87dfd6c881a0aa0" + integrity sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A== + dependencies: + array-buffer-byte-length "^1.0.1" + arraybuffer.prototype.slice "^1.0.3" + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" + data-view-buffer "^1.0.1" + data-view-byte-length "^1.0.1" + data-view-byte-offset "^1.0.0" + es-define-property "^1.0.0" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + es-set-tostringtag "^2.0.3" es-to-primitive "^1.2.1" - function-bind "^1.1.1" - get-intrinsic "^1.1.1" - get-symbol-description "^1.0.0" - has "^1.0.3" - has-symbols "^1.0.2" - internal-slot "^1.0.3" - is-callable "^1.2.4" - is-negative-zero "^2.0.1" + function.prototype.name "^1.1.6" + get-intrinsic "^1.2.4" + get-symbol-description "^1.0.2" + globalthis "^1.0.3" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" + has-proto "^1.0.3" + has-symbols "^1.0.3" + hasown "^2.0.2" + internal-slot "^1.0.7" + is-array-buffer "^3.0.4" + is-callable "^1.2.7" + is-data-view "^1.0.1" + is-negative-zero "^2.0.3" is-regex "^1.1.4" - is-shared-array-buffer "^1.0.1" + is-shared-array-buffer "^1.0.3" is-string "^1.0.7" - is-weakref "^1.0.1" - object-inspect "^1.11.0" + is-typed-array "^1.1.13" + is-weakref "^1.0.2" + object-inspect "^1.13.1" object-keys "^1.1.1" - object.assign "^4.1.2" - string.prototype.trimend "^1.0.4" - string.prototype.trimstart "^1.0.4" - unbox-primitive "^1.0.1" + object.assign "^4.1.5" + regexp.prototype.flags "^1.5.2" + safe-array-concat "^1.1.2" + safe-regex-test "^1.0.3" + string.prototype.trim "^1.2.9" + string.prototype.trimend "^1.0.8" + string.prototype.trimstart "^1.0.8" + typed-array-buffer "^1.0.2" + typed-array-byte-length "^1.0.1" + typed-array-byte-offset "^1.0.2" + typed-array-length "^1.0.6" + unbox-primitive "^1.0.2" + which-typed-array "^1.1.15" + +es-array-method-boxes-properly@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e" + integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== + +es-define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845" + integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== + dependencies: + get-intrinsic "^1.2.4" + +es-errors@^1.1.0, es-errors@^1.2.1, es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + +es-iterator-helpers@^1.0.15, es-iterator-helpers@^1.0.17: + version "1.0.19" + resolved "https://registry.yarnpkg.com/es-iterator-helpers/-/es-iterator-helpers-1.0.19.tgz#117003d0e5fec237b4b5c08aded722e0c6d50ca8" + integrity sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.3" + es-errors "^1.3.0" + es-set-tostringtag "^2.0.3" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + globalthis "^1.0.3" + has-property-descriptors "^1.0.2" + has-proto "^1.0.3" + has-symbols "^1.0.3" + internal-slot "^1.0.7" + iterator.prototype "^1.1.2" + safe-array-concat "^1.1.2" + +es-module-lexer@^1.2.1: + version "1.5.2" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.5.2.tgz#00b423304f2500ac59359cc9b6844951f372d497" + integrity sha512-l60ETUTmLqbVbVHv1J4/qj+M8nq7AwMzEcg3kmJDt9dCNrTk+yHcYFf/Kw75pMDwd9mPcIGCG5LcS20SxYRzFA== + +es-object-atoms@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.0.0.tgz#ddb55cd47ac2e240701260bc2a8e31ecb643d941" + integrity sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw== + dependencies: + es-errors "^1.3.0" + +es-set-tostringtag@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz#8bb60f0a440c2e4281962428438d58545af39777" + integrity sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ== + dependencies: + get-intrinsic "^1.2.4" + has-tostringtag "^1.0.2" + hasown "^2.0.1" + +es-shim-unscopables@^1.0.0, es-shim-unscopables@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz#1f6942e71ecc7835ed1c8a83006d8771a63a3763" + integrity sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw== + dependencies: + hasown "^2.0.0" es-to-primitive@^1.2.1: version "1.2.1" @@ -6259,237 +6319,214 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -es5-ext@^0.10.35, es5-ext@^0.10.50: - version "0.10.53" - resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.53.tgz#93c5a3acfdbef275220ad72644ad02ee18368de1" - integrity sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q== +es5-ext@^0.10.35, es5-ext@^0.10.62, es5-ext@^0.10.64, es5-ext@~0.10.14: + version "0.10.64" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.64.tgz#12e4ffb48f1ba2ea777f1fcdd1918ef73ea21714" + integrity sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg== dependencies: - es6-iterator "~2.0.3" - es6-symbol "~3.1.3" - next-tick "~1.0.0" + es6-iterator "^2.0.3" + es6-symbol "^3.1.3" + esniff "^2.0.1" + next-tick "^1.1.0" -es6-iterator@2.0.3, es6-iterator@~2.0.3: +es6-iterator@2.0.3, es6-iterator@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" - integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c= + integrity sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g== dependencies: d "1" es5-ext "^0.10.35" es6-symbol "^3.1.1" -es6-symbol@^3.1.1, es6-symbol@~3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" - integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== +es6-symbol@^3.1.1, es6-symbol@^3.1.3: + version "3.1.4" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.4.tgz#f4e7d28013770b4208ecbf3e0bf14d3bcb557b8c" + integrity sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg== dependencies: - d "^1.0.1" - ext "^1.1.2" + d "^1.0.2" + ext "^1.7.0" -escalade@^3.0.2, escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== +escalade@^3.1.1, escalade@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27" + integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== -escape-string-regexp@2.0.0, escape-string-regexp@^2.0.0: +escape-string-regexp@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== -escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= - escape-string-regexp@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== -escodegen@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.0.0.tgz#5e32b12833e8aa8fa35e1bf0befa89380484c7dd" - integrity sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw== +escodegen@^1.8.1: + version "1.14.3" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" + integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw== dependencies: esprima "^4.0.1" - estraverse "^5.2.0" + estraverse "^4.2.0" esutils "^2.0.2" optionator "^0.8.1" optionalDependencies: source-map "~0.6.1" -eslint-config-airbnb-base@^14.2.1: - version "14.2.1" - resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.2.1.tgz#8a2eb38455dc5a312550193b319cdaeef042cd1e" - integrity sha512-GOrQyDtVEc1Xy20U7vsB2yAoB4nBlfH5HZJeatRXHleO+OS5Ot+MWij4Dpltw4/DyIkqUfqz1epfhVR5XWWQPA== - dependencies: - confusing-browser-globals "^1.0.10" - object.assign "^4.1.2" - object.entries "^1.1.2" - -eslint-config-airbnb@^18.2.0: - version "18.2.1" - resolved "https://registry.yarnpkg.com/eslint-config-airbnb/-/eslint-config-airbnb-18.2.1.tgz#b7fe2b42f9f8173e825b73c8014b592e449c98d9" - integrity sha512-glZNDEZ36VdlZWoxn/bUR1r/sdFKPd1mHPbqUtkctgNG4yT2DLLtJ3D+yCV+jzZCc2V1nBVkmdknOJBZ5Hc0fg== - dependencies: - eslint-config-airbnb-base "^14.2.1" - object.assign "^4.1.2" - object.entries "^1.1.2" - -eslint-config-prettier@^6.14.0: - version "6.15.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-6.15.0.tgz#7f93f6cb7d45a92f1537a70ecc06366e1ac6fed9" - integrity sha512-a1+kOYLR8wMGustcgAjdydMsQ2A/2ipRPwRKUmfYaSxc9ZPcrku080Ctl6zrZzZNs/U82MjSv+qKREkoq3bJaw== +escodegen@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.1.0.tgz#ba93bbb7a43986d29d6041f99f5262da773e2e17" + integrity sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w== dependencies: - get-stdin "^6.0.0" + esprima "^4.0.1" + estraverse "^5.2.0" + esutils "^2.0.2" + optionalDependencies: + source-map "~0.6.1" -eslint-config-react-app@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/eslint-config-react-app/-/eslint-config-react-app-6.0.0.tgz#ccff9fc8e36b322902844cbd79197982be355a0e" - integrity sha512-bpoAAC+YRfzq0dsTk+6v9aHm/uqnDwayNAXleMypGl6CpxI9oXXscVHo4fk3eJPIn+rsbtNetB4r/ZIidFIE8A== +eslint-config-react-app@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/eslint-config-react-app/-/eslint-config-react-app-7.0.1.tgz#73ba3929978001c5c86274c017ea57eb5fa644b4" + integrity sha512-K6rNzvkIeHaTd8m/QEh1Zko0KI7BACWkkneSs6s9cKZC/J27X3eZR6Upt1jkmZ/4FK+XUOPPxMEN7+lbUXfSlA== dependencies: - confusing-browser-globals "^1.0.10" - -eslint-import-resolver-node@^0.3.6: - version "0.3.6" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz#4048b958395da89668252001dbd9eca6b83bacbd" - integrity sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw== + "@babel/core" "^7.16.0" + "@babel/eslint-parser" "^7.16.3" + "@rushstack/eslint-patch" "^1.1.0" + "@typescript-eslint/eslint-plugin" "^5.5.0" + "@typescript-eslint/parser" "^5.5.0" + babel-preset-react-app "^10.0.1" + confusing-browser-globals "^1.0.11" + eslint-plugin-flowtype "^8.0.3" + eslint-plugin-import "^2.25.3" + eslint-plugin-jest "^25.3.0" + eslint-plugin-jsx-a11y "^6.5.1" + eslint-plugin-react "^7.27.1" + eslint-plugin-react-hooks "^4.3.0" + eslint-plugin-testing-library "^5.0.1" + +eslint-import-resolver-node@^0.3.9: + version "0.3.9" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz#d4eaac52b8a2e7c3cd1903eb00f7e053356118ac" + integrity sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g== dependencies: debug "^3.2.7" - resolve "^1.20.0" + is-core-module "^2.13.0" + resolve "^1.22.4" -eslint-module-utils@^2.7.2: - version "2.7.2" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.2.tgz#1d0aa455dcf41052339b63cada8ab5fd57577129" - integrity sha512-zquepFnWCY2ISMFwD/DqzaM++H+7PDzOpUvotJWm/y1BAFt5R4oeULgdrTejKqLkz7MA/tgstsUMNYc7wNdTrg== +eslint-module-utils@^2.8.0: + version "2.8.1" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz#52f2404300c3bd33deece9d7372fb337cc1d7c34" + integrity sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q== dependencies: debug "^3.2.7" - find-up "^2.1.0" - -eslint-plugin-flowtype@5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-5.2.0.tgz#a4bef5dc18f9b2bdb41569a4ab05d73805a3d261" - integrity sha512-z7ULdTxuhlRJcEe1MVljePXricuPOrsWfScRXFhNzVD5dmTHWjIF57AxD0e7AbEoLSbjSsaA5S+hCg43WvpXJQ== - dependencies: - lodash "^4.17.15" - string-natural-compare "^3.0.1" -eslint-plugin-flowtype@^5.2.0: - version "5.10.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-5.10.0.tgz#7764cc63940f215bf3f0bd2d9a1293b2b9b2b4bb" - integrity sha512-vcz32f+7TP+kvTUyMXZmCnNujBQZDNmcqPImw8b9PZ+16w1Qdm6ryRuYZYVaG9xRqqmAPr2Cs9FAX5gN+x/bjw== +eslint-plugin-flowtype@^8.0.3: + version "8.0.3" + resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-8.0.3.tgz#e1557e37118f24734aa3122e7536a038d34a4912" + integrity sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ== dependencies: - lodash "^4.17.15" + lodash "^4.17.21" string-natural-compare "^3.0.1" -eslint-plugin-html@^6.1.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-html/-/eslint-plugin-html-6.2.0.tgz#715bc00b50bbd0d996e28f953c289a5ebec69d43" - integrity sha512-vi3NW0E8AJombTvt8beMwkL1R/fdRWl4QSNRNMhVQKWm36/X0KF0unGNAY4mqUF06mnwVWZcIcerrCnfn9025g== - dependencies: - htmlparser2 "^7.1.2" - -eslint-plugin-import@^2.22.1: - version "2.25.4" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.25.4.tgz#322f3f916a4e9e991ac7af32032c25ce313209f1" - integrity sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA== +eslint-plugin-import@^2.25.3: + version "2.29.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz#d45b37b5ef5901d639c15270d74d46d161150643" + integrity sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw== dependencies: - array-includes "^3.1.4" - array.prototype.flat "^1.2.5" - debug "^2.6.9" + array-includes "^3.1.7" + array.prototype.findlastindex "^1.2.3" + array.prototype.flat "^1.3.2" + array.prototype.flatmap "^1.3.2" + debug "^3.2.7" doctrine "^2.1.0" - eslint-import-resolver-node "^0.3.6" - eslint-module-utils "^2.7.2" - has "^1.0.3" - is-core-module "^2.8.0" + eslint-import-resolver-node "^0.3.9" + eslint-module-utils "^2.8.0" + hasown "^2.0.0" + is-core-module "^2.13.1" is-glob "^4.0.3" - minimatch "^3.0.4" - object.values "^1.1.5" - resolve "^1.20.0" - tsconfig-paths "^3.12.0" + minimatch "^3.1.2" + object.fromentries "^2.0.7" + object.groupby "^1.0.1" + object.values "^1.1.7" + semver "^6.3.1" + tsconfig-paths "^3.15.0" -eslint-plugin-jest@^24.1.0: - version "24.7.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-24.7.0.tgz#206ac0833841e59e375170b15f8d0955219c4889" - integrity sha512-wUxdF2bAZiYSKBclsUMrYHH6WxiBreNjyDxbRv345TIvPeoCEgPNEn3Sa+ZrSqsf1Dl9SqqSREXMHExlMMu1DA== +eslint-plugin-jest@^25.3.0: + version "25.7.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-25.7.0.tgz#ff4ac97520b53a96187bad9c9814e7d00de09a6a" + integrity sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ== dependencies: - "@typescript-eslint/experimental-utils" "^4.0.1" + "@typescript-eslint/experimental-utils" "^5.0.0" -eslint-plugin-jsx-a11y@^6.3.1: - version "6.5.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.5.1.tgz#cdbf2df901040ca140b6ec14715c988889c2a6d8" - integrity sha512-sVCFKX9fllURnXT2JwLN5Qgo24Ug5NF6dxhkmxsMEUZhXRcGg+X3e1JbJ84YePQKBl5E0ZjAH5Q4rkdcGY99+g== - dependencies: - "@babel/runtime" "^7.16.3" - aria-query "^4.2.2" - array-includes "^3.1.4" - ast-types-flow "^0.0.7" - axe-core "^4.3.5" - axobject-query "^2.2.0" - damerau-levenshtein "^1.0.7" +eslint-plugin-jsx-a11y@^6.5.1: + version "6.8.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.8.0.tgz#2fa9c701d44fcd722b7c771ec322432857fcbad2" + integrity sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA== + dependencies: + "@babel/runtime" "^7.23.2" + aria-query "^5.3.0" + array-includes "^3.1.7" + array.prototype.flatmap "^1.3.2" + ast-types-flow "^0.0.8" + axe-core "=4.7.0" + axobject-query "^3.2.1" + damerau-levenshtein "^1.0.8" emoji-regex "^9.2.2" - has "^1.0.3" - jsx-ast-utils "^3.2.1" - language-tags "^1.0.5" - minimatch "^3.0.4" - -eslint-plugin-prettier@^3.1.4: - version "3.4.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.4.1.tgz#e9ddb200efb6f3d05ffe83b1665a716af4a387e5" - integrity sha512-htg25EUYUeIhKHXjOinK4BgCcDwtLHjqaxCDsMy5nbnUMkKFvIhMVCp+5GFUXQ4Nr8lBsPqtGAqBenbpFqAA2g== - dependencies: - prettier-linter-helpers "^1.0.0" - -eslint-plugin-react-hooks@4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.2.0.tgz#8c229c268d468956334c943bb45fc860280f5556" - integrity sha512-623WEiZJqxR7VdxFCKLI6d6LLpwJkGPYKODnkH3D7WpOG5KM8yWueBd8TLsNAetEJNF5iJmolaAKO3F8yzyVBQ== - -eslint-plugin-react-hooks@^4.2.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.3.0.tgz#318dbf312e06fab1c835a4abef00121751ac1172" - integrity sha512-XslZy0LnMn+84NEG9jSGR6eGqaZB3133L8xewQo3fQagbQuGt7a63gf+P1NGKZavEYEC3UXaWEAA/AqDkuN6xA== - -eslint-plugin-react@^7.21.5: - version "7.28.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.28.0.tgz#8f3ff450677571a659ce76efc6d80b6a525adbdf" - integrity sha512-IOlFIRHzWfEQQKcAD4iyYDndHwTQiCMcJVJjxempf203jnNLUnW34AXLrV33+nEXoifJE2ZEGmcjKPL8957eSw== - dependencies: - array-includes "^3.1.4" - array.prototype.flatmap "^1.2.5" + es-iterator-helpers "^1.0.15" + hasown "^2.0.0" + jsx-ast-utils "^3.3.5" + language-tags "^1.0.9" + minimatch "^3.1.2" + object.entries "^1.1.7" + object.fromentries "^2.0.7" + +eslint-plugin-react-hooks@^4.3.0: + version "4.6.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz#c829eb06c0e6f484b3fbb85a97e57784f328c596" + integrity sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ== + +eslint-plugin-react@^7.27.1: + version "7.34.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.34.1.tgz#6806b70c97796f5bbfb235a5d3379ece5f4da997" + integrity sha512-N97CxlouPT1AHt8Jn0mhhN2RrADlUAsk1/atcT2KyA/l9Q/E6ll7OIGwNumFmWfZ9skV3XXccYS19h80rHtgkw== + dependencies: + array-includes "^3.1.7" + array.prototype.findlast "^1.2.4" + array.prototype.flatmap "^1.3.2" + array.prototype.toreversed "^1.1.2" + array.prototype.tosorted "^1.1.3" doctrine "^2.1.0" + es-iterator-helpers "^1.0.17" estraverse "^5.3.0" jsx-ast-utils "^2.4.1 || ^3.0.0" - minimatch "^3.0.4" - object.entries "^1.1.5" - object.fromentries "^2.0.5" - object.hasown "^1.1.0" - object.values "^1.1.5" - prop-types "^15.7.2" - resolve "^2.0.0-next.3" - semver "^6.3.0" - string.prototype.matchall "^4.0.6" - -eslint-plugin-testing-library@^3.9.2: - version "3.10.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-testing-library/-/eslint-plugin-testing-library-3.10.2.tgz#609ec2b0369da7cf2e6d9edff5da153cc31d87bd" - integrity sha512-WAmOCt7EbF1XM8XfbCKAEzAPnShkNSwcIsAD2jHdsMUT9mZJPjLCG7pMzbcC8kK366NOuGip8HKLDC+Xk4yIdA== - dependencies: - "@typescript-eslint/experimental-utils" "^3.10.1" - -eslint-scope@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" - integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== - dependencies: - esrecurse "^4.1.0" - estraverse "^4.1.1" - -eslint-scope@^5.0.0, eslint-scope@^5.1.1: + minimatch "^3.1.2" + object.entries "^1.1.7" + object.fromentries "^2.0.7" + object.hasown "^1.1.3" + object.values "^1.1.7" + prop-types "^15.8.1" + resolve "^2.0.0-next.5" + semver "^6.3.1" + string.prototype.matchall "^4.0.10" + +eslint-plugin-testing-library@^5.0.1: + version "5.11.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.11.1.tgz#5b46cdae96d4a78918711c0b4792f90088e62d20" + integrity sha512-5eX9e1Kc2PqVRed3taaLnAAqPZGEX75C+M/rXzUAI3wIg/ZxzUm1OVAwfe/O+vE+6YXOLetSe9g5GKD2ecXipw== + dependencies: + "@typescript-eslint/utils" "^5.58.0" + +eslint-scope@5.1.1, eslint-scope@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== @@ -6497,160 +6534,123 @@ eslint-scope@^5.0.0, eslint-scope@^5.1.1: esrecurse "^4.3.0" estraverse "^4.1.1" -eslint-utils@^2.0.0, eslint-utils@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" - integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== - dependencies: - eslint-visitor-keys "^1.1.0" - -eslint-utils@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" - integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== +eslint-scope@^7.2.2: + version "7.2.2" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" + integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== dependencies: - eslint-visitor-keys "^2.0.0" - -eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" - integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== + esrecurse "^4.3.0" + estraverse "^5.2.0" -eslint-visitor-keys@^2.0.0: +eslint-visitor-keys@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== -eslint-webpack-plugin@^2.1.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/eslint-webpack-plugin/-/eslint-webpack-plugin-2.6.0.tgz#3bd4ada4e539cb1f6687d2f619073dbb509361cd" - integrity sha512-V+LPY/T3kur5QO3u+1s34VDTcRxjXWPUGM4hlmTb5DwVD0OQz631yGTxJZf4SpAqAjdbBVe978S8BJeHpAdOhQ== - dependencies: - "@types/eslint" "^7.28.2" - arrify "^2.0.1" - jest-worker "^27.3.1" - micromatch "^4.0.4" - normalize-path "^3.0.0" - schema-utils "^3.1.1" - -eslint@7.12.0: - version "7.12.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.12.0.tgz#7b6a85f87a9adc239e979bb721cde5ce0dc27da6" - integrity sha512-n5pEU27DRxCSlOhJ2rO57GDLcNsxO0LPpAbpFdh7xmcDmjmlGUfoyrsB3I7yYdQXO5N3gkSTiDrPSPNFiiirXA== - dependencies: - "@babel/code-frame" "^7.0.0" - "@eslint/eslintrc" "^0.2.0" - ajv "^6.10.0" - chalk "^4.0.0" - cross-spawn "^7.0.2" - debug "^4.0.1" - doctrine "^3.0.0" - enquirer "^2.3.5" - eslint-scope "^5.1.1" - eslint-utils "^2.1.0" - eslint-visitor-keys "^2.0.0" - espree "^7.3.0" - esquery "^1.2.0" - esutils "^2.0.2" - file-entry-cache "^5.0.1" - functional-red-black-tree "^1.0.1" - glob-parent "^5.0.0" - globals "^12.1.0" - ignore "^4.0.6" - import-fresh "^3.0.0" - imurmurhash "^0.1.4" - is-glob "^4.0.0" - js-yaml "^3.13.1" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.4.1" - lodash "^4.17.19" - minimatch "^3.0.4" - natural-compare "^1.4.0" - optionator "^0.9.1" - progress "^2.0.0" - regexpp "^3.1.0" - semver "^7.2.1" - strip-ansi "^6.0.0" - strip-json-comments "^3.1.0" - table "^5.2.3" - text-table "^0.2.0" - v8-compile-cache "^2.0.3" +eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: + version "3.4.3" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" + integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== -eslint@^7.11.0: - version "7.32.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.32.0.tgz#c6d328a14be3fb08c8d1d21e12c02fdb7a2a812d" - integrity sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA== +eslint-webpack-plugin@^3.1.1: + version "3.2.0" + resolved "https://registry.yarnpkg.com/eslint-webpack-plugin/-/eslint-webpack-plugin-3.2.0.tgz#1978cdb9edc461e4b0195a20da950cf57988347c" + integrity sha512-avrKcGncpPbPSUHX6B3stNGzkKFto3eL+DKM4+VyMrVnhPc3vRczVlCq3uhuFOdRvDHTVXuzwk1ZKUrqDQHQ9w== dependencies: - "@babel/code-frame" "7.12.11" - "@eslint/eslintrc" "^0.4.3" - "@humanwhocodes/config-array" "^0.5.0" - ajv "^6.10.0" + "@types/eslint" "^7.29.0 || ^8.4.1" + jest-worker "^28.0.2" + micromatch "^4.0.5" + normalize-path "^3.0.0" + schema-utils "^4.0.0" + +eslint@^8.3.0: + version "8.57.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.57.0.tgz#c786a6fd0e0b68941aaf624596fb987089195668" + integrity sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@eslint-community/regexpp" "^4.6.1" + "@eslint/eslintrc" "^2.1.4" + "@eslint/js" "8.57.0" + "@humanwhocodes/config-array" "^0.11.14" + "@humanwhocodes/module-importer" "^1.0.1" + "@nodelib/fs.walk" "^1.2.8" + "@ungap/structured-clone" "^1.2.0" + ajv "^6.12.4" chalk "^4.0.0" cross-spawn "^7.0.2" - debug "^4.0.1" + debug "^4.3.2" doctrine "^3.0.0" - enquirer "^2.3.5" escape-string-regexp "^4.0.0" - eslint-scope "^5.1.1" - eslint-utils "^2.1.0" - eslint-visitor-keys "^2.0.0" - espree "^7.3.1" - esquery "^1.4.0" + eslint-scope "^7.2.2" + eslint-visitor-keys "^3.4.3" + espree "^9.6.1" + esquery "^1.4.2" esutils "^2.0.2" fast-deep-equal "^3.1.3" file-entry-cache "^6.0.1" - functional-red-black-tree "^1.0.1" - glob-parent "^5.1.2" - globals "^13.6.0" - ignore "^4.0.6" - import-fresh "^3.0.0" + find-up "^5.0.0" + glob-parent "^6.0.2" + globals "^13.19.0" + graphemer "^1.4.0" + ignore "^5.2.0" imurmurhash "^0.1.4" is-glob "^4.0.0" - js-yaml "^3.13.1" + is-path-inside "^3.0.3" + js-yaml "^4.1.0" json-stable-stringify-without-jsonify "^1.0.1" levn "^0.4.1" lodash.merge "^4.6.2" - minimatch "^3.0.4" + minimatch "^3.1.2" natural-compare "^1.4.0" - optionator "^0.9.1" - progress "^2.0.0" - regexpp "^3.1.0" - semver "^7.2.1" - strip-ansi "^6.0.0" - strip-json-comments "^3.1.0" - table "^6.0.9" + optionator "^0.9.3" + strip-ansi "^6.0.1" text-table "^0.2.0" - v8-compile-cache "^2.0.3" -espree@^7.3.0, espree@^7.3.1: - version "7.3.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6" - integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g== +esniff@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/esniff/-/esniff-2.0.1.tgz#a4d4b43a5c71c7ec51c51098c1d8a29081f9b308" + integrity sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg== + dependencies: + d "^1.0.1" + es5-ext "^0.10.62" + event-emitter "^0.3.5" + type "^2.7.2" + +espree@^9.6.0, espree@^9.6.1: + version "9.6.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" + integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== dependencies: - acorn "^7.4.0" - acorn-jsx "^5.3.1" - eslint-visitor-keys "^1.3.0" + acorn "^8.9.0" + acorn-jsx "^5.3.2" + eslint-visitor-keys "^3.4.1" + +esprima@1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-1.2.2.tgz#76a0fd66fcfe154fd292667dc264019750b1657b" + integrity sha512-+JpPZam9w5DuJ3Q67SqsMGtiHKENSMRVoxvArfJZK01/BfLEObtZ6orJa/MtoGNR/rfMgp5837T41PAmTwAv/A== esprima@^4.0.0, esprima@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== -esquery@^1.2.0, esquery@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" - integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== +esquery@^1.4.2: + version "1.5.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" + integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== dependencies: estraverse "^5.1.0" -esrecurse@^4.1.0, esrecurse@^4.3.0: +esrecurse@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== dependencies: estraverse "^5.2.0" -estraverse@^4.1.1: +estraverse@^4.1.1, estraverse@^4.2.0: version "4.3.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== @@ -6660,16 +6660,16 @@ estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0: resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== -estree-walker@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362" - integrity sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w== - estree-walker@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== +estree-walker@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" + integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== + esutils@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" @@ -6678,9 +6678,9 @@ esutils@^2.0.2: etag@~1.8.1: version "1.8.1" resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== -eth-block-tracker@4.4.3, eth-block-tracker@^4.2.0, eth-block-tracker@^4.4.2: +eth-block-tracker@4.4.3: version "4.4.3" resolved "https://registry.yarnpkg.com/eth-block-tracker/-/eth-block-tracker-4.4.3.tgz#766a0a0eb4a52c867a28328e9ae21353812cf626" integrity sha512-A8tG4Z4iNg4mw5tP1Vung9N9IjgMNqpiMoJ/FouSFwNCGHv2X0mmOYwtQOJzki6XN7r7Tyo01S29p7b224I4jw== @@ -6692,113 +6692,39 @@ eth-block-tracker@4.4.3, eth-block-tracker@^4.2.0, eth-block-tracker@^4.4.2: pify "^3.0.0" safe-event-emitter "^1.0.1" -eth-json-rpc-errors@^1.0.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/eth-json-rpc-errors/-/eth-json-rpc-errors-1.1.1.tgz#148377ef55155585981c21ff574a8937f9d6991f" - integrity sha512-WT5shJ5KfNqHi9jOZD+ID8I1kuYWNrigtZat7GOQkvwo99f8SzAVaEcWhJUv656WiZOAg3P1RiJQANtUmDmbIg== +eth-block-tracker@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/eth-block-tracker/-/eth-block-tracker-7.1.0.tgz#dfc16085c6817cc30caabba381deb8d204c1c766" + integrity sha512-8YdplnuE1IK4xfqpf4iU7oBxnOYAc35934o083G8ao+8WM8QQtt/mVlAY6yIAdY1eMeLqg4Z//PZjJGmWGPMRg== dependencies: - fast-safe-stringify "^2.0.6" + "@metamask/eth-json-rpc-provider" "^1.0.0" + "@metamask/safe-event-emitter" "^3.0.0" + "@metamask/utils" "^5.0.1" + json-rpc-random-id "^1.0.1" + pify "^3.0.0" -eth-json-rpc-filters@4.2.2, eth-json-rpc-filters@^4.0.2, eth-json-rpc-filters@^4.1.1, eth-json-rpc-filters@^4.2.1: +eth-json-rpc-filters@4.2.2: version "4.2.2" resolved "https://registry.yarnpkg.com/eth-json-rpc-filters/-/eth-json-rpc-filters-4.2.2.tgz#eb35e1dfe9357ace8a8908e7daee80b2cd60a10d" integrity sha512-DGtqpLU7bBg63wPMWg1sCpkKCf57dJ+hj/k3zF26anXMzkmtSBDExL8IhUu7LUd34f0Zsce3PYNO2vV2GaTzaw== dependencies: - "@metamask/safe-event-emitter" "^2.0.0" - async-mutex "^0.2.6" - eth-json-rpc-middleware "^6.0.0" - eth-query "^2.1.2" - json-rpc-engine "^6.1.0" - pify "^5.0.0" - -eth-json-rpc-infura@^3.1.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/eth-json-rpc-infura/-/eth-json-rpc-infura-3.2.1.tgz#26702a821067862b72d979c016fd611502c6057f" - integrity sha512-W7zR4DZvyTn23Bxc0EWsq4XGDdD63+XPUCEhV2zQvQGavDVC4ZpFDK4k99qN7bd7/fjj37+rxmuBOBeIqCA5Mw== - dependencies: - cross-fetch "^2.1.1" - eth-json-rpc-middleware "^1.5.0" - json-rpc-engine "^3.4.0" - json-rpc-error "^2.0.0" - -eth-json-rpc-infura@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/eth-json-rpc-infura/-/eth-json-rpc-infura-4.1.0.tgz#623478375ba65e4304dea529ed69e8bd7938270d" - integrity sha512-DFYitKovzVlCdUulEccdm4g6k/vnvyByuw7rd5OoWDBSIiaeinI8Z/SntLjSIs2c+YvE20DGwk/GLwZGCWDN1Q== - dependencies: - eth-json-rpc-middleware "^4.4.0" - eth-rpc-errors "^3.0.0" - json-rpc-engine "^5.1.3" - node-fetch "^2.6.0" - -eth-json-rpc-infura@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/eth-json-rpc-infura/-/eth-json-rpc-infura-5.1.0.tgz#e6da7dc47402ce64c54e7018170d89433c4e8fb6" - integrity sha512-THzLye3PHUSGn1EXMhg6WTLW9uim7LQZKeKaeYsS9+wOBcamRiCQVGHa6D2/4P0oS0vSaxsBnU/J6qvn0MPdow== - dependencies: - eth-json-rpc-middleware "^6.0.0" - eth-rpc-errors "^3.0.0" - json-rpc-engine "^5.3.0" - node-fetch "^2.6.0" - -eth-json-rpc-middleware@^1.5.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/eth-json-rpc-middleware/-/eth-json-rpc-middleware-1.6.0.tgz#5c9d4c28f745ccb01630f0300ba945f4bef9593f" - integrity sha512-tDVCTlrUvdqHKqivYMjtFZsdD7TtpNLBCfKAcOpaVs7orBMS/A8HWro6dIzNtTZIR05FAbJ3bioFOnZpuCew9Q== - dependencies: - async "^2.5.0" - eth-query "^2.1.2" - eth-tx-summary "^3.1.2" - ethereumjs-block "^1.6.0" - ethereumjs-tx "^1.3.3" - ethereumjs-util "^5.1.2" - ethereumjs-vm "^2.1.0" - fetch-ponyfill "^4.0.0" - json-rpc-engine "^3.6.0" - json-rpc-error "^2.0.0" - json-stable-stringify "^1.0.1" - promise-to-callback "^1.0.0" - tape "^4.6.3" - -eth-json-rpc-middleware@^4.1.5, eth-json-rpc-middleware@^4.4.0: - version "4.4.1" - resolved "https://registry.yarnpkg.com/eth-json-rpc-middleware/-/eth-json-rpc-middleware-4.4.1.tgz#07d3dd0724c24a8d31e4a172ee96271da71b4228" - integrity sha512-yoSuRgEYYGFdVeZg3poWOwAlRI+MoBIltmOB86MtpoZjvLbou9EB/qWMOWSmH2ryCWLW97VYY6NWsmWm3OAA7A== - dependencies: - btoa "^1.2.1" - clone "^2.1.1" - eth-json-rpc-errors "^1.0.1" + "@metamask/safe-event-emitter" "^2.0.0" + async-mutex "^0.2.6" + eth-json-rpc-middleware "^6.0.0" eth-query "^2.1.2" - eth-sig-util "^1.4.2" - ethereumjs-block "^1.6.0" - ethereumjs-tx "^1.3.7" - ethereumjs-util "^5.1.2" - ethereumjs-vm "^2.6.0" - fetch-ponyfill "^4.0.0" - json-rpc-engine "^5.1.3" - json-stable-stringify "^1.0.1" - pify "^3.0.0" - safe-event-emitter "^1.0.1" + json-rpc-engine "^6.1.0" + pify "^5.0.0" -eth-json-rpc-middleware@^5.0.2: - version "5.1.0" - resolved "https://registry.yarnpkg.com/eth-json-rpc-middleware/-/eth-json-rpc-middleware-5.1.0.tgz#affc63ddb31205e4b2f2c451571902031dad70fc" - integrity sha512-0uq8nWgHWLKA0sMhVqViue3vSEBVuQXyk2yzjhe8GSo/dGpJUtmYN1DvDF1LQtEhHI4N/G6MKPbiR/aWSRkPmg== +eth-json-rpc-filters@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/eth-json-rpc-filters/-/eth-json-rpc-filters-6.0.1.tgz#0b3e370f017f5c6f58d3e7bd0756d8099ed85c56" + integrity sha512-ITJTvqoCw6OVMLs7pI8f4gG92n/St6x80ACtHodeS+IXmO0w+t1T5OOzfSt7KLSMLRkVUoexV7tztLgDxg+iig== dependencies: - btoa "^1.2.1" - clone "^2.1.1" + "@metamask/safe-event-emitter" "^3.0.0" + async-mutex "^0.2.6" eth-query "^2.1.2" - eth-rpc-errors "^3.0.0" - eth-sig-util "^1.4.2" - ethereumjs-block "^1.6.0" - ethereumjs-tx "^1.3.7" - ethereumjs-util "^5.1.2" - ethereumjs-vm "^2.6.0" - json-rpc-engine "^5.3.0" - json-stable-stringify "^1.0.1" - node-fetch "^2.6.1" - pify "^3.0.0" - safe-event-emitter "^1.0.1" + json-rpc-engine "^6.1.0" + pify "^5.0.0" eth-json-rpc-middleware@^6.0.0: version "6.0.0" @@ -6817,19 +6743,10 @@ eth-json-rpc-middleware@^6.0.0: pify "^3.0.0" safe-event-emitter "^1.0.1" -eth-lib@0.2.7: - version "0.2.7" - resolved "https://registry.yarnpkg.com/eth-lib/-/eth-lib-0.2.7.tgz#2f93f17b1e23aec3759cd4a3fe20c1286a3fc1ca" - integrity sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco= - dependencies: - bn.js "^4.11.6" - elliptic "^6.4.0" - xhr-request-promise "^0.1.2" - -eth-query@^2.0.2, eth-query@^2.1.0, eth-query@^2.1.2: +eth-query@^2.1.0, eth-query@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/eth-query/-/eth-query-2.1.2.tgz#d6741d9000106b51510c72db92d6365456a6da5e" - integrity sha1-1nQdkAAQa1FRDHLbktY2VFam2l4= + integrity sha512-srES0ZcvwkR/wd5OQBRA1bIJMww1skfGS0s8wlwK3/oNP4+wnds60krvu5R1QbpRQjMmpG5OMIWro5s7gvDPsA== dependencies: json-rpc-random-id "^1.0.0" xtend "^4.0.1" @@ -6855,59 +6772,20 @@ eth-rpc-errors@^4.0.2: dependencies: fast-safe-stringify "^2.0.6" -eth-sig-util@2.5.3: - version "2.5.3" - resolved "https://registry.yarnpkg.com/eth-sig-util/-/eth-sig-util-2.5.3.tgz#6938308b38226e0b3085435474900b03036abcbe" - integrity sha512-KpXbCKmmBUNUTGh9MRKmNkIPietfhzBqqYqysDavLseIiMUGl95k6UcPEkALAZlj41e9E6yioYXc1PC333RKqw== - dependencies: - buffer "^5.2.1" - elliptic "^6.4.0" - ethereumjs-abi "0.6.5" - ethereumjs-util "^5.1.1" - tweetnacl "^1.0.0" - tweetnacl-util "^0.15.0" - eth-sig-util@^1.4.2: version "1.4.2" resolved "https://registry.yarnpkg.com/eth-sig-util/-/eth-sig-util-1.4.2.tgz#8d958202c7edbaae839707fba6f09ff327606210" - integrity sha1-jZWCAsftuq6Dlwf7pvCf8ydgYhA= + integrity sha512-iNZ576iTOGcfllftB73cPB5AN+XUQAT/T8xzsILsghXC1o8gJUqe3RHlcDqagu+biFpYQ61KQrZZJza8eRSYqw== dependencies: ethereumjs-abi "git+https://github.com/ethereumjs/ethereumjs-abi.git" ethereumjs-util "^5.1.1" -eth-tx-summary@^3.1.2: - version "3.2.4" - resolved "https://registry.yarnpkg.com/eth-tx-summary/-/eth-tx-summary-3.2.4.tgz#e10eb95eb57cdfe549bf29f97f1e4f1db679035c" - integrity sha512-NtlDnaVZah146Rm8HMRUNMgIwG/ED4jiqk0TME9zFheMl1jOp6jL1m0NKGjJwehXQ6ZKCPr16MTr+qspKpEXNg== +ethereum-bloom-filters@^1.0.6: + version "1.1.0" + resolved "https://registry.yarnpkg.com/ethereum-bloom-filters/-/ethereum-bloom-filters-1.1.0.tgz#b3fc1eb789509ee30db0bf99a2988ccacb8d0397" + integrity sha512-J1gDRkLpuGNvWYzWslBQR9cDV4nd4kfvVTE/Wy4Kkm4yb3EYRSlyi0eB/inTsSTTVyA0+HyzHgbr95Fn/Z1fSw== dependencies: - async "^2.1.2" - clone "^2.0.0" - concat-stream "^1.5.1" - end-of-stream "^1.1.0" - eth-query "^2.0.2" - ethereumjs-block "^1.4.1" - ethereumjs-tx "^1.1.1" - ethereumjs-util "^5.0.1" - ethereumjs-vm "^2.6.0" - through2 "^2.0.3" - -ethereum-checksum-address@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/ethereum-checksum-address/-/ethereum-checksum-address-0.0.2.tgz#46fcb2d962dacd1ed49d7b464408ec26fd183209" - integrity sha512-GAb7mPvGgcfi1j+Bsnwm9af9Z7dLUKp+5cFm88+kMrKACfh9gLatGLVVK5pSGEG2pOGfrmqCRcuh3RtMjIg8GQ== - dependencies: - keccak256 "^1.0.0" - meow "^5.0.0" - -ethereum-common@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/ethereum-common/-/ethereum-common-0.2.0.tgz#13bf966131cce1eeade62a1b434249bb4cb120ca" - integrity sha512-XOnAR/3rntJgbCdGhqdaLIxDLWKLmsZOGhHdBKadEr6gEnJLH52k93Ou+TUdFaPN3hJc3isBZBal3U/XZ15abA== - -ethereum-common@^0.0.18: - version "0.0.18" - resolved "https://registry.yarnpkg.com/ethereum-common/-/ethereum-common-0.0.18.tgz#2fdc3576f232903358976eb39da783213ff9523f" - integrity sha1-L9w1dvIykDNYl26znaeDIT/5Uj8= + "@noble/hashes" "^1.4.0" ethereum-cryptography@^0.1.3: version "0.1.3" @@ -6930,40 +6808,15 @@ ethereum-cryptography@^0.1.3: secp256k1 "^4.0.1" setimmediate "^1.0.5" -ethereum-private-key-to-address@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/ethereum-private-key-to-address/-/ethereum-private-key-to-address-0.0.3.tgz#1f1dccaefd1198c2dcde55501f331a846bd0aad0" - integrity sha512-P+z9eFlgOezxogEpY1sQR155U4xFmQUWVxKzIJa5BL05Gs7zL0sYuyQuSAme8LBYGQ6p6AwconiMDauf4LbqyA== - dependencies: - ethereum-private-key-to-public-key "0.0.2" - ethereum-public-key-to-address "0.0.1" - meow "^5.0.0" - -ethereum-private-key-to-public-key@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/ethereum-private-key-to-public-key/-/ethereum-private-key-to-public-key-0.0.2.tgz#bb5803aad43df2692e0d7b4c9eaa224eec2a39cb" - integrity sha512-WKwFspLS5IdpV1rBUmWSG2xtIDV7YMpAG/uSjtV9kDzBU6hpSzoqg6R/e1iEfHkOr/eae+NtDTpwzXRtSMDvhw== - dependencies: - meow "^5.0.0" - secp256k1 "^3.7.1" - -ethereum-public-key-to-address@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/ethereum-public-key-to-address/-/ethereum-public-key-to-address-0.0.1.tgz#3f0237687d9c2217234dc5683f3eb580abf3f6ce" - integrity sha512-X78x/VBluHUdrYpZunoXJ48luXTaUiUK4ImPjTjI+XiS24+jUR5WFCpm9wCNbLYP6/ZCJ+lwuYormXSjt8rrbw== - dependencies: - ethereum-checksum-address "0.0.2" - keccak256 "^1.0.0" - meow "^5.0.0" - secp256k1 "^3.7.1" - -ethereumjs-abi@0.6.5: - version "0.6.5" - resolved "https://registry.yarnpkg.com/ethereumjs-abi/-/ethereumjs-abi-0.6.5.tgz#5a637ef16ab43473fa72a29ad90871405b3f5241" - integrity sha1-WmN+8Wq0NHP6cqKa2QhxQFs/UkE= +ethereum-cryptography@^2.0.0, ethereum-cryptography@^2.1.2: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ethereum-cryptography/-/ethereum-cryptography-2.1.3.tgz#1352270ed3b339fe25af5ceeadcf1b9c8e30768a" + integrity sha512-BlwbIL7/P45W8FGW2r7LGuvoEZ+7PWsniMvQ4p5s2xCyw9tmaDlpfsN9HjAucbF+t/qpVHwZUisgfK24TCW8aA== dependencies: - bn.js "^4.10.0" - ethereumjs-util "^4.3.0" + "@noble/curves" "1.3.0" + "@noble/hashes" "1.3.3" + "@scure/bip32" "1.3.3" + "@scure/bip39" "1.2.2" "ethereumjs-abi@git+https://github.com/ethereumjs/ethereumjs-abi.git": version "0.6.8" @@ -6972,83 +6825,7 @@ ethereumjs-abi@0.6.5: bn.js "^4.11.8" ethereumjs-util "^6.0.0" -ethereumjs-account@^2.0.3: - version "2.0.5" - resolved "https://registry.yarnpkg.com/ethereumjs-account/-/ethereumjs-account-2.0.5.tgz#eeafc62de544cb07b0ee44b10f572c9c49e00a84" - integrity sha512-bgDojnXGjhMwo6eXQC0bY6UK2liSFUSMwwylOmQvZbSl/D7NXQ3+vrGO46ZeOgjGfxXmgIeVNDIiHw7fNZM4VA== - dependencies: - ethereumjs-util "^5.0.0" - rlp "^2.0.0" - safe-buffer "^5.1.1" - -ethereumjs-block@^1.2.2, ethereumjs-block@^1.4.1, ethereumjs-block@^1.6.0: - version "1.7.1" - resolved "https://registry.yarnpkg.com/ethereumjs-block/-/ethereumjs-block-1.7.1.tgz#78b88e6cc56de29a6b4884ee75379b6860333c3f" - integrity sha512-B+sSdtqm78fmKkBq78/QLKJbu/4Ts4P2KFISdgcuZUPDm9x+N7qgBPIIFUGbaakQh8bzuquiRVbdmvPKqbILRg== - dependencies: - async "^2.0.1" - ethereum-common "0.2.0" - ethereumjs-tx "^1.2.2" - ethereumjs-util "^5.0.0" - merkle-patricia-tree "^2.1.2" - -ethereumjs-block@~2.2.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz#c7654be7e22df489fda206139ecd63e2e9c04965" - integrity sha512-2p49ifhek3h2zeg/+da6XpdFR3GlqY3BIEiqxGF8j9aSRIgkb7M1Ky+yULBKJOu8PAZxfhsYA+HxUk2aCQp3vg== - dependencies: - async "^2.0.1" - ethereumjs-common "^1.5.0" - ethereumjs-tx "^2.1.1" - ethereumjs-util "^5.0.0" - merkle-patricia-tree "^2.1.2" - -ethereumjs-common@^1.1.0, ethereumjs-common@^1.5.0: - version "1.5.2" - resolved "https://registry.yarnpkg.com/ethereumjs-common/-/ethereumjs-common-1.5.2.tgz#2065dbe9214e850f2e955a80e650cb6999066979" - integrity sha512-hTfZjwGX52GS2jcVO6E2sx4YuFnf0Fhp5ylo4pEPhEffNln7vS59Hr5sLnp3/QCazFLluuBZ+FZ6J5HTp0EqCA== - -ethereumjs-tx@^1.1.1, ethereumjs-tx@^1.2.0, ethereumjs-tx@^1.2.2, ethereumjs-tx@^1.3.3, ethereumjs-tx@^1.3.7: - version "1.3.7" - resolved "https://registry.yarnpkg.com/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz#88323a2d875b10549b8347e09f4862b546f3d89a" - integrity sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA== - dependencies: - ethereum-common "^0.0.18" - ethereumjs-util "^5.0.0" - -ethereumjs-tx@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz#5dfe7688bf177b45c9a23f86cf9104d47ea35fed" - integrity sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw== - dependencies: - ethereumjs-common "^1.5.0" - ethereumjs-util "^6.0.0" - -ethereumjs-util@5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-5.2.0.tgz#3e0c0d1741471acf1036052d048623dee54ad642" - integrity sha512-CJAKdI0wgMbQFLlLRtZKGcy/L6pzVRgelIZqRqNbuVFM3K9VEnyfbcvz0ncWMRNCe4kaHWjwRYQcYMucmwsnWA== - dependencies: - bn.js "^4.11.0" - create-hash "^1.1.2" - ethjs-util "^0.1.3" - keccak "^1.0.2" - rlp "^2.0.0" - safe-buffer "^5.1.1" - secp256k1 "^3.0.1" - -ethereumjs-util@^4.3.0: - version "4.5.1" - resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-4.5.1.tgz#f4bf9b3b515a484e3cc8781d61d9d980f7c83bd0" - integrity sha512-WrckOZ7uBnei4+AKimpuF1B3Fv25OmoRgmYCpGsP7u8PFxXAmAgiJSYT2kRWnt6fVIlKaQlZvuwXp7PIrmn3/w== - dependencies: - bn.js "^4.8.0" - create-hash "^1.1.2" - elliptic "^6.5.2" - ethereum-cryptography "^0.1.3" - rlp "^2.0.0" - -ethereumjs-util@^5.0.0, ethereumjs-util@^5.0.1, ethereumjs-util@^5.1.1, ethereumjs-util@^5.1.2, ethereumjs-util@^5.1.5: +ethereumjs-util@^5.1.1, ethereumjs-util@^5.1.2: version "5.2.1" resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz#a833f0e5fca7e5b361384dc76301a721f537bf65" integrity sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ== @@ -7074,85 +6851,53 @@ ethereumjs-util@^6.0.0: ethjs-util "0.1.6" rlp "^2.2.3" -ethereumjs-vm@^2.1.0, ethereumjs-vm@^2.3.4, ethereumjs-vm@^2.6.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/ethereumjs-vm/-/ethereumjs-vm-2.6.0.tgz#76243ed8de031b408793ac33907fb3407fe400c6" - integrity sha512-r/XIUik/ynGbxS3y+mvGnbOKnuLo40V5Mj1J25+HEO63aWYREIqvWeRO/hnROlMBE5WoniQmPmhiaN0ctiHaXw== - dependencies: - async "^2.1.2" - async-eventemitter "^0.2.2" - ethereumjs-account "^2.0.3" - ethereumjs-block "~2.2.0" - ethereumjs-common "^1.1.0" - ethereumjs-util "^6.0.0" - fake-merkle-patricia-tree "^1.0.1" - functional-red-black-tree "^1.0.1" - merkle-patricia-tree "^2.3.2" - rustbn.js "~0.2.0" - safe-buffer "^5.1.1" - ethers-multicall@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/ethers-multicall/-/ethers-multicall-0.2.1.tgz#0c01dc50f3b87c93be11e39bc8bc668bfa762b60" - integrity sha512-buSg3j75HhMnRiZ+hIXfJYA/MUZbhukE1oczeluM7O+4yWjhqI98ADcQ0bPr8EOpwtV4J3Eba47fkbx5GJpz5Q== + version "0.2.3" + resolved "https://registry.yarnpkg.com/ethers-multicall/-/ethers-multicall-0.2.3.tgz#872b5ad7d6b5d4d7f2960c33bf36bd46d034ac41" + integrity sha512-RaWQuLy+HzeKOibptlc9RZ6j7bT1H6VnkdAKTHiLx2t/lpyfS2ckXHdQhhRbCaXNc1iu6CgoisgMejxKHg84tg== dependencies: ethers "^5.0.0" -ethers@4.0.47: - version "4.0.47" - resolved "https://registry.yarnpkg.com/ethers/-/ethers-4.0.47.tgz#91b9cd80473b1136dd547095ff9171bd1fc68c85" - integrity sha512-hssRYhngV4hiDNeZmVU/k5/E8xmLG8UpcNUzg6mb7lqhgpFPH/t7nuv20RjRrEf0gblzvi2XwR5Te+V3ZFc9pQ== - dependencies: - aes-js "3.0.0" - bn.js "^4.4.0" - elliptic "6.5.2" - hash.js "1.1.3" - js-sha3 "0.5.7" - scrypt-js "2.0.4" - setimmediate "1.0.4" - uuid "2.0.1" - xmlhttprequest "1.8.0" - -ethers@^5.0.0, ethers@^5.5.2: - version "5.5.3" - resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.5.3.tgz#1e361516711c0c3244b6210e7e3ecabf0c75fca0" - integrity sha512-fTT4WT8/hTe/BLwRUtl7I5zlpF3XC3P/Xwqxc5AIP2HGlH15qpmjs0Ou78az93b1rLITzXLFxoNX63B8ZbUd7g== - dependencies: - "@ethersproject/abi" "5.5.0" - "@ethersproject/abstract-provider" "5.5.1" - "@ethersproject/abstract-signer" "5.5.0" - "@ethersproject/address" "5.5.0" - "@ethersproject/base64" "5.5.0" - "@ethersproject/basex" "5.5.0" - "@ethersproject/bignumber" "5.5.0" - "@ethersproject/bytes" "5.5.0" - "@ethersproject/constants" "5.5.0" - "@ethersproject/contracts" "5.5.0" - "@ethersproject/hash" "5.5.0" - "@ethersproject/hdnode" "5.5.0" - "@ethersproject/json-wallets" "5.5.0" - "@ethersproject/keccak256" "5.5.0" - "@ethersproject/logger" "5.5.0" - "@ethersproject/networks" "5.5.2" - "@ethersproject/pbkdf2" "5.5.0" - "@ethersproject/properties" "5.5.0" - "@ethersproject/providers" "5.5.2" - "@ethersproject/random" "5.5.1" - "@ethersproject/rlp" "5.5.0" - "@ethersproject/sha2" "5.5.0" - "@ethersproject/signing-key" "5.5.0" - "@ethersproject/solidity" "5.5.0" - "@ethersproject/strings" "5.5.0" - "@ethersproject/transactions" "5.5.0" - "@ethersproject/units" "5.5.0" - "@ethersproject/wallet" "5.5.0" - "@ethersproject/web" "5.5.1" - "@ethersproject/wordlists" "5.5.0" +ethers@5.7.2, ethers@^5.0.0: + version "5.7.2" + resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.7.2.tgz#3a7deeabbb8c030d4126b24f84e525466145872e" + integrity sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg== + dependencies: + "@ethersproject/abi" "5.7.0" + "@ethersproject/abstract-provider" "5.7.0" + "@ethersproject/abstract-signer" "5.7.0" + "@ethersproject/address" "5.7.0" + "@ethersproject/base64" "5.7.0" + "@ethersproject/basex" "5.7.0" + "@ethersproject/bignumber" "5.7.0" + "@ethersproject/bytes" "5.7.0" + "@ethersproject/constants" "5.7.0" + "@ethersproject/contracts" "5.7.0" + "@ethersproject/hash" "5.7.0" + "@ethersproject/hdnode" "5.7.0" + "@ethersproject/json-wallets" "5.7.0" + "@ethersproject/keccak256" "5.7.0" + "@ethersproject/logger" "5.7.0" + "@ethersproject/networks" "5.7.1" + "@ethersproject/pbkdf2" "5.7.0" + "@ethersproject/properties" "5.7.0" + "@ethersproject/providers" "5.7.2" + "@ethersproject/random" "5.7.0" + "@ethersproject/rlp" "5.7.0" + "@ethersproject/sha2" "5.7.0" + "@ethersproject/signing-key" "5.7.0" + "@ethersproject/solidity" "5.7.0" + "@ethersproject/strings" "5.7.0" + "@ethersproject/transactions" "5.7.0" + "@ethersproject/units" "5.7.0" + "@ethersproject/wallet" "5.7.0" + "@ethersproject/web" "5.7.1" + "@ethersproject/wordlists" "5.7.0" ethjs-unit@0.1.6: version "0.1.6" resolved "https://registry.yarnpkg.com/ethjs-unit/-/ethjs-unit-0.1.6.tgz#c665921e476e87bce2a9d588a6fe0405b2c41699" - integrity sha1-xmWSHkduh7ziqdWIpv4EBbLEFpk= + integrity sha512-/Sn9Y0oKl0uqQuvgFk/zQgR7aw1g36qX/jzSQ5lSwlO0GigPymk4eGQfeNTD03w1dPOqfz8V77Cy43jH56pagw== dependencies: bn.js "4.11.6" number-to-bn "1.7.0" @@ -7165,29 +6910,30 @@ ethjs-util@0.1.6, ethjs-util@^0.1.3: is-hex-prefixed "1.0.0" strip-hex-prefix "1.0.0" -eventemitter3@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.0.tgz#d65176163887ee59f386d64c82610b696a4a74eb" - integrity sha512-qerSRB0p+UDEssxTtm6EDKcE7W4OaoisfIMl4CngyEhjpYglocpNg6UEqCvemdGhosAsg4sO2dXJOdyBifPGCg== +event-emitter@^0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" + integrity sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA== + dependencies: + d "1" + es5-ext "~0.10.14" -eventemitter3@4.0.7, eventemitter3@^4.0.0: +eventemitter3@^4.0.0: version "4.0.7" resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== -events@^3.0.0: +eventemitter3@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.1.tgz#53f5ffd0a492ac800721bb42c66b841de96423c4" + integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== + +events@^3.0.0, events@^3.2.0, events@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== -eventsource@^1.0.7: - version "1.1.0" - resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-1.1.0.tgz#00e8ca7c92109e94b0ddf32dac677d841028cfaf" - integrity sha512-VSJjT5oCNrFvCS6igjzPAt5hBzQ2qPBFIbJ03zLI9SE0mxwZpMw6BfJrbFHm1a141AavMEB8JHmBhWAd66PfCg== - dependencies: - original "^1.0.0" - -evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: +evp_bytestokey@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== @@ -7195,24 +6941,6 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: md5.js "^1.3.4" safe-buffer "^5.1.1" -exec-sh@^0.3.2: - version "0.3.6" - resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.6.tgz#ff264f9e325519a60cb5e273692943483cca63bc" - integrity sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w== - -execa@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" - integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== - dependencies: - cross-spawn "^6.0.0" - get-stream "^4.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - execa@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" @@ -7228,144 +6956,115 @@ execa@^4.0.0: signal-exit "^3.0.2" strip-final-newline "^2.0.0" -exit@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" - integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= - -expand-brackets@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" - integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= - dependencies: - debug "^2.3.3" - define-property "^0.2.5" - extend-shallow "^2.0.1" - posix-character-classes "^0.1.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -expect@^26.6.0, expect@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/expect/-/expect-26.6.2.tgz#c6b996bf26bf3fe18b67b2d0f51fc981ba934417" - integrity sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA== +execa@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" + integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== dependencies: - "@jest/types" "^26.6.2" - ansi-styles "^4.0.0" - jest-get-type "^26.3.0" - jest-matcher-utils "^26.6.2" - jest-message-util "^26.6.2" - jest-regex-util "^26.0.0" + cross-spawn "^7.0.3" + get-stream "^6.0.0" + human-signals "^2.1.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.1" + onetime "^5.1.2" + signal-exit "^3.0.3" + strip-final-newline "^2.0.0" -express@^4.17.1: - version "4.17.2" - resolved "https://registry.yarnpkg.com/express/-/express-4.17.2.tgz#c18369f265297319beed4e5558753cc8c1364cb3" - integrity sha512-oxlxJxcQlYwqPWKVJJtvQiwHgosH/LrLSPA+H4UxpyvSS6jC5aH+5MoHFM+KABgTOt0APue4w66Ha8jCUo9QGg== +execa@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-8.0.1.tgz#51f6a5943b580f963c3ca9c6321796db8cc39b8c" + integrity sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg== dependencies: - accepts "~1.3.7" + cross-spawn "^7.0.3" + get-stream "^8.0.1" + human-signals "^5.0.0" + is-stream "^3.0.0" + merge-stream "^2.0.0" + npm-run-path "^5.1.0" + onetime "^6.0.0" + signal-exit "^4.1.0" + strip-final-newline "^3.0.0" + +exit@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" + integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== + +expect@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/expect/-/expect-27.5.1.tgz#83ce59f1e5bdf5f9d2b94b61d2050db48f3fef74" + integrity sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw== + dependencies: + "@jest/types" "^27.5.1" + jest-get-type "^27.5.1" + jest-matcher-utils "^27.5.1" + jest-message-util "^27.5.1" + +expect@^29.0.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.7.0.tgz#578874590dcb3214514084c08115d8aee61e11bc" + integrity sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw== + dependencies: + "@jest/expect-utils" "^29.7.0" + jest-get-type "^29.6.3" + jest-matcher-utils "^29.7.0" + jest-message-util "^29.7.0" + jest-util "^29.7.0" + +express@^4.17.3: + version "4.19.2" + resolved "https://registry.yarnpkg.com/express/-/express-4.19.2.tgz#e25437827a3aa7f2a827bc8171bbbb664a356465" + integrity sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q== + dependencies: + accepts "~1.3.8" array-flatten "1.1.1" - body-parser "1.19.1" + body-parser "1.20.2" content-disposition "0.5.4" content-type "~1.0.4" - cookie "0.4.1" + cookie "0.6.0" cookie-signature "1.0.6" debug "2.6.9" - depd "~1.1.2" + depd "2.0.0" encodeurl "~1.0.2" escape-html "~1.0.3" etag "~1.8.1" - finalhandler "~1.1.2" + finalhandler "1.2.0" fresh "0.5.2" + http-errors "2.0.0" merge-descriptors "1.0.1" methods "~1.1.2" - on-finished "~2.3.0" + on-finished "2.4.1" parseurl "~1.3.3" path-to-regexp "0.1.7" proxy-addr "~2.0.7" - qs "6.9.6" + qs "6.11.0" range-parser "~1.2.1" safe-buffer "5.2.1" - send "0.17.2" - serve-static "1.14.2" + send "0.18.0" + serve-static "1.15.0" setprototypeof "1.2.0" - statuses "~1.5.0" + statuses "2.0.1" type-is "~1.6.18" utils-merge "1.0.1" vary "~1.1.2" -ext@^1.1.2: - version "1.6.0" - resolved "https://registry.yarnpkg.com/ext/-/ext-1.6.0.tgz#3871d50641e874cc172e2b53f919842d19db4c52" - integrity sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg== - dependencies: - type "^2.5.0" - -extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= - dependencies: - is-extendable "^0.1.0" - -extend-shallow@^3.0.0, extend-shallow@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" - integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= - dependencies: - assign-symbols "^1.0.0" - is-extendable "^1.0.1" - -extend@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - -extglob@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" - integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== - dependencies: - array-unique "^0.3.2" - define-property "^1.0.0" - expand-brackets "^2.1.4" - extend-shallow "^2.0.1" - fragment-cache "^0.2.1" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -extsprintf@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= - -extsprintf@^1.2.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" - integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== - -fake-merkle-patricia-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/fake-merkle-patricia-tree/-/fake-merkle-patricia-tree-1.0.1.tgz#4b8c3acfb520afadf9860b1f14cd8ce3402cddd3" - integrity sha1-S4w6z7Ugr635hgsfFM2M40As3dM= +ext@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/ext/-/ext-1.7.0.tgz#0ea4383c0103d60e70be99e9a7f11027a33c4f5f" + integrity sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw== dependencies: - checkpoint-store "^1.1.0" + type "^2.7.2" fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== -fast-diff@^1.1.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" - integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== - -fast-glob@^3.1.1, fast-glob@^3.2.9: - version "3.2.10" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.10.tgz#2734f83baa7f43b7fd41e13bc34438f4ffe284ee" - integrity sha512-s9nFhFnvR63wls6/kM88kQqDhMu0AfdjqouE2l5GVQPbqLgyFjjU5ry/r2yKsJxpb9Py1EYNqieFrmMaX4v++A== +fast-glob@^3.2.9, fast-glob@^3.3.0: + version "3.3.2" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" + integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" @@ -7381,7 +7080,12 @@ fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== + +fast-redact@^3.0.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/fast-redact/-/fast-redact-3.5.0.tgz#e9ea02f7e57d0cd8438180083e93077e496285e4" + integrity sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A== fast-safe-stringify@^2.0.6: version "2.1.1" @@ -7389,20 +7093,13 @@ fast-safe-stringify@^2.0.6: integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== fastq@^1.6.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" - integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== + version "1.17.1" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.17.1.tgz#2a523f07a4e7b1e81a42b91b8bf2254107753b47" + integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w== dependencies: reusify "^1.0.4" -faye-websocket@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" - integrity sha1-TkkvjQTftviQA1B/btvy1QHnxvQ= - dependencies: - websocket-driver ">=0.5.1" - -faye-websocket@~0.11.1: +faye-websocket@^0.11.3: version "0.11.4" resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da" integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g== @@ -7410,31 +7107,12 @@ faye-websocket@~0.11.1: websocket-driver ">=0.5.1" fb-watchman@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85" - integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg== + version "2.0.2" + resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c" + integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA== dependencies: bser "2.1.1" -fetch-ponyfill@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/fetch-ponyfill/-/fetch-ponyfill-4.1.0.tgz#ae3ce5f732c645eab87e4ae8793414709b239893" - integrity sha1-rjzl9zLGReq4fkroeTQUcJsjmJM= - dependencies: - node-fetch "~1.7.1" - -figgy-pudding@^3.5.1: - version "3.5.2" - resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" - integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== - -file-entry-cache@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" - integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g== - dependencies: - flat-cache "^2.0.1" - file-entry-cache@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" @@ -7442,33 +7120,25 @@ file-entry-cache@^6.0.1: dependencies: flat-cache "^3.0.4" -file-loader@6.1.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.1.1.tgz#a6f29dfb3f5933a1c350b2dbaa20ac5be0539baa" - integrity sha512-Klt8C4BjWSXYQAfhpYYkG4qHNTna4toMHEbWrI5IuVoxbU6uiDKeKAP99R8mmbJi3lvewn/jQBOgU4+NS3tDQw== +file-loader@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.2.0.tgz#baef7cf8e1840df325e4390b4484879480eebe4d" + integrity sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw== dependencies: loader-utils "^2.0.0" schema-utils "^3.0.0" -file-uri-to-path@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" - integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== - -filesize@6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/filesize/-/filesize-6.1.0.tgz#e81bdaa780e2451d714d71c0d7a4f3238d37ad00" - integrity sha512-LpCHtPQ3sFx67z+uh2HnSyWSLLu5Jxo21795uRDuar/EOuYWXib5EmPaGIBuSnRqH2IODiKA2k5re/K9OnN/Yg== - -fill-range@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" - integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= +filelist@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.4.tgz#f78978a1e944775ff9e62e744424f215e58352b5" + integrity sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q== dependencies: - extend-shallow "^2.0.1" - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range "^2.1.0" + minimatch "^5.0.1" + +filesize@^8.0.6: + version "8.0.7" + resolved "https://registry.yarnpkg.com/filesize/-/filesize-8.0.7.tgz#695e70d80f4e47012c132d57a059e80c6b580bd8" + integrity sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ== fill-range@^7.0.1: version "7.0.1" @@ -7477,28 +7147,24 @@ fill-range@^7.0.1: dependencies: to-regex-range "^5.0.1" -finalhandler@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" - integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== +filter-obj@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/filter-obj/-/filter-obj-1.1.0.tgz#9b311112bc6c6127a16e016c6c5d7f19e0805c5b" + integrity sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ== + +finalhandler@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" + integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== dependencies: debug "2.6.9" encodeurl "~1.0.2" escape-html "~1.0.3" - on-finished "~2.3.0" + on-finished "2.4.1" parseurl "~1.3.3" - statuses "~1.5.0" + statuses "2.0.1" unpipe "~1.0.0" -find-cache-dir@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" - integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== - dependencies: - commondir "^1.0.1" - make-dir "^2.0.0" - pkg-dir "^3.0.0" - find-cache-dir@^3.3.1: version "3.3.2" resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b" @@ -7508,29 +7174,6 @@ find-cache-dir@^3.3.1: make-dir "^3.0.2" pkg-dir "^4.1.0" -find-up@4.1.0, find-up@^4.0.0, find-up@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - -find-up@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" - integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8= - dependencies: - path-exists "^2.0.0" - pinkie-promise "^2.0.0" - -find-up@^2.0.0, find-up@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" - integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= - dependencies: - locate-path "^2.0.0" - find-up@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" @@ -7538,87 +7181,74 @@ find-up@^3.0.0: dependencies: locate-path "^3.0.0" -flat-cache@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" - integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA== +find-up@^4.0.0, find-up@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== dependencies: - flatted "^2.0.0" - rimraf "2.6.3" - write "1.0.3" + locate-path "^5.0.0" + path-exists "^4.0.0" -flat-cache@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" - integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== +find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== dependencies: - flatted "^3.1.0" - rimraf "^3.0.2" - -flatted@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" - integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== - -flatted@^3.1.0: - version "3.2.4" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.4.tgz#28d9969ea90661b5134259f312ab6aa7929ac5e2" - integrity sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw== - -flatten@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.3.tgz#c1283ac9f27b368abc1e36d1ff7b04501a30356b" - integrity sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg== + locate-path "^6.0.0" + path-exists "^4.0.0" -flush-write-stream@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" - integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== +flat-cache@^3.0.4: + version "3.2.0" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.2.0.tgz#2c0c2d5040c99b1632771a9d105725c0115363ee" + integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw== dependencies: - inherits "^2.0.3" - readable-stream "^2.3.6" + flatted "^3.2.9" + keyv "^4.5.3" + rimraf "^3.0.2" -follow-redirects@1.5.10: - version "1.5.10" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.10.tgz#7b7a9f9aea2fdff36786a94ff643ed07f4ff5e2a" - integrity sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ== - dependencies: - debug "=3.1.0" +flatted@^3.2.9: + version "3.3.1" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.1.tgz#21db470729a6734d4997002f439cb308987f567a" + integrity sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw== follow-redirects@^1.0.0: - version "1.14.7" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.7.tgz#2004c02eb9436eee9a21446a6477debf17e81685" - integrity sha512-+hbxoLbFMbRKDwohX8GkTataGqO6Jb7jGwpAlwgy2bIz25XtRm7KEzJM76R1WiNT5SwZkX4Y75SwBolkpmE7iQ== + version "1.15.6" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b" + integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA== -for-each@~0.3.3: +for-each@^0.3.3: version "0.3.3" resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== dependencies: is-callable "^1.1.3" -for-in@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= - -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= +foreground-child@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.1.1.tgz#1d173e776d75d2772fed08efe4a0de1ea1b12d0d" + integrity sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg== + dependencies: + cross-spawn "^7.0.0" + signal-exit "^4.0.1" -fork-ts-checker-webpack-plugin@4.1.6: - version "4.1.6" - resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-4.1.6.tgz#5055c703febcf37fa06405d400c122b905167fc5" - integrity sha512-DUxuQaKoqfNne8iikd14SAkh5uw4+8vNifp6gmA73yYNS6ywLIWSLD/n/mBzHQRpW3J7rbATEakmiA8JvkTyZw== +fork-ts-checker-webpack-plugin@^6.5.0: + version "6.5.3" + resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.3.tgz#eda2eff6e22476a2688d10661688c47f611b37f3" + integrity sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ== dependencies: - "@babel/code-frame" "^7.5.5" - chalk "^2.4.1" - micromatch "^3.1.10" + "@babel/code-frame" "^7.8.3" + "@types/json-schema" "^7.0.5" + chalk "^4.1.0" + chokidar "^3.4.2" + cosmiconfig "^6.0.0" + deepmerge "^4.2.2" + fs-extra "^9.0.0" + glob "^7.1.6" + memfs "^3.1.2" minimatch "^3.0.4" - semver "^5.6.0" + schema-utils "2.7.0" + semver "^7.3.2" tapable "^1.0.0" - worker-rpc "^0.1.0" form-data@^3.0.0: version "3.0.1" @@ -7629,64 +7259,31 @@ form-data@^3.0.0: combined-stream "^1.0.8" mime-types "^2.1.12" -form-data@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" - integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" - -fortmatic@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/fortmatic/-/fortmatic-2.2.1.tgz#91ce9159c1fe539bd87e483125fca5c27a410a86" - integrity sha512-PEfPoErJSErU2A8iYD2Mab2c8eJK5dCdCr1jR/8yc49aEAlyQ4UXnZXyeO6MU5zBGkDAZmg9brnRSPzc+8MKPQ== - forwarded@0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== -fragment-cache@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" - integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= - dependencies: - map-cache "^0.2.2" +fraction.js@^4.3.7: + version "4.3.7" + resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.7.tgz#06ca0085157e42fda7f9e726e79fefc4068840f7" + integrity sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew== fresh@0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= - -from2@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" - integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= - dependencies: - inherits "^2.0.1" - readable-stream "^2.0.0" - -fs-extra@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" - integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== - dependencies: - graceful-fs "^4.1.2" - jsonfile "^4.0.0" - universalify "^0.1.0" + integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== -fs-extra@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" - integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== +fs-extra@^10.0.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" + integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ== dependencies: graceful-fs "^4.2.0" - jsonfile "^4.0.0" - universalify "^0.1.0" + jsonfile "^6.0.1" + universalify "^2.0.0" -fs-extra@^9.0.1: +fs-extra@^9.0.0, fs-extra@^9.0.1: version "9.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== @@ -7696,100 +7293,61 @@ fs-extra@^9.0.1: jsonfile "^6.0.1" universalify "^2.0.0" -fs-minipass@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" - integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== - dependencies: - minipass "^3.0.0" - -fs-write-stream-atomic@^1.0.8: - version "1.0.10" - resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" - integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk= - dependencies: - graceful-fs "^4.1.2" - iferr "^0.1.5" - imurmurhash "^0.1.4" - readable-stream "1 || 2" +fs-monkey@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.6.tgz#8ead082953e88d992cf3ff844faa907b26756da2" + integrity sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg== fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= - -fsevents@^1.2.7: - version "1.2.13" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" - integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== - dependencies: - bindings "^1.5.0" - nan "^2.12.1" - -fsevents@^2.1.2, fsevents@^2.1.3, fsevents@~2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== -fstream@^1.0.0, fstream@^1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.12.tgz#4e8ba8ee2d48be4f7d0de505455548eae5932045" - integrity sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg== - dependencies: - graceful-fs "^4.1.2" - inherits "~2.0.0" - mkdirp ">=0.5 0" - rimraf "2" +fsevents@^2.3.2, fsevents@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== -functional-red-black-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= - -gauge@~2.7.3: - version "2.7.4" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" - integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= - dependencies: - aproba "^1.0.3" - console-control-strings "^1.0.0" - has-unicode "^2.0.0" - object-assign "^4.1.0" - signal-exit "^3.0.0" - string-width "^1.0.1" - strip-ansi "^3.0.1" - wide-align "^1.1.0" - -gaze@^1.0.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/gaze/-/gaze-1.1.3.tgz#c441733e13b927ac8c0ff0b4c3b033f28812924a" - integrity sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g== +function.prototype.name@^1.1.5, function.prototype.name@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd" + integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== dependencies: - globule "^1.0.0" + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + functions-have-names "^1.2.3" + +functions-have-names@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== gensync@^1.0.0-beta.1, gensync@^1.0.0-beta.2: version "1.0.0-beta.2" resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== -get-caller-file@^2.0.1: +get-caller-file@^2.0.1, get-caller-file@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" - integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== +get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.3, get-intrinsic@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" + integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" + es-errors "^1.3.0" + function-bind "^1.1.2" + has-proto "^1.0.1" + has-symbols "^1.0.3" + hasown "^2.0.0" get-own-enumerable-property-symbols@^3.0.0: version "3.0.2" @@ -7801,22 +7359,10 @@ get-package-type@^0.1.0: resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== -get-stdin@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" - integrity sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4= - -get-stdin@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b" - integrity sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g== - -get-stream@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" - integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== - dependencies: - pump "^3.0.0" +get-port-please@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/get-port-please/-/get-port-please-3.1.2.tgz#502795e56217128e4183025c89a48c71652f4e49" + integrity sha512-Gxc29eLs1fbn6LQ4jSU4vXjlwyZhF5HsGuMAa7gqBP4Rw4yxxltyDUuF5MBclFzDTXO+ACchGQoeela4DSfzdQ== get-stream@^5.0.0: version "5.2.0" @@ -7825,66 +7371,68 @@ get-stream@^5.0.0: dependencies: pump "^3.0.0" -get-symbol-description@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" - integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" - -get-value@^2.0.3, get-value@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" - integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= +get-stream@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= - dependencies: - assert-plus "^1.0.0" +get-stream@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-8.0.1.tgz#def9dfd71742cd7754a7761ed43749a27d02eca2" + integrity sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA== -glob-parent@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" - integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= +get-symbol-description@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.2.tgz#533744d5aa20aca4e079c8e5daf7fd44202821f5" + integrity sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg== dependencies: - is-glob "^3.1.0" - path-dirname "^1.0.0" + call-bind "^1.0.5" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" -glob-parent@^5.0.0, glob-parent@^5.1.2, glob-parent@~5.1.2: +glob-parent@^5.1.2, glob-parent@~5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== dependencies: is-glob "^4.0.1" -glob@^7.0.0, glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: - version "7.2.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" - integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== +glob-parent@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" + integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" + is-glob "^4.0.3" + +glob-to-regexp@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" + integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== + +glob@^10.3.10: + version "10.3.15" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.15.tgz#e72bc61bc3038c90605f5dd48543dc67aaf3b50d" + integrity sha512-0c6RlJt1TICLyvJYIApxb8GsXoai0KUP7AxKKAtsYXdgJR1mGEUa7DgwShbdk1nly0PYoZj01xd4hzbq3fsjpw== + dependencies: + foreground-child "^3.1.0" + jackspeak "^2.3.6" + minimatch "^9.0.1" + minipass "^7.0.4" + path-scurry "^1.11.0" -glob@~7.1.1, glob@~7.1.7: - version "7.1.7" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" - integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== +glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" inherits "2" - minimatch "^3.0.4" + minimatch "^3.1.1" once "^1.3.0" path-is-absolute "^1.0.0" -global-modules@2.0.0: +global-modules@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== @@ -7900,51 +7448,27 @@ global-prefix@^3.0.0: kind-of "^6.0.2" which "^1.3.1" -global@~4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/global/-/global-4.4.0.tgz#3e7b105179006a323ed71aafca3e9c57a5cc6406" - integrity sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w== - dependencies: - min-document "^2.19.0" - process "^0.11.10" - globals@^11.1.0: version "11.12.0" resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -globals@^12.1.0: - version "12.4.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8" - integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg== - dependencies: - type-fest "^0.8.1" - -globals@^13.6.0, globals@^13.9.0: - version "13.12.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.12.0.tgz#4d733760304230a0082ed96e21e5c565f898089e" - integrity sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg== +globals@^13.19.0: + version "13.24.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171" + integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== dependencies: type-fest "^0.20.2" -globals@^9.18.0: - version "9.18.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" - integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== - -globby@11.0.1: - version "11.0.1" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.1.tgz#9a2bf107a068f3ffeabc49ad702c79ede8cfd357" - integrity sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ== +globalthis@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.4.tgz#7430ed3a975d97bfb59bcce41f5cabbafa651236" + integrity sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ== dependencies: - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.1.1" - ignore "^5.1.4" - merge2 "^1.3.0" - slash "^3.0.0" + define-properties "^1.2.1" + gopd "^1.0.1" -globby@^11.0.3: +globby@^11.0.4, globby@^11.1.0: version "11.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== @@ -7956,32 +7480,24 @@ globby@^11.0.3: merge2 "^1.4.1" slash "^3.0.0" -globby@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" - integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw= +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== dependencies: - array-union "^1.0.1" - glob "^7.0.3" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" + get-intrinsic "^1.1.3" -globule@^1.0.0: - version "1.3.3" - resolved "https://registry.yarnpkg.com/globule/-/globule-1.3.3.tgz#811919eeac1ab7344e905f2e3be80a13447973c2" - integrity sha512-mb1aYtDbIjTu4ShMB85m3UzjX9BVKe9WCzsnfMSZk+K5GpIbBOexgg4PPCt5eHDEG5/ZQAUX2Kct02zfiPLsKg== - dependencies: - glob "~7.1.1" - lodash "~4.17.10" - minimatch "~3.0.2" +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.11, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: + version "4.2.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4: - version "4.2.9" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.9.tgz#041b05df45755e587a24942279b9d113146e1c96" - integrity sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ== +graphemer@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" + integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== -graphql-tag@^2.12.3: +graphql-tag@^2.12.6: version "2.12.6" resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.12.6.tgz#d441a569c1d2537ef10ca3d1633b48725329b5f1" integrity sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg== @@ -7993,118 +7509,77 @@ graphql@^15.4.0: resolved "https://registry.yarnpkg.com/graphql/-/graphql-15.8.0.tgz#33410e96b012fa3bdb1091cc99a94769db212b38" integrity sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw== -growly@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" - integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= - -gzip-size@5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-5.1.1.tgz#cb9bee692f87c0612b232840a873904e4c135274" - integrity sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA== +gzip-size@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-6.0.0.tgz#065367fd50c239c0671cbcbad5be3e2eeb10e462" + integrity sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q== dependencies: - duplexer "^0.1.1" - pify "^4.0.1" + duplexer "^0.1.2" + +h3@^1.10.2, h3@^1.11.1: + version "1.11.1" + resolved "https://registry.yarnpkg.com/h3/-/h3-1.11.1.tgz#e9414ae6f2a076a345ea07256b320edb29bab9f7" + integrity sha512-AbaH6IDnZN6nmbnJOH72y3c5Wwh9P97soSVdGSBbcDACRdkC0FEWf25pzx4f/NuOCK6quHmW18yF2Wx+G4Zi1A== + dependencies: + cookie-es "^1.0.0" + crossws "^0.2.2" + defu "^6.1.4" + destr "^2.0.3" + iron-webcrypto "^1.0.0" + ohash "^1.1.3" + radix3 "^1.1.0" + ufo "^1.4.0" + uncrypto "^0.1.3" + unenv "^1.9.0" handle-thing@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== -har-schema@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= - -har-validator@~5.1.3: - version "5.1.5" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" - integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== - dependencies: - ajv "^6.12.3" - har-schema "^2.0.0" - harmony-reflect@^1.4.6: version "1.6.2" resolved "https://registry.yarnpkg.com/harmony-reflect/-/harmony-reflect-1.6.2.tgz#31ecbd32e648a34d030d86adb67d4d47547fe710" integrity sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g== -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= - dependencies: - ansi-regex "^2.0.0" - -has-bigints@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" - integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== +has-bigints@^1.0.1, has-bigints@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" + integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== has-flag@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-symbols@^1.0.1, has-symbols@^1.0.2: +has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" - integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== - -has-tostringtag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" - integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== - dependencies: - has-symbols "^1.0.2" - -has-unicode@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" - integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= - -has-value@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" - integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= - dependencies: - get-value "^2.0.3" - has-values "^0.1.4" - isobject "^2.0.0" - -has-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" - integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" + integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== dependencies: - get-value "^2.0.6" - has-values "^1.0.0" - isobject "^3.0.0" - -has-values@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" - integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= + es-define-property "^1.0.0" -has-values@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" - integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" +has-proto@^1.0.1, has-proto@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.3.tgz#b31ddfe9b0e6e9914536a6ab286426d0214f77fd" + integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q== -has@^1.0.0, has@^1.0.3, has@~1.0.3: +has-symbols@^1.0.1, has-symbols@^1.0.2, has-symbols@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +has-tostringtag@^1.0.0, has-tostringtag@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" + integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== dependencies: - function-bind "^1.1.1" + has-symbols "^1.0.3" hash-base@^3.0.0: version "3.1.0" @@ -8115,14 +7590,6 @@ hash-base@^3.0.0: readable-stream "^3.6.0" safe-buffer "^5.2.0" -hash.js@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.3.tgz#340dedbe6290187151c1ea1d777a3448935df846" - integrity sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.0" - hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: version "1.1.7" resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" @@ -8131,15 +7598,22 @@ hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: inherits "^2.0.3" minimalistic-assert "^1.0.1" +hasown@^2.0.0, hasown@^2.0.1, hasown@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== + dependencies: + function-bind "^1.1.2" + he@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== -hex-color-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" - integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== +hey-listen@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/hey-listen/-/hey-listen-1.0.8.tgz#8e59561ff724908de1aa924ed6ecc84a56a9aa68" + integrity sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q== history@^4.9.0: version "4.10.1" @@ -8153,60 +7627,37 @@ history@^4.9.0: tiny-warning "^1.0.0" value-equal "^1.0.1" -hmac-drbg@^1.0.0, hmac-drbg@^1.0.1: +hmac-drbg@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= + integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg== dependencies: hash.js "^1.0.3" minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.1" -hoist-non-react-statics@^3.0.0, hoist-non-react-statics@^3.1.0, hoist-non-react-statics@^3.3.2: +hoist-non-react-statics@^3.1.0, hoist-non-react-statics@^3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== dependencies: react-is "^16.7.0" -home-or-tmp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" - integrity sha1-42w/LSyufXRqhX440Y1fMqeILbg= - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.1" - hoopy@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/hoopy/-/hoopy-0.1.4.tgz#609207d661100033a9a9402ad3dea677381c1b1d" integrity sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ== -hosted-git-info@^2.1.4: - version "2.8.9" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" - integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== - hpack.js@^2.1.6: version "2.1.6" resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" - integrity sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI= + integrity sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ== dependencies: inherits "^2.0.1" obuf "^1.0.0" readable-stream "^2.0.1" wbuf "^1.1.0" -hsl-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e" - integrity sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4= - -hsla-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" - integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg= - html-encoding-sniffer@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3" @@ -8214,43 +7665,46 @@ html-encoding-sniffer@^2.0.1: dependencies: whatwg-encoding "^1.0.5" -html-entities@^1.2.1, html-entities@^1.3.1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.4.0.tgz#cfbd1b01d2afaf9adca1b10ae7dffab98c71d2dc" - integrity sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA== +html-entities@^2.1.0, html-entities@^2.3.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.5.2.tgz#201a3cf95d3a15be7099521620d19dfb4f65359f" + integrity sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA== html-escaper@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== -html-minifier-terser@^5.0.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz#922e96f1f3bb60832c2634b79884096389b1f054" - integrity sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg== +html-minifier-terser@^6.0.2: + version "6.1.0" + resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#bfc818934cc07918f6b3669f5774ecdfd48f32ab" + integrity sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw== dependencies: - camel-case "^4.1.1" - clean-css "^4.2.3" - commander "^4.1.1" + camel-case "^4.1.2" + clean-css "^5.2.2" + commander "^8.3.0" he "^1.2.0" - param-case "^3.0.3" + param-case "^3.0.4" relateurl "^0.2.7" - terser "^4.6.3" + terser "^5.10.0" -html-webpack-plugin@4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-4.5.0.tgz#625097650886b97ea5dae331c320e3238f6c121c" - integrity sha512-MouoXEYSjTzCrjIxWwg8gxL5fE2X2WZJLmBYXlaJhQUH5K/b5OrqmV7T4dB7iu0xkmJ6JlUuV6fFVtnqbPopZw== +html-parse-stringify@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/html-parse-stringify/-/html-parse-stringify-3.0.1.tgz#dfc1017347ce9f77c8141a507f233040c59c55d2" + integrity sha512-KknJ50kTInJ7qIScF3jeaFRpMpE8/lfiTdzf/twXyPBLAGrLRTmkz3AdTnKeh40X8k9L2fdYwEp/42WGXIRGcg== dependencies: - "@types/html-minifier-terser" "^5.0.0" - "@types/tapable" "^1.0.5" - "@types/webpack" "^4.41.8" - html-minifier-terser "^5.0.1" - loader-utils "^1.2.3" - lodash "^4.17.15" - pretty-error "^2.1.1" - tapable "^1.1.3" - util.promisify "1.0.0" + void-elements "3.1.0" + +html-webpack-plugin@^5.5.0: + version "5.6.0" + resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.6.0.tgz#50a8fa6709245608cb00e811eacecb8e0d7b7ea0" + integrity sha512-iwaY4wzbe48AfKLZ/Cc8k0L+FKG6oSNRaZ8x5A/T/IVDGyXcbHncM9TdDa93wn0FsSm82FhTKW7f3vS61thXAw== + dependencies: + "@types/html-minifier-terser" "^6.0.0" + html-minifier-terser "^6.0.2" + lodash "^4.17.21" + pretty-error "^4.0.0" + tapable "^2.0.0" htmlparser2@^6.1.0: version "6.1.0" @@ -8262,36 +7716,26 @@ htmlparser2@^6.1.0: domutils "^2.5.2" entities "^2.0.0" -htmlparser2@^7.1.2: - version "7.2.0" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-7.2.0.tgz#8817cdea38bbc324392a90b1990908e81a65f5a5" - integrity sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog== - dependencies: - domelementtype "^2.0.1" - domhandler "^4.2.2" - domutils "^2.8.0" - entities "^3.0.1" - http-deceiver@^1.2.7: version "1.2.7" resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" - integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc= + integrity sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw== -http-errors@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.1.tgz#7c3f28577cbc8a207388455dbd62295ed07bd68c" - integrity sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g== +http-errors@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" + integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== dependencies: - depd "~1.1.2" + depd "2.0.0" inherits "2.0.4" setprototypeof "1.2.0" - statuses ">= 1.5.0 < 2" + statuses "2.0.1" toidentifier "1.0.1" http-errors@~1.6.2: version "1.6.3" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" - integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= + integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A== dependencies: depd "~1.1.2" inherits "2.0.3" @@ -8299,9 +7743,9 @@ http-errors@~1.6.2: statuses ">= 1.4.0 < 2" http-parser-js@>=0.5.1: - version "0.5.5" - resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.5.tgz#d7c30d5d3c90d865b4a2e870181f9d6f22ac7ac5" - integrity sha512-x+JVEkO2PoM8qqpbPbOL3cqHPwerep7OwzK7Ay+sMQjKzaKCqWvjoXm5tqMP9tXWWTnTzAjIhXg+J99XYuPhPA== + version "0.5.8" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.8.tgz#af23090d9ac4e24573de6f6aecc9d84a48bf20e3" + integrity sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q== http-proxy-agent@^4.0.1: version "4.0.1" @@ -8312,17 +7756,18 @@ http-proxy-agent@^4.0.1: agent-base "6" debug "4" -http-proxy-middleware@0.19.1: - version "0.19.1" - resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a" - integrity sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q== +http-proxy-middleware@^2.0.3: + version "2.0.6" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz#e1a4dd6979572c7ab5a4e4b55095d1f32a74963f" + integrity sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw== dependencies: - http-proxy "^1.17.0" - is-glob "^4.0.0" - lodash "^4.17.11" - micromatch "^3.1.10" + "@types/http-proxy" "^1.17.8" + http-proxy "^1.18.1" + is-glob "^4.0.1" + is-plain-obj "^3.0.0" + micromatch "^4.0.2" -http-proxy@^1.17.0: +http-proxy@^1.18.1: version "1.18.1" resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== @@ -8331,24 +7776,15 @@ http-proxy@^1.17.0: follow-redirects "^1.0.0" requires-port "^1.0.0" -http-signature@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" - integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= - dependencies: - assert-plus "^1.0.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - -https-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" - integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= +http-shutdown@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/http-shutdown/-/http-shutdown-1.2.2.tgz#41bc78fc767637c4c95179bc492f312c0ae64c5f" + integrity sha512-S9wWkJ/VSY9/k4qcjG318bqJNruzE4HySUhFYknwmu6LBP97KLLfwNf+n4V1BHurvFNkSKLFnK/RsuUnRTf9Vw== https-proxy-agent@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2" - integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA== + version "5.0.1" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" + integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== dependencies: agent-base "6" debug "4" @@ -8358,6 +7794,42 @@ human-signals@^1.1.1: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== +human-signals@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" + integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== + +human-signals@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-5.0.0.tgz#42665a284f9ae0dade3ba41ebc37eb4b852f3a28" + integrity sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ== + +hyphenate-style-name@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz#691879af8e220aea5750e8827db4ef62a54e361d" + integrity sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ== + +i18next-browser-languagedetector@^6.1.3: + version "6.1.8" + resolved "https://registry.yarnpkg.com/i18next-browser-languagedetector/-/i18next-browser-languagedetector-6.1.8.tgz#8e9c61b32a4dfe9b959b38bc9d2a8b95f799b27c" + integrity sha512-Svm+MduCElO0Meqpj1kJAriTC6OhI41VhlT/A0UPjGoPZBhAHIaGE5EfsHlTpgdH09UVX7rcc72pSDDBeKSQQA== + dependencies: + "@babel/runtime" "^7.19.0" + +i18next-http-backend@^1.3.1: + version "1.4.5" + resolved "https://registry.yarnpkg.com/i18next-http-backend/-/i18next-http-backend-1.4.5.tgz#4803eb071eb6ffb147c36bdd42ba6f64b3198ac2" + integrity sha512-tLuHWuLWl6CmS07o+UB6EcQCaUjrZ1yhdseIN7sfq0u7phsMePJ8pqlGhIAdRDPF/q7ooyo5MID5DRFBCH+x5w== + dependencies: + cross-fetch "3.1.5" + +i18next@^21.6.6: + version "21.10.0" + resolved "https://registry.yarnpkg.com/i18next/-/i18next-21.10.0.tgz#85429af55fdca4858345d0e16b584ec29520197d" + integrity sha512-YeuIBmFsGjUfO3qBmMOc0rQaun4mIpGKET5WDwvu8lU7gvwpcariZLNtL0Fzj+zazcHUrlXHiptcFhBMFaxzfg== + dependencies: + "@babel/runtime" "^7.17.2" + iconv-lite@0.4.24: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" @@ -8365,78 +7837,56 @@ iconv-lite@0.4.24: dependencies: safer-buffer ">= 2.1.2 < 3" -iconv-lite@^0.6.2: +iconv-lite@^0.6.3: version "0.6.3" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== dependencies: safer-buffer ">= 2.1.2 < 3.0.0" -icss-utils@^4.0.0, icss-utils@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467" - integrity sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA== - dependencies: - postcss "^7.0.14" +icss-utils@^5.0.0, icss-utils@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" + integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== + +idb-keyval@^6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/idb-keyval/-/idb-keyval-6.2.1.tgz#94516d625346d16f56f3b33855da11bfded2db33" + integrity sha512-8Sb3veuYCyrZL+VBt9LJfZjLUPWVvqn8tG28VqYNFCo43KHcKuq+b4EiXGeuaLAQWL2YmyDgMp2aSpH9JHsEQg== -identity-obj-proxy@3.0.0: +idb@^7.0.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/idb/-/idb-7.1.1.tgz#d910ded866d32c7ced9befc5bfdf36f572ced72b" + integrity sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ== + +identity-obj-proxy@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz#94d2bda96084453ef36fbc5aaec37e0f79f1fc14" - integrity sha1-lNK9qWCERT7zb7xarsN+D3nx/BQ= + integrity sha512-00n6YnVHKrinT9t0d9+5yZC6UBNJANpYEQvL2LlX6Ab9lnmxzIRcEmTPuyGScvl1+jKuCICX1Z0Ab1pPKKdikA== dependencies: harmony-reflect "^1.4.6" -ieee754@^1.1.13, ieee754@^1.1.4, ieee754@^1.2.1: +ieee754@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== -iferr@^0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" - integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= - -ignore@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" - integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== - -ignore@^5.1.4, ignore@^5.1.8, ignore@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" - integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== - -immediate@^3.2.3: - version "3.3.0" - resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.3.0.tgz#1aef225517836bcdf7f2a2de2600c79ff0269266" - integrity sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q== +ignore@^5.1.4, ignore@^5.2.0: + version "5.3.1" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef" + integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw== -immer@8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/immer/-/immer-8.0.1.tgz#9c73db683e2b3975c424fb0572af5889877ae656" - integrity sha512-aqXhGP7//Gui2+UrEtvxZxSquQVXTpZ7KDxfCcKAF3Vysvw0CViVaW9RZ1j1xlIYqaaaipBoqdqeibkc18PNvA== +immer@^9.0.7: + version "9.0.21" + resolved "https://registry.yarnpkg.com/immer/-/immer-9.0.21.tgz#1e025ea31a40f24fb064f1fef23e931496330176" + integrity sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA== immutable@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.0.0.tgz#b86f78de6adef3608395efb269a91462797e2c23" - integrity sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw== - -import-cwd@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9" - integrity sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk= - dependencies: - import-from "^2.1.0" - -import-fresh@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" - integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= - dependencies: - caller-path "^2.0.0" - resolve-from "^3.0.0" + version "4.3.6" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.6.tgz#6a05f7858213238e587fb83586ffa3b4b27f0447" + integrity sha512-Ju0+lEMyzMVZarkTn/gqRpdqd5dOPaz1mCZ0SH3JV6iFw81PldE/PEB1hWVEA288HPt4WXW8O7AWxB10M+03QQ== -import-fresh@^3.0.0, import-fresh@^3.2.1: +import-fresh@^3.1.0, import-fresh@^3.2.1: version "3.3.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== @@ -8444,21 +7894,6 @@ import-fresh@^3.0.0, import-fresh@^3.2.1: parent-module "^1.0.0" resolve-from "^4.0.0" -import-from@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" - integrity sha1-M1238qev/VOqpHHUuAId7ja387E= - dependencies: - resolve-from "^3.0.0" - -import-local@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" - integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== - dependencies: - pkg-dir "^3.0.0" - resolve-cwd "^2.0.0" - import-local@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" @@ -8470,149 +7905,92 @@ import-local@^3.0.2: imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= - -in-publish@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/in-publish/-/in-publish-2.0.1.tgz#948b1a535c8030561cea522f73f78f4be357e00c" - integrity sha512-oDM0kUSNFC31ShNxHKUyfZKy8ZeXZBWMjMdZHKLOk13uvT27VTL/QzRGfRUcevJhpkZAvlhPYuXkF7eNWrtyxQ== - -indent-string@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" - integrity sha1-ji1INIdCEhtKghi3oTfppSBJ3IA= - dependencies: - repeating "^2.0.0" - -indent-string@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" - integrity sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok= + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== indent-string@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== -indexes-of@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" - integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= - -infer-owner@^1.0.3, infer-owner@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" - integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== - inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== dependencies: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3, inherits@~2.0.4: +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3, inherits@~2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -inherits@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" - integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= - inherits@2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= + integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== ini@^1.3.5: version "1.3.8" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== -internal-ip@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907" - integrity sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg== - dependencies: - default-gateway "^4.2.0" - ipaddr.js "^1.9.0" - -internal-slot@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" - integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== +internal-slot@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.7.tgz#c06dcca3ed874249881007b0a5523b172a190802" + integrity sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g== dependencies: - get-intrinsic "^1.1.0" - has "^1.0.3" + es-errors "^1.3.0" + hasown "^2.0.0" side-channel "^1.0.4" -invariant@^2.2.2, invariant@^2.2.4: +invariant@^2.2.4: version "2.2.4" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== dependencies: loose-envify "^1.0.0" -ip-regex@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" - integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= - -ip@^1.1.0, ip@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" - integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= - -ipaddr.js@1.9.1, ipaddr.js@^1.9.0: +ipaddr.js@1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== -is-absolute-url@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" - integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY= - -is-absolute-url@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698" - integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q== - -is-accessor-descriptor@^0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" - integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= - dependencies: - kind-of "^3.0.2" +ipaddr.js@^2.0.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.2.0.tgz#d33fa7bac284f4de7af949638c9d68157c6b92e8" + integrity sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA== -is-accessor-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" - integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== - dependencies: - kind-of "^6.0.0" +iron-webcrypto@^1.0.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/iron-webcrypto/-/iron-webcrypto-1.2.1.tgz#aa60ff2aa10550630f4c0b11fd2442becdb35a6f" + integrity sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg== -is-arguments@^1.0.4: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" - integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== +is-array-buffer@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.4.tgz#7a1f92b3d61edd2bc65d24f130530ea93d7fae98" + integrity sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw== dependencies: call-bind "^1.0.2" - has-tostringtag "^1.0.0" + get-intrinsic "^1.2.1" is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== is-arrayish@^0.3.1: version "0.3.2" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== +is-async-function@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-async-function/-/is-async-function-2.0.0.tgz#8e4418efd3e5d3a6ebb0164c05ef5afb69aa9646" + integrity sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA== + dependencies: + has-tostringtag "^1.0.0" + is-bigint@^1.0.1: version "1.0.4" resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" @@ -8620,13 +7998,6 @@ is-bigint@^1.0.1: dependencies: has-bigints "^1.0.1" -is-binary-path@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" - integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= - dependencies: - binary-extensions "^1.0.0" - is-binary-path@~2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" @@ -8634,6 +8005,11 @@ is-binary-path@~2.1.0: dependencies: binary-extensions "^2.0.0" +is-blob@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-blob/-/is-blob-2.1.0.tgz#e36cd82c90653f1e1b930f11baf9c64216a05385" + integrity sha512-SZ/fTft5eUhQM6oF/ZaASFDEdbFVe89Imltn9uZr03wdKMcWNVYSMjQPFtg05QuNkt5l5c135ElvXEQG0rk4tw== + is-boolean-object@^1.1.0: version "1.1.2" resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" @@ -8642,161 +8018,70 @@ is-boolean-object@^1.1.0: call-bind "^1.0.2" has-tostringtag "^1.0.0" -is-buffer@2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.4.tgz#3e572f23c8411a5cfd9557c849e3665e0b290623" - integrity sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A== - -is-buffer@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== - -is-buffer@^2.0.2: - version "2.0.5" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" - integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== - -is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" - integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== - -is-ci@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" - integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== - dependencies: - ci-info "^2.0.0" - -is-color-stop@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" - integrity sha1-z/9HGu5N1cnhWFmPvhKWe1za00U= - dependencies: - css-color-names "^0.0.4" - hex-color-regex "^1.1.0" - hsl-regex "^1.0.0" - hsla-regex "^1.0.0" - rgb-regex "^1.0.1" - rgba-regex "^1.0.0" - -is-core-module@^2.0.0, is-core-module@^2.2.0, is-core-module@^2.8.0: - version "2.8.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.1.tgz#f59fdfca701d5879d0a6b100a40aa1560ce27211" - integrity sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA== - dependencies: - has "^1.0.3" +is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" + integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== -is-data-descriptor@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" - integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= +is-core-module@^2.13.0, is-core-module@^2.13.1: + version "2.13.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" + integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== dependencies: - kind-of "^3.0.2" + hasown "^2.0.0" -is-data-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" - integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== +is-data-view@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-data-view/-/is-data-view-1.0.1.tgz#4b4d3a511b70f3dc26d42c03ca9ca515d847759f" + integrity sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w== dependencies: - kind-of "^6.0.0" + is-typed-array "^1.1.13" -is-date-object@^1.0.1: +is-date-object@^1.0.1, is-date-object@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== - dependencies: - has-tostringtag "^1.0.0" - -is-descriptor@^0.1.0: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" - integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== - dependencies: - is-accessor-descriptor "^0.1.6" - is-data-descriptor "^0.1.4" - kind-of "^5.0.0" - -is-descriptor@^1.0.0, is-descriptor@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" - integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== - dependencies: - is-accessor-descriptor "^1.0.0" - is-data-descriptor "^1.0.0" - kind-of "^6.0.2" - -is-directory@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" - integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= + dependencies: + has-tostringtag "^1.0.0" -is-docker@^2.0.0: +is-docker@^2.0.0, is-docker@^2.1.1: version "2.2.1" resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== -is-extendable@^0.1.0, is-extendable@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= - -is-extendable@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" - integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== - dependencies: - is-plain-object "^2.0.4" +is-docker@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-3.0.0.tgz#90093aa3106277d8a77a5910dbae71747e15a200" + integrity sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ== -is-extglob@^2.1.0, is-extglob@^2.1.1: +is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= - -is-finite@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.1.0.tgz#904135c77fb42c0641d6aa1bcdbc4daa8da082f3" - integrity sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w== - -is-fn@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-fn/-/is-fn-1.0.0.tgz#9543d5de7bcf5b08a22ec8a20bae6e286d510d8c" - integrity sha1-lUPV3nvPWwiiLsiiC65uKG1RDYw= + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== -is-fullwidth-code-point@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" - integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= +is-finalizationregistry@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz#c8749b65f17c133313e661b1289b95ad3dbd62e6" + integrity sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw== dependencies: - number-is-nan "^1.0.0" - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + call-bind "^1.0.2" is-fullwidth-code-point@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== -is-function@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.2.tgz#4f097f30abf6efadac9833b17ca5dc03f8144e08" - integrity sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ== - is-generator-fn@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== -is-glob@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" - integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= +is-generator-function@^1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72" + integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== dependencies: - is-extglob "^2.1.0" + has-tostringtag "^1.0.0" is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: version "4.0.3" @@ -8808,32 +8093,37 @@ is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: is-hex-prefixed@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz#7d8d37e6ad77e5d127148913c573e082d777f554" - integrity sha1-fY035q135dEnFIkTxXPggtd39VQ= + integrity sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA== + +is-inside-container@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-inside-container/-/is-inside-container-1.0.0.tgz#e81fba699662eb31dbdaf26766a61d4814717ea4" + integrity sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA== + dependencies: + is-docker "^3.0.0" + +is-map@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.3.tgz#ede96b7fe1e270b3c4465e3a465658764926d62e" + integrity sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw== is-module@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" - integrity sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE= + integrity sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g== -is-negative-zero@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" - integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== +is-negative-zero@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.3.tgz#ced903a027aca6381b777a5743069d7376a49747" + integrity sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw== is-number-object@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.6.tgz#6a7aaf838c7f0686a50b4553f7e54a96494e89f0" - integrity sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g== + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" + integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== dependencies: has-tostringtag "^1.0.0" -is-number@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= - dependencies: - kind-of "^3.0.2" - is-number@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" @@ -8842,50 +8132,24 @@ is-number@^7.0.0: is-obj@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" - integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= - -is-obj@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" - integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== - -is-path-cwd@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" - integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== - -is-path-in-cwd@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz#bfe2dca26c69f397265a4009963602935a053acb" - integrity sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ== - dependencies: - is-path-inside "^2.1.0" + integrity sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg== -is-path-inside@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-2.1.0.tgz#7c9810587d659a40d27bcdb4d5616eab059494b2" - integrity sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg== - dependencies: - path-is-inside "^1.0.2" - -is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= +is-path-inside@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== -is-plain-object@^2.0.3, is-plain-object@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" - integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== - dependencies: - isobject "^3.0.1" +is-plain-obj@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz#af6f2ea14ac5a646183a5bbdb5baabbc156ad9d7" + integrity sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA== is-potential-custom-element-name@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== -is-regex@^1.0.4, is-regex@^1.1.4, is-regex@~1.1.3: +is-regex@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== @@ -8896,33 +8160,35 @@ is-regex@^1.0.4, is-regex@^1.1.4, is-regex@~1.1.3: is-regexp@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" - integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk= + integrity sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA== -is-resolvable@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" - integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== - -is-root@2.1.0: +is-root@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-root/-/is-root-2.1.0.tgz#809e18129cf1129644302a4f8544035d51984a9c" integrity sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg== -is-shared-array-buffer@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz#97b0c85fbdacb59c9c446fe653b82cf2b5b7cfe6" - integrity sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA== +is-set@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.3.tgz#8ab209ea424608141372ded6e0cb200ef1d9d01d" + integrity sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg== -is-stream@^1.0.1, is-stream@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= +is-shared-array-buffer@^1.0.2, is-shared-array-buffer@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz#1237f1cba059cdb62431d378dcc37d9680181688" + integrity sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg== + dependencies: + call-bind "^1.0.7" is-stream@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== +is-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" + integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== + is-string@^1.0.5, is-string@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" @@ -8937,96 +8203,96 @@ is-symbol@^1.0.2, is-symbol@^1.0.3: dependencies: has-symbols "^1.0.2" -is-typedarray@1.0.0, is-typedarray@^1.0.0, is-typedarray@~1.0.0: +is-typed-array@^1.1.13: + version "1.1.13" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.13.tgz#d6c5ca56df62334959322d7d7dd1cca50debe229" + integrity sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw== + dependencies: + which-typed-array "^1.1.14" + +is-typedarray@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== -is-utf8@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" - integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= +is-weakmap@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.2.tgz#bf72615d649dfe5f699079c54b83e47d1ae19cfd" + integrity sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w== -is-weakref@^1.0.1: +is-weakref@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== dependencies: call-bind "^1.0.2" -is-windows@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" - integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== - -is-wsl@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" - integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= +is-weakset@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.3.tgz#e801519df8c0c43e12ff2834eead84ec9e624007" + integrity sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ== + dependencies: + call-bind "^1.0.7" + get-intrinsic "^1.2.4" -is-wsl@^2.1.1, is-wsl@^2.2.0: +is-wsl@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== dependencies: is-docker "^2.0.0" +is-wsl@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-3.1.0.tgz#e1c657e39c10090afcbedec61720f6b924c3cbd2" + integrity sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw== + dependencies: + is-inside-container "^1.0.0" + +is64bit@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is64bit/-/is64bit-2.0.0.tgz#198c627cbcb198bbec402251f88e5e1a51236c07" + integrity sha512-jv+8jaWCl0g2lSBkNSVXdzfBA0npK1HGC2KtWM9FumFRoGS94g3NbCCLVnCYHLjp4GrW2KZeeSTMo5ddtznmGw== + dependencies: + system-architecture "^0.1.0" + isarray@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" - integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= + integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== -isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= - -isarray@^2.0.1: +isarray@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== +isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= +isomorphic-unfetch@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/isomorphic-unfetch/-/isomorphic-unfetch-3.1.0.tgz#87341d5f4f7b63843d468438128cb087b7c3e98f" + integrity sha512-geDJjpoZ8N0kWexiwkX8F9NkTsXhetLPVbZFQ+JTW239QNOwvB0gniuR1Wc6f0AMTn7/mFGyXvHTifrCp/GH8Q== dependencies: - isarray "1.0.0" - -isobject@^3.0.0, isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= - -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= + node-fetch "^2.6.1" + unfetch "^4.2.0" istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3" - integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== - -istanbul-lib-instrument@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d" - integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== - dependencies: - "@babel/core" "^7.7.5" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.0.0" - semver "^6.3.0" + version "3.2.2" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz#2d166c4b0644d43a39f04bf6c2edd1e585f31756" + integrity sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg== -istanbul-lib-instrument@^5.0.4: - version "5.1.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz#7b49198b657b27a730b8e9cb601f1e1bff24c59a" - integrity sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q== +istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz#d10c8885c2125574e1c231cacadf955675e1ce3d" + integrity sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg== dependencies: "@babel/core" "^7.12.3" "@babel/parser" "^7.14.7" @@ -9035,12 +8301,12 @@ istanbul-lib-instrument@^5.0.4: semver "^6.3.0" istanbul-lib-report@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" - integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== + version "3.0.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz#908305bac9a5bd175ac6a74489eafd0fc2445a7d" + integrity sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw== dependencies: istanbul-lib-coverage "^3.0.0" - make-dir "^3.0.0" + make-dir "^4.0.0" supports-color "^7.1.0" istanbul-lib-source-maps@^4.0.0: @@ -9052,94 +8318,127 @@ istanbul-lib-source-maps@^4.0.0: istanbul-lib-coverage "^3.0.0" source-map "^0.6.1" -istanbul-reports@^3.0.2: - version "3.1.3" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.3.tgz#4bcae3103b94518117930d51283690960b50d3c2" - integrity sha512-x9LtDVtfm/t1GFiLl3NffC7hz+I1ragvgX1P/Lg1NlIagifZDKUkuuaAxH/qpwj2IuEfD8G2Bs/UKp+sZ/pKkg== +istanbul-reports@^3.1.3: + version "3.1.7" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.7.tgz#daed12b9e1dca518e15c056e1e537e741280fa0b" + integrity sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g== dependencies: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" -jest-changed-files@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-26.6.2.tgz#f6198479e1cc66f22f9ae1e22acaa0b429c042d0" - integrity sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ== +iterator.prototype@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/iterator.prototype/-/iterator.prototype-1.1.2.tgz#5e29c8924f01916cb9335f1ff80619dcff22b0c0" + integrity sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w== dependencies: - "@jest/types" "^26.6.2" - execa "^4.0.0" - throat "^5.0.0" + define-properties "^1.2.1" + get-intrinsic "^1.2.1" + has-symbols "^1.0.3" + reflect.getprototypeof "^1.0.4" + set-function-name "^2.0.1" -jest-circus@26.6.0: - version "26.6.0" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-26.6.0.tgz#7d9647b2e7f921181869faae1f90a2629fd70705" - integrity sha512-L2/Y9szN6FJPWFK8kzWXwfp+FOR7xq0cUL4lIsdbIdwz3Vh6P1nrpcqOleSzr28zOtSHQNV9Z7Tl+KkuK7t5Ng== +jackspeak@^2.3.6: + version "2.3.6" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.3.6.tgz#647ecc472238aee4b06ac0e461acc21a8c505ca8" + integrity sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ== dependencies: - "@babel/traverse" "^7.1.0" - "@jest/environment" "^26.6.0" - "@jest/test-result" "^26.6.0" - "@jest/types" "^26.6.0" - "@types/babel__traverse" "^7.0.4" + "@isaacs/cliui" "^8.0.2" + optionalDependencies: + "@pkgjs/parseargs" "^0.11.0" + +jake@^10.8.5: + version "10.9.1" + resolved "https://registry.yarnpkg.com/jake/-/jake-10.9.1.tgz#8dc96b7fcc41cb19aa502af506da4e1d56f5e62b" + integrity sha512-61btcOHNnLnsOdtLgA5efqQWjnSi/vow5HbI7HMdKKWqvrKR1bLK3BPlJn9gcSaP2ewuamUSMB5XEy76KUIS2w== + dependencies: + async "^3.2.3" + chalk "^4.0.2" + filelist "^1.0.4" + minimatch "^3.1.2" + +jest-changed-files@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-27.5.1.tgz#a348aed00ec9bf671cc58a66fcbe7c3dfd6a68f5" + integrity sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw== + dependencies: + "@jest/types" "^27.5.1" + execa "^5.0.0" + throat "^6.0.1" + +jest-circus@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-27.5.1.tgz#37a5a4459b7bf4406e53d637b49d22c65d125ecc" + integrity sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw== + dependencies: + "@jest/environment" "^27.5.1" + "@jest/test-result" "^27.5.1" + "@jest/types" "^27.5.1" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" dedent "^0.7.0" - expect "^26.6.0" + expect "^27.5.1" is-generator-fn "^2.0.0" - jest-each "^26.6.0" - jest-matcher-utils "^26.6.0" - jest-message-util "^26.6.0" - jest-runner "^26.6.0" - jest-runtime "^26.6.0" - jest-snapshot "^26.6.0" - jest-util "^26.6.0" - pretty-format "^26.6.0" - stack-utils "^2.0.2" - throat "^5.0.0" - -jest-cli@^26.6.0: - version "26.6.3" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-26.6.3.tgz#43117cfef24bc4cd691a174a8796a532e135e92a" - integrity sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg== - dependencies: - "@jest/core" "^26.6.3" - "@jest/test-result" "^26.6.2" - "@jest/types" "^26.6.2" + jest-each "^27.5.1" + jest-matcher-utils "^27.5.1" + jest-message-util "^27.5.1" + jest-runtime "^27.5.1" + jest-snapshot "^27.5.1" + jest-util "^27.5.1" + pretty-format "^27.5.1" + slash "^3.0.0" + stack-utils "^2.0.3" + throat "^6.0.1" + +jest-cli@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-27.5.1.tgz#278794a6e6458ea8029547e6c6cbf673bd30b145" + integrity sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw== + dependencies: + "@jest/core" "^27.5.1" + "@jest/test-result" "^27.5.1" + "@jest/types" "^27.5.1" chalk "^4.0.0" exit "^0.1.2" - graceful-fs "^4.2.4" + graceful-fs "^4.2.9" import-local "^3.0.2" - is-ci "^2.0.0" - jest-config "^26.6.3" - jest-util "^26.6.2" - jest-validate "^26.6.2" + jest-config "^27.5.1" + jest-util "^27.5.1" + jest-validate "^27.5.1" prompts "^2.0.1" - yargs "^15.4.1" + yargs "^16.2.0" -jest-config@^26.6.3: - version "26.6.3" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-26.6.3.tgz#64f41444eef9eb03dc51d5c53b75c8c71f645349" - integrity sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg== +jest-config@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-27.5.1.tgz#5c387de33dca3f99ad6357ddeccd91bf3a0e4a41" + integrity sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA== dependencies: - "@babel/core" "^7.1.0" - "@jest/test-sequencer" "^26.6.3" - "@jest/types" "^26.6.2" - babel-jest "^26.6.3" + "@babel/core" "^7.8.0" + "@jest/test-sequencer" "^27.5.1" + "@jest/types" "^27.5.1" + babel-jest "^27.5.1" chalk "^4.0.0" + ci-info "^3.2.0" deepmerge "^4.2.2" glob "^7.1.1" - graceful-fs "^4.2.4" - jest-environment-jsdom "^26.6.2" - jest-environment-node "^26.6.2" - jest-get-type "^26.3.0" - jest-jasmine2 "^26.6.3" - jest-regex-util "^26.0.0" - jest-resolve "^26.6.2" - jest-util "^26.6.2" - jest-validate "^26.6.2" - micromatch "^4.0.2" - pretty-format "^26.6.2" + graceful-fs "^4.2.9" + jest-circus "^27.5.1" + jest-environment-jsdom "^27.5.1" + jest-environment-node "^27.5.1" + jest-get-type "^27.5.1" + jest-jasmine2 "^27.5.1" + jest-regex-util "^27.5.1" + jest-resolve "^27.5.1" + jest-runner "^27.5.1" + jest-util "^27.5.1" + jest-validate "^27.5.1" + micromatch "^4.0.4" + parse-json "^5.2.0" + pretty-format "^27.5.1" + slash "^3.0.0" + strip-json-comments "^3.1.1" -jest-diff@^26.0.0, jest-diff@^26.6.2: +jest-diff@^26.0.0: version "26.6.2" resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-26.6.2.tgz#1aa7468b52c3a68d7d5c5fdcdfcd5e49bd164394" integrity sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA== @@ -9149,350 +8448,428 @@ jest-diff@^26.0.0, jest-diff@^26.6.2: jest-get-type "^26.3.0" pretty-format "^26.6.2" -jest-diff@^27.0.0: - version "27.4.6" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-27.4.6.tgz#93815774d2012a2cbb6cf23f84d48c7a2618f98d" - integrity sha512-zjaB0sh0Lb13VyPsd92V7HkqF6yKRH9vm33rwBt7rPYrpQvS1nCvlIy2pICbKta+ZjWngYLNn4cCK4nyZkjS/w== +jest-diff@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-27.5.1.tgz#a07f5011ac9e6643cf8a95a462b7b1ecf6680def" + integrity sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw== dependencies: chalk "^4.0.0" - diff-sequences "^27.4.0" - jest-get-type "^27.4.0" - pretty-format "^27.4.6" - -jest-docblock@^26.0.0: - version "26.0.0" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-26.0.0.tgz#3e2fa20899fc928cb13bd0ff68bd3711a36889b5" - integrity sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w== - dependencies: - detect-newline "^3.0.0" + diff-sequences "^27.5.1" + jest-get-type "^27.5.1" + pretty-format "^27.5.1" -jest-each@^26.6.0, jest-each@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-26.6.2.tgz#02526438a77a67401c8a6382dfe5999952c167cb" - integrity sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A== +jest-diff@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.7.0.tgz#017934a66ebb7ecf6f205e84699be10afd70458a" + integrity sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw== dependencies: - "@jest/types" "^26.6.2" chalk "^4.0.0" - jest-get-type "^26.3.0" - jest-util "^26.6.2" - pretty-format "^26.6.2" + diff-sequences "^29.6.3" + jest-get-type "^29.6.3" + pretty-format "^29.7.0" -jest-environment-jsdom@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz#78d09fe9cf019a357009b9b7e1f101d23bd1da3e" - integrity sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q== +jest-docblock@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-27.5.1.tgz#14092f364a42c6108d42c33c8cf30e058e25f6c0" + integrity sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ== dependencies: - "@jest/environment" "^26.6.2" - "@jest/fake-timers" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/node" "*" - jest-mock "^26.6.2" - jest-util "^26.6.2" - jsdom "^16.4.0" + detect-newline "^3.0.0" -jest-environment-node@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-26.6.2.tgz#824e4c7fb4944646356f11ac75b229b0035f2b0c" - integrity sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag== +jest-each@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-27.5.1.tgz#5bc87016f45ed9507fed6e4702a5b468a5b2c44e" + integrity sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ== dependencies: - "@jest/environment" "^26.6.2" - "@jest/fake-timers" "^26.6.2" - "@jest/types" "^26.6.2" + "@jest/types" "^27.5.1" + chalk "^4.0.0" + jest-get-type "^27.5.1" + jest-util "^27.5.1" + pretty-format "^27.5.1" + +jest-environment-jsdom@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz#ea9ccd1fc610209655a77898f86b2b559516a546" + integrity sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw== + dependencies: + "@jest/environment" "^27.5.1" + "@jest/fake-timers" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/node" "*" + jest-mock "^27.5.1" + jest-util "^27.5.1" + jsdom "^16.6.0" + +jest-environment-node@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-27.5.1.tgz#dedc2cfe52fab6b8f5714b4808aefa85357a365e" + integrity sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw== + dependencies: + "@jest/environment" "^27.5.1" + "@jest/fake-timers" "^27.5.1" + "@jest/types" "^27.5.1" "@types/node" "*" - jest-mock "^26.6.2" - jest-util "^26.6.2" + jest-mock "^27.5.1" + jest-util "^27.5.1" jest-get-type@^26.3.0: version "26.3.0" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-26.3.0.tgz#e97dc3c3f53c2b406ca7afaed4493b1d099199e0" integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig== -jest-get-type@^27.4.0: - version "27.4.0" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.4.0.tgz#7503d2663fffa431638337b3998d39c5e928e9b5" - integrity sha512-tk9o+ld5TWq41DkK14L4wox4s2D9MtTpKaAVzXfr5CUKm5ZK2ExcaFE0qls2W71zE/6R2TxxrK9w2r6svAFDBQ== +jest-get-type@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.5.1.tgz#3cd613c507b0f7ace013df407a1c1cd578bcb4f1" + integrity sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw== -jest-haste-map@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-26.6.2.tgz#dd7e60fe7dc0e9f911a23d79c5ff7fb5c2cafeaa" - integrity sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w== +jest-get-type@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.6.3.tgz#36f499fdcea197c1045a127319c0481723908fd1" + integrity sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw== + +jest-haste-map@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-27.5.1.tgz#9fd8bd7e7b4fa502d9c6164c5640512b4e811e7f" + integrity sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng== dependencies: - "@jest/types" "^26.6.2" + "@jest/types" "^27.5.1" "@types/graceful-fs" "^4.1.2" "@types/node" "*" anymatch "^3.0.3" fb-watchman "^2.0.0" - graceful-fs "^4.2.4" - jest-regex-util "^26.0.0" - jest-serializer "^26.6.2" - jest-util "^26.6.2" - jest-worker "^26.6.2" - micromatch "^4.0.2" - sane "^4.0.3" + graceful-fs "^4.2.9" + jest-regex-util "^27.5.1" + jest-serializer "^27.5.1" + jest-util "^27.5.1" + jest-worker "^27.5.1" + micromatch "^4.0.4" walker "^1.0.7" optionalDependencies: - fsevents "^2.1.2" + fsevents "^2.3.2" -jest-jasmine2@^26.6.3: - version "26.6.3" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz#adc3cf915deacb5212c93b9f3547cd12958f2edd" - integrity sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg== +jest-jasmine2@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz#a037b0034ef49a9f3d71c4375a796f3b230d1ac4" + integrity sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ== dependencies: - "@babel/traverse" "^7.1.0" - "@jest/environment" "^26.6.2" - "@jest/source-map" "^26.6.2" - "@jest/test-result" "^26.6.2" - "@jest/types" "^26.6.2" + "@jest/environment" "^27.5.1" + "@jest/source-map" "^27.5.1" + "@jest/test-result" "^27.5.1" + "@jest/types" "^27.5.1" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" - expect "^26.6.2" + expect "^27.5.1" is-generator-fn "^2.0.0" - jest-each "^26.6.2" - jest-matcher-utils "^26.6.2" - jest-message-util "^26.6.2" - jest-runtime "^26.6.3" - jest-snapshot "^26.6.2" - jest-util "^26.6.2" - pretty-format "^26.6.2" - throat "^5.0.0" - -jest-leak-detector@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz#7717cf118b92238f2eba65054c8a0c9c653a91af" - integrity sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg== + jest-each "^27.5.1" + jest-matcher-utils "^27.5.1" + jest-message-util "^27.5.1" + jest-runtime "^27.5.1" + jest-snapshot "^27.5.1" + jest-util "^27.5.1" + pretty-format "^27.5.1" + throat "^6.0.1" + +jest-leak-detector@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz#6ec9d54c3579dd6e3e66d70e3498adf80fde3fb8" + integrity sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ== + dependencies: + jest-get-type "^27.5.1" + pretty-format "^27.5.1" + +jest-matcher-utils@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz#9c0cdbda8245bc22d2331729d1091308b40cf8ab" + integrity sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw== dependencies: - jest-get-type "^26.3.0" - pretty-format "^26.6.2" + chalk "^4.0.0" + jest-diff "^27.5.1" + jest-get-type "^27.5.1" + pretty-format "^27.5.1" -jest-matcher-utils@^26.6.0, jest-matcher-utils@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz#8e6fd6e863c8b2d31ac6472eeb237bc595e53e7a" - integrity sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw== +jest-matcher-utils@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz#ae8fec79ff249fd592ce80e3ee474e83a6c44f12" + integrity sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g== dependencies: chalk "^4.0.0" - jest-diff "^26.6.2" - jest-get-type "^26.3.0" - pretty-format "^26.6.2" + jest-diff "^29.7.0" + jest-get-type "^29.6.3" + pretty-format "^29.7.0" -jest-message-util@^26.6.0, jest-message-util@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-26.6.2.tgz#58173744ad6fc0506b5d21150b9be56ef001ca07" - integrity sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA== +jest-message-util@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-27.5.1.tgz#bdda72806da10d9ed6425e12afff38cd1458b6cf" + integrity sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g== dependencies: - "@babel/code-frame" "^7.0.0" - "@jest/types" "^26.6.2" + "@babel/code-frame" "^7.12.13" + "@jest/types" "^27.5.1" "@types/stack-utils" "^2.0.0" chalk "^4.0.0" - graceful-fs "^4.2.4" - micromatch "^4.0.2" - pretty-format "^26.6.2" + graceful-fs "^4.2.9" + micromatch "^4.0.4" + pretty-format "^27.5.1" slash "^3.0.0" - stack-utils "^2.0.2" - -jest-mock@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-26.6.2.tgz#d6cb712b041ed47fe0d9b6fc3474bc6543feb302" - integrity sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew== - dependencies: - "@jest/types" "^26.6.2" - "@types/node" "*" - -jest-pnp-resolver@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" - integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== - -jest-regex-util@^26.0.0: - version "26.0.0" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-26.0.0.tgz#d25e7184b36e39fd466c3bc41be0971e821fee28" - integrity sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A== + stack-utils "^2.0.3" -jest-resolve-dependencies@^26.6.3: - version "26.6.3" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz#6680859ee5d22ee5dcd961fe4871f59f4c784fb6" - integrity sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg== +jest-message-util@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-28.1.3.tgz#232def7f2e333f1eecc90649b5b94b0055e7c43d" + integrity sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g== dependencies: - "@jest/types" "^26.6.2" - jest-regex-util "^26.0.0" - jest-snapshot "^26.6.2" + "@babel/code-frame" "^7.12.13" + "@jest/types" "^28.1.3" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.9" + micromatch "^4.0.4" + pretty-format "^28.1.3" + slash "^3.0.0" + stack-utils "^2.0.3" -jest-resolve@26.6.0: - version "26.6.0" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-26.6.0.tgz#070fe7159af87b03e50f52ea5e17ee95bbee40e1" - integrity sha512-tRAz2bwraHufNp+CCmAD8ciyCpXCs1NQxB5EJAmtCFy6BN81loFEGWKzYu26Y62lAJJe4X4jg36Kf+NsQyiStQ== +jest-message-util@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.7.0.tgz#8bc392e204e95dfe7564abbe72a404e28e51f7f3" + integrity sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w== dependencies: - "@jest/types" "^26.6.0" + "@babel/code-frame" "^7.12.13" + "@jest/types" "^29.6.3" + "@types/stack-utils" "^2.0.0" chalk "^4.0.0" - graceful-fs "^4.2.4" - jest-pnp-resolver "^1.2.2" - jest-util "^26.6.0" - read-pkg-up "^7.0.1" - resolve "^1.17.0" + graceful-fs "^4.2.9" + micromatch "^4.0.4" + pretty-format "^29.7.0" slash "^3.0.0" + stack-utils "^2.0.3" -jest-resolve@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-26.6.2.tgz#a3ab1517217f469b504f1b56603c5bb541fbb507" - integrity sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ== +jest-mock@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-27.5.1.tgz#19948336d49ef4d9c52021d34ac7b5f36ff967d6" + integrity sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og== dependencies: - "@jest/types" "^26.6.2" + "@jest/types" "^27.5.1" + "@types/node" "*" + +jest-pnp-resolver@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz#930b1546164d4ad5937d5540e711d4d38d4cad2e" + integrity sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w== + +jest-regex-util@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-27.5.1.tgz#4da143f7e9fd1e542d4aa69617b38e4a78365b95" + integrity sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg== + +jest-regex-util@^28.0.0: + version "28.0.2" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-28.0.2.tgz#afdc377a3b25fb6e80825adcf76c854e5bf47ead" + integrity sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw== + +jest-resolve-dependencies@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz#d811ecc8305e731cc86dd79741ee98fed06f1da8" + integrity sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg== + dependencies: + "@jest/types" "^27.5.1" + jest-regex-util "^27.5.1" + jest-snapshot "^27.5.1" + +jest-resolve@^27.4.2, jest-resolve@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-27.5.1.tgz#a2f1c5a0796ec18fe9eb1536ac3814c23617b384" + integrity sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw== + dependencies: + "@jest/types" "^27.5.1" chalk "^4.0.0" - graceful-fs "^4.2.4" + graceful-fs "^4.2.9" + jest-haste-map "^27.5.1" jest-pnp-resolver "^1.2.2" - jest-util "^26.6.2" - read-pkg-up "^7.0.1" - resolve "^1.18.1" + jest-util "^27.5.1" + jest-validate "^27.5.1" + resolve "^1.20.0" + resolve.exports "^1.1.0" slash "^3.0.0" -jest-runner@^26.6.0, jest-runner@^26.6.3: - version "26.6.3" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-26.6.3.tgz#2d1fed3d46e10f233fd1dbd3bfaa3fe8924be159" - integrity sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ== +jest-runner@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-27.5.1.tgz#071b27c1fa30d90540805c5645a0ec167c7b62e5" + integrity sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ== dependencies: - "@jest/console" "^26.6.2" - "@jest/environment" "^26.6.2" - "@jest/test-result" "^26.6.2" - "@jest/types" "^26.6.2" + "@jest/console" "^27.5.1" + "@jest/environment" "^27.5.1" + "@jest/test-result" "^27.5.1" + "@jest/transform" "^27.5.1" + "@jest/types" "^27.5.1" "@types/node" "*" chalk "^4.0.0" - emittery "^0.7.1" - exit "^0.1.2" - graceful-fs "^4.2.4" - jest-config "^26.6.3" - jest-docblock "^26.0.0" - jest-haste-map "^26.6.2" - jest-leak-detector "^26.6.2" - jest-message-util "^26.6.2" - jest-resolve "^26.6.2" - jest-runtime "^26.6.3" - jest-util "^26.6.2" - jest-worker "^26.6.2" + emittery "^0.8.1" + graceful-fs "^4.2.9" + jest-docblock "^27.5.1" + jest-environment-jsdom "^27.5.1" + jest-environment-node "^27.5.1" + jest-haste-map "^27.5.1" + jest-leak-detector "^27.5.1" + jest-message-util "^27.5.1" + jest-resolve "^27.5.1" + jest-runtime "^27.5.1" + jest-util "^27.5.1" + jest-worker "^27.5.1" source-map-support "^0.5.6" - throat "^5.0.0" - -jest-runtime@^26.6.0, jest-runtime@^26.6.3: - version "26.6.3" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-26.6.3.tgz#4f64efbcfac398331b74b4b3c82d27d401b8fa2b" - integrity sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw== - dependencies: - "@jest/console" "^26.6.2" - "@jest/environment" "^26.6.2" - "@jest/fake-timers" "^26.6.2" - "@jest/globals" "^26.6.2" - "@jest/source-map" "^26.6.2" - "@jest/test-result" "^26.6.2" - "@jest/transform" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/yargs" "^15.0.0" + throat "^6.0.1" + +jest-runtime@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-27.5.1.tgz#4896003d7a334f7e8e4a53ba93fb9bcd3db0a1af" + integrity sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A== + dependencies: + "@jest/environment" "^27.5.1" + "@jest/fake-timers" "^27.5.1" + "@jest/globals" "^27.5.1" + "@jest/source-map" "^27.5.1" + "@jest/test-result" "^27.5.1" + "@jest/transform" "^27.5.1" + "@jest/types" "^27.5.1" chalk "^4.0.0" - cjs-module-lexer "^0.6.0" + cjs-module-lexer "^1.0.0" collect-v8-coverage "^1.0.0" - exit "^0.1.2" + execa "^5.0.0" glob "^7.1.3" - graceful-fs "^4.2.4" - jest-config "^26.6.3" - jest-haste-map "^26.6.2" - jest-message-util "^26.6.2" - jest-mock "^26.6.2" - jest-regex-util "^26.0.0" - jest-resolve "^26.6.2" - jest-snapshot "^26.6.2" - jest-util "^26.6.2" - jest-validate "^26.6.2" + graceful-fs "^4.2.9" + jest-haste-map "^27.5.1" + jest-message-util "^27.5.1" + jest-mock "^27.5.1" + jest-regex-util "^27.5.1" + jest-resolve "^27.5.1" + jest-snapshot "^27.5.1" + jest-util "^27.5.1" slash "^3.0.0" strip-bom "^4.0.0" - yargs "^15.4.1" -jest-serializer@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-26.6.2.tgz#d139aafd46957d3a448f3a6cdabe2919ba0742d1" - integrity sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g== +jest-serializer@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-27.5.1.tgz#81438410a30ea66fd57ff730835123dea1fb1f64" + integrity sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w== dependencies: "@types/node" "*" - graceful-fs "^4.2.4" + graceful-fs "^4.2.9" -jest-snapshot@^26.6.0, jest-snapshot@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-26.6.2.tgz#f3b0af1acb223316850bd14e1beea9837fb39c84" - integrity sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og== +jest-snapshot@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-27.5.1.tgz#b668d50d23d38054a51b42c4039cab59ae6eb6a1" + integrity sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA== dependencies: + "@babel/core" "^7.7.2" + "@babel/generator" "^7.7.2" + "@babel/plugin-syntax-typescript" "^7.7.2" + "@babel/traverse" "^7.7.2" "@babel/types" "^7.0.0" - "@jest/types" "^26.6.2" + "@jest/transform" "^27.5.1" + "@jest/types" "^27.5.1" "@types/babel__traverse" "^7.0.4" - "@types/prettier" "^2.0.0" + "@types/prettier" "^2.1.5" + babel-preset-current-node-syntax "^1.0.0" chalk "^4.0.0" - expect "^26.6.2" - graceful-fs "^4.2.4" - jest-diff "^26.6.2" - jest-get-type "^26.3.0" - jest-haste-map "^26.6.2" - jest-matcher-utils "^26.6.2" - jest-message-util "^26.6.2" - jest-resolve "^26.6.2" + expect "^27.5.1" + graceful-fs "^4.2.9" + jest-diff "^27.5.1" + jest-get-type "^27.5.1" + jest-haste-map "^27.5.1" + jest-matcher-utils "^27.5.1" + jest-message-util "^27.5.1" + jest-util "^27.5.1" natural-compare "^1.4.0" - pretty-format "^26.6.2" + pretty-format "^27.5.1" semver "^7.3.2" -jest-util@^26.6.0, jest-util@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-26.6.2.tgz#907535dbe4d5a6cb4c47ac9b926f6af29576cbc1" - integrity sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q== +jest-util@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-27.5.1.tgz#3ba9771e8e31a0b85da48fe0b0891fb86c01c2f9" + integrity sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw== dependencies: - "@jest/types" "^26.6.2" + "@jest/types" "^27.5.1" "@types/node" "*" chalk "^4.0.0" - graceful-fs "^4.2.4" - is-ci "^2.0.0" - micromatch "^4.0.2" + ci-info "^3.2.0" + graceful-fs "^4.2.9" + picomatch "^2.2.3" -jest-validate@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-26.6.2.tgz#23d380971587150467342911c3d7b4ac57ab20ec" - integrity sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ== +jest-util@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-28.1.3.tgz#f4f932aa0074f0679943220ff9cbba7e497028b0" + integrity sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ== dependencies: - "@jest/types" "^26.6.2" - camelcase "^6.0.0" + "@jest/types" "^28.1.3" + "@types/node" "*" chalk "^4.0.0" - jest-get-type "^26.3.0" + ci-info "^3.2.0" + graceful-fs "^4.2.9" + picomatch "^2.2.3" + +jest-util@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.7.0.tgz#23c2b62bfb22be82b44de98055802ff3710fc0bc" + integrity sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA== + dependencies: + "@jest/types" "^29.6.3" + "@types/node" "*" + chalk "^4.0.0" + ci-info "^3.2.0" + graceful-fs "^4.2.9" + picomatch "^2.2.3" + +jest-validate@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-27.5.1.tgz#9197d54dc0bdb52260b8db40b46ae668e04df067" + integrity sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ== + dependencies: + "@jest/types" "^27.5.1" + camelcase "^6.2.0" + chalk "^4.0.0" + jest-get-type "^27.5.1" leven "^3.1.0" - pretty-format "^26.6.2" + pretty-format "^27.5.1" -jest-watch-typeahead@0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/jest-watch-typeahead/-/jest-watch-typeahead-0.6.1.tgz#45221b86bb6710b7e97baaa1640ae24a07785e63" - integrity sha512-ITVnHhj3Jd/QkqQcTqZfRgjfyRhDFM/auzgVo2RKvSwi18YMvh0WvXDJFoFED6c7jd/5jxtu4kSOb9PTu2cPVg== +jest-watch-typeahead@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/jest-watch-typeahead/-/jest-watch-typeahead-1.1.0.tgz#b4a6826dfb9c9420da2f7bc900de59dad11266a9" + integrity sha512-Va5nLSJTN7YFtC2jd+7wsoe1pNe5K4ShLux/E5iHEwlB9AxaxmggY7to9KUqKojhaJw3aXqt5WAb4jGPOolpEw== dependencies: ansi-escapes "^4.3.1" chalk "^4.0.0" - jest-regex-util "^26.0.0" - jest-watcher "^26.3.0" - slash "^3.0.0" + jest-regex-util "^28.0.0" + jest-watcher "^28.0.0" + slash "^4.0.0" + string-length "^5.0.1" + strip-ansi "^7.0.1" + +jest-watcher@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-27.5.1.tgz#71bd85fb9bde3a2c2ec4dc353437971c43c642a2" + integrity sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw== + dependencies: + "@jest/test-result" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + jest-util "^27.5.1" string-length "^4.0.1" - strip-ansi "^6.0.0" -jest-watcher@^26.3.0, jest-watcher@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-26.6.2.tgz#a5b683b8f9d68dbcb1d7dae32172d2cca0592975" - integrity sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ== +jest-watcher@^28.0.0: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-28.1.3.tgz#c6023a59ba2255e3b4c57179fc94164b3e73abd4" + integrity sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g== dependencies: - "@jest/test-result" "^26.6.2" - "@jest/types" "^26.6.2" + "@jest/test-result" "^28.1.3" + "@jest/types" "^28.1.3" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" - jest-util "^26.6.2" + emittery "^0.10.2" + jest-util "^28.1.3" string-length "^4.0.1" -jest-worker@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.9.0.tgz#5dbfdb5b2d322e98567898238a9697bcce67b3e5" - integrity sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw== - dependencies: - merge-stream "^2.0.0" - supports-color "^6.1.0" - -jest-worker@^26.5.0, jest-worker@^26.6.2: +jest-worker@^26.2.1: version "26.6.2" resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== @@ -9501,39 +8878,43 @@ jest-worker@^26.5.0, jest-worker@^26.6.2: merge-stream "^2.0.0" supports-color "^7.0.0" -jest-worker@^27.3.1: - version "27.4.6" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.4.6.tgz#5d2d93db419566cb680752ca0792780e71b3273e" - integrity sha512-gHWJF/6Xi5CTG5QCvROr6GcmpIqNYpDJyc8A1h/DyXqH1tD6SnRCM0d3U5msV31D2LB/U+E0M+W4oyvKV44oNw== +jest-worker@^27.0.2, jest-worker@^27.4.5, jest-worker@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" + integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^8.0.0" + +jest-worker@^28.0.2: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-28.1.3.tgz#7e3c4ce3fa23d1bb6accb169e7f396f98ed4bb98" + integrity sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g== dependencies: "@types/node" "*" merge-stream "^2.0.0" supports-color "^8.0.0" -jest@26.6.0: - version "26.6.0" - resolved "https://registry.yarnpkg.com/jest/-/jest-26.6.0.tgz#546b25a1d8c888569dbbe93cae131748086a4a25" - integrity sha512-jxTmrvuecVISvKFFhOkjsWRZV7sFqdSUAd1ajOKY+/QE/aLBVstsJ/dX8GczLzwiT6ZEwwmZqtCUHLHHQVzcfA== +jest@^27.4.3: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest/-/jest-27.5.1.tgz#dadf33ba70a779be7a6fc33015843b51494f63fc" + integrity sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ== dependencies: - "@jest/core" "^26.6.0" + "@jest/core" "^27.5.1" import-local "^3.0.2" - jest-cli "^26.6.0" + jest-cli "^27.5.1" -js-base64@^2.1.8: - version "2.6.4" - resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.6.4.tgz#f4e686c5de1ea1f867dbcad3d46d969428df98c4" - integrity sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ== +jiti@^1.21.0: + version "1.21.0" + resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.0.tgz#7c97f8fe045724e136a397f7340475244156105d" + integrity sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q== js-sha256@0.9.0: version "0.9.0" resolved "https://registry.yarnpkg.com/js-sha256/-/js-sha256-0.9.0.tgz#0b89ac166583e91ef9123644bd3c5334ce9d0966" integrity sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA== -js-sha3@0.5.7: - version "0.5.7" - resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.5.7.tgz#0d4ffd8002d5333aabaf4a23eed2f6374c9f28e7" - integrity sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc= - js-sha3@0.8.0: version "0.8.0" resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840" @@ -9544,11 +8925,6 @@ js-sha3@0.8.0: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-tokens@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" - integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= - js-yaml@^3.13.1: version "3.14.1" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" @@ -9557,12 +8933,14 @@ js-yaml@^3.13.1: argparse "^1.0.7" esprima "^4.0.0" -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" -jsdom@^16.4.0: +jsdom@^16.6.0: version "16.7.0" resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.7.0.tgz#918ae71965424b197c819f8183a754e18977b710" integrity sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw== @@ -9595,11 +8973,6 @@ jsdom@^16.4.0: ws "^7.4.6" xml-name-validator "^3.0.0" -jsesc@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" - integrity sha1-RsP+yMGJKxKwgz25vHYiF226s0s= - jsesc@^2.5.1: version "2.5.2" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" @@ -9608,14 +8981,14 @@ jsesc@^2.5.1: jsesc@~0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= + integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== -json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" - integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== -json-parse-even-better-errors@^2.3.0: +json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== @@ -9628,37 +9001,18 @@ json-rpc-engine@6.1.0, json-rpc-engine@^6.1.0: "@metamask/safe-event-emitter" "^2.0.0" eth-rpc-errors "^4.0.2" -json-rpc-engine@^3.4.0, json-rpc-engine@^3.6.0: - version "3.8.0" - resolved "https://registry.yarnpkg.com/json-rpc-engine/-/json-rpc-engine-3.8.0.tgz#9d4ff447241792e1d0a232f6ef927302bb0c62a9" - integrity sha512-6QNcvm2gFuuK4TKU1uwfH0Qd/cOSb9c1lls0gbnIhciktIUQJwz6NQNAW4B1KiGPenv7IKu97V222Yo1bNhGuA== - dependencies: - async "^2.0.1" - babel-preset-env "^1.7.0" - babelify "^7.3.0" - json-rpc-error "^2.0.0" - promise-to-callback "^1.0.0" - safe-event-emitter "^1.0.1" - -json-rpc-engine@^5.1.3, json-rpc-engine@^5.3.0: +json-rpc-engine@^5.3.0: version "5.4.0" resolved "https://registry.yarnpkg.com/json-rpc-engine/-/json-rpc-engine-5.4.0.tgz#75758609d849e1dba1e09021ae473f3ab63161e5" integrity sha512-rAffKbPoNDjuRnXkecTjnsE3xLLrb00rEkdgalINhaYVYIxDwWtvYBr9UFbhTvPB1B2qUOLoFd/cV6f4Q7mh7g== dependencies: eth-rpc-errors "^3.0.0" - safe-event-emitter "^1.0.1" - -json-rpc-error@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/json-rpc-error/-/json-rpc-error-2.0.0.tgz#a7af9c202838b5e905c7250e547f1aff77258a02" - integrity sha1-p6+cICg4tekFxyUOVH8a/3cligI= - dependencies: - inherits "^2.0.1" + safe-event-emitter "^1.0.1" json-rpc-random-id@^1.0.0, json-rpc-random-id@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json-rpc-random-id/-/json-rpc-random-id-1.0.1.tgz#ba49d96aded1444dbb8da3d203748acbbcdec8c8" - integrity sha1-uknZat7RRE27jaPSA3SKy7zeyMg= + integrity sha512-RJ9YYNCkhVDBuP4zN5BBtYAzEl03yq/jIIsyif0JY9qyJuQQZNeDK7anAPKKlyEtLSj2s8h6hNh2F8zO5q7ScA== json-schema-traverse@^0.4.1: version "0.4.1" @@ -9670,7 +9024,7 @@ json-schema-traverse@^1.0.0: resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== -json-schema@0.4.0: +json-schema@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== @@ -9678,50 +9032,29 @@ json-schema@0.4.0: json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= + integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== json-stable-stringify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" - integrity sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8= + version "1.1.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.1.1.tgz#52d4361b47d49168bcc4e564189a42e5a7439454" + integrity sha512-SU/971Kt5qVQfJpyDveVhQ/vya+5hvrjClFOcr8c0Fq5aODJjMwutrOfCU+eCnVD5gpx1Q3fEqkyom77zH1iIg== dependencies: - jsonify "~0.0.0" - -json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= - -json3@^3.3.2: - version "3.3.3" - resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" - integrity sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA== - -json5@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" - integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE= + call-bind "^1.0.5" + isarray "^2.0.5" + jsonify "^0.0.1" + object-keys "^1.1.1" -json5@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" - integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== +json5@^1.0.1, json5@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" + integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== dependencies: minimist "^1.2.0" -json5@^2.1.2: - version "2.2.0" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" - integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== - dependencies: - minimist "^1.2.5" - -jsonfile@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" - integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= - optionalDependencies: - graceful-fs "^4.1.6" +json5@^2.1.2, json5@^2.2.0, json5@^2.2.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== jsonfile@^6.0.1: version "6.1.0" @@ -9732,30 +9065,36 @@ jsonfile@^6.0.1: optionalDependencies: graceful-fs "^4.1.6" -jsonify@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" - integrity sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM= +jsonify@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.1.tgz#2aa3111dae3d34a0f151c63f3a45d995d9420978" + integrity sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg== -jsprim@^1.2.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.2.tgz#712c65533a15c878ba59e9ed5f0e26d5b77c5feb" - integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw== +jsonpath@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/jsonpath/-/jsonpath-1.1.1.tgz#0ca1ed8fb65bb3309248cc9d5466d12d5b0b9901" + integrity sha512-l6Cg7jRpixfbgoWgkrl77dgEj8RPvND0wMH6TwQmi9Qs4TFfS9u5cUFnbeKTwj5ga5Y3BTGGNI28k117LJ009w== dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.4.0" - verror "1.10.0" + esprima "1.2.2" + static-eval "2.0.2" + underscore "1.12.1" -"jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.2.1.tgz#720b97bfe7d901b927d87c3773637ae8ea48781b" - integrity sha512-uP5vu8xfy2F9A6LGC22KO7e2/vGTS1MhP+18f++ZNlf0Ohaxbc9nIEwHAsejlJKyzfZzU5UIhe5ItYkitcZnZA== +jsonpointer@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-5.0.1.tgz#2110e0af0900fd37467b5907ecd13a7884a1b559" + integrity sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ== + +"jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.3.5: + version "3.3.5" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz#4766bd05a8e2a11af222becd19e15575e52a853a" + integrity sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ== dependencies: - array-includes "^3.1.3" - object.assign "^4.1.2" + array-includes "^3.1.6" + array.prototype.flat "^1.3.1" + object.assign "^4.1.4" + object.values "^1.1.6" -keccak256@^1.0.0: +keccak256@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/keccak256/-/keccak256-1.0.6.tgz#dd32fb771558fed51ce4e45a035ae7515573da58" integrity sha512-8GLiM01PkdJVGUhR1e6M/AvWnSqYS0HaERI+K/QtStGDGlSTx2B1zTqZk4Zlqu5TxHJNTxWAdP9Y+WI50OApUw== @@ -9764,55 +9103,28 @@ keccak256@^1.0.0: buffer "^6.0.3" keccak "^3.0.2" -keccak@^1.0.2: - version "1.4.0" - resolved "https://registry.yarnpkg.com/keccak/-/keccak-1.4.0.tgz#572f8a6dbee8e7b3aa421550f9e6408ca2186f80" - integrity sha512-eZVaCpblK5formjPjeTBik7TAg+pqnDrMHIffSvi9Lh7PQgM1+hSzakUeZFCk9DVVG0dacZJuaz2ntwlzZUIBw== - dependencies: - bindings "^1.2.1" - inherits "^2.0.3" - nan "^2.2.1" - safe-buffer "^5.1.0" - -keccak@^3.0.0, keccak@^3.0.1, keccak@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.2.tgz#4c2c6e8c54e04f2670ee49fa734eb9da152206e0" - integrity sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ== +keccak@^3.0.0, keccak@^3.0.1, keccak@^3.0.2, keccak@^3.0.3: + version "3.0.4" + resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.4.tgz#edc09b89e633c0549da444432ecf062ffadee86d" + integrity sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q== dependencies: node-addon-api "^2.0.0" node-gyp-build "^4.2.0" readable-stream "^3.6.0" +keyv@^4.5.3: + version "4.5.4" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" + integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== + dependencies: + json-buffer "3.0.1" + keyvaluestorage-interface@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/keyvaluestorage-interface/-/keyvaluestorage-interface-1.0.0.tgz#13ebdf71f5284ad54be94bd1ad9ed79adad515ff" integrity sha512-8t6Q3TclQ4uZynJY9IGr2+SsIGwK9JHcO6ootkHCGA0CrQCRy+VkouYNO2xicET6b9al7QKzpebNow+gkpCL8g== -killable@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892" - integrity sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg== - -kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" - integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= - dependencies: - is-buffer "^1.1.5" - -kind-of@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" - integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= - dependencies: - is-buffer "^1.1.5" - -kind-of@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" - integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== - -kind-of@^6.0.0, kind-of@^6.0.2: +kind-of@^6.0.2: version "6.0.3" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== @@ -9822,80 +9134,30 @@ kleur@^3.0.3: resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== -klona@^2.0.4: - version "2.0.5" - resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.5.tgz#d166574d90076395d9963aa7a928fabb8d76afbc" - integrity sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ== - -language-subtag-registry@~0.3.2: - version "0.3.21" - resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz#04ac218bea46f04cb039084602c6da9e788dd45a" - integrity sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg== - -language-tags@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.5.tgz#d321dbc4da30ba8bf3024e040fa5c14661f9193a" - integrity sha1-0yHbxNowuovzAk4ED6XBRmH5GTo= - dependencies: - language-subtag-registry "~0.3.2" - -last-call-webpack-plugin@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz#9742df0e10e3cf46e5c0381c2de90d3a7a2d7555" - integrity sha512-7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w== - dependencies: - lodash "^4.17.5" - webpack-sources "^1.1.0" - -level-codec@~7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/level-codec/-/level-codec-7.0.1.tgz#341f22f907ce0f16763f24bddd681e395a0fb8a7" - integrity sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ== +klona@^2.0.4, klona@^2.0.5: + version "2.0.6" + resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.6.tgz#85bffbf819c03b2f53270412420a4555ef882e22" + integrity sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA== -level-errors@^1.0.3: - version "1.1.2" - resolved "https://registry.yarnpkg.com/level-errors/-/level-errors-1.1.2.tgz#4399c2f3d3ab87d0625f7e3676e2d807deff404d" - integrity sha512-Sw/IJwWbPKF5Ai4Wz60B52yj0zYeqzObLh8k1Tk88jVmD51cJSKWSYpRyhVIvFzZdvsPqlH5wfhp/yxdsaQH4w== - dependencies: - errno "~0.1.1" +language-subtag-registry@^0.3.20: + version "0.3.22" + resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz#2e1500861b2e457eba7e7ae86877cbd08fa1fd1d" + integrity sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w== -level-errors@~1.0.3: - version "1.0.5" - resolved "https://registry.yarnpkg.com/level-errors/-/level-errors-1.0.5.tgz#83dbfb12f0b8a2516bdc9a31c4876038e227b859" - integrity sha512-/cLUpQduF6bNrWuAC4pwtUKA5t669pCsCi2XbmojG2tFeOr9j6ShtdDCtFFQO1DRt+EVZhx9gPzP9G2bUaG4ig== +language-tags@^1.0.9: + version "1.0.9" + resolved "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.9.tgz#1ffdcd0ec0fafb4b1be7f8b11f306ad0f9c08777" + integrity sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA== dependencies: - errno "~0.1.1" + language-subtag-registry "^0.3.20" -level-iterator-stream@~1.3.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz#e43b78b1a8143e6fa97a4f485eb8ea530352f2ed" - integrity sha1-5Dt4sagUPm+pek9IXrjqUwNS8u0= +launch-editor@^2.6.0: + version "2.6.1" + resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.6.1.tgz#f259c9ef95cbc9425620bbbd14b468fcdb4ffe3c" + integrity sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw== dependencies: - inherits "^2.0.1" - level-errors "^1.0.3" - readable-stream "^1.0.33" - xtend "^4.0.0" - -level-ws@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/level-ws/-/level-ws-0.0.0.tgz#372e512177924a00424b0b43aef2bb42496d228b" - integrity sha1-Ny5RIXeSSgBCSwtDrvK7QkltIos= - dependencies: - readable-stream "~1.0.15" - xtend "~2.1.1" - -levelup@^1.2.1: - version "1.3.9" - resolved "https://registry.yarnpkg.com/levelup/-/levelup-1.3.9.tgz#2dbcae845b2bb2b6bea84df334c475533bbd82ab" - integrity sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ== - dependencies: - deferred-leveldown "~1.2.1" - level-codec "~7.0.0" - level-errors "~1.0.3" - level-iterator-stream "~1.3.0" - prr "~1.0.1" - semver "~5.4.1" - xtend "~4.0.0" + picocolors "^1.0.0" + shell-quote "^1.8.1" leven@^3.1.0: version "3.1.0" @@ -9913,85 +9175,127 @@ levn@^0.4.1: levn@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= + integrity sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA== dependencies: prelude-ls "~1.1.2" type-check "~0.3.2" +lilconfig@^2.0.3, lilconfig@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" + integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== + +lilconfig@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.1.1.tgz#9d8a246fa753106cfc205fd2d77042faca56e5e3" + integrity sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ== + lines-and-columns@^1.1.6: version "1.2.4" resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== -load-json-file@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" - integrity sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA= +listhen@^1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/listhen/-/listhen-1.7.2.tgz#66b81740692269d5d8cafdc475020f2fc51afbae" + integrity sha512-7/HamOm5YD9Wb7CFgAZkKgVPA96WwhcTQoqtm2VTZGVbVVn3IWKRBTgrU7cchA3Q8k9iCsG8Osoi9GX4JsGM9g== + dependencies: + "@parcel/watcher" "^2.4.1" + "@parcel/watcher-wasm" "^2.4.1" + citty "^0.1.6" + clipboardy "^4.0.0" + consola "^3.2.3" + crossws "^0.2.0" + defu "^6.1.4" + get-port-please "^3.1.2" + h3 "^1.10.2" + http-shutdown "^1.2.2" + jiti "^1.21.0" + mlly "^1.6.1" + node-forge "^1.3.1" + pathe "^1.1.2" + std-env "^3.7.0" + ufo "^1.4.0" + untun "^0.1.3" + uqr "^0.1.2" + +lit-element@^3.3.0: + version "3.3.3" + resolved "https://registry.yarnpkg.com/lit-element/-/lit-element-3.3.3.tgz#10bc19702b96ef5416cf7a70177255bfb17b3209" + integrity sha512-XbeRxmTHubXENkV4h8RIPyr8lXc+Ff28rkcQzw3G6up2xg5E8Zu1IgOWIwBLEQsu3cOVFqdYwiVi0hv0SlpqUA== dependencies: - graceful-fs "^4.1.2" - parse-json "^2.2.0" - pify "^2.0.0" - pinkie-promise "^2.0.0" - strip-bom "^2.0.0" + "@lit-labs/ssr-dom-shim" "^1.1.0" + "@lit/reactive-element" "^1.3.0" + lit-html "^2.8.0" -load-json-file@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" - integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs= +lit-element@^4.0.0: + version "4.0.5" + resolved "https://registry.yarnpkg.com/lit-element/-/lit-element-4.0.5.tgz#f20cd8a6231eaf5358f7a6877ca6ea7628fa2015" + integrity sha512-iTWskWZEtn9SyEf4aBG6rKT8GABZMrTWop1+jopsEOgEcugcXJGKuX5bEbkq9qfzY+XB4MAgCaSPwnNpdsNQ3Q== dependencies: - graceful-fs "^4.1.2" - parse-json "^4.0.0" - pify "^3.0.0" - strip-bom "^3.0.0" + "@lit-labs/ssr-dom-shim" "^1.2.0" + "@lit/reactive-element" "^2.0.4" + lit-html "^3.1.2" -loader-runner@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" - integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== +lit-html@^2.8.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/lit-html/-/lit-html-2.8.0.tgz#96456a4bb4ee717b9a7d2f94562a16509d39bffa" + integrity sha512-o9t+MQM3P4y7M7yNzqAyjp7z+mQGa4NS4CxiyLqFPyFWyc4O+nodLrkrxSaCTrla6M5YOLaT3RpbbqjszB5g3Q== + dependencies: + "@types/trusted-types" "^2.0.2" -loader-utils@1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" - integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA== +lit-html@^3.1.0, lit-html@^3.1.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/lit-html/-/lit-html-3.1.3.tgz#ae2e9fee0258d0a1b5d7b86c87da51117e4f911b" + integrity sha512-FwIbqDD8O/8lM4vUZ4KvQZjPPNx7V1VhT7vmRB8RBAO0AU6wuTVdoXiu2CivVjEGdugvcbPNBLtPE1y0ifplHA== dependencies: - big.js "^5.2.2" - emojis-list "^2.0.0" - json5 "^1.0.1" + "@types/trusted-types" "^2.0.2" -loader-utils@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.0.tgz#e4cace5b816d425a166b5f097e10cd12b36064b0" - integrity sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ== +lit@2.8.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/lit/-/lit-2.8.0.tgz#4d838ae03059bf9cafa06e5c61d8acc0081e974e" + integrity sha512-4Sc3OFX9QHOJaHbmTMk28SYgVxLN3ePDjg7hofEft2zWlehFL3LiAuapWc4U/kYwMYJSh2hTCPZ6/LIC7ii0MA== dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^2.1.2" + "@lit/reactive-element" "^1.6.0" + lit-element "^3.3.0" + lit-html "^2.8.0" -loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" - integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== +lit@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/lit/-/lit-3.1.0.tgz#76429b85dc1f5169fed499a0f7e89e2e619010c9" + integrity sha512-rzo/hmUqX8zmOdamDAeydfjsGXbbdtAFqMhmocnh2j9aDYqbu0fjXygjCa0T99Od9VQ/2itwaGrjZz/ZELVl7w== + dependencies: + "@lit/reactive-element" "^2.0.0" + lit-element "^4.0.0" + lit-html "^3.1.0" + +loader-runner@^4.2.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1" + integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== + +loader-utils@^1.2.3: + version "1.4.2" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.2.tgz#29a957f3a63973883eb684f10ffd3d151fec01a3" + integrity sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg== dependencies: big.js "^5.2.2" emojis-list "^3.0.0" json5 "^1.0.1" -loader-utils@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.2.tgz#d6e3b4fb81870721ae4e0868ab11dd638368c129" - integrity sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A== +loader-utils@^2.0.0, loader-utils@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.4.tgz#8b5cb38b5c34a9a018ee1fc0e6a066d1dfcc528c" + integrity sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw== dependencies: big.js "^5.2.2" emojis-list "^3.0.0" json5 "^2.1.2" -locate-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" - integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= - dependencies: - p-locate "^2.0.0" - path-exists "^3.0.0" +loader-utils@^3.2.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-3.2.1.tgz#4fb104b599daafd82ef3e1a41fb9265f87e1f576" + integrity sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw== locate-path@^3.0.0: version "3.0.0" @@ -10008,61 +9312,48 @@ locate-path@^5.0.0: dependencies: p-locate "^4.1.0" -lodash._reinterpolate@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" - integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0= +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" lodash.debounce@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" - integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= + integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== + +lodash.isequal@4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" + integrity sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ== lodash.memoize@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" - integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= + integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== lodash.merge@^4.6.2: version "4.6.2" resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== -lodash.template@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab" - integrity sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A== - dependencies: - lodash._reinterpolate "^3.0.0" - lodash.templatesettings "^4.0.0" - -lodash.templatesettings@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz#e481310f049d3cf6d47e912ad09313b154f0fb33" - integrity sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ== - dependencies: - lodash._reinterpolate "^3.0.0" - -lodash.truncate@^4.4.2: - version "4.4.2" - resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" - integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM= +lodash.sortby@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" + integrity sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA== lodash.uniq@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" - integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= + integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== -"lodash@>=3.5 <5", lodash@^4.0.0, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.7.0, lodash@~4.17.10: +lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.7.0: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -loglevel@^1.6.8: - version "1.8.0" - resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.8.0.tgz#e7ec73a57e1e7b419cb6c6ac06bf050b67356114" - integrity sha512-G6A/nJLRgWOuuwdNuA6koovfEV1YpqqAG4pRUlFaz3jj2QNZ8M4vBqnVA+HBTmU/AMNUtlOsMmSpF6NyOjztbA== - loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1, loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" @@ -10070,14 +9361,6 @@ loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3 dependencies: js-tokens "^3.0.0 || ^4.0.0" -loud-rejection@^1.0.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" - integrity sha1-W0b4AUft7leIcPCG0Eghz5mOVR8= - dependencies: - currently-unhandled "^0.4.1" - signal-exit "^3.0.0" - lower-case@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" @@ -10085,13 +9368,10 @@ lower-case@^2.0.2: dependencies: tslib "^2.0.3" -lru-cache@^4.0.1: - version "4.1.5" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" - integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== - dependencies: - pseudomap "^1.0.2" - yallist "^2.1.2" +lru-cache@^10.2.0: + version "10.2.2" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.2.2.tgz#48206bc114c1252940c41b25b41af5b545aca878" + integrity sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ== lru-cache@^5.1.1: version "5.1.1" @@ -10100,49 +9380,38 @@ lru-cache@^5.1.1: dependencies: yallist "^3.0.2" -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - -ltgt@~2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ltgt/-/ltgt-2.2.1.tgz#f35ca91c493f7b73da0e07495304f17b31f87ee5" - integrity sha1-81ypHEk/e3PaDgdJUwTxezH4fuU= - lz-string@^1.4.4: - version "1.4.4" - resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.4.4.tgz#c0d8eaf36059f705796e1e344811cf4c498d3a26" - integrity sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY= + version "1.5.0" + resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.5.0.tgz#c1ab50f77887b712621201ba9fd4e3a6ed099941" + integrity sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ== magic-string@^0.25.0, magic-string@^0.25.7: - version "0.25.7" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051" - integrity sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA== + version "0.25.9" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.9.tgz#de7f9faf91ef8a1c91d02c2e5314c8277dbcdd1c" + integrity sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ== dependencies: - sourcemap-codec "^1.4.4" + sourcemap-codec "^1.4.8" -make-dir@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" - integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== +magic-string@^0.30.10: + version "0.30.10" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.10.tgz#123d9c41a0cb5640c892b041d4cfb3bd0aa4b39e" + integrity sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ== dependencies: - pify "^4.0.1" - semver "^5.6.0" + "@jridgewell/sourcemap-codec" "^1.4.15" -make-dir@^3.0.0, make-dir@^3.0.2: +make-dir@^3.0.2, make-dir@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== dependencies: semver "^6.0.0" -make-error@^1.1.1: - version "1.3.6" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" - integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== +make-dir@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-4.0.0.tgz#c3c2307a771277cd9638305f915c29ae741b614e" + integrity sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw== + dependencies: + semver "^7.5.3" makeerror@1.0.12: version "1.0.12" @@ -10151,27 +9420,12 @@ makeerror@1.0.12: dependencies: tmpl "1.0.5" -map-cache@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" - integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= - -map-obj@^1.0.0, map-obj@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" - integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= - -map-obj@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-2.0.0.tgz#a65cd29087a92598b8791257a523e021222ac1f9" - integrity sha1-plzSkIepJZi4eRJXpSPgISIqwfk= - -map-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" - integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= +matchmediaquery@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/matchmediaquery/-/matchmediaquery-0.3.1.tgz#8247edc47e499ebb7c58f62a9ff9ccf5b815c6d7" + integrity sha512-Hlk20WQHRIm9EE9luN1kjRjYXAQToHOIAHPJn9buxBwuhfTHoKUcX+lXBbxc85DVQfXYbEQ4HcwQdd128E3qHQ== dependencies: - object-visit "^1.0.0" + css-mediaquery "^0.1.2" md5.js@^1.3.4: version "1.3.5" @@ -10195,71 +9449,19 @@ mdn-data@2.0.4: media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= - -memdown@^1.0.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/memdown/-/memdown-1.4.1.tgz#b4e4e192174664ffbae41361aa500f3119efe215" - integrity sha1-tOThkhdGZP+65BNhqlAPMRnv4hU= - dependencies: - abstract-leveldown "~2.7.1" - functional-red-black-tree "^1.0.1" - immediate "^3.2.3" - inherits "~2.0.1" - ltgt "~2.2.0" - safe-buffer "~5.1.1" - -memory-fs@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" - integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= - dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" + integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== -memory-fs@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c" - integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA== +memfs@^3.1.2, memfs@^3.4.3: + version "3.6.0" + resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.6.0.tgz#d7a2110f86f79dd950a8b6df6d57bc984aa185f6" + integrity sha512-EGowvkkgbMcIChjMTMkESFDbZeSh8xZ7kNSF0hAiAN4Jh6jgHCRS0Ga/+C8y6Au+oqpezRHCfPsmJ2+DwAgiwQ== dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" - -meow@^3.7.0: - version "3.7.0" - resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" - integrity sha1-cstmi0JSKCkKu/qFaJJYcwioAfs= - dependencies: - camelcase-keys "^2.0.0" - decamelize "^1.1.2" - loud-rejection "^1.0.0" - map-obj "^1.0.1" - minimist "^1.1.3" - normalize-package-data "^2.3.4" - object-assign "^4.0.1" - read-pkg-up "^1.0.1" - redent "^1.0.0" - trim-newlines "^1.0.0" - -meow@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/meow/-/meow-5.0.0.tgz#dfc73d63a9afc714a5e371760eb5c88b91078aa4" - integrity sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig== - dependencies: - camelcase-keys "^4.0.0" - decamelize-keys "^1.0.0" - loud-rejection "^1.0.0" - minimist-options "^3.0.1" - normalize-package-data "^2.3.4" - read-pkg-up "^3.0.0" - redent "^2.0.0" - trim-newlines "^2.0.0" - yargs-parser "^10.0.0" + fs-monkey "^1.0.4" merge-descriptors@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" - integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= + integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== merge-stream@^2.0.0: version "2.0.0" @@ -10271,247 +9473,156 @@ merge2@^1.3.0, merge2@^1.4.1: resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== -merkle-patricia-tree@^2.1.2, merkle-patricia-tree@^2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/merkle-patricia-tree/-/merkle-patricia-tree-2.3.2.tgz#982ca1b5a0fde00eed2f6aeed1f9152860b8208a" - integrity sha512-81PW5m8oz/pz3GvsAwbauj7Y00rqm81Tzad77tHBwU7pIAtN+TJnMSOJhxBKflSVYhptMMb9RskhqHqrSm1V+g== - dependencies: - async "^1.4.2" - ethereumjs-util "^5.0.0" - level-ws "0.0.0" - levelup "^1.2.1" - memdown "^1.0.0" - readable-stream "^2.0.0" - rlp "^2.0.0" - semaphore ">=1.0.1" +merkletreejs@^0.2.32: + version "0.2.32" + resolved "https://registry.yarnpkg.com/merkletreejs/-/merkletreejs-0.2.32.tgz#cf1c0760e2904e4a1cc269108d6009459fd06223" + integrity sha512-TostQBiwYRIwSE5++jGmacu3ODcKAgqb0Y/pnIohXS7sWxh1gCkSptbmF1a43faehRDpcHf7J/kv0Ml2D/zblQ== + dependencies: + bignumber.js "^9.0.1" + buffer-reverse "^1.0.1" + crypto-js "^3.1.9-1" + treeify "^1.1.0" + web3-utils "^1.3.4" mersenne-twister@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/mersenne-twister/-/mersenne-twister-1.1.0.tgz#f916618ee43d7179efcf641bec4531eb9670978a" - integrity sha1-+RZhjuQ9cXnvz2Qb7EUx65Zwl4o= + integrity sha512-mUYWsMKNrm4lfygPkL3OfGzOPTR2DBlTkBNHM//F6hGp8cLThY897crAlk3/Jo17LEOOjQUrNAx6DvgO77QJkA== methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= - -microevent.ts@~0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/microevent.ts/-/microevent.ts-0.1.1.tgz#70b09b83f43df5172d0205a63025bce0f7357fa0" - integrity sha512-jo1OfR4TaEwd5HOrt5+tAZ9mqT4jmpNAusXtyfNzqVm9uiSYFZlKM1wYL4oU7azZW/PxQW53wM0S6OR1JHNa2g== - -micromatch@^3.1.10, micromatch@^3.1.4: - version "3.1.10" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" - integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - braces "^2.3.1" - define-property "^2.0.2" - extend-shallow "^3.0.2" - extglob "^2.0.4" - fragment-cache "^0.2.1" - kind-of "^6.0.2" - nanomatch "^1.2.9" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.2" + integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== -micromatch@^4.0.2, micromatch@^4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" - integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== - dependencies: - braces "^3.0.1" - picomatch "^2.2.3" +micro-ftch@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/micro-ftch/-/micro-ftch-0.3.1.tgz#6cb83388de4c1f279a034fb0cf96dfc050853c5f" + integrity sha512-/0LLxhzP0tfiR5hcQebtudP56gUurs2CLkGarnCiB/OqEyUFQ6U3paQi/tgLv0hBJYt2rnr9MNpxz4fiiugstg== -miller-rabin@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" - integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== +micromatch@^4.0.2, micromatch@^4.0.4, micromatch@^4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== dependencies: - bn.js "^4.0.0" - brorand "^1.0.1" + braces "^3.0.2" + picomatch "^2.3.1" -mime-db@1.51.0, "mime-db@>= 1.43.0 < 2": - version "1.51.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.51.0.tgz#d9ff62451859b18342d960850dc3cfb77e63fb0c" - integrity sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g== +mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== -mime-types@^2.1.12, mime-types@^2.1.27, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: - version "2.1.34" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.34.tgz#5a712f9ec1503511a945803640fafe09d3793c24" - integrity sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A== +mime-types@^2.1.12, mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, mime-types@~2.1.24, mime-types@~2.1.34: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== dependencies: - mime-db "1.51.0" + mime-db "1.52.0" mime@1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== -mime@^2.4.4: - version "2.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367" - integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== +mime@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-3.0.0.tgz#b374550dca3a0c18443b0c950a6a58f1931cf7a7" + integrity sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A== mimic-fn@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== -mimic-response@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" - integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== - -min-document@^2.19.0: - version "2.19.0" - resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" - integrity sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU= - dependencies: - dom-walk "^0.1.0" +mimic-fn@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" + integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== min-indent@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== -mini-create-react-context@^0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/mini-create-react-context/-/mini-create-react-context-0.4.1.tgz#072171561bfdc922da08a60c2197a497cc2d1d5e" - integrity sha512-YWCYEmd5CQeHGSAKrYvXgmzzkrvssZcuuQDDeqkT+PziKGMgE+0MCCtcKbROzocGBG1meBLl2FotlRwf4gAzbQ== - dependencies: - "@babel/runtime" "^7.12.1" - tiny-warning "^1.0.3" - -mini-css-extract-plugin@0.11.3: - version "0.11.3" - resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.11.3.tgz#15b0910a7f32e62ffde4a7430cfefbd700724ea6" - integrity sha512-n9BA8LonkOkW1/zn+IbLPQmovsL0wMb9yx75fMJQZf2X1Zoec9yTZtyMePcyu19wPkmFbzZZA6fLTotpFhQsOA== +mini-css-extract-plugin@^2.4.5: + version "2.9.0" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.0.tgz#c73a1327ccf466f69026ac22a8e8fd707b78a235" + integrity sha512-Zs1YsZVfemekSZG+44vBsYTLQORkPMwnlv+aehcxK/NLKC+EGhDB39/YePYYqx/sTk6NnYpuqikhSn7+JIevTA== dependencies: - loader-utils "^1.1.0" - normalize-url "1.9.1" - schema-utils "^1.0.0" - webpack-sources "^1.1.0" + schema-utils "^4.0.0" + tapable "^2.2.1" minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== -minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: +minimalistic-crypto-utils@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= + integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== -minimatch@3.0.4, minimatch@^3.0.4, minimatch@~3.0.2: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== +minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: brace-expansion "^1.1.7" -minimist-options@^3.0.1: - version "3.0.2" - resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-3.0.2.tgz#fba4c8191339e13ecf4d61beb03f070103f3d954" - integrity sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ== - dependencies: - arrify "^1.0.1" - is-plain-obj "^1.1.0" - -minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5, minimist@~1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" - integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== - -minipass-collect@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" - integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== - dependencies: - minipass "^3.0.0" - -minipass-flush@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" - integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== - dependencies: - minipass "^3.0.0" - -minipass-pipeline@^1.2.2: - version "1.2.4" - resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" - integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== - dependencies: - minipass "^3.0.0" - -minipass@^3.0.0, minipass@^3.1.1: - version "3.1.6" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.6.tgz#3b8150aa688a711a1521af5e8779c1d3bb4f45ee" - integrity sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ== - dependencies: - yallist "^4.0.0" - -minizlib@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" - integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== - dependencies: - minipass "^3.0.0" - yallist "^4.0.0" - -mississippi@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" - integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA== +minimatch@^5.0.1: + version "5.1.6" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" + integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== dependencies: - concat-stream "^1.5.0" - duplexify "^3.4.2" - end-of-stream "^1.1.0" - flush-write-stream "^1.0.0" - from2 "^2.1.0" - parallel-transform "^1.1.0" - pump "^3.0.0" - pumpify "^1.3.3" - stream-each "^1.1.0" - through2 "^2.0.0" + brace-expansion "^2.0.1" -mixin-deep@^1.2.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" - integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== +minimatch@^9.0.1: + version "9.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.4.tgz#8e49c731d1749cbec05050ee5145147b32496a51" + integrity sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw== dependencies: - for-in "^1.0.2" - is-extendable "^1.0.1" + brace-expansion "^2.0.1" -"mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.5, mkdirp@~0.5.1: - version "0.5.5" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" - integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== - dependencies: - minimist "^1.2.5" +minimist@^1.2.0, minimist@^1.2.6: + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== -mkdirp@^1.0.3, mkdirp@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" - integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.0.4: + version "7.1.1" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.1.tgz#f7f85aff59aa22f110b20e27692465cf3bf89481" + integrity sha512-UZ7eQ+h8ywIRAW1hIEl2AqdwzJucU/Kp59+8kkZeSvafXhZjul247BvIJjEVFVeON6d7lM46XX1HXCduKAS8VA== -move-concurrently@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" - integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I= +mkdirp@~0.5.1: + version "0.5.6" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" + integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== dependencies: - aproba "^1.1.1" - copy-concurrently "^1.0.0" - fs-write-stream-atomic "^1.0.8" - mkdirp "^0.5.1" - rimraf "^2.5.4" - run-queue "^1.0.3" + minimist "^1.2.6" -mri@^1.1.5: +mlly@^1.6.1, mlly@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/mlly/-/mlly-1.7.0.tgz#587383ae40dda23cadb11c3c3cc972b277724271" + integrity sha512-U9SDaXGEREBYQgfejV97coK0UL1r+qnF2SyO9A3qcI8MzKnsIFKHNVEkrDyNncQTKQQumsasmeq84eNMdBfsNQ== + dependencies: + acorn "^8.11.3" + pathe "^1.1.2" + pkg-types "^1.1.0" + ufo "^1.5.3" + +motion@10.16.2: + version "10.16.2" + resolved "https://registry.yarnpkg.com/motion/-/motion-10.16.2.tgz#7dc173c6ad62210a7e9916caeeaf22c51e598d21" + integrity sha512-p+PurYqfUdcJZvtnmAqu5fJgV2kR0uLFQuBKtLeFVTrYEVllI99tiOTSefVNYuip9ELTEkepIIDftNdze76NAQ== + dependencies: + "@motionone/animation" "^10.15.1" + "@motionone/dom" "^10.16.2" + "@motionone/svelte" "^10.16.2" + "@motionone/types" "^10.15.1" + "@motionone/utils" "^10.15.1" + "@motionone/vue" "^10.16.2" + +mri@^1.1.5, mri@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b" integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== @@ -10519,7 +9630,7 @@ mri@^1.1.5: ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== ms@2.1.2: version "2.1.2" @@ -10531,19 +9642,19 @@ ms@2.1.3, ms@^2.1.1: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== -multicast-dns-service-types@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" - integrity sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE= - -multicast-dns@^6.0.1: - version "6.2.3" - resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229" - integrity sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g== +multicast-dns@^7.2.5: + version "7.2.5" + resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-7.2.5.tgz#77eb46057f4d7adbd16d9290fa7299f6fa64cced" + integrity sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg== dependencies: - dns-packet "^1.3.1" + dns-packet "^5.2.2" thunky "^1.0.2" +multiformats@^9.4.2: + version "9.9.0" + resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-9.9.0.tgz#c68354e7d21037a8f1f8833c8ccd68618e8f1d37" + integrity sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg== + multimatch@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-4.0.0.tgz#8c3c0f6e3e8449ada0af3dd29efb491a375191b3" @@ -10555,64 +9666,49 @@ multimatch@^4.0.0: arrify "^2.0.1" minimatch "^3.0.4" -nan@^2.12.1, nan@^2.13.2, nan@^2.14.0, nan@^2.2.1: - version "2.15.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee" - integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ== - -nanoid@^3.1.30: - version "3.1.31" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.31.tgz#f5b58a1ce1b7604da5f0605757840598d8974dc6" - integrity sha512-ZivnJm0o9bb13p2Ot5CpgC2rQdzB9Uxm/mFZweqm5eMViqOJe3PV6LU2E30SiLgheesmcPrjquqraoolONSA0A== - -nanomatch@^1.2.9: - version "1.2.13" - resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" - integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - define-property "^2.0.2" - extend-shallow "^3.0.2" - fragment-cache "^0.2.1" - is-windows "^1.0.2" - kind-of "^6.0.2" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -native-url@^0.2.6: - version "0.2.6" - resolved "https://registry.yarnpkg.com/native-url/-/native-url-0.2.6.tgz#ca1258f5ace169c716ff44eccbddb674e10399ae" - integrity sha512-k4bDC87WtgrdD362gZz6zoiXQrl40kYlBmpfmSjwRO1VU0V5ccwJTlxuE72F6m3V0vc1xOf6n3UCP9QyerRqmA== +mz@^2.7.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" + integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== dependencies: - querystring "^0.2.0" + any-promise "^1.0.0" + object-assign "^4.0.1" + thenify-all "^1.0.0" + +nanoid@^3.3.7: + version "3.3.7" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" + integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== + +napi-wasm@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/napi-wasm/-/napi-wasm-1.1.0.tgz#bbe617823765ae9c1bc12ff5942370eae7b2ba4e" + integrity sha512-lHwIAJbmLSjF9VDRm9GoVOy9AGp3aIvkjv+Kvz9h16QR3uSVYH78PNQUnT2U4X53mhlnV2M7wrhibQ3GHicDmg== + +natural-compare-lite@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4" + integrity sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g== natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== -negotiator@0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" - integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== +negotiator@0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== -neo-async@^2.5.0, neo-async@^2.6.1, neo-async@^2.6.2: +neo-async@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== -next-tick@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" - integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= - -nice-try@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" - integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== +next-tick@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb" + integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== no-case@^3.0.4: version "3.0.4" @@ -10627,163 +9723,49 @@ node-addon-api@^2.0.0: resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-2.0.2.tgz#432cfa82962ce494b132e9d72a15b29f71ff5d32" integrity sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA== -node-fetch@2.6.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" - integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== +node-addon-api@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-7.1.0.tgz#71f609369379c08e251c558527a107107b5e0fdb" + integrity sha512-mNcltoe1R8o7STTegSOHdnJNN7s5EUvhoS7ShnTHDyOSd+8H+UdWODq6qSv67PjC8Zc5JRT8+oLAMCr0SIXw7g== -node-fetch@^2.6.0, node-fetch@^2.6.1: - version "2.6.6" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.6.tgz#1751a7c01834e8e1697758732e9efb6eeadfaf89" - integrity sha512-Z8/6vRlTUChSdIgMa51jxQ4lrw/Jy5SOW10ObaA47/RElsAN2c5Pn8bTgFGWn/ibwzXTE8qwr1Yzx28vsecXEA== +node-fetch-native@^1.6.1, node-fetch-native@^1.6.2, node-fetch-native@^1.6.3: + version "1.6.4" + resolved "https://registry.yarnpkg.com/node-fetch-native/-/node-fetch-native-1.6.4.tgz#679fc8fd8111266d47d7e72c379f1bed9acff06e" + integrity sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ== + +node-fetch@2.6.7: + version "2.6.7" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" + integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== dependencies: whatwg-url "^5.0.0" -node-fetch@~1.7.1: - version "1.7.3" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef" - integrity sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ== +node-fetch@^2.6.1, node-fetch@^2.6.12: + version "2.7.0" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" + integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== dependencies: - encoding "^0.1.11" - is-stream "^1.0.1" + whatwg-url "^5.0.0" -node-forge@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3" - integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA== +node-forge@^1, node-forge@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3" + integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== node-gyp-build@^4.2.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.3.0.tgz#9f256b03e5826150be39c764bf51e993946d71a3" - integrity sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q== - -node-gyp@^3.8.0: - version "3.8.0" - resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.8.0.tgz#540304261c330e80d0d5edce253a68cb3964218c" - integrity sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA== - dependencies: - fstream "^1.0.0" - glob "^7.0.3" - graceful-fs "^4.1.2" - mkdirp "^0.5.0" - nopt "2 || 3" - npmlog "0 || 1 || 2 || 3 || 4" - osenv "0" - request "^2.87.0" - rimraf "2" - semver "~5.3.0" - tar "^2.0.0" - which "1" + version "4.8.1" + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.1.tgz#976d3ad905e71b76086f4f0b0d3637fe79b6cda5" + integrity sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw== node-int64@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" - integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= - -node-libs-browser@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" - integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== - dependencies: - assert "^1.1.1" - browserify-zlib "^0.2.0" - buffer "^4.3.0" - console-browserify "^1.1.0" - constants-browserify "^1.0.0" - crypto-browserify "^3.11.0" - domain-browser "^1.1.1" - events "^3.0.0" - https-browserify "^1.0.0" - os-browserify "^0.3.0" - path-browserify "0.0.1" - process "^0.11.10" - punycode "^1.2.4" - querystring-es3 "^0.2.0" - readable-stream "^2.3.3" - stream-browserify "^2.0.1" - stream-http "^2.7.2" - string_decoder "^1.0.0" - timers-browserify "^2.0.4" - tty-browserify "0.0.0" - url "^0.11.0" - util "^0.11.0" - vm-browserify "^1.0.1" - -node-notifier@^8.0.0: - version "8.0.2" - resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-8.0.2.tgz#f3167a38ef0d2c8a866a83e318c1ba0efeb702c5" - integrity sha512-oJP/9NAdd9+x2Q+rfphB2RJCHjod70RcRLjosiPMMu5gjIfwVnOUGq2nbTjTUbmy0DJ/tFIVT30+Qe3nzl4TJg== - dependencies: - growly "^1.3.0" - is-wsl "^2.2.0" - semver "^7.3.2" - shellwords "^0.1.1" - uuid "^8.3.0" - which "^2.0.2" - -node-releases@^1.1.61: - version "1.1.77" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.77.tgz#50b0cfede855dd374e7585bf228ff34e57c1c32e" - integrity sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ== - -node-releases@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.1.tgz#3d1d395f204f1f2f29a54358b9fb678765ad2fc5" - integrity sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA== - -node-sass@^4.14.1: - version "4.14.1" - resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.14.1.tgz#99c87ec2efb7047ed638fb4c9db7f3a42e2217b5" - integrity sha512-sjCuOlvGyCJS40R8BscF5vhVlQjNN069NtQ1gSxyK1u9iqvn6tf7O1R4GNowVZfiZUCRt5MmMs1xd+4V/7Yr0g== - dependencies: - async-foreach "^0.1.3" - chalk "^1.1.1" - cross-spawn "^3.0.0" - gaze "^1.0.0" - get-stdin "^4.0.1" - glob "^7.0.3" - in-publish "^2.0.0" - lodash "^4.17.15" - meow "^3.7.0" - mkdirp "^0.5.1" - nan "^2.13.2" - node-gyp "^3.8.0" - npmlog "^4.0.0" - request "^2.88.0" - sass-graph "2.2.5" - stdout-stream "^1.4.0" - "true-case-path" "^1.0.2" - -"nopt@2 || 3": - version "3.0.6" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" - integrity sha1-xkZdvwirzU2zWTF/eaxopkayj/k= - dependencies: - abbrev "1" - -normalize-hex@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/normalize-hex/-/normalize-hex-0.0.2.tgz#5491c43759db2f06b7168d8419f4925c271ab27e" - integrity sha512-E2dx7XJQnjsm6SkS4G6GGvIXRHaLeWAZE2D2N3aia+OpIif2UT8y4S0KCjrX3WmFDSeFnlNOp0FSHFjLeJ4SJw== - dependencies: - bn.js "^4.11.8" - -normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" - integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== - dependencies: - hosted-git-info "^2.1.4" - resolve "^1.10.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" + integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== -normalize-path@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= - dependencies: - remove-trailing-separator "^1.0.1" +node-releases@^2.0.14: + version "2.0.14" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b" + integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" @@ -10793,46 +9775,26 @@ normalize-path@^3.0.0, normalize-path@~3.0.0: normalize-range@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" - integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= + integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== -normalize-url@1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c" - integrity sha1-LMDWazHqIwNkWENuNiDYWVTGbDw= - dependencies: - object-assign "^4.0.1" - prepend-http "^1.0.0" - query-string "^4.1.0" - sort-keys "^1.0.0" - -normalize-url@^3.0.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" - integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== - -npm-run-path@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" - integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= - dependencies: - path-key "^2.0.0" +normalize-url@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" + integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== -npm-run-path@^4.0.0: +npm-run-path@^4.0.0, npm-run-path@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== dependencies: path-key "^3.0.0" -"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" - integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== +npm-run-path@^5.1.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.3.0.tgz#e23353d0ebb9317f174e93417e4a4d82d0249e9f" + integrity sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ== dependencies: - are-we-there-yet "~1.1.2" - console-control-strings "~1.1.0" - gauge "~2.7.3" - set-blocking "~2.0.0" + path-key "^4.0.0" nth-check@^1.0.2: version "1.0.2" @@ -10842,159 +9804,142 @@ nth-check@^1.0.2: boolbase "~1.0.0" nth-check@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.0.1.tgz#2efe162f5c3da06a28959fbd3db75dbeea9f0fc2" - integrity sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w== + version "2.1.1" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" + integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== dependencies: boolbase "^1.0.0" -num2fraction@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" - integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4= - -number-is-nan@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" - integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= - number-to-bn@1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/number-to-bn/-/number-to-bn-1.7.0.tgz#bb3623592f7e5f9e0030b1977bd41a0c53fe1ea0" - integrity sha1-uzYjWS9+X54AMLGXe9QaDFP+HqA= + integrity sha512-wsJ9gfSz1/s4ZsJN01lyonwuxA1tml6X1yBDnfpMglypcBRFZZkus26EdPSlqS5GJfYddVZa22p3VNb3z5m5Ig== dependencies: bn.js "4.11.6" strip-hex-prefix "1.0.0" nwsapi@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" - integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== - -oauth-sign@~0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" - integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== + version "2.2.10" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.10.tgz#0b77a68e21a0b483db70b11fad055906e867cda8" + integrity sha512-QK0sRs7MKv0tKe1+5uZIQk/C8XGza4DAnztJG8iD+TpJIORARrCxczA738awHrZoHeTjSSoHqao2teO0dC/gFQ== -object-assign@^4.0.0, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: +object-assign@^4.0.1, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= - -object-copy@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" - integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= - dependencies: - copy-descriptor "^0.1.0" - define-property "^0.2.5" - kind-of "^3.0.3" - -object-inspect@^1.11.0, object-inspect@^1.9.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.0.tgz#6e2c120e868fd1fd18cb4f18c31741d0d6e776f0" - integrity sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g== + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== -object-inspect@~1.11.0: - version "1.11.1" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.11.1.tgz#d4bd7d7de54b9a75599f59a00bd698c1f1c6549b" - integrity sha512-If7BjFlpkzzBeV1cqgT3OSWT3azyoxDGajR+iGnFBfVV2EWyDyWaZZW2ERDjUaY2QM8i5jI3Sj7mhsM4DDAqWA== +object-hash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9" + integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw== -object-is@^1.0.1: - version "1.1.5" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" - integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" +object-inspect@^1.13.1: + version "1.13.1" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" + integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== -object-keys@^1.0.12, object-keys@^1.1.1: +object-keys@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== -object-keys@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-0.4.0.tgz#28a6aae7428dd2c3a92f3d95f21335dd204e0336" - integrity sha1-KKaq50KN0sOpLz2V8hM13SBOAzY= - -object-visit@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" - integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= - dependencies: - isobject "^3.0.0" - -object.assign@^4.1.0, object.assign@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" - integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== +object.assign@^4.1.4, object.assign@^4.1.5: + version "4.1.5" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.5.tgz#3a833f9ab7fdb80fc9e8d2300c803d216d8fdbb0" + integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ== dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - has-symbols "^1.0.1" + call-bind "^1.0.5" + define-properties "^1.2.1" + has-symbols "^1.0.3" object-keys "^1.1.1" -object.entries@^1.1.0, object.entries@^1.1.2, object.entries@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.5.tgz#e1acdd17c4de2cd96d5a08487cfb9db84d881861" - integrity sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" - -object.fromentries@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.5.tgz#7b37b205109c21e741e605727fe8b0ad5fa08251" - integrity sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw== +object.entries@^1.1.7: + version "1.1.8" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.8.tgz#bffe6f282e01f4d17807204a24f8edd823599c41" + integrity sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ== dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" -object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.0: - version "2.1.3" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.3.tgz#b223cf38e17fefb97a63c10c91df72ccb386df9e" - integrity sha512-VdDoCwvJI4QdC6ndjpqFmoL3/+HxffFBbcJzKi5hwLLqqx3mdbedRpfZDdK0SrOSauj8X4GzBvnDZl4vTN7dOw== +object.fromentries@^2.0.7: + version "2.0.8" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.8.tgz#f7195d8a9b97bd95cbc1999ea939ecd1a2b00c65" + integrity sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ== dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-object-atoms "^1.0.0" -object.hasown@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.0.tgz#7232ed266f34d197d15cac5880232f7a4790afe5" - integrity sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg== +object.getownpropertydescriptors@^2.1.0: + version "2.1.8" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.8.tgz#2f1fe0606ec1a7658154ccd4f728504f69667923" + integrity sha512-qkHIGe4q0lSYMv0XI4SsBTJz3WaURhLvd0lKSgtVuOsJ2krg4SgMw3PIRQFMp07yi++UR3se2mkcLqsBNpBb/A== + dependencies: + array.prototype.reduce "^1.0.6" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-object-atoms "^1.0.0" + gopd "^1.0.1" + safe-array-concat "^1.1.2" + +object.groupby@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.3.tgz#9b125c36238129f6f7b61954a1e7176148d5002e" + integrity sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ== dependencies: - define-properties "^1.1.3" - es-abstract "^1.19.1" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" -object.pick@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" - integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= +object.hasown@^1.1.3: + version "1.1.4" + resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.4.tgz#e270ae377e4c120cdcb7656ce66884a6218283dc" + integrity sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg== dependencies: - isobject "^3.0.1" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-object-atoms "^1.0.0" -object.values@^1.1.0, object.values@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.5.tgz#959f63e3ce9ef108720333082131e4a459b716ac" - integrity sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg== +object.values@^1.1.0, object.values@^1.1.6, object.values@^1.1.7: + version "1.2.0" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.2.0.tgz#65405a9d92cee68ac2d303002e0b8470a4d9ab1b" + integrity sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ== dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" obuf@^1.0.0, obuf@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== -on-finished@~2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" - integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= +ofetch@^1.3.3: + version "1.3.4" + resolved "https://registry.yarnpkg.com/ofetch/-/ofetch-1.3.4.tgz#7ea65ced3c592ec2b9906975ae3fe1d26a56f635" + integrity sha512-KLIET85ik3vhEfS+3fDlc/BAZiAp+43QEC/yCo5zkNoY2YaKvNkOaFr/6wCFgFH1kuYQM5pMNi0Tg8koiIemtw== + dependencies: + destr "^2.0.3" + node-fetch-native "^1.6.3" + ufo "^1.5.3" + +ohash@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/ohash/-/ohash-1.1.3.tgz#f12c3c50bfe7271ce3fd1097d42568122ccdcf07" + integrity sha512-zuHHiGTYTA1sYJ/wZN+t5HKZaH23i4yI1HMwbuXm24Nid7Dv0KcuRlKoNKS9UNfAVSBlnGLcuQrnOKWOZoEGaw== + +on-exit-leak-free@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/on-exit-leak-free/-/on-exit-leak-free-0.2.0.tgz#b39c9e3bf7690d890f4861558b0d7b90a442d209" + integrity sha512-dqaz3u44QbRXQooZLTUKU41ZrzYrcvLISVgbrzbyCMxpmSLJvZ3ZamIJIZ29P6OhZIkNIQKosdeM6t1LYbA9hg== + +on-finished@2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" + integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== dependencies: ee-first "1.1.1" @@ -11006,47 +9951,42 @@ on-headers@~1.0.2: once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== dependencies: wrappy "1" -onetime@^5.1.0: +onetime@^5.1.0, onetime@^5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== dependencies: mimic-fn "^2.1.0" -open@^7.0.2: - version "7.4.2" - resolved "https://registry.yarnpkg.com/open/-/open-7.4.2.tgz#b8147e26dcf3e426316c730089fd71edd29c2321" - integrity sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q== - dependencies: - is-docker "^2.0.0" - is-wsl "^2.1.1" - -opn@^5.5.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" - integrity sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA== +onetime@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" + integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== dependencies: - is-wsl "^1.1.0" + mimic-fn "^4.0.0" -optimism@^0.16.1: - version "0.16.1" - resolved "https://registry.yarnpkg.com/optimism/-/optimism-0.16.1.tgz#7c8efc1f3179f18307b887e18c15c5b7133f6e7d" - integrity sha512-64i+Uw3otrndfq5kaoGNoY7pvOhSsjFEN4bdEFh80MWVk/dbgJfMv7VFDeCT8LxNAlEVhQmdVEbfE7X2nWNIIg== +open@^8.0.9, open@^8.4.0: + version "8.4.2" + resolved "https://registry.yarnpkg.com/open/-/open-8.4.2.tgz#5b5ffe2a8f793dcd2aad73e550cb87b59cb084f9" + integrity sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ== dependencies: - "@wry/context" "^0.6.0" - "@wry/trie" "^0.3.0" + define-lazy-prop "^2.0.0" + is-docker "^2.1.1" + is-wsl "^2.2.0" -optimize-css-assets-webpack-plugin@5.0.4: - version "5.0.4" - resolved "https://registry.yarnpkg.com/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.4.tgz#85883c6528aaa02e30bbad9908c92926bb52dc90" - integrity sha512-wqd6FdI2a5/FdoiCNNkEvLeA//lHHfG24Ln2Xm2qqdIk4aOlsR18jwpyOihqQ8849W3qu2DX8fOYxpvTMj+93A== +optimism@^0.18.0: + version "0.18.0" + resolved "https://registry.yarnpkg.com/optimism/-/optimism-0.18.0.tgz#e7bb38b24715f3fdad8a9a7fc18e999144bbfa63" + integrity sha512-tGn8+REwLRNFnb9WmcY5IfpOqeX2kpaYJ1s6Ae3mn12AeydLkR3j+jSCmVQFoXqU8D41PAJ1RG1rCRNWmNZVmQ== dependencies: - cssnano "^4.1.10" - last-call-webpack-plugin "^3.0.0" + "@wry/caches" "^1.0.0" + "@wry/context" "^0.7.0" + "@wry/trie" "^0.4.3" + tslib "^2.3.0" optionator@^0.8.1: version "0.8.3" @@ -11060,64 +10000,17 @@ optionator@^0.8.1: type-check "~0.3.2" word-wrap "~1.2.3" -optionator@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" - integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== +optionator@^0.9.3: + version "0.9.4" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.4.tgz#7ea1c1a5d91d764fb282139c88fe11e182a3a734" + integrity sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g== dependencies: deep-is "^0.1.3" fast-levenshtein "^2.0.6" levn "^0.4.1" prelude-ls "^1.2.1" type-check "^0.4.0" - word-wrap "^1.2.3" - -original@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f" - integrity sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg== - dependencies: - url-parse "^1.4.3" - -os-browserify@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" - integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= - -os-homedir@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" - integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= - -os-tmpdir@^1.0.0, os-tmpdir@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= - -osenv@0: - version "0.1.5" - resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" - integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.0" - -p-each-series@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.2.0.tgz#105ab0357ce72b202a8a8b94933672657b5e2a9a" - integrity sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA== - -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= - -p-limit@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" - integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== - dependencies: - p-try "^1.0.0" + word-wrap "^1.2.5" p-limit@^2.0.0, p-limit@^2.2.0: version "2.3.0" @@ -11133,13 +10026,6 @@ p-limit@^3.0.2: dependencies: yocto-queue "^0.1.0" -p-locate@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= - dependencies: - p-limit "^1.1.0" - p-locate@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" @@ -11154,50 +10040,27 @@ p-locate@^4.1.0: dependencies: p-limit "^2.2.0" -p-map@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" - integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== - -p-map@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" - integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== dependencies: - aggregate-error "^3.0.0" + p-limit "^3.0.2" -p-retry@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-3.0.1.tgz#316b4c8893e2c8dc1cfa891f406c4b422bebf328" - integrity sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w== +p-retry@^4.5.0: + version "4.6.2" + resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.6.2.tgz#9baae7184057edd4e17231cee04264106e092a16" + integrity sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ== dependencies: - retry "^0.12.0" - -p-try@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" - integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= + "@types/retry" "0.12.0" + retry "^0.13.1" p-try@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== -pako@~1.0.5: - version "1.0.11" - resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" - integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== - -parallel-transform@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc" - integrity sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg== - dependencies: - cyclist "^1.0.1" - inherits "^2.0.3" - readable-stream "^2.1.5" - -param-case@^3.0.3: +param-case@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5" integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A== @@ -11212,38 +10075,7 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" -parse-asn1@^5.0.0, parse-asn1@^5.1.5: - version "5.1.6" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4" - integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw== - dependencies: - asn1.js "^5.2.0" - browserify-aes "^1.0.0" - evp_bytestokey "^1.0.0" - pbkdf2 "^3.0.3" - safe-buffer "^5.1.1" - -parse-headers@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.4.tgz#9eaf2d02bed2d1eff494331ce3df36d7924760bf" - integrity sha512-psZ9iZoCNFLrgRjZ1d8mn0h9WRqJwFxM9q3x7iUjN/YT2OksthDJ5TiPCu2F38kS4zutqfW+YdVVkBZZx3/1aw== - -parse-json@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" - integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= - dependencies: - error-ex "^1.2.0" - -parse-json@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" - integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= - dependencies: - error-ex "^1.3.1" - json-parse-better-errors "^1.0.1" - -parse-json@^5.0.0: +parse-json@^5.0.0, parse-json@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== @@ -11271,67 +10103,48 @@ pascal-case@^3.1.2: no-case "^3.0.4" tslib "^2.0.3" -pascalcase@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" - integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= - -path-browserify@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" - integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== - -path-dirname@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" - integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= - -path-exists@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" - integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s= - dependencies: - pinkie-promise "^2.0.0" - path-exists@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= + integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== path-exists@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== -path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: +path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= - -path-is-inside@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" - integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= - -path-key@^2.0.0, path-key@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== path-key@^3.0.0, path-key@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== -path-parse@^1.0.6, path-parse@^1.0.7: +path-key@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" + integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== + +path-parse@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== +path-scurry@^1.11.0: + version "1.11.1" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2" + integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== + dependencies: + lru-cache "^10.2.0" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + path-to-regexp@0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= + integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== path-to-regexp@^1.7.0: version "1.8.0" @@ -11340,28 +10153,17 @@ path-to-regexp@^1.7.0: dependencies: isarray "0.0.1" -path-type@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" - integrity sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE= - dependencies: - graceful-fs "^4.1.2" - pify "^2.0.0" - pinkie-promise "^2.0.0" - -path-type@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" - integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== - dependencies: - pify "^3.0.0" - path-type@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== -pbkdf2@^3.0.17, pbkdf2@^3.0.3: +pathe@^1.1.1, pathe@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/pathe/-/pathe-1.1.2.tgz#6c4cb47a945692e48a1ddd6e4094d170516437ec" + integrity sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ== + +pbkdf2@^3.0.17: version "3.1.2" resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075" integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA== @@ -11372,20 +10174,10 @@ pbkdf2@^3.0.17, pbkdf2@^3.0.3: safe-buffer "^5.0.1" sha.js "^2.4.8" -penpal@3.0.7: - version "3.0.7" - resolved "https://registry.yarnpkg.com/penpal/-/penpal-3.0.7.tgz#d252711ed93b30f1d867eb82342785b3a95f5f75" - integrity sha512-WSXiq5HnEvzvY05SHhaXcsviUmCvh4Ze8AiIZzvmdzaaYAAx4rx8c6Xq6+MaVDG/Nfve3VmGD8HyRP3CkPvPbQ== - -penpal@4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/penpal/-/penpal-4.1.1.tgz#c96ccfdac441682acf617f6dcbc177a614e8302b" - integrity sha512-6d1f8khVLyBz3DnhLztbfjJ7+ANxdXRM2l6awpnCdEtbrmse4AGTsELOvGuNY0SU7xZw7heGbP6IikVvaVTOWw== - performance-now@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= + integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== picocolors@^0.2.1: version "0.2.1" @@ -11397,54 +10189,60 @@ picocolors@^1.0.0: resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.2.3: +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.2.3, picomatch@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== -pify@4.0.1, pify@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" - integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== - -pify@^2.0.0: +pify@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= + integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== pify@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= + integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg== pify@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/pify/-/pify-5.0.0.tgz#1f5eca3f5e87ebec28cc6d54a0e4aaf00acc127f" integrity sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA== -pinkie-promise@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" - integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= +pino-abstract-transport@v0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/pino-abstract-transport/-/pino-abstract-transport-0.5.0.tgz#4b54348d8f73713bfd14e3dc44228739aa13d9c0" + integrity sha512-+KAgmVeqXYbTtU2FScx1XS3kNyfZ5TrXY07V96QnUSFqo2gAqlvmaxH67Lj7SWazqsMabf+58ctdTcBgnOLUOQ== dependencies: - pinkie "^2.0.0" - -pinkie@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" - integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= + duplexify "^4.1.2" + split2 "^4.0.0" -pirates@^4.0.1: - version "4.0.4" - resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.4.tgz#07df81e61028e402735cdd49db701e4885b4e6e6" - integrity sha512-ZIrVPH+A52Dw84R0L3/VS9Op04PuQ2SEoJL6bkshmiTic/HldyW9Tf7oH5mhJZBK7NmDx27vSMrYEXPXclpDKw== - -pkg-dir@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" - integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== - dependencies: - find-up "^3.0.0" +pino-std-serializers@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/pino-std-serializers/-/pino-std-serializers-4.0.0.tgz#1791ccd2539c091ae49ce9993205e2cd5dbba1e2" + integrity sha512-cK0pekc1Kjy5w9V2/n+8MkZwusa6EyyxfeQCB799CQRhRt/CqYKiWs5adeu8Shve2ZNffvfC/7J64A2PJo1W/Q== + +pino@7.11.0: + version "7.11.0" + resolved "https://registry.yarnpkg.com/pino/-/pino-7.11.0.tgz#0f0ea5c4683dc91388081d44bff10c83125066f6" + integrity sha512-dMACeu63HtRLmCG8VKdy4cShCPKaYDR4youZqoSWLxl5Gu99HUw8bw75thbPv9Nip+H+QYX8o3ZJbTdVZZ2TVg== + dependencies: + atomic-sleep "^1.0.0" + fast-redact "^3.0.0" + on-exit-leak-free "^0.2.0" + pino-abstract-transport v0.5.0 + pino-std-serializers "^4.0.0" + process-warning "^1.0.0" + quick-format-unescaped "^4.0.3" + real-require "^0.1.0" + safe-stable-stringify "^2.1.0" + sonic-boom "^2.2.1" + thread-stream "^0.15.1" + +pirates@^4.0.1, pirates@^4.0.4: + version "4.0.6" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9" + integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== pkg-dir@^4.1.0, pkg-dir@^4.2.0: version "4.2.0" @@ -11453,686 +10251,572 @@ pkg-dir@^4.1.0, pkg-dir@^4.2.0: dependencies: find-up "^4.0.0" -pkg-up@3.1.0: +pkg-types@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/pkg-types/-/pkg-types-1.1.1.tgz#07b626880749beb607b0c817af63aac1845a73f2" + integrity sha512-ko14TjmDuQJ14zsotODv7dBlwxKhUKQEhuhmbqo1uCi9BB0Z2alo/wAXg6q1dTR5TyuqYyWhjtfe/Tsh+X28jQ== + dependencies: + confbox "^0.1.7" + mlly "^1.7.0" + pathe "^1.1.2" + +pkg-up@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5" integrity sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA== dependencies: find-up "^3.0.0" -pngjs@^3.3.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-3.4.0.tgz#99ca7d725965fb655814eaf65f38f12bbdbf555f" - integrity sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w== +pngjs@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-5.0.0.tgz#e79dd2b215767fd9c04561c01236df960bce7fbb" + integrity sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw== -pnp-webpack-plugin@1.6.4: - version "1.6.4" - resolved "https://registry.yarnpkg.com/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz#c9711ac4dc48a685dabafc86f8b6dd9f8df84149" - integrity sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg== - dependencies: - ts-pnp "^1.1.6" +pony-cause@^2.1.10: + version "2.1.11" + resolved "https://registry.yarnpkg.com/pony-cause/-/pony-cause-2.1.11.tgz#d69a20aaccdb3bdb8f74dd59e5c68d8e6772e4bd" + integrity sha512-M7LhCsdNbNgiLYiP4WjsfLUuFmCfnjdF6jKe2R9NKl4WFN+HZPGHJZ9lnLP7f9ZnKe3U9nuWD0szirmj+migUg== -pocket-js-core@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/pocket-js-core/-/pocket-js-core-0.0.3.tgz#1ab278b9a6a5775e2bdc3c2c2e218057774061e4" - integrity sha512-OUTEvEVutdjLT6YyldvAlSebpBueUUWg2XKxGNt5u3QqrmLpBOOBmdDnGMNJ+lEwXtko+JqgwFq+HTi4g1QDVg== - dependencies: - axios "^0.18.0" +possible-typed-array-names@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz#89bb63c6fada2c3e90adc4a647beeeb39cc7bf8f" + integrity sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q== -portfinder@^1.0.26: - version "1.0.28" - resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.28.tgz#67c4622852bd5374dd1dd900f779f53462fac778" - integrity sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA== +postcss-attribute-case-insensitive@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.2.tgz#03d761b24afc04c09e757e92ff53716ae8ea2741" + integrity sha512-XIidXV8fDr0kKt28vqki84fRK8VW8eTuIa4PChv2MqKuT6C9UjmSKzen6KaWhWEoYvwxFCa7n/tC1SZ3tyq4SQ== dependencies: - async "^2.6.2" - debug "^3.1.1" - mkdirp "^0.5.5" - -posix-character-classes@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" - integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= + postcss-selector-parser "^6.0.10" -postcss-attribute-case-insensitive@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-4.0.2.tgz#d93e46b504589e94ac7277b0463226c68041a880" - integrity sha512-clkFxk/9pcdb4Vkn0hAHq3YnxBQ2p0CGD1dy24jN+reBck+EWxMbxSUqN4Yj7t0w8csl87K6p0gxBe1utkJsYA== - dependencies: - postcss "^7.0.2" - postcss-selector-parser "^6.0.2" +postcss-browser-comments@^4: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-browser-comments/-/postcss-browser-comments-4.0.0.tgz#bcfc86134df5807f5d3c0eefa191d42136b5e72a" + integrity sha512-X9X9/WN3KIvY9+hNERUqX9gncsgBA25XaeR+jshHz2j8+sYyHktHw1JdKuMjeLpGktXidqDhA7b/qm1mrBDmgg== -postcss-browser-comments@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-browser-comments/-/postcss-browser-comments-3.0.0.tgz#1248d2d935fb72053c8e1f61a84a57292d9f65e9" - integrity sha512-qfVjLfq7HFd2e0HW4s1dvU8X080OZdG46fFbIBFjW7US7YPDcWfRvdElvwMJr2LI6hMmD+7LnH2HcmXTs+uOig== +postcss-calc@^8.2.3: + version "8.2.4" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-8.2.4.tgz#77b9c29bfcbe8a07ff6693dc87050828889739a5" + integrity sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q== dependencies: - postcss "^7" + postcss-selector-parser "^6.0.9" + postcss-value-parser "^4.2.0" -postcss-calc@^7.0.1: - version "7.0.5" - resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.5.tgz#f8a6e99f12e619c2ebc23cf6c486fdc15860933e" - integrity sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg== +postcss-clamp@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/postcss-clamp/-/postcss-clamp-4.1.0.tgz#7263e95abadd8c2ba1bd911b0b5a5c9c93e02363" + integrity sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow== dependencies: - postcss "^7.0.27" - postcss-selector-parser "^6.0.2" - postcss-value-parser "^4.0.2" + postcss-value-parser "^4.2.0" -postcss-color-functional-notation@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/postcss-color-functional-notation/-/postcss-color-functional-notation-2.0.1.tgz#5efd37a88fbabeb00a2966d1e53d98ced93f74e0" - integrity sha512-ZBARCypjEDofW4P6IdPVTLhDNXPRn8T2s1zHbZidW6rPaaZvcnCS2soYFIQJrMZSxiePJ2XIYTlcb2ztr/eT2g== +postcss-color-functional-notation@^4.2.4: + version "4.2.4" + resolved "https://registry.yarnpkg.com/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.4.tgz#21a909e8d7454d3612d1659e471ce4696f28caec" + integrity sha512-2yrTAUZUab9s6CpxkxC4rVgFEVaR6/2Pipvi6qcgvnYiVqZcbDHEoBDhrXzyb7Efh2CCfHQNtcqWcIruDTIUeg== dependencies: - postcss "^7.0.2" - postcss-values-parser "^2.0.0" + postcss-value-parser "^4.2.0" -postcss-color-gray@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-color-gray/-/postcss-color-gray-5.0.0.tgz#532a31eb909f8da898ceffe296fdc1f864be8547" - integrity sha512-q6BuRnAGKM/ZRpfDascZlIZPjvwsRye7UDNalqVz3s7GDxMtqPY6+Q871liNxsonUw8oC61OG+PSaysYpl1bnw== +postcss-color-hex-alpha@^8.0.4: + version "8.0.4" + resolved "https://registry.yarnpkg.com/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.4.tgz#c66e2980f2fbc1a63f5b079663340ce8b55f25a5" + integrity sha512-nLo2DCRC9eE4w2JmuKgVA3fGL3d01kGq752pVALF68qpGLmx2Qrk91QTKkdUqqp45T1K1XV8IhQpcu1hoAQflQ== dependencies: - "@csstools/convert-colors" "^1.4.0" - postcss "^7.0.5" - postcss-values-parser "^2.0.0" + postcss-value-parser "^4.2.0" -postcss-color-hex-alpha@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/postcss-color-hex-alpha/-/postcss-color-hex-alpha-5.0.3.tgz#a8d9ca4c39d497c9661e374b9c51899ef0f87388" - integrity sha512-PF4GDel8q3kkreVXKLAGNpHKilXsZ6xuu+mOQMHWHLPNyjiUBOr75sp5ZKJfmv1MCus5/DWUGcK9hm6qHEnXYw== +postcss-color-rebeccapurple@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.1.1.tgz#63fdab91d878ebc4dd4b7c02619a0c3d6a56ced0" + integrity sha512-pGxkuVEInwLHgkNxUc4sdg4g3py7zUeCQ9sMfwyHAT+Ezk8a4OaaVZ8lIY5+oNqA/BXXgLyXv0+5wHP68R79hg== dependencies: - postcss "^7.0.14" - postcss-values-parser "^2.0.1" + postcss-value-parser "^4.2.0" -postcss-color-mod-function@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/postcss-color-mod-function/-/postcss-color-mod-function-3.0.3.tgz#816ba145ac11cc3cb6baa905a75a49f903e4d31d" - integrity sha512-YP4VG+xufxaVtzV6ZmhEtc+/aTXH3d0JLpnYfxqTvwZPbJhWqp8bSY3nfNzNRFLgB4XSaBA82OE4VjOOKpCdVQ== +postcss-colormin@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-5.3.1.tgz#86c27c26ed6ba00d96c79e08f3ffb418d1d1988f" + integrity sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ== dependencies: - "@csstools/convert-colors" "^1.4.0" - postcss "^7.0.2" - postcss-values-parser "^2.0.0" + browserslist "^4.21.4" + caniuse-api "^3.0.0" + colord "^2.9.1" + postcss-value-parser "^4.2.0" -postcss-color-rebeccapurple@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-4.0.1.tgz#c7a89be872bb74e45b1e3022bfe5748823e6de77" - integrity sha512-aAe3OhkS6qJXBbqzvZth2Au4V3KieR5sRQ4ptb2b2O8wgvB3SJBsdG+jsn2BZbbwekDG8nTfcCNKcSfe/lEy8g== +postcss-convert-values@^5.1.3: + version "5.1.3" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz#04998bb9ba6b65aa31035d669a6af342c5f9d393" + integrity sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA== dependencies: - postcss "^7.0.2" - postcss-values-parser "^2.0.0" + browserslist "^4.21.4" + postcss-value-parser "^4.2.0" -postcss-colormin@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.3.tgz#ae060bce93ed794ac71264f08132d550956bd381" - integrity sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw== +postcss-custom-media@^8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/postcss-custom-media/-/postcss-custom-media-8.0.2.tgz#c8f9637edf45fef761b014c024cee013f80529ea" + integrity sha512-7yi25vDAoHAkbhAzX9dHx2yc6ntS4jQvejrNcC+csQJAXjj15e7VcWfMgLqBNAbOvqi5uIa9huOVwdHbf+sKqg== dependencies: - browserslist "^4.0.0" - color "^3.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" + postcss-value-parser "^4.2.0" -postcss-convert-values@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f" - integrity sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ== +postcss-custom-properties@^12.1.10: + version "12.1.11" + resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-12.1.11.tgz#d14bb9b3989ac4d40aaa0e110b43be67ac7845cf" + integrity sha512-0IDJYhgU8xDv1KY6+VgUwuQkVtmYzRwu+dMjnmdMafXYv86SWqfxkc7qdDvWS38vsjaEtv8e0vGOUQrAiMBLpQ== dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" + postcss-value-parser "^4.2.0" -postcss-custom-media@^7.0.8: - version "7.0.8" - resolved "https://registry.yarnpkg.com/postcss-custom-media/-/postcss-custom-media-7.0.8.tgz#fffd13ffeffad73621be5f387076a28b00294e0c" - integrity sha512-c9s5iX0Ge15o00HKbuRuTqNndsJUbaXdiNsksnVH8H4gdc+zbLzr/UasOwNG6CTDpLFekVY4672eWdiiWu2GUg== +postcss-custom-selectors@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/postcss-custom-selectors/-/postcss-custom-selectors-6.0.3.tgz#1ab4684d65f30fed175520f82d223db0337239d9" + integrity sha512-fgVkmyiWDwmD3JbpCmB45SvvlCD6z9CG6Ie6Iere22W5aHea6oWa7EM2bpnv2Fj3I94L3VbtvX9KqwSi5aFzSg== dependencies: - postcss "^7.0.14" + postcss-selector-parser "^6.0.4" -postcss-custom-properties@^8.0.11: - version "8.0.11" - resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-8.0.11.tgz#2d61772d6e92f22f5e0d52602df8fae46fa30d97" - integrity sha512-nm+o0eLdYqdnJ5abAJeXp4CEU1c1k+eB2yMCvhgzsds/e0umabFrN6HoTy/8Q4K5ilxERdl/JD1LO5ANoYBeMA== +postcss-dir-pseudo-class@^6.0.5: + version "6.0.5" + resolved "https://registry.yarnpkg.com/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.5.tgz#2bf31de5de76added44e0a25ecf60ae9f7c7c26c" + integrity sha512-eqn4m70P031PF7ZQIvSgy9RSJ5uI2171O/OO/zcRNYpJbvaeKFUlar1aJ7rmgiQtbm0FSPsRewjpdS0Oew7MPA== dependencies: - postcss "^7.0.17" - postcss-values-parser "^2.0.1" + postcss-selector-parser "^6.0.10" -postcss-custom-selectors@^5.1.2: +postcss-discard-comments@^5.1.2: version "5.1.2" - resolved "https://registry.yarnpkg.com/postcss-custom-selectors/-/postcss-custom-selectors-5.1.2.tgz#64858c6eb2ecff2fb41d0b28c9dd7b3db4de7fba" - integrity sha512-DSGDhqinCqXqlS4R7KGxL1OSycd1lydugJ1ky4iRXPHdBRiozyMHrdu0H3o7qNOCiZwySZTUI5MV0T8QhCLu+w== - dependencies: - postcss "^7.0.2" - postcss-selector-parser "^5.0.0-rc.3" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz#8df5e81d2925af2780075840c1526f0660e53696" + integrity sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ== -postcss-dir-pseudo-class@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-5.0.0.tgz#6e3a4177d0edb3abcc85fdb6fbb1c26dabaeaba2" - integrity sha512-3pm4oq8HYWMZePJY+5ANriPs3P07q+LW6FAdTlkFH2XqDdP4HeeJYMOzn0HYLhRSjBO3fhiqSwwU9xEULSrPgw== - dependencies: - postcss "^7.0.2" - postcss-selector-parser "^5.0.0-rc.3" +postcss-discard-duplicates@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz#9eb4fe8456706a4eebd6d3b7b777d07bad03e848" + integrity sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw== -postcss-discard-comments@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033" - integrity sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg== - dependencies: - postcss "^7.0.0" +postcss-discard-empty@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz#e57762343ff7f503fe53fca553d18d7f0c369c6c" + integrity sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A== -postcss-discard-duplicates@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb" - integrity sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ== - dependencies: - postcss "^7.0.0" +postcss-discard-overridden@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz#7e8c5b53325747e9d90131bb88635282fb4a276e" + integrity sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw== -postcss-discard-empty@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765" - integrity sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w== +postcss-double-position-gradients@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.2.tgz#b96318fdb477be95997e86edd29c6e3557a49b91" + integrity sha512-GX+FuE/uBR6eskOK+4vkXgT6pDkexLokPaz/AbJna9s5Kzp/yl488pKPjhy0obB475ovfT1Wv8ho7U/cHNaRgQ== dependencies: - postcss "^7.0.0" + "@csstools/postcss-progressive-custom-properties" "^1.1.0" + postcss-value-parser "^4.2.0" -postcss-discard-overridden@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57" - integrity sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg== +postcss-env-function@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/postcss-env-function/-/postcss-env-function-4.0.6.tgz#7b2d24c812f540ed6eda4c81f6090416722a8e7a" + integrity sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA== dependencies: - postcss "^7.0.0" + postcss-value-parser "^4.2.0" -postcss-double-position-gradients@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/postcss-double-position-gradients/-/postcss-double-position-gradients-1.0.0.tgz#fc927d52fddc896cb3a2812ebc5df147e110522e" - integrity sha512-G+nV8EnQq25fOI8CH/B6krEohGWnF5+3A6H/+JEpOncu5dCnkS1QQ6+ct3Jkaepw1NGVqqOZH6lqrm244mCftA== - dependencies: - postcss "^7.0.5" - postcss-values-parser "^2.0.0" +postcss-flexbugs-fixes@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-5.0.2.tgz#2028e145313074fc9abe276cb7ca14e5401eb49d" + integrity sha512-18f9voByak7bTktR2QgDveglpn9DTbBWPUzSOe9g0N4WR/2eSt6Vrcbf0hmspvMI6YWGywz6B9f7jzpFNJJgnQ== -postcss-env-function@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/postcss-env-function/-/postcss-env-function-2.0.2.tgz#0f3e3d3c57f094a92c2baf4b6241f0b0da5365d7" - integrity sha512-rwac4BuZlITeUbiBq60h/xbLzXY43qOsIErngWa4l7Mt+RaSkT7QBjXVGTcBHupykkblHMDrBFh30zchYPaOUw== +postcss-focus-visible@^6.0.4: + version "6.0.4" + resolved "https://registry.yarnpkg.com/postcss-focus-visible/-/postcss-focus-visible-6.0.4.tgz#50c9ea9afa0ee657fb75635fabad25e18d76bf9e" + integrity sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw== dependencies: - postcss "^7.0.2" - postcss-values-parser "^2.0.0" + postcss-selector-parser "^6.0.9" -postcss-flexbugs-fixes@4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-4.2.1.tgz#9218a65249f30897deab1033aced8578562a6690" - integrity sha512-9SiofaZ9CWpQWxOwRh1b/r85KD5y7GgvsNt1056k6OYLvWUun0czCvogfJgylC22uJTwW1KzY3Gz65NZRlvoiQ== +postcss-focus-within@^5.0.4: + version "5.0.4" + resolved "https://registry.yarnpkg.com/postcss-focus-within/-/postcss-focus-within-5.0.4.tgz#5b1d2ec603195f3344b716c0b75f61e44e8d2e20" + integrity sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ== dependencies: - postcss "^7.0.26" + postcss-selector-parser "^6.0.9" -postcss-focus-visible@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-focus-visible/-/postcss-focus-visible-4.0.0.tgz#477d107113ade6024b14128317ade2bd1e17046e" - integrity sha512-Z5CkWBw0+idJHSV6+Bgf2peDOFf/x4o+vX/pwcNYrWpXFrSfTkQ3JQ1ojrq9yS+upnAlNRHeg8uEwFTgorjI8g== - dependencies: - postcss "^7.0.2" +postcss-font-variant@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz#efd59b4b7ea8bb06127f2d031bfbb7f24d32fa66" + integrity sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA== -postcss-focus-within@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-focus-within/-/postcss-focus-within-3.0.0.tgz#763b8788596cee9b874c999201cdde80659ef680" - integrity sha512-W0APui8jQeBKbCGZudW37EeMCjDeVxKgiYfIIEo8Bdh5SpB9sxds/Iq8SEuzS0Q4YFOlG7EPFulbbxujpkrV2w== - dependencies: - postcss "^7.0.2" +postcss-gap-properties@^3.0.5: + version "3.0.5" + resolved "https://registry.yarnpkg.com/postcss-gap-properties/-/postcss-gap-properties-3.0.5.tgz#f7e3cddcf73ee19e94ccf7cb77773f9560aa2fff" + integrity sha512-IuE6gKSdoUNcvkGIqdtjtcMtZIFyXZhmFd5RUlg97iVEvp1BZKV5ngsAjCjrVy+14uhGBQl9tzmi1Qwq4kqVOg== -postcss-font-variant@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-font-variant/-/postcss-font-variant-4.0.1.tgz#42d4c0ab30894f60f98b17561eb5c0321f502641" - integrity sha512-I3ADQSTNtLTTd8uxZhtSOrTCQ9G4qUVKPjHiDk0bV75QSxXjVWiJVJ2VLdspGUi9fbW9BcjKJoRvxAH1pckqmA== +postcss-image-set-function@^4.0.7: + version "4.0.7" + resolved "https://registry.yarnpkg.com/postcss-image-set-function/-/postcss-image-set-function-4.0.7.tgz#08353bd756f1cbfb3b6e93182c7829879114481f" + integrity sha512-9T2r9rsvYzm5ndsBE8WgtrMlIT7VbtTfE7b3BQnudUqnBcBo7L758oc+o+pdj/dUV0l5wjwSdjeOH2DZtfv8qw== dependencies: - postcss "^7.0.2" + postcss-value-parser "^4.2.0" -postcss-gap-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-gap-properties/-/postcss-gap-properties-2.0.0.tgz#431c192ab3ed96a3c3d09f2ff615960f902c1715" - integrity sha512-QZSqDaMgXCHuHTEzMsS2KfVDOq7ZFiknSpkrPJY6jmxbugUPTuSzs/vuE5I3zv0WAS+3vhrlqhijiprnuQfzmg== +postcss-import@^15.1.0: + version "15.1.0" + resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-15.1.0.tgz#41c64ed8cc0e23735a9698b3249ffdbf704adc70" + integrity sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew== dependencies: - postcss "^7.0.2" + postcss-value-parser "^4.0.0" + read-cache "^1.0.0" + resolve "^1.1.7" -postcss-image-set-function@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/postcss-image-set-function/-/postcss-image-set-function-3.0.1.tgz#28920a2f29945bed4c3198d7df6496d410d3f288" - integrity sha512-oPTcFFip5LZy8Y/whto91L9xdRHCWEMs3e1MdJxhgt4jy2WYXfhkng59fH5qLXSCPN8k4n94p1Czrfe5IOkKUw== - dependencies: - postcss "^7.0.2" - postcss-values-parser "^2.0.0" +postcss-initial@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-initial/-/postcss-initial-4.0.1.tgz#529f735f72c5724a0fb30527df6fb7ac54d7de42" + integrity sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ== -postcss-initial@^3.0.0: - version "3.0.4" - resolved "https://registry.yarnpkg.com/postcss-initial/-/postcss-initial-3.0.4.tgz#9d32069a10531fe2ecafa0b6ac750ee0bc7efc53" - integrity sha512-3RLn6DIpMsK1l5UUy9jxQvoDeUN4gP939tDcKUHD/kM8SGSKbFAnvkpFpj3Bhtz3HGk1jWY5ZNWX6mPta5M9fg== +postcss-js@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-js/-/postcss-js-4.0.1.tgz#61598186f3703bab052f1c4f7d805f3991bee9d2" + integrity sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw== dependencies: - postcss "^7.0.2" + camelcase-css "^2.0.1" -postcss-lab-function@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/postcss-lab-function/-/postcss-lab-function-2.0.1.tgz#bb51a6856cd12289ab4ae20db1e3821ef13d7d2e" - integrity sha512-whLy1IeZKY+3fYdqQFuDBf8Auw+qFuVnChWjmxm/UhHWqNHZx+B99EwxTvGYmUBqe3Fjxs4L1BoZTJmPu6usVg== +postcss-lab-function@^4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/postcss-lab-function/-/postcss-lab-function-4.2.1.tgz#6fe4c015102ff7cd27d1bd5385582f67ebdbdc98" + integrity sha512-xuXll4isR03CrQsmxyz92LJB2xX9n+pZJ5jE9JgcnmsCammLyKdlzrBin+25dy6wIjfhJpKBAN80gsTlCgRk2w== dependencies: - "@csstools/convert-colors" "^1.4.0" - postcss "^7.0.2" - postcss-values-parser "^2.0.0" + "@csstools/postcss-progressive-custom-properties" "^1.1.0" + postcss-value-parser "^4.2.0" -postcss-load-config@^2.0.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.1.2.tgz#c5ea504f2c4aef33c7359a34de3573772ad7502a" - integrity sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw== +postcss-load-config@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-4.0.2.tgz#7159dcf626118d33e299f485d6afe4aff7c4a3e3" + integrity sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ== dependencies: - cosmiconfig "^5.0.0" - import-cwd "^2.0.0" + lilconfig "^3.0.0" + yaml "^2.3.4" -postcss-loader@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-3.0.0.tgz#6b97943e47c72d845fa9e03f273773d4e8dd6c2d" - integrity sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA== +postcss-loader@^6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-6.2.1.tgz#0895f7346b1702103d30fdc66e4d494a93c008ef" + integrity sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q== dependencies: - loader-utils "^1.1.0" - postcss "^7.0.0" - postcss-load-config "^2.0.0" - schema-utils "^1.0.0" + cosmiconfig "^7.0.0" + klona "^2.0.5" + semver "^7.3.5" -postcss-logical@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-logical/-/postcss-logical-3.0.0.tgz#2495d0f8b82e9f262725f75f9401b34e7b45d5b5" - integrity sha512-1SUKdJc2vuMOmeItqGuNaC+N8MzBWFWEkAnRnLpFYj1tGGa7NqyVBujfRtgNa2gXR+6RkGUiB2O5Vmh7E2RmiA== - dependencies: - postcss "^7.0.2" +postcss-logical@^5.0.4: + version "5.0.4" + resolved "https://registry.yarnpkg.com/postcss-logical/-/postcss-logical-5.0.4.tgz#ec75b1ee54421acc04d5921576b7d8db6b0e6f73" + integrity sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g== -postcss-media-minmax@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-media-minmax/-/postcss-media-minmax-4.0.0.tgz#b75bb6cbc217c8ac49433e12f22048814a4f5ed5" - integrity sha512-fo9moya6qyxsjbFAYl97qKO9gyre3qvbMnkOZeZwlsW6XYFsvs2DMGDlchVLfAd8LHPZDxivu/+qW2SMQeTHBw== - dependencies: - postcss "^7.0.2" +postcss-media-minmax@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz#7140bddec173e2d6d657edbd8554a55794e2a5b5" + integrity sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ== -postcss-merge-longhand@^4.0.11: - version "4.0.11" - resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24" - integrity sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw== +postcss-merge-longhand@^5.1.7: + version "5.1.7" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz#24a1bdf402d9ef0e70f568f39bdc0344d568fb16" + integrity sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ== dependencies: - css-color-names "0.0.4" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - stylehacks "^4.0.0" + postcss-value-parser "^4.2.0" + stylehacks "^5.1.1" -postcss-merge-rules@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz#362bea4ff5a1f98e4075a713c6cb25aefef9a650" - integrity sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ== +postcss-merge-rules@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-5.1.4.tgz#2f26fa5cacb75b1402e213789f6766ae5e40313c" + integrity sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g== dependencies: - browserslist "^4.0.0" + browserslist "^4.21.4" caniuse-api "^3.0.0" - cssnano-util-same-parent "^4.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - vendors "^1.0.0" + cssnano-utils "^3.1.0" + postcss-selector-parser "^6.0.5" -postcss-minify-font-values@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6" - integrity sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-minify-gradients@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz#93b29c2ff5099c535eecda56c4aa6e665a663471" - integrity sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q== +postcss-minify-font-values@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz#f1df0014a726083d260d3bd85d7385fb89d1f01b" + integrity sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA== dependencies: - cssnano-util-get-arguments "^4.0.0" - is-color-stop "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" + postcss-value-parser "^4.2.0" -postcss-minify-params@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz#6b9cef030c11e35261f95f618c90036d680db874" - integrity sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg== +postcss-minify-gradients@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz#f1fe1b4f498134a5068240c2f25d46fcd236ba2c" + integrity sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw== dependencies: - alphanum-sort "^1.0.0" - browserslist "^4.0.0" - cssnano-util-get-arguments "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - uniqs "^2.0.0" + colord "^2.9.1" + cssnano-utils "^3.1.0" + postcss-value-parser "^4.2.0" -postcss-minify-selectors@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz#e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8" - integrity sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g== +postcss-minify-params@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz#c06a6c787128b3208b38c9364cfc40c8aa5d7352" + integrity sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw== dependencies: - alphanum-sort "^1.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" + browserslist "^4.21.4" + cssnano-utils "^3.1.0" + postcss-value-parser "^4.2.0" -postcss-modules-extract-imports@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz#818719a1ae1da325f9832446b01136eeb493cd7e" - integrity sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ== +postcss-minify-selectors@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz#d4e7e6b46147b8117ea9325a915a801d5fe656c6" + integrity sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg== dependencies: - postcss "^7.0.5" + postcss-selector-parser "^6.0.5" -postcss-modules-local-by-default@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz#bb14e0cc78279d504dbdcbfd7e0ca28993ffbbb0" - integrity sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw== +postcss-modules-extract-imports@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz#b4497cb85a9c0c4b5aabeb759bb25e8d89f15002" + integrity sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q== + +postcss-modules-local-by-default@^4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.5.tgz#f1b9bd757a8edf4d8556e8d0f4f894260e3df78f" + integrity sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw== dependencies: - icss-utils "^4.1.1" - postcss "^7.0.32" + icss-utils "^5.0.0" postcss-selector-parser "^6.0.2" postcss-value-parser "^4.1.0" -postcss-modules-scope@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz#385cae013cc7743f5a7d7602d1073a89eaae62ee" - integrity sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ== +postcss-modules-scope@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.2.0.tgz#a43d28289a169ce2c15c00c4e64c0858e43457d5" + integrity sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ== dependencies: - postcss "^7.0.6" - postcss-selector-parser "^6.0.0" + postcss-selector-parser "^6.0.4" -postcss-modules-values@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz#5b5000d6ebae29b4255301b4a3a54574423e7f10" - integrity sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg== +postcss-modules-values@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz#d7c5e7e68c3bb3c9b27cbf48ca0bb3ffb4602c9c" + integrity sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ== dependencies: - icss-utils "^4.0.0" - postcss "^7.0.6" + icss-utils "^5.0.0" -postcss-nesting@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-7.0.1.tgz#b50ad7b7f0173e5b5e3880c3501344703e04c052" - integrity sha512-FrorPb0H3nuVq0Sff7W2rnc3SmIcruVC6YwpcS+k687VxyxO33iE1amna7wHuRVzM8vfiYofXSBHNAZ3QhLvYg== +postcss-nested@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-6.0.1.tgz#f83dc9846ca16d2f4fa864f16e9d9f7d0961662c" + integrity sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ== dependencies: - postcss "^7.0.2" + postcss-selector-parser "^6.0.11" -postcss-normalize-charset@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4" - integrity sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g== +postcss-nesting@^10.2.0: + version "10.2.0" + resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-10.2.0.tgz#0b12ce0db8edfd2d8ae0aaf86427370b898890be" + integrity sha512-EwMkYchxiDiKUhlJGzWsD9b2zvq/r2SSubcRrgP+jujMXFzqvANLt16lJANC+5uZ6hjI7lpRmI6O8JIl+8l1KA== dependencies: - postcss "^7.0.0" + "@csstools/selector-specificity" "^2.0.0" + postcss-selector-parser "^6.0.10" -postcss-normalize-display-values@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz#0dbe04a4ce9063d4667ed2be476bb830c825935a" - integrity sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ== - dependencies: - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" +postcss-normalize-charset@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz#9302de0b29094b52c259e9b2cf8dc0879879f0ed" + integrity sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg== -postcss-normalize-positions@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz#05f757f84f260437378368a91f8932d4b102917f" - integrity sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA== +postcss-normalize-display-values@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz#72abbae58081960e9edd7200fcf21ab8325c3da8" + integrity sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA== dependencies: - cssnano-util-get-arguments "^4.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" + postcss-value-parser "^4.2.0" -postcss-normalize-repeat-style@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz#c4ebbc289f3991a028d44751cbdd11918b17910c" - integrity sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q== +postcss-normalize-positions@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz#ef97279d894087b59325b45c47f1e863daefbb92" + integrity sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg== dependencies: - cssnano-util-get-arguments "^4.0.0" - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" + postcss-value-parser "^4.2.0" -postcss-normalize-string@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz#cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c" - integrity sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA== +postcss-normalize-repeat-style@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz#e9eb96805204f4766df66fd09ed2e13545420fb2" + integrity sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g== dependencies: - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" + postcss-value-parser "^4.2.0" -postcss-normalize-timing-functions@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz#8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9" - integrity sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A== +postcss-normalize-string@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz#411961169e07308c82c1f8c55f3e8a337757e228" + integrity sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w== dependencies: - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" + postcss-value-parser "^4.2.0" -postcss-normalize-unicode@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb" - integrity sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg== +postcss-normalize-timing-functions@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz#d5614410f8f0b2388e9f240aa6011ba6f52dafbb" + integrity sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg== dependencies: - browserslist "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" + postcss-value-parser "^4.2.0" -postcss-normalize-url@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1" - integrity sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA== +postcss-normalize-unicode@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz#f67297fca3fea7f17e0d2caa40769afc487aa030" + integrity sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA== dependencies: - is-absolute-url "^2.0.0" - normalize-url "^3.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" + browserslist "^4.21.4" + postcss-value-parser "^4.2.0" -postcss-normalize-whitespace@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz#bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82" - integrity sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA== +postcss-normalize-url@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz#ed9d88ca82e21abef99f743457d3729a042adcdc" + integrity sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew== dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" + normalize-url "^6.0.1" + postcss-value-parser "^4.2.0" -postcss-normalize@8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize/-/postcss-normalize-8.0.1.tgz#90e80a7763d7fdf2da6f2f0f82be832ce4f66776" - integrity sha512-rt9JMS/m9FHIRroDDBGSMsyW1c0fkvOJPy62ggxSHUldJO7B195TqFMqIf+lY5ezpDcYOV4j86aUp3/XbxzCCQ== +postcss-normalize-whitespace@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz#08a1a0d1ffa17a7cc6efe1e6c9da969cc4493cfa" + integrity sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA== dependencies: - "@csstools/normalize.css" "^10.1.0" - browserslist "^4.6.2" - postcss "^7.0.17" - postcss-browser-comments "^3.0.0" - sanitize.css "^10.0.0" + postcss-value-parser "^4.2.0" -postcss-ordered-values@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz#0cf75c820ec7d5c4d280189559e0b571ebac0eee" - integrity sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw== +postcss-normalize@^10.0.1: + version "10.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize/-/postcss-normalize-10.0.1.tgz#464692676b52792a06b06880a176279216540dd7" + integrity sha512-+5w18/rDev5mqERcG3W5GZNMJa1eoYYNGo8gB7tEwaos0ajk3ZXAI4mHGcNT47NE+ZnZD1pEpUOFLvltIwmeJA== dependencies: - cssnano-util-get-arguments "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" + "@csstools/normalize.css" "*" + postcss-browser-comments "^4" + sanitize.css "*" -postcss-overflow-shorthand@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-overflow-shorthand/-/postcss-overflow-shorthand-2.0.0.tgz#31ecf350e9c6f6ddc250a78f0c3e111f32dd4c30" - integrity sha512-aK0fHc9CBNx8jbzMYhshZcEv8LtYnBIRYQD5i7w/K/wS9c2+0NSR6B3OVMu5y0hBHYLcMGjfU+dmWYNKH0I85g== - dependencies: - postcss "^7.0.2" +postcss-opacity-percentage@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/postcss-opacity-percentage/-/postcss-opacity-percentage-1.1.3.tgz#5b89b35551a556e20c5d23eb5260fbfcf5245da6" + integrity sha512-An6Ba4pHBiDtyVpSLymUUERMo2cU7s+Obz6BTrS+gxkbnSBNKSuD0AVUc+CpBMrpVPKKfoVz0WQCX+Tnst0i4A== -postcss-page-break@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-page-break/-/postcss-page-break-2.0.0.tgz#add52d0e0a528cabe6afee8b46e2abb277df46bf" - integrity sha512-tkpTSrLpfLfD9HvgOlJuigLuk39wVTbbd8RKcy8/ugV2bNBUW3xU+AIqyxhDrQr1VUj1RmyJrBn1YWrqUm9zAQ== +postcss-ordered-values@^5.1.3: + version "5.1.3" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz#b6fd2bd10f937b23d86bc829c69e7732ce76ea38" + integrity sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ== dependencies: - postcss "^7.0.2" + cssnano-utils "^3.1.0" + postcss-value-parser "^4.2.0" -postcss-place@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-place/-/postcss-place-4.0.1.tgz#e9f39d33d2dc584e46ee1db45adb77ca9d1dcc62" - integrity sha512-Zb6byCSLkgRKLODj/5mQugyuj9bvAAw9LqJJjgwz5cYryGeXfFZfSXoP1UfveccFmeq0b/2xxwcTEVScnqGxBg== - dependencies: - postcss "^7.0.2" - postcss-values-parser "^2.0.0" - -postcss-preset-env@6.7.0: - version "6.7.0" - resolved "https://registry.yarnpkg.com/postcss-preset-env/-/postcss-preset-env-6.7.0.tgz#c34ddacf8f902383b35ad1e030f178f4cdf118a5" - integrity sha512-eU4/K5xzSFwUFJ8hTdTQzo2RBLbDVt83QZrAvI07TULOkmyQlnYlpwep+2yIK+K+0KlZO4BvFcleOCCcUtwchg== - dependencies: - autoprefixer "^9.6.1" - browserslist "^4.6.4" - caniuse-lite "^1.0.30000981" - css-blank-pseudo "^0.1.4" - css-has-pseudo "^0.10.0" - css-prefers-color-scheme "^3.1.1" - cssdb "^4.4.0" - postcss "^7.0.17" - postcss-attribute-case-insensitive "^4.0.1" - postcss-color-functional-notation "^2.0.1" - postcss-color-gray "^5.0.0" - postcss-color-hex-alpha "^5.0.3" - postcss-color-mod-function "^3.0.3" - postcss-color-rebeccapurple "^4.0.1" - postcss-custom-media "^7.0.8" - postcss-custom-properties "^8.0.11" - postcss-custom-selectors "^5.1.2" - postcss-dir-pseudo-class "^5.0.0" - postcss-double-position-gradients "^1.0.0" - postcss-env-function "^2.0.2" - postcss-focus-visible "^4.0.0" - postcss-focus-within "^3.0.0" - postcss-font-variant "^4.0.0" - postcss-gap-properties "^2.0.0" - postcss-image-set-function "^3.0.1" - postcss-initial "^3.0.0" - postcss-lab-function "^2.0.1" - postcss-logical "^3.0.0" - postcss-media-minmax "^4.0.0" - postcss-nesting "^7.0.0" - postcss-overflow-shorthand "^2.0.0" - postcss-page-break "^2.0.0" - postcss-place "^4.0.1" - postcss-pseudo-class-any-link "^6.0.0" - postcss-replace-overflow-wrap "^3.0.0" - postcss-selector-matches "^4.0.0" - postcss-selector-not "^4.0.0" - -postcss-pseudo-class-any-link@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-6.0.0.tgz#2ed3eed393b3702879dec4a87032b210daeb04d1" - integrity sha512-lgXW9sYJdLqtmw23otOzrtbDXofUdfYzNm4PIpNE322/swES3VU9XlXHeJS46zT2onFO7V1QFdD4Q9LiZj8mew== +postcss-overflow-shorthand@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.4.tgz#7ed6486fec44b76f0eab15aa4866cda5d55d893e" + integrity sha512-otYl/ylHK8Y9bcBnPLo3foYFLL6a6Ak+3EQBPOTR7luMYCOsiVTUk1iLvNf6tVPNGXcoL9Hoz37kpfriRIFb4A== dependencies: - postcss "^7.0.2" - postcss-selector-parser "^5.0.0-rc.3" + postcss-value-parser "^4.2.0" -postcss-reduce-initial@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz#7fd42ebea5e9c814609639e2c2e84ae270ba48df" - integrity sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA== - dependencies: - browserslist "^4.0.0" - caniuse-api "^3.0.0" - has "^1.0.0" - postcss "^7.0.0" +postcss-page-break@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/postcss-page-break/-/postcss-page-break-3.0.4.tgz#7fbf741c233621622b68d435babfb70dd8c1ee5f" + integrity sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ== -postcss-reduce-transforms@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz#17efa405eacc6e07be3414a5ca2d1074681d4e29" - integrity sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg== +postcss-place@^7.0.5: + version "7.0.5" + resolved "https://registry.yarnpkg.com/postcss-place/-/postcss-place-7.0.5.tgz#95dbf85fd9656a3a6e60e832b5809914236986c4" + integrity sha512-wR8igaZROA6Z4pv0d+bvVrvGY4GVHihBCBQieXFY3kuSuMyOmEnnfFzHl/tQuqHZkfkIVBEbDvYcFfHmpSet9g== dependencies: - cssnano-util-get-match "^4.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" + postcss-value-parser "^4.2.0" -postcss-replace-overflow-wrap@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-3.0.0.tgz#61b360ffdaedca84c7c918d2b0f0d0ea559ab01c" - integrity sha512-2T5hcEHArDT6X9+9dVSPQdo7QHzG4XKclFT8rU5TzJPDN7RIRTbO9c4drUISOVemLj03aezStHCR2AIcr8XLpw== +postcss-preset-env@^7.0.1: + version "7.8.3" + resolved "https://registry.yarnpkg.com/postcss-preset-env/-/postcss-preset-env-7.8.3.tgz#2a50f5e612c3149cc7af75634e202a5b2ad4f1e2" + integrity sha512-T1LgRm5uEVFSEF83vHZJV2z19lHg4yJuZ6gXZZkqVsqv63nlr6zabMH3l4Pc01FQCyfWVrh2GaUeCVy9Po+Aag== + dependencies: + "@csstools/postcss-cascade-layers" "^1.1.1" + "@csstools/postcss-color-function" "^1.1.1" + "@csstools/postcss-font-format-keywords" "^1.0.1" + "@csstools/postcss-hwb-function" "^1.0.2" + "@csstools/postcss-ic-unit" "^1.0.1" + "@csstools/postcss-is-pseudo-class" "^2.0.7" + "@csstools/postcss-nested-calc" "^1.0.0" + "@csstools/postcss-normalize-display-values" "^1.0.1" + "@csstools/postcss-oklab-function" "^1.1.1" + "@csstools/postcss-progressive-custom-properties" "^1.3.0" + "@csstools/postcss-stepped-value-functions" "^1.0.1" + "@csstools/postcss-text-decoration-shorthand" "^1.0.0" + "@csstools/postcss-trigonometric-functions" "^1.0.2" + "@csstools/postcss-unset-value" "^1.0.2" + autoprefixer "^10.4.13" + browserslist "^4.21.4" + css-blank-pseudo "^3.0.3" + css-has-pseudo "^3.0.4" + css-prefers-color-scheme "^6.0.3" + cssdb "^7.1.0" + postcss-attribute-case-insensitive "^5.0.2" + postcss-clamp "^4.1.0" + postcss-color-functional-notation "^4.2.4" + postcss-color-hex-alpha "^8.0.4" + postcss-color-rebeccapurple "^7.1.1" + postcss-custom-media "^8.0.2" + postcss-custom-properties "^12.1.10" + postcss-custom-selectors "^6.0.3" + postcss-dir-pseudo-class "^6.0.5" + postcss-double-position-gradients "^3.1.2" + postcss-env-function "^4.0.6" + postcss-focus-visible "^6.0.4" + postcss-focus-within "^5.0.4" + postcss-font-variant "^5.0.0" + postcss-gap-properties "^3.0.5" + postcss-image-set-function "^4.0.7" + postcss-initial "^4.0.1" + postcss-lab-function "^4.2.1" + postcss-logical "^5.0.4" + postcss-media-minmax "^5.0.0" + postcss-nesting "^10.2.0" + postcss-opacity-percentage "^1.1.2" + postcss-overflow-shorthand "^3.0.4" + postcss-page-break "^3.0.4" + postcss-place "^7.0.5" + postcss-pseudo-class-any-link "^7.1.6" + postcss-replace-overflow-wrap "^4.0.0" + postcss-selector-not "^6.0.1" + postcss-value-parser "^4.2.0" + +postcss-pseudo-class-any-link@^7.1.6: + version "7.1.6" + resolved "https://registry.yarnpkg.com/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.6.tgz#2693b221902da772c278def85a4d9a64b6e617ab" + integrity sha512-9sCtZkO6f/5ML9WcTLcIyV1yz9D1rf0tWc+ulKcvV30s0iZKS/ONyETvoWsr6vnrmW+X+KmuK3gV/w5EWnT37w== + dependencies: + postcss-selector-parser "^6.0.10" + +postcss-reduce-initial@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-5.1.2.tgz#798cd77b3e033eae7105c18c9d371d989e1382d6" + integrity sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg== dependencies: - postcss "^7.0.2" + browserslist "^4.21.4" + caniuse-api "^3.0.0" -postcss-safe-parser@5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/postcss-safe-parser/-/postcss-safe-parser-5.0.2.tgz#459dd27df6bc2ba64608824ba39e45dacf5e852d" - integrity sha512-jDUfCPJbKOABhwpUKcqCVbbXiloe/QXMcbJ6Iipf3sDIihEzTqRCeMBfRaOHxhBuTYqtASrI1KJWxzztZU4qUQ== +postcss-reduce-transforms@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz#333b70e7758b802f3dd0ddfe98bb1ccfef96b6e9" + integrity sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ== dependencies: - postcss "^8.1.0" + postcss-value-parser "^4.2.0" -postcss-selector-matches@^4.0.0: +postcss-replace-overflow-wrap@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-selector-matches/-/postcss-selector-matches-4.0.0.tgz#71c8248f917ba2cc93037c9637ee09c64436fcff" - integrity sha512-LgsHwQR/EsRYSqlwdGzeaPKVT0Ml7LAT6E75T8W8xLJY62CE4S/l03BWIt3jT8Taq22kXP08s2SfTSzaraoPww== - dependencies: - balanced-match "^1.0.0" - postcss "^7.0.2" - -postcss-selector-not@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-selector-not/-/postcss-selector-not-4.0.1.tgz#263016eef1cf219e0ade9a913780fc1f48204cbf" - integrity sha512-YolvBgInEK5/79C+bdFMyzqTg6pkYqDbzZIST/PDMqa/o3qtXenD05apBG2jLgT0/BQ77d4U2UK12jWpilqMAQ== - dependencies: - balanced-match "^1.0.0" - postcss "^7.0.2" + resolved "https://registry.yarnpkg.com/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz#d2df6bed10b477bf9c52fab28c568b4b29ca4319" + integrity sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw== -postcss-selector-parser@^3.0.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz#b310f5c4c0fdaf76f94902bbaa30db6aa84f5270" - integrity sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA== - dependencies: - dot-prop "^5.2.0" - indexes-of "^1.0.1" - uniq "^1.0.1" - -postcss-selector-parser@^5.0.0-rc.3, postcss-selector-parser@^5.0.0-rc.4: - version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz#249044356697b33b64f1a8f7c80922dddee7195c" - integrity sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ== +postcss-selector-not@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/postcss-selector-not/-/postcss-selector-not-6.0.1.tgz#8f0a709bf7d4b45222793fc34409be407537556d" + integrity sha512-1i9affjAe9xu/y9uqWH+tD4r6/hDaXJruk8xn2x1vzxC2U3J3LKO3zJW4CyxlNhA56pADJ/djpEwpH1RClI2rQ== dependencies: - cssesc "^2.0.0" - indexes-of "^1.0.1" - uniq "^1.0.1" + postcss-selector-parser "^6.0.10" -postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2: - version "6.0.8" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.8.tgz#f023ed7a9ea736cd7ef70342996e8e78645a7914" - integrity sha512-D5PG53d209Z1Uhcc0qAZ5U3t5HagH3cxu+WLZ22jt3gLUpXM4eXXfiO14jiDWST3NNooX/E8wISfOhZ9eIjGTQ== +postcss-selector-parser@^6.0.10, postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5, postcss-selector-parser@^6.0.9: + version "6.0.16" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz#3b88b9f5c5abd989ef4e2fc9ec8eedd34b20fb04" + integrity sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw== dependencies: cssesc "^3.0.0" util-deprecate "^1.0.2" -postcss-svgo@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.3.tgz#343a2cdbac9505d416243d496f724f38894c941e" - integrity sha512-NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw== +postcss-svgo@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-5.1.0.tgz#0a317400ced789f233a28826e77523f15857d80d" + integrity sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA== dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - svgo "^1.0.0" + postcss-value-parser "^4.2.0" + svgo "^2.7.0" -postcss-unique-selectors@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac" - integrity sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg== +postcss-unique-selectors@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz#a9f273d1eacd09e9aa6088f4b0507b18b1b541b6" + integrity sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA== dependencies: - alphanum-sort "^1.0.0" - postcss "^7.0.0" - uniqs "^2.0.0" - -postcss-value-parser@^3.0.0: - version "3.3.1" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" - integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== + postcss-selector-parser "^6.0.5" -postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0: +postcss-value-parser@^4.0.0, postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== -postcss-values-parser@^2.0.0, postcss-values-parser@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz#da8b472d901da1e205b47bdc98637b9e9e550e5f" - integrity sha512-2tLuBsA6P4rYTNKCXYG/71C7j1pU6pK503suYOmn4xYrQIzW+opD+7FAFNuGSdZC/3Qfy334QbeMu7MEb8gOxg== - dependencies: - flatten "^1.0.2" - indexes-of "^1.0.1" - uniq "^1.0.1" - postcss@7.0.36: version "7.0.36" resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.36.tgz#056f8cffa939662a8f5905950c07d5285644dfcb" @@ -12142,7 +10826,7 @@ postcss@7.0.36: source-map "^0.6.1" supports-color "^6.1.0" -postcss@^7, postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.17, postcss@^7.0.2, postcss@^7.0.26, postcss@^7.0.27, postcss@^7.0.32, postcss@^7.0.5, postcss@^7.0.6: +postcss@^7.0.35: version "7.0.39" resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.39.tgz#9624375d965630e2e1f2c02a935c82a59cb48309" integrity sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA== @@ -12150,29 +10834,19 @@ postcss@^7, postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.17, po picocolors "^0.2.1" source-map "^0.6.1" -postcss@^8.1.0: - version "8.4.5" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.5.tgz#bae665764dfd4c6fcc24dc0fdf7e7aa00cc77f95" - integrity sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg== +postcss@^8.3.5, postcss@^8.4.23, postcss@^8.4.33, postcss@^8.4.38, postcss@^8.4.4: + version "8.4.38" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.38.tgz#b387d533baf2054288e337066d81c6bee9db9e0e" + integrity sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A== dependencies: - nanoid "^3.1.30" + nanoid "^3.3.7" picocolors "^1.0.0" - source-map-js "^1.0.1" - -preact@10.4.1: - version "10.4.1" - resolved "https://registry.yarnpkg.com/preact/-/preact-10.4.1.tgz#9b3ba020547673a231c6cf16f0fbaef0e8863431" - integrity sha512-WKrRpCSwL2t3tpOOGhf2WfTpcmbpxaWtDbdJdKdjd0aEiTkvOmS4NBkG6kzlaAHI9AkQ3iVqbFWM3Ei7mZ4o1Q== + source-map-js "^1.2.0" -preact@^10.5.9: - version "10.6.4" - resolved "https://registry.yarnpkg.com/preact/-/preact-10.6.4.tgz#ad12c409ff1b4316158486e0a7b8d43636f7ced8" - integrity sha512-WyosM7pxGcndU8hY0OQlLd54tOU+qmG45QXj2dAYrL11HoyU/EzOSTlpJsirbBr1QW7lICxSsVJJmcmUglovHQ== - -precond@0.2: - version "0.2.3" - resolved "https://registry.yarnpkg.com/precond/-/precond-0.2.3.tgz#aa9591bcaa24923f1e0f4849d240f47efc1075ac" - integrity sha1-qpWRvKokkj8eD0hJ0kD0fvwQdaw= +preact@^10.16.0, preact@^10.5.9: + version "10.21.0" + resolved "https://registry.yarnpkg.com/preact/-/preact-10.21.0.tgz#5b0335c873a1724deb66e517830db4fd310c24f6" + integrity sha512-aQAIxtzWEwH8ou+OovWVSVNlFImL7xUCwJX3YMqA3U8iKCNC34999fFOnWjYNsylgfPgMexpbk7WYOLtKr/mxg== prelude-ls@^1.2.1: version "1.2.1" @@ -12182,39 +10856,27 @@ prelude-ls@^1.2.1: prelude-ls@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= - -prepend-http@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" - integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= - -prettier-linter-helpers@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" - integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== - dependencies: - fast-diff "^1.1.2" + integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== prettier@^2.1.2: - version "2.5.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.5.1.tgz#fff75fa9d519c54cf0fce328c1017d94546bc56a" - integrity sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg== + version "2.8.8" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" + integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== -pretty-bytes@^5.3.0: +pretty-bytes@^5.3.0, pretty-bytes@^5.4.1: version "5.6.0" resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb" integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg== -pretty-error@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.2.tgz#be89f82d81b1c86ec8fdfbc385045882727f93b6" - integrity sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw== +pretty-error@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-4.0.0.tgz#90a703f46dd7234adb46d0f84823e9d1cb8f10d6" + integrity sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw== dependencies: lodash "^4.17.20" - renderkid "^2.0.4" + renderkid "^3.0.0" -pretty-format@^26.0.0, pretty-format@^26.6.0, pretty-format@^26.6.2: +pretty-format@^26.0.0, pretty-format@^26.6.2: version "26.6.2" resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.6.2.tgz#e35c2705f14cb7fe2fe94fa078345b444120fc93" integrity sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg== @@ -12224,15 +10886,34 @@ pretty-format@^26.0.0, pretty-format@^26.6.0, pretty-format@^26.6.2: ansi-styles "^4.0.0" react-is "^17.0.1" -pretty-format@^27.0.0, pretty-format@^27.4.6: - version "27.4.6" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.4.6.tgz#1b784d2f53c68db31797b2348fa39b49e31846b7" - integrity sha512-NblstegA1y/RJW2VyML+3LlpFjzx62cUrtBIKIWDXEDkjNeleA7Od7nrzcs/VLQvAeV4CgSYhrN39DRN88Qi/g== +pretty-format@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.5.1.tgz#2181879fdea51a7a5851fb39d920faa63f01d88e" + integrity sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ== dependencies: ansi-regex "^5.0.1" ansi-styles "^5.0.0" react-is "^17.0.1" +pretty-format@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-28.1.3.tgz#c9fba8cedf99ce50963a11b27d982a9ae90970d5" + integrity sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q== + dependencies: + "@jest/schemas" "^28.1.3" + ansi-regex "^5.0.1" + ansi-styles "^5.0.0" + react-is "^18.0.0" + +pretty-format@^29.0.0, pretty-format@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz#ca42c758310f365bfa71a0bda0a807160b776812" + integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ== + dependencies: + "@jest/schemas" "^29.6.3" + ansi-styles "^5.0.0" + react-is "^18.0.0" + pretty-quick@3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/pretty-quick/-/pretty-quick-3.1.0.tgz#cb172e9086deb57455dea7c7e8f136cd0a4aef6c" @@ -12245,55 +10926,24 @@ pretty-quick@3.1.0: mri "^1.1.5" multimatch "^4.0.0" -private@^0.1.6, private@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" - integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== - process-nextick-args@~2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== -process@^0.11.10: - version "0.11.10" - resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" - integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= - -progress@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" - integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== - -promise-inflight@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" - integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= - -promise-to-callback@^1.0.0: +process-warning@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/promise-to-callback/-/promise-to-callback-1.0.0.tgz#5d2a749010bfb67d963598fcd3960746a68feef7" - integrity sha1-XSp0kBC/tn2WNZj805YHRqaP7vc= - dependencies: - is-fn "^1.0.0" - set-immediate-shim "^1.0.1" + resolved "https://registry.yarnpkg.com/process-warning/-/process-warning-1.0.0.tgz#980a0b25dc38cd6034181be4b7726d89066b4616" + integrity sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q== promise@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/promise/-/promise-8.1.0.tgz#697c25c3dfe7435dd79fcd58c38a135888eaf05e" - integrity sha512-W04AqnILOL/sPRXziNicCjSNRruLAuIHEOVBazepu0545DDNGYHz7ar9ZgZ1fMU8/MA4mVxp5rkBWRi6OXIy3Q== + version "8.3.0" + resolved "https://registry.yarnpkg.com/promise/-/promise-8.3.0.tgz#8cb333d1edeb61ef23869fbb8a4ea0279ab60e0a" + integrity sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg== dependencies: asap "~2.0.6" -prompts@2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.0.tgz#4aa5de0723a231d1ee9121c40fdf663df73f61d7" - integrity sha512-awZAKrk3vN6CroQukBL+R9051a4R3zCZBlJm/HBfrSZ8iTpYix3VX1vU4mveiLpiwmOJT4wokTF9m6HUk4KqWQ== - dependencies: - kleur "^3.0.3" - sisteransi "^1.0.5" - -prompts@^2.0.1: +prompts@^2.0.1, prompts@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== @@ -12309,7 +10959,7 @@ prop-types-extra@^1.1.0: react-is "^16.3.2" warning "^4.0.0" -prop-types@^15.5.10, prop-types@^15.6.2, prop-types@^15.7.2: +prop-types@^15.5.10, prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.2, prop-types@^15.8.1: version "15.8.1" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== @@ -12326,40 +10976,15 @@ proxy-addr@~2.0.7: forwarded "0.2.0" ipaddr.js "1.9.1" -prr@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" - integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= - -pseudomap@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" - integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= - -psl@^1.1.28, psl@^1.1.33: - version "1.8.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" - integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== - -public-encrypt@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" - integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== - dependencies: - bn.js "^4.1.0" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - parse-asn1 "^5.0.0" - randombytes "^2.0.1" - safe-buffer "^5.1.2" +proxy-compare@2.5.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/proxy-compare/-/proxy-compare-2.5.1.tgz#17818e33d1653fbac8c2ec31406bce8a2966f600" + integrity sha512-oyfc0Tx87Cpwva5ZXezSp5V9vht1c7dZBhvuV/y3ctkgMVUmiAGDVeeB0dKhGSyT0v1ZTEQYpe/RXlBVBNuCLA== -pump@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" - integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" +psl@^1.1.33: + version "1.9.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" + integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== pump@^3.0.0: version "3.0.0" @@ -12369,98 +10994,49 @@ pump@^3.0.0: end-of-stream "^1.1.0" once "^1.3.1" -pumpify@^1.3.3: - version "1.5.1" - resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" - integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== - dependencies: - duplexify "^3.6.0" - inherits "^2.0.3" - pump "^2.0.0" - -punycode@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" - integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= - -punycode@^1.2.4: - version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= - punycode@^2.1.0, punycode@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + version "2.3.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" + integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== q@^1.1.2: version "1.5.1" resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" - integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= + integrity sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw== -qrcode@1.4.4: - version "1.4.4" - resolved "https://registry.yarnpkg.com/qrcode/-/qrcode-1.4.4.tgz#f0c43568a7e7510a55efc3b88d9602f71963ea83" - integrity sha512-oLzEC5+NKFou9P0bMj5+v6Z40evexeE29Z9cummZXZ9QXyMr3lphkURzxjXgPJC5azpxcshoDWV1xE46z+/c3Q== +qrcode@1.5.3: + version "1.5.3" + resolved "https://registry.yarnpkg.com/qrcode/-/qrcode-1.5.3.tgz#03afa80912c0dccf12bc93f615a535aad1066170" + integrity sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg== dependencies: - buffer "^5.4.3" - buffer-alloc "^1.2.0" - buffer-from "^1.1.1" dijkstrajs "^1.0.1" - isarray "^2.0.1" - pngjs "^3.3.0" - yargs "^13.2.4" - -qs@6.9.6: - version "6.9.6" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.6.tgz#26ed3c8243a431b2924aca84cc90471f35d5a0ee" - integrity sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ== - -qs@~6.5.2: - version "6.5.3" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" - integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== + encode-utf8 "^1.0.3" + pngjs "^5.0.0" + yargs "^15.3.1" -query-string@6.13.5: - version "6.13.5" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.13.5.tgz#99e95e2fb7021db90a6f373f990c0c814b3812d8" - integrity sha512-svk3xg9qHR39P3JlHuD7g3nRnyay5mHbrPctEBDUxUkHRifPHXJDhBUycdCC0NBjXoDf44Gb+IsOZL1Uwn8M/Q== +qs@6.11.0: + version "6.11.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" + integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== dependencies: - decode-uri-component "^0.2.0" - split-on-first "^1.0.0" - strict-uri-encode "^2.0.0" + side-channel "^1.0.4" -query-string@^4.1.0: - version "4.3.4" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" - integrity sha1-u7aTucqRXCMlFbIosaArYJBD2+s= +qs@^6.11.0: + version "6.12.1" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.12.1.tgz#39422111ca7cbdb70425541cba20c7d7b216599a" + integrity sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ== dependencies: - object-assign "^4.1.0" - strict-uri-encode "^1.0.0" + side-channel "^1.0.6" -query-string@^5.0.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-5.1.1.tgz#a78c012b71c17e05f2e3fa2319dd330682efb3cb" - integrity sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw== +query-string@7.1.3: + version "7.1.3" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-7.1.3.tgz#a1cf90e994abb113a325804a972d98276fe02328" + integrity sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg== dependencies: - decode-uri-component "^0.2.0" - object-assign "^4.1.0" - strict-uri-encode "^1.0.0" - -querystring-es3@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" - integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= - -querystring@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" - integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= - -querystring@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.1.tgz#40d77615bb09d16902a85c3e38aa8b5ed761c2dd" - integrity sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg== + decode-uri-component "^0.2.2" + filter-obj "^1.1.0" + split-on-first "^1.0.0" + strict-uri-encode "^2.0.0" querystringify@^2.1.1: version "2.2.0" @@ -12472,10 +11048,15 @@ queue-microtask@^1.2.2: resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== -quick-lru@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-1.1.0.tgz#4360b17c61136ad38078397ff11416e186dcfbb8" - integrity sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g= +quick-format-unescaped@^4.0.3: + version "4.0.4" + resolved "https://registry.yarnpkg.com/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz#93ef6dd8d3453cbc7970dd614fad4c5954d6b5a7" + integrity sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg== + +radix3@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/radix3/-/radix3-1.1.2.tgz#fd27d2af3896c6bf4bcdfab6427c69c2afc69ec0" + integrity sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA== raf@^3.4.1: version "3.4.1" @@ -12484,52 +11065,39 @@ raf@^3.4.1: dependencies: performance-now "^2.1.0" -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: +randombytes@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== dependencies: safe-buffer "^5.1.0" -randomfill@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" - integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== - dependencies: - randombytes "^2.0.5" - safe-buffer "^5.1.0" - -randomhex@0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/randomhex/-/randomhex-0.1.5.tgz#baceef982329091400f2a2912c6cd02f1094f585" - integrity sha1-us7vmCMpCRQA8qKRLGzQLxCU9YU= - range-parser@^1.2.1, range-parser@~1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== -raw-body@2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.2.tgz#baf3e9c21eebced59dd6533ac872b71f7b61cb32" - integrity sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ== +raw-body@2.5.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a" + integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== dependencies: - bytes "3.1.1" - http-errors "1.8.1" + bytes "3.1.2" + http-errors "2.0.0" iconv-lite "0.4.24" unpipe "1.0.0" -react-app-polyfill@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/react-app-polyfill/-/react-app-polyfill-2.0.0.tgz#a0bea50f078b8a082970a9d853dc34b6dcc6a3cf" - integrity sha512-0sF4ny9v/B7s6aoehwze9vJNWcmCemAUYBVasscVr92+UYiEqDXOxfKjXN685mDaMRNF3WdhHQs76oTODMocFA== +react-app-polyfill@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/react-app-polyfill/-/react-app-polyfill-3.0.0.tgz#95221e0a9bd259e5ca6b177c7bb1cb6768f68fd7" + integrity sha512-sZ41cxiU5llIB003yxxQBYrARBqe0repqPTTYBTmMqTz9szeBbE37BehCE891NZsmdZqqP+xWKdT3eo3vOzN8w== dependencies: - core-js "^3.6.5" + core-js "^3.19.2" object-assign "^4.1.1" promise "^8.1.0" raf "^3.4.1" - regenerator-runtime "^0.13.7" - whatwg-fetch "^3.4.1" + regenerator-runtime "^0.13.9" + whatwg-fetch "^3.6.2" react-blockies@^1.4.1: version "1.4.1" @@ -12538,87 +11106,79 @@ react-blockies@^1.4.1: dependencies: prop-types "^15.5.10" -react-bootstrap@^1.4.0: - version "1.6.4" - resolved "https://registry.yarnpkg.com/react-bootstrap/-/react-bootstrap-1.6.4.tgz#94d5d2422e26bba277656d3529128e14f838b7ca" - integrity sha512-z3BhBD4bEZuLP8VrYqAD7OT7axdcSkkyvWBWnS2U/4MhyabUihrUyucPWkan7aMI1XIHbmH4LCpEtzWGfx/yfA== - dependencies: - "@babel/runtime" "^7.14.0" - "@restart/context" "^2.1.4" - "@restart/hooks" "^0.3.26" - "@types/invariant" "^2.2.33" - "@types/prop-types" "^15.7.3" - "@types/react" ">=16.14.8" - "@types/react-transition-group" "^4.4.1" - "@types/warning" "^3.0.0" - classnames "^2.3.1" +react-bootstrap@^2.5.0: + version "2.10.2" + resolved "https://registry.yarnpkg.com/react-bootstrap/-/react-bootstrap-2.10.2.tgz#3b609eb0170e31b3d9ace297d3a016c202a42642" + integrity sha512-UvB7mRqQjivdZNxJNEA2yOQRB7L9N43nBnKc33K47+cH90/ujmnMwatTCwQLu83gLhrzAl8fsa6Lqig/KLghaA== + dependencies: + "@babel/runtime" "^7.22.5" + "@restart/hooks" "^0.4.9" + "@restart/ui" "^1.6.8" + "@types/react-transition-group" "^4.4.6" + classnames "^2.3.2" dom-helpers "^5.2.1" invariant "^2.2.4" - prop-types "^15.7.2" + prop-types "^15.8.1" prop-types-extra "^1.1.0" - react-overlays "^5.1.1" - react-transition-group "^4.4.1" + react-transition-group "^4.4.5" uncontrollable "^7.2.1" warning "^4.0.3" -react-dev-utils@^11.0.0: - version "11.0.4" - resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-11.0.4.tgz#a7ccb60257a1ca2e0efe7a83e38e6700d17aa37a" - integrity sha512-dx0LvIGHcOPtKbeiSUM4jqpBl3TcY7CDjZdfOIcKeznE7BWr9dg0iPG90G5yfVQ+p/rGNMXdbfStvzQZEVEi4A== - dependencies: - "@babel/code-frame" "7.10.4" - address "1.1.2" - browserslist "4.14.2" - chalk "2.4.2" - cross-spawn "7.0.3" - detect-port-alt "1.1.6" - escape-string-regexp "2.0.0" - filesize "6.1.0" - find-up "4.1.0" - fork-ts-checker-webpack-plugin "4.1.6" - global-modules "2.0.0" - globby "11.0.1" - gzip-size "5.1.1" - immer "8.0.1" - is-root "2.1.0" - loader-utils "2.0.0" - open "^7.0.2" - pkg-up "3.1.0" - prompts "2.4.0" - react-error-overlay "^6.0.9" - recursive-readdir "2.2.2" - shell-quote "1.7.2" - strip-ansi "6.0.0" - text-table "0.2.0" - -react-dom@^16.8.6: - version "16.14.0" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.14.0.tgz#7ad838ec29a777fb3c75c3a190f661cf92ab8b89" - integrity sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - prop-types "^15.6.2" - scheduler "^0.19.1" +react-dev-utils@^12.0.1: + version "12.0.1" + resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-12.0.1.tgz#ba92edb4a1f379bd46ccd6bcd4e7bc398df33e73" + integrity sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ== + dependencies: + "@babel/code-frame" "^7.16.0" + address "^1.1.2" + browserslist "^4.18.1" + chalk "^4.1.2" + cross-spawn "^7.0.3" + detect-port-alt "^1.1.6" + escape-string-regexp "^4.0.0" + filesize "^8.0.6" + find-up "^5.0.0" + fork-ts-checker-webpack-plugin "^6.5.0" + global-modules "^2.0.0" + globby "^11.0.4" + gzip-size "^6.0.0" + immer "^9.0.7" + is-root "^2.1.0" + loader-utils "^3.2.0" + open "^8.4.0" + pkg-up "^3.1.0" + prompts "^2.4.2" + react-error-overlay "^6.0.11" + recursive-readdir "^2.2.2" + shell-quote "^1.7.3" + strip-ansi "^6.0.1" + text-table "^0.2.0" -react-dom@^17.0.1: - version "17.0.2" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-17.0.2.tgz#ecffb6845e3ad8dbfcdc498f0d0a939736502c23" - integrity sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA== +react-dom@>=17, react-dom@^18.0.0: + version "18.3.1" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.3.1.tgz#c2265d79511b57d479b3dd3fdfa51536494c5cb4" + integrity sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw== dependencies: loose-envify "^1.1.0" - object-assign "^4.1.1" - scheduler "^0.20.2" + scheduler "^0.23.2" + +react-error-overlay@^6.0.11: + version "6.0.11" + resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.11.tgz#92835de5841c5cf08ba00ddd2d677b6d17ff9adb" + integrity sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg== -react-error-overlay@^6.0.9: - version "6.0.10" - resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.10.tgz#0fe26db4fa85d9dbb8624729580e90e7159a59a6" - integrity sha512-mKR90fX7Pm5seCOfz8q9F+66VCc1PGsWSBxKbITjfKVQHMNF2zudxHnMdJiB1fRCb+XsbQV9sO9DCkgsMQgBIA== +react-i18next@^11.15.3: + version "11.18.6" + resolved "https://registry.yarnpkg.com/react-i18next/-/react-i18next-11.18.6.tgz#e159c2960c718c1314f1e8fcaa282d1c8b167887" + integrity sha512-yHb2F9BiT0lqoQDt8loZ5gWP331GwctHz9tYQ8A2EIEUu+CcEdjBLQWli1USG3RdWQt3W+jqQLg/d4rrQR96LA== + dependencies: + "@babel/runtime" "^7.14.5" + html-parse-stringify "^3.0.1" react-icons@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/react-icons/-/react-icons-4.3.1.tgz#2fa92aebbbc71f43d2db2ed1aed07361124e91ca" - integrity sha512-cB10MXLTs3gVuXimblAdI71jrJx8njrJZmNMEMC+sQu5B/BIOmlsAjskdqpn81y8UBVEGuHODd7/ci5DvoSzTQ== + version "4.12.0" + resolved "https://registry.yarnpkg.com/react-icons/-/react-icons-4.12.0.tgz#54806159a966961bfd5cdb26e492f4dafd6a8d78" + integrity sha512-IBaDuHiShdZqmfc/TwHu6+d6k2ltNCf3AszxNmjJc1KUfXdEeRJOKyNvLmAHaarhzGmTSVygNdyu8/opXv2gaw== react-is@^16.13.1, react-is@^16.3.2, react-is@^16.6.0, react-is@^16.7.0: version "16.13.1" @@ -12630,229 +11190,161 @@ react-is@^17.0.1: resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== +react-is@^18.0.0: + version "18.3.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz#e83557dc12eae63a99e003a46388b1dcbb44db7e" + integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg== + react-lifecycles-compat@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA== react-number-format@^4.4.1: - version "4.9.1" - resolved "https://registry.yarnpkg.com/react-number-format/-/react-number-format-4.9.1.tgz#62b3450b43c911f9227e770a8ea9fa606696e52e" - integrity sha512-v49XqXv7SpwYZKGkghNJjoDUr6lIUozlPLrObcxre7GfcLx7qD4TCvArn3GozN/Y4FVbLyEYCwJoBCiChdBh5A== + version "4.9.4" + resolved "https://registry.yarnpkg.com/react-number-format/-/react-number-format-4.9.4.tgz#013ae526000e676e491763ce14da66fb330a9bd8" + integrity sha512-Gq20Z3ugqPLFgeaidnx5on9cNpbQZntPN3QgNAL/WJrNNlQnNznY0LCx7g8xtssmRBw0/hw+SCqw6zAcajooiA== dependencies: prop-types "^15.7.2" -react-overlays@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/react-overlays/-/react-overlays-5.1.1.tgz#2e7cf49744b56537c7828ccb94cfc63dd778ae4f" - integrity sha512-eCN2s2/+GVZzpnId4XVWtvDPYYBD2EtOGP74hE+8yDskPzFy9+pV1H3ZZihxuRdEbQzzacySaaDkR7xE0ydl4Q== - dependencies: - "@babel/runtime" "^7.13.8" - "@popperjs/core" "^2.8.6" - "@restart/hooks" "^0.3.26" - "@types/warning" "^3.0.0" - dom-helpers "^5.2.0" - prop-types "^15.7.2" - uncontrollable "^7.2.1" - warning "^4.0.3" +react-refresh@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.11.0.tgz#77198b944733f0f1f1a90e791de4541f9f074046" + integrity sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A== -react-refresh@^0.8.3: - version "0.8.3" - resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.8.3.tgz#721d4657672d400c5e3c75d063c4a85fb2d5d68f" - integrity sha512-X8jZHc7nCMjaCqoU+V2I0cOhNW+QMBwSUkeXnTi8IPe6zaRWfn60ZzvFDZqWPfmSJfjub7dDW1SP0jaHWLu/hg== +react-responsive@^9.0.2: + version "9.0.2" + resolved "https://registry.yarnpkg.com/react-responsive/-/react-responsive-9.0.2.tgz#34531ca77a61e7a8775714016d21241df7e4205c" + integrity sha512-+4CCab7z8G8glgJoRjAwocsgsv6VA2w7JPxFWHRc7kvz8mec1/K5LutNC2MG28Mn8mu6+bu04XZxHv5gyfT7xQ== + dependencies: + hyphenate-style-name "^1.0.0" + matchmediaquery "^0.3.0" + prop-types "^15.6.1" + shallow-equal "^1.2.1" react-router-dom@^5.2.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-5.3.0.tgz#da1bfb535a0e89a712a93b97dd76f47ad1f32363" - integrity sha512-ObVBLjUZsphUUMVycibxgMdh5jJ1e3o+KpAZBVeHcNQZ4W+uUGGWsokurzlF4YOldQYRQL4y6yFRWM4m3svmuQ== + version "5.3.4" + resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-5.3.4.tgz#2ed62ffd88cae6db134445f4a0c0ae8b91d2e5e6" + integrity sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ== dependencies: "@babel/runtime" "^7.12.13" history "^4.9.0" loose-envify "^1.3.1" prop-types "^15.6.2" - react-router "5.2.1" + react-router "5.3.4" tiny-invariant "^1.0.2" tiny-warning "^1.0.0" -react-router@5.2.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/react-router/-/react-router-5.2.1.tgz#4d2e4e9d5ae9425091845b8dbc6d9d276239774d" - integrity sha512-lIboRiOtDLFdg1VTemMwud9vRVuOCZmUIT/7lUoZiSpPODiiH1UQlfXy+vPLC/7IWdFYnhRwAyNqA/+I7wnvKQ== +react-router@5.3.4: + version "5.3.4" + resolved "https://registry.yarnpkg.com/react-router/-/react-router-5.3.4.tgz#8ca252d70fcc37841e31473c7a151cf777887bb5" + integrity sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA== dependencies: "@babel/runtime" "^7.12.13" history "^4.9.0" hoist-non-react-statics "^3.1.0" loose-envify "^1.3.1" - mini-create-react-context "^0.4.0" path-to-regexp "^1.7.0" prop-types "^15.6.2" react-is "^16.6.0" tiny-invariant "^1.0.2" tiny-warning "^1.0.0" -react-scripts@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/react-scripts/-/react-scripts-4.0.0.tgz#36f3d84ffff708ac0618fd61e71eaaea11c26417" - integrity sha512-icJ/ctwV5XwITUOupBP9TUVGdWOqqZ0H08tbJ1kVC5VpNWYzEZ3e/x8axhV15ZXRsixLo27snwQE7B6Zd9J2Tg== - dependencies: - "@babel/core" "7.12.3" - "@pmmmwh/react-refresh-webpack-plugin" "0.4.2" - "@svgr/webpack" "5.4.0" - "@typescript-eslint/eslint-plugin" "^4.5.0" - "@typescript-eslint/parser" "^4.5.0" - babel-eslint "^10.1.0" - babel-jest "^26.6.0" - babel-loader "8.1.0" - babel-plugin-named-asset-import "^0.3.7" - babel-preset-react-app "^10.0.0" +react-scripts@5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/react-scripts/-/react-scripts-5.0.1.tgz#6285dbd65a8ba6e49ca8d651ce30645a6d980003" + integrity sha512-8VAmEm/ZAwQzJ+GOMLbBsTdDKOpuZh7RPs0UymvBR2vRk4iZWCskjbFnxqjrzoIvlNNRZ3QJFx6/qDSi6zSnaQ== + dependencies: + "@babel/core" "^7.16.0" + "@pmmmwh/react-refresh-webpack-plugin" "^0.5.3" + "@svgr/webpack" "^5.5.0" + babel-jest "^27.4.2" + babel-loader "^8.2.3" + babel-plugin-named-asset-import "^0.3.8" + babel-preset-react-app "^10.0.1" bfj "^7.0.2" - camelcase "^6.1.0" - case-sensitive-paths-webpack-plugin "2.3.0" - css-loader "4.3.0" - dotenv "8.2.0" - dotenv-expand "5.1.0" - eslint "^7.11.0" - eslint-config-react-app "^6.0.0" - eslint-plugin-flowtype "^5.2.0" - eslint-plugin-import "^2.22.1" - eslint-plugin-jest "^24.1.0" - eslint-plugin-jsx-a11y "^6.3.1" - eslint-plugin-react "^7.21.5" - eslint-plugin-react-hooks "^4.2.0" - eslint-plugin-testing-library "^3.9.2" - eslint-webpack-plugin "^2.1.0" - file-loader "6.1.1" - fs-extra "^9.0.1" - html-webpack-plugin "4.5.0" - identity-obj-proxy "3.0.0" - jest "26.6.0" - jest-circus "26.6.0" - jest-resolve "26.6.0" - jest-watch-typeahead "0.6.1" - mini-css-extract-plugin "0.11.3" - optimize-css-assets-webpack-plugin "5.0.4" - pnp-webpack-plugin "1.6.4" - postcss-flexbugs-fixes "4.2.1" - postcss-loader "3.0.0" - postcss-normalize "8.0.1" - postcss-preset-env "6.7.0" - postcss-safe-parser "5.0.2" - react-app-polyfill "^2.0.0" - react-dev-utils "^11.0.0" - react-refresh "^0.8.3" - resolve "1.18.1" - resolve-url-loader "^3.1.2" - sass-loader "8.0.2" - semver "7.3.2" - style-loader "1.3.0" - terser-webpack-plugin "4.2.3" - ts-pnp "1.2.0" - url-loader "4.1.1" - webpack "4.44.2" - webpack-dev-server "3.11.0" - webpack-manifest-plugin "2.2.0" - workbox-webpack-plugin "5.1.4" + browserslist "^4.18.1" + camelcase "^6.2.1" + case-sensitive-paths-webpack-plugin "^2.4.0" + css-loader "^6.5.1" + css-minimizer-webpack-plugin "^3.2.0" + dotenv "^10.0.0" + dotenv-expand "^5.1.0" + eslint "^8.3.0" + eslint-config-react-app "^7.0.1" + eslint-webpack-plugin "^3.1.1" + file-loader "^6.2.0" + fs-extra "^10.0.0" + html-webpack-plugin "^5.5.0" + identity-obj-proxy "^3.0.0" + jest "^27.4.3" + jest-resolve "^27.4.2" + jest-watch-typeahead "^1.0.0" + mini-css-extract-plugin "^2.4.5" + postcss "^8.4.4" + postcss-flexbugs-fixes "^5.0.2" + postcss-loader "^6.2.1" + postcss-normalize "^10.0.1" + postcss-preset-env "^7.0.1" + prompts "^2.4.2" + react-app-polyfill "^3.0.0" + react-dev-utils "^12.0.1" + react-refresh "^0.11.0" + resolve "^1.20.0" + resolve-url-loader "^4.0.0" + sass-loader "^12.3.0" + semver "^7.3.5" + source-map-loader "^3.0.0" + style-loader "^3.3.1" + tailwindcss "^3.0.2" + terser-webpack-plugin "^5.2.5" + webpack "^5.64.4" + webpack-dev-server "^4.6.0" + webpack-manifest-plugin "^4.0.2" + workbox-webpack-plugin "^6.4.1" optionalDependencies: - fsevents "^2.1.3" + fsevents "^2.3.2" react-swipeable@^6.1.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/react-swipeable/-/react-swipeable-6.2.0.tgz#057271cb7a6fb4af9d2a3f6d80ccdf33e2f64d47" - integrity sha512-nWQ8dEM8e/uswZLSIkXUsAnQmnX4MTcryOHBQIQYRMJFDpgDBSiVbKsz/BZVCIScF4NtJh16oyxwaNOepR6xSw== + version "6.2.2" + resolved "https://registry.yarnpkg.com/react-swipeable/-/react-swipeable-6.2.2.tgz#52ba570f3a7a90db7093094ec476f3d151f727d1" + integrity sha512-Oz7nSFrssvq2yvy05aNL3F+yBUqSvLsK6x1mu+rQFOpMdQVnt4izKt1vyjvvTb70q6GQOaSpaB6qniROW2MAzQ== -react-toastify@^6.1.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/react-toastify/-/react-toastify-6.2.0.tgz#f2d76747c70b9de91f71f253d9feae6b53dc836c" - integrity sha512-XpjFrcBhQ0/nBOL4syqgP/TywFnOyxmstYLWgSQWcj39qpp+WU4vPt3C/ayIDx7RFyxRWfzWTdR2qOcDGo7G0w== +react-toastify@^10.0.5: + version "10.0.5" + resolved "https://registry.yarnpkg.com/react-toastify/-/react-toastify-10.0.5.tgz#6b8f8386060c5c856239f3036d1e76874ce3bd1e" + integrity sha512-mNKt2jBXJg4O7pSdbNUfDdTsK9FIdikfsIE/yUCxbAEXl4HMyJaivrVFcn3Elvt5xvCQYhUZm+hqTIu1UXM3Pw== dependencies: - clsx "^1.1.1" - prop-types "^15.7.2" - react-transition-group "^4.4.1" + clsx "^2.1.0" -react-transition-group@^4.4.1: - version "4.4.2" - resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.4.2.tgz#8b59a56f09ced7b55cbd53c36768b922890d5470" - integrity sha512-/RNYfRAMlZwDSr6z4zNKV6xu53/e2BuaBbGhbyYIXTrmgu/bGHzmqOs7mJSJBHy9Ud+ApHx3QjrkKSp1pxvlFg== +react-transition-group@^4.4.5: + version "4.4.5" + resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.4.5.tgz#e53d4e3f3344da8521489fbef8f2581d42becdd1" + integrity sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g== dependencies: "@babel/runtime" "^7.5.5" dom-helpers "^5.0.1" loose-envify "^1.4.0" prop-types "^15.6.2" -react@^16.8.6: - version "16.14.0" - resolved "https://registry.yarnpkg.com/react/-/react-16.14.0.tgz#94d776ddd0aaa37da3eda8fc5b6b18a4c9a3114d" - integrity sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - prop-types "^15.6.2" - -react@^17.0.1: - version "17.0.2" - resolved "https://registry.yarnpkg.com/react/-/react-17.0.2.tgz#d0b5cc516d29eb3eee383f75b62864cfb6800037" - integrity sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA== +react@>=17, react@^18.0.0: + version "18.3.1" + resolved "https://registry.yarnpkg.com/react/-/react-18.3.1.tgz#49ab892009c53933625bd16b2533fc754cab2891" + integrity sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ== dependencies: loose-envify "^1.1.0" - object-assign "^4.1.1" - -read-pkg-up@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" - integrity sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI= - dependencies: - find-up "^1.0.0" - read-pkg "^1.0.0" - -read-pkg-up@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" - integrity sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc= - dependencies: - find-up "^2.0.0" - read-pkg "^3.0.0" -read-pkg-up@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" - integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== - dependencies: - find-up "^4.1.0" - read-pkg "^5.2.0" - type-fest "^0.8.1" - -read-pkg@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" - integrity sha1-9f+qXs0pyzHAR0vKfXVra7KePyg= - dependencies: - load-json-file "^1.0.0" - normalize-package-data "^2.3.2" - path-type "^1.0.0" - -read-pkg@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" - integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k= - dependencies: - load-json-file "^4.0.0" - normalize-package-data "^2.3.2" - path-type "^3.0.0" - -read-pkg@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" - integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== +read-cache@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" + integrity sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA== dependencies: - "@types/normalize-package-data" "^2.4.0" - normalize-package-data "^2.5.0" - parse-json "^5.0.0" - type-fest "^0.6.0" + pify "^2.3.0" -"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.2.9, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: - version "2.3.7" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" - integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== +readable-stream@^2.0.1: + version "2.3.8" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" + integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== dependencies: core-util-is "~1.0.0" inherits "~2.0.3" @@ -12862,44 +11354,15 @@ read-pkg@^5.2.0: string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^1.0.33: - version "1.1.14" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" - integrity sha1-fPTFTvZI44EwhMY23SB54WbAgdk= - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - -readable-stream@^3.0.6, readable-stream@^3.5.0, readable-stream@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" - integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== +readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.5.0, readable-stream@^3.6.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== dependencies: inherits "^2.0.3" string_decoder "^1.1.1" util-deprecate "^1.0.1" -readable-stream@~1.0.15: - version "1.0.34" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" - integrity sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw= - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - -readdirp@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" - integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== - dependencies: - graceful-fs "^4.1.11" - micromatch "^3.1.10" - readable-stream "^2.0.2" - readdirp@~3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" @@ -12907,28 +11370,17 @@ readdirp@~3.6.0: dependencies: picomatch "^2.2.1" -recursive-readdir@2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-2.2.2.tgz#9946fb3274e1628de6e36b2f6714953b4845094f" - integrity sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg== - dependencies: - minimatch "3.0.4" - -redent@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" - integrity sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94= - dependencies: - indent-string "^2.1.0" - strip-indent "^1.0.1" - -redent@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/redent/-/redent-2.0.0.tgz#c1b2007b42d57eb1389079b3c8333639d5e1ccaa" - integrity sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo= +real-require@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/real-require/-/real-require-0.1.0.tgz#736ac214caa20632847b7ca8c1056a0767df9381" + integrity sha512-r/H9MzAWtrv8aSVjPCMFpDMl5q66GqtmmRkRjpHTsp4zBAa+snZyiQNlMONiUmEJcsnaw0wCauJ2GWODr/aFkg== + +recursive-readdir@^2.2.2: + version "2.2.3" + resolved "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-2.2.3.tgz#e726f328c0d69153bcabd5c322d3195252379372" + integrity sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA== dependencies: - indent-string "^3.0.0" - strip-indent "^2.0.0" + minimatch "^3.0.5" redent@^3.0.0: version "3.0.0" @@ -12938,183 +11390,107 @@ redent@^3.0.0: indent-string "^4.0.0" strip-indent "^3.0.0" -regenerate-unicode-properties@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-9.0.0.tgz#54d09c7115e1f53dc2314a974b32c1c344efe326" - integrity sha512-3E12UeNSPfjrgwjkR81m5J7Aw/T55Tu7nUyZVQYCKEOs+2dkxEY+DpPtZzO4YruuiPb7NkYLVcyJC4+zCbk5pA== +reflect.getprototypeof@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz#3ab04c32a8390b770712b7a8633972702d278859" + integrity sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.1" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + globalthis "^1.0.3" + which-builtin-type "^1.1.3" + +regenerate-unicode-properties@^10.1.0: + version "10.1.1" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz#6b0e05489d9076b04c436f318d9b067bba459480" + integrity sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q== dependencies: regenerate "^1.4.2" -regenerate@^1.2.1, regenerate@^1.4.2: +regenerate@^1.4.2: version "1.4.2" resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== -regenerator-runtime@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" - integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== +regenerator-runtime@^0.13.9: + version "0.13.11" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" + integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== -regenerator-runtime@^0.13.4, regenerator-runtime@^0.13.7: - version "0.13.9" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" - integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== +regenerator-runtime@^0.14.0: + version "0.14.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f" + integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== -regenerator-transform@^0.10.0: - version "0.10.1" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" - integrity sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q== - dependencies: - babel-runtime "^6.18.0" - babel-types "^6.19.0" - private "^0.1.6" - -regenerator-transform@^0.14.2: - version "0.14.5" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.5.tgz#c98da154683671c9c4dcb16ece736517e1b7feb4" - integrity sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw== +regenerator-transform@^0.15.2: + version "0.15.2" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.2.tgz#5bbae58b522098ebdf09bca2f83838929001c7a4" + integrity sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg== dependencies: "@babel/runtime" "^7.8.4" -regex-not@^1.0.0, regex-not@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" - integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== - dependencies: - extend-shallow "^3.0.2" - safe-regex "^1.1.0" - regex-parser@^2.2.11: - version "2.2.11" - resolved "https://registry.yarnpkg.com/regex-parser/-/regex-parser-2.2.11.tgz#3b37ec9049e19479806e878cabe7c1ca83ccfe58" - integrity sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q== - -regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz#7ef352ae8d159e758c0eadca6f8fcb4eef07be26" - integrity sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - -regexpp@^3.1.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" - integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== + version "2.3.0" + resolved "https://registry.yarnpkg.com/regex-parser/-/regex-parser-2.3.0.tgz#4bb61461b1a19b8b913f3960364bb57887f920ee" + integrity sha512-TVILVSz2jY5D47F4mA4MppkBrafEaiUWJO/TcZHEIuI13AqoZMkK1WMA4Om1YkYbTx+9Ki1/tSUXbceyr9saRg== -regexpu-core@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" - integrity sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA= +regexp.prototype.flags@^1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz#138f644a3350f981a858c44f6bb1a61ff59be334" + integrity sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw== dependencies: - regenerate "^1.2.1" - regjsgen "^0.2.0" - regjsparser "^0.1.4" + call-bind "^1.0.6" + define-properties "^1.2.1" + es-errors "^1.3.0" + set-function-name "^2.0.1" -regexpu-core@^4.7.1: - version "4.8.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.8.0.tgz#e5605ba361b67b1718478501327502f4479a98f0" - integrity sha512-1F6bYsoYiz6is+oz70NWur2Vlh9KWtswuRuzJOfeYUrfPX2o8n74AnUVaOGDbUqVGO9fNHu48/pjJO4sNVwsOg== +regexpu-core@^5.3.1: + version "5.3.2" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.3.2.tgz#11a2b06884f3527aec3e93dbbf4a3b958a95546b" + integrity sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ== dependencies: + "@babel/regjsgen" "^0.8.0" regenerate "^1.4.2" - regenerate-unicode-properties "^9.0.0" - regjsgen "^0.5.2" - regjsparser "^0.7.0" + regenerate-unicode-properties "^10.1.0" + regjsparser "^0.9.1" unicode-match-property-ecmascript "^2.0.0" - unicode-match-property-value-ecmascript "^2.0.0" - -regjsgen@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" - integrity sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc= - -regjsgen@^0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733" - integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A== + unicode-match-property-value-ecmascript "^2.1.0" -regjsparser@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" - integrity sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw= +regjsparser@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.9.1.tgz#272d05aa10c7c1f67095b1ff0addae8442fc5709" + integrity sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ== dependencies: jsesc "~0.5.0" -regjsparser@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.7.0.tgz#a6b667b54c885e18b52554cb4960ef71187e9968" - integrity sha512-A4pcaORqmNMDVwUjWoTzuhwMGpP+NykpfqAsEgI1FSH/EzC7lrN5TMd+kN8YCovX+jMpu8eaqXgXPCa0g8FQNQ== - dependencies: - jsesc "~0.5.0" +rehackt@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/rehackt/-/rehackt-0.1.0.tgz#a7c5e289c87345f70da8728a7eb878e5d03c696b" + integrity sha512-7kRDOuLHB87D/JESKxQoRwv4DzbIdwkAGQ7p6QKGdVlY1IZheUnVhlk/4UZlNUVxdAXpyxikE3URsG067ybVzw== relateurl@^0.2.7: version "0.2.7" resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" - integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= - -remove-trailing-separator@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= + integrity sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog== -renderkid@^2.0.4: - version "2.0.7" - resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.7.tgz#464f276a6bdcee606f4a15993f9b29fc74ca8609" - integrity sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ== +renderkid@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-3.0.0.tgz#5fd823e4d6951d37358ecc9a58b1f06836b6268a" + integrity sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg== dependencies: css-select "^4.1.3" dom-converter "^0.2.0" htmlparser2 "^6.1.0" lodash "^4.17.21" - strip-ansi "^3.0.1" - -repeat-element@^1.1.2: - version "1.1.4" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9" - integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ== - -repeat-string@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= - -repeating@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" - integrity sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo= - dependencies: - is-finite "^1.0.0" - -request@^2.85.0, request@^2.87.0, request@^2.88.0: - version "2.88.2" - resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" - integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== - dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.8.0" - caseless "~0.12.0" - combined-stream "~1.0.6" - extend "~3.0.2" - forever-agent "~0.6.1" - form-data "~2.3.2" - har-validator "~5.1.3" - http-signature "~1.2.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.19" - oauth-sign "~0.9.0" - performance-now "^2.1.0" - qs "~6.5.2" - safe-buffer "^5.1.2" - tough-cookie "~2.5.0" - tunnel-agent "^0.6.0" - uuid "^3.3.2" + strip-ansi "^6.0.1" require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== require-from-string@^2.0.2: version "2.0.2" @@ -13129,14 +11505,7 @@ require-main-filename@^2.0.0: requires-port@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= - -resolve-cwd@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" - integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo= - dependencies: - resolve-from "^3.0.0" + integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== resolve-cwd@^3.0.0: version "3.0.0" @@ -13145,11 +11514,6 @@ resolve-cwd@^3.0.0: dependencies: resolve-from "^5.0.0" -resolve-from@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" - integrity sha1-six699nWiBvItuZTM17rywoYh0g= - resolve-from@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" @@ -13166,75 +11530,69 @@ resolve-pathname@^3.0.0: integrity sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng== resolve-url-loader@^3.1.2: - version "3.1.4" - resolved "https://registry.yarnpkg.com/resolve-url-loader/-/resolve-url-loader-3.1.4.tgz#3c16caebe0b9faea9c7cc252fa49d2353c412320" - integrity sha512-D3sQ04o0eeQEySLrcz4DsX3saHfsr8/N6tfhblxgZKXxMT2Louargg12oGNfoTRLV09GXhVUe5/qgA5vdgNigg== + version "3.1.5" + resolved "https://registry.yarnpkg.com/resolve-url-loader/-/resolve-url-loader-3.1.5.tgz#1dce0847d4a2ef43c51f63c9fd30bf6dfbf26716" + integrity sha512-mgFMCmrV/tA4738EsFmPFE5/MaqSgUMe8LK971kVEKA/RrNVb7+VqFsg/qmKyythf34eyq476qIobP/gfFBGSQ== dependencies: adjust-sourcemap-loader "3.0.0" camelcase "5.3.1" compose-function "3.0.3" convert-source-map "1.7.0" es6-iterator "2.0.3" - loader-utils "1.2.3" + loader-utils "^1.2.3" postcss "7.0.36" rework "1.0.1" rework-visit "1.0.0" source-map "0.6.1" +resolve-url-loader@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-url-loader/-/resolve-url-loader-4.0.0.tgz#d50d4ddc746bb10468443167acf800dcd6c3ad57" + integrity sha512-05VEMczVREcbtT7Bz+C+96eUO5HDNvdthIiMB34t7FcF8ehcu4wC0sSgPUubs3XW2Q3CNLJk/BJrCU9wVRymiA== + dependencies: + adjust-sourcemap-loader "^4.0.0" + convert-source-map "^1.7.0" + loader-utils "^2.0.0" + postcss "^7.0.35" + source-map "0.6.1" + resolve-url@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" - integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= + integrity sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg== -resolve@1.18.1: - version "1.18.1" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.18.1.tgz#018fcb2c5b207d2a6424aee361c5a266da8f4130" - integrity sha512-lDfCPaMKfOJXjy0dPayzPdF1phampNWr3qFCjAu+rw/qbQmr5jWH5xN2hwh9QKfw9E5v4hwV7A+jrCmL8yjjqA== - dependencies: - is-core-module "^2.0.0" - path-parse "^1.0.6" +resolve.exports@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-1.1.1.tgz#05cfd5b3edf641571fd46fa608b610dda9ead999" + integrity sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ== -resolve@^1.10.0, resolve@^1.12.0, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.18.1, resolve@^1.19.0, resolve@^1.20.0, resolve@^1.3.2: - version "1.21.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.21.0.tgz#b51adc97f3472e6a5cf4444d34bc9d6b9037591f" - integrity sha512-3wCbTpk5WJlyE4mSOtDLhqQmGFi0/TD9VPwmiolnk8U0wRgMEktqCXd3vy5buTO3tljvalNvKrjHEfrd2WpEKA== +resolve@^1.1.7, resolve@^1.14.2, resolve@^1.19.0, resolve@^1.20.0, resolve@^1.22.2, resolve@^1.22.4, resolve@^1.3.2: + version "1.22.8" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" + integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== dependencies: - is-core-module "^2.8.0" + is-core-module "^2.13.0" path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" -resolve@^2.0.0-next.3: - version "2.0.0-next.3" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.3.tgz#d41016293d4a8586a39ca5d9b5f15cbea1f55e46" - integrity sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q== - dependencies: - is-core-module "^2.2.0" - path-parse "^1.0.6" - -resolve@~1.20.0: - version "1.20.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" - integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== - dependencies: - is-core-module "^2.2.0" - path-parse "^1.0.6" - -resumer@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/resumer/-/resumer-0.0.0.tgz#f1e8f461e4064ba39e82af3cdc2a8c893d076759" - integrity sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k= +resolve@^2.0.0-next.5: + version "2.0.0-next.5" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.5.tgz#6b0ec3107e671e52b68cd068ef327173b90dc03c" + integrity sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA== dependencies: - through "~2.3.4" + is-core-module "^2.13.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" -ret@~0.1.10: - version "0.1.15" - resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" - integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== +response-iterator@^0.2.6: + version "0.2.6" + resolved "https://registry.yarnpkg.com/response-iterator/-/response-iterator-0.2.6.tgz#249005fb14d2e4eeb478a3f735a28fd8b4c9f3da" + integrity sha512-pVzEEzrsg23Sh053rmDUvLSkGXluZio0qu8VT6ukrYuvtjVfCbDZH9d6PGXb8HZfzdNZt8feXv/jvUzlhRgLnw== -retry@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" - integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= +retry@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" + integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== reusify@^1.0.4: version "1.0.4" @@ -13244,40 +11602,16 @@ reusify@^1.0.4: rework-visit@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/rework-visit/-/rework-visit-1.0.0.tgz#9945b2803f219e2f7aca00adb8bc9f640f842c9a" - integrity sha1-mUWygD8hni96ygCtuLyfZA+ELJo= + integrity sha512-W6V2fix7nCLUYX1v6eGPrBOZlc03/faqzP4sUxMAJMBMOPYhfV/RyLegTufn5gJKaOITyi+gvf0LXDZ9NzkHnQ== rework@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/rework/-/rework-1.0.1.tgz#30806a841342b54510aa4110850cd48534144aa7" - integrity sha1-MIBqhBNCtUUQqkEQhQzUhTQUSqc= + integrity sha512-eEjL8FdkdsxApd0yWVZgBGzfCQiT8yqSc2H1p4jpZpQdtz7ohETiDMoje5PlM8I9WgkqkreVxFUKYOiJdVWDXw== dependencies: convert-source-map "^0.3.3" css "^2.0.0" -rgb-regex@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" - integrity sha1-wODWiC3w4jviVKR16O3UGRX+rrE= - -rgba-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" - integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= - -rimraf@2, rimraf@^2.5.4, rimraf@^2.6.3: - version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" - -rimraf@2.6.3: - version "2.6.3" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" - integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== - dependencies: - glob "^7.1.3" - rimraf@^3.0.0, rimraf@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" @@ -13300,45 +11634,22 @@ rlp@^2.0.0, rlp@^2.2.3: dependencies: bn.js "^5.2.0" -rollup-plugin-babel@^4.3.3: - version "4.4.0" - resolved "https://registry.yarnpkg.com/rollup-plugin-babel/-/rollup-plugin-babel-4.4.0.tgz#d15bd259466a9d1accbdb2fe2fff17c52d030acb" - integrity sha512-Lek/TYp1+7g7I+uMfJnnSJ7YWoD58ajo6Oarhlex7lvUce+RCKRuGRSgztDO3/MF/PuGKmUL5iTHKf208UNszw== - dependencies: - "@babel/helper-module-imports" "^7.0.0" - rollup-pluginutils "^2.8.1" - -rollup-plugin-terser@^5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/rollup-plugin-terser/-/rollup-plugin-terser-5.3.1.tgz#8c650062c22a8426c64268548957463bf981b413" - integrity sha512-1pkwkervMJQGFYvM9nscrUoncPwiKR/K+bHdjv6PFgRo3cgPHoRT83y2Aa3GvINj4539S15t/tpFPb775TDs6w== +rollup-plugin-terser@^7.0.0: + version "7.0.2" + resolved "https://registry.yarnpkg.com/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz#e8fbba4869981b2dc35ae7e8a502d5c6c04d324d" + integrity sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ== dependencies: - "@babel/code-frame" "^7.5.5" - jest-worker "^24.9.0" - rollup-pluginutils "^2.8.2" + "@babel/code-frame" "^7.10.4" + jest-worker "^26.2.1" serialize-javascript "^4.0.0" - terser "^4.6.2" - -rollup-pluginutils@^2.8.1, rollup-pluginutils@^2.8.2: - version "2.8.2" - resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz#72f2af0748b592364dbd3389e600e5a9444a351e" - integrity sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ== - dependencies: - estree-walker "^0.6.1" - -rollup@^1.31.1: - version "1.32.1" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-1.32.1.tgz#4480e52d9d9e2ae4b46ba0d9ddeaf3163940f9c4" - integrity sha512-/2HA0Ec70TvQnXdzynFffkjA6XN+1e2pEv/uKS5Ulca40g2L7KuOE3riasHoNVHOsFD5KKZgDsMk1CP3Tw9s+A== - dependencies: - "@types/estree" "*" - "@types/node" "*" - acorn "^7.1.0" + terser "^5.0.0" -rsvp@^4.8.4: - version "4.8.5" - resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" - integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== +rollup@^2.43.1: + version "2.79.1" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.79.1.tgz#bedee8faef7c9f93a2647ac0108748f497f081c7" + integrity sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw== + optionalDependencies: + fsevents "~2.3.2" run-parallel@^1.1.9: version "1.2.0" @@ -13347,18 +11658,6 @@ run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" -run-queue@^1.0.0, run-queue@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" - integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec= - dependencies: - aproba "^1.1.1" - -rustbn.js@~0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/rustbn.js/-/rustbn.js-0.2.0.tgz#8082cb886e707155fd1cb6f23bd591ab8d55d0ca" - integrity sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA== - rxjs@^6.6.3: version "6.6.7" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" @@ -13366,6 +11665,16 @@ rxjs@^6.6.3: dependencies: tslib "^1.9.0" +safe-array-concat@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.1.2.tgz#81d77ee0c4e8b863635227c721278dd524c20edb" + integrity sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q== + dependencies: + call-bind "^1.0.7" + get-intrinsic "^1.2.4" + has-symbols "^1.0.3" + isarray "^2.0.5" + safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" @@ -13383,74 +11692,49 @@ safe-event-emitter@^1.0.1: dependencies: events "^3.0.0" -safe-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" - integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= +safe-regex-test@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.3.tgz#a5b4c0f06e0ab50ea2c395c14d8371232924c377" + integrity sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw== dependencies: - ret "~0.1.10" + call-bind "^1.0.6" + es-errors "^1.3.0" + is-regex "^1.1.4" + +safe-stable-stringify@^2.1.0: + version "2.4.3" + resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz#138c84b6f6edb3db5f8ef3ef7115b8f55ccbf886" + integrity sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g== -"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -sane@^4.0.3: - version "4.1.0" - resolved "https://registry.yarnpkg.com/sane/-/sane-4.1.0.tgz#ed881fd922733a6c461bc189dc2b6c006f3ffded" - integrity sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA== - dependencies: - "@cnakazawa/watch" "^1.0.3" - anymatch "^2.0.0" - capture-exit "^2.0.0" - exec-sh "^0.3.2" - execa "^1.0.0" - fb-watchman "^2.0.0" - micromatch "^3.1.4" - minimist "^1.1.1" - walker "~1.0.5" - -sanitize.css@^10.0.0: - version "10.0.0" - resolved "https://registry.yarnpkg.com/sanitize.css/-/sanitize.css-10.0.0.tgz#b5cb2547e96d8629a60947544665243b1dc3657a" - integrity sha512-vTxrZz4dX5W86M6oVWVdOVe72ZiPs41Oi7Z6Km4W5Turyz28mrXSJhhEBZoRtzJWIv3833WKVwLSDWWkEfupMg== +sanitize.css@*: + version "13.0.0" + resolved "https://registry.yarnpkg.com/sanitize.css/-/sanitize.css-13.0.0.tgz#2675553974b27964c75562ade3bd85d79879f173" + integrity sha512-ZRwKbh/eQ6w9vmTjkuG0Ioi3HBwPFce0O+v//ve+aOq1oeCy7jMV2qzzAlpsNuqpqCBjjriM1lbtZbF/Q8jVyA== -sass-graph@2.2.5: - version "2.2.5" - resolved "https://registry.yarnpkg.com/sass-graph/-/sass-graph-2.2.5.tgz#a981c87446b8319d96dce0671e487879bd24c2e8" - integrity sha512-VFWDAHOe6mRuT4mZRd4eKE+d8Uedrk6Xnh7Sh9b4NGufQLQjOrvf/MQoOdx+0s92L89FeyUUNfU597j/3uNpag== +sass-loader@^12.3.0: + version "12.6.0" + resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-12.6.0.tgz#5148362c8e2cdd4b950f3c63ac5d16dbfed37bcb" + integrity sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA== dependencies: - glob "^7.0.0" - lodash "^4.0.0" - scss-tokenizer "^0.2.3" - yargs "^13.3.2" - -sass-loader@8.0.2: - version "8.0.2" - resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-8.0.2.tgz#debecd8c3ce243c76454f2e8290482150380090d" - integrity sha512-7o4dbSK8/Ol2KflEmSco4jTjQoV988bM82P9CZdmo9hR3RLnvNc0ufMNdMrB0caq38JQ/FgF4/7RcbcfKzxoFQ== - dependencies: - clone-deep "^4.0.1" - loader-utils "^1.2.3" - neo-async "^2.6.1" - schema-utils "^2.6.1" - semver "^6.3.0" + klona "^2.0.4" + neo-async "^2.6.2" -sass-loader@^10.0.4: - version "10.2.0" - resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-10.2.0.tgz#3d64c1590f911013b3fa48a0b22a83d5e1494716" - integrity sha512-kUceLzC1gIHz0zNJPpqRsJyisWatGYNFRmv2CKZK2/ngMJgLqxTbXwe/hJ85luyvZkgqU3VlJ33UVF2T/0g6mw== +sass-loader@^13.2.0: + version "13.3.3" + resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-13.3.3.tgz#60df5e858788cffb1a3215e5b92e9cba61e7e133" + integrity sha512-mt5YN2F1MOZr3d/wBRcZxeFgwgkH44wVc2zohO2YF6JiOMkiXe4BYRZpSu2sO1g71mo/j16txzUhsKZlqjVGzA== dependencies: - klona "^2.0.4" - loader-utils "^2.0.0" neo-async "^2.6.2" - schema-utils "^3.0.0" - semver "^7.3.2" -sass@^1.27.0: - version "1.47.0" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.47.0.tgz#c22dd0eed2e4a991430dae0b03c8e694bc41c2b4" - integrity sha512-GtXwvwgD7/6MLUZPnlA5/8cdRgC9SzT5kAnnJMRmEZQFRE3J56Foswig4NyyyQGsnmNvg6EUM/FP0Pe9Y2zywQ== +sass@^1.58.3: + version "1.77.1" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.77.1.tgz#018cdfb206afd14724030c02e9fefd8f30a76cd0" + integrity sha512-OMEyfirt9XEfyvocduUIOlUSkWOXS/LAt6oblR/ISXCTukyavjex+zQNm51pPCOiFKY1QpWvEH1EeCkgyV3I6w== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" @@ -13468,32 +11752,23 @@ saxes@^5.0.1: dependencies: xmlchars "^2.2.0" -scheduler@^0.19.1: - version "0.19.1" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.19.1.tgz#4f3e2ed2c1a7d65681f4c854fa8c5a1ccb40f196" - integrity sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA== +scheduler@^0.23.2: + version "0.23.2" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.2.tgz#414ba64a3b282892e944cf2108ecc078d115cdc3" + integrity sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ== dependencies: loose-envify "^1.1.0" - object-assign "^4.1.1" - -scheduler@^0.20.2: - version "0.20.2" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.2.tgz#4baee39436e34aa93b4874bddcbf0fe8b8b50e91" - integrity sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" -schema-utils@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" - integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== +schema-utils@2.7.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.0.tgz#17151f76d8eae67fbbf77960c33c676ad9f4efc7" + integrity sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A== dependencies: - ajv "^6.1.0" - ajv-errors "^1.0.0" - ajv-keywords "^3.1.0" + "@types/json-schema" "^7.0.4" + ajv "^6.12.2" + ajv-keywords "^3.4.1" -schema-utils@^2.6.1, schema-utils@^2.6.5, schema-utils@^2.7.0, schema-utils@^2.7.1: +schema-utils@^2.6.5: version "2.7.1" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== @@ -13502,47 +11777,30 @@ schema-utils@^2.6.1, schema-utils@^2.6.5, schema-utils@^2.7.0, schema-utils@^2.7 ajv "^6.12.4" ajv-keywords "^3.5.2" -schema-utils@^3.0.0, schema-utils@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281" - integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw== +schema-utils@^3.0.0, schema-utils@^3.1.1, schema-utils@^3.2.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.3.0.tgz#f50a88877c3c01652a15b622ae9e9795df7a60fe" + integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== dependencies: "@types/json-schema" "^7.0.8" ajv "^6.12.5" ajv-keywords "^3.5.2" -scrypt-js@2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-2.0.4.tgz#32f8c5149f0797672e551c07e230f834b6af5f16" - integrity sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw== +schema-utils@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.2.0.tgz#70d7c93e153a273a805801882ebd3bff20d89c8b" + integrity sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw== + dependencies: + "@types/json-schema" "^7.0.9" + ajv "^8.9.0" + ajv-formats "^2.1.1" + ajv-keywords "^5.1.0" scrypt-js@3.0.1, scrypt-js@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-3.0.1.tgz#d314a57c2aef69d1ad98a138a21fe9eafa9ee312" integrity sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA== -scss-tokenizer@^0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz#8eb06db9a9723333824d3f5530641149847ce5d1" - integrity sha1-jrBtualyMzOCTT9VMGQRSYR85dE= - dependencies: - js-base64 "^2.1.8" - source-map "^0.4.2" - -secp256k1@^3.0.1, secp256k1@^3.7.1: - version "3.8.0" - resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-3.8.0.tgz#28f59f4b01dbee9575f56a47034b7d2e3b3b352d" - integrity sha512-k5ke5avRZbtl9Tqx/SA7CbY3NF6Ro+Sj9cZxezFzuBlLDmyqPiL8hJJ+EmzD8Ig4LUDByHJ3/iPOVoRixs/hmw== - dependencies: - bindings "^1.5.0" - bip66 "^1.1.5" - bn.js "^4.11.8" - create-hash "^1.2.0" - drbg.js "^1.0.1" - elliptic "^6.5.2" - nan "^2.14.0" - safe-buffer "^5.1.2" - secp256k1@^4.0.1: version "4.0.3" resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-4.0.3.tgz#c4559ecd1b8d3c1827ed2d1b94190d69ce267303" @@ -13555,75 +11813,49 @@ secp256k1@^4.0.1: select-hose@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" - integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= + integrity sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg== -selfsigned@^1.10.7: - version "1.10.14" - resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.14.tgz#ee51d84d9dcecc61e07e4aba34f229ab525c1574" - integrity sha512-lkjaiAye+wBZDCBsu5BGi0XiLRxeUlsGod5ZP924CRSEoGuZAw/f7y9RKu28rwTfiHVhdavhB0qH0INV6P1lEA== +selfsigned@^2.1.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-2.4.1.tgz#560d90565442a3ed35b674034cec4e95dceb4ae0" + integrity sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q== dependencies: - node-forge "^0.10.0" - -semaphore@>=1.0.1, semaphore@^1.0.3: - version "1.1.0" - resolved "https://registry.yarnpkg.com/semaphore/-/semaphore-1.1.0.tgz#aaad8b86b20fe8e9b32b16dc2ee682a8cd26a8aa" - integrity sha512-O4OZEaNtkMd/K0i6js9SL+gqy0ZCBMgUvlSqHKi4IBdjhe7wB8pwztUk1BbZ1fmrvpwFrPbHzqd2w5pTcJH6LA== - -"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.6.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - -semver@7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" - integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== - -semver@7.3.2: - version "7.3.2" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" - integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== - -semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + "@types/node-forge" "^1.3.0" + node-forge "^1" -semver@^7.2.1, semver@^7.3.2, semver@^7.3.5: - version "7.3.5" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" - integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== - dependencies: - lru-cache "^6.0.0" +semver@^5.4.1, semver@^5.5.0: + version "5.7.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" + integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== -semver@~5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" - integrity sha1-myzl094C0XxgEq0yaqa00M9U+U8= +semver@^6.0.0, semver@^6.3.0, semver@^6.3.1: + version "6.3.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@~5.4.1: - version "5.4.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e" - integrity sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg== +semver@^7.3.2, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8, semver@^7.5.3, semver@^7.5.4: + version "7.6.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.2.tgz#1e3b34759f896e8f14d6134732ce798aeb0c6e13" + integrity sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w== -send@0.17.2: - version "0.17.2" - resolved "https://registry.yarnpkg.com/send/-/send-0.17.2.tgz#926622f76601c41808012c8bf1688fe3906f7820" - integrity sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww== +send@0.18.0: + version "0.18.0" + resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" + integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== dependencies: debug "2.6.9" - depd "~1.1.2" - destroy "~1.0.4" + depd "2.0.0" + destroy "1.2.0" encodeurl "~1.0.2" escape-html "~1.0.3" etag "~1.8.1" fresh "0.5.2" - http-errors "1.8.1" + http-errors "2.0.0" mime "1.6.0" ms "2.1.3" - on-finished "~2.3.0" + on-finished "2.4.1" range-parser "~1.2.1" - statuses "~1.5.0" + statuses "2.0.1" serialize-javascript@^4.0.0: version "4.0.0" @@ -13632,17 +11864,17 @@ serialize-javascript@^4.0.0: dependencies: randombytes "^2.1.0" -serialize-javascript@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz#7886ec848049a462467a97d3d918ebb2aaf934f4" - integrity sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA== +serialize-javascript@^6.0.0, serialize-javascript@^6.0.1: + version "6.0.2" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2" + integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== dependencies: randombytes "^2.1.0" serve-index@^1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" - integrity sha1-03aNabHn2C5c4FD/9bRTvqEqkjk= + integrity sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw== dependencies: accepts "~1.3.4" batch "0.6.1" @@ -13652,45 +11884,47 @@ serve-index@^1.9.1: mime-types "~2.1.17" parseurl "~1.3.2" -serve-static@1.14.2: - version "1.14.2" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.2.tgz#722d6294b1d62626d41b43a013ece4598d292bfa" - integrity sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ== +serve-static@1.15.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" + integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== dependencies: encodeurl "~1.0.2" escape-html "~1.0.3" parseurl "~1.3.3" - send "0.17.2" + send "0.18.0" -set-blocking@^2.0.0, set-blocking@~2.0.0: +set-blocking@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= - -set-immediate-shim@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" - integrity sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E= + integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== -set-value@^2.0.0, set-value@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" - integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== +set-function-length@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" + integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.3" - split-string "^3.0.1" + define-data-property "^1.1.4" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" -setimmediate@1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.4.tgz#20e81de622d4a02588ce0c8da8973cbcf1d3138f" - integrity sha1-IOgd5iLUoCWIzgyNqJc8vPHTE48= +set-function-name@^2.0.1, set-function-name@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.2.tgz#16a705c5a0dc2f5e638ca96d8a8cd4e1c2b90985" + integrity sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + functions-have-names "^1.2.3" + has-property-descriptors "^1.0.2" -setimmediate@^1.0.4, setimmediate@^1.0.5: +setimmediate@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= + integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== setprototypeof@1.1.0: version "1.1.0" @@ -13702,7 +11936,7 @@ setprototypeof@1.2.0: resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== -sha.js@^2.4.0, sha.js@^2.4.8: +sha.js@^2.4.0, sha.js@^2.4.11, sha.js@^2.4.8: version "2.4.11" resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== @@ -13710,24 +11944,10 @@ sha.js@^2.4.0, sha.js@^2.4.8: inherits "^2.0.1" safe-buffer "^5.0.1" -shallow-clone@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" - integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== - dependencies: - kind-of "^6.0.2" - -shallowequal@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" - integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ== - -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= - dependencies: - shebang-regex "^1.0.0" +shallow-equal@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/shallow-equal/-/shallow-equal-1.2.1.tgz#4c16abfa56043aa20d050324efa68940b0da79da" + integrity sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA== shebang-command@^2.0.0: version "2.0.0" @@ -13736,58 +11956,40 @@ shebang-command@^2.0.0: dependencies: shebang-regex "^3.0.0" -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= - shebang-regex@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -shell-quote@1.7.2: - version "1.7.2" - resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2" - integrity sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg== - -shellwords@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" - integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== +shell-quote@^1.7.3, shell-quote@^1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.1.tgz#6dbf4db75515ad5bac63b4f1894c3a154c766680" + integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA== -side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== +side-channel@^1.0.4, side-channel@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2" + integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" - -signal-exit@^3.0.0, signal-exit@^3.0.2: - version "3.0.6" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.6.tgz#24e630c4b0f03fea446a2bd299e62b4a6ca8d0af" - integrity sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ== + call-bind "^1.0.7" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + object-inspect "^1.13.1" -simple-concat@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" - integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== +signal-exit@^3.0.2, signal-exit@^3.0.3: + version "3.0.7" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== -simple-get@^2.7.0: - version "2.8.1" - resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-2.8.1.tgz#0e22e91d4575d87620620bc91308d57a77f44b5d" - integrity sha512-lSSHRSw3mQNUGPAYRqo7xy9dhKmxFXIjLjp4KHpf99GEH2VH7C3AM+Qfx6du6jhfUi6Vm7XnbEVEf7Wb6N8jRw== - dependencies: - decompress-response "^3.3.0" - once "^1.3.1" - simple-concat "^1.0.0" +signal-exit@^4.0.1, signal-exit@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== simple-swizzle@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" - integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= + integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== dependencies: is-arrayish "^0.3.1" @@ -13796,103 +11998,52 @@ sisteransi@^1.0.5: resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== -slash@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" - integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= - slash@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== -slice-ansi@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" - integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== - dependencies: - ansi-styles "^3.2.0" - astral-regex "^1.0.0" - is-fullwidth-code-point "^2.0.0" - -slice-ansi@^4.0.0: +slash@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" - integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== - dependencies: - ansi-styles "^4.0.0" - astral-regex "^2.0.0" - is-fullwidth-code-point "^3.0.0" - -snapdragon-node@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" - integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== - dependencies: - define-property "^1.0.0" - isobject "^3.0.0" - snapdragon-util "^3.0.1" - -snapdragon-util@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" - integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== - dependencies: - kind-of "^3.2.0" - -snapdragon@^0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" - integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== - dependencies: - base "^0.11.1" - debug "^2.2.0" - define-property "^0.2.5" - extend-shallow "^2.0.1" - map-cache "^0.2.2" - source-map "^0.5.6" - source-map-resolve "^0.5.0" - use "^3.1.0" - -sockjs-client@1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.4.0.tgz#c9f2568e19c8fd8173b4997ea3420e0bb306c7d5" - integrity sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g== - dependencies: - debug "^3.2.5" - eventsource "^1.0.7" - faye-websocket "~0.11.1" - inherits "^2.0.3" - json3 "^3.3.2" - url-parse "^1.4.3" + resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7" + integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew== -sockjs@0.3.20: - version "0.3.20" - resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.20.tgz#b26a283ec562ef8b2687b44033a4eeceac75d855" - integrity sha512-SpmVOVpdq0DJc0qArhF3E5xsxvaiqGNb73XfgBpK1y3UD5gs8DSo8aCTsuT5pX8rssdc2NDIzANwP9eCAiSdTA== +sockjs@^0.3.24: + version "0.3.24" + resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.24.tgz#c9bc8995f33a111bea0395ec30aa3206bdb5ccce" + integrity sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ== dependencies: - faye-websocket "^0.10.0" - uuid "^3.4.0" - websocket-driver "0.6.5" + faye-websocket "^0.11.3" + uuid "^8.3.2" + websocket-driver "^0.7.4" -sort-keys@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" - integrity sha1-RBttTTRnmPG05J6JIK37oOVD+a0= +sonic-boom@^2.2.1: + version "2.8.0" + resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-2.8.0.tgz#c1def62a77425090e6ad7516aad8eb402e047611" + integrity sha512-kuonw1YOYYNOve5iHdSahXPOK49GqwA+LZhI6Wz/l0rP57iKyXXIHaRagOBHAPmGwJC6od2Z9zgvZ5loSgMlVg== dependencies: - is-plain-obj "^1.0.0" + atomic-sleep "^1.0.0" -source-list-map@^2.0.0: +source-list-map@^2.0.0, source-list-map@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== -"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.1.tgz#a1741c131e3c77d048252adfa24e23b908670caf" - integrity sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA== +"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.1, source-map-js@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.0.tgz#16b809c162517b5b8c3e7dcd315a2a5c2612b2af" + integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg== -source-map-resolve@^0.5.0, source-map-resolve@^0.5.2: +source-map-loader@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/source-map-loader/-/source-map-loader-3.0.2.tgz#af23192f9b344daa729f6772933194cc5fa54fee" + integrity sha512-BokxPoLjyl3iOrgkWaakaxqnelAJSS+0V+De0kKIq6lyWrXuiPgYTGp6z3iHmqljKAaLXwZa+ctD8GccRJeVvg== + dependencies: + abab "^2.0.5" + iconv-lite "^0.6.3" + source-map-js "^1.0.1" + +source-map-resolve@^0.5.2: version "0.5.3" resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== @@ -13903,22 +12054,7 @@ source-map-resolve@^0.5.0, source-map-resolve@^0.5.2: source-map-url "^0.4.0" urix "^0.1.0" -source-map-resolve@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.6.0.tgz#3d9df87e236b53f16d01e58150fc7711138e5ed2" - integrity sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w== - dependencies: - atob "^2.1.2" - decode-uri-component "^0.2.0" - -source-map-support@^0.4.15: - version "0.4.18" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" - integrity sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA== - dependencies: - source-map "^0.5.6" - -source-map-support@^0.5.17, source-map-support@^0.5.6, source-map-support@~0.5.12, source-map-support@~0.5.20: +source-map-support@^0.5.6, source-map-support@~0.5.20: version "0.5.21" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== @@ -13936,54 +12072,28 @@ source-map@0.6.1, source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, sourc resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== -source-map@^0.4.2: - version "0.4.4" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" - integrity sha1-66T12pwNyZneaAMti092FzZSA2s= - dependencies: - amdefine ">=0.0.4" - -source-map@^0.5.0, source-map@^0.5.6, source-map@^0.5.7: +source-map@^0.5.0: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= + integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== + +source-map@^0.7.3: + version "0.7.4" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" + integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== -source-map@^0.7.3, source-map@~0.7.2: - version "0.7.3" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" - integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== +source-map@^0.8.0-beta.0: + version "0.8.0-beta.0" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.8.0-beta.0.tgz#d4c1bb42c3f7ee925f005927ba10709e0d1d1f11" + integrity sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA== + dependencies: + whatwg-url "^7.0.0" -sourcemap-codec@^1.4.4, sourcemap-codec@^1.4.8: +sourcemap-codec@^1.4.8: version "1.4.8" resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== -spdx-correct@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" - integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== - dependencies: - spdx-expression-parse "^3.0.0" - spdx-license-ids "^3.0.0" - -spdx-exceptions@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" - integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== - -spdx-expression-parse@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" - integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== - dependencies: - spdx-exceptions "^2.1.0" - spdx-license-ids "^3.0.0" - -spdx-license-ids@^3.0.0: - version "3.0.11" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz#50c0d8c40a14ec1bf449bae69a0ea4685a9d9f95" - integrity sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g== - spdy-transport@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" @@ -14012,96 +12122,54 @@ split-on-first@^1.0.0: resolved "https://registry.yarnpkg.com/split-on-first/-/split-on-first-1.1.0.tgz#f610afeee3b12bce1d0c30425e76398b78249a5f" integrity sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw== -split-string@^3.0.1, split-string@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" - integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== - dependencies: - extend-shallow "^3.0.0" +split2@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/split2/-/split2-4.2.0.tgz#c9c5920904d148bab0b9f67145f245a86aadbfa4" + integrity sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg== sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= - -sshpk@^1.7.0: - version "1.17.0" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.17.0.tgz#578082d92d4fe612b13007496e543fa0fbcbe4c5" - integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ== - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - bcrypt-pbkdf "^1.0.0" - dashdash "^1.12.0" - ecc-jsbn "~0.1.1" - getpass "^0.1.1" - jsbn "~0.1.0" - safer-buffer "^2.0.2" - tweetnacl "~0.14.0" - -ssri@^6.0.1: - version "6.0.2" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.2.tgz#157939134f20464e7301ddba3e90ffa8f7728ac5" - integrity sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q== - dependencies: - figgy-pudding "^3.5.1" - -ssri@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.1.tgz#638e4e439e2ffbd2cd289776d5ca457c4f51a2af" - integrity sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ== - dependencies: - minipass "^3.1.1" + integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== stable@^0.1.8: version "0.1.8" resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== -stack-utils@^2.0.2: - version "2.0.5" - resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.5.tgz#d25265fca995154659dbbfba3b49254778d2fdd5" - integrity sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA== - dependencies: - escape-string-regexp "^2.0.0" - -stackframe@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.2.0.tgz#52429492d63c62eb989804c11552e3d22e779303" - integrity sha512-GrdeshiRmS1YLMYgzF16olf2jJ/IzxXY9lhKOskuVziubpTYcYqyOwYeJKzQkwy7uN0fYSsbsC4RQaXf9LCrYA== - -static-extend@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" - integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= - dependencies: - define-property "^0.2.5" - object-copy "^0.1.0" - -"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= - -stdout-stream@^1.4.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/stdout-stream/-/stdout-stream-1.4.1.tgz#5ac174cdd5cd726104aa0c0b2bd83815d8d535de" - integrity sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA== +stack-utils@^2.0.3: + version "2.0.6" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.6.tgz#aaf0748169c02fc33c8232abccf933f54a1cc34f" + integrity sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ== dependencies: - readable-stream "^2.0.1" + escape-string-regexp "^2.0.0" -store@2.0.12: - version "2.0.12" - resolved "https://registry.yarnpkg.com/store/-/store-2.0.12.tgz#8c534e2a0b831f72b75fc5f1119857c44ef5d593" - integrity sha1-jFNOKguDH3K3X8XxEZhXxE711ZM= +stackframe@^1.3.4: + version "1.3.4" + resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.3.4.tgz#b881a004c8c149a5e8efef37d51b16e412943310" + integrity sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw== -stream-browserify@^2.0.1: +static-eval@2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" - integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== + resolved "https://registry.yarnpkg.com/static-eval/-/static-eval-2.0.2.tgz#2d1759306b1befa688938454c546b7871f806a42" + integrity sha512-N/D219Hcr2bPjLxPiV+TQE++Tsmrady7TqAJugLy7Xk1EumfDWS/f5dtBbkRCGE7wKKXuYockQoj8Rm2/pVKyg== dependencies: - inherits "~2.0.1" - readable-stream "^2.0.2" + escodegen "^1.8.1" + +statuses@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" + integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== + +"statuses@>= 1.4.0 < 2": + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== + +std-env@^3.7.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.7.0.tgz#c9f7386ced6ecf13360b6c6c55b8aaa4ef7481d2" + integrity sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg== stream-browserify@^3.0.0: version "3.0.0" @@ -14111,39 +12179,15 @@ stream-browserify@^3.0.0: inherits "~2.0.4" readable-stream "^3.5.0" -stream-each@^1.1.0: - version "1.2.3" - resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" - integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw== - dependencies: - end-of-stream "^1.1.0" - stream-shift "^1.0.0" - -stream-http@^2.7.2: - version "2.8.3" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" - integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== - dependencies: - builtin-status-codes "^3.0.0" - inherits "^2.0.1" - readable-stream "^2.3.6" - to-arraybuffer "^1.0.0" - xtend "^4.0.0" - -stream-shift@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" - integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== - -strict-uri-encode@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" - integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= +stream-shift@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.3.tgz#85b8fab4d71010fc3ba8772e8046cc49b8a3864b" + integrity sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ== strict-uri-encode@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546" - integrity sha1-ucczDHBChi9rFC3CdLvMWGbONUY= + integrity sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ== string-length@^4.0.1: version "4.0.2" @@ -14153,21 +12197,20 @@ string-length@^4.0.1: char-regex "^1.0.2" strip-ansi "^6.0.0" +string-length@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/string-length/-/string-length-5.0.1.tgz#3d647f497b6e8e8d41e422f7e0b23bc536c8381e" + integrity sha512-9Ep08KAMUn0OadnVaBuRdE2l615CQ508kr0XMadjClfYpdCyvrbFp6Taebo8yyxokQ4viUd/xPPUA4FGgUa0ow== + dependencies: + char-regex "^2.0.0" + strip-ansi "^7.0.1" + string-natural-compare@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/string-natural-compare/-/string-natural-compare-3.0.1.tgz#7a42d58474454963759e8e8b7ae63d71c1e7fdf4" integrity sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw== -string-width@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" - integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= - dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - strip-ansi "^3.0.0" - -"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: +"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0, string-width@^4.2.0: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -14176,66 +12219,68 @@ string-width@^1.0.1: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" -string-width@^3.0.0, string-width@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" - integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== - dependencies: - emoji-regex "^7.0.1" - is-fullwidth-code-point "^2.0.0" - strip-ansi "^5.1.0" - -string.prototype.matchall@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.6.tgz#5abb5dabc94c7b0ea2380f65ba610b3a544b15fa" - integrity sha512-6WgDX8HmQqvEd7J+G6VtAahhsQIssiZ8zl7zKh1VDMFyL3hRTJP4FTNA3RbIp2TOQ9AYNDcc7e3fH0Qbup+DBg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" - get-intrinsic "^1.1.1" - has-symbols "^1.0.2" - internal-slot "^1.0.3" - regexp.prototype.flags "^1.3.1" - side-channel "^1.0.4" - -string.prototype.trim@~1.2.4: - version "1.2.5" - resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.5.tgz#a587bcc8bfad8cb9829a577f5de30dd170c1682c" - integrity sha512-Lnh17webJVsD6ECeovpVN17RlAKjmz4rF9S+8Y45CkMc/ufVpTkU3vZIyIC7sllQ1FCvObZnnCdNs/HXTUOTlg== +string-width@^5.0.1, string-width@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" + eastasianwidth "^0.2.0" + emoji-regex "^9.2.2" + strip-ansi "^7.0.1" -string.prototype.trimend@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80" - integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== +string.prototype.matchall@^4.0.10, string.prototype.matchall@^4.0.6: + version "4.0.11" + resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz#1092a72c59268d2abaad76582dccc687c0297e0a" + integrity sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + get-intrinsic "^1.2.4" + gopd "^1.0.1" + has-symbols "^1.0.3" + internal-slot "^1.0.7" + regexp.prototype.flags "^1.5.2" + set-function-name "^2.0.2" + side-channel "^1.0.6" + +string.prototype.trim@^1.2.9: + version "1.2.9" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz#b6fa326d72d2c78b6df02f7759c73f8f6274faa4" + integrity sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.0" + es-object-atoms "^1.0.0" + +string.prototype.trimend@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz#3651b8513719e8a9f48de7f2f77640b26652b229" + integrity sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ== dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" -string.prototype.trimstart@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed" - integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== +string.prototype.trimstart@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz#7ee834dda8c7c17eff3118472bb35bfedaa34dde" + integrity sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg== dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" -string_decoder@^1.0.0, string_decoder@^1.1.1: +string_decoder@^1.1.1: version "1.3.0" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== dependencies: safe-buffer "~5.2.0" -string_decoder@~0.10.x: - version "0.10.31" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" - integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= - string_decoder@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" @@ -14252,88 +12297,52 @@ stringify-object@^3.3.0: is-obj "^1.0.1" is-regexp "^1.0.0" -strip-ansi@6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" - integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== - dependencies: - ansi-regex "^5.0.0" - -strip-ansi@^3.0.0, strip-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= - dependencies: - ansi-regex "^2.0.0" - -strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" - integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== - dependencies: - ansi-regex "^4.1.0" - -strip-ansi@^6.0.0, strip-ansi@^6.0.1: +"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== dependencies: ansi-regex "^5.0.1" -strip-bom@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" - integrity sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4= +strip-ansi@^7.0.1: + version "7.1.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" + integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== dependencies: - is-utf8 "^0.2.0" + ansi-regex "^6.0.1" strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= + integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== strip-bom@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== -strip-comments@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/strip-comments/-/strip-comments-1.0.2.tgz#82b9c45e7f05873bee53f37168af930aa368679d" - integrity sha512-kL97alc47hoyIQSV165tTt9rG5dn4w1dNnBhOQ3bOU1Nc1hel09jnXANaHJ7vzHLd4Ju8kseDGzlev96pghLFw== - dependencies: - babel-extract-comments "^1.0.0" - babel-plugin-transform-object-rest-spread "^6.26.0" - -strip-eof@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" - integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= +strip-comments@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-comments/-/strip-comments-2.0.1.tgz#4ad11c3fbcac177a67a40ac224ca339ca1c1ba9b" + integrity sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw== strip-final-newline@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== +strip-final-newline@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" + integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== + strip-hex-prefix@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz#0c5f155fef1151373377de9dbb588da05500e36f" - integrity sha1-DF8VX+8RUTczd96du1iNoFUA428= + integrity sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A== dependencies: is-hex-prefixed "1.0.0" -strip-indent@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" - integrity sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI= - dependencies: - get-stdin "^4.0.1" - -strip-indent@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" - integrity sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g= - strip-indent@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" @@ -14341,50 +12350,43 @@ strip-indent@^3.0.0: dependencies: min-indent "^1.0.0" -strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: +strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== -style-loader@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-1.3.0.tgz#828b4a3b3b7e7aa5847ce7bae9e874512114249e" - integrity sha512-V7TCORko8rs9rIqkSrlMfkqA63DfoGBBJmK1kKGCcSi+BWb4cqz0SRsnp4l6rU5iwOEd0/2ePv68SV22VXon4Q== +style-loader@^3.3.1: + version "3.3.4" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-3.3.4.tgz#f30f786c36db03a45cbd55b6a70d930c479090e7" + integrity sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w== + +stylehacks@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-5.1.1.tgz#7934a34eb59d7152149fa69d6e9e56f2fc34bcc9" + integrity sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw== dependencies: - loader-utils "^2.0.0" - schema-utils "^2.7.0" + browserslist "^4.21.4" + postcss-selector-parser "^6.0.4" -styled-components@^5.3.3: - version "5.3.3" - resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-5.3.3.tgz#312a3d9a549f4708f0fb0edc829eb34bde032743" - integrity sha512-++4iHwBM7ZN+x6DtPPWkCI4vdtwumQ+inA/DdAsqYd4SVgUKJie5vXyzotA00ttcFdQkCng7zc6grwlfIfw+lw== - dependencies: - "@babel/helper-module-imports" "^7.0.0" - "@babel/traverse" "^7.4.5" - "@emotion/is-prop-valid" "^0.8.8" - "@emotion/stylis" "^0.8.4" - "@emotion/unitless" "^0.7.4" - babel-plugin-styled-components ">= 1.12.0" - css-to-react-native "^3.0.0" - hoist-non-react-statics "^3.0.0" - shallowequal "^1.1.0" - supports-color "^5.5.0" - -stylehacks@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5" - integrity sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g== +sucrase@^3.32.0: + version "3.35.0" + resolved "https://registry.yarnpkg.com/sucrase/-/sucrase-3.35.0.tgz#57f17a3d7e19b36d8995f06679d121be914ae263" + integrity sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA== dependencies: - browserslist "^4.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" + "@jridgewell/gen-mapping" "^0.3.2" + commander "^4.0.0" + glob "^10.3.10" + lines-and-columns "^1.1.6" + mz "^2.7.0" + pirates "^4.0.1" + ts-interface-checker "^0.1.9" -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= +superstruct@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-1.0.4.tgz#0adb99a7578bd2f1c526220da6571b2d485d91ca" + integrity sha512-7JpaAoX2NGyoFlI9NBh66BQXGONc+uE+MRS5i2iOBKuS4e+ccgMDjATgZldkah+33DakBxDHiss9kvUcGAO8UQ== -supports-color@^5.3.0, supports-color@^5.5.0: +supports-color@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== @@ -14413,9 +12415,9 @@ supports-color@^8.0.0: has-flag "^4.0.0" supports-hyperlinks@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz#4f77b42488765891774b70c79babd87f9bd594bb" - integrity sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ== + version "2.3.0" + resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz#3943544347c1ff90b15effb03fc14ae45ec10624" + integrity sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA== dependencies: has-flag "^4.0.0" supports-color "^7.0.0" @@ -14430,7 +12432,7 @@ svg-parser@^2.0.2: resolved "https://registry.yarnpkg.com/svg-parser/-/svg-parser-2.0.4.tgz#fdc2e29e13951736140b76cb122c8ee6630eb6b5" integrity sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ== -svgo@^1.0.0, svgo@^1.2.2: +svgo@^1.2.2: version "1.3.2" resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167" integrity sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw== @@ -14449,6 +12451,19 @@ svgo@^1.0.0, svgo@^1.2.2: unquote "~1.1.1" util.promisify "~1.0.0" +svgo@^2.7.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-2.8.0.tgz#4ff80cce6710dc2795f0c7c74101e6764cfccd24" + integrity sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg== + dependencies: + "@trysound/sax" "0.2.0" + commander "^7.2.0" + css-select "^4.1.3" + css-tree "^1.1.3" + csso "^4.2.0" + picocolors "^1.0.0" + stable "^0.1.8" + symbol-observable@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-4.0.0.tgz#5b425f192279e87f2f9b937ac8540d1984b39205" @@ -14459,87 +12474,63 @@ symbol-tree@^3.2.4: resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== -table@^5.2.3: - version "5.4.6" - resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" - integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== - dependencies: - ajv "^6.10.2" - lodash "^4.17.14" - slice-ansi "^2.1.0" - string-width "^3.0.0" - -table@^6.0.9: - version "6.8.0" - resolved "https://registry.yarnpkg.com/table/-/table-6.8.0.tgz#87e28f14fa4321c3377ba286f07b79b281a3b3ca" - integrity sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA== - dependencies: - ajv "^8.0.1" - lodash.truncate "^4.4.2" - slice-ansi "^4.0.0" - string-width "^4.2.3" - strip-ansi "^6.0.1" - -tapable@^1.0.0, tapable@^1.1.3: +system-architecture@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/system-architecture/-/system-architecture-0.1.0.tgz#71012b3ac141427d97c67c56bc7921af6bff122d" + integrity sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA== + +tailwindcss@^3.0.2: + version "3.4.3" + resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.4.3.tgz#be48f5283df77dfced705451319a5dffb8621519" + integrity sha512-U7sxQk/n397Bmx4JHbJx/iSOOv5G+II3f1kpLpY2QeUv5DcPdcTsYLlusZfq1NthHS1c1cZoyFmmkex1rzke0A== + dependencies: + "@alloc/quick-lru" "^5.2.0" + arg "^5.0.2" + chokidar "^3.5.3" + didyoumean "^1.2.2" + dlv "^1.1.3" + fast-glob "^3.3.0" + glob-parent "^6.0.2" + is-glob "^4.0.3" + jiti "^1.21.0" + lilconfig "^2.1.0" + micromatch "^4.0.5" + normalize-path "^3.0.0" + object-hash "^3.0.0" + picocolors "^1.0.0" + postcss "^8.4.23" + postcss-import "^15.1.0" + postcss-js "^4.0.1" + postcss-load-config "^4.0.1" + postcss-nested "^6.0.1" + postcss-selector-parser "^6.0.11" + resolve "^1.22.2" + sucrase "^3.32.0" + +tapable@^1.0.0: version "1.1.3" resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== -tape@^4.6.3: - version "4.14.0" - resolved "https://registry.yarnpkg.com/tape/-/tape-4.14.0.tgz#e4d46097e129817175b90925f2385f6b1bcfa826" - integrity sha512-z0+WrUUJuG6wIdWrl4W3rTte2CR26G6qcPOj3w1hfRdcmhF3kHBhOBW9VHsPVAkz08ZmGzp7phVpDupbLzrYKQ== - dependencies: - call-bind "~1.0.2" - deep-equal "~1.1.1" - defined "~1.0.0" - dotignore "~0.1.2" - for-each "~0.3.3" - glob "~7.1.7" - has "~1.0.3" - inherits "~2.0.4" - is-regex "~1.1.3" - minimist "~1.2.5" - object-inspect "~1.11.0" - resolve "~1.20.0" - resumer "~0.0.0" - string.prototype.trim "~1.2.4" - through "~2.3.8" - -tar@^2.0.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.2.tgz#0ca8848562c7299b8b446ff6a4d60cdbb23edc40" - integrity sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA== - dependencies: - block-stream "*" - fstream "^1.0.12" - inherits "2" - -tar@^6.0.2: - version "6.1.11" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.11.tgz#6760a38f003afa1b2ffd0ffe9e9abbd0eab3d621" - integrity sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA== - dependencies: - chownr "^2.0.0" - fs-minipass "^2.0.0" - minipass "^3.0.0" - minizlib "^2.1.1" - mkdirp "^1.0.3" - yallist "^4.0.0" +tapable@^2.0.0, tapable@^2.1.1, tapable@^2.2.0, tapable@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" + integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== -temp-dir@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d" - integrity sha1-CnwOom06Oa+n4OvqnB/AvE2qAR0= +temp-dir@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-2.0.0.tgz#bde92b05bdfeb1516e804c9c00ad45177f31321e" + integrity sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg== -tempy@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/tempy/-/tempy-0.3.0.tgz#6f6c5b295695a16130996ad5ab01a8bd726e8bf8" - integrity sha512-WrH/pui8YCwmeiAoxV+lpRH9HpRtgBhSR2ViBPgpGb/wnYDzp21R4MN45fsCGvLROvY67o3byhJRYRONJyImVQ== +tempy@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tempy/-/tempy-0.6.0.tgz#65e2c35abc06f1124a97f387b08303442bde59f3" + integrity sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw== dependencies: - temp-dir "^1.0.0" - type-fest "^0.3.1" - unique-string "^1.0.0" + is-stream "^2.0.0" + temp-dir "^2.0.0" + type-fest "^0.16.0" + unique-string "^2.0.0" terminal-link@^2.0.0: version "2.1.1" @@ -14549,52 +12540,25 @@ terminal-link@^2.0.0: ansi-escapes "^4.2.1" supports-hyperlinks "^2.0.0" -terser-webpack-plugin@4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-4.2.3.tgz#28daef4a83bd17c1db0297070adc07fc8cfc6a9a" - integrity sha512-jTgXh40RnvOrLQNgIkwEKnQ8rmHjHK4u+6UBEi+W+FPmvb+uo+chJXntKe7/3lW5mNysgSWD60KyesnhW8D6MQ== - dependencies: - cacache "^15.0.5" - find-cache-dir "^3.3.1" - jest-worker "^26.5.0" - p-limit "^3.0.2" - schema-utils "^3.0.0" - serialize-javascript "^5.0.1" - source-map "^0.6.1" - terser "^5.3.4" - webpack-sources "^1.4.3" - -terser-webpack-plugin@^1.4.3: - version "1.4.5" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz#a217aefaea330e734ffacb6120ec1fa312d6040b" - integrity sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw== - dependencies: - cacache "^12.0.2" - find-cache-dir "^2.1.0" - is-wsl "^1.1.0" - schema-utils "^1.0.0" - serialize-javascript "^4.0.0" - source-map "^0.6.1" - terser "^4.1.2" - webpack-sources "^1.4.0" - worker-farm "^1.7.0" - -terser@^4.1.2, terser@^4.6.2, terser@^4.6.3: - version "4.8.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17" - integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw== +terser-webpack-plugin@^5.2.5, terser-webpack-plugin@^5.3.10: + version "5.3.10" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz#904f4c9193c6fd2a03f693a2150c62a92f40d199" + integrity sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w== dependencies: - commander "^2.20.0" - source-map "~0.6.1" - source-map-support "~0.5.12" + "@jridgewell/trace-mapping" "^0.3.20" + jest-worker "^27.4.5" + schema-utils "^3.1.1" + serialize-javascript "^6.0.1" + terser "^5.26.0" -terser@^5.3.4: - version "5.10.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.10.0.tgz#b86390809c0389105eb0a0b62397563096ddafcc" - integrity sha512-AMmF99DMfEDiRJfxfY5jj5wNH/bYO09cniSqhfoyxc8sFoYIgkJy86G04UoZU5VjlpnplVu0K6Tx6E9b5+DlHA== +terser@^5.0.0, terser@^5.10.0, terser@^5.26.0: + version "5.31.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.31.0.tgz#06eef86f17007dbad4593f11a574c7f5eb02c6a1" + integrity sha512-Q1JFAoUKE5IMfI4Z/lkE/E6+SwgzO+x4tq4v1AyBLRj8VSYvRO6A/rQrPg1yud4g0En9EKI1TvFRF2tQFcoUkg== dependencies: + "@jridgewell/source-map" "^0.3.3" + acorn "^8.8.2" commander "^2.20.0" - source-map "~0.7.2" source-map-support "~0.5.20" test-exclude@^6.0.0: @@ -14606,57 +12570,48 @@ test-exclude@^6.0.0: glob "^7.1.4" minimatch "^3.0.4" -text-table@0.2.0, text-table@^0.2.0: +text-table@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== -throat@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b" - integrity sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA== +thenify-all@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" + integrity sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA== + dependencies: + thenify ">= 3.1.0 < 4" -through2@^2.0.0, through2@^2.0.3: - version "2.0.5" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" - integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== +"thenify@>= 3.1.0 < 4": + version "3.3.1" + resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.3.1.tgz#8932e686a4066038a016dd9e2ca46add9838a95f" + integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw== dependencies: - readable-stream "~2.3.6" - xtend "~4.0.1" + any-promise "^1.0.0" -through@~2.3.4, through@~2.3.8: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= +thread-stream@^0.15.1: + version "0.15.2" + resolved "https://registry.yarnpkg.com/thread-stream/-/thread-stream-0.15.2.tgz#fb95ad87d2f1e28f07116eb23d85aba3bc0425f4" + integrity sha512-UkEhKIg2pD+fjkHQKyJO3yoIvAP3N6RlNFt2dUhcS1FGvCD1cQa1M/PGknCLFIyZdtJOWQjejp7bdNqmN7zwdA== + dependencies: + real-require "^0.1.0" + +throat@^6.0.1: + version "6.0.2" + resolved "https://registry.yarnpkg.com/throat/-/throat-6.0.2.tgz#51a3fbb5e11ae72e2cf74861ed5c8020f89f29fe" + integrity sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ== thunky@^1.0.2: version "1.1.0" resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== -timed-out@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" - integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8= - -timers-browserify@^2.0.4: - version "2.0.12" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee" - integrity sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ== - dependencies: - setimmediate "^1.0.4" - -timsort@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" - integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= - tiny-invariant@^1.0.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.2.0.tgz#a1141f86b672a9148c72e978a19a73b9b94a15a9" - integrity sha512-1Uhn/aqw5C6RI4KejVeTg6mIS7IqxnLJ8Mv2tV5rTc0qWobay7pDUz6Wi392Cnc8ak1H0F2cjoRzb2/AW4+Fvg== + version "1.3.3" + resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.3.3.tgz#46680b7a873a0d5d10005995eb90a70d74d60127" + integrity sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg== -tiny-warning@^1.0.0, tiny-warning@^1.0.3: +tiny-warning@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== @@ -14666,42 +12621,10 @@ tmpl@1.0.5: resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== -to-arraybuffer@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" - integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= - -to-fast-properties@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" - integrity sha1-uDVx+k2MJbguIxsG46MFXeTKGkc= - to-fast-properties@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= - -to-hex@0.0.11: - version "0.0.11" - resolved "https://registry.yarnpkg.com/to-hex/-/to-hex-0.0.11.tgz#22355e09e5b56f5ae2b32502c493320f021171ac" - integrity sha512-3FSU8sfjrVc9fWowwP9xrdhxbp5Wco8uVZLhMhfsNuCFo9Fu8ecD2MgJV/2iAw+755W3AcGSQYVZGOpBmJtNcA== - dependencies: - normalize-hex "0.0.2" - -to-object-path@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" - integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= - dependencies: - kind-of "^3.0.2" - -to-regex-range@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" - integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= - dependencies: - is-number "^3.0.0" - repeat-string "^1.6.1" + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== to-regex-range@^5.0.1: version "5.0.1" @@ -14710,42 +12633,27 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" -to-regex@^3.0.1, to-regex@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" - integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== - dependencies: - define-property "^2.0.2" - extend-shallow "^3.0.2" - regex-not "^1.0.2" - safe-regex "^1.1.0" - -toggle-selection@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/toggle-selection/-/toggle-selection-1.0.6.tgz#6e45b1263f2017fa0acc7d89d78b15b8bf77da32" - integrity sha1-bkWxJj8gF/oKzH2J14sVuL932jI= - toidentifier@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== tough-cookie@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.0.0.tgz#d822234eeca882f991f0f908824ad2622ddbece4" - integrity sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg== + version "4.1.4" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.4.tgz#945f1461b45b5a8c76821c33ea49c3ac192c1b36" + integrity sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag== dependencies: psl "^1.1.33" punycode "^2.1.1" - universalify "^0.1.2" + universalify "^0.2.0" + url-parse "^1.5.3" -tough-cookie@~2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" - integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== +tr46@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" + integrity sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA== dependencies: - psl "^1.1.28" - punycode "^2.1.1" + punycode "^2.1.0" tr46@^2.1.0: version "2.1.0" @@ -14757,112 +12665,57 @@ tr46@^2.1.0: tr46@~0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= - -trim-newlines@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" - integrity sha1-WIeWa7WCpFA6QetST301ARgVphM= - -trim-newlines@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-2.0.0.tgz#b403d0b91be50c331dfc4b82eeceb22c3de16d20" - integrity sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA= - -trim-right@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" - integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== -"true-case-path@^1.0.2": - version "1.0.3" - resolved "https://registry.yarnpkg.com/true-case-path/-/true-case-path-1.0.3.tgz#f813b5a8c86b40da59606722b144e3225799f47d" - integrity sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew== - dependencies: - glob "^7.1.2" +treeify@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/treeify/-/treeify-1.1.0.tgz#4e31c6a463accd0943879f30667c4fdaff411bb8" + integrity sha512-1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A== tryer@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/tryer/-/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8" integrity sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA== -ts-invariant@^0.9.4: - version "0.9.4" - resolved "https://registry.yarnpkg.com/ts-invariant/-/ts-invariant-0.9.4.tgz#42ac6c791aade267dd9dc65276549df5c5d71cac" - integrity sha512-63jtX/ZSwnUNi/WhXjnK8kz4cHHpYS60AnmA6ixz17l7E12a5puCWFlNpkne5Rl0J8TBPVHpGjsj4fxs8ObVLQ== - dependencies: - tslib "^2.1.0" +ts-interface-checker@^0.1.9: + version "0.1.13" + resolved "https://registry.yarnpkg.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz#784fd3d679722bc103b1b4b8030bcddb5db2a699" + integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA== -ts-node@9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-9.0.0.tgz#e7699d2a110cc8c0d3b831715e417688683460b3" - integrity sha512-/TqB4SnererCDR/vb4S/QvSZvzQMJN8daAslg7MeaiHvD8rDZsSfXmNeNumyZZzMned72Xoq/isQljYSt8Ynfg== +ts-invariant@^0.10.3: + version "0.10.3" + resolved "https://registry.yarnpkg.com/ts-invariant/-/ts-invariant-0.10.3.tgz#3e048ff96e91459ffca01304dbc7f61c1f642f6c" + integrity sha512-uivwYcQaxAucv1CzRp2n/QdYPo4ILf9VXgH19zEIjFx2EJufV16P0JtJVpYHy89DItG6Kwj2oIUjrcK5au+4tQ== dependencies: - arg "^4.1.0" - diff "^4.0.1" - make-error "^1.1.1" - source-map-support "^0.5.17" - yn "3.1.1" - -ts-pnp@1.2.0, ts-pnp@^1.1.6: - version "1.2.0" - resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92" - integrity sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw== + tslib "^2.1.0" -tsconfig-paths@^3.12.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz#19769aca6ee8f6a1a341e38c8fa45dd9fb18899b" - integrity sha512-e5adrnOYT6zqVnWqZu7i/BQ3BnhzvGbjEjejFXO20lKIKpwTaupkCPgEfv4GZK1IBciJUEhYs3J3p75FdaTFVg== +tsconfig-paths@^3.15.0: + version "3.15.0" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz#5299ec605e55b1abb23ec939ef15edaf483070d4" + integrity sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg== dependencies: "@types/json5" "^0.0.29" - json5 "^1.0.1" - minimist "^1.2.0" + json5 "^1.0.2" + minimist "^1.2.6" strip-bom "^3.0.0" -tslib@^1.10.0, tslib@^1.8.1, tslib@^1.9.0: +tslib@1.14.1, tslib@^1.8.1, tslib@^1.9.0: version "1.14.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" - integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== +tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.0, tslib@^2.3.1, tslib@^2.4.0: + version "2.6.2" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" + integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== -tsutils@^3.17.1, tsutils@^3.21.0: +tsutils@^3.21.0: version "3.21.0" resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== dependencies: tslib "^1.8.1" -tty-browserify@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" - integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= - -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= - dependencies: - safe-buffer "^5.0.1" - -tweetnacl-util@^0.15.0: - version "0.15.1" - resolved "https://registry.yarnpkg.com/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz#b80fcdb5c97bcc508be18c44a4be50f022eea00b" - integrity sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw== - -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= - -tweetnacl@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" - integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== - type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" @@ -14873,7 +12726,7 @@ type-check@^0.4.0, type-check@~0.4.0: type-check@~0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= + integrity sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg== dependencies: prelude-ls "~1.1.2" @@ -14882,6 +12735,11 @@ type-detect@4.0.8: resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== +type-fest@^0.16.0: + version "0.16.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.16.0.tgz#3240b891a78b0deae910dbeb86553e552a148860" + integrity sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg== + type-fest@^0.20.2: version "0.20.2" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" @@ -14892,21 +12750,6 @@ type-fest@^0.21.3: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== -type-fest@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.3.1.tgz#63d00d204e059474fe5e1b7c011112bbd1dc29e1" - integrity sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ== - -type-fest@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" - integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== - -type-fest@^0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" - integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== - type-is@~1.6.18: version "1.6.18" resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" @@ -14915,41 +12758,87 @@ type-is@~1.6.18: media-typer "0.3.0" mime-types "~2.1.24" -type@^1.0.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" - integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== +type@^2.7.2: + version "2.7.2" + resolved "https://registry.yarnpkg.com/type/-/type-2.7.2.tgz#2376a15a3a28b1efa0f5350dcf72d24df6ef98d0" + integrity sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw== -type@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/type/-/type-2.5.0.tgz#0a2e78c2e77907b252abe5f298c1b01c63f0db3d" - integrity sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw== +typed-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz#1867c5d83b20fcb5ccf32649e5e2fc7424474ff3" + integrity sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + is-typed-array "^1.1.13" + +typed-array-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz#d92972d3cff99a3fa2e765a28fcdc0f1d89dec67" + integrity sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw== + dependencies: + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-proto "^1.0.3" + is-typed-array "^1.1.13" -typedarray-to-buffer@3.1.5, typedarray-to-buffer@^3.1.5: +typed-array-byte-offset@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz#f9ec1acb9259f395093e4567eb3c28a580d02063" + integrity sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA== + dependencies: + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-proto "^1.0.3" + is-typed-array "^1.1.13" + +typed-array-length@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.6.tgz#57155207c76e64a3457482dfdc1c9d1d3c4c73a3" + integrity sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g== + dependencies: + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-proto "^1.0.3" + is-typed-array "^1.1.13" + possible-typed-array-names "^1.0.0" + +typedarray-to-buffer@^3.1.5: version "3.1.5" resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== dependencies: is-typedarray "^1.0.0" -typedarray@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= +typescript@^5.2.2: + version "5.4.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.4.5.tgz#42ccef2c571fdbd0f6718b1d1f5e6e5ef006f611" + integrity sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ== -typescript@4.0.5: - version "4.0.5" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.0.5.tgz#ae9dddfd1069f1cb5beb3ef3b2170dd7c1332389" - integrity sha512-ywmr/VrTVCmNTJ6iV2LwIrfG1P+lv6luD8sUJs+2eI9NLGigaN+nUQc13iHqisq7bra9lnmUSYqbJvegraBOPQ== +ufo@^1.4.0, ufo@^1.5.3: + version "1.5.3" + resolved "https://registry.yarnpkg.com/ufo/-/ufo-1.5.3.tgz#3325bd3c977b6c6cd3160bf4ff52989adc9d3344" + integrity sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw== -unbox-primitive@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" - integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw== +uint8arrays@^3.0.0, uint8arrays@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/uint8arrays/-/uint8arrays-3.1.1.tgz#2d8762acce159ccd9936057572dade9459f65ae0" + integrity sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg== dependencies: - function-bind "^1.1.1" - has-bigints "^1.0.1" - has-symbols "^1.0.2" + multiformats "^9.4.2" + +unbox-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" + integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== + dependencies: + call-bind "^1.0.2" + has-bigints "^1.0.2" + has-symbols "^1.0.3" which-boxed-primitive "^1.0.2" uncontrollable@^7.2.1: @@ -14962,109 +12851,136 @@ uncontrollable@^7.2.1: invariant "^2.2.4" react-lifecycles-compat "^3.0.4" -underscore@1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.9.1.tgz#06dce34a0e68a7babc29b365b8e74b8925203961" - integrity sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg== - -unicode-canonical-property-names-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" - integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== +uncontrollable@^8.0.1: + version "8.0.4" + resolved "https://registry.yarnpkg.com/uncontrollable/-/uncontrollable-8.0.4.tgz#a0a8307f638795162fafd0550f4a1efa0f8c5eb6" + integrity sha512-ulRWYWHvscPFc0QQXvyJjY6LIXU56f0h8pQFvhxiKk5V1fcI8gp9Ht9leVAhrVjzqMw0BgjspBINx9r6oyJUvQ== -unicode-match-property-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" - integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== - dependencies: - unicode-canonical-property-names-ecmascript "^2.0.0" - unicode-property-aliases-ecmascript "^2.0.0" +uncrypto@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/uncrypto/-/uncrypto-0.1.3.tgz#e1288d609226f2d02d8d69ee861fa20d8348ef2b" + integrity sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q== -unicode-match-property-value-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz#1a01aa57247c14c568b89775a54938788189a714" - integrity sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw== +underscore@1.12.1: + version "1.12.1" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.12.1.tgz#7bb8cc9b3d397e201cf8553336d262544ead829e" + integrity sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw== -unicode-property-aliases-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz#0a36cb9a585c4f6abd51ad1deddb285c165297c8" - integrity sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ== +undici-types@~5.26.4: + version "5.26.5" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" + integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== -union-value@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" - integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== +unenv@^1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/unenv/-/unenv-1.9.0.tgz#469502ae85be1bd3a6aa60f810972b1a904ca312" + integrity sha512-QKnFNznRxmbOF1hDgzpqrlIf6NC5sbZ2OJ+5Wl3OX8uM+LUJXbj4TXvLJCtwbPTmbMHCLIz6JLKNinNsMShK9g== dependencies: - arr-union "^3.1.0" - get-value "^2.0.6" - is-extendable "^0.1.1" - set-value "^2.0.1" + consola "^3.2.3" + defu "^6.1.3" + mime "^3.0.0" + node-fetch-native "^1.6.1" + pathe "^1.1.1" -uniq@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" - integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= +unfetch@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/unfetch/-/unfetch-4.2.0.tgz#7e21b0ef7d363d8d9af0fb929a5555f6ef97a3be" + integrity sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA== + +unicode-canonical-property-names-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" + integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== -uniqs@^2.0.0: +unicode-match-property-ecmascript@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" - integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI= - -unique-filename@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" - integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== + resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" + integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== dependencies: - unique-slug "^2.0.0" + unicode-canonical-property-names-ecmascript "^2.0.0" + unicode-property-aliases-ecmascript "^2.0.0" -unique-slug@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" - integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== - dependencies: - imurmurhash "^0.1.4" +unicode-match-property-value-ecmascript@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz#cb5fffdcd16a05124f5a4b0bf7c3770208acbbe0" + integrity sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA== -unique-string@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a" - integrity sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo= +unicode-property-aliases-ecmascript@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" + integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== + +unique-string@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" + integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg== dependencies: - crypto-random-string "^1.0.0" + crypto-random-string "^2.0.0" -universalify@^0.1.0, universalify@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== +universalify@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.2.0.tgz#6451760566fa857534745ab1dde952d1b1761be0" + integrity sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg== universalify@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" - integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== + version "2.0.1" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" + integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== unquote@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" - integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ= + integrity sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg== -unset-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" - integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= +unstorage@^1.9.0: + version "1.10.2" + resolved "https://registry.yarnpkg.com/unstorage/-/unstorage-1.10.2.tgz#fb7590ada8b30e83be9318f85100158b02a76dae" + integrity sha512-cULBcwDqrS8UhlIysUJs2Dk0Mmt8h7B0E6mtR+relW9nZvsf/u4SkAYyNliPiPW7XtFNb5u3IUMkxGxFTTRTgQ== + dependencies: + anymatch "^3.1.3" + chokidar "^3.6.0" + destr "^2.0.3" + h3 "^1.11.1" + listhen "^1.7.2" + lru-cache "^10.2.0" + mri "^1.2.0" + node-fetch-native "^1.6.2" + ofetch "^1.3.3" + ufo "^1.4.0" + +untun@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/untun/-/untun-0.1.3.tgz#5d10dee37a3a5737ff03d158be877dae0a0e58a6" + integrity sha512-4luGP9LMYszMRZwsvyUd9MrxgEGZdZuZgpVQHEEX0lCYFESasVRvZd0EYpCkOIbJKHMuv0LskpXc/8Un+MJzEQ== dependencies: - has-value "^0.3.1" - isobject "^3.0.0" + citty "^0.1.5" + consola "^3.2.3" + pathe "^1.1.1" -upath@^1.1.1, upath@^1.1.2, upath@^1.2.0: +upath@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== -uri-js@^4.2.2: +update-browserslist-db@^1.0.13: + version "1.0.15" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.15.tgz#60ed9f8cba4a728b7ecf7356f641a31e3a691d97" + integrity sha512-K9HWH62x3/EalU1U6sjSZiylm9C8tgq2mSvshZpqc7QE69RaA2qjhkW2HlNA0tFpEbtyFz7HTqbSdN4MSwUodA== + dependencies: + escalade "^3.1.2" + picocolors "^1.0.0" + +uqr@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/uqr/-/uqr-0.1.2.tgz#5c6cd5dcff9581f9bb35b982cb89e2c483a41d7d" + integrity sha512-MJu7ypHq6QasgF5YRTjqscSzQp/W11zoUk6kvmlH+fmWEs63Y0Eib13hYFwAzagRJcVY8WVnlV+eBDUGMJ5IbA== + +uri-js@^4.2.2, uri-js@^4.4.1: version "4.4.1" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== @@ -15074,42 +12990,20 @@ uri-js@^4.2.2: urix@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" - integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= - -url-loader@4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-4.1.1.tgz#28505e905cae158cf07c92ca622d7f237e70a4e2" - integrity sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA== - dependencies: - loader-utils "^2.0.0" - mime-types "^2.1.27" - schema-utils "^3.0.0" + integrity sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg== -url-parse@^1.4.3: - version "1.5.4" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.4.tgz#e4f645a7e2a0852cc8a66b14b292a3e9a11a97fd" - integrity sha512-ITeAByWWoqutFClc/lRZnFplgXgEZr3WJ6XngMM/N9DMIm4K8zXPCZ1Jdu0rERwO84w1WC5wkle2ubwTA4NTBg== +url-parse@^1.5.3: + version "1.5.10" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1" + integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== dependencies: querystringify "^2.1.1" requires-port "^1.0.0" -url-set-query@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/url-set-query/-/url-set-query-1.0.0.tgz#016e8cfd7c20ee05cafe7795e892bd0702faa339" - integrity sha1-AW6M/Xwg7gXK/neV6JK9BwL6ozk= - -url@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" - integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= - dependencies: - punycode "1.3.2" - querystring "0.2.0" - -use@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" - integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== +use-sync-external-store@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz#7dbefd6ef3fe4e767a0cf5d7287aacfb5846928a" + integrity sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA== utf8@3.0.0: version "3.0.0" @@ -15119,15 +13013,7 @@ utf8@3.0.0: util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= - -util.promisify@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" - integrity sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA== - dependencies: - define-properties "^1.1.2" - object.getownpropertydescriptors "^2.0.3" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== util.promisify@~1.0.0: version "1.0.1" @@ -15139,78 +13025,42 @@ util.promisify@~1.0.0: has-symbols "^1.0.1" object.getownpropertydescriptors "^2.1.0" -util@0.10.3: - version "0.10.3" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" - integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= - dependencies: - inherits "2.0.1" - -util@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" - integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== - dependencies: - inherits "2.0.3" - utila@~0.4: version "0.4.0" resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" - integrity sha1-ihagXURWV6Oupe7MWxKk+lN5dyw= + integrity sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA== utils-merge@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= - -uuid@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.1.tgz#c2a30dedb3e535d72ccf82e343941a50ba8533ac" - integrity sha1-wqMN7bPlNdcsz4LjQ5QaULqFM6w= - -uuid@7.0.2: - version "7.0.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-7.0.2.tgz#7ff5c203467e91f5e0d85cfcbaaf7d2ebbca9be6" - integrity sha512-vy9V/+pKG+5ZTYKf+VcphF5Oc6EFiu3W8Nv3P3zIh0EqVI80ZxOzuPfe9EHjkFNvf8+xuTHVeei4Drydlx4zjw== - -uuid@^3.3.2, uuid@^3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" - integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== + integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== -uuid@^8.3.0: +uuid@^8.3.2: version "8.3.2" resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== -uuidv4@6.0.6: - version "6.0.6" - resolved "https://registry.yarnpkg.com/uuidv4/-/uuidv4-6.0.6.tgz#6966e8dd15760528a0f954843d24fdfdfda5a329" - integrity sha512-10YcruyGJtsG5SJnPG+8atr8toJa7xAOrcO7B7plYYiwpH1mQ8UZHjNSa2MrwGi6KWuyVrXGHr+Rce22F9UAiw== - dependencies: - uuid "7.0.2" - -v8-compile-cache@^2.0.3: - version "2.3.0" - resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" - integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== +uuid@^9.0.1: + version "9.0.1" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30" + integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== -v8-to-istanbul@^7.0.0: - version "7.1.2" - resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-7.1.2.tgz#30898d1a7fa0c84d225a2c1434fb958f290883c1" - integrity sha512-TxNb7YEUwkLXCQYeudi6lgQ/SZrzNO4kMdlqVxaZPUIUjCv6iSSypUQX70kNBSERpQ8fk48+d61FXk+tgqcWow== +v8-to-istanbul@^8.1.0: + version "8.1.1" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz#77b752fd3975e31bbcef938f85e9bd1c7a8d60ed" + integrity sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w== dependencies: "@types/istanbul-lib-coverage" "^2.0.1" convert-source-map "^1.6.0" source-map "^0.7.3" -validate-npm-package-license@^3.0.1: - version "3.0.4" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" - integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== +valtio@1.11.2: + version "1.11.2" + resolved "https://registry.yarnpkg.com/valtio/-/valtio-1.11.2.tgz#b8049c02dfe65620635d23ebae9121a741bb6530" + integrity sha512-1XfIxnUXzyswPAPXo1P3Pdx2mq/pIqZICkWN60Hby0d9Iqb+MEIpqgYVlbflvHdrp2YR/q3jyKWRPJJ100yxaw== dependencies: - spdx-correct "^3.0.0" - spdx-expression-parse "^3.0.0" + proxy-compare "2.5.1" + use-sync-external-store "1.2.0" value-equal@^1.0.1: version "1.0.1" @@ -15220,26 +13070,23 @@ value-equal@^1.0.1: vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= + integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== -vendors@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" - integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w== +void-elements@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-3.1.0.tgz#614f7fbf8d801f0bb5f0661f5b2f5785750e4f09" + integrity sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w== -verror@1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= +vue@>=3: + version "3.4.27" + resolved "https://registry.yarnpkg.com/vue/-/vue-3.4.27.tgz#40b7d929d3e53f427f7f5945386234d2854cc2a1" + integrity sha512-8s/56uK6r01r1icG/aEOHqyMVxd1bkYcSe9j8HcKtr/xTOFWvnzIVTehNW+5Yt89f+DLBe4A569pnZLS5HzAMA== dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - -vm-browserify@^1.0.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" - integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== + "@vue/compiler-dom" "3.4.27" + "@vue/compiler-sfc" "3.4.27" + "@vue/runtime-dom" "3.4.27" + "@vue/server-renderer" "3.4.27" + "@vue/shared" "3.4.27" w3c-hr-time@^1.0.2: version "1.0.2" @@ -15255,7 +13102,7 @@ w3c-xmlserializer@^2.0.0: dependencies: xml-name-validator "^3.0.0" -walker@^1.0.7, walker@~1.0.5: +walker@^1.0.7: version "1.0.8" resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== @@ -15263,9 +13110,9 @@ walker@^1.0.7, walker@~1.0.5: makeerror "1.0.12" walletlink@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/walletlink/-/walletlink-2.4.2.tgz#c218d1e0906537eac2a2e0bb24ee8ad19ecc23a6" - integrity sha512-NCDSrfPwm51dSMIygkvaO0t4yQMMDHMEPXcDWS53spMsPXrxF5Xmg07l5XZFoUuS5D3ibeQFRi1illX7ppA24g== + version "2.5.0" + resolved "https://registry.yarnpkg.com/walletlink/-/walletlink-2.5.0.tgz#b8db10f4d9f124084feb16d1e2b2d08ba8c20d21" + integrity sha512-PBJmK5tZmonwKPABBI2/optaZ11O4kKmkmnU5eLKhk4XRlal5qJ1igZ4U5j3w6w8wxxdhCWpLMHzGWt3n/p7mw== dependencies: "@metamask/safe-event-emitter" "2.0.0" bind-decorator "^1.0.11" @@ -15288,23 +13135,13 @@ warning@^4.0.0, warning@^4.0.3: dependencies: loose-envify "^1.0.0" -watchpack-chokidar2@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz#38500072ee6ece66f3769936950ea1771be1c957" - integrity sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww== - dependencies: - chokidar "^2.1.8" - -watchpack@^1.7.4: - version "1.7.5" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.5.tgz#1267e6c55e0b9b5be44c2023aed5437a2c26c453" - integrity sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ== +watchpack@^2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.1.tgz#29308f2cac150fa8e4c92f90e0ec954a9fed7fff" + integrity sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg== dependencies: + glob-to-regexp "^0.4.1" graceful-fs "^4.1.2" - neo-async "^2.5.0" - optionalDependencies: - chokidar "^3.4.1" - watchpack-chokidar2 "^2.0.1" wbuf@^1.1.0, wbuf@^1.7.3: version "1.7.3" @@ -15313,96 +13150,34 @@ wbuf@^1.1.0, wbuf@^1.7.3: dependencies: minimalistic-assert "^1.0.0" -web-vitals@^0.2.4: - version "0.2.4" - resolved "https://registry.yarnpkg.com/web-vitals/-/web-vitals-0.2.4.tgz#ec3df43c834a207fd7cdefd732b2987896e08511" - integrity sha512-6BjspCO9VriYy12z356nL6JBS0GYeEcA457YyRzD+dD6XYCQ75NKhcOHUMHentOE7OcVCIXXDvOm0jKFfQG2Gg== - -web3-provider-engine@15.0.4: - version "15.0.4" - resolved "https://registry.yarnpkg.com/web3-provider-engine/-/web3-provider-engine-15.0.4.tgz#5c336bcad2274dff5218bc8db003fa4e9e464c24" - integrity sha512-Ob9oK0TUZfVC7NXkB7CQSWAiCdCD/Xnlh2zTnV8NdJR8LCrMAy2i6JedU70JHaxw59y7mM4GnsYOTTGkquFnNQ== - dependencies: - async "^2.5.0" - backoff "^2.5.0" - clone "^2.0.0" - cross-fetch "^2.1.0" - eth-block-tracker "^4.4.2" - eth-json-rpc-errors "^1.0.1" - eth-json-rpc-filters "^4.1.1" - eth-json-rpc-infura "^4.0.1" - eth-json-rpc-middleware "^4.1.5" - eth-sig-util "^1.4.2" - ethereumjs-block "^1.2.2" - ethereumjs-tx "^1.2.0" - ethereumjs-util "^5.1.5" - ethereumjs-vm "^2.3.4" - json-stable-stringify "^1.0.1" - promise-to-callback "^1.0.0" - readable-stream "^2.2.9" - request "^2.85.0" - semaphore "^1.0.3" - ws "^5.1.1" - xhr "^2.2.0" - xtend "^4.0.1" - -web3-provider-engine@16.0.1: - version "16.0.1" - resolved "https://registry.yarnpkg.com/web3-provider-engine/-/web3-provider-engine-16.0.1.tgz#2600a39ede364cdc0a1fc773bf40a94f2177e605" - integrity sha512-/Eglt2aocXMBiDj7Se/lyZnNDaHBaoJlaUfbP5HkLJQC/HlGbR+3/W+dINirlJDhh7b54DzgykqY7ksaU5QgTg== - dependencies: - async "^2.5.0" - backoff "^2.5.0" - clone "^2.0.0" - cross-fetch "^2.1.0" - eth-block-tracker "^4.4.2" - eth-json-rpc-filters "^4.2.1" - eth-json-rpc-infura "^5.1.0" - eth-json-rpc-middleware "^6.0.0" - eth-rpc-errors "^3.0.0" - eth-sig-util "^1.4.2" - ethereumjs-block "^1.2.2" - ethereumjs-tx "^1.2.0" - ethereumjs-util "^5.1.5" - ethereumjs-vm "^2.3.4" - json-stable-stringify "^1.0.1" - promise-to-callback "^1.0.0" - readable-stream "^2.2.9" - request "^2.85.0" - semaphore "^1.0.3" - ws "^5.1.1" - xhr "^2.2.0" - xtend "^4.0.1" - -web3-utils@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.2.1.tgz#21466e38291551de0ab34558de21512ac4274534" - integrity sha512-Mrcn3l58L+yCKz3zBryM6JZpNruWuT0OCbag8w+reeNROSGVlXzUQkU+gtAwc9JCZ7tKUyg67+2YUGqUjVcyBA== - dependencies: - bn.js "4.11.8" - eth-lib "0.2.7" +web-vitals@^2.1.0: + version "2.1.4" + resolved "https://registry.yarnpkg.com/web-vitals/-/web-vitals-2.1.4.tgz#76563175a475a5e835264d373704f9dde718290c" + integrity sha512-sVWcwhU5mX6crfI5Vd2dC4qchyTqxV8URinzt25XqVh+bHEPGH4C3NPrNionCP7Obx59wrYEbNlw4Z8sjALzZg== + +web3-utils@^1.3.4: + version "1.10.4" + resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.10.4.tgz#0daee7d6841641655d8b3726baf33b08eda1cbec" + integrity sha512-tsu8FiKJLk2PzhDl9fXbGUWTkkVXYhtTA+SmEFkKft+9BgwLxfCRpU96sWv7ICC8zixBNd3JURVoiR3dUXgP8A== + dependencies: + "@ethereumjs/util" "^8.1.0" + bn.js "^5.2.1" + ethereum-bloom-filters "^1.0.6" + ethereum-cryptography "^2.1.2" ethjs-unit "0.1.6" number-to-bn "1.7.0" - randomhex "0.1.5" - underscore "1.9.1" + randombytes "^2.1.0" utf8 "3.0.0" -web3modal@^1.9.5: - version "1.9.5" - resolved "https://registry.yarnpkg.com/web3modal/-/web3modal-1.9.5.tgz#a1d6351a11358b376af5772f79f3dcdba6c38d1b" - integrity sha512-L5ME6zgoaCDa+T66skW9WpxGOJX6vU9v+7aLacoQJhU3AMTk784ionpX+Pg4UdhdM+UQW+odge32GkwEX11czQ== - dependencies: - detect-browser "^5.1.0" - prop-types "^15.7.2" - react "^16.8.6" - react-dom "^16.8.6" - styled-components "^5.3.3" - tslib "^1.10.0" - webidl-conversions@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== + +webidl-conversions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" + integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== webidl-conversions@^5.0.0: version "5.0.0" @@ -15414,75 +13189,62 @@ webidl-conversions@^6.1.0: resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== -webpack-dev-middleware@^3.7.2: - version "3.7.3" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz#0639372b143262e2b84ab95d3b91a7597061c2c5" - integrity sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ== +webpack-dev-middleware@^5.3.4: + version "5.3.4" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz#eb7b39281cbce10e104eb2b8bf2b63fce49a3517" + integrity sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q== dependencies: - memory-fs "^0.4.1" - mime "^2.4.4" - mkdirp "^0.5.1" + colorette "^2.0.10" + memfs "^3.4.3" + mime-types "^2.1.31" range-parser "^1.2.1" - webpack-log "^2.0.0" - -webpack-dev-server@3.11.0: - version "3.11.0" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.11.0.tgz#8f154a3bce1bcfd1cc618ef4e703278855e7ff8c" - integrity sha512-PUxZ+oSTxogFQgkTtFndEtJIPNmml7ExwufBZ9L2/Xyyd5PnOL5UreWe5ZT7IU25DSdykL9p1MLQzmLh2ljSeg== - dependencies: - ansi-html "0.0.7" - bonjour "^3.5.0" - chokidar "^2.1.8" + schema-utils "^4.0.0" + +webpack-dev-server@^4.6.0: + version "4.15.2" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.15.2.tgz#9e0c70a42a012560860adb186986da1248333173" + integrity sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g== + dependencies: + "@types/bonjour" "^3.5.9" + "@types/connect-history-api-fallback" "^1.3.5" + "@types/express" "^4.17.13" + "@types/serve-index" "^1.9.1" + "@types/serve-static" "^1.13.10" + "@types/sockjs" "^0.3.33" + "@types/ws" "^8.5.5" + ansi-html-community "^0.0.8" + bonjour-service "^1.0.11" + chokidar "^3.5.3" + colorette "^2.0.10" compression "^1.7.4" - connect-history-api-fallback "^1.6.0" - debug "^4.1.1" - del "^4.1.1" - express "^4.17.1" - html-entities "^1.3.1" - http-proxy-middleware "0.19.1" - import-local "^2.0.0" - internal-ip "^4.3.0" - ip "^1.1.5" - is-absolute-url "^3.0.3" - killable "^1.0.1" - loglevel "^1.6.8" - opn "^5.5.0" - p-retry "^3.0.1" - portfinder "^1.0.26" - schema-utils "^1.0.0" - selfsigned "^1.10.7" - semver "^6.3.0" + connect-history-api-fallback "^2.0.0" + default-gateway "^6.0.3" + express "^4.17.3" + graceful-fs "^4.2.6" + html-entities "^2.3.2" + http-proxy-middleware "^2.0.3" + ipaddr.js "^2.0.1" + launch-editor "^2.6.0" + open "^8.0.9" + p-retry "^4.5.0" + rimraf "^3.0.2" + schema-utils "^4.0.0" + selfsigned "^2.1.1" serve-index "^1.9.1" - sockjs "0.3.20" - sockjs-client "1.4.0" + sockjs "^0.3.24" spdy "^4.0.2" - strip-ansi "^3.0.1" - supports-color "^6.1.0" - url "^0.11.0" - webpack-dev-middleware "^3.7.2" - webpack-log "^2.0.0" - ws "^6.2.1" - yargs "^13.3.2" + webpack-dev-middleware "^5.3.4" + ws "^8.13.0" -webpack-log@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f" - integrity sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg== - dependencies: - ansi-colors "^3.0.0" - uuid "^3.3.2" - -webpack-manifest-plugin@2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/webpack-manifest-plugin/-/webpack-manifest-plugin-2.2.0.tgz#19ca69b435b0baec7e29fbe90fb4015de2de4f16" - integrity sha512-9S6YyKKKh/Oz/eryM1RyLVDVmy3NSPV0JXMRhZ18fJsq+AwGxUY34X54VNwkzYcEmEkDwNxuEOboCZEebJXBAQ== +webpack-manifest-plugin@^4.0.2: + version "4.1.1" + resolved "https://registry.yarnpkg.com/webpack-manifest-plugin/-/webpack-manifest-plugin-4.1.1.tgz#10f8dbf4714ff93a215d5a45bcc416d80506f94f" + integrity sha512-YXUAwxtfKIJIKkhg03MKuiFAD72PlrqCiwdwO4VEXdRO5V0ORCNwaOwAZawPZalCbmH9kBDmXnNeQOw+BIEiow== dependencies: - fs-extra "^7.0.0" - lodash ">=3.5 <5" - object.entries "^1.1.0" - tapable "^1.0.0" + tapable "^2.0.0" + webpack-sources "^2.2.0" -webpack-sources@^1.1.0, webpack-sources@^1.3.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3: +webpack-sources@^1.4.3: version "1.4.3" resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== @@ -15490,43 +13252,50 @@ webpack-sources@^1.1.0, webpack-sources@^1.3.0, webpack-sources@^1.4.0, webpack- source-list-map "^2.0.0" source-map "~0.6.1" -webpack@4.44.2: - version "4.44.2" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.44.2.tgz#6bfe2b0af055c8b2d1e90ed2cd9363f841266b72" - integrity sha512-6KJVGlCxYdISyurpQ0IPTklv+DULv05rs2hseIXer6D7KrUicRDLFb4IUM1S6LUAKypPM/nSiVSuv8jHu1m3/Q== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-module-context" "1.9.0" - "@webassemblyjs/wasm-edit" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" - acorn "^6.4.1" - ajv "^6.10.2" - ajv-keywords "^3.4.1" - chrome-trace-event "^1.0.2" - enhanced-resolve "^4.3.0" - eslint-scope "^4.0.3" - json-parse-better-errors "^1.0.2" - loader-runner "^2.4.0" - loader-utils "^1.2.3" - memory-fs "^0.4.1" - micromatch "^3.1.10" - mkdirp "^0.5.3" - neo-async "^2.6.1" - node-libs-browser "^2.2.1" - schema-utils "^1.0.0" - tapable "^1.1.3" - terser-webpack-plugin "^1.4.3" - watchpack "^1.7.4" - webpack-sources "^1.4.1" - -websocket-driver@0.6.5: - version "0.6.5" - resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.6.5.tgz#5cb2556ceb85f4373c6d8238aa691c8454e13a36" - integrity sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY= +webpack-sources@^2.2.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-2.3.1.tgz#570de0af163949fe272233c2cefe1b56f74511fd" + integrity sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA== dependencies: - websocket-extensions ">=0.1.1" + source-list-map "^2.0.1" + source-map "^0.6.1" -websocket-driver@>=0.5.1: +webpack-sources@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" + integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== + +webpack@^5.64.4: + version "5.91.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.91.0.tgz#ffa92c1c618d18c878f06892bbdc3373c71a01d9" + integrity sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw== + dependencies: + "@types/eslint-scope" "^3.7.3" + "@types/estree" "^1.0.5" + "@webassemblyjs/ast" "^1.12.1" + "@webassemblyjs/wasm-edit" "^1.12.1" + "@webassemblyjs/wasm-parser" "^1.12.1" + acorn "^8.7.1" + acorn-import-assertions "^1.9.0" + browserslist "^4.21.10" + chrome-trace-event "^1.0.2" + enhanced-resolve "^5.16.0" + es-module-lexer "^1.2.1" + eslint-scope "5.1.1" + events "^3.2.0" + glob-to-regexp "^0.4.1" + graceful-fs "^4.2.11" + json-parse-even-better-errors "^2.3.1" + loader-runner "^4.2.0" + mime-types "^2.1.27" + neo-async "^2.6.2" + schema-utils "^3.2.0" + tapable "^2.1.1" + terser-webpack-plugin "^5.3.10" + watchpack "^2.4.1" + webpack-sources "^3.2.3" + +websocket-driver@>=0.5.1, websocket-driver@^0.7.4: version "0.7.4" resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== @@ -15547,15 +13316,10 @@ whatwg-encoding@^1.0.5: dependencies: iconv-lite "0.4.24" -whatwg-fetch@2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz#dde6a5df315f9d39991aa17621853d720b85566f" - integrity sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng== - -whatwg-fetch@^3.4.1: - version "3.6.2" - resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz#dced24f37f2624ed0281725d51d0e2e3fe677f8c" - integrity sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA== +whatwg-fetch@^3.6.2: + version "3.6.20" + resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz#580ce6d791facec91d37c72890995a0b48d31c70" + integrity sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg== whatwg-mimetype@^2.3.0: version "2.3.0" @@ -15565,11 +13329,20 @@ whatwg-mimetype@^2.3.0: whatwg-url@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0= + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== dependencies: tr46 "~0.0.3" webidl-conversions "^3.0.0" +whatwg-url@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06" + integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg== + dependencies: + lodash.sortby "^4.7.0" + tr46 "^1.0.1" + webidl-conversions "^4.0.2" + whatwg-url@^8.0.0, whatwg-url@^8.5.0: version "8.7.0" resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.7.0.tgz#656a78e510ff8f3937bc0bcbe9f5c0ac35941b77" @@ -15590,212 +13363,246 @@ which-boxed-primitive@^1.0.2: is-string "^1.0.5" is-symbol "^1.0.3" +which-builtin-type@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/which-builtin-type/-/which-builtin-type-1.1.3.tgz#b1b8443707cc58b6e9bf98d32110ff0c2cbd029b" + integrity sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw== + dependencies: + function.prototype.name "^1.1.5" + has-tostringtag "^1.0.0" + is-async-function "^2.0.0" + is-date-object "^1.0.5" + is-finalizationregistry "^1.0.2" + is-generator-function "^1.0.10" + is-regex "^1.1.4" + is-weakref "^1.0.2" + isarray "^2.0.5" + which-boxed-primitive "^1.0.2" + which-collection "^1.0.1" + which-typed-array "^1.1.9" + +which-collection@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.2.tgz#627ef76243920a107e7ce8e96191debe4b16c2a0" + integrity sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw== + dependencies: + is-map "^2.0.3" + is-set "^2.0.3" + is-weakmap "^2.0.2" + is-weakset "^2.0.3" + which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= + version "2.0.1" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.1.tgz#776b1fe35d90aebe99e8ac15eb24093389a4a409" + integrity sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ== -which@1, which@^1.2.9, which@^1.3.1: +which-typed-array@^1.1.14, which-typed-array@^1.1.15, which-typed-array@^1.1.9: + version "1.1.15" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.15.tgz#264859e9b11a649b388bfaaf4f767df1f779b38d" + integrity sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA== + dependencies: + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.2" + +which@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== dependencies: isexe "^2.0.0" -which@^2.0.1, which@^2.0.2: +which@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== dependencies: isexe "^2.0.0" -wide-align@^1.1.0: - version "1.1.5" - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3" - integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== - dependencies: - string-width "^1.0.2 || 2 || 3 || 4" - -word-wrap@^1.2.3, word-wrap@~1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" - integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== - -workbox-background-sync@^5.1.4: - version "5.1.4" - resolved "https://registry.yarnpkg.com/workbox-background-sync/-/workbox-background-sync-5.1.4.tgz#5ae0bbd455f4e9c319e8d827c055bb86c894fd12" - integrity sha512-AH6x5pYq4vwQvfRDWH+vfOePfPIYQ00nCEB7dJRU1e0n9+9HMRyvI63FlDvtFT2AvXVRsXvUt7DNMEToyJLpSA== - dependencies: - workbox-core "^5.1.4" - -workbox-broadcast-update@^5.1.4: - version "5.1.4" - resolved "https://registry.yarnpkg.com/workbox-broadcast-update/-/workbox-broadcast-update-5.1.4.tgz#0eeb89170ddca7f6914fa3523fb14462891f2cfc" - integrity sha512-HTyTWkqXvHRuqY73XrwvXPud/FN6x3ROzkfFPsRjtw/kGZuZkPzfeH531qdUGfhtwjmtO/ZzXcWErqVzJNdXaA== - dependencies: - workbox-core "^5.1.4" - -workbox-build@^5.1.4: - version "5.1.4" - resolved "https://registry.yarnpkg.com/workbox-build/-/workbox-build-5.1.4.tgz#23d17ed5c32060c363030c8823b39d0eabf4c8c7" - integrity sha512-xUcZn6SYU8usjOlfLb9Y2/f86Gdo+fy1fXgH8tJHjxgpo53VVsqRX0lUDw8/JuyzNmXuo8vXX14pXX2oIm9Bow== - dependencies: - "@babel/core" "^7.8.4" - "@babel/preset-env" "^7.8.4" - "@babel/runtime" "^7.8.4" - "@hapi/joi" "^15.1.0" - "@rollup/plugin-node-resolve" "^7.1.1" - "@rollup/plugin-replace" "^2.3.1" - "@surma/rollup-plugin-off-main-thread" "^1.1.1" +word-wrap@^1.2.5, word-wrap@~1.2.3: + version "1.2.5" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" + integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== + +workbox-background-sync@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-background-sync/-/workbox-background-sync-6.6.1.tgz#08d603a33717ce663e718c30cc336f74909aff2f" + integrity sha512-trJd3ovpWCvzu4sW0E8rV3FUyIcC0W8G+AZ+VcqzzA890AsWZlUGOTSxIMmIHVusUw/FDq1HFWfy/kC/WTRqSg== + dependencies: + idb "^7.0.1" + workbox-core "6.6.1" + +workbox-broadcast-update@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-broadcast-update/-/workbox-broadcast-update-6.6.1.tgz#0fad9454cf8e4ace0c293e5617c64c75d8a8c61e" + integrity sha512-fBhffRdaANdeQ1V8s692R9l/gzvjjRtydBOvR6WCSB0BNE2BacA29Z4r9/RHd9KaXCPl6JTdI9q0bR25YKP8TQ== + dependencies: + workbox-core "6.6.1" + +workbox-build@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-build/-/workbox-build-6.6.1.tgz#6010e9ce550910156761448f2dbea8cfcf759cb0" + integrity sha512-INPgDx6aRycAugUixbKgiEQBWD0MPZqU5r0jyr24CehvNuLPSXp/wGOpdRJmts656lNiXwqV7dC2nzyrzWEDnw== + dependencies: + "@apideck/better-ajv-errors" "^0.3.1" + "@babel/core" "^7.11.1" + "@babel/preset-env" "^7.11.0" + "@babel/runtime" "^7.11.2" + "@rollup/plugin-babel" "^5.2.0" + "@rollup/plugin-node-resolve" "^11.2.1" + "@rollup/plugin-replace" "^2.4.1" + "@surma/rollup-plugin-off-main-thread" "^2.2.3" + ajv "^8.6.0" common-tags "^1.8.0" fast-json-stable-stringify "^2.1.0" - fs-extra "^8.1.0" + fs-extra "^9.0.1" glob "^7.1.6" - lodash.template "^4.5.0" + lodash "^4.17.20" pretty-bytes "^5.3.0" - rollup "^1.31.1" - rollup-plugin-babel "^4.3.3" - rollup-plugin-terser "^5.3.1" - source-map "^0.7.3" - source-map-url "^0.4.0" + rollup "^2.43.1" + rollup-plugin-terser "^7.0.0" + source-map "^0.8.0-beta.0" stringify-object "^3.3.0" - strip-comments "^1.0.2" - tempy "^0.3.0" + strip-comments "^2.0.1" + tempy "^0.6.0" upath "^1.2.0" - workbox-background-sync "^5.1.4" - workbox-broadcast-update "^5.1.4" - workbox-cacheable-response "^5.1.4" - workbox-core "^5.1.4" - workbox-expiration "^5.1.4" - workbox-google-analytics "^5.1.4" - workbox-navigation-preload "^5.1.4" - workbox-precaching "^5.1.4" - workbox-range-requests "^5.1.4" - workbox-routing "^5.1.4" - workbox-strategies "^5.1.4" - workbox-streams "^5.1.4" - workbox-sw "^5.1.4" - workbox-window "^5.1.4" - -workbox-cacheable-response@^5.1.4: - version "5.1.4" - resolved "https://registry.yarnpkg.com/workbox-cacheable-response/-/workbox-cacheable-response-5.1.4.tgz#9ff26e1366214bdd05cf5a43da9305b274078a54" - integrity sha512-0bfvMZs0Of1S5cdswfQK0BXt6ulU5kVD4lwer2CeI+03czHprXR3V4Y8lPTooamn7eHP8Iywi5QjyAMjw0qauA== - dependencies: - workbox-core "^5.1.4" - -workbox-core@^5.1.4: - version "5.1.4" - resolved "https://registry.yarnpkg.com/workbox-core/-/workbox-core-5.1.4.tgz#8bbfb2362ecdff30e25d123c82c79ac65d9264f4" - integrity sha512-+4iRQan/1D8I81nR2L5vcbaaFskZC2CL17TLbvWVzQ4qiF/ytOGF6XeV54pVxAvKUtkLANhk8TyIUMtiMw2oDg== - -workbox-expiration@^5.1.4: - version "5.1.4" - resolved "https://registry.yarnpkg.com/workbox-expiration/-/workbox-expiration-5.1.4.tgz#92b5df461e8126114943a3b15c55e4ecb920b163" - integrity sha512-oDO/5iC65h2Eq7jctAv858W2+CeRW5e0jZBMNRXpzp0ZPvuT6GblUiHnAsC5W5lANs1QS9atVOm4ifrBiYY7AQ== - dependencies: - workbox-core "^5.1.4" - -workbox-google-analytics@^5.1.4: - version "5.1.4" - resolved "https://registry.yarnpkg.com/workbox-google-analytics/-/workbox-google-analytics-5.1.4.tgz#b3376806b1ac7d7df8418304d379707195fa8517" - integrity sha512-0IFhKoEVrreHpKgcOoddV+oIaVXBFKXUzJVBI+nb0bxmcwYuZMdteBTp8AEDJacENtc9xbR0wa9RDCnYsCDLjA== - dependencies: - workbox-background-sync "^5.1.4" - workbox-core "^5.1.4" - workbox-routing "^5.1.4" - workbox-strategies "^5.1.4" - -workbox-navigation-preload@^5.1.4: - version "5.1.4" - resolved "https://registry.yarnpkg.com/workbox-navigation-preload/-/workbox-navigation-preload-5.1.4.tgz#30d1b720d26a05efc5fa11503e5cc1ed5a78902a" - integrity sha512-Wf03osvK0wTflAfKXba//QmWC5BIaIZARU03JIhAEO2wSB2BDROWI8Q/zmianf54kdV7e1eLaIEZhth4K4MyfQ== - dependencies: - workbox-core "^5.1.4" - -workbox-precaching@^5.1.4: - version "5.1.4" - resolved "https://registry.yarnpkg.com/workbox-precaching/-/workbox-precaching-5.1.4.tgz#874f7ebdd750dd3e04249efae9a1b3f48285fe6b" - integrity sha512-gCIFrBXmVQLFwvAzuGLCmkUYGVhBb7D1k/IL7pUJUO5xacjLcFUaLnnsoVepBGAiKw34HU1y/YuqvTKim9qAZA== - dependencies: - workbox-core "^5.1.4" - -workbox-range-requests@^5.1.4: - version "5.1.4" - resolved "https://registry.yarnpkg.com/workbox-range-requests/-/workbox-range-requests-5.1.4.tgz#7066a12c121df65bf76fdf2b0868016aa2bab859" - integrity sha512-1HSujLjgTeoxHrMR2muDW2dKdxqCGMc1KbeyGcmjZZAizJTFwu7CWLDmLv6O1ceWYrhfuLFJO+umYMddk2XMhw== - dependencies: - workbox-core "^5.1.4" - -workbox-routing@^5.1.4: - version "5.1.4" - resolved "https://registry.yarnpkg.com/workbox-routing/-/workbox-routing-5.1.4.tgz#3e8cd86bd3b6573488d1a2ce7385e547b547e970" - integrity sha512-8ljknRfqE1vEQtnMtzfksL+UXO822jJlHTIR7+BtJuxQ17+WPZfsHqvk1ynR/v0EHik4x2+826Hkwpgh4GKDCw== - dependencies: - workbox-core "^5.1.4" - -workbox-strategies@^5.1.4: - version "5.1.4" - resolved "https://registry.yarnpkg.com/workbox-strategies/-/workbox-strategies-5.1.4.tgz#96b1418ccdfde5354612914964074d466c52d08c" - integrity sha512-VVS57LpaJTdjW3RgZvPwX0NlhNmscR7OQ9bP+N/34cYMDzXLyA6kqWffP6QKXSkca1OFo/v6v7hW7zrrguo6EA== - dependencies: - workbox-core "^5.1.4" - workbox-routing "^5.1.4" - -workbox-streams@^5.1.4: - version "5.1.4" - resolved "https://registry.yarnpkg.com/workbox-streams/-/workbox-streams-5.1.4.tgz#05754e5e3667bdc078df2c9315b3f41210d8cac0" - integrity sha512-xU8yuF1hI/XcVhJUAfbQLa1guQUhdLMPQJkdT0kn6HP5CwiPOGiXnSFq80rAG4b1kJUChQQIGPrq439FQUNVrw== - dependencies: - workbox-core "^5.1.4" - workbox-routing "^5.1.4" - -workbox-sw@^5.1.4: - version "5.1.4" - resolved "https://registry.yarnpkg.com/workbox-sw/-/workbox-sw-5.1.4.tgz#2bb34c9f7381f90d84cef644816d45150011d3db" - integrity sha512-9xKnKw95aXwSNc8kk8gki4HU0g0W6KXu+xks7wFuC7h0sembFnTrKtckqZxbSod41TDaGh+gWUA5IRXrL0ECRA== - -workbox-webpack-plugin@5.1.4: - version "5.1.4" - resolved "https://registry.yarnpkg.com/workbox-webpack-plugin/-/workbox-webpack-plugin-5.1.4.tgz#7bfe8c16e40fe9ed8937080ac7ae9c8bde01e79c" - integrity sha512-PZafF4HpugZndqISi3rZ4ZK4A4DxO8rAqt2FwRptgsDx7NF8TVKP86/huHquUsRjMGQllsNdn4FNl8CD/UvKmQ== - dependencies: - "@babel/runtime" "^7.5.5" - fast-json-stable-stringify "^2.0.0" - source-map-url "^0.4.0" - upath "^1.1.2" - webpack-sources "^1.3.0" - workbox-build "^5.1.4" - -workbox-window@^5.1.4: - version "5.1.4" - resolved "https://registry.yarnpkg.com/workbox-window/-/workbox-window-5.1.4.tgz#2740f7dea7f93b99326179a62f1cc0ca2c93c863" - integrity sha512-vXQtgTeMCUq/4pBWMfQX8Ee7N2wVC4Q7XYFqLnfbXJ2hqew/cU1uMTD2KqGEgEpE4/30luxIxgE+LkIa8glBYw== - dependencies: - workbox-core "^5.1.4" - -worker-farm@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" - integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== + workbox-background-sync "6.6.1" + workbox-broadcast-update "6.6.1" + workbox-cacheable-response "6.6.1" + workbox-core "6.6.1" + workbox-expiration "6.6.1" + workbox-google-analytics "6.6.1" + workbox-navigation-preload "6.6.1" + workbox-precaching "6.6.1" + workbox-range-requests "6.6.1" + workbox-recipes "6.6.1" + workbox-routing "6.6.1" + workbox-strategies "6.6.1" + workbox-streams "6.6.1" + workbox-sw "6.6.1" + workbox-window "6.6.1" + +workbox-cacheable-response@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-cacheable-response/-/workbox-cacheable-response-6.6.1.tgz#284c2b86be3f4fd191970ace8c8e99797bcf58e9" + integrity sha512-85LY4veT2CnTCDxaVG7ft3NKaFbH6i4urZXgLiU4AiwvKqS2ChL6/eILiGRYXfZ6gAwDnh5RkuDbr/GMS4KSag== + dependencies: + workbox-core "6.6.1" + +workbox-core@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-core/-/workbox-core-6.6.1.tgz#7184776d4134c5ed2f086878c882728fc9084265" + integrity sha512-ZrGBXjjaJLqzVothoE12qTbVnOAjFrHDXpZe7coCb6q65qI/59rDLwuFMO4PcZ7jcbxY+0+NhUVztzR/CbjEFw== + +workbox-expiration@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-expiration/-/workbox-expiration-6.6.1.tgz#a841fa36676104426dbfb9da1ef6a630b4f93739" + integrity sha512-qFiNeeINndiOxaCrd2DeL1Xh1RFug3JonzjxUHc5WkvkD2u5abY3gZL1xSUNt3vZKsFFGGORItSjVTVnWAZO4A== + dependencies: + idb "^7.0.1" + workbox-core "6.6.1" + +workbox-google-analytics@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-google-analytics/-/workbox-google-analytics-6.6.1.tgz#a07a6655ab33d89d1b0b0a935ffa5dea88618c5d" + integrity sha512-1TjSvbFSLmkpqLcBsF7FuGqqeDsf+uAXO/pjiINQKg3b1GN0nBngnxLcXDYo1n/XxK4N7RaRrpRlkwjY/3ocuA== + dependencies: + workbox-background-sync "6.6.1" + workbox-core "6.6.1" + workbox-routing "6.6.1" + workbox-strategies "6.6.1" + +workbox-navigation-preload@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-navigation-preload/-/workbox-navigation-preload-6.6.1.tgz#61a34fe125558dd88cf09237f11bd966504ea059" + integrity sha512-DQCZowCecO+wRoIxJI2V6bXWK6/53ff+hEXLGlQL4Rp9ZaPDLrgV/32nxwWIP7QpWDkVEtllTAK5h6cnhxNxDA== + dependencies: + workbox-core "6.6.1" + +workbox-precaching@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-precaching/-/workbox-precaching-6.6.1.tgz#dedeeba10a2d163d990bf99f1c2066ac0d1a19e2" + integrity sha512-K4znSJ7IKxCnCYEdhNkMr7X1kNh8cz+mFgx9v5jFdz1MfI84pq8C2zG+oAoeE5kFrUf7YkT5x4uLWBNg0DVZ5A== + dependencies: + workbox-core "6.6.1" + workbox-routing "6.6.1" + workbox-strategies "6.6.1" + +workbox-range-requests@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-range-requests/-/workbox-range-requests-6.6.1.tgz#ddaf7e73af11d362fbb2f136a9063a4c7f507a39" + integrity sha512-4BDzk28govqzg2ZpX0IFkthdRmCKgAKreontYRC5YsAPB2jDtPNxqx3WtTXgHw1NZalXpcH/E4LqUa9+2xbv1g== + dependencies: + workbox-core "6.6.1" + +workbox-recipes@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-recipes/-/workbox-recipes-6.6.1.tgz#ea70d2b2b0b0bce8de0a9d94f274d4a688e69fae" + integrity sha512-/oy8vCSzromXokDA+X+VgpeZJvtuf8SkQ8KL0xmRivMgJZrjwM3c2tpKTJn6PZA6TsbxGs3Sc7KwMoZVamcV2g== + dependencies: + workbox-cacheable-response "6.6.1" + workbox-core "6.6.1" + workbox-expiration "6.6.1" + workbox-precaching "6.6.1" + workbox-routing "6.6.1" + workbox-strategies "6.6.1" + +workbox-routing@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-routing/-/workbox-routing-6.6.1.tgz#cba9a1c7e0d1ea11e24b6f8c518840efdc94f581" + integrity sha512-j4ohlQvfpVdoR8vDYxTY9rA9VvxTHogkIDwGdJ+rb2VRZQ5vt1CWwUUZBeD/WGFAni12jD1HlMXvJ8JS7aBWTg== + dependencies: + workbox-core "6.6.1" + +workbox-strategies@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-strategies/-/workbox-strategies-6.6.1.tgz#38d0f0fbdddba97bd92e0c6418d0b1a2ccd5b8bf" + integrity sha512-WQLXkRnsk4L81fVPkkgon1rZNxnpdO5LsO+ws7tYBC6QQQFJVI6v98klrJEjFtZwzw/mB/HT5yVp7CcX0O+mrw== + dependencies: + workbox-core "6.6.1" + +workbox-streams@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-streams/-/workbox-streams-6.6.1.tgz#b2f7ba7b315c27a6e3a96a476593f99c5d227d26" + integrity sha512-maKG65FUq9e4BLotSKWSTzeF0sgctQdYyTMq529piEN24Dlu9b6WhrAfRpHdCncRS89Zi2QVpW5V33NX8PgH3Q== + dependencies: + workbox-core "6.6.1" + workbox-routing "6.6.1" + +workbox-sw@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-sw/-/workbox-sw-6.6.1.tgz#d4c4ca3125088e8b9fd7a748ed537fa0247bd72c" + integrity sha512-R7whwjvU2abHH/lR6kQTTXLHDFU2izht9kJOvBRYK65FbwutT4VvnUAJIgHvfWZ/fokrOPhfoWYoPCMpSgUKHQ== + +workbox-webpack-plugin@^6.4.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-webpack-plugin/-/workbox-webpack-plugin-6.6.1.tgz#4f81cc1ad4e5d2cd7477a86ba83c84ee2d187531" + integrity sha512-zpZ+ExFj9NmiI66cFEApyjk7hGsfJ1YMOaLXGXBoZf0v7Iu6hL0ZBe+83mnDq3YYWAfA3fnyFejritjOHkFcrA== dependencies: - errno "~0.1.7" + fast-json-stable-stringify "^2.1.0" + pretty-bytes "^5.4.1" + upath "^1.2.0" + webpack-sources "^1.4.3" + workbox-build "6.6.1" -worker-rpc@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/worker-rpc/-/worker-rpc-0.1.1.tgz#cb565bd6d7071a8f16660686051e969ad32f54d5" - integrity sha512-P1WjMrUB3qgJNI9jfmpZ/htmBEjFh//6l/5y8SD9hg1Ef5zTTVVoRjTrTEzPrNBQvmhMxkoTsjOXN10GWU7aCg== +workbox-window@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-window/-/workbox-window-6.6.1.tgz#f22a394cbac36240d0dadcbdebc35f711bb7b89e" + integrity sha512-wil4nwOY58nTdCvif/KEZjQ2NP8uk3gGeRNy2jPBbzypU4BT4D9L8xiwbmDBpZlSgJd2xsT9FvSNU0gsxV51JQ== dependencies: - microevent.ts "~0.1.1" + "@types/trusted-types" "^2.0.2" + workbox-core "6.6.1" -wrap-ansi@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" - integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== dependencies: - ansi-styles "^3.2.0" - string-width "^3.0.0" - strip-ansi "^5.0.0" + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" wrap-ansi@^6.2.0: version "6.2.0" @@ -15806,10 +13613,19 @@ wrap-ansi@^6.2.0: string-width "^4.1.0" strip-ansi "^6.0.0" +wrap-ansi@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" + integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== + dependencies: + ansi-styles "^6.1.0" + string-width "^5.0.1" + strip-ansi "^7.0.1" + wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== write-file-atomic@^3.0.0: version "3.0.3" @@ -15821,78 +13637,20 @@ write-file-atomic@^3.0.0: signal-exit "^3.0.2" typedarray-to-buffer "^3.1.5" -write@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" - integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== - dependencies: - mkdirp "^0.5.1" - ws@7.4.6: version "7.4.6" resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== -ws@7.5.3: - version "7.5.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.3.tgz#160835b63c7d97bfab418fc1b8a9fced2ac01a74" - integrity sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg== - -ws@^5.1.1: - version "5.2.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.3.tgz#05541053414921bc29c63bee14b8b0dd50b07b3d" - integrity sha512-jZArVERrMsKUatIdnLzqvcfydI85dvd/Fp1u/VOpfdDWQ4c9qWXe+VIeAbQ5FrDwciAkr+lzofXLz3Kuf26AOA== - dependencies: - async-limiter "~1.0.0" - -ws@^6.2.1: - version "6.2.2" - resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.2.tgz#dd5cdbd57a9979916097652d78f1cc5faea0c32e" - integrity sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw== - dependencies: - async-limiter "~1.0.0" - -ws@^7.4.6: - version "7.5.6" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.6.tgz#e59fc509fb15ddfb65487ee9765c5a51dec5fe7b" - integrity sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA== - -xhr-request-promise@^0.1.2: - version "0.1.3" - resolved "https://registry.yarnpkg.com/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz#2d5f4b16d8c6c893be97f1a62b0ed4cf3ca5f96c" - integrity sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg== - dependencies: - xhr-request "^1.1.0" - -xhr-request@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/xhr-request/-/xhr-request-1.1.0.tgz#f4a7c1868b9f198723444d82dcae317643f2e2ed" - integrity sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA== - dependencies: - buffer-to-arraybuffer "^0.0.5" - object-assign "^4.1.1" - query-string "^5.0.1" - simple-get "^2.7.0" - timed-out "^4.0.1" - url-set-query "^1.0.0" - xhr "^2.0.4" - -xhr2-cookies@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/xhr2-cookies/-/xhr2-cookies-1.1.0.tgz#7d77449d0999197f155cb73b23df72505ed89d48" - integrity sha1-fXdEnQmZGX8VXLc7I99yUF7YnUg= - dependencies: - cookiejar "^2.1.1" +ws@^7.4.6, ws@^7.5.1: + version "7.5.9" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" + integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== -xhr@^2.0.4, xhr@^2.2.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/xhr/-/xhr-2.6.0.tgz#b69d4395e792b4173d6b7df077f0fc5e4e2b249d" - integrity sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA== - dependencies: - global "~4.4.0" - is-function "^1.0.1" - parse-headers "^2.0.0" - xtend "^4.0.0" +ws@^8.13.0: + version "8.17.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.17.0.tgz#d145d18eca2ed25aaf791a183903f7be5e295fea" + integrity sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow== xml-name-validator@^3.0.0: version "3.0.0" @@ -15904,62 +13662,35 @@ xmlchars@^2.2.0: resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== -xmlhttprequest@1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc" - integrity sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw= - -xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.0, xtend@~4.0.1: +xtend@^4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== -xtend@~2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-2.1.2.tgz#6efecc2a4dad8e6962c4901b337ce7ba87b5d28b" - integrity sha1-bv7MKk2tjmlixJAbM3znuoe10os= - dependencies: - object-keys "~0.4.0" - y18n@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== -yallist@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" - integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== yallist@^3.0.2: version "3.1.1" resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - -yaml@^1.10.0: +yaml@^1.10.0, yaml@^1.10.2, yaml@^1.7.2: version "1.10.2" resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== -yargs-parser@^10.0.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-10.1.0.tgz#7202265b89f7e9e9f2e5765e0fe735a905edbaa8" - integrity sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ== - dependencies: - camelcase "^4.1.0" - -yargs-parser@^13.1.2: - version "13.1.2" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" - integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" +yaml@^2.3.4: + version "2.4.2" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.4.2.tgz#7a2b30f2243a5fc299e1f14ca58d475ed4bc5362" + integrity sha512-B3VqDZ+JAg1nZpaEmWtTXUlBneoGx6CPM9b0TENK6aoSu5t73dItudwdgmi6tHlIZZId4dZ9skcAQ2UbcyAeVA== yargs-parser@^18.1.2: version "18.1.3" @@ -15969,23 +13700,12 @@ yargs-parser@^18.1.2: camelcase "^5.0.0" decamelize "^1.2.0" -yargs@^13.2.4, yargs@^13.3.2: - version "13.3.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" - integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== - dependencies: - cliui "^5.0.0" - find-up "^3.0.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^3.0.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^13.1.2" +yargs-parser@^20.2.2: + version "20.2.9" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" + integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== -yargs@^15.4.1: +yargs@^15.3.1: version "15.4.1" resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== @@ -16002,20 +13722,28 @@ yargs@^15.4.1: y18n "^4.0.0" yargs-parser "^18.1.2" -yn@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" - integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== +yargs@^16.2.0: + version "16.2.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== -zen-observable-ts@^1.2.0: - version "1.2.3" - resolved "https://registry.yarnpkg.com/zen-observable-ts/-/zen-observable-ts-1.2.3.tgz#c2f5ccebe812faf0cfcde547e6004f65b1a6d769" - integrity sha512-hc/TGiPkAWpByykMwDcem3SdUgA4We+0Qb36bItSuJC9xD0XVBZoFHYoadAomDSNf64CG8Ydj0Qb8Od8BUWz5g== +zen-observable-ts@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/zen-observable-ts/-/zen-observable-ts-1.2.5.tgz#6c6d9ea3d3a842812c6e9519209365a122ba8b58" + integrity sha512-QZWQekv6iB72Naeake9hS1KxHlotfRpe+WGNbNx5/ta+R3DNjVO2bswf63gXlWDcs+EMd7XY8HfVQyP1X6T4Zg== dependencies: zen-observable "0.8.15" @@ -16023,3 +13751,8 @@ zen-observable@0.8.15: version "0.8.15" resolved "https://registry.yarnpkg.com/zen-observable/-/zen-observable-0.8.15.tgz#96415c512d8e3ffd920afd3889604e30b9eaac15" integrity sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ== + +zod@3.22.4: + version "3.22.4" + resolved "https://registry.yarnpkg.com/zod/-/zod-3.22.4.tgz#f31c3a9386f61b1f228af56faa9255e845cf3fff" + integrity sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==