From 824d8b454dd9e0e35a09018179b315a13cdeea56 Mon Sep 17 00:00:00 2001 From: jaebok Date: Mon, 19 Jul 2021 19:39:24 +0900 Subject: [PATCH 01/10] add task: mainnet connector --- tasks/README.md | 22 +++++++- tasks/local/moneyPool.ts | 2 +- tasks/mainnet/connector.ts | 92 ++++++++++++++++++++++++++++++++ tasks/testnet/underlyingAsset.ts | 1 - utils/getDeployedContracts.ts | 45 ---------------- utils/getWallets.ts | 20 +++++++ 6 files changed, 134 insertions(+), 48 deletions(-) create mode 100644 tasks/mainnet/connector.ts create mode 100644 utils/getWallets.ts diff --git a/tasks/README.md b/tasks/README.md index ae68951..39bc97c 100644 --- a/tasks/README.md +++ b/tasks/README.md @@ -3,7 +3,27 @@ **All tasks requires network name** ``` -yarn task network:action --networkname --args +yarn task network:action --networkname network --argsname args +``` + +## Mainnet + +#### Connector + +``` +mainnet:addCSP +# required +--address +(The address to add a role) + +``` + +``` +mainnet:addCouncil +# required +--address +(The address to add a role) + ``` ## Testnet diff --git a/tasks/local/moneyPool.ts b/tasks/local/moneyPool.ts index 38f8e05..4c09757 100644 --- a/tasks/local/moneyPool.ts +++ b/tasks/local/moneyPool.ts @@ -4,7 +4,7 @@ import { testAssetBond } from '../../test/utils/testData'; import { HardhatRuntimeEnvironment } from 'hardhat/types'; import assetBondIdData from '../../misc/assetBond/assetBondIdDataExample.json'; import { tokenIdGenerator } from '../../misc/assetBond/generator'; -import { getDai, getElyfi, getElysia } from '../../utils/getDependencies'; +import { getDai } from '../../utils/getDependencies'; import { Connector, ERC20Test, LToken, MoneyPool, Tokenizer } from '../../typechain'; interface Args { diff --git a/tasks/mainnet/connector.ts b/tasks/mainnet/connector.ts new file mode 100644 index 0000000..18ccebb --- /dev/null +++ b/tasks/mainnet/connector.ts @@ -0,0 +1,92 @@ +import { task } from 'hardhat/config'; +import { getConnector, getMoneyPool, getTokenizer } from '../../utils/getDeployedContracts'; +import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers'; +import { HardhatRuntimeEnvironment } from 'hardhat/types'; +import AssetBondSettleData from '../../test/types/AssetBondSettleData'; +import { Connector, MoneyPool, Tokenizer } from '../../typechain'; +import { getNamedAccounts } from 'hardhat'; +import { getPoolAdmin } from '../../utils/getWallets'; + +interface Args { + asset: string; + bond: string; + nonce: string; + data: string; + amount: string; + txSender: string; + loanStart: string; + address: string; +} + +const checkCollateralServiceProvider = async ({ + connector, + txSender, + deployer, +}: { + connector: Connector; + txSender: SignerWithAddress; + deployer: SignerWithAddress; +}) => { + const isCollateralServiceProvider = await connector.isCollateralServiceProvider(txSender.address); + if (!isCollateralServiceProvider) { + const addCollateralServiceProviderTx = await connector + .connect(deployer) + .addCollateralServiceProvider(txSender.address); + await addCollateralServiceProviderTx.wait(); + console.log( + `Deployer add a collateral service provider role to ${txSender.address.substr(0, 10)}` + ); + } +}; + +const checkCouncil = async ({ + connector, + txSender, + deployer, +}: { + connector: Connector; + txSender: SignerWithAddress; + deployer: SignerWithAddress; +}) => { + const isCouncil = await connector.isCouncil(txSender.address); + if (!isCouncil) { + const addCouncilTx = await connector.connect(deployer).addCouncil(txSender.address); + await addCouncilTx.wait(); + console.log(`Deployer add a council role to ${txSender.address.substr(0, 10)}`); + } +}; + +task('mainnet:addCSP', 'Add collateral service provider') + .addParam('address', 'The address for the role') + .setAction(async (args: Args, hre: HardhatRuntimeEnvironment) => { + const connector = (await getConnector(hre)) as Connector; + + const poolAdmin = getPoolAdmin(); + + const isCollateralServiceProvider = await connector.isCollateralServiceProvider(args.address); + if (!isCollateralServiceProvider) { + const addCollateralServiceProviderTx = await connector + .connect(poolAdmin) + .addCollateralServiceProvider(args.address); + await addCollateralServiceProviderTx.wait(); + console.log(`Deployer add a collateral service provider role to ${args.address}`); + return; + } + console.log(`${args.address} has already collateral service provider role`); + }); + +task('mainnet:addCouncil', 'Add Council') + .addParam('address', 'The address for the role') + .setAction(async (args: Args, hre: HardhatRuntimeEnvironment) => { + const connector = (await getConnector(hre)) as Connector; + + const poolAdmin = getPoolAdmin(); + + const isCouncil = await connector.isCouncil(args.address); + if (!isCouncil) { + const addCouncilTx = await connector.connect(poolAdmin).addCouncil(args.address); + await addCouncilTx.wait(); + console.log(`Deployer add a council role to ${args.address}`); + } + console.log(`${args.address} has already council role`); + }); diff --git a/tasks/testnet/underlyingAsset.ts b/tasks/testnet/underlyingAsset.ts index 83860a6..6d1b9ed 100644 --- a/tasks/testnet/underlyingAsset.ts +++ b/tasks/testnet/underlyingAsset.ts @@ -15,7 +15,6 @@ task('testnet:approve', 'Approve to moneyPool, default: 100') .addOptionalParam('amount', 'The approve amount') .setAction(async (args: Args, hre: HardhatRuntimeEnvironment) => { let amount: string; - const [deployer] = await hre.ethers.getSigners(); const underlyingAsset = (await getDai(hre)) as ERC20Test; diff --git a/utils/getDeployedContracts.ts b/utils/getDeployedContracts.ts index fdc50be..b7e1c83 100644 --- a/utils/getDeployedContracts.ts +++ b/utils/getDeployedContracts.ts @@ -1,21 +1,7 @@ import '@nomiclabs/hardhat-waffle'; -import { - Tokenizer, - Connector, - DataPipeline, - DToken, - InterestRateModel, - LToken, - MoneyPoolTest, - ERC20Test, - IncentivePool, -} from '../typechain'; import { HardhatRuntimeEnvironment } from 'hardhat/types'; -import ElyfiContracts from '../test/types/ElyfiContracts'; -import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers'; import path from 'path'; import { Contract } from 'ethers'; -import { getDai, getElyfi } from './getDependencies'; type DeployedContract = { address: string; @@ -77,34 +63,3 @@ export const getIncentivePool = async (hre: HardhatRuntimeEnvironment): Promise< )) as DeployedContract; return await hre.ethers.getContractAt(file.abi, file.address); }; -//need refactor -export const getDeployedContracts = async ( - hre: HardhatRuntimeEnvironment, - deployer: SignerWithAddress -): Promise => { - let underlyingAsset = (await getDai(hre)) as ERC20Test; - let connector = (await getConnector(hre)) as Connector; - let moneyPool = (await getMoneyPool(hre)) as MoneyPoolTest; - let incentiveAsset = (await getElyfi(hre)) as ERC20Test; - let incentivePool!: IncentivePool; - let interestRateModel!: InterestRateModel; - let lToken!: LToken; - let dToken!: DToken; - let tokenizer!: Tokenizer; - let dataPipeline!: DataPipeline; - - const elyfiContracts = { - underlyingAsset, - incentiveAsset, - connector, - moneyPool, - incentivePool, - interestRateModel, - lToken, - dToken, - tokenizer, - dataPipeline, - }; - - return !!elyfiContracts ? elyfiContracts : null; -}; diff --git a/utils/getWallets.ts b/utils/getWallets.ts new file mode 100644 index 0000000..a4807e7 --- /dev/null +++ b/utils/getWallets.ts @@ -0,0 +1,20 @@ +import { Wallet } from 'ethers'; +import { ethers } from 'hardhat'; + +export const getPoolAdmin = (): Wallet => { + const privateKey = process.env.ADMIN; + const poolAdmin = new Wallet(privateKey); + return poolAdmin; +}; + +export const getCSP = (): Wallet => { + const privateKey = process.env.CSP; + const poolAdmin = new Wallet(privateKey); + return poolAdmin; +}; + +export const getCouncil = (): Wallet => { + const privateKey = process.env.COUNCIL; + const poolAdmin = new ethers.Wallet(privateKey); + return poolAdmin; +}; From 2826fb921d9e1126a4fd4a9d0fdac17a8d899ae1 Mon Sep 17 00:00:00 2001 From: jaebok Date: Mon, 19 Jul 2021 20:13:28 +0900 Subject: [PATCH 02/10] add getwallet provider --- hardhat.config.tasks.ts | 1 + tasks/mainnet/connector.ts | 70 +++++++++----------------------------- utils/getWallets.ts | 26 ++++++++------ 3 files changed, 32 insertions(+), 65 deletions(-) diff --git a/hardhat.config.tasks.ts b/hardhat.config.tasks.ts index 364abaf..0790ae4 100644 --- a/hardhat.config.tasks.ts +++ b/hardhat.config.tasks.ts @@ -9,6 +9,7 @@ import './tasks/local/underlyingAsset'; import './tasks/testnet/moneyPool'; import './tasks/testnet/underlyingAsset'; import './tasks/testnet/tokenizer'; +import './tasks/mainnet/connector'; const testMnemonic = 'suggest mirror pulp horn goat wagon body long fortune dirt glass awesome'; diff --git a/tasks/mainnet/connector.ts b/tasks/mainnet/connector.ts index 18ccebb..4af4b9a 100644 --- a/tasks/mainnet/connector.ts +++ b/tasks/mainnet/connector.ts @@ -1,67 +1,24 @@ import { task } from 'hardhat/config'; -import { getConnector, getMoneyPool, getTokenizer } from '../../utils/getDeployedContracts'; -import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers'; +import { getConnector } from '../../utils/getDeployedContracts'; import { HardhatRuntimeEnvironment } from 'hardhat/types'; -import AssetBondSettleData from '../../test/types/AssetBondSettleData'; -import { Connector, MoneyPool, Tokenizer } from '../../typechain'; -import { getNamedAccounts } from 'hardhat'; +import { Connector } from '../../typechain'; import { getPoolAdmin } from '../../utils/getWallets'; interface Args { - asset: string; - bond: string; - nonce: string; - data: string; - amount: string; - txSender: string; - loanStart: string; address: string; } -const checkCollateralServiceProvider = async ({ - connector, - txSender, - deployer, -}: { - connector: Connector; - txSender: SignerWithAddress; - deployer: SignerWithAddress; -}) => { - const isCollateralServiceProvider = await connector.isCollateralServiceProvider(txSender.address); - if (!isCollateralServiceProvider) { - const addCollateralServiceProviderTx = await connector - .connect(deployer) - .addCollateralServiceProvider(txSender.address); - await addCollateralServiceProviderTx.wait(); - console.log( - `Deployer add a collateral service provider role to ${txSender.address.substr(0, 10)}` - ); - } -}; - -const checkCouncil = async ({ - connector, - txSender, - deployer, -}: { - connector: Connector; - txSender: SignerWithAddress; - deployer: SignerWithAddress; -}) => { - const isCouncil = await connector.isCouncil(txSender.address); - if (!isCouncil) { - const addCouncilTx = await connector.connect(deployer).addCouncil(txSender.address); - await addCouncilTx.wait(); - console.log(`Deployer add a council role to ${txSender.address.substr(0, 10)}`); - } -}; - task('mainnet:addCSP', 'Add collateral service provider') .addParam('address', 'The address for the role') .setAction(async (args: Args, hre: HardhatRuntimeEnvironment) => { const connector = (await getConnector(hre)) as Connector; + const poolAdmin = await getPoolAdmin(hre); - const poolAdmin = getPoolAdmin(); + const isMoneyPoolAdmin = await connector.isMoneyPoolAdmin(poolAdmin.address); + if (!isMoneyPoolAdmin) { + console.log(`The caller is not the poolAdmin`); + return; + } const isCollateralServiceProvider = await connector.isCollateralServiceProvider(args.address); if (!isCollateralServiceProvider) { @@ -69,7 +26,7 @@ task('mainnet:addCSP', 'Add collateral service provider') .connect(poolAdmin) .addCollateralServiceProvider(args.address); await addCollateralServiceProviderTx.wait(); - console.log(`Deployer add a collateral service provider role to ${args.address}`); + console.log(`The pool admin add a collateral service provider role to ${args.address}`); return; } console.log(`${args.address} has already collateral service provider role`); @@ -79,14 +36,19 @@ task('mainnet:addCouncil', 'Add Council') .addParam('address', 'The address for the role') .setAction(async (args: Args, hre: HardhatRuntimeEnvironment) => { const connector = (await getConnector(hre)) as Connector; + const poolAdmin = await getPoolAdmin(hre); - const poolAdmin = getPoolAdmin(); + const isMoneyPoolAdmin = await connector.isMoneyPoolAdmin(poolAdmin.address); + if (!isMoneyPoolAdmin) { + console.log(`The caller is not the poolAdmin`); + return; + } const isCouncil = await connector.isCouncil(args.address); if (!isCouncil) { const addCouncilTx = await connector.connect(poolAdmin).addCouncil(args.address); await addCouncilTx.wait(); - console.log(`Deployer add a council role to ${args.address}`); + console.log(`The pool admin add a council role to ${args.address}`); } console.log(`${args.address} has already council role`); }); diff --git a/utils/getWallets.ts b/utils/getWallets.ts index a4807e7..81461c6 100644 --- a/utils/getWallets.ts +++ b/utils/getWallets.ts @@ -1,20 +1,24 @@ -import { Wallet } from 'ethers'; -import { ethers } from 'hardhat'; +import { ethers, Wallet } from 'ethers'; +import { HardhatRuntimeEnvironment } from 'hardhat/types'; -export const getPoolAdmin = (): Wallet => { - const privateKey = process.env.ADMIN; - const poolAdmin = new Wallet(privateKey); +const provider = async (network: string) => { + return new ethers.providers.InfuraProvider(network, process.env.INFURA_API_KEY); +}; + +export const getPoolAdmin = async (hre: HardhatRuntimeEnvironment): Promise => { + const privateKey = process.env.ADMIN as string; + const poolAdmin = new Wallet(privateKey, await provider(hre.network.name)); return poolAdmin; }; -export const getCSP = (): Wallet => { - const privateKey = process.env.CSP; - const poolAdmin = new Wallet(privateKey); +export const getCSP = async (hre: HardhatRuntimeEnvironment): Promise => { + const privateKey = process.env.CSP as string; + const poolAdmin = new Wallet(privateKey, await provider(hre.network.name)); return poolAdmin; }; -export const getCouncil = (): Wallet => { - const privateKey = process.env.COUNCIL; - const poolAdmin = new ethers.Wallet(privateKey); +export const getCouncil = async (hre: HardhatRuntimeEnvironment): Promise => { + const privateKey = process.env.COUNCIL as string; + const poolAdmin = new Wallet(privateKey, await provider(hre.network.name)); return poolAdmin; }; From edad3fda84591b45a852a7f19f98d20a7310bc4d Mon Sep 17 00:00:00 2001 From: jaebok Date: Mon, 19 Jul 2021 21:28:28 +0900 Subject: [PATCH 03/10] add task:tokenizer --- data/assetBond/mainnet/prugio.ts | 35 ++++++++ hardhat.config.tasks.ts | 1 + tasks/mainnet/tokenizer.ts | 143 +++++++++++++++++++++++++++++++ utils/getWallets.ts | 14 ++- 4 files changed, 189 insertions(+), 4 deletions(-) create mode 100644 data/assetBond/mainnet/prugio.ts create mode 100644 tasks/mainnet/tokenizer.ts diff --git a/data/assetBond/mainnet/prugio.ts b/data/assetBond/mainnet/prugio.ts new file mode 100644 index 0000000..b2a760a --- /dev/null +++ b/data/assetBond/mainnet/prugio.ts @@ -0,0 +1,35 @@ +import { BigNumber, ethers } from 'ethers'; +import { tokenIdGenerator } from '../../../misc/assetBond/generator'; +import AssetBondSettleData from '../../../test/types/AssetBondSettleData'; +import { toRate } from '../../../test/utils/wadRayMath'; +import { AssetBondIdData } from '../../../misc/assetBond/types'; + +// prugio +const id: AssetBondIdData = { + nonce: 1, + countryCode: 82, + collateralServiceProviderIdentificationNumber: 2201110189192, + collateralLatitude: 3750088, + collateralLatitudeSign: 1, + collateralLongitude: 12704064, + collateralLongitudeSign: 1, + collateralDetail: 2210, + collateralCategory: 2, + productNumber: 4, +}; + +export const data: AssetBondSettleData = { + ...({}), + borrower: '', + signer: '', + tokenId: BigNumber.from(tokenIdGenerator(id)), + principal: ethers.utils.parseEther('500000'), + debtCeiling: ethers.utils.parseEther('2500000000'), + couponRate: toRate(0.1), + delinquencyRate: toRate(0.03), + loanDuration: BigNumber.from(365), + loanStartTimeYear: BigNumber.from(2021), + loanStartTimeMonth: BigNumber.from(7), + loanStartTimeDay: BigNumber.from(23), + ipfsHash: 'test', +}; diff --git a/hardhat.config.tasks.ts b/hardhat.config.tasks.ts index 0790ae4..9e6a885 100644 --- a/hardhat.config.tasks.ts +++ b/hardhat.config.tasks.ts @@ -10,6 +10,7 @@ import './tasks/testnet/moneyPool'; import './tasks/testnet/underlyingAsset'; import './tasks/testnet/tokenizer'; import './tasks/mainnet/connector'; +import './tasks/mainnet/tokenizer'; const testMnemonic = 'suggest mirror pulp horn goat wagon body long fortune dirt glass awesome'; diff --git a/tasks/mainnet/tokenizer.ts b/tasks/mainnet/tokenizer.ts new file mode 100644 index 0000000..e54244c --- /dev/null +++ b/tasks/mainnet/tokenizer.ts @@ -0,0 +1,143 @@ +import { task } from 'hardhat/config'; +import { getConnector, getTokenizer } from '../../utils/getDeployedContracts'; +import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers'; +import { HardhatRuntimeEnvironment } from 'hardhat/types'; +import { Connector, Tokenizer } from '../../typechain'; +import { getBorrower, getCouncil, getCSP } from '../../utils/getWallets'; +import AssetBondSettleData from '../../test/types/AssetBondSettleData'; +import { ethers, Wallet } from 'ethers'; + +interface Args { + asset: string; + bond: string; + nonce: string; + amount: string; + txSender: string; + loanStart: string; + data: string; +} + +const checkAssetBondFileData = (assetBondData: AssetBondSettleData) => { + if (assetBondData.tokenId.toString().length != ethers.constants.MaxUint256.toString().length) { + throw new Error('Invalid file data'); + } +}; + +const checkCollateralServiceProvider = async ({ + connector, + txSender, +}: { + connector: Connector; + txSender: Wallet; +}) => { + const isCollateralServiceProvider = await connector.isCollateralServiceProvider(txSender.address); + if (!isCollateralServiceProvider) { + throw new Error(`${txSender.address} has not collateral service provider role`); + } +}; + +const checkCouncil = async ({ + connector, + txSender, +}: { + connector: Connector; + txSender: SignerWithAddress; +}) => { + const isCouncil = await connector.isCouncil(txSender.address); + if (!isCouncil) { + throw new Error(`${txSender.address} has not council role`); + } +}; + +task('mainnet:mintAssetBond', 'Mint asset bond token from production data') + .addParam('data', 'The asset bond from saved production data') + .setAction(async (args: Args, hre: HardhatRuntimeEnvironment) => { + const collateralServiceProvider = await getCSP(hre); + + const tokenizer = (await getTokenizer(hre)) as Tokenizer; + const connector = (await getConnector(hre)) as Connector; + + const assetBondData = require(`../../data/assetBond/mainnet/${args.data}`) + .data as AssetBondSettleData; + + checkAssetBondFileData(assetBondData); + + await checkCollateralServiceProvider({ + connector: connector, + txSender: collateralServiceProvider, + }); + + const mintTx = await tokenizer + .connect(collateralServiceProvider) + .mintAssetBond(collateralServiceProvider.address, assetBondData.tokenId); + await mintTx.wait(); + console.log(`The collateral service provider mints asset token which data is "${args.data}"`); + }); + +task('mainnet:settleAssetBond', 'settle empty asset bond') + .addParam('data', 'The asset bond from saved production data') + .setAction(async (args: Args, hre: HardhatRuntimeEnvironment) => { + const collateralServiceProvider = await getCSP(hre); + const borrower = await getBorrower(hre); + const signer = await getCouncil(hre); + + const tokenizer = (await getTokenizer(hre)) as Tokenizer; + const connector = (await getConnector(hre)) as Connector; + + const assetBondData = require(`../../data/assetBond/mainnet/${args.data}`) + .data as AssetBondSettleData; + + checkAssetBondFileData(assetBondData); + + await checkCollateralServiceProvider({ + connector: connector, + txSender: collateralServiceProvider, + }); + + const settleTx = await tokenizer + .connect(collateralServiceProvider) + .settleAssetBond( + borrower.address, + signer.address, + assetBondData.tokenId, + assetBondData.principal, + assetBondData.couponRate, + assetBondData.delinquencyRate, + assetBondData.debtCeiling, + assetBondData.loanDuration, + assetBondData.loanStartTimeYear, + assetBondData.loanStartTimeMonth, + assetBondData.loanStartTimeDay, + assetBondData.ipfsHash + ); + + await settleTx.wait(); + + console.log(`The collateral service provider settles asset token which data is "${args.data}"`); + }); + +task('mainnet:signAssetBond', 'sign settled asset bond') + .addParam('data', 'The asset bond from saved production data') + .setAction(async (args: Args, hre: HardhatRuntimeEnvironment) => { + const collateralServiceProvider = await getCSP(hre); + const signer = await getCouncil(hre); + + const tokenizer = (await getTokenizer(hre)) as Tokenizer; + const connector = (await getConnector(hre)) as Connector; + + const assetBondData = require(`../../data/assetBond/mainnet/${args.data}`) + .data as AssetBondSettleData; + + checkAssetBondFileData(assetBondData); + + await checkCollateralServiceProvider({ + connector: connector, + txSender: collateralServiceProvider, + }); + + await tokenizer + .connect(signer) + .signAssetBond(assetBondData.tokenId, assetBondData.signerOpinionHash); + + console.log(`The signer signs on asset token which id is "${args.data}"`); + }); diff --git a/utils/getWallets.ts b/utils/getWallets.ts index 81461c6..f14abc4 100644 --- a/utils/getWallets.ts +++ b/utils/getWallets.ts @@ -13,12 +13,18 @@ export const getPoolAdmin = async (hre: HardhatRuntimeEnvironment): Promise => { const privateKey = process.env.CSP as string; - const poolAdmin = new Wallet(privateKey, await provider(hre.network.name)); - return poolAdmin; + const csp = new Wallet(privateKey, await provider(hre.network.name)); + return csp; }; export const getCouncil = async (hre: HardhatRuntimeEnvironment): Promise => { const privateKey = process.env.COUNCIL as string; - const poolAdmin = new Wallet(privateKey, await provider(hre.network.name)); - return poolAdmin; + const council = new Wallet(privateKey, await provider(hre.network.name)); + return council; +}; + +export const getBorrower = async (hre: HardhatRuntimeEnvironment): Promise => { + const privateKey = process.env.BORROWER as string; + const borrower = new Wallet(privateKey, await provider(hre.network.name)); + return borrower; }; From 511da922ef4b0b63f08823a2a7417ca3f3518ab8 Mon Sep 17 00:00:00 2001 From: jaebok Date: Mon, 19 Jul 2021 21:54:27 +0900 Subject: [PATCH 04/10] add readme --- tasks/README.md | 26 ++++++++++++++++++++++++++ tasks/mainnet/tokenizer.ts | 2 +- 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/tasks/README.md b/tasks/README.md index 39bc97c..e7d129f 100644 --- a/tasks/README.md +++ b/tasks/README.md @@ -26,6 +26,32 @@ mainnet:addCouncil ``` +#### Tokenizer + +``` +mainnet:mintAssetBond +# required +--data +(AssetBond Data in data) + +``` + +``` +mainnet:settleAssetBond +# required +--data +(AssetBond Data in data) + +``` + +``` +mainnet:signAssetBond +# required +--data +(AssetBond Data in data) + +``` + ## Testnet #### Moneypool diff --git a/tasks/mainnet/tokenizer.ts b/tasks/mainnet/tokenizer.ts index e54244c..88330ec 100644 --- a/tasks/mainnet/tokenizer.ts +++ b/tasks/mainnet/tokenizer.ts @@ -139,5 +139,5 @@ task('mainnet:signAssetBond', 'sign settled asset bond') .connect(signer) .signAssetBond(assetBondData.tokenId, assetBondData.signerOpinionHash); - console.log(`The signer signs on asset token which id is "${args.data}"`); + console.log(`The signer signs on asset token which data is "${args.data}"`); }); From 068aa8bc056a224f621f2f91de0a935521afce8d Mon Sep 17 00:00:00 2001 From: jaebok Date: Mon, 19 Jul 2021 21:58:58 +0900 Subject: [PATCH 05/10] fix task : sign --- tasks/mainnet/tokenizer.ts | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/tasks/mainnet/tokenizer.ts b/tasks/mainnet/tokenizer.ts index 88330ec..fd5015c 100644 --- a/tasks/mainnet/tokenizer.ts +++ b/tasks/mainnet/tokenizer.ts @@ -41,7 +41,7 @@ const checkCouncil = async ({ txSender, }: { connector: Connector; - txSender: SignerWithAddress; + txSender: Wallet; }) => { const isCouncil = await connector.isCouncil(txSender.address); if (!isCouncil) { @@ -119,7 +119,6 @@ task('mainnet:settleAssetBond', 'settle empty asset bond') task('mainnet:signAssetBond', 'sign settled asset bond') .addParam('data', 'The asset bond from saved production data') .setAction(async (args: Args, hre: HardhatRuntimeEnvironment) => { - const collateralServiceProvider = await getCSP(hre); const signer = await getCouncil(hre); const tokenizer = (await getTokenizer(hre)) as Tokenizer; @@ -130,14 +129,14 @@ task('mainnet:signAssetBond', 'sign settled asset bond') checkAssetBondFileData(assetBondData); - await checkCollateralServiceProvider({ + await checkCouncil({ connector: connector, - txSender: collateralServiceProvider, + txSender: signer, }); await tokenizer .connect(signer) .signAssetBond(assetBondData.tokenId, assetBondData.signerOpinionHash); - console.log(`The signer signs on asset token which data is "${args.data}"`); + console.log(`The signer signs on asset token which da is "${args.data}"`); }); From be61bcce2391923e7c3c1b475ad51159865c8fd2 Mon Sep 17 00:00:00 2001 From: jaebok Date: Wed, 21 Jul 2021 23:27:29 +0900 Subject: [PATCH 06/10] settle script --- data/assetBond/mainnet/prugio.ts | 12 +- hardhat.config.tasks.ts | 2 +- hardhat.config.ts | 2 +- package.json | 5 +- tasks/mainnet/tokenizer.ts | 37 +- yarn.lock | 929 +++++++++++-------------------- 6 files changed, 355 insertions(+), 632 deletions(-) diff --git a/data/assetBond/mainnet/prugio.ts b/data/assetBond/mainnet/prugio.ts index b2a760a..b843d9a 100644 --- a/data/assetBond/mainnet/prugio.ts +++ b/data/assetBond/mainnet/prugio.ts @@ -20,16 +20,16 @@ const id: AssetBondIdData = { export const data: AssetBondSettleData = { ...({}), - borrower: '', - signer: '', + borrower: '0x1BcF42B1c9C1B9C1B0f0Aa071C4CF02b7C9b3598', + signer: '0x53c14659BF777b2D7e0A7fBa4d5DfF87D594495c', tokenId: BigNumber.from(tokenIdGenerator(id)), - principal: ethers.utils.parseEther('500000'), - debtCeiling: ethers.utils.parseEther('2500000000'), + principal: ethers.utils.parseEther('262927'), + debtCeiling: ethers.utils.parseEther('338556'), couponRate: toRate(0.1), delinquencyRate: toRate(0.03), - loanDuration: BigNumber.from(365), + loanDuration: BigNumber.from(88), loanStartTimeYear: BigNumber.from(2021), loanStartTimeMonth: BigNumber.from(7), - loanStartTimeDay: BigNumber.from(23), + loanStartTimeDay: BigNumber.from(21), ipfsHash: 'test', }; diff --git a/hardhat.config.tasks.ts b/hardhat.config.tasks.ts index 9e6a885..0154e77 100644 --- a/hardhat.config.tasks.ts +++ b/hardhat.config.tasks.ts @@ -1,5 +1,5 @@ import 'dotenv/config'; -import 'hardhat-typechain'; +import '@typechain/hardhat'; import 'hardhat-deploy-ethers'; import 'hardhat-deploy'; diff --git a/hardhat.config.ts b/hardhat.config.ts index 12f3d3b..14b0e4a 100644 --- a/hardhat.config.ts +++ b/hardhat.config.ts @@ -3,7 +3,7 @@ import '@nomiclabs/hardhat-waffle'; import '@nomiclabs/hardhat-solhint'; import '@nomiclabs/hardhat-etherscan'; import '@openzeppelin/hardhat-upgrades'; -import 'hardhat-typechain'; +import '@typechain/hardhat'; import 'hardhat-deploy-ethers'; import 'hardhat-deploy'; import 'hardhat-abi-exporter'; diff --git a/package.json b/package.json index bcc75c5..f020a4a 100644 --- a/package.json +++ b/package.json @@ -10,21 +10,18 @@ }, "dependencies": { "@typechain/ethers-v5": "^6.0.5", - "hardhat-typechain": "^0.3.5", "ts-generator": "^0.1.1", "typechain": "^4.0.3" }, "devDependencies": { "@cucumber/cucumber": "^7.1.0", - "@eth-optimism/smock": "^1.1.0", + "@eth-optimism/smock": "^1.1.9", "@nomiclabs/ethereumjs-vm": "^4.2.2", "@nomiclabs/hardhat-ethers": "^2.0.2", "@nomiclabs/hardhat-etherscan": "^2.1.1", "@nomiclabs/hardhat-solhint": "^2.0.0", "@nomiclabs/hardhat-waffle": "^2.0.1", "@openzeppelin/contracts": "^4.0.0", - "@openzeppelin/contracts-upgradeable": "^4.0.0", - "@openzeppelin/hardhat-upgrades": "^1.6.0", "@types/chai": "^4.2.17", "@types/mocha": "^8.2.2", "@types/node": "^15.0.1", diff --git a/tasks/mainnet/tokenizer.ts b/tasks/mainnet/tokenizer.ts index fd5015c..b63600c 100644 --- a/tasks/mainnet/tokenizer.ts +++ b/tasks/mainnet/tokenizer.ts @@ -1,8 +1,8 @@ import { task } from 'hardhat/config'; -import { getConnector, getTokenizer } from '../../utils/getDeployedContracts'; +import { getConnector, getMoneyPool, getTokenizer } from '../../utils/getDeployedContracts'; import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers'; import { HardhatRuntimeEnvironment } from 'hardhat/types'; -import { Connector, Tokenizer } from '../../typechain'; +import { Connector, MoneyPool, Tokenizer } from '../../typechain'; import { getBorrower, getCouncil, getCSP } from '../../utils/getWallets'; import AssetBondSettleData from '../../test/types/AssetBondSettleData'; import { ethers, Wallet } from 'ethers'; @@ -97,8 +97,8 @@ task('mainnet:settleAssetBond', 'settle empty asset bond') const settleTx = await tokenizer .connect(collateralServiceProvider) .settleAssetBond( - borrower.address, - signer.address, + assetBondData.borrower, + assetBondData.signer, assetBondData.tokenId, assetBondData.principal, assetBondData.couponRate, @@ -140,3 +140,32 @@ task('mainnet:signAssetBond', 'sign settled asset bond') console.log(`The signer signs on asset token which da is "${args.data}"`); }); + +task('mainnet:approveAssetBond', 'approve asset bond to the tokenizer') + .addParam('data', 'The asset bond from saved production data') + .setAction(async (args: Args, hre: HardhatRuntimeEnvironment) => { + const collateralServiceProvider = await getCSP(hre); + + const tokenizer = (await getTokenizer(hre)) as Tokenizer; + const moneyPool = (await getMoneyPool(hre)) as MoneyPool; + + const assetBondData = require(`../../data/assetBond/mainnet/${args.data}`) + .data as AssetBondSettleData; + + checkAssetBondFileData(assetBondData); + + const isApproved = (await tokenizer.getApproved(assetBondData.tokenId)) == moneyPool.address; + + if (!isApproved) { + if ((await tokenizer.ownerOf(assetBondData.tokenId)) != collateralServiceProvider.address) { + throw new Error(`${collateralServiceProvider.address} is not the token owner`); + } + const approveTx = await tokenizer + .connect(collateralServiceProvider) + .approve(moneyPool.address, assetBondData.tokenId); + await approveTx.wait(); + console.log('Token approve success'); + return; + } + console.log('Token already approved to the moneyPool'); + }); diff --git a/yarn.lock b/yarn.lock index d229083..a3e5491 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10,9 +10,9 @@ "@babel/highlight" "^7.14.5" "@babel/helper-validator-identifier@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz#d0f0e277c512e0c938277faa85a3968c9a44c0e8" - integrity sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg== + version "7.14.8" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.8.tgz#32be33a756f29e278a0d644fa08a2c9e0f88a34c" + integrity sha512-ZGy6/XQjllhYQrNw/3zfWRwZCTVSiBLZ9DHVZxn9n2gip/7ab8mv2TWlKPIBk26RwedCBoWdjLmn+t9na2Gcow== "@babel/highlight@^7.14.5": version "7.14.5" @@ -23,11 +23,6 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@cto.af/textdecoder@^0.0.0": - version "0.0.0" - resolved "https://registry.yarnpkg.com/@cto.af/textdecoder/-/textdecoder-0.0.0.tgz#e1e8d84c936c30a0f4619971f19ca41941af9fdc" - integrity sha512-sJpx3F5xcVV/9jNYJQtvimo4Vfld/nD3ph+ZWtQzZ03Zo8rJC7QKQTRcIGS13Rcz80DwFNthCWMrd58vpY4ZAQ== - "@cucumber/create-meta@^5.0.0": version "5.0.0" resolved "https://registry.yarnpkg.com/@cucumber/create-meta/-/create-meta-5.0.0.tgz#baea1a40ec823881eeefc29a523d6c87d13f4016" @@ -43,9 +38,9 @@ becke-ch--regex--s0-0-v1--base--pl--lib "^1.4.0" "@cucumber/cucumber@^7.1.0": - version "7.3.0" - resolved "https://registry.yarnpkg.com/@cucumber/cucumber/-/cucumber-7.3.0.tgz#28af3b24770579429c42338119596bd7da75163f" - integrity sha512-+kz+SCPKgS9eVv41+LESlFHmJulbrLyMk5yXPIrt6RD9pgmrzKrkc+ZWH4Cz3V1lYCuqqRmh9XQQ5PfMoveSkg== + version "7.3.1" + resolved "https://registry.yarnpkg.com/@cucumber/cucumber/-/cucumber-7.3.1.tgz#1339abc92044f865043eceb2993da15cee0cd255" + integrity sha512-x1+/AvouZy205ZvfYbeEVat5aBAj4EeLt9TZfD7pO9j+tQ3W6uxSuDB1TKfxAXFU3WYrswor0CXoJBYOIZhzMw== dependencies: "@cucumber/create-meta" "^5.0.0" "@cucumber/cucumber-expressions" "^12.1.1" @@ -147,21 +142,21 @@ resolved "https://registry.yarnpkg.com/@ensdomains/resolver/-/resolver-0.2.4.tgz#c10fe28bf5efbf49bff4666d909aed0265efbc89" integrity sha512-bvaTH34PMCbv6anRa9I/0zjLJgY4EuznbEMgbV77JBCQ9KNC46rzi0avuxpOfu+xDjPEtSFGqVEOr5GlUSGudA== -"@eth-optimism/core-utils@^0.4.5": - version "0.4.5" - resolved "https://registry.yarnpkg.com/@eth-optimism/core-utils/-/core-utils-0.4.5.tgz#a3ad0c780ddb3fa9b20fe595f78401d993606d71" - integrity sha512-nG5bj3Okk9z8ALLS3fbBpAzU3tMZIDbwB32zQejGy0ZFqIA8XWNbuhC1i53qPQCwKJITtSufXYPCDGXu1exlqQ== +"@eth-optimism/core-utils@^0.5.1": + version "0.5.1" + resolved "https://registry.yarnpkg.com/@eth-optimism/core-utils/-/core-utils-0.5.1.tgz#bdf9c08e95e09a72fed52b6665811d364d32ecb3" + integrity sha512-wRFcZgqY5jdXrObiQwmysE+M7gk7h7f6LLOyAKBr2lukWpP4WrBIaPlLvIMJvjCdmcPiFzsi6DOnCA7P2806YA== dependencies: "@ethersproject/abstract-provider" "^5.0.9" ethers "^5.0.31" lodash "^4.17.21" -"@eth-optimism/smock@^1.1.0": - version "1.1.5" - resolved "https://registry.yarnpkg.com/@eth-optimism/smock/-/smock-1.1.5.tgz#2f2f4102006ecf015276f416cf093bdf1f5ef46a" - integrity sha512-xHUUz9s9bVXy2yRoeVTct4qUHSvfZEM0kIkej26Z83mStEaEMaJk1vV86sLVLkEuKFz3nXGMNJUKP4drZO7ukA== +"@eth-optimism/smock@^1.1.9": + version "1.1.9" + resolved "https://registry.yarnpkg.com/@eth-optimism/smock/-/smock-1.1.9.tgz#1b30dd8a5b2ddaeb6d79cb6a9c3c883b1dffebbe" + integrity sha512-xC0eLH7gSB/XwpdKQ/CC937HDsXgDVXOJV/G99weGDmPnHXnF8hOYR6jqP++Ojd9fmF3iJTVZ51ln8xHAjHrxg== dependencies: - "@eth-optimism/core-utils" "^0.4.5" + "@eth-optimism/core-utils" "^0.5.1" bn.js "^5.2.0" "@ethereum-waffle/chai@^3.4.0": @@ -242,15 +237,7 @@ rlp "^2.2.4" semaphore-async-await "^1.5.1" -"@ethereumjs/common@^2.3.0", "@ethereumjs/common@^2.3.1": - version "2.3.1" - resolved "https://registry.yarnpkg.com/@ethereumjs/common/-/common-2.3.1.tgz#d692e3aff5adb35dd587dd1e6caab69e0ed2fa0b" - integrity sha512-V8hrULExoq0H4HFs3cCmdRGbgmipmlNzak6Xg34nHYfQyqkSdrCuflvYjyWmsNpI8GtrcZhzifAbgX/1C1Cjwg== - dependencies: - crc-32 "^1.2.0" - ethereumjs-util "^7.0.10" - -"@ethereumjs/common@^2.4.0": +"@ethereumjs/common@^2.3.0", "@ethereumjs/common@^2.4.0": version "2.4.0" resolved "https://registry.yarnpkg.com/@ethereumjs/common/-/common-2.4.0.tgz#2d67f6e6ba22246c5c89104e6b9a119fb3039766" integrity sha512-UdkhFWzWcJCZVsj1O/H8/oqj/0RVYjLc1OhPjBrQdALAkQHpCp8xXI4WLnuGTADqTdJZww0NtgwG+TRPkXt27w== @@ -268,15 +255,7 @@ ethereumjs-util "^7.0.7" miller-rabin "^4.0.0" -"@ethereumjs/tx@^3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@ethereumjs/tx/-/tx-3.2.1.tgz#65f5f1c11541764f08377a94ba4b0dcbbd67739e" - integrity sha512-i9V39OtKvwWos1uVNZxdVhd7zFOyzFLjgt69CoiOY0EmXugS0HjO3uxpLBSglDKFMRriuGqw6ddKEv+RP1UNEw== - dependencies: - "@ethereumjs/common" "^2.3.1" - ethereumjs-util "^7.0.10" - -"@ethereumjs/tx@^3.3.0": +"@ethereumjs/tx@^3.2.1", "@ethereumjs/tx@^3.3.0": version "3.3.0" resolved "https://registry.yarnpkg.com/@ethereumjs/tx/-/tx-3.3.0.tgz#14ed1b7fa0f28e1cd61e3ecbdab824205f6a4378" integrity sha512-yTwEj2lVzSMgE6Hjw9Oa1DZks/nKTWM8Wn4ykDNapBPua2f4nXO3qKnni86O6lgDj5fVNRqbDsD0yy7/XNGDEA== @@ -333,22 +312,7 @@ "@ethersproject/properties" "^5.0.3" "@ethersproject/strings" "^5.0.4" -"@ethersproject/abi@5.3.1", "@ethersproject/abi@^5.0.0", "@ethersproject/abi@^5.0.0-beta.146", "@ethersproject/abi@^5.0.1", "@ethersproject/abi@^5.0.2", "@ethersproject/abi@^5.3.0": - version "5.3.1" - resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.3.1.tgz#69a1a496729d3a83521675a57cbe21f3cc27241c" - integrity sha512-F98FWTJG7nWWAQ4DcV6R0cSlrj67MWK3ylahuFbzkumem5cLWg1p7fZ3vIdRoS1c7TEf55Lvyx0w7ICR47IImw== - dependencies: - "@ethersproject/address" "^5.3.0" - "@ethersproject/bignumber" "^5.3.0" - "@ethersproject/bytes" "^5.3.0" - "@ethersproject/constants" "^5.3.0" - "@ethersproject/hash" "^5.3.0" - "@ethersproject/keccak256" "^5.3.0" - "@ethersproject/logger" "^5.3.0" - "@ethersproject/properties" "^5.3.0" - "@ethersproject/strings" "^5.3.0" - -"@ethersproject/abi@^5.1.2": +"@ethersproject/abi@5.4.0", "@ethersproject/abi@^5.0.0", "@ethersproject/abi@^5.0.0-beta.146", "@ethersproject/abi@^5.0.1", "@ethersproject/abi@^5.1.2", "@ethersproject/abi@^5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.4.0.tgz#a6d63bdb3672f738398846d4279fa6b6c9818242" integrity sha512-9gU2H+/yK1j2eVMdzm6xvHSnMxk8waIHQGYCZg5uvAyH0rsAzxkModzBSpbAkAuhKFEovC2S9hM4nPuLym8IZw== @@ -363,20 +327,7 @@ "@ethersproject/properties" "^5.4.0" "@ethersproject/strings" "^5.4.0" -"@ethersproject/abstract-provider@5.3.0", "@ethersproject/abstract-provider@^5.0.9": - version "5.3.0" - resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.3.0.tgz#f4c0ae4a4cef9f204d7781de805fd44b72756c81" - integrity sha512-1+MLhGP1GwxBDBNwMWVmhCsvKwh4gK7oIfOrmlmePNeskg1NhIrYssraJBieaFNHUYfKEd/1DjiVZMw8Qu5Cxw== - dependencies: - "@ethersproject/bignumber" "^5.3.0" - "@ethersproject/bytes" "^5.3.0" - "@ethersproject/logger" "^5.3.0" - "@ethersproject/networks" "^5.3.0" - "@ethersproject/properties" "^5.3.0" - "@ethersproject/transactions" "^5.3.0" - "@ethersproject/web" "^5.3.0" - -"@ethersproject/abstract-provider@^5.3.0", "@ethersproject/abstract-provider@^5.4.0": +"@ethersproject/abstract-provider@5.4.0", "@ethersproject/abstract-provider@^5.0.9", "@ethersproject/abstract-provider@^5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.4.0.tgz#415331031b0f678388971e1987305244edc04e1d" integrity sha512-vPBR7HKUBY0lpdllIn7tLIzNN7DrVnhCLKSzY0l8WAwxz686m/aL7ASDzrVxV93GJtIub6N2t4dfZ29CkPOxgA== @@ -389,18 +340,7 @@ "@ethersproject/transactions" "^5.4.0" "@ethersproject/web" "^5.4.0" -"@ethersproject/abstract-signer@5.3.0", "@ethersproject/abstract-signer@^5.0.0": - version "5.3.0" - resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.3.0.tgz#05172b653e15b535ed5854ef5f6a72f4b441052d" - integrity sha512-w8IFwOYqiPrtvosPuArZ3+QPR2nmdVTRrVY8uJYL3NNfMmQfTy3V3l2wbzX47UUlNbPJY+gKvzJAyvK1onZxJg== - dependencies: - "@ethersproject/abstract-provider" "^5.3.0" - "@ethersproject/bignumber" "^5.3.0" - "@ethersproject/bytes" "^5.3.0" - "@ethersproject/logger" "^5.3.0" - "@ethersproject/properties" "^5.3.0" - -"@ethersproject/abstract-signer@^5.3.0", "@ethersproject/abstract-signer@^5.4.0": +"@ethersproject/abstract-signer@5.4.0", "@ethersproject/abstract-signer@^5.0.0", "@ethersproject/abstract-signer@^5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.4.0.tgz#cd5f50b93141ee9f9f49feb4075a0b3eafb57d65" integrity sha512-AieQAzt05HJZS2bMofpuxMEp81AHufA5D6M4ScKwtolj041nrfIbIi8ciNW7+F59VYxXq+V4c3d568Q6l2m8ew== @@ -411,18 +351,7 @@ "@ethersproject/logger" "^5.4.0" "@ethersproject/properties" "^5.4.0" -"@ethersproject/address@5.3.0", "@ethersproject/address@>=5.0.0-beta.128", "@ethersproject/address@^5.0.0", "@ethersproject/address@^5.0.2": - version "5.3.0" - resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.3.0.tgz#e53b69eacebf332e8175de814c5e6507d6932518" - integrity sha512-29TgjzEBK+gUEUAOfWCG7s9IxLNLCqvr+oDSk6L9TXD0VLvZJKhJV479tKQqheVA81OeGxfpdxYtUVH8hqlCvA== - dependencies: - "@ethersproject/bignumber" "^5.3.0" - "@ethersproject/bytes" "^5.3.0" - "@ethersproject/keccak256" "^5.3.0" - "@ethersproject/logger" "^5.3.0" - "@ethersproject/rlp" "^5.3.0" - -"@ethersproject/address@^5.0.4", "@ethersproject/address@^5.3.0", "@ethersproject/address@^5.4.0": +"@ethersproject/address@5.4.0", "@ethersproject/address@>=5.0.0-beta.128", "@ethersproject/address@^5.0.0", "@ethersproject/address@^5.0.2", "@ethersproject/address@^5.0.4", "@ethersproject/address@^5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.4.0.tgz#ba2d00a0f8c4c0854933b963b9a3a9f6eb4a37a3" integrity sha512-SD0VgOEkcACEG/C6xavlU1Hy3m5DGSXW3CUHkaaEHbAPPsgi0coP5oNPsxau8eTlZOk/bpa/hKeCNoK5IzVI2Q== @@ -433,38 +362,22 @@ "@ethersproject/logger" "^5.4.0" "@ethersproject/rlp" "^5.4.0" -"@ethersproject/base64@5.3.0": - version "5.3.0" - resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.3.0.tgz#b831fb35418b42ad24d943c557259062b8640824" - integrity sha512-JIqgtOmgKcbc2sjGWTXyXktqUhvFUDte8fPVsAaOrcPiJf6YotNF+nsrOYGC9pbHBEGSuSBp3QR0varkO8JHEw== - dependencies: - "@ethersproject/bytes" "^5.3.0" - -"@ethersproject/base64@^5.3.0", "@ethersproject/base64@^5.4.0": +"@ethersproject/base64@5.4.0", "@ethersproject/base64@^5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.4.0.tgz#7252bf65295954c9048c7ca5f43e5c86441b2a9a" integrity sha512-CjQw6E17QDSSC5jiM9YpF7N1aSCHmYGMt9bWD8PWv6YPMxjsys2/Q8xLrROKI3IWJ7sFfZ8B3flKDTM5wlWuZQ== dependencies: "@ethersproject/bytes" "^5.4.0" -"@ethersproject/basex@5.3.0", "@ethersproject/basex@^5.3.0": - version "5.3.0" - resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.3.0.tgz#02dea3ab8559ae625c6d548bc11773432255c916" - integrity sha512-8J4nS6t/SOnoCgr3DF5WCSRLC5YwTKYpZWJqeyYQLX+86TwPhtzvHXacODzcDII9tWKhVg6g0Bka8JCBWXsCiQ== - dependencies: - "@ethersproject/bytes" "^5.3.0" - "@ethersproject/properties" "^5.3.0" - -"@ethersproject/bignumber@5.3.0", "@ethersproject/bignumber@>=5.0.0-beta.130", "@ethersproject/bignumber@^5.0.0": - version "5.3.0" - resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.3.0.tgz#74ab2ec9c3bda4e344920565720a6ee9c794e9db" - integrity sha512-5xguJ+Q1/zRMgHgDCaqAexx/8DwDVLRemw2i6uR8KyGjwGdXI8f32QZZ1cKGucBN6ekJvpUpHy6XAuQnTv0mPA== +"@ethersproject/basex@5.4.0", "@ethersproject/basex@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.4.0.tgz#0a2da0f4e76c504a94f2b21d3161ed9438c7f8a6" + integrity sha512-J07+QCVJ7np2bcpxydFVf/CuYo9mZ7T73Pe7KQY4c1lRlrixMeblauMxHXD0MPwFmUHZIILDNViVkykFBZylbg== dependencies: - "@ethersproject/bytes" "^5.3.0" - "@ethersproject/logger" "^5.3.0" - bn.js "^4.11.9" + "@ethersproject/bytes" "^5.4.0" + "@ethersproject/properties" "^5.4.0" -"@ethersproject/bignumber@^5.0.7", "@ethersproject/bignumber@^5.3.0", "@ethersproject/bignumber@^5.4.0": +"@ethersproject/bignumber@5.4.0", "@ethersproject/bignumber@>=5.0.0-beta.130", "@ethersproject/bignumber@^5.0.0", "@ethersproject/bignumber@^5.0.7", "@ethersproject/bignumber@^5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.4.0.tgz#be8dea298c0ec71208ee60f0b245be0761217ad9" integrity sha512-OXUu9f9hO3vGRIPxU40cignXZVaYyfx6j9NNMjebKdnaCL3anCLSSy8/b8d03vY6dh7duCC0kW72GEC4tZer2w== @@ -473,65 +386,37 @@ "@ethersproject/logger" "^5.4.0" bn.js "^4.11.9" -"@ethersproject/bytes@5.3.0", "@ethersproject/bytes@>=5.0.0-beta.129", "@ethersproject/bytes@^5.0.0": - version "5.3.0" - resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.3.0.tgz#473e0da7f831d535b2002be05e6f4ca3729a1bc9" - integrity sha512-rqLJjdVqCcn7glPer7Fxh87PRqlnRScVAoxcIP3PmOUNApMWJ6yRdOFfo2KvPAdO7Le3yEI1o0YW+Yvr7XCYvw== - dependencies: - "@ethersproject/logger" "^5.3.0" - -"@ethersproject/bytes@^5.0.4", "@ethersproject/bytes@^5.3.0", "@ethersproject/bytes@^5.4.0": +"@ethersproject/bytes@5.4.0", "@ethersproject/bytes@>=5.0.0-beta.129", "@ethersproject/bytes@^5.0.0", "@ethersproject/bytes@^5.0.4", "@ethersproject/bytes@^5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.4.0.tgz#56fa32ce3bf67153756dbaefda921d1d4774404e" integrity sha512-H60ceqgTHbhzOj4uRc/83SCN9d+BSUnOkrr2intevqdtEMO1JFVZ1XL84OEZV+QjV36OaZYxtnt4lGmxcGsPfA== dependencies: "@ethersproject/logger" "^5.4.0" -"@ethersproject/constants@5.3.0", "@ethersproject/constants@>=5.0.0-beta.128": - version "5.3.0" - resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.3.0.tgz#a5d6d86c0eec2c64c3024479609493b9afb3fc77" - integrity sha512-4y1feNOwEpgjAfiCFWOHznvv6qUF/H6uI0UKp8xdhftb+H+FbKflXg1pOgH5qs4Sr7EYBL+zPyPb+YD5g1aEyw== - dependencies: - "@ethersproject/bignumber" "^5.3.0" - -"@ethersproject/constants@^5.0.4", "@ethersproject/constants@^5.3.0", "@ethersproject/constants@^5.4.0": +"@ethersproject/constants@5.4.0", "@ethersproject/constants@>=5.0.0-beta.128", "@ethersproject/constants@^5.0.4", "@ethersproject/constants@^5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.4.0.tgz#ee0bdcb30bf1b532d2353c977bf2ef1ee117958a" integrity sha512-tzjn6S7sj9+DIIeKTJLjK9WGN2Tj0P++Z8ONEIlZjyoTkBuODN+0VfhAyYksKi43l1Sx9tX2VlFfzjfmr5Wl3Q== dependencies: "@ethersproject/bignumber" "^5.4.0" -"@ethersproject/contracts@5.3.0", "@ethersproject/contracts@^5.0.0": - version "5.3.0" - resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.3.0.tgz#ad699a3abaae30bfb6422cf31813a663b2d4099c" - integrity sha512-eDyQ8ltykvyQqnGZxb/c1e0OnEtzqXhNNC4BX8nhYBCaoBrYYuK/1fLmyEvc5+XUMoxNhwpYkoSSwvPLci7/Zg== - dependencies: - "@ethersproject/abi" "^5.3.0" - "@ethersproject/abstract-provider" "^5.3.0" - "@ethersproject/abstract-signer" "^5.3.0" - "@ethersproject/address" "^5.3.0" - "@ethersproject/bignumber" "^5.3.0" - "@ethersproject/bytes" "^5.3.0" - "@ethersproject/constants" "^5.3.0" - "@ethersproject/logger" "^5.3.0" - "@ethersproject/properties" "^5.3.0" - "@ethersproject/transactions" "^5.3.0" - -"@ethersproject/hash@5.3.0", "@ethersproject/hash@>=5.0.0-beta.128": - version "5.3.0" - resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.3.0.tgz#f65e3bf3db3282df4da676db6cfa049535dd3643" - integrity sha512-gAFZSjUPQ32CIfoKSMtMEQ+IO0kQxqhwz9fCIFt2DtAq2u4pWt8mL9Z5P0r6KkLcQU8LE9FmuPPyd+JvBzmr1w== - dependencies: - "@ethersproject/abstract-signer" "^5.3.0" - "@ethersproject/address" "^5.3.0" - "@ethersproject/bignumber" "^5.3.0" - "@ethersproject/bytes" "^5.3.0" - "@ethersproject/keccak256" "^5.3.0" - "@ethersproject/logger" "^5.3.0" - "@ethersproject/properties" "^5.3.0" - "@ethersproject/strings" "^5.3.0" - -"@ethersproject/hash@^5.0.4", "@ethersproject/hash@^5.3.0", "@ethersproject/hash@^5.4.0": +"@ethersproject/contracts@5.4.0", "@ethersproject/contracts@^5.0.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.4.0.tgz#e05fe6bd33acc98741e27d553889ec5920078abb" + integrity sha512-hkO3L3IhS1Z3ZtHtaAG/T87nQ7KiPV+/qnvutag35I0IkiQ8G3ZpCQ9NNOpSCzn4pWSW4CfzmtE02FcqnLI+hw== + dependencies: + "@ethersproject/abi" "^5.4.0" + "@ethersproject/abstract-provider" "^5.4.0" + "@ethersproject/abstract-signer" "^5.4.0" + "@ethersproject/address" "^5.4.0" + "@ethersproject/bignumber" "^5.4.0" + "@ethersproject/bytes" "^5.4.0" + "@ethersproject/constants" "^5.4.0" + "@ethersproject/logger" "^5.4.0" + "@ethersproject/properties" "^5.4.0" + "@ethersproject/transactions" "^5.4.0" + +"@ethersproject/hash@5.4.0", "@ethersproject/hash@>=5.0.0-beta.128", "@ethersproject/hash@^5.0.4", "@ethersproject/hash@^5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.4.0.tgz#d18a8e927e828e22860a011f39e429d388344ae0" integrity sha512-xymAM9tmikKgbktOCjW60Z5sdouiIIurkZUr9oW5NOex5uwxrbsYG09kb5bMcNjlVeJD3yPivTNzViIs1GCbqA== @@ -545,52 +430,44 @@ "@ethersproject/properties" "^5.4.0" "@ethersproject/strings" "^5.4.0" -"@ethersproject/hdnode@5.3.0", "@ethersproject/hdnode@^5.3.0": - version "5.3.0" - resolved "https://registry.yarnpkg.com/@ethersproject/hdnode/-/hdnode-5.3.0.tgz#26fed65ffd5c25463fddff13f5fb4e5617553c94" - integrity sha512-zLmmtLNoDMGoYRdjOab01Zqkvp+TmZyCGDAMQF1Bs3yZyBs/kzTNi1qJjR1jVUcPP5CWGtjFwY8iNG8oNV9J8g== - dependencies: - "@ethersproject/abstract-signer" "^5.3.0" - "@ethersproject/basex" "^5.3.0" - "@ethersproject/bignumber" "^5.3.0" - "@ethersproject/bytes" "^5.3.0" - "@ethersproject/logger" "^5.3.0" - "@ethersproject/pbkdf2" "^5.3.0" - "@ethersproject/properties" "^5.3.0" - "@ethersproject/sha2" "^5.3.0" - "@ethersproject/signing-key" "^5.3.0" - "@ethersproject/strings" "^5.3.0" - "@ethersproject/transactions" "^5.3.0" - "@ethersproject/wordlists" "^5.3.0" - -"@ethersproject/json-wallets@5.3.0", "@ethersproject/json-wallets@^5.3.0": - version "5.3.0" - resolved "https://registry.yarnpkg.com/@ethersproject/json-wallets/-/json-wallets-5.3.0.tgz#7b1a5ff500c12aa8597ae82c8939837b0449376e" - integrity sha512-/xwbqaIb5grUIGNmeEaz8GdcpmDr++X8WT4Jqcclnxow8PXCUHFeDxjf3O+nSuoqOYG/Ds0+BI5xuQKbva6Xkw== - dependencies: - "@ethersproject/abstract-signer" "^5.3.0" - "@ethersproject/address" "^5.3.0" - "@ethersproject/bytes" "^5.3.0" - "@ethersproject/hdnode" "^5.3.0" - "@ethersproject/keccak256" "^5.3.0" - "@ethersproject/logger" "^5.3.0" - "@ethersproject/pbkdf2" "^5.3.0" - "@ethersproject/properties" "^5.3.0" - "@ethersproject/random" "^5.3.0" - "@ethersproject/strings" "^5.3.0" - "@ethersproject/transactions" "^5.3.0" - aes-js "3.0.0" - scrypt-js "3.0.1" +"@ethersproject/hdnode@5.4.0", "@ethersproject/hdnode@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@ethersproject/hdnode/-/hdnode-5.4.0.tgz#4bc9999b9a12eb5ce80c5faa83114a57e4107cac" + integrity sha512-pKxdS0KAaeVGfZPp1KOiDLB0jba11tG6OP1u11QnYfb7pXn6IZx0xceqWRr6ygke8+Kw74IpOoSi7/DwANhy8Q== + dependencies: + "@ethersproject/abstract-signer" "^5.4.0" + "@ethersproject/basex" "^5.4.0" + "@ethersproject/bignumber" "^5.4.0" + "@ethersproject/bytes" "^5.4.0" + "@ethersproject/logger" "^5.4.0" + "@ethersproject/pbkdf2" "^5.4.0" + "@ethersproject/properties" "^5.4.0" + "@ethersproject/sha2" "^5.4.0" + "@ethersproject/signing-key" "^5.4.0" + "@ethersproject/strings" "^5.4.0" + "@ethersproject/transactions" "^5.4.0" + "@ethersproject/wordlists" "^5.4.0" -"@ethersproject/keccak256@5.3.0", "@ethersproject/keccak256@>=5.0.0-beta.127": - version "5.3.0" - resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.3.0.tgz#fb5cd36bdfd6fa02e2ea84964078a9fc6bd731be" - integrity sha512-Gv2YqgIUmRbYVNIibafT0qGaeGYLIA/EdWHJ7JcVxVSs2vyxafGxOJ5VpSBHWeOIsE6OOaCelYowhuuTicgdFQ== +"@ethersproject/json-wallets@5.4.0", "@ethersproject/json-wallets@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@ethersproject/json-wallets/-/json-wallets-5.4.0.tgz#2583341cfe313fc9856642e8ace3080154145e95" + integrity sha512-igWcu3fx4aiczrzEHwG1xJZo9l1cFfQOWzTqwRw/xcvxTk58q4f9M7cjh51EKphMHvrJtcezJ1gf1q1AUOfEQQ== dependencies: - "@ethersproject/bytes" "^5.3.0" - js-sha3 "0.5.7" + "@ethersproject/abstract-signer" "^5.4.0" + "@ethersproject/address" "^5.4.0" + "@ethersproject/bytes" "^5.4.0" + "@ethersproject/hdnode" "^5.4.0" + "@ethersproject/keccak256" "^5.4.0" + "@ethersproject/logger" "^5.4.0" + "@ethersproject/pbkdf2" "^5.4.0" + "@ethersproject/properties" "^5.4.0" + "@ethersproject/random" "^5.4.0" + "@ethersproject/strings" "^5.4.0" + "@ethersproject/transactions" "^5.4.0" + aes-js "3.0.0" + scrypt-js "3.0.1" -"@ethersproject/keccak256@^5.0.3", "@ethersproject/keccak256@^5.3.0", "@ethersproject/keccak256@^5.4.0": +"@ethersproject/keccak256@5.4.0", "@ethersproject/keccak256@>=5.0.0-beta.127", "@ethersproject/keccak256@^5.0.3", "@ethersproject/keccak256@^5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.4.0.tgz#7143b8eea4976080241d2bd92e3b1f1bf7025318" integrity sha512-FBI1plWet+dPUvAzPAeHzRKiPpETQzqSUWR1wXJGHVWi4i8bOSrpC3NwpkPjgeXG7MnugVc1B42VbfnQikyC/A== @@ -598,94 +475,67 @@ "@ethersproject/bytes" "^5.4.0" js-sha3 "0.5.7" -"@ethersproject/logger@5.3.0", "@ethersproject/logger@>=5.0.0-beta.129": - version "5.3.0" - resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.3.0.tgz#7a69fa1d4ca0d4b7138da1627eb152f763d84dd0" - integrity sha512-8bwJ2gxJGkZZnpQSq5uSiZSJjyVTWmlGft4oH8vxHdvO1Asy4TwVepAhPgxIQIMxXZFUNMych1YjIV4oQ4I7dA== - -"@ethersproject/logger@^5.0.5", "@ethersproject/logger@^5.3.0", "@ethersproject/logger@^5.4.0": +"@ethersproject/logger@5.4.0", "@ethersproject/logger@>=5.0.0-beta.129", "@ethersproject/logger@^5.0.5", "@ethersproject/logger@^5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.4.0.tgz#f39adadf62ad610c420bcd156fd41270e91b3ca9" integrity sha512-xYdWGGQ9P2cxBayt64d8LC8aPFJk6yWCawQi/4eJ4+oJdMMjEBMrIcIMZ9AxhwpPVmnBPrsB10PcXGmGAqgUEQ== -"@ethersproject/networks@5.3.1": - version "5.3.1" - resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.3.1.tgz#78fe08324cee289ce239acf8c746121934b2ef61" - integrity sha512-6uQKHkYChlsfeiZhQ8IHIqGE/sQsf25o9ZxAYpMxi15dLPzz3IxOEF5KiSD32aHwsjXVBKBSlo+teAXLlYJybw== - dependencies: - "@ethersproject/logger" "^5.3.0" - -"@ethersproject/networks@^5.3.0", "@ethersproject/networks@^5.4.0": +"@ethersproject/networks@5.4.1", "@ethersproject/networks@^5.4.0": version "5.4.1" resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.4.1.tgz#2ce83b8e42aa85216e5d277a7952d97b6ce8d852" integrity sha512-8SvowCKz9Uf4xC5DTKI8+il8lWqOr78kmiqAVLYT9lzB8aSmJHQMD1GSuJI0CW4hMAnzocpGpZLgiMdzsNSPig== dependencies: "@ethersproject/logger" "^5.4.0" -"@ethersproject/pbkdf2@5.3.0", "@ethersproject/pbkdf2@^5.3.0": - version "5.3.0" - resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.3.0.tgz#8adbb41489c3c9f319cc44bc7d3e6095fd468dc8" - integrity sha512-Q9ChVU6gBFiex0FSdtzo4b0SAKz3ZYcYVFLrEWHL0FnHvNk3J3WgAtRNtBQGQYn/T5wkoTdZttMbfBkFlaiWcA== - dependencies: - "@ethersproject/bytes" "^5.3.0" - "@ethersproject/sha2" "^5.3.0" - -"@ethersproject/properties@5.3.0", "@ethersproject/properties@>=5.0.0-beta.131": - version "5.3.0" - resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.3.0.tgz#feef4c4babeb7c10a6b3449575016f4ad2c092b2" - integrity sha512-PaHxJyM5/bfusk6vr3yP//JMnm4UEojpzuWGTmtL5X4uNhNnFNvlYilZLyDr4I9cTkIbipCMsAuIcXWsmdRnEw== +"@ethersproject/pbkdf2@5.4.0", "@ethersproject/pbkdf2@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.4.0.tgz#ed88782a67fda1594c22d60d0ca911a9d669641c" + integrity sha512-x94aIv6tiA04g6BnazZSLoRXqyusawRyZWlUhKip2jvoLpzJuLb//KtMM6PEovE47pMbW+Qe1uw+68ameJjB7g== dependencies: - "@ethersproject/logger" "^5.3.0" + "@ethersproject/bytes" "^5.4.0" + "@ethersproject/sha2" "^5.4.0" -"@ethersproject/properties@^5.0.3", "@ethersproject/properties@^5.3.0", "@ethersproject/properties@^5.4.0": +"@ethersproject/properties@5.4.0", "@ethersproject/properties@>=5.0.0-beta.131", "@ethersproject/properties@^5.0.3", "@ethersproject/properties@^5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.4.0.tgz#38ba20539b44dcc5d5f80c45ad902017dcdbefe7" integrity sha512-7jczalGVRAJ+XSRvNA6D5sAwT4gavLq3OXPuV/74o3Rd2wuzSL035IMpIMgei4CYyBdialJMrTqkOnzccLHn4A== dependencies: "@ethersproject/logger" "^5.4.0" -"@ethersproject/providers@5.3.1", "@ethersproject/providers@^5.0.0": - version "5.3.1" - resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.3.1.tgz#a12c6370e8cbc0968c9744641b8ef90b0dd5ec2b" - integrity sha512-HC63vENTrur6/JKEhcQbA8PRDj1FAesdpX98IW+xAAo3EAkf70ou5fMIA3KCGzJDLNTeYA4C2Bonz849tVLekg== - dependencies: - "@ethersproject/abstract-provider" "^5.3.0" - "@ethersproject/abstract-signer" "^5.3.0" - "@ethersproject/address" "^5.3.0" - "@ethersproject/basex" "^5.3.0" - "@ethersproject/bignumber" "^5.3.0" - "@ethersproject/bytes" "^5.3.0" - "@ethersproject/constants" "^5.3.0" - "@ethersproject/hash" "^5.3.0" - "@ethersproject/logger" "^5.3.0" - "@ethersproject/networks" "^5.3.0" - "@ethersproject/properties" "^5.3.0" - "@ethersproject/random" "^5.3.0" - "@ethersproject/rlp" "^5.3.0" - "@ethersproject/sha2" "^5.3.0" - "@ethersproject/strings" "^5.3.0" - "@ethersproject/transactions" "^5.3.0" - "@ethersproject/web" "^5.3.0" +"@ethersproject/providers@5.4.1", "@ethersproject/providers@^5.0.0": + version "5.4.1" + resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.4.1.tgz#654267b563b833046b9c9647647cfc8267cb93b4" + integrity sha512-p06eiFKz8nu/5Ju0kIX024gzEQIgE5pvvGrBCngpyVjpuLtUIWT3097Agw4mTn9/dEA0FMcfByzFqacBMSgCVg== + dependencies: + "@ethersproject/abstract-provider" "^5.4.0" + "@ethersproject/abstract-signer" "^5.4.0" + "@ethersproject/address" "^5.4.0" + "@ethersproject/basex" "^5.4.0" + "@ethersproject/bignumber" "^5.4.0" + "@ethersproject/bytes" "^5.4.0" + "@ethersproject/constants" "^5.4.0" + "@ethersproject/hash" "^5.4.0" + "@ethersproject/logger" "^5.4.0" + "@ethersproject/networks" "^5.4.0" + "@ethersproject/properties" "^5.4.0" + "@ethersproject/random" "^5.4.0" + "@ethersproject/rlp" "^5.4.0" + "@ethersproject/sha2" "^5.4.0" + "@ethersproject/strings" "^5.4.0" + "@ethersproject/transactions" "^5.4.0" + "@ethersproject/web" "^5.4.0" bech32 "1.1.4" ws "7.4.6" -"@ethersproject/random@5.3.0", "@ethersproject/random@^5.3.0": - version "5.3.0" - resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.3.0.tgz#7c46bf36e50cb0d0550bc8c666af8e1d4496dc1a" - integrity sha512-A5SL/4inutSwt3Fh2OD0x2gz+x6GHmuUnIPkR7zAiTidMD2N8F6tZdMF1hlQKWVCcVMWhEQg8mWijhEzm6BBYw== - dependencies: - "@ethersproject/bytes" "^5.3.0" - "@ethersproject/logger" "^5.3.0" - -"@ethersproject/rlp@5.3.0": - version "5.3.0" - resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.3.0.tgz#7cb93a7b5dfa69163894153c9d4b0d936f333188" - integrity sha512-oI0joYpsRanl9guDubaW+1NbcpK0vJ3F/6Wpcanzcnqq+oaW9O5E98liwkEDPcb16BUTLIJ+ZF8GPIHYxJ/5Pw== +"@ethersproject/random@5.4.0", "@ethersproject/random@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.4.0.tgz#9cdde60e160d024be39cc16f8de3b9ce39191e16" + integrity sha512-pnpWNQlf0VAZDEOVp1rsYQosmv2o0ITS/PecNw+mS2/btF8eYdspkN0vIXrCMtkX09EAh9bdk8GoXmFXM1eAKw== dependencies: - "@ethersproject/bytes" "^5.3.0" - "@ethersproject/logger" "^5.3.0" + "@ethersproject/bytes" "^5.4.0" + "@ethersproject/logger" "^5.4.0" -"@ethersproject/rlp@^5.3.0", "@ethersproject/rlp@^5.4.0": +"@ethersproject/rlp@5.4.0", "@ethersproject/rlp@^5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.4.0.tgz#de61afda5ff979454e76d3b3310a6c32ad060931" integrity sha512-0I7MZKfi+T5+G8atId9QaQKHRvvasM/kqLyAH4XxBCBchAooH2EX5rL9kYZWwcm3awYV+XC7VF6nLhfeQFKVPg== @@ -693,28 +543,16 @@ "@ethersproject/bytes" "^5.4.0" "@ethersproject/logger" "^5.4.0" -"@ethersproject/sha2@5.3.0", "@ethersproject/sha2@^5.3.0": - version "5.3.0" - resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.3.0.tgz#209f9a1649f7d2452dcd5e5b94af43b7f3f42366" - integrity sha512-r5ftlwKcocYEuFz2JbeKOT5SAsCV4m1RJDsTOEfQ5L67ZC7NFDK5i7maPdn1bx4nPhylF9VAwxSrQ1esmwzylg== - dependencies: - "@ethersproject/bytes" "^5.3.0" - "@ethersproject/logger" "^5.3.0" - hash.js "1.1.7" - -"@ethersproject/signing-key@5.3.0": - version "5.3.0" - resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.3.0.tgz#a96c88f8173e1abedfa35de32d3e5db7c48e5259" - integrity sha512-+DX/GwHAd0ok1bgedV1cKO0zfK7P/9aEyNoaYiRsGHpCecN7mhLqcdoUiUzE7Uz86LBsxm5ssK0qA1kBB47fbQ== +"@ethersproject/sha2@5.4.0", "@ethersproject/sha2@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.4.0.tgz#c9a8db1037014cbc4e9482bd662f86c090440371" + integrity sha512-siheo36r1WD7Cy+bDdE1BJ8y0bDtqXCOxRMzPa4bV1TGt/eTUUt03BHoJNB6reWJD8A30E/pdJ8WFkq+/uz4Gg== dependencies: - "@ethersproject/bytes" "^5.3.0" - "@ethersproject/logger" "^5.3.0" - "@ethersproject/properties" "^5.3.0" - bn.js "^4.11.9" - elliptic "6.5.4" + "@ethersproject/bytes" "^5.4.0" + "@ethersproject/logger" "^5.4.0" hash.js "1.1.7" -"@ethersproject/signing-key@^5.3.0", "@ethersproject/signing-key@^5.4.0": +"@ethersproject/signing-key@5.4.0", "@ethersproject/signing-key@^5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.4.0.tgz#2f05120984e81cf89a3d5f6dec5c68ee0894fbec" integrity sha512-q8POUeywx6AKg2/jX9qBYZIAmKSB4ubGXdQ88l40hmATj29JnG5pp331nAWwwxPn2Qao4JpWHNZsQN+bPiSW9A== @@ -726,27 +564,18 @@ elliptic "6.5.4" hash.js "1.1.7" -"@ethersproject/solidity@5.3.0", "@ethersproject/solidity@^5.0.0": - version "5.3.0" - resolved "https://registry.yarnpkg.com/@ethersproject/solidity/-/solidity-5.3.0.tgz#2a0b00b4aaaef99a080ddea13acab1fa35cd4a93" - integrity sha512-uLRBaNUiISHbut94XKewJgQh6UmydWTBp71I7I21pkjVXfZO2dJ5EOo3jCnumJc01M4LOm79dlNNmF3oGIvweQ== - dependencies: - "@ethersproject/bignumber" "^5.3.0" - "@ethersproject/bytes" "^5.3.0" - "@ethersproject/keccak256" "^5.3.0" - "@ethersproject/sha2" "^5.3.0" - "@ethersproject/strings" "^5.3.0" - -"@ethersproject/strings@5.3.0", "@ethersproject/strings@>=5.0.0-beta.130": - version "5.3.0" - resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.3.0.tgz#a6b640aab56a18e0909f657da798eef890968ff0" - integrity sha512-j/AzIGZ503cvhuF2ldRSjB0BrKzpsBMtCieDtn4TYMMZMQ9zScJn9wLzTQl/bRNvJbBE6TOspK0r8/Ngae/f2Q== +"@ethersproject/solidity@5.4.0", "@ethersproject/solidity@^5.0.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@ethersproject/solidity/-/solidity-5.4.0.tgz#1305e058ea02dc4891df18b33232b11a14ece9ec" + integrity sha512-XFQTZ7wFSHOhHcV1DpcWj7VXECEiSrBuv7JErJvB9Uo+KfCdc3QtUZV+Vjh/AAaYgezUEKbCtE6Khjm44seevQ== dependencies: - "@ethersproject/bytes" "^5.3.0" - "@ethersproject/constants" "^5.3.0" - "@ethersproject/logger" "^5.3.0" + "@ethersproject/bignumber" "^5.4.0" + "@ethersproject/bytes" "^5.4.0" + "@ethersproject/keccak256" "^5.4.0" + "@ethersproject/sha2" "^5.4.0" + "@ethersproject/strings" "^5.4.0" -"@ethersproject/strings@^5.0.4", "@ethersproject/strings@^5.3.0", "@ethersproject/strings@^5.4.0": +"@ethersproject/strings@5.4.0", "@ethersproject/strings@>=5.0.0-beta.130", "@ethersproject/strings@^5.0.4", "@ethersproject/strings@^5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.4.0.tgz#fb12270132dd84b02906a8d895ae7e7fa3d07d9a" integrity sha512-k/9DkH5UGDhv7aReXLluFG5ExurwtIpUfnDNhQA29w896Dw3i4uDTz01Quaptbks1Uj9kI8wo9tmW73wcIEaWA== @@ -755,22 +584,7 @@ "@ethersproject/constants" "^5.4.0" "@ethersproject/logger" "^5.4.0" -"@ethersproject/transactions@5.3.0", "@ethersproject/transactions@^5.0.0", "@ethersproject/transactions@^5.0.0-beta.135": - version "5.3.0" - resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.3.0.tgz#49b86f2bafa4d0bdf8e596578fc795ee47c50458" - integrity sha512-cdfK8VVyW2oEBCXhURG0WQ6AICL/r6Gmjh0e4Bvbv6MCn/GBd8FeBH3rtl7ho+AW50csMKeGv3m3K1HSHB2jMQ== - dependencies: - "@ethersproject/address" "^5.3.0" - "@ethersproject/bignumber" "^5.3.0" - "@ethersproject/bytes" "^5.3.0" - "@ethersproject/constants" "^5.3.0" - "@ethersproject/keccak256" "^5.3.0" - "@ethersproject/logger" "^5.3.0" - "@ethersproject/properties" "^5.3.0" - "@ethersproject/rlp" "^5.3.0" - "@ethersproject/signing-key" "^5.3.0" - -"@ethersproject/transactions@^5.3.0", "@ethersproject/transactions@^5.4.0": +"@ethersproject/transactions@5.4.0", "@ethersproject/transactions@^5.0.0", "@ethersproject/transactions@^5.0.0-beta.135", "@ethersproject/transactions@^5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.4.0.tgz#a159d035179334bd92f340ce0f77e83e9e1522e0" integrity sha512-s3EjZZt7xa4BkLknJZ98QGoIza94rVjaEed0rzZ/jB9WrIuu/1+tjvYCWzVrystXtDswy7TPBeIepyXwSYa4WQ== @@ -785,48 +599,37 @@ "@ethersproject/rlp" "^5.4.0" "@ethersproject/signing-key" "^5.4.0" -"@ethersproject/units@5.3.0": - version "5.3.0" - resolved "https://registry.yarnpkg.com/@ethersproject/units/-/units-5.3.0.tgz#c4d1493532ad3d4ddf6e2bc4f8c94a2db933a8f5" - integrity sha512-BkfccZGwfJ6Ob+AelpIrgAzuNhrN2VLp3AILnkqTOv+yBdsc83V4AYf25XC/u0rHnWl6f4POaietPwlMqP2vUg== +"@ethersproject/units@5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@ethersproject/units/-/units-5.4.0.tgz#d57477a4498b14b88b10396062c8cbbaf20c79fe" + integrity sha512-Z88krX40KCp+JqPCP5oPv5p750g+uU6gopDYRTBGcDvOASh6qhiEYCRatuM/suC4S2XW9Zz90QI35MfSrTIaFg== dependencies: - "@ethersproject/bignumber" "^5.3.0" - "@ethersproject/constants" "^5.3.0" - "@ethersproject/logger" "^5.3.0" + "@ethersproject/bignumber" "^5.4.0" + "@ethersproject/constants" "^5.4.0" + "@ethersproject/logger" "^5.4.0" -"@ethersproject/wallet@5.3.0", "@ethersproject/wallet@^5.0.0": - version "5.3.0" - resolved "https://registry.yarnpkg.com/@ethersproject/wallet/-/wallet-5.3.0.tgz#91946b470bd279e39ade58866f21f92749d062af" - integrity sha512-boYBLydG6671p9QoG6EinNnNzbm7DNOjVT20eV8J6HQEq4aUaGiA2CytF2vK+2rOEWbzhZqoNDt6AlkE1LlsTg== - dependencies: - "@ethersproject/abstract-provider" "^5.3.0" - "@ethersproject/abstract-signer" "^5.3.0" - "@ethersproject/address" "^5.3.0" - "@ethersproject/bignumber" "^5.3.0" - "@ethersproject/bytes" "^5.3.0" - "@ethersproject/hash" "^5.3.0" - "@ethersproject/hdnode" "^5.3.0" - "@ethersproject/json-wallets" "^5.3.0" - "@ethersproject/keccak256" "^5.3.0" - "@ethersproject/logger" "^5.3.0" - "@ethersproject/properties" "^5.3.0" - "@ethersproject/random" "^5.3.0" - "@ethersproject/signing-key" "^5.3.0" - "@ethersproject/transactions" "^5.3.0" - "@ethersproject/wordlists" "^5.3.0" - -"@ethersproject/web@5.3.0": - version "5.3.0" - resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.3.0.tgz#7959c403f6476c61515008d8f92da51c553a8ee1" - integrity sha512-Ni6/DHnY6k/TD41LEkv0RQDx4jqWz5e/RZvrSecsxGYycF+MFy2z++T/yGc2peRunLOTIFwEksgEGGlbwfYmhQ== +"@ethersproject/wallet@5.4.0", "@ethersproject/wallet@^5.0.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@ethersproject/wallet/-/wallet-5.4.0.tgz#fa5b59830b42e9be56eadd45a16a2e0933ad9353" + integrity sha512-wU29majLjM6AjCjpat21mPPviG+EpK7wY1+jzKD0fg3ui5fgedf2zEu1RDgpfIMsfn8fJHJuzM4zXZ2+hSHaSQ== dependencies: - "@ethersproject/base64" "^5.3.0" - "@ethersproject/bytes" "^5.3.0" - "@ethersproject/logger" "^5.3.0" - "@ethersproject/properties" "^5.3.0" - "@ethersproject/strings" "^5.3.0" + "@ethersproject/abstract-provider" "^5.4.0" + "@ethersproject/abstract-signer" "^5.4.0" + "@ethersproject/address" "^5.4.0" + "@ethersproject/bignumber" "^5.4.0" + "@ethersproject/bytes" "^5.4.0" + "@ethersproject/hash" "^5.4.0" + "@ethersproject/hdnode" "^5.4.0" + "@ethersproject/json-wallets" "^5.4.0" + "@ethersproject/keccak256" "^5.4.0" + "@ethersproject/logger" "^5.4.0" + "@ethersproject/properties" "^5.4.0" + "@ethersproject/random" "^5.4.0" + "@ethersproject/signing-key" "^5.4.0" + "@ethersproject/transactions" "^5.4.0" + "@ethersproject/wordlists" "^5.4.0" -"@ethersproject/web@^5.3.0", "@ethersproject/web@^5.4.0": +"@ethersproject/web@5.4.0", "@ethersproject/web@^5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.4.0.tgz#49fac173b96992334ed36a175538ba07a7413d1f" integrity sha512-1bUusGmcoRLYgMn6c1BLk1tOKUIFuTg8j+6N8lYlbMpDesnle+i3pGSagGNvwjaiLo4Y5gBibwctpPRmjrh4Og== @@ -837,16 +640,16 @@ "@ethersproject/properties" "^5.4.0" "@ethersproject/strings" "^5.4.0" -"@ethersproject/wordlists@5.3.0", "@ethersproject/wordlists@^5.3.0": - version "5.3.0" - resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.3.0.tgz#45a0205f5178c1de33d316cb2ab7ed5eac3c06c5" - integrity sha512-JcwumCZcsUxgWpiFU/BRy6b4KlTRdOmYvOKZcAw/3sdF93/pZyPW5Od2hFkHS8oWp4xS06YQ+qHqQhdcxdHafQ== +"@ethersproject/wordlists@5.4.0", "@ethersproject/wordlists@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.4.0.tgz#f34205ec3bbc9e2c49cadaee774cf0b07e7573d7" + integrity sha512-FemEkf6a+EBKEPxlzeVgUaVSodU7G0Na89jqKjmWMlDB0tomoU8RlEMgUvXyqtrg8N4cwpLh8nyRnm1Nay1isA== dependencies: - "@ethersproject/bytes" "^5.3.0" - "@ethersproject/hash" "^5.3.0" - "@ethersproject/logger" "^5.3.0" - "@ethersproject/properties" "^5.3.0" - "@ethersproject/strings" "^5.3.0" + "@ethersproject/bytes" "^5.4.0" + "@ethersproject/hash" "^5.4.0" + "@ethersproject/logger" "^5.4.0" + "@ethersproject/properties" "^5.4.0" + "@ethersproject/strings" "^5.4.0" "@nodelib/fs.scandir@2.1.5": version "2.1.5" @@ -896,11 +699,11 @@ integrity sha512-6quxWe8wwS4X5v3Au8q1jOvXYEPkS1Fh+cME5u6AwNdnI4uERvPlVjlgRWzpnb+Rrt1l/cEqiNRH9GlsBMSDQg== "@nomiclabs/hardhat-etherscan@^2.1.1": - version "2.1.3" - resolved "https://registry.yarnpkg.com/@nomiclabs/hardhat-etherscan/-/hardhat-etherscan-2.1.3.tgz#ba52e5cb526f6c477e5e97e07c72a42232773c92" - integrity sha512-0Ic5dLBWASeX3e8tR5cdfoSQw8fTp2Bw49RGUN1pSJuxKIQAOWq5MI9qC1Bd51xK/AsdRSnHDxoVYK1+FC1s1w== + version "2.1.4" + resolved "https://registry.yarnpkg.com/@nomiclabs/hardhat-etherscan/-/hardhat-etherscan-2.1.4.tgz#510b6a669cc2dad095466b2ba9ae0b411c779081" + integrity sha512-KgFNTQv9gpioiTpQ9UlTysCAFfkcBonmEn9rVPTT22A7DRENFM1VTsVeGWF3AzRhd0mrASBF+o0gvbH30pSe0Q== dependencies: - "@ethersproject/abi" "^5.0.2" + "@ethersproject/abi" "^5.1.2" "@ethersproject/address" "^5.0.2" cbor "^5.0.2" debug "^4.1.1" @@ -923,36 +726,10 @@ "@types/sinon-chai" "^3.2.3" "@types/web3" "1.0.19" -"@openzeppelin/contracts-upgradeable@^4.0.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-4.1.0.tgz#36a6113ceeda278ae14f740280e5388161dfd383" - integrity sha512-QZSvbYqNpU/x60vARhq/jghh97VWjml3NAlKfu4u1XehvpEBbHVXJyKTBSZtZY7jviG305jOczEisnN8VeOMcw== - "@openzeppelin/contracts@^4.0.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@openzeppelin/contracts/-/contracts-4.1.0.tgz#baec89a7f5f73e3d8ea582a78f1980134b605375" - integrity sha512-TihZitscnaHNcZgXGj9zDLDyCqjziytB4tMCwXq0XimfWkAjBYyk5/pOsDbbwcavhlc79HhpTEpQcrMnPVa1mw== - -"@openzeppelin/hardhat-upgrades@^1.6.0": - version "1.8.2" - resolved "https://registry.yarnpkg.com/@openzeppelin/hardhat-upgrades/-/hardhat-upgrades-1.8.2.tgz#553c116f291bf1492dfb73ed3feda079b5b400a7" - integrity sha512-G+z1WdsjBYQX4j0yPU+pM3rcmVgQNI6g3N05prxpXgAj8QhSDDisfWH2hC1XW8FLm7+dijz7FpUaEEdidpOA9Q== - dependencies: - "@openzeppelin/upgrades-core" "^1.7.3" - -"@openzeppelin/upgrades-core@^1.7.3": - version "1.7.6" - resolved "https://registry.yarnpkg.com/@openzeppelin/upgrades-core/-/upgrades-core-1.7.6.tgz#2c5e89b272aaf2164f51ca99167ffeecdab13749" - integrity sha512-xXoUJGWI2MHLtMwS2GN3PiymZ9WIj+uRAMrm8HIz0genGSIO6PwPMlmaUyq3O8/JzTMgpVV92aMcPjOkvI5SmQ== - dependencies: - bn.js "^5.1.2" - cbor "^7.0.0" - chalk "^4.1.0" - compare-versions "^3.6.0" - debug "^4.1.1" - ethereumjs-util "^7.0.3" - proper-lockfile "^4.1.1" - solidity-ast "^0.4.15" + version "4.2.0" + resolved "https://registry.yarnpkg.com/@openzeppelin/contracts/-/contracts-4.2.0.tgz#260d921d99356e48013d9d760caaa6cea35dc642" + integrity sha512-LD4NnkKpHHSMo5z9MvFsG4g1xxZUDqV3A3Futu3nvyfs4wPwXxqOgMaxOoa2PeyGL2VNeSlbxT54enbQzGcgJQ== "@resolver-engine/core@^0.3.3": version "0.3.3" @@ -1128,9 +905,9 @@ integrity sha512-KJh+EWuxmX1a17fQWS1ba8DCYcqK7UpdbqMZZwyfiv9FQfn8ZQJX17anbkCMOSU8TV3EvRuJ/vFEKGzKnpkO8g== "@types/abstract-leveldown@*": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@types/abstract-leveldown/-/abstract-leveldown-5.0.1.tgz#3c7750d0186b954c7f2d2f6acc8c3c7ba0c3412e" - integrity sha512-wYxU3kp5zItbxKmeRYCEplS2MW7DzyBnxPGj+GJVHZEUZiK/nn5Ei1sUFgURDh+X051+zsGe28iud3oHjrYWQQ== + version "5.0.2" + resolved "https://registry.yarnpkg.com/@types/abstract-leveldown/-/abstract-leveldown-5.0.2.tgz#ee81917fe38f770e29eec8139b6f16ee4a8b0a5f" + integrity sha512-+jA1XXF3jsz+Z7FcuiNqgK53hTa/luglT2TyTpKPqoYbxVY+mCPF22Rm+q3KPBrMHJwNXFrTViHszBOfU4vftQ== "@types/bn.js@*", "@types/bn.js@^5.1.0": version "5.1.0" @@ -1147,14 +924,14 @@ "@types/node" "*" "@types/chai@*", "@types/chai@^4.2.17": - version "4.2.18" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.2.18.tgz#0c8e298dbff8205e2266606c1ea5fbdba29b46e4" - integrity sha512-rS27+EkB/RE1Iz3u0XtVL5q36MGDWbgYe7zWiodyKNUnthxY0rukK5V36eiUCtCisB7NN8zKYH6DO2M37qxFEQ== + version "4.2.21" + resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.2.21.tgz#9f35a5643129df132cf3b5c1ec64046ea1af0650" + integrity sha512-yd+9qKmJxm496BOV9CMNaey8TWsikaZOwMRwPHQIjcOJM9oV+fi9ZMNw3JsVnbEEbo2gRTDnGEBv8pjyn67hNg== "@types/concat-stream@^1.6.0": - version "1.6.0" - resolved "https://registry.yarnpkg.com/@types/concat-stream/-/concat-stream-1.6.0.tgz#394dbe0bb5fee46b38d896735e8b68ef2390d00d" - integrity sha1-OU2+C7X+5Gs42JZzXoto7yOQ0A0= + version "1.6.1" + resolved "https://registry.yarnpkg.com/@types/concat-stream/-/concat-stream-1.6.1.tgz#24bcfc101ecf68e886aaedce60dfd74b632a1b74" + integrity sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA== dependencies: "@types/node" "*" @@ -1179,18 +956,18 @@ integrity sha512-/lMtoq/Cf/2DVOm6zE6ORyOM+3ZVm/BvzEZVxUhf6bgh8ZHglXlBqxbxSlJeVp8FCbD3IVvk/VbsaNmDjrQvqQ== "@types/levelup@^4.3.0": - version "4.3.2" - resolved "https://registry.yarnpkg.com/@types/levelup/-/levelup-4.3.2.tgz#a185ecc30118bd7ee48b2d8d57de566a08d24cb2" - integrity sha512-5Su1Dkl6nMjkXqUb2z72gbroG0WFLs+6nMH+wQt4GWIrDwR/IconLTojHtC0klLJODCJ64Cr6P5cWqVeuxAbSg== + version "4.3.3" + resolved "https://registry.yarnpkg.com/@types/levelup/-/levelup-4.3.3.tgz#4dc2b77db079b1cf855562ad52321aa4241b8ef4" + integrity sha512-K+OTIjJcZHVlZQN1HmU64VtrC0jC3dXWQozuEIR9zVvltIk90zaGPM2AgT+fIkChpzHhFE3YnvFLCbLtzAmexA== dependencies: "@types/abstract-leveldown" "*" "@types/level-errors" "*" "@types/node" "*" "@types/lru-cache@^5.1.0": - version "5.1.0" - resolved "https://registry.yarnpkg.com/@types/lru-cache/-/lru-cache-5.1.0.tgz#57f228f2b80c046b4a1bd5cac031f81f207f4f03" - integrity sha512-RaE0B+14ToE4l6UqdarKPnXwVDuigfFv+5j9Dze/Nqr23yyuqdNvzcZi3xB+3Agvi5R4EOgAksfv3lXX4vBt9w== + version "5.1.1" + resolved "https://registry.yarnpkg.com/@types/lru-cache/-/lru-cache-5.1.1.tgz#c48c2e27b65d2a153b19bfc1a317e30872e01eef" + integrity sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw== "@types/minimatch@*": version "3.0.5" @@ -1205,22 +982,22 @@ "@types/node" "*" "@types/mocha@^8.2.2": - version "8.2.2" - resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-8.2.2.tgz#91daa226eb8c2ff261e6a8cbf8c7304641e095e0" - integrity sha512-Lwh0lzzqT5Pqh6z61P3c3P5nm6fzQK/MMHl9UKeneAeInVflBSz1O2EkX6gM6xfJd7FBXBY5purtLx7fUiZ7Hw== + version "8.2.3" + resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-8.2.3.tgz#bbeb55fbc73f28ea6de601fbfa4613f58d785323" + integrity sha512-ekGvFhFgrc2zYQoX4JeZPmVzZxw6Dtllga7iGHzfbYIYkAMUx/sAFP2GdFpLff+vdHXu5fl7WX9AT+TtqYcsyw== "@types/node-fetch@^2.5.5": - version "2.5.10" - resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.5.10.tgz#9b4d4a0425562f9fcea70b12cb3fcdd946ca8132" - integrity sha512-IpkX0AasN44hgEad0gEF/V6EgR5n69VEqPEgnmoM8GsIGro3PowbWs4tR6IhxUTyPLpOn+fiGG6nrQhcmoCuIQ== + version "2.5.11" + resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.5.11.tgz#ce22a2e65fc8999f4dbdb7ddbbcf187d755169e4" + integrity sha512-2upCKaqVZETDRb8A2VTaRymqFBEgH8u6yr96b/u3+1uQEPDRo3mJLEiPk7vdXBHRtjwkjqzFYMJXrt0Z9QsYjQ== dependencies: "@types/node" "*" form-data "^3.0.0" "@types/node@*": - version "16.0.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.0.0.tgz#067a6c49dc7a5c2412a505628e26902ae967bf6f" - integrity sha512-TmCW5HoZ2o2/z2EYi109jLqIaPIi9y/lc2LmDCWzuCi35bcaQ+OtUh6nwBiFK7SOu25FAU5+YKdqFZUwtqGSdg== + version "16.4.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.4.0.tgz#2c219eaa3b8d1e4d04f4dd6e40bc68c7467d5272" + integrity sha512-HrJuE7Mlqcjj+00JqMWpZ3tY8w7EUd+S0U3L1+PQSWiXZbOgyQDvi+ogoUxaHApPJq5diKxYBQwA3iIlNcPqOg== "@types/node@^10.0.3": version "10.17.60" @@ -1228,14 +1005,14 @@ integrity sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw== "@types/node@^12.12.6": - version "12.20.15" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.15.tgz#10ee6a6a3f971966fddfa3f6e89ef7a73ec622df" - integrity sha512-F6S4Chv4JicJmyrwlDkxUdGNSplsQdGwp1A0AJloEVDirWdZOAiRHhovDlsFkKUrquUXhz1imJhXHsf59auyAg== + version "12.20.16" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.16.tgz#1acf34f6456208f495dac0434dd540488d17f991" + integrity sha512-6CLxw83vQf6DKqXxMPwl8qpF8I7THFZuIwLt4TnNsumxkp1VsRZWT8txQxncT/Rl2UojTsFzWgDG4FRMwafrlA== "@types/node@^15.0.1": - version "15.12.2" - resolved "https://registry.yarnpkg.com/@types/node/-/node-15.12.2.tgz#1f2b42c4be7156ff4a6f914b2fb03d05fa84e38d" - integrity sha512-zjQ69G564OCIWIOHSXyQEEDpdpGl+G348RAKY0XXy9Z5kU9Vzv1GMNnkar/ZJ8dzXB3COzD9Mo9NtRZ4xfgUww== + version "15.14.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-15.14.2.tgz#7af8ab20156586f076f4760bc1b3c5ddfffd1ff2" + integrity sha512-dvMUE/m2LbXPwlvVuzCyslTEtQ2ZwuuFClDrOQ6mp2CenCg971719PTILZ4I6bTP27xfFFc+o7x2TkLuun/MPw== "@types/node@^8.0.0": version "8.10.66" @@ -1250,14 +1027,14 @@ "@types/node" "*" "@types/prettier@^2.1.1": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.3.0.tgz#2e8332cc7363f887d32ec5496b207d26ba8052bb" - integrity sha512-hkc1DATxFLQo4VxPDpMH1gCkPpBbpOoJ/4nhuXw4n63/0R6bCpQECj4+K226UJ4JO/eJQz+1mC2I7JsWanAdQw== + version "2.3.2" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.3.2.tgz#fc8c2825e4ed2142473b4a81064e6e081463d1b3" + integrity sha512-eI5Yrz3Qv4KPUa/nSIAi0h+qX0XyewOliug5F2QAtuRg6Kjg6jfmxe1GIwoIRhZspD1A0RP8ANrPwvEXXtRFog== "@types/qs@^6.2.31", "@types/qs@^6.9.4": - version "6.9.6" - resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.6.tgz#df9c3c8b31a247ec315e6996566be3171df4b3b1" - integrity sha512-0/HnwIfW4ki2D8L8c9GVcG5I72s9jP5GSLVF0VIXDW00kmIpA6O33G7a8n59Tmh7Nz0WUC3rSb7PTY/sdW2JzA== + version "6.9.7" + resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" + integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== "@types/resolve@^0.0.8": version "0.0.8" @@ -1267,9 +1044,9 @@ "@types/node" "*" "@types/secp256k1@^4.0.1": - version "4.0.2" - resolved "https://registry.yarnpkg.com/@types/secp256k1/-/secp256k1-4.0.2.tgz#20c29a87149d980f64464e56539bf4810fdb5d1d" - integrity sha512-QMg+9v0bbNJ2peLuHRWxzmy0HRJIG6gFZNhaRSp7S3ggSbCCxiqQB2/ybvhXyhHOCequpNkrx7OavNhrWOsW0A== + version "4.0.3" + resolved "https://registry.yarnpkg.com/@types/secp256k1/-/secp256k1-4.0.3.tgz#1b8e55d8e00f08ee7220b4d59a6abe89c37a901c" + integrity sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w== dependencies: "@types/node" "*" @@ -1289,9 +1066,9 @@ "@sinonjs/fake-timers" "^7.1.0" "@types/underscore@*": - version "1.11.2" - resolved "https://registry.yarnpkg.com/@types/underscore/-/underscore-1.11.2.tgz#9441e0f6402bbcb72dbee771582fa57c5a1dedd3" - integrity sha512-Ls2ylbo7++ITrWk2Yc3G/jijwSq5V3GT0tlgVXEl2kKYXY3ImrtmTCoE2uyTWFRI5owMBriloZFWbE1SXOsE7w== + version "1.11.3" + resolved "https://registry.yarnpkg.com/@types/underscore/-/underscore-1.11.3.tgz#d6734f3741ce41b2630018c6b61c6745f6188c07" + integrity sha512-Fl1TX1dapfXyDqFg2ic9M+vlXRktcPJrc4PR7sRc7sdVrjavg/JHlbUXBt8qWWqhJrmSqg3RNAkAPRiOYw6Ahw== "@types/uuid@8.3.0": version "8.3.0" @@ -1392,9 +1169,9 @@ accepts@~1.3.7: negotiator "0.6.2" acorn-jsx@^5.0.0: - version "5.3.1" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b" - integrity sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng== + version "5.3.2" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== acorn@^6.0.7: version "6.4.2" @@ -2330,7 +2107,7 @@ bn.js@4.11.6: resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.6.tgz#53344adb14617a13f6e8dd2ce28905d1c0ba3215" integrity sha1-UzRK2xRhehP26N0s4okF0cC6MhU= -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.10.0, bn.js@^4.11.0, bn.js@^4.11.1, 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.0.0, bn.js@^4.1.0, bn.js@^4.10.0, bn.js@^4.11.0, bn.js@^4.11.1, bn.js@^4.11.6, bn.js@^4.11.8, bn.js@^4.11.9, bn.js@^4.8.0: version "4.12.0" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== @@ -2616,9 +2393,9 @@ camelcase@^6.0.0: integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== caniuse-lite@^1.0.30000844: - version "1.0.30001238" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001238.tgz#e6a8b45455c5de601718736d0242feef0ecdda15" - integrity sha512-bZGam2MxEt7YNsa2VwshqWQMwrYs5tR5WZQRYSuFxsBQunWjBuXhN4cS9nV5FFb1Z9y+DoQcQ0COyQbv6A+CKw== + version "1.0.30001245" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001245.tgz#45b941bbd833cb0fa53861ff2bae746b3c6ca5d4" + integrity sha512-768fM9j1PKXpOCKws6eTo3RHmvTUsG9UrpT4WoREFeZgJBTi4/X9g565azS/rVUGtqb8nt7FjLeF5u4kukERnA== capital-case@^1.0.4: version "1.0.4" @@ -2642,14 +2419,6 @@ cbor@^5.0.2: bignumber.js "^9.0.1" nofilter "^1.0.4" -cbor@^7.0.0: - version "7.0.5" - resolved "https://registry.yarnpkg.com/cbor/-/cbor-7.0.5.tgz#ed54cdbc19fa7352bb328d00a5393aa7ce45a10f" - integrity sha512-0aaAPgW92lLmypb9iCd22k7tSD1FbF6dps8VQzmIBKY6ych2gO09b2vo/SbaLTmezJuB8Kh88Rvpl/Uq52mNZg== - dependencies: - "@cto.af/textdecoder" "^0.0.0" - nofilter "^2.0.3" - chai@^4.3.4: version "4.3.4" resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.4.tgz#b55e655b31e1eac7099be4c08c21964fce2e6c49" @@ -2955,11 +2724,6 @@ commander@7.2.0, commander@^7.0.0: resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== -compare-versions@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.6.0.tgz#1a5689913685e5a87637b8d3ffca75514ec41d62" - integrity sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA== - component-emitter@^1.2.1: version "1.3.0" resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" @@ -3002,9 +2766,9 @@ content-type@~1.0.4: integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== convert-source-map@^1.5.1: - version "1.7.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" - integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== + 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" @@ -3185,14 +2949,14 @@ debug@3.2.6: dependencies: ms "^2.1.1" -debug@4, debug@^4.1.1: +debug@4, debug@^4.0.1, debug@^4.1.1: version "4.3.2" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== dependencies: ms "2.1.2" -debug@4.3.1, debug@^4.0.1: +debug@4.3.1: version "4.3.1" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== @@ -3448,22 +3212,9 @@ ee-first@1.1.1: integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= electron-to-chromium@^1.3.47: - version "1.3.752" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.752.tgz#0728587f1b9b970ec9ffad932496429aef750d09" - integrity sha512-2Tg+7jSl3oPxgsBsWKh5H83QazTkmWG/cnNwJplmyZc7KcN61+I10oUgaXSVk/NwfvN3BdkKDR4FYuRBQQ2v0A== - -elliptic@6.5.3: - version "6.5.3" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.3.tgz#cb59eb2efdaf73a0bd78ccd7015a62ad6e0f93d6" - integrity sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw== - 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" + version "1.3.782" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.782.tgz#522740fe6b4b5255ca754c68d9c406a17b0998e2" + integrity sha512-6AI2se1NqWA1SBf/tlD6tQD/6ZOt+yAhqmrTlh4XZw4/g0Mt3p6JhTQPZxRPxPZiOg0o7ss1EBP/CpYejfnoIA== elliptic@6.5.4, elliptic@^6.4.0, elliptic@^6.5.2, elliptic@^6.5.3: version "6.5.4" @@ -3988,7 +3739,15 @@ ethereumjs-abi@0.6.5: bn.js "^4.10.0" ethereumjs-util "^4.3.0" -ethereumjs-abi@0.6.8, ethereumjs-abi@^0.6.8, "ethereumjs-abi@git+https://github.com/ethereumjs/ethereumjs-abi.git": +ethereumjs-abi@0.6.8, ethereumjs-abi@^0.6.8: + version "0.6.8" + resolved "https://registry.yarnpkg.com/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz#71bc152db099f70e62f108b7cdfca1b362c6fcae" + integrity sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA== + dependencies: + bn.js "^4.11.8" + ethereumjs-util "^6.0.0" + +"ethereumjs-abi@git+https://github.com/ethereumjs/ethereumjs-abi.git": version "0.6.8" resolved "git+https://github.com/ethereumjs/ethereumjs-abi.git#ee3994657fa7a427238e6ba92a84d0b529bbcde0" dependencies: @@ -4127,19 +3886,7 @@ ethereumjs-util@^5.0.0, ethereumjs-util@^5.0.1, ethereumjs-util@^5.1.1, ethereum rlp "^2.0.0" safe-buffer "^5.1.1" -ethereumjs-util@^7.0.10, ethereumjs-util@^7.0.2, ethereumjs-util@^7.0.3, ethereumjs-util@^7.0.7: - version "7.0.10" - resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-7.0.10.tgz#5fb7b69fa1fda0acc59634cf39d6b0291180fc1f" - integrity sha512-c/xThw6A+EAnej5Xk5kOzFzyoSnw0WX0tSlZ6pAsfGVvQj3TItaDg9b1+Fz1RJXA+y2YksKwQnuzgt1eY6LKzw== - dependencies: - "@types/bn.js" "^5.1.0" - bn.js "^5.1.2" - create-hash "^1.1.2" - ethereum-cryptography "^0.1.3" - ethjs-util "0.1.6" - rlp "^2.2.4" - -ethereumjs-util@^7.1.0: +ethereumjs-util@^7.0.10, ethereumjs-util@^7.0.2, ethereumjs-util@^7.0.7, ethereumjs-util@^7.1.0: version "7.1.0" resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-7.1.0.tgz#e2b43a30bfcdbcb432a4eb42bd5f2393209b3fd5" integrity sha512-kR+vhu++mUDARrsMMhsjjzPduRVAeundLGXucGRHF3B4oEltOUspfgCVco4kckucj3FMlLaZHUl9n7/kdmr6Tw== @@ -4205,13 +3952,13 @@ ethereumjs-wallet@0.6.5: uuid "^3.3.2" ethers@^4.0.32, ethers@^4.0.40: - version "4.0.48" - resolved "https://registry.yarnpkg.com/ethers/-/ethers-4.0.48.tgz#330c65b8133e112b0613156e57e92d9009d8fbbe" - integrity sha512-sZD5K8H28dOrcidzx9f8KYh8083n5BexIO3+SbE4jK83L85FxtpXZBCQdXb8gkg+7sBqomcLhhkU7UHL+F7I2g== + version "4.0.49" + resolved "https://registry.yarnpkg.com/ethers/-/ethers-4.0.49.tgz#0eb0e9161a0c8b4761be547396bbe2fb121a8894" + integrity sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg== dependencies: aes-js "3.0.0" - bn.js "^4.4.0" - elliptic "6.5.3" + bn.js "^4.11.9" + elliptic "6.5.4" hash.js "1.1.3" js-sha3 "0.5.7" scrypt-js "2.0.4" @@ -4220,40 +3967,40 @@ ethers@^4.0.32, ethers@^4.0.40: xmlhttprequest "1.8.0" ethers@^5.0.0, ethers@^5.0.1, ethers@^5.0.2, ethers@^5.0.31, ethers@^5.3.0: - version "5.3.1" - resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.3.1.tgz#1f018f0aeb651576cd84fd987a45f0b99646d761" - integrity sha512-xCKmC0gsZ9gks89ZfK3B1y6LlPdvX5fxDtu9SytnpdDJR1M7pmJI+4H0AxQPMgUYr7GtQdmECLR0gWdJQ+lZYw== - dependencies: - "@ethersproject/abi" "5.3.1" - "@ethersproject/abstract-provider" "5.3.0" - "@ethersproject/abstract-signer" "5.3.0" - "@ethersproject/address" "5.3.0" - "@ethersproject/base64" "5.3.0" - "@ethersproject/basex" "5.3.0" - "@ethersproject/bignumber" "5.3.0" - "@ethersproject/bytes" "5.3.0" - "@ethersproject/constants" "5.3.0" - "@ethersproject/contracts" "5.3.0" - "@ethersproject/hash" "5.3.0" - "@ethersproject/hdnode" "5.3.0" - "@ethersproject/json-wallets" "5.3.0" - "@ethersproject/keccak256" "5.3.0" - "@ethersproject/logger" "5.3.0" - "@ethersproject/networks" "5.3.1" - "@ethersproject/pbkdf2" "5.3.0" - "@ethersproject/properties" "5.3.0" - "@ethersproject/providers" "5.3.1" - "@ethersproject/random" "5.3.0" - "@ethersproject/rlp" "5.3.0" - "@ethersproject/sha2" "5.3.0" - "@ethersproject/signing-key" "5.3.0" - "@ethersproject/solidity" "5.3.0" - "@ethersproject/strings" "5.3.0" - "@ethersproject/transactions" "5.3.0" - "@ethersproject/units" "5.3.0" - "@ethersproject/wallet" "5.3.0" - "@ethersproject/web" "5.3.0" - "@ethersproject/wordlists" "5.3.0" + version "5.4.1" + resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.4.1.tgz#bcff1e9f45bf1a061bf313ec04e8d9881d2d53f9" + integrity sha512-SrcddMdCgP1hukDvCPd87Aipbf4NWjQvdfAbZ65XSZGbfyuYPtIrUJPDH5B1SBRsdlfiEgX3eoz28DdBDzMNFg== + dependencies: + "@ethersproject/abi" "5.4.0" + "@ethersproject/abstract-provider" "5.4.0" + "@ethersproject/abstract-signer" "5.4.0" + "@ethersproject/address" "5.4.0" + "@ethersproject/base64" "5.4.0" + "@ethersproject/basex" "5.4.0" + "@ethersproject/bignumber" "5.4.0" + "@ethersproject/bytes" "5.4.0" + "@ethersproject/constants" "5.4.0" + "@ethersproject/contracts" "5.4.0" + "@ethersproject/hash" "5.4.0" + "@ethersproject/hdnode" "5.4.0" + "@ethersproject/json-wallets" "5.4.0" + "@ethersproject/keccak256" "5.4.0" + "@ethersproject/logger" "5.4.0" + "@ethersproject/networks" "5.4.1" + "@ethersproject/pbkdf2" "5.4.0" + "@ethersproject/properties" "5.4.0" + "@ethersproject/providers" "5.4.1" + "@ethersproject/random" "5.4.0" + "@ethersproject/rlp" "5.4.0" + "@ethersproject/sha2" "5.4.0" + "@ethersproject/signing-key" "5.4.0" + "@ethersproject/solidity" "5.4.0" + "@ethersproject/strings" "5.4.0" + "@ethersproject/transactions" "5.4.0" + "@ethersproject/units" "5.4.0" + "@ethersproject/wallet" "5.4.0" + "@ethersproject/web" "5.4.0" + "@ethersproject/wordlists" "5.4.0" ethjs-unit@0.1.6: version "0.1.6" @@ -5039,7 +4786,7 @@ got@^7.1.0: url-parse-lax "^1.0.0" url-to-options "^1.0.1" -graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.4: +graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0: version "4.2.6" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== @@ -5118,11 +4865,6 @@ hardhat-gas-reporter@^1.0.4: eth-gas-reporter "^0.2.20" sha1 "^1.1.1" -hardhat-typechain@^0.3.5: - version "0.3.5" - resolved "https://registry.yarnpkg.com/hardhat-typechain/-/hardhat-typechain-0.3.5.tgz#8e50616a9da348b33bd001168c8fda9c66b7b4af" - integrity sha512-w9lm8sxqTJACY+V7vijiH+NkPExnmtiQEjsV9JKD1KgMdVk2q8y+RhvU/c4B7+7b1+HylRUCxpOIvFuB3rE4+w== - hardhat@^2.2.0: version "2.4.3" resolved "https://registry.yarnpkg.com/hardhat/-/hardhat-2.4.3.tgz#093373b383eacec0d3e7fb223353b2f0cb9f2802" @@ -5293,7 +5035,7 @@ heap@0.2.6: resolved "https://registry.yarnpkg.com/heap/-/heap-0.2.6.tgz#087e1f10b046932fc8594dd9e6d378afc9d1e5ac" integrity sha1-CH4fELBGky/IWU3Z5tN4r8nR5aw= -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= @@ -5428,9 +5170,9 @@ immediate@~3.2.3: integrity sha1-0UD6j2FGWb1lQSMwl92qwlzdmRw= immutable@^4.0.0-rc.12: - version "4.0.0-rc.12" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.0.0-rc.12.tgz#ca59a7e4c19ae8d9bf74a97bdf0f6e2f2a5d0217" - integrity sha512-0M2XxkZLx/mi3t8NVwIm1g8nHoEmM9p9UBl/G9k4+hm0kBgOVdMV/B3CY5dQ8qG8qc80NN4gDV4HQv6FTJ5q7A== + version "4.0.0-rc.14" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.0.0-rc.14.tgz#29ba96631ec10867d1348515ac4e6bdba462f071" + integrity sha512-pfkvmRKJSoW7JFx0QeYlAmT+kNYvn5j0u7bnpNq4N2RCvHSTlLT208G8jgaquNe+Q8kCPHKOSpxJkyvLDpYq0w== import-fresh@^2.0.0: version "2.0.0" @@ -5607,9 +5349,9 @@ is-ci@^2.0.0: ci-info "^2.0.0" is-core-module@^2.2.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.4.0.tgz#8e9fc8e15027b011418026e98f0e6f4d86305cc1" - integrity sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A== + version "2.5.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.5.0.tgz#f754843617c70bfd29b7bd87327400cda5c18491" + integrity sha512-TXCMSDsEHMEEZ6eCA8rwRDbLu55MRGmrctljsBX/2v1d9/GzqHOxW5c5oPSgrUt2vBFXebu9rGqckXGPWOlYpg== dependencies: has "^1.0.3" @@ -6728,7 +6470,7 @@ minimalistic-assert@^1.0.0, minimalistic-assert@^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= @@ -7056,13 +6798,6 @@ nofilter@^1.0.4: resolved "https://registry.yarnpkg.com/nofilter/-/nofilter-1.0.4.tgz#78d6f4b6a613e7ced8b015cec534625f7667006e" integrity sha512-N8lidFp+fCz+TD51+haYdbDGrcBWwuHX40F5+z0qkUjMJ5Tp+rdSuAkMJ9N9eoolDlEVTf6u5icM+cNKkKW2mA== -nofilter@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/nofilter/-/nofilter-2.0.3.tgz#f5460f3cb33147005883e3f5d4476239501fa187" - integrity sha512-FbuXC+lK+GU2+63D1kC1ETiZo+Z7SIi7B+mxKTCH1byrh6WFvfBCN/wpherFz0a0bjGd7EKTst/cz0yLeNngug== - dependencies: - "@cto.af/textdecoder" "^0.0.0" - nopt@3.x: version "3.0.6" resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" @@ -7130,9 +6865,9 @@ object-copy@^0.1.0: kind-of "^3.0.3" object-inspect@^1.10.3, object-inspect@^1.9.0: - version "1.10.3" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.10.3.tgz#c2aa7d2d09f50c99375704f7a0adf24c5782d369" - integrity sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw== + version "1.11.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.11.0.tgz#9dceb146cedd4148a0d9e51ab88d34cf509922b1" + integrity sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg== object-inspect@~1.7.0: version "1.7.0" @@ -7612,9 +7347,9 @@ prettier@^1.14.3: integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== prettier@^2.1.2: - version "2.3.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.3.1.tgz#76903c3f8c4449bc9ac597acefa24dc5ad4cbea6" - integrity sha512-p+vNbgpLjif/+D+DwAZAbndtRrR0md0MwfmOVN9N+2RgyACMT+7tfaRnT+WDPkqnuVwleyuBIG2XBxKDme3hPA== + version "2.3.2" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.3.2.tgz#ef280a05ec253712e486233db5c6f23441e7342d" + integrity sha512-lnJzDfJ66zkMy58OL5/NY5zp70S7Nz6KqcKkXYzn2tMVrNxvbqaBpg7H3qHaLxCJ5lNMsGuM8+ohS7cZrthdLQ== printj@~1.1.0: version "1.1.2" @@ -7656,15 +7391,6 @@ promise@^8.0.0: dependencies: asap "~2.0.6" -proper-lockfile@^4.1.1: - version "4.1.2" - resolved "https://registry.yarnpkg.com/proper-lockfile/-/proper-lockfile-4.1.2.tgz#c8b9de2af6b2f1601067f98e01ac66baa223141f" - integrity sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA== - dependencies: - graceful-fs "^4.2.4" - retry "^0.12.0" - signal-exit "^3.0.2" - proxy-addr@~2.0.5: version "2.0.7" resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" @@ -8179,11 +7905,6 @@ ret@~0.1.10: resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== -retry@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" - integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= - reusify@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" @@ -8491,8 +8212,8 @@ shebang-regex@^1.0.0: integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= shelljs@^0.8.3: - version "0.8.3" - resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.3.tgz#de7684feeb767f8716b326078a8a00875890e3c2" + version "0.8.4" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.4.tgz#de7684feeb767f8716b326078a8a00875890e3c2" integrity sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ== dependencies: glob "^7.0.0" @@ -8641,11 +8362,6 @@ solhint@^2.0.0: optionalDependencies: prettier "^1.14.3" -solidity-ast@^0.4.15: - version "0.4.25" - resolved "https://registry.yarnpkg.com/solidity-ast/-/solidity-ast-0.4.25.tgz#1e0dc3d6024e69c29698c49d74e5ee9421fe426d" - integrity sha512-8IpweS/vgHEpKvY4l0sfr3EsHk+JFIzRWqq/0JefRjzP/Wyi2xZYfx8aHlJ9kcEn2M2RCQK9PexuZ+scaa83OQ== - solidity-coverage@donguks/solidity-coverage: version "0.7.16" resolved "https://codeload.github.com/donguks/solidity-coverage/tar.gz/490145c984c7b3bcc9519ea139d48b1f7627d0f9" @@ -9424,12 +9140,7 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -typescript@^4.2.4: - version "4.3.4" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.3.4.tgz#3f85b986945bcf31071decdd96cf8bfa65f9dcbc" - integrity sha512-uauPG7XZn9F/mo+7MrsRjyvbxFpzemRjKEZXS4AK83oP2KKOJPvb+9cO/gmnv8arWZvhnjVOXz7B49m1l0e9Ew== - -typescript@^4.3.4: +typescript@^4.2.4, typescript@^4.3.4: version "4.3.5" resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.3.5.tgz#4d1c37cc16e893973c45a06886b7113234f119f4" integrity sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA== @@ -10143,7 +9854,7 @@ web3-utils@1.2.11: underscore "1.9.1" utf8 "3.0.0" -web3-utils@1.4.0, web3-utils@^1.3.0: +web3-utils@1.4.0, web3-utils@^1.0.0-beta.31, web3-utils@^1.3.0: version "1.4.0" resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.4.0.tgz#e8cb381c81b242dc1d4ecb397200356d404410e6" integrity sha512-b8mEhwh/J928Xk+SQFjtqrR2EGPhpknWLcIt9aCpVPVRXiqjUGo/kpOHKz0azu9c6/onEJ9tWXZt0cVjmH0N5Q== @@ -10157,20 +9868,6 @@ web3-utils@1.4.0, web3-utils@^1.3.0: underscore "1.12.1" utf8 "3.0.0" -web3-utils@^1.0.0-beta.31: - version "1.3.6" - resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.3.6.tgz#390bc9fa3a7179746963cfaca55bb80ac4d8dc10" - integrity sha512-hHatFaQpkQgjGVER17gNx8u1qMyaXFZtM0y0XLGH1bzsjMPlkMPLRcYOrZ00rOPfTEuYFOdrpGOqZXVmGrMZRg== - dependencies: - bn.js "^4.11.9" - eth-lib "0.2.8" - ethereum-bloom-filters "^1.0.6" - ethjs-unit "0.1.6" - number-to-bn "1.7.0" - randombytes "^2.1.0" - underscore "1.12.1" - utf8 "3.0.0" - web3@1.2.11: version "1.2.11" resolved "https://registry.yarnpkg.com/web3/-/web3-1.2.11.tgz#50f458b2e8b11aa37302071c170ed61cff332975" @@ -10361,9 +10058,9 @@ ws@^5.1.1: async-limiter "~1.0.0" ws@^7.4.6: - version "7.5.2" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.2.tgz#09cc8fea3bec1bc5ed44ef51b42f945be36900f6" - integrity sha512-lkF7AWRicoB9mAgjeKbGqVUekLnSNO4VjKVnuPHpQeOxZOErX6BPXwJk70nFslRCEEA8EVW7ZjKwXaP9N+1sKQ== + version "7.5.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.3.tgz#160835b63c7d97bfab418fc1b8a9fced2ac01a74" + integrity sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg== xhr-request-promise@^0.1.2: version "0.1.3" @@ -10471,9 +10168,9 @@ yargs-parser@^2.4.1: lodash.assign "^4.0.6" yargs-parser@^20.2.2: - version "20.2.7" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.7.tgz#61df85c113edfb5a7a4e36eb8aa60ef423cbc90a" - integrity sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw== + 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-unparser@1.6.0: version "1.6.0" From 4a0d106700193e948c8649c43c088c223715e3e4 Mon Sep 17 00:00:00 2001 From: jaebok Date: Wed, 21 Jul 2021 23:31:07 +0900 Subject: [PATCH 07/10] 21 to 22 --- data/assetBond/mainnet/prugio.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/data/assetBond/mainnet/prugio.ts b/data/assetBond/mainnet/prugio.ts index b843d9a..e8e5059 100644 --- a/data/assetBond/mainnet/prugio.ts +++ b/data/assetBond/mainnet/prugio.ts @@ -27,9 +27,9 @@ export const data: AssetBondSettleData = { debtCeiling: ethers.utils.parseEther('338556'), couponRate: toRate(0.1), delinquencyRate: toRate(0.03), - loanDuration: BigNumber.from(88), + loanDuration: BigNumber.from(87), loanStartTimeYear: BigNumber.from(2021), loanStartTimeMonth: BigNumber.from(7), - loanStartTimeDay: BigNumber.from(21), + loanStartTimeDay: BigNumber.from(22), ipfsHash: 'test', }; From 5e32d072401bdd5da5a62640cd7acf232b3e18f6 Mon Sep 17 00:00:00 2001 From: jaebok Date: Wed, 21 Jul 2021 23:54:32 +0900 Subject: [PATCH 08/10] add borrow task script --- tasks/mainnet/moneyPool.ts | 100 +++++++++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 tasks/mainnet/moneyPool.ts diff --git a/tasks/mainnet/moneyPool.ts b/tasks/mainnet/moneyPool.ts new file mode 100644 index 0000000..3e6e06b --- /dev/null +++ b/tasks/mainnet/moneyPool.ts @@ -0,0 +1,100 @@ +import { task } from 'hardhat/config'; +import { getConnector, getMoneyPool, getTokenizer } from '../../utils/getDeployedContracts'; +import { HardhatRuntimeEnvironment } from 'hardhat/types'; +import { Connector, MoneyPool, Tokenizer } from '../../typechain'; +import { getCSP } from '../../utils/getWallets'; +import AssetBondSettleData from '../../test/types/AssetBondSettleData'; +import { BigNumber, ethers, Wallet } from 'ethers'; +import AssetBondState from '../../test/types/AssetBondState'; +import { getDai } from '../../utils/getDependencies'; + +interface Args { + data: string; +} + +const checkAssetBondFileData = (assetBondData: AssetBondSettleData) => { + if (assetBondData.tokenId.toString().length != ethers.constants.MaxUint256.toString().length) { + throw new Error('Invalid file data'); + } +}; + +const checkCollateralServiceProvider = async ({ + connector, + txSender, +}: { + connector: Connector; + txSender: Wallet; +}) => { + const isCollateralServiceProvider = await connector.isCollateralServiceProvider(txSender.address); + if (!isCollateralServiceProvider) { + throw new Error(`${txSender.address} has not collateral service provider role`); + } +}; + +const checkApproved = async ({ + tokenId, + moneyPool, + tokenizer, +}: { + tokenId: BigNumber; + moneyPool: MoneyPool; + tokenizer: Tokenizer; +}) => { + const isApproved = (await tokenizer.getApproved(tokenId)) == moneyPool.address; + if (!isApproved) { + throw new Error(`The token has not been approved`); + } +}; + +const checkTokenState = async ({ + tokenId, + tokenizer, +}: { + tokenId: BigNumber; + tokenizer: Tokenizer; +}) => { + const contractAssetBondData = await tokenizer.getAssetBondData(tokenId); + if (contractAssetBondData.state != AssetBondState.CONFIRMED) { + throw new Error(`The token has not been confirmed`); + } +}; + +task('mainnet:borrow', 'Borrow asset bond') + .addParam('data', 'The asset bond from saved production data') + .setAction(async (args: Args, hre: HardhatRuntimeEnvironment) => { + const collateralServiceProvider = await getCSP(hre); + + const tokenizer = (await getTokenizer(hre)) as Tokenizer; + const connector = (await getConnector(hre)) as Connector; + const moneyPool = (await getMoneyPool(hre)) as MoneyPool; + const underlyingAsset = await getDai(hre); + + const assetBondData = require(`../../data/assetBond/mainnet/${args.data}`) + .data as AssetBondSettleData; + + checkAssetBondFileData(assetBondData); + + await checkCollateralServiceProvider({ + connector: connector, + txSender: collateralServiceProvider, + }); + + await checkTokenState({ + tokenId: assetBondData.tokenId, + tokenizer: tokenizer, + }); + + await checkApproved({ + tokenId: assetBondData.tokenId, + moneyPool: moneyPool, + tokenizer: tokenizer, + }); + + const borrowTx = await moneyPool + .connect(collateralServiceProvider) + .borrow(underlyingAsset.address, assetBondData.tokenId); + + await borrowTx.wait(); + + console.log(`The signer signs on asset token which da is "${args.data}"`); + }); From 25b2e9b90f8bd10cca80eae39917cb15dce60a4f Mon Sep 17 00:00:00 2001 From: jaebok Date: Mon, 2 Aug 2021 11:26:37 +0900 Subject: [PATCH 09/10] edit readme --- README.md | 40 ++++++++++++++++++++++++---------------- 1 file changed, 24 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index c20550b..04a2c15 100644 --- a/README.md +++ b/README.md @@ -6,11 +6,18 @@ This repository contains the smart contracts source code and markets configurati ELYFI is adding real estate to the DEFI concept. This is the expansion of the current crypto-to-crypto applications as ELYFI will introduce traditional assets to the open financial market. -To implment the project, We use same DEFI concepts like Index Model, Kinked Rates Model and Tokenization of Aave protocol +- [The Elyfi documents](https://elyfi-docs.elysia.land/v/eng/), describing what is elyfi and how it works +- For using the elyfi, [The Elyfi dapp](https://elyfi.elysia.land/) -## Setup +## Community -- Create an file named .env and fill the next enviroment variables +You can join at the [telegram](https://t.me/elysia_official) or [kakaotalk](https://open.kakao.com/o/gUpSOwkb) for asking questions about protocol. + +The forum for the elyfi will be completed soon. You can join and participate fully in the running of the elyfi protocol with the governance. + +## Installation + +- Set up .env file in the project directory and add the following environment variables: ``` # Secret key for deploying contracts @@ -24,9 +31,23 @@ ETHERSCAN_API_KEY= - Install dependencies with `yarn` +## Deploy + +``` +## Deploy local network +yarn deploy:local + +## Deploy test network +yarn deploy:testnet + +## Deploy main network +yarn deploy:mainnet +``` + ## Test For convenience, we assume that waffle's wallets are mapped in order of [deployer, account1, account2, account3 ...] +You can run test with below scripts ``` # Run specific test code @@ -46,16 +67,3 @@ yarn task createWithdraw --network ganache --asset ASSET_ADDRESS --pool POOL_ADD yarn coverage open ./coverage/index.html ``` - -## Deploy - -``` -## Deploy local network -yarn deploy:local - -## Deploy test network -yarn deploy:testnet - -## Deploy main network -yarn deploy:mainnet -``` From 00c47e4cac2fee56f68d221e7d7102dfa037e791 Mon Sep 17 00:00:00 2001 From: jaebok Date: Mon, 23 Aug 2021 14:08:01 +0900 Subject: [PATCH 10/10] edit config --- hardhat.config.tasks.ts | 8 -------- hardhat.config.ts | 20 -------------------- test/utils/Helpers.ts | 4 ++-- 3 files changed, 2 insertions(+), 30 deletions(-) diff --git a/hardhat.config.tasks.ts b/hardhat.config.tasks.ts index 0154e77..c5bc246 100644 --- a/hardhat.config.tasks.ts +++ b/hardhat.config.tasks.ts @@ -45,14 +45,6 @@ const config: HardhatUserConfig = { }, chainId: 42, }, - binanceTestnet: { - url: 'https://data-seed-prebsc-1-s1.binance.org:8545', - chainId: 97, - gasPrice: 20000000000, - accounts: { - mnemonic: process.env.TEST_MNEMONIC || testMnemonic, - }, - }, ganache: { url: 'http://0.0.0.0:8545', }, diff --git a/hardhat.config.ts b/hardhat.config.ts index 14b0e4a..219ea35 100644 --- a/hardhat.config.ts +++ b/hardhat.config.ts @@ -55,20 +55,6 @@ const config: HardhatUserConfig = { }, chainId: 42, }, - binanceTestnet: { - url: 'https://data-seed-prebsc-1-s1.binance.org:8545', - chainId: 97, - gasPrice: 20000000000, - accounts: { - mnemonic: process.env.TEST_MNEMONIC || testMnemonic, - }, - }, - binanceMainnet: { - url: 'https://bsc-dataseed.binance.org/', - chainId: 56, - gasPrice: 20000000000, - accounts: [process.env.ADMIN || ''], - }, ganache: { url: 'http://0.0.0.0:8545', }, @@ -88,12 +74,6 @@ const config: HardhatUserConfig = { showTimeSpent: true, }, }, - abiExporter: { - path: './data/abi', - clear: true, - flat: true, - spacing: 2, - }, }; export default config; diff --git a/test/utils/Helpers.ts b/test/utils/Helpers.ts index 1afe99e..25dcd3b 100644 --- a/test/utils/Helpers.ts +++ b/test/utils/Helpers.ts @@ -85,11 +85,11 @@ export async function getAssetBondData({ tokenId: BigNumber; }): Promise { const assetBondData = {}; - const contractAssetBondStateData = await dataPipeline.deployAssetBondStateData( + const contractAssetBondStateData = await dataPipeline.getAssetBondStateData( underlyingAsset.address, tokenId ); - const contractAssetBondData = await tokenizer.deployAssetBondData(tokenId); + const contractAssetBondData = await tokenizer.getAssetBondData(tokenId); return { ...assetBondData,