From 61675d262e3c4ee35467069980caeb8cc06b54be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Renaud?= Date: Tue, 5 Mar 2024 16:20:17 +0100 Subject: [PATCH] chore(smart-contracts): cleanup tests from remains of Truffle (#13365) * refactor hook tests * some more hooks * udt tests * add note to clean that up * fix some more tests * more fixes * parse multiple signatures correctly * remove truffle fixture from main deployment task * all deployed locks are ethers * all deployed ERC20 are ethers * refactor behaviors tests * fix erc721 tests * remove BigNumber.js balance helper * fix some more balance helpers * deploy all locks using truffle by default * some more changes in Unlock tests * refactor gas tests * keyManager tests * fix all permissions scripts * cleanup some mroe * fix a bunch more * fix more tests * fix tests again * behaviors fixes * skip grant tokens test by default * use qualified path * skip grant tokens test entirely * fix tokenURI test * actually no need to skip * remove truffle from hardhat config - replace all `contract(` by `describe(` * remove outdated OZ test helpers * fix remaining artifacts/accounts patterns * literal import of `assert` * bunch of fixes * cleanup package.json * one last test * delete unsued file * skip grant tokens on coverage (missing baseFee) --- smart-contracts/.eslintrc.js | 4 - .../contracts/interfaces/IPublicLock.sol | 14 +- smart-contracts/hardhat.config.js | 1 - smart-contracts/package.json | 13 +- .../test/CardPurchaser/purchase.mainnet.js | 2 +- smart-contracts/test/KeyManager/lockmsiths.js | 29 +- smart-contracts/test/KeyManager/owner.js | 15 +- smart-contracts/test/KeyManager/transfer.js | 34 +- smart-contracts/test/KeyManager/upgrades.js | 4 +- smart-contracts/test/Lock/Lock.js | 27 +- .../test/Lock/behaviors/directTips.js | 1 + smart-contracts/test/Lock/behaviors/hooks.js | 25 + .../test/Lock/behaviors/lockBehaviors.js | 39 - smart-contracts/test/Lock/burn.js | 67 +- smart-contracts/test/Lock/cancelAndRefund.js | 97 +- smart-contracts/test/Lock/convenienceOwner.js | 13 +- .../test/Lock/createLockWithInfiniteKeys.js | 53 +- smart-contracts/test/Lock/disableTransfers.js | 60 +- smart-contracts/test/Lock/erc165.js | 3 +- smart-contracts/test/Lock/erc20.js | 229 +- smart-contracts/test/Lock/erc721/approve.js | 66 +- .../test/Lock/erc721/approveForAll.js | 157 +- smart-contracts/test/Lock/erc721/balanceOf.js | 74 +- .../test/Lock/erc721/compliance.js | 3 +- .../test/Lock/erc721/enumerable.js | 12 +- .../test/Lock/erc721/getApproved.js | 2 +- smart-contracts/test/Lock/erc721/ownerOf.js | 22 +- .../test/Lock/erc721/safeTransferFrom.js | 85 +- smart-contracts/test/Lock/erc721/tokenName.js | 58 +- .../test/Lock/erc721/tokenSymbol.js | 39 +- smart-contracts/test/Lock/erc721/tokenURI.js | 53 +- .../test/Lock/erc721/transferFrom.js | 277 +- .../test/Lock/erc721/uniqueTokenIds.js | 30 +- .../test/Lock/expirationDuration.js | 4 +- .../test/Lock/expireAndRefundFor.js | 20 +- smart-contracts/test/Lock/extend.js | 2 +- smart-contracts/test/Lock/extendRenewable.js | 77 +- smart-contracts/test/Lock/freeTrial.js | 38 +- smart-contracts/test/Lock/gas.js | 16 +- smart-contracts/test/Lock/gasRefund.js | 419 +- smart-contracts/test/Lock/getHasValidKey.js | 51 +- .../test/Lock/grantKeyExtension.js | 94 +- smart-contracts/test/Lock/grantKeys.js | 106 +- .../test/Lock/hooks/DiscountCodeHook.js | 1 + .../test/Lock/hooks/erc1155BalanceOfHook.js | 3 +- .../test/Lock/hooks/erc20BalanceOfHook.js | 90 +- .../test/Lock/hooks/erc721BalanceOfHook.js | 3 +- smart-contracts/test/Lock/initializers.js | 3 +- smart-contracts/test/Lock/interface.js | 2 +- smart-contracts/test/Lock/isRenewable.js | 66 +- smart-contracts/test/Lock/isValidKey.js | 30 +- smart-contracts/test/Lock/lendKey.js | 287 +- .../test/Lock/maxKeysPerAddress.js | 48 +- smart-contracts/test/Lock/maxNumberOfKeys.js | 4 +- smart-contracts/test/Lock/mergeKeys.js | 149 +- smart-contracts/test/Lock/nonExpiring.js | 23 +- smart-contracts/test/Lock/onKeyCancelHook.js | 73 +- smart-contracts/test/Lock/onKeyExtendHook.js | 20 +- smart-contracts/test/Lock/onKeyGrantHook.js | 61 +- .../test/Lock/onKeyPurchaseHook.js | 235 +- .../test/Lock/onKeyTransferHook.js | 116 +- smart-contracts/test/Lock/onTokenURIHook.js | 68 +- smart-contracts/test/Lock/onValidKeyHook.js | 67 +- smart-contracts/test/Lock/owners.js | 98 +- .../test/Lock/permissions/isKeyManager.js | 61 +- .../test/Lock/permissions/keyGranter.js | 64 +- .../test/Lock/permissions/keyManager.js | 182 +- .../test/Lock/permissions/setKeyManager.js | 115 +- smart-contracts/test/Lock/purchaseFor.js | 139 +- smart-contracts/test/Lock/purchaseForFrom.js | 29 +- smart-contracts/test/Lock/purchaseMultiple.js | 44 +- smart-contracts/test/Lock/purchaseTip.js | 89 +- .../test/Lock/purchaseWithoutUnlock.js | 5 +- .../test/Lock/renewMembershipFor.js | 10 +- smart-contracts/test/Lock/setKeyExpiration.js | 2 +- smart-contracts/test/Lock/setLockMetadata.js | 16 +- smart-contracts/test/Lock/setReferrerFee.js | 434 +- smart-contracts/test/Lock/shareKey.js | 2 +- smart-contracts/test/Lock/soldOut.js | 2 +- smart-contracts/test/Lock/timeMachine.js | 3 +- smart-contracts/test/Lock/totalKeys.js | 42 +- smart-contracts/test/Lock/transferFee.js | 9 +- smart-contracts/test/Lock/unlendKey.js | 45 +- smart-contracts/test/Lock/updateKeyPricing.js | 169 +- smart-contracts/test/Lock/updateLockConfig.js | 55 +- smart-contracts/test/Lock/upgrades/v10.js | 1 + smart-contracts/test/Lock/upgrades/v11.js | 1 + smart-contracts/test/Lock/upgrades/v12.js | 1 + smart-contracts/test/Lock/upgrades/v13.js | 1 + smart-contracts/test/Lock/upgrades/v14.js | 1 + smart-contracts/test/Lock/withdraw.js | 110 +- .../test/LockSerializer/_compareValues.js | 1 + .../test/LockSerializer/serialize.js | 3 +- .../uniswapOracleV3.mainnet.js | 4 +- .../test/Unlock/addLockTemplate.js | 2 +- smart-contracts/test/Unlock/behaviors.js | 101 + .../test/Unlock/behaviors/UnlockProxy.js | 41 - .../test/Unlock/behaviors/createLock.js | 64 - .../test/Unlock/behaviors/initialization.js | 32 - .../test/Unlock/behaviors/shared.js | 9 - .../test/Unlock/createLockAtVersion.js | 7 +- .../test/Unlock/createLockLegacy.js | 21 +- smart-contracts/test/Unlock/gas.js | 21 +- smart-contracts/test/Unlock/getAdmin.js | 3 +- smart-contracts/test/Unlock/initializers.js | 6 +- smart-contracts/test/Unlock/interface.js | 2 +- smart-contracts/test/Unlock/lockTotalSales.js | 3 +- .../test/Unlock/migrateLockData/v10.js | 1 + smart-contracts/test/Unlock/protocolFee.js | 27 +- smart-contracts/test/Unlock/proxyAdmin.js | 3 +- smart-contracts/test/Unlock/receive.js | 11 +- .../test/Unlock/resetTrackedValue.js | 30 +- .../test/Unlock/setLockTemplate.js | 5 +- smart-contracts/test/Unlock/swapAndBurn.js | 5 +- .../test/Unlock/uniswapValue.mainnet.js | 3 +- smart-contracts/test/Unlock/unlockConfig.js | 21 +- smart-contracts/test/Unlock/upgradeLock.js | 1 + smart-contracts/test/Unlock/upgrades.js | 8 +- .../test/Unlock/upgrades.mainnet.js | 2 +- .../UnlockDiscountToken.js | 104 +- .../test/UnlockDiscountToken/governance.js | 72 +- .../test/UnlockDiscountToken/governor.js | 24 +- .../test/UnlockDiscountToken/grantTokens.js | 179 +- .../test/UnlockDiscountToken/upgrades.js | 10 +- .../UnlockDiscountToken/upgrades.mainnet.js | 7 +- .../swapAndCall.mainnet.js | 1 + .../test/UnlockSwapPurchaser/withdraw.js | 4 +- smart-contracts/test/fixtures/deploy.js | 7 +- smart-contracts/test/helpers/balance.js | 22 +- smart-contracts/test/helpers/bigNumber.js | 5 +- smart-contracts/test/helpers/deployLocks.js | 59 +- smart-contracts/test/helpers/errors.js | 22 +- smart-contracts/test/helpers/events.js | 1 + .../test/helpers/getTokenBalance.js | 29 - smart-contracts/test/helpers/time.js | 38 +- smart-contracts/test/helpers/tokens.js | 10 +- smart-contracts/test/helpers/uniswapV2.js | 4 +- smart-contracts/test/mainnet/udt.js | 19 +- tests/package.json | 2 +- yarn.lock | 12105 +++++++--------- 140 files changed, 8723 insertions(+), 9952 deletions(-) create mode 100644 smart-contracts/test/Lock/behaviors/hooks.js delete mode 100644 smart-contracts/test/Lock/behaviors/lockBehaviors.js create mode 100644 smart-contracts/test/Unlock/behaviors.js delete mode 100644 smart-contracts/test/Unlock/behaviors/UnlockProxy.js delete mode 100644 smart-contracts/test/Unlock/behaviors/createLock.js delete mode 100644 smart-contracts/test/Unlock/behaviors/initialization.js delete mode 100644 smart-contracts/test/Unlock/behaviors/shared.js delete mode 100644 smart-contracts/test/helpers/getTokenBalance.js diff --git a/smart-contracts/.eslintrc.js b/smart-contracts/.eslintrc.js index 3f3e0157e74..befc53988b2 100755 --- a/smart-contracts/.eslintrc.js +++ b/smart-contracts/.eslintrc.js @@ -20,13 +20,9 @@ module.exports = { extends: ['@unlock-protocol/eslint-config'], globals: { it: true, - artifacts: true, - contract: true, describe: true, before: true, beforeEach: true, - web3: true, - assert: true, abi: true, after: true, afterEach: true, diff --git a/smart-contracts/contracts/interfaces/IPublicLock.sol b/smart-contracts/contracts/interfaces/IPublicLock.sol index 2ede92204d2..66a8d43e905 100644 --- a/smart-contracts/contracts/interfaces/IPublicLock.sol +++ b/smart-contracts/contracts/interfaces/IPublicLock.sol @@ -464,6 +464,13 @@ interface IPublicLock { */ function safeTransferFrom(address from, address to, uint256 tokenId) external; + function safeTransferFrom( + address from, + address to, + uint256 tokenId, + bytes calldata data + ) external; + /** * an ERC721-like function to transfer a token from one account to another. * @param from the owner of token to transfer @@ -527,13 +534,6 @@ interface IPublicLock { address _operator ) external view returns (bool); - function safeTransferFrom( - address from, - address to, - uint256 tokenId, - bytes calldata data - ) external; - /** * Returns the total number of keys, including non-valid ones * @return _totalKeysCreated the total number of keys, valid or not diff --git a/smart-contracts/hardhat.config.js b/smart-contracts/hardhat.config.js index dc5482f87f5..ed52cbb661d 100644 --- a/smart-contracts/hardhat.config.js +++ b/smart-contracts/hardhat.config.js @@ -6,7 +6,6 @@ const { } = require('@unlock-protocol/hardhat-helpers') require('@nomiclabs/hardhat-ethers') -require('@nomiclabs/hardhat-truffle5') // full stack trace if needed require('hardhat-tracer') diff --git a/smart-contracts/package.json b/smart-contracts/package.json index 1835038bc6e..4078c209ade 100644 --- a/smart-contracts/package.json +++ b/smart-contracts/package.json @@ -11,13 +11,10 @@ "@connext/interfaces": "2.0.5", "@nomiclabs/hardhat-ethers": "2.2.3", "@nomiclabs/hardhat-etherscan": "3.1.8", - "@nomiclabs/hardhat-truffle5": "2.0.7", "@nomiclabs/hardhat-waffle": "2.0.6", - "@nomiclabs/hardhat-web3": "2.0.0", "@openzeppelin/contracts": "4.9.5", "@openzeppelin/contracts-upgradeable": "4.9.5", "@openzeppelin/hardhat-upgrades": "1.28.0", - "@openzeppelin/test-helpers": "0.5.16", "@openzeppelin/upgrades-core": "1.27.3", "@safe-global/safe-core-sdk": "3.3.5", "@safe-global/safe-ethers-lib": "1.9.3", @@ -33,11 +30,9 @@ "@unlock-protocol/networks": "workspace:./packages/networks", "babel-polyfill": "6.26.0", "babel-register": "6.26.0", - "bignumber.js": "9.1.2", - "debug": "4.3.4", + "chai": "4.3.10", "eslint": "8.46.0", "eth-gas-reporter": "0.2.27", - "eth-sig-util": "3.0.1", "ethers": "5.7.2", "fs-extra": "11.1.1", "hardhat": "2.20.1", @@ -46,18 +41,12 @@ "hardhat-gas-reporter": "1.0.10", "hardhat-storage-layout": "0.1.7", "hardhat-tracer": "2.8.0", - "hardlydifficult-eth": "1.1.4", - "hardlydifficult-ethereum-contracts": "0.11.1", "prettier": "3.0.0", "prettier-plugin-solidity": "1.1.3", - "prompt": "1.3.0", "solhint": "4.0.0", "solidity-coverage": "0.8.6", "yesno": "0.4.0" }, - "devDependencies": { - "chai": "4.3.10" - }, "scripts": { "test": "hardhat test", "clean": "rm -rf artifacts", diff --git a/smart-contracts/test/CardPurchaser/purchase.mainnet.js b/smart-contracts/test/CardPurchaser/purchase.mainnet.js index b3b68dc43e3..bae0aedc295 100644 --- a/smart-contracts/test/CardPurchaser/purchase.mainnet.js +++ b/smart-contracts/test/CardPurchaser/purchase.mainnet.js @@ -106,7 +106,7 @@ const signLockPurchase = async ({ return { signature, message, domain, types } } -describe(`purchase`, function () { +describe(`CardPurchaser / purchase (mainnet only)`, function () { let chainId, unlock, cardPurchaser, signer, lock, unlockAddress before(async function () { if (!process.env.RUN_FORK) { diff --git a/smart-contracts/test/KeyManager/lockmsiths.js b/smart-contracts/test/KeyManager/lockmsiths.js index 206db491714..daa879d7f50 100644 --- a/smart-contracts/test/KeyManager/lockmsiths.js +++ b/smart-contracts/test/KeyManager/lockmsiths.js @@ -3,41 +3,42 @@ const { setup } = require('./setup') const { ethers } = require('hardhat') const { reverts } = require('../helpers') -let keyManager +let keyManager, someAccount -contract('KeyManager / locksmiths', (accounts) => { +describe('KeyManager / locksmiths', () => { beforeEach(async () => { + ;[, , , { address: someAccount }] = await ethers.getSigners() ;[keyManager] = await setup() }) it('should let the owner add signer', async () => { - expect(await keyManager.locksmiths(accounts[1])).to.equal(false) - await keyManager.addLocksmith(accounts[1]) - expect(await keyManager.locksmiths(accounts[1])).to.equal(true) + expect(await keyManager.locksmiths(someAccount)).to.equal(false) + await keyManager.addLocksmith(someAccount) + expect(await keyManager.locksmiths(someAccount)).to.equal(true) }) it('should not let someone who is not owner add a signer', async () => { const [, newOwner] = await ethers.getSigners() - expect(await keyManager.locksmiths(accounts[1])).to.equal(false) + expect(await keyManager.locksmiths(someAccount)).to.equal(false) await reverts( keyManager.connect(newOwner).addLocksmith(newOwner.address), `Ownable: caller is not the owner` ) - expect(await keyManager.locksmiths(accounts[1])).to.equal(false) + expect(await keyManager.locksmiths(someAccount)).to.equal(false) }) it('should let the owner remove signer', async () => { - await keyManager.addLocksmith(accounts[1]) - expect(await keyManager.locksmiths(accounts[1])).to.equal(true) - await keyManager.removeLocksmith(accounts[1]) - expect(await keyManager.locksmiths(accounts[1])).to.equal(false) + await keyManager.addLocksmith(someAccount) + expect(await keyManager.locksmiths(someAccount)).to.equal(true) + await keyManager.removeLocksmith(someAccount) + expect(await keyManager.locksmiths(someAccount)).to.equal(false) }) it('should not let someone who is not owner remove a signer', async () => { - await keyManager.addLocksmith(accounts[1]) - expect(await keyManager.locksmiths(accounts[1])).to.equal(true) + await keyManager.addLocksmith(someAccount) + expect(await keyManager.locksmiths(someAccount)).to.equal(true) const [, newOwner] = await ethers.getSigners() await reverts( @@ -45,6 +46,6 @@ contract('KeyManager / locksmiths', (accounts) => { `Ownable: caller is not the owner` ) - expect(await keyManager.locksmiths(accounts[1])).to.equal(true) + expect(await keyManager.locksmiths(someAccount)).to.equal(true) }) }) diff --git a/smart-contracts/test/KeyManager/owner.js b/smart-contracts/test/KeyManager/owner.js index 5f29db63457..d61a4b7e758 100644 --- a/smart-contracts/test/KeyManager/owner.js +++ b/smart-contracts/test/KeyManager/owner.js @@ -3,32 +3,33 @@ const { ethers } = require('hardhat') const { setup } = require('./setup') const { reverts } = require('../helpers') -let keyManager +let keyManager, keyReceiver, firstAccount -contract('KeyManager / Ownable', (accounts) => { +describe('KeyManager / Ownable', () => { beforeEach(async () => { + ;[firstAccount, keyReceiver] = await ethers.getSigners() ;[keyManager] = await setup() }) it('should be owned by the owner', async () => { const owner = await keyManager.owner() - expect(owner).to.equal(accounts[0]) + expect(owner).to.equal(firstAccount.address) }) it('should be transferable by the owner to a new owner', async () => { - await keyManager.transferOwnership(accounts[1]) - expect(await keyManager.owner()).to.equal(accounts[1]) + await keyManager.transferOwnership(keyReceiver.address) + expect(await keyManager.owner()).to.equal(keyReceiver.address) }) it('should not be transferable by someone who is not an owner', async () => { const [, newOwner] = await ethers.getSigners() - expect(await keyManager.owner()).to.equal(accounts[0]) + expect(await keyManager.owner()).to.equal(firstAccount.address) await reverts( keyManager.connect(newOwner).transferOwnership(newOwner.address), `Ownable: caller is not the owner` ) - expect(await keyManager.owner()).to.equal(accounts[0]) + expect(await keyManager.owner()).to.equal(firstAccount.address) }) }) diff --git a/smart-contracts/test/KeyManager/transfer.js b/smart-contracts/test/KeyManager/transfer.js index 4e4eed36064..51b376a6a8c 100644 --- a/smart-contracts/test/KeyManager/transfer.js +++ b/smart-contracts/test/KeyManager/transfer.js @@ -1,9 +1,10 @@ const { ethers } = require('hardhat') const { setup } = require('./setup') const { reverts } = require('../helpers') +const { assert } = require('chai') let lock -let keyManager +let keyManager, locksmith, grantee, attacker, realUser const OneMonthFromNow = Math.floor(new Date().getTime() / 1000) + 60 * 60 * 24 * 30 const OneDayAgo = Math.floor(new Date().getTime() / 1000) - 60 * 60 * 24 @@ -18,12 +19,17 @@ const types = { { name: 'deadline', type: 'uint256' }, ], } -contract('KeyManager', ([, locksmith, grantee, attacker, realUser]) => { +describe('KeyManager', () => { beforeEach(async () => { ;[keyManager, lock] = await setup() + ;[, locksmith, grantee, attacker, realUser] = await ethers.getSigners() // Let's now aidrop a key to an address and set the keyManager as... keyManager! - await keyManager.addLocksmith(locksmith) - await lock.grantKeys([grantee], [OneMonthFromNow], [keyManager.address]) + await keyManager.addLocksmith(locksmith.address) + await lock.grantKeys( + [grantee.address], + [OneMonthFromNow], + [keyManager.address] + ) const { chainId } = await ethers.provider.getNetwork() domain = { name: 'KeyManager', @@ -37,10 +43,10 @@ contract('KeyManager', ([, locksmith, grantee, attacker, realUser]) => { const transfer = { lock: lock.address, token: 1, - owner: grantee, + owner: grantee.address, deadline: OneDayAgo, } - const locksmithSigner = await ethers.getSigner(locksmith) + const locksmithSigner = await ethers.getSigner(locksmith.address) const signature = await locksmithSigner._signTypedData( domain, types, @@ -62,10 +68,10 @@ contract('KeyManager', ([, locksmith, grantee, attacker, realUser]) => { const transfer = { lock: lock.address, token: 1, - owner: grantee, + owner: grantee.address, deadline: OneHourFromNow, } - const attackerSigner = await ethers.getSigner(attacker) + const attackerSigner = await ethers.getSigner(attacker.address) const signature = await attackerSigner._signTypedData( domain, types, @@ -87,11 +93,11 @@ contract('KeyManager', ([, locksmith, grantee, attacker, realUser]) => { const transfer = { lock: lock.address, token: 1, - owner: grantee, + owner: grantee.address, deadline: OneHourFromNow, } - assert.notEqual(await lock.ownerOf(1), realUser) - const locksmithSigner = await ethers.getSigner(locksmith) + assert.notEqual(await lock.ownerOf(1), realUser.address) + const locksmithSigner = await ethers.getSigner(locksmith.address) const signature = await locksmithSigner._signTypedData( domain, types, @@ -99,9 +105,9 @@ contract('KeyManager', ([, locksmith, grantee, attacker, realUser]) => { ) assert.equal( ethers.utils.verifyTypedData(domain, types, transfer, signature), - locksmith + locksmith.address ) - const realUserSigner = await ethers.getSigner(realUser) + const realUserSigner = await ethers.getSigner(realUser.address) await keyManager .connect(realUserSigner) .transfer( @@ -111,7 +117,7 @@ contract('KeyManager', ([, locksmith, grantee, attacker, realUser]) => { transfer.deadline, signature ) - assert.equal(await lock.ownerOf(1), realUser) + assert.equal(await lock.ownerOf(1), realUser.address) assert.equal(await lock.keyManagerOf(1), keyManager.address) }) }) diff --git a/smart-contracts/test/KeyManager/upgrades.js b/smart-contracts/test/KeyManager/upgrades.js index b57e2eb0794..f6c744cef93 100644 --- a/smart-contracts/test/KeyManager/upgrades.js +++ b/smart-contracts/test/KeyManager/upgrades.js @@ -4,7 +4,7 @@ const { reverts } = require('../helpers') let proxy -contract('KeyManager', (accounts) => { +describe('KeyManager', () => { beforeEach(async () => { // deploy proxy const KeyManager = await ethers.getContractFactory('KeyManager') @@ -27,7 +27,7 @@ contract('KeyManager', (accounts) => { }) it('should not be upgradable by an attacker', async () => { - const attacker = await ethers.getSigner(accounts[3]) + const [, , , attacker] = await ethers.getSigners() const KeyManagerV2 = await ethers.getContractFactory( 'KeyManagerV2', attacker diff --git a/smart-contracts/test/Lock/Lock.js b/smart-contracts/test/Lock/Lock.js index 40c290f673a..769d5823dfa 100644 --- a/smart-contracts/test/Lock/Lock.js +++ b/smart-contracts/test/Lock/Lock.js @@ -1,12 +1,12 @@ -const BigNumber = require('bignumber.js') +const { assert } = require('chai') const { ethers } = require('hardhat') -const { reverts, deployLock } = require('../helpers') +const { reverts, deployLock, compareBigNumbers } = require('../helpers') const erc777abi = require('@unlock-protocol/hardhat-helpers/dist/ABIs/erc777.json') let lock -contract('Lock / Lock', (accounts) => { +describe('Lock / Lock', () => { before(async () => { lock = await deployLock() }) @@ -25,23 +25,16 @@ contract('Lock / Lock', (accounts) => { lock.totalSupply(), lock.numberOfOwners(), ]) - expirationDuration = new BigNumber(expirationDuration) - maxNumberOfKeys = new BigNumber(maxNumberOfKeys) - totalSupply = new BigNumber(totalSupply) - numberOfOwners = new BigNumber(numberOfOwners) - assert.equal(expirationDuration.toFixed(), 60 * 60 * 24 * 30) - assert.strictEqual( - ethers.utils.formatUnits(ethers.BigNumber.from(keyPrice.toString())), - '0.01' - ) - assert.equal(maxNumberOfKeys.toFixed(), 10) - assert.equal(totalSupply.toFixed(), 0) - assert.equal(numberOfOwners.toFixed(), 0) + compareBigNumbers(expirationDuration, 60 * 60 * 24 * 30) + assert.strictEqual(ethers.utils.formatUnits(keyPrice.toString()), '0.01') + compareBigNumbers(maxNumberOfKeys, 10) + compareBigNumbers(totalSupply, 0) + compareBigNumbers(numberOfOwners, 0) }) it('Should fail on unknown calls', async () => { - const [, recipient] = accounts + const [, recipient] = await ethers.getSigners() const mock777 = await ethers.getContractAt(erc777abi, lock.address) - await reverts(mock777.send(recipient, 1, '0x')) + await reverts(mock777.send(recipient.address, 1, '0x')) }) }) diff --git a/smart-contracts/test/Lock/behaviors/directTips.js b/smart-contracts/test/Lock/behaviors/directTips.js index f0ed8e7a72a..2bacbb0871e 100644 --- a/smart-contracts/test/Lock/behaviors/directTips.js +++ b/smart-contracts/test/Lock/behaviors/directTips.js @@ -1,3 +1,4 @@ +const { assert } = require('chai') const { ethers } = require('hardhat') const { ADDRESS_ZERO } = require('../../helpers') const { getBalance } = require('../../helpers') diff --git a/smart-contracts/test/Lock/behaviors/hooks.js b/smart-contracts/test/Lock/behaviors/hooks.js new file mode 100644 index 00000000000..02f512d045f --- /dev/null +++ b/smart-contracts/test/Lock/behaviors/hooks.js @@ -0,0 +1,25 @@ +const { assert } = require('chai') +const { ethers } = require('hardhat') +const { ADDRESS_ZERO } = require('@unlock-protocol/hardhat-helpers') +const { reverts } = require('../../helpers') + +const emitHookUpdatedEvent = ({ events, hookName, hookAddress }) => { + const { args } = events.find(({ event }) => event === 'EventHooksUpdated') + Object.keys(args) + .filter((h) => isNaN(parseInt(h))) // remove array indexes from keys + .map((h) => { + assert.equal(args[h], h === hookName ? hookAddress : ADDRESS_ZERO) + }) +} + +const canNotSetNonContractAddress = async ({ lock, index }) => { + const [, , , signer] = await ethers.getSigners() + const args = Array(7).fill(ADDRESS_ZERO) + args[index] = signer.address + await reverts(lock.setEventHooks(...args), `INVALID_HOOK(${index})`) +} + +module.exports = { + emitHookUpdatedEvent, + canNotSetNonContractAddress, +} diff --git a/smart-contracts/test/Lock/behaviors/lockBehaviors.js b/smart-contracts/test/Lock/behaviors/lockBehaviors.js deleted file mode 100644 index 040ef932713..00000000000 --- a/smart-contracts/test/Lock/behaviors/lockBehaviors.js +++ /dev/null @@ -1,39 +0,0 @@ -// The test run will repeat for each of these lock fixtures individually -const lockTypes = ['FIRST', 'ERC20', 'FREE'] - -const { deployERC20, deployAllLocks } = require('../../helpers') - -contract('Lock / lockBehaviors', (accounts) => { - beforeEach(async () => { - this.accounts = accounts - - this.testToken = await deployERC20(accounts[0]) - // Mint some tokens for testing - for (let i = 0; i < accounts.length; i++) { - await this.testToken.mint(accounts[i], '1000000000000000000', { - from: accounts[0], - }) - } - - this.locks = await deployAllLocks(accounts[0], this.testToken.address) - }) - - lockTypes.forEach((lockType) => { - describe(`Test lock fixture: '${lockType}'`, () => { - beforeEach(async () => { - this.lock = this.locks[lockType] - - // approve spending (ignored if the test pass does not use ERC-20) - for (let i = 0; i < accounts.length; i++) { - await this.testToken.approve( - this.lock.address, - await this.lock.keyPrice(), - { - from: accounts[i], - } - ) - } - }) - }) - }) -}) diff --git a/smart-contracts/test/Lock/burn.js b/smart-contracts/test/Lock/burn.js index b84bb3d4c76..2c65c963612 100644 --- a/smart-contracts/test/Lock/burn.js +++ b/smart-contracts/test/Lock/burn.js @@ -1,60 +1,70 @@ -const { reverts } = require('../helpers/errors') -const { ADDRESS_ZERO, purchaseKey, deployLock } = require('../helpers') +const { ethers } = require('hardhat') const { assert } = require('chai') -contract('Lock / burn', (accounts) => { - let keyOwner = accounts[1] +const { reverts } = require('../helpers/errors') +const { + ADDRESS_ZERO, + purchaseKey, + deployLock, + compareBigNumbers, +} = require('../helpers') + +describe('Lock / burn', () => { + let keyOwner let lock let tokenId before(async () => { + ;[, keyOwner] = await ethers.getSigners() lock = await deployLock() }) beforeEach(async () => { - ;({ tokenId } = await purchaseKey(lock, keyOwner)) + ;({ tokenId } = await purchaseKey(lock, keyOwner.address)) }) it('should delete ownership record', async () => { - assert.equal(await lock.getHasValidKey(keyOwner), true) - assert.equal(await lock.ownerOf(tokenId), keyOwner) - await lock.burn(tokenId, { from: keyOwner }) - assert.equal(await lock.getHasValidKey(keyOwner), false) + assert.equal(await lock.getHasValidKey(keyOwner.address), true) + assert.equal(await lock.ownerOf(tokenId), keyOwner.address) + await lock.connect(keyOwner).burn(tokenId) + assert.equal(await lock.getHasValidKey(keyOwner.address), false) assert.equal(await lock.ownerOf(tokenId), ADDRESS_ZERO) }) it('emit a transfer event', async () => { - const tx = await lock.burn(tokenId, { from: keyOwner }) - const { args } = tx.logs.find((v) => v.event === 'Transfer') - assert.equal(args.tokenId.toNumber(), tokenId.toNumber()) + const tx = await lock.connect(keyOwner).burn(tokenId) + const { events } = await tx.wait() + const { args } = events.find((v) => v.event === 'Transfer') + compareBigNumbers(args.tokenId, tokenId) assert.equal(args.to, ADDRESS_ZERO) - assert.equal(args.from, keyOwner) + assert.equal(args.from, keyOwner.address) }) it('allow key manager to burn a key', async () => { - await lock.setKeyManagerOf(tokenId, accounts[9], { from: keyOwner }) - assert.equal(await lock.getHasValidKey(keyOwner), true) - assert.equal(await lock.ownerOf(tokenId), keyOwner) - await lock.burn(tokenId, { from: accounts[9] }) - assert.equal(await lock.getHasValidKey(keyOwner), false) + const [, , keyManager] = await ethers.getSigners() + await lock.connect(keyOwner).setKeyManagerOf(tokenId, keyManager.address) + assert.equal(await lock.getHasValidKey(keyOwner.address), true) + assert.equal(await lock.ownerOf(tokenId), keyOwner.address) + await lock.connect(keyManager).burn(tokenId) + assert.equal(await lock.getHasValidKey(keyOwner.address), false) assert.equal(await lock.ownerOf(tokenId), ADDRESS_ZERO) }) it('balance is updated correctly', async () => { - assert.equal((await lock.balanceOf(keyOwner)).toNumber(), 1) - assert.equal( - (await lock.tokenOfOwnerByIndex(keyOwner, 0)).toNumber(), + compareBigNumbers(await lock.balanceOf(keyOwner.address), 1) + compareBigNumbers( + await lock.tokenOfOwnerByIndex(keyOwner.address, 0), tokenId.toNumber() ) - await lock.burn(tokenId, { from: keyOwner }) - assert.equal((await lock.balanceOf(keyOwner)).toNumber(), 0) - await reverts(lock.tokenOfOwnerByIndex(keyOwner, 0), 'OUT_OF_RANGE') + await lock.connect(keyOwner).burn(tokenId) + compareBigNumbers(await lock.balanceOf(keyOwner.address), 0) + await reverts(lock.tokenOfOwnerByIndex(keyOwner.address, 0), 'OUT_OF_RANGE') }) it('totalSupply is decreased', async () => { - const totalSupply = (await lock.totalSupply()).toNumber() - await lock.burn(tokenId, { from: keyOwner }) - assert.equal(await lock.totalSupply(), totalSupply - 1) + const totalSupply = await lock.totalSupply() + await lock.connect(keyOwner).burn(tokenId) + compareBigNumbers(await lock.totalSupply(), totalSupply.sub(1)) }) it('should work only on existing keys', async () => { @@ -62,8 +72,9 @@ contract('Lock / burn', (accounts) => { }) it('should be callable only by owner', async () => { + const [, , random] = await ethers.getSigners() await reverts( - lock.burn(tokenId, { from: accounts[5] }), + lock.connect(random).burn(tokenId), 'ONLY_KEY_MANAGER_OR_APPROVED' ) }) diff --git a/smart-contracts/test/Lock/cancelAndRefund.js b/smart-contracts/test/Lock/cancelAndRefund.js index 29059b3d35b..1179d0c6577 100644 --- a/smart-contracts/test/Lock/cancelAndRefund.js +++ b/smart-contracts/test/Lock/cancelAndRefund.js @@ -1,33 +1,36 @@ const { ethers } = require('hardhat') +const { assert } = require('chai') const { ADDRESS_ZERO, deployLock, deployERC20, - getBalanceEthers, - purchaseKeys, + getBalance, + purchaseKey, reverts, } = require('../helpers') let token -let tokenIds +let tokenId, anotherTokenId const BASIS_POINTS = ethers.BigNumber.from(`10000`) -contract('Lock / cancelAndRefund', (accounts) => { +describe('Lock / cancelAndRefund', () => { let lock let lockFree - let lockCreator - let keyOwners + let lockCreator, keyOwner, anotherKeyOwner, receiver, attacker const keyPrice = ethers.utils.parseUnits('0.01', 'ether') before(async () => { - let signers - ;[lockCreator, ...signers] = await ethers.getSigners() - keyOwners = signers.splice(0, 5) - token = await deployERC20(lockCreator, true) + ;[lockCreator, keyOwner, anotherKeyOwner, receiver, attacker] = + await ethers.getSigners() + token = await deployERC20(lockCreator.address, true) await token.mint(lockCreator.address, 100) - lock = await deployLock({ isEthers: true }) - ;({ tokenIds } = await purchaseKeys(lock, keyOwners.length)) + lock = await deployLock() + ;({ tokenId } = await purchaseKey(lock, keyOwner.address)) + ;({ tokenId: anotherTokenId } = await purchaseKey( + lock, + anotherKeyOwner.address + )) }) describe('refunds', () => { @@ -37,13 +40,13 @@ contract('Lock / cancelAndRefund', (accounts) => { }) it('the amount of refund should be less than the original keyPrice when purchased normally', async () => { - const estimatedRefund = await lock.getCancelAndRefundValue(tokenIds[0]) + const estimatedRefund = await lock.getCancelAndRefundValue(tokenId) assert(estimatedRefund.lt(keyPrice.toString())) }) it('the amount of refund should be less than the original keyPrice when expiration is very far in the future', async () => { const tx = await lock.grantKeys( - [accounts[5]], + [receiver.address], [999999999999], [ADDRESS_ZERO] ) @@ -54,22 +57,20 @@ contract('Lock / cancelAndRefund', (accounts) => { }) it('should refund in the new token after token address is changed', async () => { - console.log(keyOwners.length) - // Confirm user has a key paid in eth - assert.equal(await lock.getHasValidKey(keyOwners[4].address), true) + assert.equal(await lock.getHasValidKey(anotherKeyOwner.address), true) assert.equal(await lock.tokenAddress(), 0) // check user's token balance - assert.equal(await token.balanceOf(keyOwners[4].address), 0) + assert.equal(await token.balanceOf(anotherKeyOwner.address), 0) // update token address and price await lock.updateKeyPricing(11, token.address) // fund lock with new erc20 tokens to deal enable refunds await token.mint(lock.address, 100) assert.equal(await token.balanceOf(lock.address), 100) // cancel and refund - await lock.connect(keyOwners[4]).cancelAndRefund(tokenIds[4]) + await lock.connect(anotherKeyOwner).cancelAndRefund(anotherTokenId) // check user's token balance - assert((await token.balanceOf(keyOwners[4].address)) > 0) + assert((await token.balanceOf(anotherKeyOwner.address)) > 0) }) }) @@ -82,11 +83,11 @@ contract('Lock / cancelAndRefund', (accounts) => { let txFee before(async () => { - initialLockBalance = await getBalanceEthers(lock.address) - initialKeyOwnerBalance = await getBalanceEthers(keyOwners[0].address) - estimatedRefund = await lock.getCancelAndRefundValue(tokenIds[0]) + initialLockBalance = await getBalance(lock.address) + initialKeyOwnerBalance = await getBalance(keyOwner.address) + estimatedRefund = await lock.getCancelAndRefundValue(tokenId) - const tx = await lock.connect(keyOwners[0]).cancelAndRefund(tokenIds[0]) + const tx = await lock.connect(keyOwner).cancelAndRefund(tokenId) // get event const { events, gasUsed } = await tx.wait() @@ -94,7 +95,7 @@ contract('Lock / cancelAndRefund', (accounts) => { event, args: { refund }, } = events.find(({ event }) => event === 'CancelKey')) - const lockBalance = await getBalanceEthers(lock.address) + const lockBalance = await getBalance(lock.address) withdrawalAmount = lockBalance.sub(initialLockBalance) // estimate tx gas cost @@ -118,16 +119,16 @@ contract('Lock / cancelAndRefund', (accounts) => { }) it('should make the key no longer valid (i.e. expired)', async () => { - const isValid = await lock.getHasValidKey(keyOwners[0].address) + const isValid = await lock.getHasValidKey(keyOwner.address) assert.equal(isValid, false) }) it('should retain ownership info', async () => { - assert.equal(await lock.ownerOf(tokenIds[0]), keyOwners[0].address) + assert.equal(await lock.ownerOf(tokenId), keyOwner.address) }) it("should increase the owner's balance with the amount of funds withdrawn from the lock", async () => { - const finalOwnerBalance = await getBalanceEthers(keyOwners[0].address) + const finalOwnerBalance = await getBalance(keyOwner.address) assert( finalOwnerBalance.toString(), initialKeyOwnerBalance.add(withdrawalAmount).sub(txFee).toString() @@ -137,16 +138,13 @@ contract('Lock / cancelAndRefund', (accounts) => { describe('free keys', () => { before(async () => { - lockFree = await deployLock({ name: 'FREE', isEthers: true }) + lockFree = await deployLock({ name: 'FREE' }) }) it('the estimated refund for a free Key should be 0', async () => { const tx = await lockFree.grantKeys( - [accounts[5]], + [receiver.address], [999999999999], - [ADDRESS_ZERO], - { - from: accounts[0], - } + [ADDRESS_ZERO] ) const { events } = await tx.wait() const { args } = events.find((v) => v.event === 'Transfer') @@ -158,7 +156,7 @@ contract('Lock / cancelAndRefund', (accounts) => { it('can cancel a free key', async () => { const tx = await lockFree.grantKeys( - [keyOwners[1].address], + [receiver.address], [999999999999], [ADDRESS_ZERO] ) @@ -177,7 +175,7 @@ contract('Lock / cancelAndRefund', (accounts) => { it('approved user can cancel a free key', async () => { const tx = await lockFree.grantKeys( - [keyOwners[1].address], + [receiver.address], [999999999999], [ADDRESS_ZERO] ) @@ -186,13 +184,9 @@ contract('Lock / cancelAndRefund', (accounts) => { const { args: { tokenId }, } = events.find((v) => v.event === 'Transfer') - await lockFree - .connect(keyOwners[1]) - .approve(keyOwners[4].address, tokenId) + await lockFree.connect(receiver).approve(anotherKeyOwner.address, tokenId) console.log('haha') - const txCancel = await lockFree - .connect(keyOwners[4]) - .cancelAndRefund(tokenId) + const txCancel = await lockFree.connect(receiver).cancelAndRefund(tokenId) const { events: cancelEvents } = await txCancel.wait() const { args: cancelArgs } = cancelEvents.find( (ev) => ev.event === 'CancelKey' @@ -205,6 +199,8 @@ contract('Lock / cancelAndRefund', (accounts) => { let tx before(async () => { + lock = await deployLock() + ;({ tokenId } = await purchaseKey(lock, keyOwner.address)) tx = await lock.updateRefundPenalty(0, 2000) // 20% }) @@ -222,7 +218,7 @@ contract('Lock / cancelAndRefund', (accounts) => { }) it('should still allow refund', async () => { - const tx = await lock.connect(keyOwners[2]).cancelAndRefund(tokenIds[2]) + const tx = await lock.connect(keyOwner).cancelAndRefund(tokenId) const { events } = await tx.wait() const { args } = events.find((v) => v.event === 'CancelKey') assert(args.refund.gt(0)) @@ -234,22 +230,23 @@ contract('Lock / cancelAndRefund', (accounts) => { await lock .connect(lockCreator) .withdraw(await lock.tokenAddress(), lockCreator.address, 0) - await reverts(lock.connect(keyOwners[1]).cancelAndRefund(tokenIds[3]), '') + await reverts( + lock.connect(anotherKeyOwner).cancelAndRefund(anotherTokenId), + '' + ) }) it('non-managers should fail to update the fee', async () => { await reverts( - lock.connect(keyOwners[3]).updateRefundPenalty(0, 0), + lock.connect(attacker).updateRefundPenalty(0, 0), 'ONLY_LOCK_MANAGER' ) }) it('the key is expired', async () => { - await lock.connect(lockCreator).expireAndRefundFor(tokenIds[3], 0) - await reverts( - lock.connect(keyOwners[3]).cancelAndRefund(tokenIds[3]), - 'KEY_NOT_VALID' - ) + const { tokenId } = await purchaseKey(lock, keyOwner.address) + await lock.expireAndRefundFor(tokenId, 0) + await reverts(lock.cancelAndRefund(tokenId), 'KEY_NOT_VALID') }) it('the key does not exist', async () => { diff --git a/smart-contracts/test/Lock/convenienceOwner.js b/smart-contracts/test/Lock/convenienceOwner.js index cf94175c08c..e054538d070 100644 --- a/smart-contracts/test/Lock/convenienceOwner.js +++ b/smart-contracts/test/Lock/convenienceOwner.js @@ -1,5 +1,6 @@ +const { assert } = require('chai') const { ethers } = require('hardhat') -const { expectRevert } = require('@openzeppelin/test-helpers') +const { reverts } = require('../helpers') const deployContracts = require('../fixtures/deploy') const { @@ -9,14 +10,14 @@ const { const keyPrice = ethers.utils.parseEther('0.01') -contract('Lock / mimick owner()', () => { +describe('Lock / mimick owner()', () => { let lock let deployer beforeEach(async () => { ;[deployer] = await ethers.getSigners() - const { unlockEthers: unlock } = await deployContracts() + const { unlock } = await deployContracts() // create a new lock const tokenAddress = ADDRESS_ZERO @@ -47,18 +48,18 @@ contract('Lock / mimick owner()', () => { assert.equal(await lock.owner(), wallet.address) }) it('should revert on address zero', async () => { - await expectRevert( + await reverts( lock.connect(deployer).setOwner(ADDRESS_ZERO), 'OWNER_CANT_BE_ADDRESS_ZERO' ) }) it('should revert if not lock manager', async () => { const [, notManager, anotherAddress] = await ethers.getSigners() - await expectRevert( + await reverts( lock.connect(notManager).setOwner(notManager.address), 'ONLY_LOCK_MANAGER' ) - await expectRevert( + await reverts( lock.connect(notManager).setOwner(anotherAddress.address), 'ONLY_LOCK_MANAGER' ) diff --git a/smart-contracts/test/Lock/createLockWithInfiniteKeys.js b/smart-contracts/test/Lock/createLockWithInfiniteKeys.js index e75da7b9c50..9edc16965c1 100644 --- a/smart-contracts/test/Lock/createLockWithInfiniteKeys.js +++ b/smart-contracts/test/Lock/createLockWithInfiniteKeys.js @@ -1,19 +1,22 @@ +const { assert } = require('chai') const { ethers } = require('hardhat') -const BigNumber = require('bignumber.js') -const { ADDRESS_ZERO, MAX_UINT, deployContracts } = require('../helpers') -const PublicLock = artifacts.require('PublicLock') +const { + ADDRESS_ZERO, + MAX_UINT, + deployContracts, + compareBigNumbers, +} = require('../helpers') const { createLockCalldata } = require('@unlock-protocol/hardhat-helpers') let unlock -contract('Lock / createLockWithInfiniteKeys', () => { +describe('Lock / createLockWithInfiniteKeys', () => { before(async () => { ;({ unlock } = await deployContracts()) }) describe('Create a Lock with infinite keys', () => { - let transaction - before(async () => { + it('should have created the lock with an infinite number of keys', async () => { const args = [ 60 * 60 * 24 * 30, // expirationDuration: 30 days ADDRESS_ZERO, // token address @@ -22,24 +25,19 @@ contract('Lock / createLockWithInfiniteKeys', () => { 'Infinite Keys Lock', // name ] const calldata = await createLockCalldata({ args }) - transaction = await unlock.createUpgradeableLock(calldata) - }) - - it('should have created the lock with an infinite number of keys', async () => { - let publicLock = await PublicLock.at( - transaction.logs[0].args.newLockAddress - ) - const maxNumberOfKeys = new BigNumber(await publicLock.maxNumberOfKeys()) - assert.equal( - maxNumberOfKeys.toFixed(), - new BigNumber(2).pow(256).minus(1).toFixed() - ) + const tx = await unlock.createUpgradeableLock(calldata) + const { events } = await tx.wait() + const { + args: { newLockAddress }, + } = events.find(({ event }) => event === 'NewLock') + let publicLock = await ethers.getContractAt('PublicLock', newLockAddress) + const maxNumberOfKeys = await publicLock.maxNumberOfKeys() + assert.equal(maxNumberOfKeys.toString(), MAX_UINT) }) }) describe('Create a Lock with 0 keys', () => { - let transaction - before(async () => { + it('should have created the lock with 0 keys', async () => { const args = [ 60 * 60 * 24 * 30, // expirationDuration: 30 days ADDRESS_ZERO, @@ -49,15 +47,14 @@ contract('Lock / createLockWithInfiniteKeys', () => { // '0x000000000000000000000001', ] const calldata = await createLockCalldata({ args }) - transaction = await unlock.createUpgradeableLock(calldata) - }) + const tx = await unlock.createUpgradeableLock(calldata) - it('should have created the lock with 0 keys', async () => { - let publicLock = await PublicLock.at( - transaction.logs[0].args.newLockAddress - ) - const maxNumberOfKeys = new BigNumber(await publicLock.maxNumberOfKeys()) - assert.equal(maxNumberOfKeys.toFixed(), 0) + const { events } = await tx.wait() + const { + args: { newLockAddress }, + } = events.find(({ event }) => event === 'NewLock') + let publicLock = await ethers.getContractAt('PublicLock', newLockAddress) + compareBigNumbers(await publicLock.maxNumberOfKeys(), 0) }) }) }) diff --git a/smart-contracts/test/Lock/disableTransfers.js b/smart-contracts/test/Lock/disableTransfers.js index 6cc64dc73c3..a07ff1c3349 100644 --- a/smart-contracts/test/Lock/disableTransfers.js +++ b/smart-contracts/test/Lock/disableTransfers.js @@ -1,16 +1,17 @@ -const BigNumber = require('bignumber.js') +const { assert } = require('chai') +const { ethers } = require('hardhat') const { purchaseKey, reverts, deployLock } = require('../helpers') -contract('Lock / disableTransfers', (accounts) => { +describe('Lock / disableTransfers', () => { let lock let tokenId - const keyOwner = accounts[1] - const accountWithNoKey = accounts[2] - const oneDay = new BigNumber(60 * 60 * 24) + let keyOwner, accountWithNoKey + const oneDay = 60 * 60 * 24 before(async () => { + ;[, keyOwner, accountWithNoKey] = await ethers.getSigners() lock = await deployLock() - ;({ tokenId } = await purchaseKey(lock, keyOwner)) + ;({ tokenId } = await purchaseKey(lock, keyOwner.address)) // Change the fee to 100% await lock.updateTransferFee(10000) @@ -20,21 +21,21 @@ contract('Lock / disableTransfers', (accounts) => { describe('disabling transferFrom', () => { it('should prevent key transfers by reverting', async () => { // check owner has a key - assert.equal(await lock.getHasValidKey(keyOwner), true) + assert.equal(await lock.getHasValidKey(keyOwner.address), true) // try to transfer it await reverts( - lock.transferFrom(keyOwner, accountWithNoKey, tokenId, { - from: keyOwner, - }), + lock + .connect(keyOwner) + .transferFrom(keyOwner.address, accountWithNoKey.address, tokenId), 'KEY_TRANSFERS_DISABLED' ) // check owner still has a key - assert.equal(await lock.getHasValidKey(keyOwner), true) + assert.equal(await lock.getHasValidKey(keyOwner.address), true) // check recipient never received a key assert.equal( - await lock.keyExpirationTimestampFor(accountWithNoKey, { - from: accountWithNoKey, - }), + await lock + .connect(accountWithNoKey) + .keyExpirationTimestampFor(accountWithNoKey.address), 0 ) }) @@ -42,10 +43,9 @@ contract('Lock / disableTransfers', (accounts) => { describe('disabling setApprovalForAll', () => { it('should prevent user from setting setApprovalForAll', async () => { + const [, , , , random] = await ethers.getSigners() await reverts( - lock.setApprovalForAll(accounts[8], true, { - from: keyOwner, - }), + lock.connect(keyOwner).setApprovalForAll(random.address, true), 'KEY_TRANSFERS_DISABLED' ) }) @@ -54,21 +54,19 @@ contract('Lock / disableTransfers', (accounts) => { describe('disabling shareKey', () => { it('should prevent key sharing by reverting', async () => { // check owner has a key - assert.equal(await lock.getHasValidKey(keyOwner), true) + assert.equal(await lock.getHasValidKey(keyOwner.address), true) // try to share it await reverts( - lock.shareKey(accountWithNoKey, tokenId, oneDay, { - from: keyOwner, - }), + lock + .connect(keyOwner) + .shareKey(accountWithNoKey.address, tokenId, oneDay), 'KEY_TRANSFERS_DISABLED' ) // check owner still has a key - assert.equal(await lock.getHasValidKey(keyOwner), true) + assert.equal(await lock.getHasValidKey(keyOwner.address), true) // check recipient never received a key assert.equal( - await lock.keyExpirationTimestampFor(accountWithNoKey, { - from: accountWithNoKey, - }), + await lock.keyExpirationTimestampFor(accountWithNoKey.address), 0 ) }) @@ -80,14 +78,14 @@ contract('Lock / disableTransfers', (accounts) => { // Change the fee to 99% await lock.updateTransferFee(1000) // check owner has a key - assert.equal(await lock.getHasValidKey(keyOwner), true) - assert.equal(await lock.getHasValidKey(accountWithNoKey), false) + assert.equal(await lock.getHasValidKey(keyOwner.address), true) + assert.equal(await lock.getHasValidKey(accountWithNoKey.address), false) // attempt a transfer - await lock.transferFrom(keyOwner, accountWithNoKey, tokenId, { - from: keyOwner, - }) + await lock + .connect(keyOwner) + .transferFrom(keyOwner.address, accountWithNoKey.address, tokenId) // check that recipient received a key - assert.equal(await lock.getHasValidKey(accountWithNoKey), true) + assert.equal(await lock.getHasValidKey(accountWithNoKey.address), true) }) }) }) diff --git a/smart-contracts/test/Lock/erc165.js b/smart-contracts/test/Lock/erc165.js index 784db82cb15..7adc478ea3e 100644 --- a/smart-contracts/test/Lock/erc165.js +++ b/smart-contracts/test/Lock/erc165.js @@ -1,6 +1,7 @@ +const { assert } = require('chai') const { deployLock } = require('../helpers') -contract('Lock / erc165', () => { +describe('Lock / erc165', () => { let lock before(async () => { lock = await deployLock() diff --git a/smart-contracts/test/Lock/erc20.js b/smart-contracts/test/Lock/erc20.js index 596623f3f26..196f0f98cdf 100644 --- a/smart-contracts/test/Lock/erc20.js +++ b/smart-contracts/test/Lock/erc20.js @@ -1,210 +1,181 @@ -const BigNumber = require('bignumber.js') +const { assert } = require('chai') +const { ethers } = require('hardhat') const { deployLock, deployERC20, - ADDRESS_ZERO, - MAX_UINT, + reverts, purchaseKey, + compareBigNumbers, } = require('../helpers') -const TestNoop = artifacts.require('TestNoop.sol') +const { ADDRESS_ZERO, MAX_UINT } = require('@unlock-protocol/hardhat-helpers') -contract('Lock / erc20', (accounts) => { +describe('Lock / erc20', () => { let token let lock + let lockManager, deployer, keyOwner, keyOwner2, keyOwner3, random beforeEach(async () => { - token = await deployERC20(accounts[0]) + ;[lockManager, deployer, keyOwner, keyOwner2, keyOwner3, random] = + await ethers.getSigners() + token = await deployERC20(deployer, true) // Mint some tokens so that the totalSupply is greater than 0 - await token.mint(accounts[0], 1, { - from: accounts[0], - }) - lock = await deployLock({ tokenAddress: token.address }) + await token.connect(deployer).mint(deployer.address, 1) + lock = await deployLock({ tokenAddress: token.address, isEthers: true }) }) describe('creating ERC20 priced locks', () => { let keyPrice let refundAmount - const [, keyOwner, keyOwner2, keyOwner3] = accounts - const defaultBalance = new BigNumber(100000000000000000) + + const defaultBalance = ethers.BigNumber.from('100000000000000000') beforeEach(async () => { // Pre-req - assert.equal(await token.balanceOf(keyOwner), 0) + assert.equal(await token.balanceOf(keyOwner.address), 0) assert.equal(await token.balanceOf(lock.address), 0) // Mint some tokens for testing - await token.mint(keyOwner, defaultBalance, { - from: accounts[0], - }) - await token.mint(keyOwner2, defaultBalance, { - from: accounts[0], - }) - await token.mint(keyOwner3, defaultBalance, { - from: accounts[0], - }) + await token.connect(deployer).mint(keyOwner.address, defaultBalance) + await token.connect(deployer).mint(keyOwner2.address, defaultBalance) + await token.connect(deployer).mint(keyOwner3.address, defaultBalance) // Approve the lock to make transfers - await token.approve(lock.address, MAX_UINT, { from: keyOwner }) - await token.approve(lock.address, MAX_UINT, { from: keyOwner2 }) - await token.approve(lock.address, MAX_UINT, { from: keyOwner3 }) + await token.connect(keyOwner).approve(lock.address, MAX_UINT) + await token.connect(keyOwner2).approve(lock.address, MAX_UINT) + await token.connect(keyOwner3).approve(lock.address, MAX_UINT) - keyPrice = new BigNumber(await lock.keyPrice()) - refundAmount = keyPrice.toFixed() + keyPrice = await lock.keyPrice() + refundAmount = keyPrice }) describe('users can purchase keys', () => { let tokenId beforeEach(async () => { - ;({ tokenId } = await purchaseKey(lock, keyOwner, true)) + ;({ tokenId } = await purchaseKey(lock, keyOwner.address, true)) }) it('charges correct amount on purchaseKey', async () => { - const balance = new BigNumber(await token.balanceOf(keyOwner)) - assert.equal( - balance.toFixed(), - defaultBalance.minus(keyPrice).toFixed() - ) + const balance = await token.balanceOf(keyOwner.address) + compareBigNumbers(balance, defaultBalance.sub(keyPrice)) }) it('transferred the tokens to the contract', async () => { - const balance = new BigNumber(await token.balanceOf(lock.address)) - assert.equal(balance.toFixed(), keyPrice.toFixed()) + const balance = await token.balanceOf(lock.address) + compareBigNumbers(balance, keyPrice) }) it('when a lock owner refunds a key, tokens are fully refunded', async () => { - const { tokenId } = await purchaseKey(lock, keyOwner3, true) + const { tokenId } = await purchaseKey(lock, keyOwner3.address, true) - const balanceOwnerBefore = new BigNumber( - await token.balanceOf(keyOwner3) - ) - const balanceLockBefore = new BigNumber( - await token.balanceOf(lock.address) - ) + const balanceOwnerBefore = await token.balanceOf(keyOwner3.address) + const balanceLockBefore = await token.balanceOf(lock.address) - await lock.expireAndRefundFor(tokenId, refundAmount, { - from: accounts[0], - }) - const balanceOwnerAfter = new BigNumber( - await token.balanceOf(keyOwner3) - ) - const balanceLockAfter = new BigNumber( - await token.balanceOf(lock.address) - ) + await lock + .connect(lockManager) + .expireAndRefundFor(tokenId, refundAmount) + const balanceOwnerAfter = await token.balanceOf(keyOwner3.address) + const balanceLockAfter = await token.balanceOf(lock.address) - assert.equal( - balanceLockBefore.minus(keyPrice).toFixed(), - balanceLockAfter.toFixed() - ) + compareBigNumbers(balanceLockBefore.sub(keyPrice), balanceLockAfter) - assert.equal( - balanceOwnerBefore.plus(keyPrice).toFixed(), - balanceOwnerAfter.toFixed() - ) + compareBigNumbers(balanceOwnerBefore.add(keyPrice), balanceOwnerAfter) }) it('when a key owner cancels a key, they are refunded in tokens', async () => { - const balance = new BigNumber(await token.balanceOf(keyOwner)) - await lock.cancelAndRefund(tokenId, { from: keyOwner }) - assert(balance.lt(await token.balanceOf(keyOwner))) + const balance = await token.balanceOf(keyOwner.address) + await lock.connect(keyOwner).cancelAndRefund(tokenId) + assert(balance.lt(await token.balanceOf(keyOwner.address))) }) it('the owner can withdraw tokens', async () => { - const lockBalance = new BigNumber(await token.balanceOf(lock.address)) - const ownerBalance = new BigNumber(await token.balanceOf(accounts[0])) + const lockBalance = await token.balanceOf(lock.address) + const ownerBalance = await token.balanceOf(deployer.address) - await lock.withdraw(await lock.tokenAddress(), accounts[0], 0, { - from: accounts[0], - }) + await lock + .connect(lockManager) + .withdraw(await lock.tokenAddress(), deployer.address, 0) - assert.equal(await token.balanceOf(lock.address), 0) - assert.equal( - await token.balanceOf(accounts[0]), - ownerBalance.plus(lockBalance).toFixed() + compareBigNumbers(await token.balanceOf(lock.address), 0) + compareBigNumbers( + await token.balanceOf(deployer.address), + ownerBalance.add(lockBalance) ) }) it('purchaseForFrom works as well', async () => { + const { address: referrer } = keyOwner // The referrer needs a valid key for this test - await lock.purchase( - [keyPrice.toFixed()], - [keyOwner], - [ADDRESS_ZERO], - [ADDRESS_ZERO], - [[]], - { - from: keyOwner, - } - ) - const balanceBefore = new BigNumber(await token.balanceOf(keyOwner2)) - - await lock.purchase( - [keyPrice.toFixed()], - [keyOwner2], - [keyOwner], - [ADDRESS_ZERO], - [[]], - { - from: keyOwner2, - } - ) - - const balance = new BigNumber(await token.balanceOf(keyOwner2)) - assert.equal(balance.toFixed(), balanceBefore.minus(keyPrice).toFixed()) + await lock + .connect(keyOwner) + .purchase( + [referrer], + [keyOwner.address], + [ADDRESS_ZERO], + [ADDRESS_ZERO], + [[]] + ) + const balanceBefore = await token.balanceOf(keyOwner2.address) + + await lock + .connect(keyOwner2) + .purchase( + [keyPrice], + [keyOwner2.address], + [referrer], + [ADDRESS_ZERO], + [[]] + ) + + const balance = await token.balanceOf(keyOwner2.address) + compareBigNumbers(balance, balanceBefore.sub(keyPrice)) }) it('can transfer the key to another user', async () => { - await lock.transferFrom(keyOwner, accounts[4], tokenId, { - from: keyOwner, - }) + await lock + .connect(keyOwner) + .transferFrom(keyOwner.address, random.address, tokenId) }) }) it('purchaseKey fails when the user does not have enough funds', async () => { - const account = accounts[4] - await token.approve(lock.address, MAX_UINT, { from: account }) - await token.mint(account, keyPrice.minus(1), { - from: accounts[0], - }) + await token.connect(random).approve(lock.address, MAX_UINT) + await token.connect(deployer).mint(random.address, keyPrice.sub(1)) await reverts( - lock.purchase( - [keyPrice.toFixed()], - [account], - [ADDRESS_ZERO], - [ADDRESS_ZERO], - [[]], - { - from: account, - } - ) + lock + .connect(random) + .purchase( + [keyPrice], + [random.address], + [ADDRESS_ZERO], + [ADDRESS_ZERO], + [[]] + ) ) }) it('purchaseKey fails when the user did not give the contract an allowance', async () => { - const account = accounts[4] - await token.mint(account, keyPrice, { - from: accounts[0], - }) + await token.connect(deployer).mint(random.address, keyPrice) await reverts( - lock.purchase( - [keyPrice.toFixed()], - [account], - [ADDRESS_ZERO], - [ADDRESS_ZERO], - [[]], - { - from: account, - } - ) + lock + .connect(random) + .purchase( + [keyPrice], + [random.address], + [ADDRESS_ZERO], + [ADDRESS_ZERO], + [[]] + ) ) }) }) describe('should fail to create a lock when', () => { it('when creating a lock for a contract which is not an ERC20', async () => { + const nonToken = await ethers.getContractFactory('TestNoop') await reverts( deployLock({ - tokenAddress: (await TestNoop.new()).address, + tokenAddress: (await nonToken.deploy()).address, }) ) }) diff --git a/smart-contracts/test/Lock/erc721/approve.js b/smart-contracts/test/Lock/erc721/approve.js index 7a7e6932eb0..8910a2e05b1 100644 --- a/smart-contracts/test/Lock/erc721/approve.js +++ b/smart-contracts/test/Lock/erc721/approve.js @@ -1,25 +1,28 @@ +const { assert } = require('chai') +const { ethers } = require('hardhat') + const { deployLock, ADDRESS_ZERO, purchaseKey, reverts, + compareBigNumbers, } = require('../../helpers') + let lock let tokenId -let keyOwner +let keyOwner, approvedAccount -contract('Lock / erc721 / approve', (accounts) => { +describe('Lock / erc721 / approve', () => { before(async () => { - keyOwner = accounts[1] + ;[, keyOwner, approvedAccount] = await ethers.getSigners() lock = await deployLock() }) describe('when the token does not exist', () => { it('should fail', async () => { await reverts( - lock.approve(accounts[2], 42, { - from: keyOwner, - }), + lock.connect(keyOwner).approve(approvedAccount.address, 42), 'ONLY_KEY_MANAGER_OR_APPROVED' ) }) @@ -27,15 +30,15 @@ contract('Lock / erc721 / approve', (accounts) => { describe('when the key exists', () => { before(async () => { - ;({ tokenId } = await purchaseKey(lock, keyOwner)) + ;({ tokenId } = await purchaseKey(lock, keyOwner.address)) }) describe('when the sender is not the token owner', () => { it('should fail', async () => { await reverts( - lock.approve(accounts[2], tokenId, { - from: accounts[2], - }), + lock + .connect(approvedAccount) + .approve(approvedAccount.address, tokenId), 'ONLY_KEY_MANAGER_OR_APPROVED' ) }) @@ -44,9 +47,7 @@ contract('Lock / erc721 / approve', (accounts) => { describe('when the sender is self approving', () => { it('should fail', async () => { await reverts( - lock.approve(keyOwner, tokenId, { - from: keyOwner, - }), + lock.connect(keyOwner).approve(keyOwner.address, tokenId), 'APPROVE_SELF' ) }) @@ -55,46 +56,47 @@ contract('Lock / erc721 / approve', (accounts) => { describe('when the approval succeeds', () => { let event before(async () => { - let result = await lock.approve(accounts[2], tokenId, { - from: keyOwner, - }) - event = result.logs[0] + const tx = await lock + .connect(keyOwner) + .approve(approvedAccount.address, tokenId) + const { events } = await tx.wait() + event = events.find((v) => v.event === 'Approval') }) it('should assign the approvedForTransfer value', async () => { const approved = await lock.getApproved(tokenId) - assert.equal(approved, accounts[2]) + assert.equal(approved, approvedAccount.address) }) it('should trigger the Approval event', () => { assert.equal(event.event, 'Approval') - assert.equal(event.args.owner, keyOwner) - assert.equal(event.args.approved, accounts[2]) - assert.equal(event.args.tokenId.toString(), tokenId.toString()) + assert.equal(event.args.owner, keyOwner.address) + assert.equal(event.args.approved, approvedAccount.address) + compareBigNumbers(event.args.tokenId, tokenId) }) describe('when reaffirming the approved address', () => { before(async () => { - let result = await lock.approve(accounts[2], tokenId, { - from: keyOwner, - }) - event = result.logs[0] + let tx = await lock + .connect(keyOwner) + .approve(approvedAccount.address, tokenId) + const { events } = await tx.wait() + event = events.find((v) => v.event === 'Approval') }) it('Approval emits when the approved address is reaffirmed', async () => { assert.equal(event.event, 'Approval') - assert.equal(event.args.owner, keyOwner) - assert.equal(event.args.approved, accounts[2]) - assert.equal(event.args.tokenId.toString(), tokenId.toString()) + assert.equal(event.args.owner, keyOwner.address) + assert.equal(event.args.approved, approvedAccount.address) + compareBigNumbers(event.args.tokenId, tokenId) }) }) describe('when clearing the approved address', () => { before(async () => { - let result = await lock.approve(ADDRESS_ZERO, tokenId, { - from: keyOwner, - }) - event = result.logs[0] + let tx = await lock.connect(keyOwner).approve(ADDRESS_ZERO, tokenId) + const { events } = await tx.wait() + event = events.find((v) => v.event === 'Approval') }) it('The zero address indicates there is no approved address', async () => { diff --git a/smart-contracts/test/Lock/erc721/approveForAll.js b/smart-contracts/test/Lock/erc721/approveForAll.js index 7245c850231..8557afb985f 100644 --- a/smart-contracts/test/Lock/erc721/approveForAll.js +++ b/smart-contracts/test/Lock/erc721/approveForAll.js @@ -1,32 +1,35 @@ +const { assert } = require('chai') +const { ethers } = require('hardhat') const { deployLock, purchaseKey, reverts } = require('../../helpers') let lock let tokenId +let keyOwner, approvedAccount, newApprovedAccount, signers -contract('Lock / erc721 / approveForAll', (accounts) => { +describe('Lock / erc721 / approveForAll', () => { before(async () => { lock = await deployLock() + ;[, keyOwner, approvedAccount, newApprovedAccount, ...signers] = + await ethers.getSigners() await lock.updateTransferFee(0) // disable the transfer fee for this test }) - let keyOwner = accounts[1] - let approvedUser = accounts[2] - describe('when the key exists', () => { before(async () => { - ;({ tokenId } = await purchaseKey(lock, keyOwner)) + ;({ tokenId } = await purchaseKey(lock, keyOwner.address)) }) it('isApprovedForAll defaults to false', async () => { - assert.equal(await lock.isApprovedForAll(keyOwner, approvedUser), false) + assert.equal( + await lock.isApprovedForAll(keyOwner.address, approvedAccount.address), + false + ) }) describe('when the sender is self approving', () => { it('should fail', async () => { await reverts( - lock.setApprovalForAll(keyOwner, true, { - from: keyOwner, - }), + lock.connect(keyOwner).setApprovalForAll(keyOwner.address, true), 'APPROVE_SELF' ) }) @@ -35,67 +38,84 @@ contract('Lock / erc721 / approveForAll', (accounts) => { describe('when the approval succeeds', () => { let event before(async () => { - let result = await lock.setApprovalForAll(approvedUser, true, { - from: keyOwner, - }) - event = result.logs[0] + const tx = await lock + .connect(keyOwner) + .setApprovalForAll(approvedAccount.address, true) + const { events } = await tx.wait() + event = events.find((v) => v.event === 'ApprovalForAll') }) it('isApprovedForAll is true', async () => { - assert.equal(await lock.isApprovedForAll(keyOwner, approvedUser), true) + assert.equal( + await lock.isApprovedForAll( + keyOwner.address, + approvedAccount.address + ), + true + ) }) it('should trigger the ApprovalForAll event', () => { assert.equal(event.event, 'ApprovalForAll') - assert.equal(event.args.owner, keyOwner) - assert.equal(event.args.operator, approvedUser) + assert.equal(event.args.owner, keyOwner.address) + assert.equal(event.args.operator, approvedAccount.address) assert.equal(event.args.approved, true) }) it('an authorized operator may set the approved address for an NFT', async () => { - let newApprovedUser = accounts[8] - - await lock.approve(newApprovedUser, tokenId, { - from: approvedUser, - }) - - assert.equal(await lock.getApproved(tokenId), newApprovedUser) + await lock + .connect(approvedAccount) + .approve(newApprovedAccount.address, tokenId) + assert.equal( + await lock.getApproved(tokenId), + newApprovedAccount.address + ) }) it('should allow the approved user to transferFrom', async () => { - await lock.transferFrom(keyOwner, accounts[3], tokenId, { - from: approvedUser, - }) + await lock + .connect(approvedAccount) + .transferFrom(keyOwner.address, newApprovedAccount.address, tokenId) // Transfer it back to the original keyOwner for other tests - await lock.transferFrom(accounts[3], keyOwner, tokenId, { - from: accounts[3], - }) + await lock + .connect(newApprovedAccount) + .transferFrom(newApprovedAccount.address, keyOwner.address, tokenId) }) it('isApprovedForAll is still true (not lost after transfer)', async () => { - assert.equal(await lock.isApprovedForAll(keyOwner, approvedUser), true) + assert.equal( + await lock.isApprovedForAll( + keyOwner.address, + approvedAccount.address + ), + true + ) }) describe('allows for multiple operators per keyOwner', () => { - let newApprovedUser = accounts[8] - before(async () => { - await lock.setApprovalForAll(newApprovedUser, true, { - from: keyOwner, - }) + await lock + .connect(keyOwner) + .setApprovalForAll(newApprovedAccount.address, true) }) it('new operator is approved', async () => { assert.equal( - await lock.isApprovedForAll(keyOwner, newApprovedUser), + await lock.isApprovedForAll( + keyOwner.address, + newApprovedAccount.address + ), true ) }) it('original operator is still approved', async () => { assert.equal( - await lock.isApprovedForAll(keyOwner, approvedUser), + await lock.isApprovedForAll( + keyOwner.address, + approvedAccount.address + ), true ) }) @@ -106,48 +126,53 @@ contract('Lock / erc721 / approveForAll', (accounts) => { let event before(async () => { - await lock.setApprovalForAll(approvedUser, true, { - from: keyOwner, - }) - let result = await lock.setApprovalForAll(approvedUser, false, { - from: keyOwner, - }) - event = result.logs[0] + // set key approval + await lock + .connect(keyOwner) + .setApprovalForAll(approvedAccount.address, true) + // unset key approval + const tx = await lock + .connect(keyOwner) + .setApprovalForAll(approvedAccount.address, false) + const { events } = await tx.wait() + event = events.find((v) => v.event === 'ApprovalForAll') }) it('isApprovedForAll is false again', async () => { - assert.equal(await lock.isApprovedForAll(keyOwner, approvedUser), false) + assert.equal( + await lock.isApprovedForAll( + keyOwner.address, + approvedAccount.address + ), + false + ) }) it('This emits when an operator is (enabled or) disabled for an owner.', async () => { assert.equal(event.event, 'ApprovalForAll') - assert.equal(event.args.owner, keyOwner) - assert.equal(event.args.operator, approvedUser) + assert.equal(event.args.owner, keyOwner.address) + assert.equal(event.args.operator, approvedAccount.address) assert.equal(event.args.approved, false) }) }) }) describe('when the owner does not have a key', () => { - let ownerWithoutAKey = accounts[7] - - it('owner has no keys', async () => { - assert.equal(await lock.balanceOf(ownerWithoutAKey), 0) - }) - - describe('allows the owner to call approveForAll', () => { - before(async () => { - await lock.setApprovalForAll(approvedUser, true, { - from: ownerWithoutAKey, - }) - }) - - it('operator is approved', async () => { - assert.equal( - await lock.isApprovedForAll(ownerWithoutAKey, approvedUser), - true - ) - }) + it('allows the owner to call approveForAll', async () => { + const ownerWithoutAKey = signers[8] + // owner has no key + assert.equal(await lock.balanceOf(ownerWithoutAKey.address), 0) + // approval works + await lock + .connect(ownerWithoutAKey) + .setApprovalForAll(approvedAccount.address, true) + assert.equal( + await lock.isApprovedForAll( + ownerWithoutAKey.address, + approvedAccount.address + ), + true + ) }) }) }) diff --git a/smart-contracts/test/Lock/erc721/balanceOf.js b/smart-contracts/test/Lock/erc721/balanceOf.js index b7f962ab170..8823ab844e1 100644 --- a/smart-contracts/test/Lock/erc721/balanceOf.js +++ b/smart-contracts/test/Lock/erc721/balanceOf.js @@ -1,89 +1,101 @@ +const { assert } = require('chai') const { ethers } = require('hardhat') -const BigNumber = require('bignumber.js') -const { time } = require('@openzeppelin/test-helpers') -const { deployLock, ADDRESS_ZERO } = require('../../helpers') +const { + deployLock, + ADDRESS_ZERO, + compareBigNumbers, + increaseTimeTo, +} = require('../../helpers') -contract('Lock / erc721 / balanceOf', (accounts) => { +describe('Lock / erc721 / balanceOf', () => { let lock + let keyOwner, someAccount, accountWithoutKey, keyReceiver before(async () => { + ;[, keyOwner, someAccount, accountWithoutKey, keyReceiver] = + await ethers.getSigners() lock = await deployLock() }) it('should return 0 if the user has no key', async () => { - const balance = new BigNumber(await lock.balanceOf(accounts[3])) - assert.equal(balance.toFixed(), 0) + const balance = await lock.balanceOf(accountWithoutKey.address) + compareBigNumbers(balance, 0) }) it('should return correct number of keys', async () => { await lock.purchase( [], - [accounts[1], accounts[1], accounts[1]], + [someAccount.address, someAccount.address, someAccount.address], [ADDRESS_ZERO, ADDRESS_ZERO, ADDRESS_ZERO], [ADDRESS_ZERO, ADDRESS_ZERO, ADDRESS_ZERO], [[], [], []], { value: ethers.utils.parseUnits('0.03', 'ether'), - from: accounts[1], } ) - const balance = new BigNumber(await lock.balanceOf(accounts[1])) - assert.equal(balance.toFixed(), 3) + compareBigNumbers(await lock.balanceOf(someAccount.address), 3) }) it('should count only valid keys', async () => { const tx = await lock.purchase( [], - [accounts[1], accounts[1], accounts[1]], + [keyOwner.address, keyOwner.address, keyOwner.address], [ADDRESS_ZERO, ADDRESS_ZERO, ADDRESS_ZERO], [ADDRESS_ZERO, ADDRESS_ZERO, ADDRESS_ZERO], [[], [], []], { value: ethers.utils.parseUnits('0.03', 'ether'), - from: accounts[1], } ) - - const tokenIds = tx.logs + const { events } = await tx.wait() + const tokenIds = events .filter((v) => v.event === 'Transfer') .map(({ args }) => args.tokenId) + compareBigNumbers(await lock.balanceOf(keyOwner.address), 3) + // expire all keys const expirationTs = await lock.keyExpirationTimestampFor(tokenIds[0]) - await time.increaseTo(expirationTs.toNumber() + 10) + await increaseTimeTo(expirationTs.add(10)) - assert.equal((await lock.balanceOf(accounts[1])).toNumber(), 0) + compareBigNumbers(await lock.balanceOf(keyOwner.address), 0) // renew one await lock.extend(0, tokenIds[0], ADDRESS_ZERO, [], { value: ethers.utils.parseUnits('0.03', 'ether'), - from: accounts[1], }) - assert.equal((await lock.balanceOf(accounts[1])).toNumber(), 1) + compareBigNumbers(await lock.balanceOf(keyOwner.address), 1) }) it('should return correct number after key transfers', async () => { - await lock.purchase( + const tx = await lock.purchase( [], - [accounts[6], accounts[6], accounts[6]], + [keyReceiver.address, keyReceiver.address, keyReceiver.address], [ADDRESS_ZERO, ADDRESS_ZERO, ADDRESS_ZERO], [ADDRESS_ZERO, ADDRESS_ZERO, ADDRESS_ZERO], [[], [], []], { value: ethers.utils.parseUnits('0.03', 'ether'), - from: accounts[6], } ) - let tokenId = await lock.tokenOfOwnerByIndex(accounts[6], 0) - assert.equal(accounts[6], await lock.ownerOf(tokenId)) - assert.equal((await lock.balanceOf(accounts[6])).toNumber(), 3) - await lock.transferFrom(accounts[6], accounts[5], tokenId, { - from: accounts[6], - }) - let balanceOf6 = await lock.balanceOf(accounts[6]) - let balanceOf5 = await lock.balanceOf(accounts[5]) - assert.equal(balanceOf6.toNumber(), 2) - assert.equal(balanceOf5.toNumber(), 1) + const { events } = await tx.wait() + + const [tokenId] = events + .filter((v) => v.event === 'Transfer') + .map(({ args }) => args.tokenId) + + compareBigNumbers(await lock.balanceOf(keyReceiver.address), 3) + compareBigNumbers( + tokenId, + await lock.tokenOfOwnerByIndex(keyReceiver.address, 0) + ) + assert.equal(keyReceiver.address, await lock.ownerOf(tokenId)) + + await lock + .connect(keyReceiver) + .transferFrom(keyReceiver.address, accountWithoutKey.address, tokenId) + assert.equal(await lock.balanceOf(keyReceiver.address), 2) + assert.equal(await lock.balanceOf(accountWithoutKey.address), 1) }) }) diff --git a/smart-contracts/test/Lock/erc721/compliance.js b/smart-contracts/test/Lock/erc721/compliance.js index 6ea537d2bf9..cb1030d1c46 100644 --- a/smart-contracts/test/Lock/erc721/compliance.js +++ b/smart-contracts/test/Lock/erc721/compliance.js @@ -1,6 +1,7 @@ +const { assert } = require('chai') const { deployLock } = require('../../helpers') -contract('Lock / erc721 / compliance', () => { +describe('Lock / erc721 / compliance', () => { let lock before(async () => { lock = await deployLock() diff --git a/smart-contracts/test/Lock/erc721/enumerable.js b/smart-contracts/test/Lock/erc721/enumerable.js index f59a49e3959..abc09b0be1c 100644 --- a/smart-contracts/test/Lock/erc721/enumerable.js +++ b/smart-contracts/test/Lock/erc721/enumerable.js @@ -1,17 +1,17 @@ +const { assert } = require('chai') const { reverts } = require('../../helpers/errors') -const { deployLock, purchaseKeys } = require('../../helpers') +const { deployLock, purchaseKeys, compareBigNumbers } = require('../../helpers') let lock let tokenIds let keyOwners -contract('Lock / erc721 / enumerable', (accounts) => { +describe('Lock / erc721 / enumerable', () => { before(async () => { lock = await deployLock() // Buy test keys for each account - keyOwners = accounts.slice(1, 6) - ;({ tokenIds } = await purchaseKeys(lock, keyOwners.length)) + ;({ tokenIds, keyOwners } = await purchaseKeys(lock, 5)) }) it('tokenByIndex is a no-op', async () => { @@ -29,11 +29,11 @@ contract('Lock / erc721 / enumerable', (accounts) => { for (let i = 0; i < keyOwners.length; i++) { const id = await lock.tokenOfOwnerByIndex(keyOwners[i], 0) const expected = tokenIds[i] - assert.equal(id.toString(), expected.toString()) + compareBigNumbers(id, expected) } }) it('tokenOfOwnerByIndex fails when index > 0', async () => { - await reverts(lock.tokenOfOwnerByIndex(accounts[0], 1)) + await reverts(lock.tokenOfOwnerByIndex(keyOwners[0], 1)) }) }) diff --git a/smart-contracts/test/Lock/erc721/getApproved.js b/smart-contracts/test/Lock/erc721/getApproved.js index 1c22af6efef..526610bbea1 100644 --- a/smart-contracts/test/Lock/erc721/getApproved.js +++ b/smart-contracts/test/Lock/erc721/getApproved.js @@ -1,6 +1,6 @@ const { reverts, deployLock } = require('../../helpers') -contract('Lock / erc721 / getApproved', () => { +describe('Lock / erc721 / getApproved', () => { let lock before(async () => { lock = await deployLock() diff --git a/smart-contracts/test/Lock/erc721/ownerOf.js b/smart-contracts/test/Lock/erc721/ownerOf.js index 757318ba211..5d4b3880493 100644 --- a/smart-contracts/test/Lock/erc721/ownerOf.js +++ b/smart-contracts/test/Lock/erc721/ownerOf.js @@ -1,8 +1,12 @@ +const { assert } = require('chai') +const { ethers } = require('hardhat') const { deployLock, ADDRESS_ZERO, purchaseKey } = require('../../helpers') let lock -contract('Lock / erc721 / ownerOf', (accounts) => { +describe('Lock / erc721 / ownerOf', () => { + let keyOwner, anotherAccount before(async () => { + ;[, keyOwner, anotherAccount] = await ethers.getSigners() lock = await deployLock() }) @@ -12,20 +16,20 @@ contract('Lock / erc721 / ownerOf', (accounts) => { }) it('should return the owner of the key', async () => { - const { tokenId } = await purchaseKey(lock, accounts[1]) + const { tokenId } = await purchaseKey(lock, keyOwner.address) let address = await lock.ownerOf(tokenId) - assert.equal(address, accounts[1]) + assert.equal(address, keyOwner.address) }) it('should work correctly after a transfer', async () => { - const { tokenId } = await purchaseKey(lock, accounts[1]) + const { tokenId } = await purchaseKey(lock, keyOwner.address) let address = await lock.ownerOf(tokenId) - assert.equal(address, accounts[1]) + assert.equal(address, keyOwner.address) // transfer - await lock.transferFrom(accounts[1], accounts[7], tokenId, { - from: accounts[1], - }) - assert.equal(await lock.ownerOf(tokenId), accounts[7]) + await lock + .connect(keyOwner) + .transferFrom(keyOwner.address, anotherAccount.address, tokenId) + assert.equal(await lock.ownerOf(tokenId), anotherAccount.address) }) }) diff --git a/smart-contracts/test/Lock/erc721/safeTransferFrom.js b/smart-contracts/test/Lock/erc721/safeTransferFrom.js index 776ef2df07f..4c6c86f8fce 100644 --- a/smart-contracts/test/Lock/erc721/safeTransferFrom.js +++ b/smart-contracts/test/Lock/erc721/safeTransferFrom.js @@ -1,80 +1,83 @@ +const { assert } = require('chai') const { deployLock, reverts, purchaseKey } = require('../../helpers') const { ethers } = require('hardhat') -const TestERC721Recevier = artifacts.require('TestERC721Recevier') - let lock +let from, to, random, random2, random3 + +const safeTransferFromSig = 'safeTransferFrom(address,address,uint256)' +const safeTransferFromWithDataSig = + 'safeTransferFrom(address,address,uint256,bytes)' -contract('Lock / erc721 / safeTransferFrom', (accounts) => { +describe('Lock / erc721 / safeTransferFrom', () => { // function safeTransferFrom() still uses transferFrom() under the hood // but adds an additional check afterwards. transferFrom is already well-tested, // so here we add a few checks to test only the new functionality. let tokenId - const [, from, to] = accounts before(async () => { - lock = await deployLock() + ;[, from, to, random, random2, random3] = await ethers.getSigners() + lock = await deployLock({ isEthers: true }) await lock.updateTransferFee(0) // disable the transfer fee for this test - // first, let's purchase a brand new key that we can transfer - ;({ tokenId } = await purchaseKey(lock, from)) + ;({ tokenId } = await purchaseKey(lock, from.address)) }) it('should work if no data is passed in', async () => { - await lock.safeTransferFrom(from, to, tokenId, { - from, - }) + await lock + .connect(from) + [safeTransferFromSig](from.address, to.address, tokenId) let ownerOf = await lock.ownerOf(tokenId) - assert.equal(ownerOf, to) + assert.equal(ownerOf, to.address) }) it('should work if some data is passed in', async () => { - ;({ tokenId } = await purchaseKey(lock, accounts[7])) - const method = 'safeTransferFrom(address,address,uint256,bytes)' - await lock.methods[method]( - accounts[7], - accounts[6], - tokenId, - ethers.utils.hexlify(ethers.utils.toUtf8Bytes('Julien')), - { - from: accounts[7], - } - ) + ;({ tokenId } = await purchaseKey(lock, random.address)) + await lock + .connect(random) + [safeTransferFromWithDataSig]( + random.address, + random2.address, + tokenId, + ethers.utils.hexlify(ethers.utils.toUtf8Bytes('Julien')) + ) let ownerOf = await lock.ownerOf(tokenId) - assert.equal(ownerOf, accounts[6]) - // while we may pass data to the safeTransferFrom function, it is not currently utilized in any way other than being passed to the `onERC721Received` function in MixinTransfer.sol + assert.equal(ownerOf, random2.address) + // while we may pass data to the safeTransferFrom function, it is not currently + // utilized in any way other than being passed to the `onERC721Received` function + // in MixinTransfer.sol }) it('should fail if trying to transfer a key to a contract which does not implement onERC721Received', async () => { - const { tokenId } = await purchaseKey(lock, accounts[5]) + const { tokenId } = await purchaseKey(lock, random.address) // A contract which does NOT implement onERC721Received: - const NonCompliantContract = artifacts.require('TestEventHooks') - const { address } = await NonCompliantContract.new() + const NonCompliantContract = await ethers.getContractFactory( + 'TestEventHooks' + ) + const { address } = await NonCompliantContract.deploy() await reverts( - lock.safeTransferFrom(accounts[5], address, tokenId, { - from: accounts[5], - }) + lock + .connect(random) + [safeTransferFromSig](random.address, address, tokenId) ) // make sure the key was not transferred let ownerOf = await lock.ownerOf(tokenId) - assert.equal(ownerOf, accounts[5]) + assert.equal(ownerOf, random.address) }) it('should success to transfer when a contract implements onERC721Received', async () => { - ;({ tokenId } = await purchaseKey(lock, accounts[7])) + ;({ tokenId } = await purchaseKey(lock, random3.address)) // A contract which does implement onERC721Received: - let compliantContract = await TestERC721Recevier.new() - - await lock.safeTransferFrom( - accounts[7], - compliantContract.address, - tokenId, - { - from: accounts[7], - } + const TestERC721Recevier = await ethers.getContractFactory( + 'TestERC721Recevier' ) + let compliantContract = await TestERC721Recevier.deploy() + + await lock + .connect(random3) + [safeTransferFromSig](random3.address, compliantContract.address, tokenId) // make sure the key was not transferred let ownerOf = await lock.ownerOf(tokenId) diff --git a/smart-contracts/test/Lock/erc721/tokenName.js b/smart-contracts/test/Lock/erc721/tokenName.js index c313505ef79..21c81235f41 100644 --- a/smart-contracts/test/Lock/erc721/tokenName.js +++ b/smart-contracts/test/Lock/erc721/tokenName.js @@ -1,11 +1,16 @@ +const { assert } = require('chai') +const { ethers } = require('hardhat') const { deployLock, reverts } = require('../../helpers') const metadata = require('../../fixtures/metadata') let unnamedlock let namedLock +let lockManager, someAccount -contract('Lock / erc721 / name', (accounts) => { +describe('Lock / erc721 / name', () => { before(async () => { + ;[lockManager, someAccount] = await ethers.getSigners() + unnamedlock = await deployLock() namedLock = await deployLock({ name: 'NAMED' }) }) @@ -17,17 +22,17 @@ contract('Lock / erc721 / name', (accounts) => { it('should fail if someone other than the owner tries to set the name', async () => { await reverts( - unnamedlock.setLockMetadata(...Object.values(metadata), { - from: accounts[1], - }), + unnamedlock + .connect(someAccount) + .setLockMetadata(...Object.values(metadata)), 'ONLY_LOCK_MANAGER' ) }) it('should allow the owner to set a name', async () => { - await unnamedlock.setLockMetadata(...Object.values(metadata), { - from: accounts[0], - }) + await unnamedlock + .connect(lockManager) + .setLockMetadata(...Object.values(metadata)) }) }) @@ -38,37 +43,24 @@ contract('Lock / erc721 / name', (accounts) => { it('should fail if someone other than the owner tries to change the name', async () => { await reverts( - namedLock.setLockMetadata(...Object.values(metadata), { - from: accounts[1], - }) + namedLock + .connect(someAccount) + .setLockMetadata(...Object.values(metadata)) ) }) - describe('should allow the owner to set a name', () => { - before(async () => { - await namedLock.setLockMetadata(...Object.values(metadata), { - from: accounts[0], - }) - }) - - it('should return return the expected name', async () => { - assert.equal(await namedLock.name(), metadata.name) - }) + it('should allow the owner to set a name', async () => { + await namedLock + .connect(lockManager) + .setLockMetadata(...Object.values(metadata)) + assert.equal(await namedLock.name(), metadata.name) }) - describe('should allow the owner to unset the name', () => { - before(async () => { - await namedLock.setLockMetadata( - ...Object.values({ ...metadata, name: '' }), - { - from: accounts[0], - } - ) - }) - - it('should return return the expected name', async () => { - assert.equal(await namedLock.name(), '') - }) + it('should allow the owner to unset the name', async () => { + await namedLock + .connect(lockManager) + .setLockMetadata(...Object.values({ ...metadata, name: '' })) + assert.equal(await namedLock.name(), '') }) }) }) diff --git a/smart-contracts/test/Lock/erc721/tokenSymbol.js b/smart-contracts/test/Lock/erc721/tokenSymbol.js index 0b3d913ad5c..075c8fe2a5b 100644 --- a/smart-contracts/test/Lock/erc721/tokenSymbol.js +++ b/smart-contracts/test/Lock/erc721/tokenSymbol.js @@ -1,12 +1,16 @@ +const { assert } = require('chai') +const { ethers } = require('hardhat') + const { reverts, deployLock, deployContracts } = require('../../helpers') const metadata = require('../../fixtures/metadata') let lock let unlock -let txObj +let lockManager, someAccount -contract('Lock / erc721 / tokenSymbol', (accounts) => { +describe('Lock / erc721 / tokenSymbol', () => { before(async () => { + ;[lockManager, someAccount] = await ethers.getSigners() ;({ unlock } = await deployContracts()) lock = await deployLock({ unlock }) }) @@ -18,16 +22,13 @@ contract('Lock / erc721 / tokenSymbol', (accounts) => { describe('set the global symbol', () => { beforeEach(async () => { - txObj = await unlock.configUnlock( + await unlock.connect(lockManager).configUnlock( await unlock.udt(), await unlock.weth(), 0, 'KEY', await unlock.globalBaseTokenURI(), - 1, // mainnet - { - from: accounts[0], - } + 1 // mainnet ) }) @@ -45,16 +46,13 @@ contract('Lock / erc721 / tokenSymbol', (accounts) => { it('should fail if someone other than the owner tries to set the symbol', async () => { await reverts( - unlock.configUnlock( + unlock.connect(someAccount).configUnlock( await unlock.udt(), await unlock.weth(), 0, 'BTC', await unlock.globalBaseTokenURI(), - 1, // mainnet - { - from: accounts[1], - } + 1 // mainnet ) ) }) @@ -62,25 +60,22 @@ contract('Lock / erc721 / tokenSymbol', (accounts) => { describe('A custom token symbol stored in the lock', () => { it('should allow the lock owner to set a custom token symbol', async () => { - await lock.setLockMetadata(...Object.values(metadata), { - from: accounts[0], - }) + await lock + .connect(lockManager) + .setLockMetadata(...Object.values(metadata)) assert.equal(await lock.symbol(), metadata.symbol) }) it('should emit the NewLockConfig event', async () => { - txObj = await lock.setLockMetadata(...Object.values(metadata), { - from: accounts[0], - }) - const event = txObj.logs.find(({ event }) => event === 'LockMetadata') + const tx = await lock.setLockMetadata(...Object.values(metadata)) + const { events } = await tx.wait() + const event = events.find(({ event }) => event === 'LockMetadata') assert.equal(event.args.symbol, metadata.symbol) }) it('should fail if someone other than the owner tries to set the symbol', async () => { await reverts( - lock.setLockMetadata(...Object.values(metadata), { - from: accounts[1], - }), + lock.connect(someAccount).setLockMetadata(...Object.values(metadata)), 'ONLY_LOCK_MANAGER' ) }) diff --git a/smart-contracts/test/Lock/erc721/tokenURI.js b/smart-contracts/test/Lock/erc721/tokenURI.js index 4818867b3a0..37aa9423d59 100644 --- a/smart-contracts/test/Lock/erc721/tokenURI.js +++ b/smart-contracts/test/Lock/erc721/tokenURI.js @@ -1,3 +1,6 @@ +const { assert } = require('chai') +const { ethers } = require('hardhat') + const { deployLock, deployContracts, @@ -10,8 +13,8 @@ const defaultTokenURI = 'https://globalBaseTokenURI.com/api/key/' let lock let unlock -let txObj let baseTokenURI +let lockManager, someAccount // Helper function to deal with the lock returning the address part of the URI in lowercase. function stringShifter(str) { @@ -28,8 +31,9 @@ function stringShifter(str) { return lowercaseAddress } -contract('Lock / erc721 / tokenURI', (accounts) => { +describe('Lock / erc721 / tokenURI', () => { before(async () => { + ;[lockManager, someAccount] = await ethers.getSigners() ;({ unlock } = await deployContracts()) lock = await deployLock({ unlock }) }) @@ -40,18 +44,18 @@ contract('Lock / erc721 / tokenURI', (accounts) => { }) describe('set global base URI', () => { + let configUnlockEvent beforeEach(async () => { - txObj = await unlock.configUnlock( + const tx = await unlock.connect(lockManager).configUnlock( await unlock.udt(), await unlock.weth(), 0, await unlock.globalTokenSymbol(), defaultTokenURI, - 1, // mainnet - { - from: accounts[0], - } + 1 // mainnet ) + const { events } = await tx.wait() + configUnlockEvent = events.find(({ event }) => event === 'ConfigUnlock') }) it('should allow the owner to set the global base token URI', async () => { @@ -66,44 +70,42 @@ contract('Lock / erc721 / tokenURI', (accounts) => { }) it('should emit the ConfigUnlock event', async () => { - const event = txObj.logs.find(({ event }) => event === 'ConfigUnlock') - assert.equal(event.args.globalTokenURI, defaultTokenURI) + assert.equal(configUnlockEvent.args.globalTokenURI, defaultTokenURI) }) }) it('should fail if someone other than the owner tries to set the URI', async () => { await reverts( - unlock.configUnlock( + unlock.connect(someAccount).configUnlock( await unlock.udt(), await unlock.weth(), 0, await unlock.globalTokenSymbol(), 'https://fakeGlobalURI.com', - 1, // mainnet - { - from: accounts[1], - } + 1 // mainnet ) ) }) }) describe(' The custom tokenURI stored in the Lock', () => { + let lockMetadataEvent before(async () => { - txObj = await lock.setLockMetadata(...Object.values(metadata), { - from: accounts[0], - }) + const tx = await lock + .connect(lockManager) + .setLockMetadata(...Object.values(metadata)) + const { events } = await tx.wait() + lockMetadataEvent = events.find(({ event }) => event === 'LockMetadata') }) it('should allow the lock creator to set a custom base tokenURI', async () => { - await purchaseKey(lock, accounts[0]) + await purchaseKey(lock, lockManager.address) const uri = await lock.tokenURI(1) assert.equal(uri, `${metadata.baseTokenURI}1`) }) it('should emit the LockMetadata event', async () => { - const event = txObj.logs.find(({ event }) => event === 'LockMetadata') - assert.equal(event.args.baseTokenURI, metadata.baseTokenURI) + assert.equal(lockMetadataEvent.args.baseTokenURI, metadata.baseTokenURI) }) it('should let anyone get the baseTokenURI for a lock by passing tokenId 0', async () => { @@ -113,13 +115,10 @@ contract('Lock / erc721 / tokenURI', (accounts) => { }) it('should allow the lock creator to to unset the custom URI and default to the global one', async () => { - await lock.setLockMetadata( + await lock.connect(lockManager).setLockMetadata( metadata.name, metadata.symbol, - '', //baseTokenURI - { - from: accounts[0], - } + '' //baseTokenURI ) const baseTokenURI = await lock.tokenURI(0) @@ -136,9 +135,7 @@ contract('Lock / erc721 / tokenURI', (accounts) => { it('should fail if someone other than the owner tries to set the URI', async () => { await reverts( - lock.setLockMetadata(...Object.values(metadata), { - from: accounts[1], - }), + lock.connect(someAccount).setLockMetadata(...Object.values(metadata)), 'ONLY_LOCK_MANAGER' ) }) diff --git a/smart-contracts/test/Lock/erc721/transferFrom.js b/smart-contracts/test/Lock/erc721/transferFrom.js index 2aab7d5763a..86fad343469 100644 --- a/smart-contracts/test/Lock/erc721/transferFrom.js +++ b/smart-contracts/test/Lock/erc721/transferFrom.js @@ -1,25 +1,52 @@ +const { assert } = require('chai') +const { ethers } = require('hardhat') const { deployLock, reverts, ADDRESS_ZERO, - purchaseKeys, purchaseKey, } = require('../../helpers') -let tokenIds -let keyOwners - -contract('Lock / erc721 / transferFrom', (accounts) => { - let lock - let lockSingleKey - keyOwners = [accounts[1], accounts[2], accounts[3], accounts[4]] - +let lock +let lockSingleKey +let tokenId, anotherTokenId +let lockManager, + keyOwner, + anotherKeyOwner, + keyRecipient, + anotherKeyRecipient, + keyManager, + accountApproved, + approvedAllAccount + +describe('Lock / erc721 / transferFrom', () => { beforeEach(async () => { + // init 2 locks lock = await deployLock() lockSingleKey = await deployLock({ name: 'SINGLE KEY' }) - await lock.updateTransferFee(0) // disable the transfer fee for this test - await lockSingleKey.updateTransferFee(0) // disable the transfer fee for this test - ;({ tokenIds } = await purchaseKeys(lock, keyOwners.length)) + + // disable the transfer fee for this test + await lock.updateTransferFee(0) + await lockSingleKey.updateTransferFee(0) + + // fetch signers + ;[ + lockManager, + keyOwner, + anotherKeyOwner, + keyRecipient, + anotherKeyRecipient, + keyManager, + accountApproved, + approvedAllAccount, + ] = await ethers.getSigners() + + // purchase some keys + ;({ tokenId } = await purchaseKey(lock, keyOwner.address)) + ;({ tokenId: anotherTokenId } = await purchaseKey( + lock, + anotherKeyOwner.address + )) }) // / @dev Throws unless `msg.sender` is the current owner, an authorized @@ -30,189 +57,206 @@ contract('Lock / erc721 / transferFrom', (accounts) => { describe('when the lock is public', () => { it('should abort when there is no key to transfer', async () => { await reverts( - lock.transferFrom(keyOwners[0], accounts[9], 999), + lock.transferFrom(keyOwner.address, keyRecipient.address, 999), 'KEY_NOT_VALID' ) }) it('should abort if token owner (from) is incorrect', async () => { await reverts( - lock.transferFrom(keyOwners[0], accounts[9], tokenIds[2], { - from: keyOwners[0], - }), + lock + .connect(keyOwner) + .transferFrom(keyOwner.address, keyRecipient.address, anotherTokenId), 'ONLY_KEY_MANAGER_OR_APPROVED' ) }) it('should only allow owner without LM, KM, KM or approved to transfer', async () => { await reverts( - lock.transferFrom(keyOwners[2], accounts[9], tokenIds[2], { - from: keyOwners[0], - }), + lock + .connect(keyOwner) + .transferFrom( + anotherKeyOwner.address, + keyRecipient.address, + anotherTokenId + ), 'ONLY_KEY_MANAGER_OR_APPROVED' ) }) it('should prevent transfering an expired key', async () => { // Then let's expire the key - await lock.expireAndRefundFor(tokenIds[0], 0, { - from: accounts[0], - }) + await lock.connect(lockManager).expireAndRefundFor(tokenId, 0) await reverts( - lock.transferFrom(keyOwners[1], accounts[7], tokenIds[0], { - from: keyOwners[1], - }) + lock + .connect(keyOwner) + .transferFrom(keyOwner.address, keyRecipient.address, tokenId), + 'KEY_NOT_VALID' ) }) describe('when the key owner is the sender', () => { beforeEach(async () => { - await lock.transferFrom(keyOwners[0], accounts[7], tokenIds[0], { - from: keyOwners[0], - }) + await lock + .connect(keyOwner) + .transferFrom(keyOwner.address, keyRecipient.address, tokenId) }) it('should transfer ownership correctly', async () => { - assert.equal(await lock.ownerOf(tokenIds[0]), accounts[7]) + assert.equal(await lock.ownerOf(tokenId), keyRecipient.address) }) it('update balances properly', async () => { - assert.equal(await lock.balanceOf(accounts[7]), 1) - assert.equal(await lock.balanceOf(keyOwners[0]), 0) + assert.equal(await lock.balanceOf(keyRecipient.address), 1) + assert.equal(await lock.balanceOf(keyOwner.address), 0) }) it('update key validity properly', async () => { - assert.equal(await lock.getHasValidKey(accounts[7]), true) - assert.equal(await lock.getHasValidKey(keyOwners[0]), false) + assert.equal(await lock.getHasValidKey(keyRecipient.address), true) + assert.equal(await lock.getHasValidKey(keyOwner.address), false) }) }) describe('when the key owner is the sender and a key manager is set', async () => { it('should revert if a key manager is set', async () => { - const keyManager = accounts[8] - await lock.setKeyManagerOf(tokenIds[0], keyManager, { - from: keyOwners[0], - }) + await lock + .connect(keyOwner) + .setKeyManagerOf(tokenId, keyManager.address) await reverts( - lock.transferFrom(keyOwners[0], accounts[9], tokenIds[0], { - from: keyOwners[0], - }), + lock + .connect(keyOwner) + .transferFrom(keyOwner.address, keyRecipient.address, tokenId), 'ONLY_KEY_MANAGER_OR_APPROVED' ) }) }) describe('when the key owner is not the sender', async () => { - let accountApproved - beforeEach(async () => { - accountApproved = accounts[8] - await lock.approve(accountApproved, tokenIds[0], { - from: keyOwners[0], - }) + await lock.connect(keyOwner).approve(accountApproved.address, tokenId) }) it('should fail if the sender has not been approved for that key', async () => { await reverts( - lock.transferFrom(keyOwners[0], accountApproved, tokenIds[2], { - from: accountApproved, - }), + lock + .connect(accountApproved) + .transferFrom( + keyOwner.address, + accountApproved.address, + anotherTokenId + ), 'ONLY_KEY_MANAGER_OR_APPROVED' ) }) it('should succeed if the sender has been approved for that key', async () => { - await lock.transferFrom(keyOwners[0], accounts[9], tokenIds[0], { - from: accountApproved, - }) - assert.equal(await lock.ownerOf(tokenIds[0]), accounts[9]) - assert.equal(await lock.balanceOf(accounts[9]), 1) + await lock + .connect(accountApproved) + .transferFrom(keyOwner.address, keyRecipient.address, tokenId) + assert.equal(await lock.ownerOf(tokenId), keyRecipient.address) + assert.equal(await lock.balanceOf(keyRecipient.address), 1) }) it('approval should be cleared after a transfer', async () => { - await lock.transferFrom(keyOwners[0], accounts[9], tokenIds[0], { - from: accountApproved, - }) - assert.equal(await lock.getApproved(tokenIds[0]), ADDRESS_ZERO) + await lock + .connect(accountApproved) + .transferFrom(keyOwner.address, keyRecipient.address, tokenId) + assert.equal(await lock.getApproved(tokenId), ADDRESS_ZERO) }) }) describe('when the sender is a key manager', async () => { - let keyManager beforeEach(async () => { - keyManager = accounts[8] - await lock.setKeyManagerOf(tokenIds[0], keyManager, { - from: keyOwners[0], - }) - await lock.transferFrom(keyOwners[0], accounts[7], tokenIds[0], { - from: keyManager, - }) + await lock + .connect(keyOwner) + .setKeyManagerOf(tokenId, keyManager.address) + await lock + .connect(keyManager) + .transferFrom(keyOwner.address, anotherKeyRecipient.address, tokenId) }) it('should transfer ownership correctly to the sender', async () => { - assert.equal(await lock.ownerOf(tokenIds[0]), accounts[7]) + assert.equal(await lock.ownerOf(tokenId), anotherKeyRecipient.address) }) it('update balances properly', async () => { - assert.equal(await lock.balanceOf(accounts[7]), 1) - assert.equal(await lock.balanceOf(keyOwners[0]), 0) + assert.equal(await lock.balanceOf(anotherKeyRecipient.address), 1) + assert.equal(await lock.balanceOf(keyOwner.address), 0) }) it('update key validity properly', async () => { - assert.equal(await lock.getHasValidKey(accounts[7]), true) - assert.equal(await lock.getHasValidKey(keyOwners[0]), false) + assert.equal( + await lock.getHasValidKey(anotherKeyRecipient.address), + true + ) + assert.equal(await lock.getHasValidKey(keyOwner.address), false) }) it('reset the key manager to address zero', async () => { - assert.equal(await lock.keyManagerOf(tokenIds[0]), ADDRESS_ZERO) + assert.equal(await lock.keyManagerOf(tokenId), ADDRESS_ZERO) }) }) describe('when the sender is a lock manager', async () => { - let lockManager beforeEach(async () => { - lockManager = accounts[0] - await lock.setKeyManagerOf(tokenIds[0], lockManager, { - from: keyOwners[0], - }) - await lock.transferFrom(keyOwners[0], accounts[7], tokenIds[0], { - from: lockManager, - }) + await lock + .connect(keyOwner) + .setKeyManagerOf(tokenId, lockManager.address) + await lock + .connect(lockManager) + .transferFrom(keyOwner.address, anotherKeyRecipient.address, tokenId) }) it('should transfer ownership correctly to the sender', async () => { - assert.equal(await lock.ownerOf(tokenIds[0]), accounts[7]) + assert.equal(await lock.ownerOf(tokenId), anotherKeyRecipient.address) }) it('update balances properly', async () => { - assert.equal(await lock.balanceOf(accounts[7]), 1) - assert.equal(await lock.balanceOf(keyOwners[0]), 0) + assert.equal(await lock.balanceOf(anotherKeyRecipient.address), 1) + assert.equal(await lock.balanceOf(keyOwner.address), 0) }) it('update key validity properly', async () => { - assert.equal(await lock.getHasValidKey(accounts[7]), true) - assert.equal(await lock.getHasValidKey(keyOwners[0]), false) + assert.equal( + await lock.getHasValidKey(anotherKeyRecipient.address), + true + ) + assert.equal(await lock.getHasValidKey(keyOwner.address), false) }) it('reset the key manager to address zero', async () => { - assert.equal(await lock.keyManagerOf(tokenIds[0]), ADDRESS_ZERO) + assert.equal(await lock.keyManagerOf(tokenId), ADDRESS_ZERO) }) }) describe('when the sender is approved', async () => { - let approved beforeEach(async () => { - approved = accounts[8] - await lock.setApprovalForAll(approved, true, { - from: keyOwners[0], - }) - assert.equal(await lock.isApprovedForAll(keyOwners[0], approved), true) + await lock + .connect(keyOwner) + .setApprovalForAll(approvedAllAccount.address, true) + assert.equal( + await lock.isApprovedForAll( + keyOwner.address, + approvedAllAccount.address + ), + true + ) }) it('should allow the transfer', async () => { - await lock.transferFrom(keyOwners[0], accounts[9], tokenIds[0], { - from: approved, - }) - assert.equal(await lock.isApprovedForAll(keyOwners[0], approved), true) + await lock + .connect(approvedAllAccount) + .transferFrom(keyOwner.address, keyRecipient.address, tokenId) + assert.equal( + await lock.isApprovedForAll( + keyOwner.address, + approvedAllAccount.address + ), + true + ) await reverts( - lock.transferFrom(accounts[9], approved, tokenIds[0], { - from: approved, - }) + lock + .connect(approvedAllAccount) + .transferFrom( + keyRecipient.address, + approvedAllAccount.address, + tokenId + ) ) }) }) @@ -220,20 +264,23 @@ contract('Lock / erc721 / transferFrom', (accounts) => { describe('when the lock is sold out', () => { it('should still allow the transfer of keys', async () => { // first we create a lock with only 1 key - const { tokenId } = await purchaseKey(lockSingleKey, keyOwners[0]) + const { tokenId } = await purchaseKey(lockSingleKey, keyOwner.address) // confirm that the lock is sold out - await reverts(purchaseKey(lockSingleKey, keyOwners[0]), 'LOCK_SOLD_OUT') + await reverts( + purchaseKey(lockSingleKey, keyOwner.address), + 'LOCK_SOLD_OUT' + ) // check ownership - assert.equal(await lockSingleKey.ownerOf(tokenId), keyOwners[0]) + assert.equal(await lockSingleKey.ownerOf(tokenId), keyOwner.address) // transfer - await lockSingleKey.transferFrom(keyOwners[0], accounts[9], tokenId, { - from: keyOwners[0], - }) + await lockSingleKey + .connect(keyOwner) + .transferFrom(keyOwner.address, keyRecipient.address, tokenId) - assert.equal(await lockSingleKey.ownerOf(tokenId), accounts[9]) + assert.equal(await lockSingleKey.ownerOf(tokenId), keyRecipient.address) }) }) }) @@ -242,22 +289,20 @@ contract('Lock / erc721 / transferFrom', (accounts) => { const lockFree = await deployLock({ name: 'FREE' }) const tx = await lockFree.purchase( [], - [accounts[1]], + [keyOwner.address], [ADDRESS_ZERO], [ADDRESS_ZERO], - [[]], - { - from: accounts[1], - } + [[]] ) - const { args } = tx.logs.find( + const { events } = await tx.wait() + const { args } = events.find( (v) => v.event === 'Transfer' && v.args.from === ADDRESS_ZERO ) const { tokenId: newTokenId } = args - await lockFree.transferFrom(accounts[1], accounts[2], newTokenId, { - from: accounts[1], - }) - assert.equal(await lockFree.ownerOf(newTokenId), accounts[2]) + await lockFree + .connect(keyOwner) + .transferFrom(keyOwner.address, keyRecipient.address, newTokenId) + assert.equal(await lockFree.ownerOf(newTokenId), keyRecipient.address) }) }) diff --git a/smart-contracts/test/Lock/erc721/uniqueTokenIds.js b/smart-contracts/test/Lock/erc721/uniqueTokenIds.js index 7812584347b..c7faf7fefd5 100644 --- a/smart-contracts/test/Lock/erc721/uniqueTokenIds.js +++ b/smart-contracts/test/Lock/erc721/uniqueTokenIds.js @@ -1,36 +1,32 @@ -const { ADDRESS_ZERO, purchaseKeys, deployLock } = require('../../helpers') +const { + ADDRESS_ZERO, + purchaseKeys, + deployLock, + compareBigNumbers, +} = require('../../helpers') const { ethers } = require('hardhat') -contract('Lock / uniqueTokenIds', (accounts) => { +describe('Lock / uniqueTokenIds', () => { let lock - let lockOwner = accounts[9] - let keyOwner1 = accounts[1] - let keyOwner2 = accounts[2] - const keyOwners = [keyOwner1, keyOwner2, accounts[3], accounts[4]] + let tokenIds before(async () => { - lock = await deployLock({ from: lockOwner }) + lock = await deployLock() + // buy some keys + ;({ tokenIds } = await purchaseKeys(lock, 5)) }) describe('extending keys', () => { it('should not duplicate tokenIDs', async () => { - // buy some keys - const { tokenIds } = await purchaseKeys(lock, keyOwners.length) - - const supply = await lock.totalSupply() - assert.equal(tokenIds[tokenIds.length - 1].toNumber(), supply.toNumber()) + compareBigNumbers(tokenIds[tokenIds.length - 1], await lock.totalSupply()) // extend a key await lock.extend(0, tokenIds[1], ADDRESS_ZERO, [], { value: ethers.utils.parseUnits('0.01', 'ether'), - from: keyOwner1, }) // make sure no new keys have been created - assert.equal( - tokenIds[tokenIds.length - 1].toNumber(), - (await lock.totalSupply()).toNumber() - ) + compareBigNumbers(tokenIds[tokenIds.length - 1], await lock.totalSupply()) }) }) }) diff --git a/smart-contracts/test/Lock/expirationDuration.js b/smart-contracts/test/Lock/expirationDuration.js index c19bb7b07ac..4cea639ab7d 100644 --- a/smart-contracts/test/Lock/expirationDuration.js +++ b/smart-contracts/test/Lock/expirationDuration.js @@ -6,11 +6,11 @@ const { assert } = require('chai') const keyPrice = ethers.utils.parseEther('0.01') -contract('Lock / expirationDuration', () => { +describe('Lock / expirationDuration', () => { let lock beforeEach(async () => { - const { unlockEthers: unlock } = await deployContracts() + const { unlock } = await deployContracts() const [from] = await ethers.getSigners() // create a new lock diff --git a/smart-contracts/test/Lock/expireAndRefundFor.js b/smart-contracts/test/Lock/expireAndRefundFor.js index a2aa9075d95..877e95dca9a 100644 --- a/smart-contracts/test/Lock/expireAndRefundFor.js +++ b/smart-contracts/test/Lock/expireAndRefundFor.js @@ -1,12 +1,8 @@ +const { assert } = require('chai') const { ethers } = require('hardhat') -const { - deployLock, - getBalanceEthers, - purchaseKeys, - reverts, -} = require('../helpers') - -contract('Lock / expireAndRefundFor', () => { +const { deployLock, getBalance, purchaseKeys, reverts } = require('../helpers') + +describe('Lock / expireAndRefundFor', () => { let lock let tokenIds let lockCreator @@ -30,8 +26,8 @@ contract('Lock / expireAndRefundFor', () => { let txFee before(async () => { - initialLockBalance = await getBalanceEthers(lock.address) - initialKeyOwnerBalance = await getBalanceEthers(keyOwners[0].address) + initialLockBalance = await getBalance(lock.address) + initialKeyOwnerBalance = await getBalance(keyOwners[0].address) const tx = await lock.expireAndRefundFor(tokenIds[0], refundAmount) const { events, gasUsed } = await tx.wait() @@ -57,7 +53,7 @@ contract('Lock / expireAndRefundFor', () => { }) it("should increase the owner's balance with the amount of funds refunded from the lock", async () => { - const finalOwnerBalance = await getBalanceEthers(keyOwners[0].address) + const finalOwnerBalance = await getBalance(keyOwners[0].address) assert( finalOwnerBalance.toString(), initialKeyOwnerBalance.add(keyPrice).sub(txFee).toString() @@ -65,7 +61,7 @@ contract('Lock / expireAndRefundFor', () => { }) it("should increase the lock's balance by the keyPrice", async () => { - const finalLockBalance = (await getBalanceEthers(lock.address)).sub( + const finalLockBalance = (await getBalance(lock.address)).sub( initialLockBalance ) diff --git a/smart-contracts/test/Lock/extend.js b/smart-contracts/test/Lock/extend.js index ee6bed4ab23..3fb5c70af2b 100644 --- a/smart-contracts/test/Lock/extend.js +++ b/smart-contracts/test/Lock/extend.js @@ -15,7 +15,7 @@ let testToken const keyPrice = ethers.utils.parseUnits('0.01', 'ether') const someTokens = ethers.utils.parseUnits('10', 'ether') -contract('Lock / extend keys', () => { +describe('Lock / extend keys', () => { scenarios.forEach((isErc20) => { let lock let nonExpiringLock diff --git a/smart-contracts/test/Lock/extendRenewable.js b/smart-contracts/test/Lock/extendRenewable.js index 511454178fd..150a24dd709 100644 --- a/smart-contracts/test/Lock/extendRenewable.js +++ b/smart-contracts/test/Lock/extendRenewable.js @@ -1,11 +1,12 @@ +const { assert } = require('chai') const { deployLock, deployERC20, reverts, purchaseKey, ADDRESS_ZERO, + increaseTimeTo, } = require('../helpers') -const { time } = require('@openzeppelin/test-helpers') const { ethers } = require('hardhat') const keyPrice = ethers.utils.parseUnits('0.01', 'ether') @@ -16,47 +17,42 @@ const someDai = ethers.utils.parseUnits('100', 'ether') let dai let lock -contract('Lock / Extend with recurring memberships', (accounts) => { - const lockOwner = accounts[0] - const keyOwner = accounts[1] +describe('Lock / Extend with recurring memberships (ERC20 only)', () => { + let lockOwner, keyOwner + // const referrer = accounts[3] before(async () => { + ;[lockOwner, keyOwner] = await ethers.getSigners() dai = await deployERC20(lockOwner) // Mint some dais for testing - await dai.mint(keyOwner, someDai, { - from: lockOwner, - }) + await dai.mint(keyOwner.address, someDai) lock = await deployLock({ tokenAddress: dai.address }) // set ERC20 approval for entire scope - await dai.approve(lock.address, someDai, { - from: keyOwner, - }) + await dai.connect(keyOwner).approve(lock.address, someDai) }) describe('Use extend() to restart recurring payments', () => { let tokenId beforeEach(async () => { // reset pricing - await lock.updateKeyPricing(keyPrice, dai.address, { from: lockOwner }) - ;({ tokenId } = await purchaseKey(lock, keyOwner, true)) + await lock.updateKeyPricing(keyPrice, dai.address) + ;({ tokenId } = await purchaseKey(lock, keyOwner.address, true)) const expirationTs = await lock.keyExpirationTimestampFor(tokenId) - await time.increaseTo(expirationTs.toNumber()) + await increaseTimeTo(expirationTs) // renew once - await lock.renewMembershipFor(tokenId, ADDRESS_ZERO, { - from: keyOwner, - }) + await lock.connect(keyOwner).renewMembershipFor(tokenId, ADDRESS_ZERO) }) describe('price changed', () => { it('should renew once key has been extended', async () => { // change price - await lock.updateKeyPricing(newPrice, dai.address, { from: lockOwner }) + await lock.updateKeyPricing(newPrice, dai.address) // fails because price has changed await reverts( @@ -65,18 +61,14 @@ contract('Lock / Extend with recurring memberships', (accounts) => { ) // user extend key - await lock.extend(newPrice, tokenId, ADDRESS_ZERO, [], { - from: keyOwner, - }) + await lock.connect(keyOwner).extend(newPrice, tokenId, ADDRESS_ZERO, []) // expire key again const newExpirationTs = await lock.keyExpirationTimestampFor(tokenId) // renewal should work - await time.increaseTo(newExpirationTs.toNumber() - 1) - await lock.renewMembershipFor(tokenId, ADDRESS_ZERO, { - from: keyOwner, - }) + await increaseTimeTo(newExpirationTs.toNumber() - 1) + await lock.connect(keyOwner).renewMembershipFor(tokenId, ADDRESS_ZERO) const tsAfter = await lock.keyExpirationTimestampFor(tokenId) const tsExpected = newExpirationTs.add(await lock.expirationDuration()) @@ -95,29 +87,24 @@ contract('Lock / Extend with recurring memberships', (accounts) => { await lock.updateLockConfig( 6000, await lock.maxNumberOfKeys(), - await lock.maxKeysPerAddress(), - { from: lockOwner } + await lock.maxKeysPerAddress() ) // fails because price has changed await reverts( - lock.renewMembershipFor(tokenId, ADDRESS_ZERO), + lock.connect(keyOwner).renewMembershipFor(tokenId, ADDRESS_ZERO), 'LOCK_HAS_CHANGED' ) // user extend key - await lock.extend(keyPrice, tokenId, ADDRESS_ZERO, [], { - from: keyOwner, - }) + await lock.connect(keyOwner).extend(keyPrice, tokenId, ADDRESS_ZERO, []) // expire key again const newExpirationTs = await lock.keyExpirationTimestampFor(tokenId) // renewal should work - await time.increaseTo(newExpirationTs.toNumber() - 1) - await lock.renewMembershipFor(tokenId, ADDRESS_ZERO, { - from: keyOwner, - }) + await increaseTimeTo(newExpirationTs.toNumber() - 1) + await lock.connect(keyOwner).renewMembershipFor(tokenId, ADDRESS_ZERO) const tsAfter = await lock.keyExpirationTimestampFor(tokenId) const tsExpected = newExpirationTs.add(await lock.expirationDuration()) @@ -132,16 +119,12 @@ contract('Lock / Extend with recurring memberships', (accounts) => { describe('token changed', () => { it('should renew once key has been extended', async () => { // deploy a new erc20 token - const xdai = await deployERC20(lockOwner) - await xdai.mint(keyOwner, someDai, { - from: lockOwner, - }) - await xdai.approve(lock.address, totalPrice, { - from: keyOwner, - }) + const xdai = await deployERC20(lockOwner.address) + await xdai.mint(keyOwner.address, someDai) + await xdai.connect(keyOwner).approve(lock.address, totalPrice) // change pricing to use new erc20 - await lock.updateKeyPricing(keyPrice, xdai.address, { from: lockOwner }) + await lock.updateKeyPricing(keyPrice, xdai.address) // fails because token has changed await reverts( @@ -150,18 +133,14 @@ contract('Lock / Extend with recurring memberships', (accounts) => { ) // user extend key - await lock.extend(keyPrice, tokenId, ADDRESS_ZERO, [], { - from: keyOwner, - }) + await lock.connect(keyOwner).extend(keyPrice, tokenId, ADDRESS_ZERO, []) // expire key again const newExpirationTs = await lock.keyExpirationTimestampFor(tokenId) - await time.increaseTo(newExpirationTs.toNumber()) + await increaseTimeTo(newExpirationTs.toNumber()) // renewal should work - await lock.renewMembershipFor(tokenId, ADDRESS_ZERO, { - from: keyOwner, - }) + await lock.connect(keyOwner).renewMembershipFor(tokenId, ADDRESS_ZERO) const tsExpected = newExpirationTs.add(await lock.expirationDuration()) const tsAfter = await lock.keyExpirationTimestampFor(tokenId) diff --git a/smart-contracts/test/Lock/freeTrial.js b/smart-contracts/test/Lock/freeTrial.js index c801c68d155..fd3658d1357 100644 --- a/smart-contracts/test/Lock/freeTrial.js +++ b/smart-contracts/test/Lock/freeTrial.js @@ -1,23 +1,27 @@ +const { assert } = require('chai') const { ethers } = require('hardhat') -const BigNumber = require('bignumber.js') -const { deployLock, getBalance, purchaseKeys } = require('../helpers') +const { + deployLock, + getBalance, + purchaseKey, + compareBigNumbers, +} = require('../helpers') -let tokenId +const keyPrice = ethers.utils.parseUnits('0.01', 'ether') -contract('Lock / freeTrial', (accounts) => { +describe('Lock / freeTrial', () => { let lock - const keyOwners = [accounts[1], accounts[2], accounts[3], accounts[4]] - const keyPrice = ethers.utils.parseUnits('0.01', 'ether') + let tokenId + let keyOwner beforeEach(async () => { lock = await deployLock() - const { tokenIds } = await purchaseKeys(lock, keyOwners.length) - ;[tokenId] = tokenIds + ;[keyOwner] = await ethers.getSigners() + ;({ tokenId } = await purchaseKey(lock, keyOwner.address)) }) it('No free trial by default', async () => { - const freeTrialLength = new BigNumber(await lock.freeTrialLength()) - assert.equal(freeTrialLength.toNumber(), 0) + compareBigNumbers(await lock.freeTrialLength(), 0) }) describe('with a free trial defined', () => { @@ -30,29 +34,25 @@ contract('Lock / freeTrial', (accounts) => { describe('should cancel and provide a full refund when enough time remains', () => { beforeEach(async () => { - await lock.cancelAndRefund(tokenId, { - from: keyOwners[0], - }) + await lock.connect(keyOwner).cancelAndRefund(tokenId) }) it('should provide a full refund', async () => { - const refundAmount = initialLockBalance.minus( + const refundAmount = initialLockBalance.sub( await getBalance(lock.address) ) - assert.equal(refundAmount.toString(), keyPrice.toString()) + compareBigNumbers(refundAmount, keyPrice) }) }) describe('should cancel and provide a partial refund after the trial expires', () => { beforeEach(async () => { await sleep(6000) - await lock.cancelAndRefund(tokenId, { - from: keyOwners[0], - }) + await lock.connect(keyOwner).cancelAndRefund(tokenId) }) it('should provide less than a full refund', async () => { - const refundAmount = initialLockBalance.minus( + const refundAmount = initialLockBalance.sub( await getBalance(lock.address) ) assert.notEqual(refundAmount.toString(), keyPrice.toString()) diff --git a/smart-contracts/test/Lock/gas.js b/smart-contracts/test/Lock/gas.js index 2e1d7008f4d..3318e05d587 100644 --- a/smart-contracts/test/Lock/gas.js +++ b/smart-contracts/test/Lock/gas.js @@ -1,20 +1,16 @@ +const { assert } = require('chai') const { ethers } = require('hardhat') -const BigNumber = require('bignumber.js') const { deployLock, ADDRESS_ZERO } = require('../helpers') const WalletService = require('../helpers/walletServiceMock.js') -let lock - -contract('Lock / gas', (accounts) => { - before(async () => { - lock = await deployLock() - }) - +describe('Lock / gas', () => { it('gas used to purchaseFor is less than wallet service limit', async () => { + const lock = await deployLock() + const [signer] = await ethers.getSigners() let tx = await lock.purchase( [], - [accounts[0]], + [signer.address], [ADDRESS_ZERO], [ADDRESS_ZERO], [[]], @@ -22,7 +18,7 @@ contract('Lock / gas', (accounts) => { value: ethers.utils.parseUnits('0.01', 'ether'), } ) - const gasUsed = new BigNumber(tx.receipt.gasUsed) + const { gasUsed } = await tx.wait() if (!process.env.TEST_COVERAGE) { assert(gasUsed.lte(WalletService.gasAmountConstants().purchaseKey)) } diff --git a/smart-contracts/test/Lock/gasRefund.js b/smart-contracts/test/Lock/gasRefund.js index ae2fcef0306..566fa5b3566 100644 --- a/smart-contracts/test/Lock/gasRefund.js +++ b/smart-contracts/test/Lock/gasRefund.js @@ -1,338 +1,269 @@ -const { BN, time } = require('@openzeppelin/test-helpers') +const { assert } = require('chai') const { getBalance, ADDRESS_ZERO, deployLock, reverts, deployERC20, + compareBigNumbers, + purchaseKey, + increaseTimeTo, } = require('../helpers') const { ethers } = require('hardhat') -const keyPrice = new BN(ethers.utils.parseEther('0.01').toString()) -const gasRefundAmount = new BN(ethers.utils.parseEther('0.001').toString()) +const keyPrice = ethers.utils.parseEther('0.01') +const gasRefundAmount = ethers.utils.parseEther('0.001') // test for ERC20 and ETH -const scenarios = [true, false] +// const scenarios = [true, false] +const scenarios = [true] const gasRefund = async (tx) => { - const { gasPrice } = await ethers.provider.getTransaction(tx.tx) - const { gasUsed } = tx.receipt + const { gasPrice } = tx + const { gasUsed } = await tx.wait() const gas = gasPrice.mul(gasUsed) const refund = keyPrice.sub(gasRefundAmount) return { gas, refund } } -contract('Lock / GasRefund', (accounts) => { +const eventFiredProperly = async ({ tx, keyOwner, tokenAddress }) => { + const { events } = await tx.wait() + const { + args: { receiver, refundedAmount, tokenAddress: refundedTokenAddress }, + } = events.find(({ event }) => event === 'GasRefunded') + + assert.equal(receiver, keyOwner.address) + compareBigNumbers(gasRefundAmount, refundedAmount) + assert.equal(refundedTokenAddress, tokenAddress) +} + +const gasRefundedProperly = async ({ + tx, + keyOwner, + userBalanceBefore, + isErc20, + testToken, +}) => { + const userBalanceAfter = await getBalance( + keyOwner.address, + isErc20 ? testToken.address : null + ) + + const { gas, refund } = await gasRefund(tx) + + const expected = isErc20 + ? // buy a key, get a refund + userBalanceBefore.sub(refund) + : userBalanceBefore + // buy a key, get a refund + .sub(refund) + .sub(gas) // pay for the gas + + compareBigNumbers(userBalanceAfter, expected) +} + +describe('Lock / GasRefund', () => { let lock let tokenAddress = ADDRESS_ZERO - let userBalanceBefore - let tx let testToken + let lockCreator, lockManager, keyOwner, deployer, random scenarios.forEach((isErc20) => { describe(`purchase with gas refund using ${ isErc20 ? 'ERC20' : 'ETH' }`, () => { beforeEach(async () => { - testToken = await deployERC20(accounts[0]) + ;[lockCreator, lockManager, keyOwner, deployer, random] = + await ethers.getSigners() + testToken = await deployERC20(deployer.address) // Mint some tokens for testing - await testToken.mint(accounts[2], ethers.utils.parseEther('100'), { - from: accounts[0], - }) + await testToken + .connect(deployer) + .mint(keyOwner.address, ethers.utils.parseEther('100')) // deploy lock w ERC20 tokenAddress = isErc20 ? testToken.address : ADDRESS_ZERO - lock = await deployLock({ tokenAddress }) + lock = await deployLock({ tokenAddress, from: lockCreator }) // Approve spending - await testToken.approve( - lock.address, - ethers.BigNumber.from(keyPrice.toString()).add( - gasRefundAmount.toString() - ), - { - from: accounts[2], - } - ) + await testToken + .connect(keyOwner) + .approve(lock.address, keyPrice.add(gasRefundAmount)) }) describe('gas refund value', () => { it('default to zero', async () => { - assert.equal((await lock.gasRefundValue()).toNumber(), 0) + compareBigNumbers(await lock.gasRefundValue(), 0) }) it('get set properly', async () => { await lock.setGasRefundValue(gasRefundAmount) - assert.equal((await lock.gasRefundValue()).eq(gasRefundAmount), true) + compareBigNumbers(await lock.gasRefundValue(), gasRefundAmount) }) it('emits an event', async () => { const tx = await lock.setGasRefundValue(gasRefundAmount) - const { args } = tx.logs.find( + const { events } = await tx.wait() + const { args } = events.find( ({ event }) => event === 'GasRefundValueChanged' ) - assert.equal((await lock.gasRefundValue()).eq(gasRefundAmount), true) - assert.equal(args.refundValue.eq(gasRefundAmount), true) + compareBigNumbers(await lock.gasRefundValue(), gasRefundAmount) + compareBigNumbers(args.refundValue, gasRefundAmount) }) it('can not be set if caller is not lock manager', async () => { await reverts( - lock.setGasRefundValue(gasRefundAmount, { - from: accounts[3], - }), + lock.connect(random).setGasRefundValue(gasRefundAmount), 'ONLY_LOCK_MANAGER' ) }) it('can be set by lock manager', async () => { - await lock.addLockManager(accounts[5], { from: accounts[0] }) - await lock.setGasRefundValue(gasRefundAmount, { from: accounts[5] }) - assert.equal((await lock.gasRefundValue()).eq(gasRefundAmount), true) - }) - }) - - describe('purchase() / gas refund', () => { - // test with both ETH and ERC20 - beforeEach(async () => { - // set gasRefund - await lock.setGasRefundValue(gasRefundAmount) - - userBalanceBefore = await getBalance( - accounts[2], - isErc20 ? testToken.address : null - ) - - tx = await lock.purchase( - [keyPrice.toString()], - [accounts[2]], - [tokenAddress], - [ADDRESS_ZERO], - [[]], - { - from: accounts[2], - value: isErc20 ? 0 : keyPrice.toString(), - } - ) - }) - - it('gas refunded event is fired', async () => { - const evt = tx.logs.find((v) => v.event === 'GasRefunded') - const { - receiver, - refundedAmount, - tokenAddress: refundedTokenAddress, - } = evt.args - - assert.equal(receiver, accounts[2]) - assert.equal(refundedAmount.eq(gasRefundAmount), true) - assert.equal(refundedTokenAddress, tokenAddress) - }) - - it('user gas has been refunded', async () => { - const userBalanceAfter = await getBalance( - accounts[2], - isErc20 ? testToken.address : null - ) - - const { gas, refund } = await gasRefund(tx) - - const expected = isErc20 - ? // buy a key, get a refund - userBalanceBefore.minus(refund) - : userBalanceBefore - // buy a key, get a refund - .minus(refund) - .minus(gas.toString()) // pay for the gas - - assert.equal(userBalanceAfter.toString(), expected.toString()) + await lock.addLockManager(lockManager.address) + await lock.connect(lockManager).setGasRefundValue(gasRefundAmount) + compareBigNumbers(await lock.gasRefundValue(), gasRefundAmount) }) }) - describe('extend() / gas refund', () => { - // test with both ETH and ERC20 - beforeEach(async () => { - // set gasRefund - await lock.setGasRefundValue(gasRefundAmount) - - const txPurchase = await lock.purchase( - [keyPrice.toString()], - [accounts[2]], - [tokenAddress], - [ADDRESS_ZERO], - [[]], - { - from: accounts[2], - value: isErc20 ? 0 : keyPrice.toString(), - } - ) - - // Approve some more spending - await testToken.approve( - lock.address, - new BN(keyPrice).add(gasRefundAmount), - { - from: accounts[2], - } - ) - - // balance before extending - userBalanceBefore = await getBalance( - accounts[2], - isErc20 ? testToken.address : null - ) - - const { args } = txPurchase.logs.find((v) => v.event === 'Transfer') - tx = await lock.extend( - isErc20 ? keyPrice : 0, - args.tokenId, - ADDRESS_ZERO, - [], - { - value: isErc20 ? 0 : keyPrice.toString(), - from: accounts[2], - } - ) - }) - - it('gas refunded event is fired', async () => { - const evt = tx.logs.find((v) => v.event === 'GasRefunded') - const { - receiver, - refundedAmount, - tokenAddress: refundedTokenAddress, - } = evt.args - - assert.equal(receiver, accounts[2]) - assert.equal(refundedAmount.eq(gasRefundAmount), true) - assert.equal(refundedTokenAddress, tokenAddress) - }) - - it('user gas has been refunded', async () => { - const userBalanceAfter = await getBalance( - accounts[2], - isErc20 ? testToken.address : null - ) - - const { gas, refund } = await gasRefund(tx) + describe('gas refund', () => { + let userBalanceBefore + let tx - const expected = isErc20 - ? // buy a key, get a refund - userBalanceBefore.minus(refund) - : userBalanceBefore - // buy a key, get a refund - .minus(refund) - .minus(gas.toString()) // pay for the gas + describe('purchase()', () => { + beforeEach(async () => { + // set gasRefund + await lock.setGasRefundValue(gasRefundAmount) - assert.equal(userBalanceAfter.toString(), expected.toString()) + userBalanceBefore = await getBalance( + keyOwner.address, + isErc20 ? testToken.address : null + ) + ;({ tx } = await purchaseKey(lock, keyOwner.address, isErc20)) + }) + it('gas refunded event is fired', async () => { + await eventFiredProperly({ tx, lock, keyOwner, tokenAddress }) + }) + it('user gas has been refunded', async () => { + await gasRefundedProperly({ + tx, + keyOwner, + userBalanceBefore, + isErc20, + testToken, + }) + }) }) - }) - describe('renewMembershipFor() / gas refund', () => { - // test only with ERC20 - if (isErc20) { + describe('extend()', () => { beforeEach(async () => { // set gasRefund await lock.setGasRefundValue(gasRefundAmount) - - const txPurchase = await lock.purchase( - [keyPrice.toString()], - [accounts[2]], - [tokenAddress], - [ADDRESS_ZERO], - [[]], - { - from: accounts[2], - value: 0, - } + const { tokenId } = await purchaseKey( + lock, + keyOwner.address, + isErc20 ) - const { args } = txPurchase.logs.find((v) => v.event === 'Transfer') - const { tokenId } = args - // Approve some more spending - await testToken.approve( - lock.address, - new BN(keyPrice).add(gasRefundAmount), - { - from: accounts[2], - } - ) + await testToken + .connect(keyOwner) + .approve(lock.address, keyPrice.add(gasRefundAmount)) // balance before extending - userBalanceBefore = await getBalance(accounts[2], testToken.address) - - // advance time to expiration - const expirationTs = await lock.keyExpirationTimestampFor(tokenId) - await time.increaseTo(expirationTs.toNumber()) + userBalanceBefore = await getBalance( + keyOwner.address, + isErc20 ? testToken.address : null + ) - tx = await lock.renewMembershipFor(tokenId, ADDRESS_ZERO, { - from: accounts[2], - }) + tx = await lock + .connect(keyOwner) + .extend(isErc20 ? keyPrice : 0, tokenId, ADDRESS_ZERO, [], { + value: isErc20 ? 0 : keyPrice.toString(), + }) }) - it('gas refunded event is fired', async () => { - const evt = tx.logs.find((v) => v.event === 'GasRefunded') - const { - receiver, - refundedAmount, - tokenAddress: refundedTokenAddress, - } = evt.args - - assert.equal(receiver, accounts[2]) - assert.equal(refundedAmount.eq(gasRefundAmount), true) - assert.equal(refundedTokenAddress, tokenAddress) + await eventFiredProperly({ tx, lock, keyOwner, tokenAddress }) }) - it('user gas has been refunded', async () => { - const userBalanceAfter = await getBalance( - accounts[2], - testToken.address - ) + await gasRefundedProperly({ + tx, + keyOwner, + userBalanceBefore, + isErc20, + testToken, + }) + }) + }) - const { gas, refund } = await gasRefund(tx) - const expected = isErc20 - ? // buy a key, get a refund - userBalanceBefore.minus(refund) - : userBalanceBefore - // buy a key, get a refund - .minus(refund) - .minus(gas.toString()) // pay for the gas + describe('renewMembershipFor()', () => { + // test only with ERC20 + if (isErc20) { + beforeEach(async () => { + // set gasRefund + await lock.setGasRefundValue(gasRefundAmount) + const { tokenId } = await purchaseKey( + lock, + keyOwner.address, + isErc20 + ) + + // Approve some more spending + await testToken + .connect(keyOwner) + .approve(lock.address, keyPrice.add(gasRefundAmount)) + + // balance before extending + userBalanceBefore = await getBalance( + keyOwner.address, + testToken.address + ) + + // advance time to expiration + const expirationTs = await lock.keyExpirationTimestampFor(tokenId) + await increaseTimeTo(expirationTs) + + tx = await lock + .connect(keyOwner) + .renewMembershipFor(tokenId, ADDRESS_ZERO) + }) - assert.equal(userBalanceAfter.toString(), expected.toString()) - }) - } + it('gas refunded event is fired', async () => { + await eventFiredProperly({ tx, lock, keyOwner, tokenAddress }) + }) + it('user gas has been refunded', async () => { + await gasRefundedProperly({ + tx, + keyOwner, + userBalanceBefore, + isErc20, + testToken, + }) + }) + } + }) }) describe('purchase without gas refund', () => { let tx + let userBalanceBefore beforeEach(async () => { userBalanceBefore = await getBalance( - accounts[2], + keyOwner.address, isErc20 ? testToken.address : null ) - - tx = await lock.purchase( - [keyPrice.toString()], - [accounts[2]], - [ADDRESS_ZERO], - [ADDRESS_ZERO], - [[]], - { - from: accounts[2], - value: isErc20 ? 0 : keyPrice.toString(), - } - ) + ;({ tx } = await purchaseKey(lock, keyOwner.address, isErc20)) }) it('does not fire refunded event', async () => { - const evt = tx.logs.find((v) => v.event === 'GasRefunded') + const { events } = await tx.wait() + const evt = events.find(({ event }) => event === 'GasRefunded') assert.equal(evt, undefined) }) it('user gas is not refunded', async () => { const userBalanceAfter = await getBalance( - accounts[2], + keyOwner.address, isErc20 ? testToken.address : null ) @@ -340,12 +271,12 @@ contract('Lock / GasRefund', (accounts) => { const { gas } = await gasRefund(tx) const expected = isErc20 - ? userBalanceBefore.minus(keyPrice) // buy a key + ? userBalanceBefore.sub(keyPrice) // buy a key : userBalanceBefore - .minus(keyPrice) // buy a key - .minus(gas.toString()) // pay for the gas + .sub(keyPrice) // buy a key + .sub(gas.toString()) // pay for the gas - assert.equal(userBalanceAfter.toString(), expected.toString()) + compareBigNumbers(userBalanceAfter, expected) }) }) }) diff --git a/smart-contracts/test/Lock/getHasValidKey.js b/smart-contracts/test/Lock/getHasValidKey.js index c57b9c31406..f0688892840 100644 --- a/smart-contracts/test/Lock/getHasValidKey.js +++ b/smart-contracts/test/Lock/getHasValidKey.js @@ -1,44 +1,43 @@ +const { assert } = require('chai') const { ADDRESS_ZERO, purchaseKey, deployLock } = require('../helpers') const { ethers } = require('hardhat') -contract('Lock / getHasValidKey', (accounts) => { +describe('Lock / getHasValidKey', () => { let lock let tokenId - let keyOwner - let keyOwnerSigner + let keyOwner, receiver beforeEach(async () => { - lock = await deployLock({ isEthers: true }) - ;[, keyOwnerSigner] = await ethers.getSigners() - keyOwner = keyOwnerSigner.address + lock = await deployLock() + ;[, keyOwner, receiver] = await ethers.getSigners() await lock.updateTransferFee(0) // disable the transfer fee for this test }) it('should be false before purchasing a key', async () => { - const isValid = await lock.getHasValidKey(keyOwner) + const isValid = await lock.getHasValidKey(keyOwner.address) assert.equal(isValid, false) }) describe('after purchase', () => { beforeEach(async () => { - ;({ tokenId } = await purchaseKey(lock, keyOwner)) + ;({ tokenId } = await purchaseKey(lock, keyOwner.address)) }) it('should be true', async () => { - assert.equal((await lock.balanceOf(keyOwner)).toNumber(), 1) - const isValid = await lock.getHasValidKey(keyOwner) + assert.equal((await lock.balanceOf(keyOwner.address)).toNumber(), 1) + const isValid = await lock.getHasValidKey(keyOwner.address) assert.equal(isValid, true) }) describe('after transfering a previously purchased key', () => { beforeEach(async () => { await lock - .connect(keyOwnerSigner) - .transferFrom(keyOwner, accounts[5], tokenId) + .connect(keyOwner) + .transferFrom(keyOwner.address, receiver.address, tokenId) }) it('should be false', async () => { - const isValid = await lock.getHasValidKey(keyOwner) + const isValid = await lock.getHasValidKey(keyOwner.address) assert.equal(isValid, false) }) }) @@ -49,7 +48,7 @@ contract('Lock / getHasValidKey', (accounts) => { beforeEach(async () => { const tx = await lock.purchase( [], - [keyOwner, keyOwner, keyOwner], + [keyOwner.address, keyOwner.address, keyOwner.address], [ADDRESS_ZERO, ADDRESS_ZERO, ADDRESS_ZERO], [ADDRESS_ZERO, ADDRESS_ZERO, ADDRESS_ZERO], [[], [], []], @@ -64,31 +63,31 @@ contract('Lock / getHasValidKey', (accounts) => { }) it('should be true', async () => { - const isValid = await lock.getHasValidKey(keyOwner) + const isValid = await lock.getHasValidKey(keyOwner.address) assert.equal(isValid, true) }) describe('after transfering one of the purchased key', () => { beforeEach(async () => { await lock - .connect(keyOwnerSigner) - .transferFrom(keyOwner, accounts[5], tokenIds[0]) + .connect(keyOwner) + .transferFrom(keyOwner.address, receiver.address, tokenIds[0]) }) it('should still be true', async () => { - const isValid = await lock.getHasValidKey(keyOwner) + const isValid = await lock.getHasValidKey(keyOwner.address) assert.equal(isValid, true) - assert.equal(await lock.getHasValidKey(accounts[5]), true) + assert.equal(await lock.getHasValidKey(receiver.address), true) }) }) describe('after cancelling one of the purchased key', () => { beforeEach(async () => { - await lock.connect(keyOwnerSigner).cancelAndRefund(tokenIds[1]) + await lock.connect(keyOwner).cancelAndRefund(tokenIds[1]) }) it('should be true', async () => { - const isValid = await lock.getHasValidKey(keyOwner) + const isValid = await lock.getHasValidKey(keyOwner.address) assert.equal(isValid, true) }) }) @@ -97,15 +96,17 @@ contract('Lock / getHasValidKey', (accounts) => { beforeEach(async () => { await Promise.all( tokenIds.map((id) => - lock.connect(keyOwnerSigner).transferFrom(keyOwner, accounts[5], id) + lock + .connect(keyOwner) + .transferFrom(keyOwner.address, receiver.address, id) ) ) }) it('should be false', async () => { - assert.equal((await lock.balanceOf(keyOwner)).toNumber(), 0) - assert.equal((await lock.balanceOf(accounts[5])).toNumber(), 3) - const isValid = await lock.getHasValidKey(keyOwner) + assert.equal((await lock.balanceOf(keyOwner.address)).toNumber(), 0) + assert.equal((await lock.balanceOf(receiver.address)).toNumber(), 3) + const isValid = await lock.getHasValidKey(keyOwner.address) assert.equal(isValid, false) }) }) diff --git a/smart-contracts/test/Lock/grantKeyExtension.js b/smart-contracts/test/Lock/grantKeyExtension.js index 49ecf6734ac..aaae5928966 100644 --- a/smart-contracts/test/Lock/grantKeyExtension.js +++ b/smart-contracts/test/Lock/grantKeyExtension.js @@ -1,49 +1,53 @@ +const { assert } = require('chai') const { ethers } = require('hardhat') -const { deployLock, reverts, ADDRESS_ZERO } = require('../helpers') +const { + deployLock, + reverts, + ADDRESS_ZERO, + compareBigNumbers, +} = require('../helpers') let lock -let tx // 10 minutes const duration = 60 * 60 * 10 -contract('Lock / grantKeyExtension', (accounts) => { - const lockCreator = accounts[1] - const keyOwner = accounts[2] +describe('Lock / grantKeyExtension', () => { + let keyOwner, attacker + let tokenId - let evt + let args let validExpirationTimestamp before(async () => { + ;[, keyOwner, attacker] = await ethers.getSigners() + const blockNumber = await ethers.provider.getBlockNumber() const latestBlock = await ethers.provider.getBlock(blockNumber) validExpirationTimestamp = Math.round(latestBlock.timestamp + 600) - lock = await deployLock({ from: lockCreator }) + lock = await deployLock() // the lock creator is assigned the KeyGranter role by default - tx = await lock.grantKeys( - [keyOwner], + const tx = await lock.grantKeys( + [keyOwner.address], [validExpirationTimestamp], - [ADDRESS_ZERO], - { - from: lockCreator, - } + [ADDRESS_ZERO] ) - evt = tx.logs.find((v) => v.event === 'Transfer') - tokenId = evt.args.tokenId + const { events } = await tx.wait() + ;({ args } = events.find(({ event }) => event === 'Transfer')) + ;({ tokenId } = args) }) describe('extend a valid key without a specific duration', () => { - let tx - let tsBefore + let tsBefore, args before(async () => { assert.equal(await lock.isValidKey(tokenId), true) tsBefore = await lock.keyExpirationTimestampFor(tokenId) // extend - tx = await lock.grantKeyExtension(tokenId, 0, { - from: lockCreator, - }) + const tx = await lock.grantKeyExtension(tokenId, 0) + const { events } = await tx.wait() + ;({ args } = events.find(({ event }) => event === 'KeyExtended')) }) it('key should stay valid', async () => { @@ -53,30 +57,25 @@ contract('Lock / grantKeyExtension', (accounts) => { it('duration has been extended accordingly', async () => { const expirationDuration = await lock.expirationDuration() const tsAfter = await lock.keyExpirationTimestampFor(tokenId) - assert.equal( - tsBefore.add(expirationDuration).toString(), - tsAfter.toString() - ) + compareBigNumbers(tsBefore.add(expirationDuration), tsAfter) }) it('should emit a KeyExtended event', async () => { const tsAfter = await lock.keyExpirationTimestampFor(tokenId) - const { args } = tx.logs.find((v) => v.event === 'KeyExtended') - assert.equal(args.tokenId.toNumber(), tokenId.toNumber()) - assert.equal(args.newTimestamp.toNumber(), tsAfter.toNumber()) + compareBigNumbers(args.tokenId, tokenId) + compareBigNumbers(args.newTimestamp, tsAfter) }) }) describe('extend a valid key with a specific duration', () => { - let tx - let tsBefore + let tsBefore, args before(async () => { assert.equal(await lock.isValidKey(tokenId), true) tsBefore = await lock.keyExpirationTimestampFor(tokenId) // extend - tx = await lock.grantKeyExtension(tokenId, duration, { - from: lockCreator, - }) + const tx = await lock.grantKeyExtension(tokenId, duration) + const { events } = await tx.wait() + ;({ args } = events.find(({ event }) => event === 'KeyExtended')) }) it('key should stay valid', async () => { @@ -85,29 +84,24 @@ contract('Lock / grantKeyExtension', (accounts) => { it('duration has been extended accordingly', async () => { const tsAfter = await lock.keyExpirationTimestampFor(tokenId) - assert.equal(tsBefore.toNumber() + duration, tsAfter.toNumber()) + compareBigNumbers(tsBefore.add(duration), tsAfter) }) it('should emit a KeyExtended event', async () => { const tsAfter = await lock.keyExpirationTimestampFor(tokenId) - const { args } = tx.logs.find((v) => v.event === 'KeyExtended') - assert.equal(args.tokenId.toNumber(), tokenId.toNumber()) - assert.equal(args.newTimestamp.toNumber(), tsAfter.toNumber()) + compareBigNumbers(args.tokenId, tokenId) + compareBigNumbers(args.newTimestamp, tsAfter) }) }) describe('extend an expired key', () => { before(async () => { // expire key - await lock.expireAndRefundFor(tokenId, 0, { - from: lockCreator, - }) + await lock.expireAndRefundFor(tokenId, 0) assert.equal(await lock.isValidKey(tokenId), false) // extend - tx = await lock.grantKeyExtension(tokenId, 0, { - from: lockCreator, - }) + await lock.grantKeyExtension(tokenId, 0) }) it('key should stay valid', async () => { @@ -118,11 +112,8 @@ contract('Lock / grantKeyExtension', (accounts) => { const expirationDuration = await lock.expirationDuration() const tsAfter = await lock.keyExpirationTimestampFor(tokenId) const blockNumber = await ethers.provider.getBlockNumber() - const latestBlock = await ethers.provider.getBlock(blockNumber) - assert.equal( - latestBlock.timestamp + expirationDuration.toNumber(), - tsAfter.toNumber() - ) + const { timestamp } = await ethers.provider.getBlock(blockNumber) + compareBigNumbers(expirationDuration.add(timestamp), tsAfter) }) }) @@ -130,19 +121,16 @@ contract('Lock / grantKeyExtension', (accounts) => { // By default, the lockCreator has both the LockManager & KeyGranter roles it('if called by anyone but LockManager or KeyGranter', async () => { await reverts( - lock.grantKeyExtension(tokenId, duration, { from: keyOwner }), + lock.connect(keyOwner).grantKeyExtension(tokenId, duration), 'ONLY_LOCK_MANAGER_OR_KEY_GRANTER' ) await reverts( - lock.grantKeyExtension(tokenId, duration, { from: accounts[9] }), + lock.connect(attacker).grantKeyExtension(tokenId, duration), 'ONLY_LOCK_MANAGER_OR_KEY_GRANTER' ) }) it('if key is not valid', async () => { - await reverts( - lock.grantKeyExtension(123, duration, { from: lockCreator }), - 'NO_SUCH_KEY' - ) + await reverts(lock.grantKeyExtension(123, duration), 'NO_SUCH_KEY') }) }) }) diff --git a/smart-contracts/test/Lock/grantKeys.js b/smart-contracts/test/Lock/grantKeys.js index 7ed820850b8..465a8c1dbad 100644 --- a/smart-contracts/test/Lock/grantKeys.js +++ b/smart-contracts/test/Lock/grantKeys.js @@ -1,95 +1,91 @@ +const { assert } = require('chai') const { ethers } = require('hardhat') const { reverts, deployLock, ADDRESS_ZERO } = require('../helpers') let lock let tx -contract('Lock / grantKeys', (accounts) => { - const lockCreator = accounts[1] - const keyOwner = accounts[2] +describe('Lock / grantKeys', () => { + let keyOwner, attacker, signers let validExpirationTimestamp before(async () => { + ;[, keyOwner, attacker, ...signers] = await ethers.getSigners() const blockNumber = await ethers.provider.getBlockNumber() const latestBlock = await ethers.provider.getBlock(blockNumber) validExpirationTimestamp = Math.round(latestBlock.timestamp + 600) - lock = await deployLock({ from: lockCreator }) + lock = await deployLock() }) describe('can grant key(s)', () => { describe('can grant a key for a new user', () => { - let evt + let args before(async () => { // the lock creator is assigned the KeyGranter role by default tx = await lock.grantKeys( - [keyOwner], + [keyOwner.address], [validExpirationTimestamp], - [ADDRESS_ZERO], - { - from: lockCreator, - } + [ADDRESS_ZERO] ) - evt = tx.logs.find((v) => v.event === 'Transfer') + const { events } = await tx.wait() + ;({ args } = events.find(({ event }) => event === 'Transfer')) }) it('should log Transfer event', async () => { - assert.equal(evt.event, 'Transfer') - assert.equal(evt.args.from, 0) - assert.equal(evt.args.to, accounts[2]) + assert.equal(args.from, 0) + assert.equal(args.to, keyOwner.address) }) it('should acknowledge that user owns key', async () => { - assert.equal(await lock.ownerOf(evt.args.tokenId), keyOwner) + assert.equal(await lock.ownerOf(args.tokenId), keyOwner.address) }) it('getHasValidKey is true', async () => { - assert.equal(await lock.getHasValidKey(keyOwner), true) + assert.equal(await lock.getHasValidKey(keyOwner.address), true) }) }) describe('bulk grant keys', () => { - const keyOwnerList = [accounts[3], accounts[4], accounts[5]] + let keyOwnerList + + before(async () => { + keyOwnerList = signers.map(({ address }) => address).splice(4, 6) + }) it('should fail to grant keys when expiration dates are missing', async () => { await reverts( lock.grantKeys( keyOwnerList, [validExpirationTimestamp], - [ADDRESS_ZERO], - { - from: lockCreator, - } + [ADDRESS_ZERO] ), `panic code 0x32` ) }) - }) - - it('can bulk grant keys using unique expiration dates', async () => { - const keyOwnerList = [accounts[6], accounts[7]] - const expirationDates = [ - validExpirationTimestamp, - validExpirationTimestamp + 42, - ] - before(async () => { - tx = await lock.methods['grantKeys(uint256[],uint256[])']( - keyOwnerList, - expirationDates, - { from: lockCreator } + it('can bulk grant keys using unique expiration dates', async () => { + const expirationDates = keyOwnerList.map( + (k, i) => validExpirationTimestamp + i * 3 ) - }) - it('should acknowledge that user owns key', async () => { - for (let i = 0; i < keyOwnerList.length; i++) { - assert.equal(await lock.balanceOf(keyOwnerList[i]), 1) - } - }) + before(async () => { + tx = await lock.methods['grantKeys(uint256[],uint256[])']( + keyOwnerList, + expirationDates + ) + }) - it('getHasValidKey is true', async () => { - for (let i = 0; i < keyOwnerList.length; i++) { - assert.equal(await lock.getHasValidKey(keyOwnerList[i]), true) - } + it('should acknowledge that user owns key', async () => { + for (let i = 0; i < keyOwnerList.length; i++) { + assert.equal(await lock.balanceOf(keyOwnerList[i]), 1) + } + }) + + it('getHasValidKey is true', async () => { + for (let i = 0; i < keyOwnerList.length; i++) { + assert.equal(await lock.getHasValidKey(keyOwnerList[i]), true) + } + }) }) }) }) @@ -100,10 +96,7 @@ contract('Lock / grantKeys', (accounts) => { lock.grantKeys( [ADDRESS_ZERO], [validExpirationTimestamp], - [ADDRESS_ZERO], - { - from: lockCreator, - } + [ADDRESS_ZERO] ), 'INVALID_ADDRESS' ) @@ -112,15 +105,14 @@ contract('Lock / grantKeys', (accounts) => { // By default, the lockCreator has both the LockManager & KeyGranter roles it('should fail if called by anyone but LockManager or KeyGranter', async () => { await reverts( - lock.grantKeys([keyOwner], [validExpirationTimestamp], [ADDRESS_ZERO], { - from: keyOwner, - }) - ) - - await reverts( - lock.grantKeys([keyOwner], [validExpirationTimestamp], [ADDRESS_ZERO], { - from: accounts[9], - }) + lock + .connect(attacker) + .grantKeys( + [keyOwner.address], + [validExpirationTimestamp], + [ADDRESS_ZERO] + ), + 'ONLY_LOCK_MANAGER_OR_KEY_GRANTER' ) }) }) diff --git a/smart-contracts/test/Lock/hooks/DiscountCodeHook.js b/smart-contracts/test/Lock/hooks/DiscountCodeHook.js index bd9571f0c48..aacee853eec 100644 --- a/smart-contracts/test/Lock/hooks/DiscountCodeHook.js +++ b/smart-contracts/test/Lock/hooks/DiscountCodeHook.js @@ -1,3 +1,4 @@ +const { assert } = require('chai') const { expect } = require('chai') const { ethers, unlock } = require('hardhat') diff --git a/smart-contracts/test/Lock/hooks/erc1155BalanceOfHook.js b/smart-contracts/test/Lock/hooks/erc1155BalanceOfHook.js index 71ff4f6cfa3..3ce194197da 100644 --- a/smart-contracts/test/Lock/hooks/erc1155BalanceOfHook.js +++ b/smart-contracts/test/Lock/hooks/erc1155BalanceOfHook.js @@ -1,3 +1,4 @@ +const { assert } = require('chai') const { ethers } = require('hardhat') const { deployLock, @@ -12,7 +13,7 @@ let nft const GOLD = 1 -contract('ERC1155BalanceOfHook', () => { +describe('ERC1155BalanceOfHook', () => { let nftOwner let keyOwner let randomSigner diff --git a/smart-contracts/test/Lock/hooks/erc20BalanceOfHook.js b/smart-contracts/test/Lock/hooks/erc20BalanceOfHook.js index 86fc592edec..78fc7dc6e8a 100644 --- a/smart-contracts/test/Lock/hooks/erc20BalanceOfHook.js +++ b/smart-contracts/test/Lock/hooks/erc20BalanceOfHook.js @@ -1,33 +1,34 @@ const { ethers } = require('hardhat') - +const { assert } = require('chai') const { reverts, ADDRESS_ZERO, purchaseKey, deployLock, + deployERC20, + compareBigNumbers, } = require('../../helpers') -const Erc20TokenUriHook = artifacts.require('ERC20BalanceOfHook') -const TestERC20 = artifacts.require('TestERC20') - let lock let hook let token +let deployer, tokenOwner, keyOwner, attacker const minAmount = ethers.utils.parseEther('0.05') -contract('ERC20BalanceOfHook', (accounts) => { - const tokenOwner = accounts[2] - const keyOwner = accounts[3] - +describe('ERC20BalanceOfHook', () => { beforeEach(async () => { + ;[deployer, tokenOwner, keyOwner, attacker] = await ethers.getSigners() lock = await deployLock() // deploy some ERC20 - token = await TestERC20.new() + token = await deployERC20(deployer.address) // deploy the hook - hook = await Erc20TokenUriHook.new() + const Erc20TokenUriHook = await ethers.getContractFactory( + 'ERC20BalanceOfHook' + ) + hook = await Erc20TokenUriHook.deploy() // set the hook await lock.setEventHooks( @@ -49,26 +50,23 @@ contract('ERC20BalanceOfHook', (accounts) => { assert.equal(await hook.tokenAddresses(lock.address), token.address) }) it('should record the corresponding min amount', async () => { - assert.equal( - (await hook.minAmounts(lock.address)).toString(), - minAmount.toString() - ) + compareBigNumbers(await hook.minAmounts(lock.address), minAmount) }) it('should only allow lock managers to set mapping', async () => { await reverts( - hook.createMapping(lock.address, token.address, minAmount.toString(), { - from: accounts[5], - }), + hook + .connect(attacker) + .createMapping(lock.address, token.address, minAmount), 'Caller does not have the LockManager role' ) }) it('throws on zero addresses', async () => { await reverts( - hook.createMapping(ADDRESS_ZERO, token.address, minAmount.toString()), + hook.createMapping(ADDRESS_ZERO, token.address, minAmount), 'Lock address can not be zero' ) await reverts( - hook.createMapping(lock.address, ADDRESS_ZERO, minAmount.toString()), + hook.createMapping(lock.address, ADDRESS_ZERO, minAmount), 'ERC20 address can not be zero' ) await reverts( @@ -80,102 +78,102 @@ contract('ERC20BalanceOfHook', (accounts) => { describe('mapping is not set', () => { it('with no valid key', async () => { - assert.equal(await lock.getHasValidKey(keyOwner), false) + assert.equal(await lock.getHasValidKey(keyOwner.address), false) }) it('with a valid key', async () => { // buy a key - await purchaseKey(lock, keyOwner) - assert.equal(await lock.getHasValidKey(keyOwner), true) + await purchaseKey(lock, keyOwner.address) + assert.equal(await lock.getHasValidKey(keyOwner.address), true) }) it('with an expired key', async () => { // buy a key - const { tokenId } = await purchaseKey(lock, keyOwner) - assert.equal(await lock.getHasValidKey(keyOwner), true) + const { tokenId } = await purchaseKey(lock, keyOwner.address) + assert.equal(await lock.getHasValidKey(keyOwner.address), true) // expire the key await lock.expireAndRefundFor(tokenId, 0) - assert.equal(await lock.getHasValidKey(keyOwner), false) + assert.equal(await lock.getHasValidKey(keyOwner.address), false) }) }) describe('mapping is set, account holds less than necessary', () => { beforeEach(async () => { // mint one token - await token.mint(tokenOwner, ethers.utils.parseEther('0.01')) + await token.mint(tokenOwner.address, ethers.utils.parseEther('0.01')) // create mapping await hook.createMapping(lock.address, token.address, minAmount) }) it('with no valid key', async () => { - assert.equal(await lock.getHasValidKey(tokenOwner), false) + assert.equal(await lock.getHasValidKey(tokenOwner.address), false) }) it('with a valid key', async () => { // buy a key - await purchaseKey(lock, tokenOwner) - assert.equal(await lock.getHasValidKey(tokenOwner), true) + await purchaseKey(lock, tokenOwner.address) + assert.equal(await lock.getHasValidKey(tokenOwner.address), true) }) it('with an expired key', async () => { // buy a key - const { tokenId } = await purchaseKey(lock, tokenOwner) - assert.equal(await lock.getHasValidKey(tokenOwner), true) + const { tokenId } = await purchaseKey(lock, tokenOwner.address) + assert.equal(await lock.getHasValidKey(tokenOwner.address), true) // expire the key await lock.expireAndRefundFor(tokenId, 0) - assert.equal(await lock.getHasValidKey(tokenOwner), false) + assert.equal(await lock.getHasValidKey(tokenOwner.address), false) }) }) describe('mapping is set, account holds more than necessary', () => { beforeEach(async () => { // mint one token - await token.mint(tokenOwner, ethers.utils.parseEther('0.5')) + await token.mint(tokenOwner.address, ethers.utils.parseEther('0.5')) // create mapping await hook.createMapping(lock.address, token.address, minAmount) }) it('with no valid key', async () => { - assert.equal(await lock.getHasValidKey(tokenOwner), true) + assert.equal(await lock.getHasValidKey(tokenOwner.address), true) }) it('with a valid key', async () => { // buy a key - await purchaseKey(lock, tokenOwner) - assert.equal(await lock.getHasValidKey(tokenOwner), true) + await purchaseKey(lock, tokenOwner.address) + assert.equal(await lock.getHasValidKey(tokenOwner.address), true) }) it('with an expired key', async () => { // buy a key - const { tokenId } = await purchaseKey(lock, tokenOwner) - assert.equal(await lock.getHasValidKey(tokenOwner), true) + const { tokenId } = await purchaseKey(lock, tokenOwner.address) + assert.equal(await lock.getHasValidKey(tokenOwner.address), true) // expire the key await lock.expireAndRefundFor(tokenId, 0) - assert.equal(await lock.getHasValidKey(tokenOwner), true) + assert.equal(await lock.getHasValidKey(tokenOwner.address), true) }) }) describe('mapping is set, account holds just as much as necessary', () => { beforeEach(async () => { // mint one token - await token.mint(tokenOwner, minAmount) + await token.mint(tokenOwner.address, minAmount) // create mapping await hook.createMapping(lock.address, token.address, minAmount) }) it('with no valid key', async () => { - assert.equal(await lock.getHasValidKey(tokenOwner), true) + assert.equal(await lock.getHasValidKey(tokenOwner.address), true) }) it('with a valid key', async () => { // buy a key - await purchaseKey(lock, tokenOwner) - assert.equal(await lock.getHasValidKey(tokenOwner), true) + await purchaseKey(lock, tokenOwner.address) + assert.equal(await lock.getHasValidKey(tokenOwner.address), true) }) it('with an expired key', async () => { // buy a key - const { tokenId } = await purchaseKey(lock, tokenOwner) - assert.equal(await lock.getHasValidKey(tokenOwner), true) + const { tokenId } = await purchaseKey(lock, tokenOwner.address) + assert.equal(await lock.getHasValidKey(tokenOwner.address), true) // expire the key await lock.expireAndRefundFor(tokenId, 0) - assert.equal(await lock.getHasValidKey(tokenOwner), true) + assert.equal(await lock.getHasValidKey(tokenOwner.address), true) }) }) }) diff --git a/smart-contracts/test/Lock/hooks/erc721BalanceOfHook.js b/smart-contracts/test/Lock/hooks/erc721BalanceOfHook.js index 2dd91e074b4..05b62467b54 100644 --- a/smart-contracts/test/Lock/hooks/erc721BalanceOfHook.js +++ b/smart-contracts/test/Lock/hooks/erc721BalanceOfHook.js @@ -1,3 +1,4 @@ +const { assert } = require('chai') const { ethers } = require('hardhat') const { deployLock, @@ -10,7 +11,7 @@ let lock let hook let nft -contract('ERC721BalanceOfHook', () => { +describe('ERC721BalanceOfHook', () => { let nftOwner let keyOwner let randomSigner diff --git a/smart-contracts/test/Lock/initializers.js b/smart-contracts/test/Lock/initializers.js index 7f7a4ae0648..2198d1974da 100644 --- a/smart-contracts/test/Lock/initializers.js +++ b/smart-contracts/test/Lock/initializers.js @@ -1,3 +1,4 @@ +const { assert } = require('chai') const { ethers } = require('hardhat') const { @@ -8,7 +9,7 @@ const { parseInterface, } = require('../helpers') -contract('Lock / initializers', () => { +describe('Lock / initializers', () => { let unlockOwner, caller before(async () => { ;[unlockOwner, , , , , , , caller] = await ethers.getSigners() diff --git a/smart-contracts/test/Lock/interface.js b/smart-contracts/test/Lock/interface.js index 4a1cb3a70bb..6a37fc56a80 100644 --- a/smart-contracts/test/Lock/interface.js +++ b/smart-contracts/test/Lock/interface.js @@ -6,7 +6,7 @@ const { compareInterfaces, } = require('../helpers') -contract('Lock / interface', () => { +describe('Lock / interface', () => { let lockContract let lockInterface diff --git a/smart-contracts/test/Lock/isRenewable.js b/smart-contracts/test/Lock/isRenewable.js index e497c50af5d..b3c72246670 100644 --- a/smart-contracts/test/Lock/isRenewable.js +++ b/smart-contracts/test/Lock/isRenewable.js @@ -1,4 +1,3 @@ -const { time } = require('@openzeppelin/test-helpers') const { assert } = require('chai') const { deployERC20, @@ -6,6 +5,7 @@ const { deployLock, ADDRESS_ZERO, reverts, + increaseTimeTo, } = require('../helpers') const { ethers } = require('hardhat') @@ -17,29 +17,26 @@ const keyPrice = ethers.utils.parseUnits('0.01', 'ether') const totalPrice = keyPrice.mul(10) const someDai = ethers.utils.parseUnits('10', 'ether') -contract('Lock / isRenewable', (accounts) => { - const lockOwner = accounts[0] - const keyOwner = accounts[1] - // const referrer = accounts[3] +describe('Lock / isRenewable (ERC20 only)', () => { let tokenId + let deployer, keyOwner before(async () => { - dai = await deployERC20(lockOwner) + ;[deployer, keyOwner] = await ethers.getSigners() + dai = await deployERC20(deployer.address) // Mint some dais for testing - await dai.mint(keyOwner, someDai, { - from: lockOwner, - }) + await dai.mint(keyOwner.address, someDai) lock = await deployLock({ tokenAddress: dai.address }) // set ERC20 approval for entire scope - await dai.approve(lock.address, totalPrice, { - from: keyOwner, - }) - ;({ tokenId } = await purchaseKey(lock, keyOwner, true)) + await dai.connect(keyOwner).approve(lock.address, totalPrice) + ;({ tokenId } = await purchaseKey(lock, keyOwner.address, true)) + + // expire the key const expirationTs = await lock.keyExpirationTimestampFor(tokenId) - await time.increaseTo(expirationTs.toNumber()) + await increaseTimeTo(expirationTs) }) describe('return true', () => { @@ -49,8 +46,7 @@ contract('Lock / isRenewable', (accounts) => { it('if price has decreased', async () => { await lock.updateKeyPricing( ethers.utils.parseUnits('0.009', 'ether'), - dai.address, - { from: lockOwner } + dai.address ) assert.equal(await lock.isRenewable(tokenId, ADDRESS_ZERO), true) }) @@ -60,8 +56,7 @@ contract('Lock / isRenewable', (accounts) => { await lock.updateLockConfig( increasedDuration, await lock.maxNumberOfKeys(), - await lock.maxKeysPerAddress(), - { from: lockOwner } + await lock.maxKeysPerAddress() ) assert.equal(await lock.isRenewable(tokenId, ADDRESS_ZERO), true) }) @@ -70,7 +65,7 @@ contract('Lock / isRenewable', (accounts) => { describe('uncorrect lock settings', () => { it('reverts if lock isnt erc20', async () => { const noERC20lock = await deployLock() - const { tokenId } = await purchaseKey(noERC20lock, keyOwner) + const { tokenId } = await purchaseKey(noERC20lock, keyOwner.address) await reverts( noERC20lock.isRenewable(tokenId, ADDRESS_ZERO), 'NON_RENEWABLE_LOCK' @@ -81,10 +76,12 @@ contract('Lock / isRenewable', (accounts) => { name: 'NON_EXPIRING', tokenAddress: dai.address, }) - await dai.approve(infiniteLock.address, keyPrice, { - from: keyOwner, - }) - const { tokenId } = await purchaseKey(infiniteLock, keyOwner, true) + await dai.connect(keyOwner).approve(infiniteLock.address, keyPrice) + const { tokenId } = await purchaseKey( + infiniteLock, + keyOwner.address, + true + ) await reverts( infiniteLock.isRenewable(tokenId, ADDRESS_ZERO), 'NON_RENEWABLE_LOCK' @@ -94,7 +91,7 @@ contract('Lock / isRenewable', (accounts) => { describe('key readiness', () => { it('reverts if key isnt close to expiration', async () => { - const { tokenId } = await purchaseKey(lock, keyOwner, true) + const { tokenId } = await purchaseKey(lock, keyOwner.address, true) await reverts( lock.isRenewable(tokenId, ADDRESS_ZERO), 'NOT_READY_FOR_RENEWAL' @@ -105,14 +102,14 @@ contract('Lock / isRenewable', (accounts) => { ).toNumber() const lockDuration = (await lock.expirationDuration()).toNumber() const notCloseEnough = expirationTs - lockDuration + lockDuration * 0.89 - await time.increaseTo(notCloseEnough) + await increaseTimeTo(notCloseEnough) await reverts( lock.isRenewable(tokenId, ADDRESS_ZERO), 'NOT_READY_FOR_RENEWAL' ) }) it('return true if key is close to expiration (90%)', async () => { - const { tokenId } = await purchaseKey(lock, keyOwner, true) + const { tokenId } = await purchaseKey(lock, keyOwner.address, true) const expirationTs = ( await lock.keyExpirationTimestampFor(tokenId) @@ -120,7 +117,7 @@ contract('Lock / isRenewable', (accounts) => { const lockDuration = (await lock.expirationDuration()).toNumber() const ninetyPercent = expirationTs - lockDuration + lockDuration * 0.9 - await time.increaseTo(ninetyPercent) + await increaseTimeTo(ninetyPercent) assert.equal(await lock.isRenewable(tokenId, ADDRESS_ZERO), true) }) @@ -130,20 +127,18 @@ contract('Lock / isRenewable', (accounts) => { it('reverts if price has increased', async () => { await lock.updateKeyPricing( ethers.utils.parseUnits('0.3', 'ether'), - dai.address, - { from: lockOwner } + dai.address ) await reverts(lock.isRenewable(tokenId, ADDRESS_ZERO), 'LOCK_HAS_CHANGED') }) it('reverts if erc20 token has changed', async () => { // deploy another token - const dai2 = await deployERC20(accounts[3]) - await dai2.mint(keyOwner, someDai, { - from: accounts[3], - }) + const dai2 = await deployERC20(deployer.address) + await dai2.mint(keyOwner.address, someDai) + // update lock token without changing price - await lock.updateKeyPricing(keyPrice, dai2.address, { from: lockOwner }) + await lock.updateKeyPricing(keyPrice, dai2.address) await reverts(lock.isRenewable(tokenId, ADDRESS_ZERO), 'LOCK_HAS_CHANGED') }) @@ -151,8 +146,7 @@ contract('Lock / isRenewable', (accounts) => { await lock.updateLockConfig( 1000, await lock.maxNumberOfKeys(), - await lock.maxKeysPerAddress(), - { from: lockOwner } + await lock.maxKeysPerAddress() ) await reverts(lock.isRenewable(tokenId, ADDRESS_ZERO), 'LOCK_HAS_CHANGED') }) diff --git a/smart-contracts/test/Lock/isValidKey.js b/smart-contracts/test/Lock/isValidKey.js index 7bd9c290ffb..322c3fd93e9 100644 --- a/smart-contracts/test/Lock/isValidKey.js +++ b/smart-contracts/test/Lock/isValidKey.js @@ -1,15 +1,17 @@ +const { ethers } = require('hardhat') const { assert } = require('chai') const { deployLock, purchaseKey, ADDRESS_ZERO } = require('../helpers') -contract('Lock / isValidKey', (accounts) => { - let keyOwner = accounts[1] +let keyOwner, rando +describe('Lock / isValidKey', () => { let lock let tokenId beforeEach(async () => { + ;[, keyOwner, rando] = await ethers.getSigners() lock = await deployLock() await lock.updateTransferFee(0) // disable the transfer fee for this test - ;({ tokenId } = await purchaseKey(lock, keyOwner)) + ;({ tokenId } = await purchaseKey(lock, keyOwner.address)) }) it('should be false if the key does not exist', async () => { @@ -21,39 +23,35 @@ contract('Lock / isValidKey', (accounts) => { }) it('should still be true after transfering', async () => { - await lock.transferFrom(keyOwner, accounts[5], tokenId, { - from: keyOwner, - }) + await lock + .connect(keyOwner) + .transferFrom(keyOwner.address, rando.address, tokenId) assert.equal(await lock.isValidKey(tokenId), true) }) it('should be false after expiring', async () => { - await lock.expireAndRefundFor(tokenId, 0, { - from: accounts[0], - }) + await lock.expireAndRefundFor(tokenId, 0) assert.equal(await lock.isValidKey(tokenId), false) }) it('should be false after cancelling', async () => { - await lock.cancelAndRefund(tokenId, { - from: keyOwner, - }) + await lock.connect(keyOwner).cancelAndRefund(tokenId) assert.equal(await lock.isValidKey(tokenId), false) }) }) -contract('Lock / isKey', (accounts) => { - let keyOwner = accounts[1] +describe('Lock / isKey', () => { let lock beforeEach(async () => { + ;[, keyOwner, rando] = await ethers.getSigners() lock = await deployLock() await lock.updateTransferFee(0) // disable the transfer fee for this test const tx = await lock.grantKeys([keyOwner.address], [0], [ADDRESS_ZERO]) const { tokenId } = tx.logs[0].args // make sure `setKeyManagerOf` doesnt revert, as it uses `isKey` - await lock.setKeyManagerOf(tokenId, accounts[2]) - assert.equal(await lock.isKeyManager(tokenId, accounts[2]), true) + await lock.setKeyManagerOf(tokenId, rando.address) + assert.equal(await lock.isKeyManager(tokenId, rando.address), true) }) }) diff --git a/smart-contracts/test/Lock/lendKey.js b/smart-contracts/test/Lock/lendKey.js index 64759fd120d..dc4f88a6335 100644 --- a/smart-contracts/test/Lock/lendKey.js +++ b/smart-contracts/test/Lock/lendKey.js @@ -1,40 +1,41 @@ -const { ethers } = require('ethers') -const { - reverts, - ADDRESS_ZERO, - deployLock, - purchaseKeys, -} = require('../helpers') +const { assert } = require('chai') +const { ethers } = require('hardhat') +const { reverts, deployLock, purchaseKey } = require('../helpers') let lock -let lockFree -let lockSingleKey -let tokenIds -let keyOwners -let accountApproved -let keyManager - -contract('Lock / lendKey', (accounts) => { - const from = accounts[0] - keyOwners = [accounts[1], accounts[2], accounts[3], accounts[4]] - accountApproved = accounts[8] - keyManager = accounts[9] - +let tokenId, anotherTokenId +let lockManager, + keyOwner, + anotherKeyOwner, + accountApproved, + keyManager, + receiver, + random + +describe('Lock / lendKey', () => { beforeEach(async () => { - // deploy some locks + ;[ + lockManager, + keyOwner, + anotherKeyOwner, + accountApproved, + keyManager, + receiver, + random, + ] = await ethers.getSigners() lock = await deployLock() - lockFree = await deployLock({ name: 'FREE' }) - lockSingleKey = await deployLock({ name: 'SINGLE KEY' }) - await lock.updateTransferFee(0) // disable the lend fee for this test - await lockSingleKey.updateTransferFee(0) // disable the lend fee for this test - ;({ tokenIds } = await purchaseKeys(lock, keyOwners.length)) + ;({ tokenId } = await purchaseKey(lock, keyOwner.address)) + ;({ tokenId: anotherTokenId } = await purchaseKey( + lock, + anotherKeyOwner.address + )) }) describe('failures', () => { it('should abort when there is no key to lend', async () => { await reverts( - lock.lendKey(keyOwners[0], accounts[9], 999), + lock.lendKey(keyOwner.address, random.address, 999), 'UNAUTHORIZED' ) }) @@ -42,56 +43,53 @@ contract('Lock / lendKey', (accounts) => { it('should only allow key manager or owner', async () => { // testing an id mismatch await reverts( - lock.lendKey(keyOwners[0], accounts[9], tokenIds[0], { - from: keyOwners[5], - }), + lock + .connect(keyOwner) + .lendKey(keyOwner.address, random.address, anotherTokenId), 'UNAUTHORIZED' ) // testing a mismatched _from address await reverts( - lock.lendKey(keyOwners[2], accounts[9], tokenIds[0], { - from: keyOwners[0], - }), + lock + .connect(anotherKeyOwner) + .lendKey(keyOwner.address, random.address, tokenId), 'UNAUTHORIZED' ) }) it('should prevent lending an expired key', async () => { // Then let's expire the key - await lock.expireAndRefundFor(tokenIds[0], 0, { - from: accounts[0], - }) + await lock.connect(lockManager).expireAndRefundFor(tokenId, 0) await reverts( - lock.lendKey(keyOwners[1], accounts[7], tokenIds[0], { - from: keyOwners[1], - }) + lock + .connect(keyOwner) + .lendKey(keyOwner.address, random.address, tokenId), + 'KEY_NOT_VALID' ) }) it('should fail if the sender has been approved for that key', async () => { - await lock.approve(accountApproved, tokenIds[0], { - from: keyOwners[0], - }) + await lock.connect(keyOwner).approve(accountApproved.address, tokenId) await reverts( - lock.lendKey(keyOwners[0], accounts[9], tokenIds[0], { - from: accountApproved, - }), + lock + .connect(accountApproved) + .lendKey(keyOwner.address, random.address, tokenId), 'UNAUTHORIZED' ) }) it('should fail if the sender has been approved for all owner keys', async () => { - await lock.setApprovalForAll(accountApproved, true, { - from: keyOwners[0], - }) + await lock + .connect(keyOwner) + .setApprovalForAll(accountApproved.address, true) assert.equal( - await lock.isApprovedForAll(keyOwners[0], accountApproved), + await lock.isApprovedForAll(keyOwner.address, accountApproved.address), true ) await reverts( - lock.lendKey(keyOwners[0], accounts[9], tokenIds[0], { - from: accountApproved, - }), + lock + .connect(accountApproved) + .lendKey(keyOwner.address, random.address, tokenId), 'UNAUTHORIZED' ) }) @@ -100,42 +98,42 @@ contract('Lock / lendKey', (accounts) => { describe('when the sender is the key owner', () => { describe('no key manager is set', () => { beforeEach(async () => { - await lock.lendKey(keyOwners[0], accounts[7], tokenIds[0], { - from: keyOwners[0], - }) + await lock + .connect(keyOwner) + .lendKey(keyOwner.address, random.address, tokenId) }) it('should lend ownership correctly', async () => { - assert.equal(await lock.ownerOf(tokenIds[0]), accounts[7]) + assert.equal(await lock.ownerOf(tokenId), random.address) }) it('update balances properly', async () => { - assert.equal(await lock.balanceOf(accounts[7]), 1) - assert.equal(await lock.balanceOf(keyOwners[0]), 0) + assert.equal(await lock.balanceOf(random.address), 1) + assert.equal(await lock.balanceOf(keyOwner.address), 0) }) it('update key validity properly', async () => { - assert.equal(await lock.getHasValidKey(accounts[7]), true) - assert.equal(await lock.getHasValidKey(keyOwners[0]), false) + assert.equal(await lock.getHasValidKey(random.address), true) + assert.equal(await lock.getHasValidKey(keyOwner.address), false) }) it('should set previous owner as key manager', async () => { - assert.equal(await lock.keyManagerOf(tokenIds[0]), keyOwners[0]) + assert.equal(await lock.keyManagerOf(tokenId), keyOwner.address) }) }) describe('a key manager is set', () => { beforeEach(async () => { - await lock.setKeyManagerOf(tokenIds[0], keyManager, { - from: keyOwners[0], - }) + await lock + .connect(keyOwner) + .setKeyManagerOf(tokenId, keyManager.address) }) it('should prevent from lending a key', async () => { await reverts( - lock.lendKey(keyOwners[0], accounts[7], tokenIds[0], { - from: keyOwners[0], - }), + lock + .connect(keyOwner) + .lendKey(keyOwner.address, random.address, tokenId), 'UNAUTHORIZED' ) }) @@ -144,132 +142,92 @@ contract('Lock / lendKey', (accounts) => { describe('when the sender is a key manager', async () => { beforeEach(async () => { - await lock.setKeyManagerOf(tokenIds[0], keyManager, { - from: keyOwners[0], - }) - await lock.lendKey(keyOwners[0], accounts[7], tokenIds[0], { - from: keyManager, - }) + await lock.connect(keyOwner).setKeyManagerOf(tokenId, keyManager.address) + await lock + .connect(keyManager) + .lendKey(keyOwner.address, random.address, tokenId) }) it('should lend ownership correctly', async () => { - assert.equal(await lock.ownerOf(tokenIds[0]), accounts[7]) + assert.equal(await lock.ownerOf(tokenId), random.address) }) it('update balances properly', async () => { - assert.equal(await lock.balanceOf(accounts[7]), 1) - assert.equal(await lock.balanceOf(keyOwners[0]), 0) + assert.equal(await lock.balanceOf(random.address), 1) + assert.equal(await lock.balanceOf(keyOwner.address), 0) }) it('update key validity properly', async () => { - assert.equal(await lock.getHasValidKey(accounts[7]), true) - assert.equal(await lock.getHasValidKey(keyOwners[0]), false) + assert.equal(await lock.getHasValidKey(random.address), true) + assert.equal(await lock.getHasValidKey(keyOwner.address), false) }) it('retains the correct key manager', async () => { - assert.equal(await lock.keyManagerOf(tokenIds[0]), keyManager) + assert.equal(await lock.keyManagerOf(tokenId), keyManager.address) }) }) describe('when the lock is sold out', () => { it('should still allow the lend of keys', async () => { // first we create a lock with only 1 key - const tx = await lockSingleKey.purchase( - [], - [keyOwners[0]], - [ADDRESS_ZERO], - [ADDRESS_ZERO], - [[]], - { - value: ethers.utils.parseUnits('0.01', 'ether'), - from, - } + const lockSingleKey = await deployLock({ name: 'SINGLE KEY' }) + const { tokenId: singleTokenId } = await purchaseKey( + lockSingleKey, + keyOwner.address ) - const { args } = tx.logs.find((v) => v.event === 'Transfer') - const { tokenId } = args - // confirm that the lock is sold out - await reverts( - lockSingleKey.purchase( - [], - [accounts[8]], - [ADDRESS_ZERO], - [ADDRESS_ZERO], - [[]], - { - value: ethers.utils.parseUnits('0.01', 'ether'), - from: accounts[8], - } - ), - 'LOCK_SOLD_OUT' - ) - - // set default key owner as key manager - await lockSingleKey.setKeyManagerOf(tokenId, accounts[1], { - from: accounts[1], - }) + await reverts(purchaseKey(lockSingleKey, random.address), 'LOCK_SOLD_OUT') // check ownership - assert.equal(await lockSingleKey.ownerOf.call(tokenId), keyOwners[0]) + assert.equal(await lockSingleKey.ownerOf(singleTokenId), keyOwner.address) // lend - await lockSingleKey.lendKey(keyOwners[0], accounts[9], tokenId, { - from: keyOwners[0], - }) + await lockSingleKey + .connect(keyOwner) + .lendKey(keyOwner.address, random.address, singleTokenId) - assert.equal(await lockSingleKey.ownerOf.call(tokenId), accounts[9]) + assert.equal(await lockSingleKey.ownerOf(singleTokenId), random.address) }) }) it('can lend a FREE key', async () => { - const tx = await lockFree.purchase( - [], - [accounts[1]], - [ADDRESS_ZERO], - [ADDRESS_ZERO], - [[]], - { - from: accounts[1], - } - ) - const { args } = tx.logs.find( - (v) => v.event === 'Transfer' && v.args.from === ADDRESS_ZERO + const lockFree = await deployLock({ name: 'FREE' }) + const { tokenId: freeTokenId } = await purchaseKey( + lockFree, + keyOwner.address ) - const { tokenId: newTokenId } = args - await lockFree.lendKey(accounts[1], accounts[2], newTokenId, { - from: accounts[1], - }) - assert.equal(await lockFree.ownerOf(newTokenId), accounts[2]) - assert.equal(await lockFree.keyManagerOf(newTokenId), accounts[1]) + await lockFree + .connect(keyOwner) + .lendKey(keyOwner.address, receiver.address, freeTokenId) + + assert.equal(await lockFree.ownerOf(freeTokenId), receiver.address) + assert.equal(await lockFree.keyManagerOf(freeTokenId), keyOwner.address) }) describe('approvals with lent key', () => { - const approvedUser = accounts[8] beforeEach(async () => { - await lock.lendKey(keyOwners[0], accounts[7], tokenIds[0], { - from: keyOwners[0], - }) + await lock + .connect(keyOwner) + .lendKey(keyOwner.address, receiver.address, tokenId) }) it('can not approve another account to lend the key', async () => { await reverts( - lock.approve(approvedUser, tokenIds[0], { - from: accounts[7], - }), + lock.connect(receiver).approve(accountApproved.address, tokenId), 'ONLY_KEY_MANAGER_OR_APPROVED' ) }) it('can not used an "approved for all" account to transfer the key', async () => { - await lock.setApprovalForAll(approvedUser, true, { - from: accounts[7], - }) + await lock + .connect(receiver) + .setApprovalForAll(accountApproved.address, true) await reverts( - lock.transferFrom(accounts[7], accounts[9], tokenIds[0], { - from: approvedUser, - }), + lock + .connect(receiver) + .transferFrom(receiver.address, random.address, tokenId), 'ONLY_KEY_MANAGER_OR_APPROVED' ) }) @@ -277,51 +235,46 @@ contract('Lock / lendKey', (accounts) => { describe('a lent key', () => { beforeEach(async () => { - await lock.lendKey(keyOwners[2], accounts[7], tokenIds[2], { - from: keyOwners[2], - }) + ;({ tokenId } = await purchaseKey(lock, keyOwner.address)) + await lock + .connect(keyOwner) + .lendKey(keyOwner.address, receiver.address, tokenId) }) it('has correct ownership', async () => { - assert.equal(await lock.ownerOf(tokenIds[2]), accounts[7]) - assert.equal(await lock.keyManagerOf(tokenIds[2]), keyOwners[2]) + assert.equal(await lock.ownerOf(tokenId), receiver.address) + assert.equal(await lock.keyManagerOf(tokenId), keyOwner.address) }) it('can not be lent by owner', async () => { await reverts( - lock.lendKey(accounts[7], accounts[8], tokenIds[2], { - from: accounts[7], - }), + lock + .connect(receiver) + .lendKey(receiver.address, random.address, tokenId), 'UNAUTHORIZED' ) }) it('can not be transferred by owner', async () => { await reverts( - lock.transferFrom(accounts[7], accounts[8], tokenIds[2], { - from: accounts[7], - }), + lock + .connect(receiver) + .transferFrom(receiver.address, random.address, tokenId), 'ONLY_KEY_MANAGER_OR_APPROVED' ) }) it('can not be burn by owner', async () => { await reverts( - lock.burn(tokenIds[2], { - from: accounts[7], - }), + lock.connect(receiver).burn(tokenId), 'ONLY_KEY_MANAGER_OR_APPROVED' ) }) it('can not be merged by owner', async () => { await reverts( - lock.mergeKeys(tokenIds[2], tokenIds[3], 10, { - from: accounts[7], - }), + lock.connect(receiver).mergeKeys(tokenId, anotherTokenId, 10), 'ONLY_KEY_MANAGER_OR_APPROVED' ) }) it('can not be cancelled by owner', async () => { await reverts( - lock.cancelAndRefund(tokenIds[2], { - from: accounts[7], - }), + lock.connect(receiver).cancelAndRefund(tokenId), 'ONLY_KEY_MANAGER_OR_APPROVED' ) }) diff --git a/smart-contracts/test/Lock/maxKeysPerAddress.js b/smart-contracts/test/Lock/maxKeysPerAddress.js index e997d87e636..3be597ffc4d 100644 --- a/smart-contracts/test/Lock/maxKeysPerAddress.js +++ b/smart-contracts/test/Lock/maxKeysPerAddress.js @@ -1,31 +1,45 @@ const { ethers } = require('hardhat') -const { assert } = require('chai') -const { deployLock, reverts, ADDRESS_ZERO, purchaseKey } = require('../helpers') +const { + deployLock, + reverts, + ADDRESS_ZERO, + purchaseKey, + compareBigNumbers, +} = require('../helpers') -contract('Lock / maxKeysPerAddress', (accounts) => { - let keyOwner = accounts[1] +describe('Lock / maxKeysPerAddress', () => { + let keyOwner, someAccount, anotherAccount let lock before(async () => { + ;[, keyOwner, { address: someAccount }, { address: anotherAccount }] = + await ethers.getSigners() lock = await deployLock({ name: 'NO_MAX_KEYS' }) }) describe('enforcing the number of keys per address', () => { let tokenId before(async () => { - ;({ tokenId } = await purchaseKey(lock, keyOwner)) + ;({ tokenId } = await purchaseKey(lock, keyOwner.address)) }) it('default to 1', async () => { - assert.equal((await lock.maxKeysPerAddress()).toNumber(), 1) + compareBigNumbers(await lock.maxKeysPerAddress(), 1) }) it('prevent users to purchase more keys than allowed', async () => { await reverts( - lock.purchase([], [keyOwner], [ADDRESS_ZERO], [ADDRESS_ZERO], [[]], { - value: ethers.utils.parseUnits('0.01', 'ether'), - }), + lock.purchase( + [], + [keyOwner.address], + [ADDRESS_ZERO], + [ADDRESS_ZERO], + [[]], + { + value: ethers.utils.parseUnits('0.01', 'ether'), + } + ), 'MAX_KEYS' ) }) @@ -34,7 +48,7 @@ contract('Lock / maxKeysPerAddress', (accounts) => { await reverts( lock.purchase( [], - [accounts[9], accounts[9]], + [someAccount, someAccount], [ADDRESS_ZERO, ADDRESS_ZERO], [ADDRESS_ZERO, ADDRESS_ZERO], [[], []], @@ -49,7 +63,7 @@ contract('Lock / maxKeysPerAddress', (accounts) => { it('prevent user from sharing a key with someone who has more keys than allowed', async () => { await lock.purchase( [], - [accounts[9]], + [someAccount], [ADDRESS_ZERO], [ADDRESS_ZERO], [[]], @@ -58,9 +72,7 @@ contract('Lock / maxKeysPerAddress', (accounts) => { } ) await reverts( - lock.shareKey(accounts[9], tokenId, 1000, { - from: keyOwner, - }), + lock.connect(keyOwner).shareKey(someAccount, tokenId, 1000), 'MAX_KEYS' ) }) @@ -68,7 +80,7 @@ contract('Lock / maxKeysPerAddress', (accounts) => { it('prevent user from transferring a key with someone who has more keys than allowed', async () => { await lock.purchase( [], - [accounts[8]], + [anotherAccount], [ADDRESS_ZERO], [ADDRESS_ZERO], [[]], @@ -77,9 +89,9 @@ contract('Lock / maxKeysPerAddress', (accounts) => { } ) await reverts( - lock.transferFrom(keyOwner, accounts[8], tokenId, { - from: keyOwner, - }), + lock + .connect(keyOwner) + .transferFrom(keyOwner.address, anotherAccount, tokenId), 'MAX_KEYS' ) }) diff --git a/smart-contracts/test/Lock/maxNumberOfKeys.js b/smart-contracts/test/Lock/maxNumberOfKeys.js index 7dd1209c71f..b622c38eecd 100644 --- a/smart-contracts/test/Lock/maxNumberOfKeys.js +++ b/smart-contracts/test/Lock/maxNumberOfKeys.js @@ -11,13 +11,13 @@ const { const keyPrice = ethers.utils.parseEther('0.01') -contract('Lock / maxNumberOfKeys', () => { +describe('Lock / maxNumberOfKeys', () => { let unlock let lock describe('prevent from buying more keys than defined supply', () => { beforeEach(async () => { - const { unlockEthers: unlockDeployed } = await deployContracts() + const { unlock: unlockDeployed } = await deployContracts() unlock = unlockDeployed const [from] = await ethers.getSigners() diff --git a/smart-contracts/test/Lock/mergeKeys.js b/smart-contracts/test/Lock/mergeKeys.js index d7a94b73a92..e89dbe70c37 100644 --- a/smart-contracts/test/Lock/mergeKeys.js +++ b/smart-contracts/test/Lock/mergeKeys.js @@ -1,165 +1,150 @@ const { ethers } = require('hardhat') -const BigNumber = require('bignumber.js') const { assert } = require('chai') -const { purchaseKeys, reverts, deployLock } = require('../helpers') +const { + purchaseKey, + reverts, + deployLock, + compareBigNumbers, +} = require('../helpers') -contract('Lock / mergeKeys', (accounts) => { - let tokenIds - let lockCreator = accounts[0] - let keyOwner = accounts[1] - let keyOwner2 = accounts[2] +const timeAmount = ethers.BigNumber.from('1000') + +describe('Lock / mergeKeys', () => { + let tokenId, tokenId2 + let keyOwner, keyOwner2, keyManager, rando let lock beforeEach(async () => { + ;[, keyOwner, keyOwner2, keyManager, rando] = await ethers.getSigners() lock = await deployLock() - ;({ tokenIds } = await purchaseKeys(lock, 2)) + ;({ tokenId } = await purchaseKey(lock, keyOwner.address)) + ;({ tokenId: tokenId2 } = await purchaseKey(lock, keyOwner2.address)) }) describe('merge some amount of time', () => { it('should transfer amount of time from key', async () => { + console.log(tokenId, tokenId2) const expTs = [ - await lock.keyExpirationTimestampFor(tokenIds[0]), - await lock.keyExpirationTimestampFor(tokenIds[1]), + await lock.keyExpirationTimestampFor(tokenId), + await lock.keyExpirationTimestampFor(tokenId2), ] - await lock.mergeKeys(tokenIds[0], tokenIds[1], 1000, { from: keyOwner }) - assert.equal( - new BigNumber(expTs[0]).minus(1000).toString(), - new BigNumber( - await lock.keyExpirationTimestampFor(tokenIds[0]) - ).toString() + console.log(expTs) + + await lock.connect(keyOwner).mergeKeys(tokenId, tokenId2, timeAmount) + compareBigNumbers( + expTs[0].sub(timeAmount), + await lock.keyExpirationTimestampFor(tokenId) ) - assert.equal( - new BigNumber(expTs[1]).plus(1000).toString(), - new BigNumber( - await lock.keyExpirationTimestampFor(tokenIds[1]) - ).toString() + compareBigNumbers( + expTs[1].add(timeAmount), + await lock.keyExpirationTimestampFor(tokenId2) ) - assert.equal(await lock.getHasValidKey(keyOwner2), true) - assert.equal(await lock.getHasValidKey(keyOwner), true) + assert.equal(await lock.getHasValidKey(keyOwner2.address), true) + assert.equal(await lock.getHasValidKey(keyOwner.address), true) }) + it('should allow key manager to call', async () => { const expTs = [ - await lock.keyExpirationTimestampFor(tokenIds[0]), - await lock.keyExpirationTimestampFor(tokenIds[1]), + await lock.keyExpirationTimestampFor(tokenId), + await lock.keyExpirationTimestampFor(tokenId2), ] // set key manager - await lock.setKeyManagerOf(tokenIds[0], accounts[9], { - from: keyOwner, - }) + await lock.connect(keyOwner).setKeyManagerOf(tokenId, keyManager.address) // call from key manager - await lock.mergeKeys(tokenIds[0], tokenIds[1], 1000, { - from: accounts[9], - }) + await lock.connect(keyManager).mergeKeys(tokenId, tokenId2, timeAmount) - assert.equal( - new BigNumber(expTs[0]).minus(1000).toString(), - new BigNumber( - await lock.keyExpirationTimestampFor(tokenIds[0]) - ).toString() + compareBigNumbers( + expTs[0].sub(timeAmount), + await lock.keyExpirationTimestampFor(tokenId) ) - assert.equal( - new BigNumber(expTs[1]).plus(1000).toString(), - new BigNumber( - await lock.keyExpirationTimestampFor(tokenIds[1]) - ).toString() + compareBigNumbers( + expTs[1].add(timeAmount), + await lock.keyExpirationTimestampFor(tokenId2) ) - assert.equal(await lock.getHasValidKey(keyOwner2), true) - assert.equal(await lock.getHasValidKey(keyOwner), true) + assert.equal(await lock.getHasValidKey(keyOwner2.address), true) + assert.equal(await lock.getHasValidKey(keyOwner.address), true) }) }) describe('merge with entire available time on a key', () => { it('should allow to transfer the entire amount of time from key', async () => { const expTs = [ - await lock.keyExpirationTimestampFor(tokenIds[0]), - await lock.keyExpirationTimestampFor(tokenIds[1]), + await lock.keyExpirationTimestampFor(tokenId), + await lock.keyExpirationTimestampFor(tokenId2), ] const { timestamp: now } = await ethers.provider.getBlock('latest') const remaining = expTs[0] - now - 1 - await lock.mergeKeys(tokenIds[0], tokenIds[1], remaining, { - from: keyOwner, - }) + await lock.connect(keyOwner).mergeKeys(tokenId, tokenId2, remaining) - assert.equal( - new BigNumber(expTs[0]).minus(remaining).toString(), - new BigNumber( - await lock.keyExpirationTimestampFor(tokenIds[0]) - ).toString() + compareBigNumbers( + expTs[0].sub(remaining), + await lock.keyExpirationTimestampFor(tokenId) ) - assert.equal( - new BigNumber(expTs[1]).plus(remaining).toString(), - new BigNumber( - await lock.keyExpirationTimestampFor(tokenIds[1]) - ).toString() + compareBigNumbers( + expTs[1].add(remaining), + await lock.keyExpirationTimestampFor(tokenId2) ) - assert.equal(await lock.isValidKey(tokenIds[0]), false) - assert.equal(await lock.isValidKey(tokenIds[1]), true) - assert.equal(await lock.getHasValidKey(keyOwner2), true) - assert.equal(await lock.getHasValidKey(keyOwner), false) + assert.equal(await lock.isValidKey(tokenId), false) + assert.equal(await lock.isValidKey(tokenId2), true) + assert.equal(await lock.getHasValidKey(keyOwner2.address), true) + assert.equal(await lock.getHasValidKey(keyOwner.address), false) }) }) describe('failures', () => { it('should fail if one of the key does not exist', async () => { await reverts( - lock.mergeKeys(123, tokenIds[1], 1000, { from: keyOwner }), + lock.connect(keyOwner).mergeKeys(123, tokenId2, timeAmount), 'NO_SUCH_KEY' ) await reverts( - lock.mergeKeys(tokenIds[0], 123, 1000, { from: keyOwner }), + lock.connect(keyOwner).mergeKeys(tokenId, 123, timeAmount), 'NO_SUCH_KEY' ) }) it('should fail if not key manager', async () => { await reverts( - lock.mergeKeys(tokenIds[0], tokenIds[1], 1000, { from: accounts[9] }), + lock.connect(rando).mergeKeys(tokenId, tokenId2, timeAmount), 'ONLY_KEY_MANAGER' ) }) it('should fail if time is not enough', async () => { - const remaining = await lock.keyExpirationTimestampFor(tokenIds[0]) + const remaining = await lock.keyExpirationTimestampFor(tokenId) const { timestamp: now } = await ethers.provider.getBlock('latest') // remove some time - await lock.shareKey( - accounts[8], - tokenIds[0], - remaining.toNumber() - now - 100, - { from: keyOwner } - ) + await lock + .connect(keyOwner) + .shareKey(rando.address, tokenId, remaining.toNumber() - now - 100) assert.equal( - new BigNumber( - await lock.keyExpirationTimestampFor(tokenIds[0]) - ).toNumber() - now, + (await lock.keyExpirationTimestampFor(tokenId)).sub(now), 100 ) - assert.equal(await lock.isValidKey(tokenIds[0]), true) + assert.equal(await lock.isValidKey(tokenId), true) await reverts( - lock.mergeKeys(tokenIds[0], tokenIds[1], 1000, { from: keyOwner }), + lock.connect(keyOwner).mergeKeys(tokenId, tokenId2, timeAmount), 'NOT_ENOUGH_TIME' ) }) it('should fail if key is not valid', async () => { - await lock.expireAndRefundFor(tokenIds[0], 0, { - from: lockCreator, - }) - assert.equal(await lock.isValidKey(tokenIds[0]), false) + await lock.expireAndRefundFor(tokenId, 0) + assert.equal(await lock.isValidKey(tokenId), false) await reverts( - lock.mergeKeys(tokenIds[0], tokenIds[1], 1000), + lock.mergeKeys(tokenId, tokenId2, timeAmount), 'KEY_NOT_VALID' ) }) diff --git a/smart-contracts/test/Lock/nonExpiring.js b/smart-contracts/test/Lock/nonExpiring.js index 2e81fad8af1..f4cd14b75c8 100644 --- a/smart-contracts/test/Lock/nonExpiring.js +++ b/smart-contracts/test/Lock/nonExpiring.js @@ -1,17 +1,12 @@ const { assert } = require('chai') -const { time } = require('@openzeppelin/test-helpers') +const { increaseTimeTo } = require('../helpers') const { ethers } = require('hardhat') -const { - deployLock, - purchaseKey, - getBalanceEthers, - MAX_UINT, -} = require('../helpers') +const { deployLock, purchaseKey, getBalance, MAX_UINT } = require('../helpers') const FIVE_HUNDRED_YEARS = 5 * 100 * 365 * 24 * 60 * 60 * 1000 -contract('Lock / non expiring', () => { +describe('Lock / non expiring', () => { let lock let keyOwner let keyPrice @@ -41,7 +36,7 @@ contract('Lock / non expiring', () => { }) it('should be valid far in the future', async () => { - await time.increaseTo(Date.now() + FIVE_HUNDRED_YEARS) + await increaseTimeTo(Date.now() + FIVE_HUNDRED_YEARS) assert.equal(await lock.isValidKey(tokenId), true) assert.equal(await lock.balanceOf(keyOwner.address), 1) }) @@ -55,7 +50,7 @@ contract('Lock / non expiring', () => { (await lock.getCancelAndRefundValue(tokenId)).toString(), keyPrice.toString() ) - await time.increaseTo(Date.now() + FIVE_HUNDRED_YEARS) + await increaseTimeTo(Date.now() + FIVE_HUNDRED_YEARS) assert.equal( (await lock.getCancelAndRefundValue(tokenId)).toString(), keyPrice.toString() @@ -65,8 +60,8 @@ contract('Lock / non expiring', () => { describe('cancelAndRefund', () => { it('should transfer entire price back', async () => { // make sure the refund actually happened - const initialLockBalance = await getBalanceEthers(lock.address) - const initialKeyOwnerBalance = await getBalanceEthers(keyOwner.address) + const initialLockBalance = await getBalance(lock.address) + const initialKeyOwnerBalance = await getBalance(keyOwner.address) // refund const tx = await lock.connect(keyOwner).cancelAndRefund(tokenId) @@ -87,7 +82,7 @@ contract('Lock / non expiring', () => { const txFee = tx.gasPrice.mul(gasUsed) // check key owner balance - const finalOwnerBalance = await getBalanceEthers(keyOwner.address) + const finalOwnerBalance = await getBalance(keyOwner.address) assert( finalOwnerBalance.toString(), @@ -95,7 +90,7 @@ contract('Lock / non expiring', () => { ) // also check lock balance - const finalLockBalance = await getBalanceEthers(lock.address) + const finalLockBalance = await getBalance(lock.address) assert( finalLockBalance.toString(), diff --git a/smart-contracts/test/Lock/onKeyCancelHook.js b/smart-contracts/test/Lock/onKeyCancelHook.js index 3a322040a4b..cbca49b77cf 100644 --- a/smart-contracts/test/Lock/onKeyCancelHook.js +++ b/smart-contracts/test/Lock/onKeyCancelHook.js @@ -1,17 +1,26 @@ -const TestEventHooks = artifacts.require('TestEventHooks.sol') -const { deployLock, ADDRESS_ZERO, purchaseKey, reverts } = require('../helpers') +const { assert } = require('chai') +const { ethers } = require('hardhat') -let lock -let testEventHooks -let tx +const { deployLock, ADDRESS_ZERO, purchaseKey } = require('../helpers') +const { + emitHookUpdatedEvent, + canNotSetNonContractAddress, +} = require('./behaviors/hooks.js') -contract('Lock / onKeyCancelHook', (accounts) => { - const to = accounts[2] +describe('Lock / onKeyCancelHook', () => { + let lock + let testEventHooks + let to + let tokenId + let events before(async () => { - lock = await deployLock() - testEventHooks = await TestEventHooks.new() - tx = await lock.setEventHooks( + ;[, to] = await ethers.getSigners() + + lock = await deployLock({ isEthers: true }) + const TestEventHooks = await ethers.getContractFactory('TestEventHooks') + testEventHooks = await TestEventHooks.deploy() + const tx = await lock.setEventHooks( ADDRESS_ZERO, testEventHooks.address, ADDRESS_ZERO, @@ -20,42 +29,30 @@ contract('Lock / onKeyCancelHook', (accounts) => { ADDRESS_ZERO, ADDRESS_ZERO ) - const { tokenId } = await purchaseKey(lock, to) - await lock.cancelAndRefund(tokenId, { from: to }) + ;({ events } = await tx.wait()) + ;({ tokenId } = await purchaseKey(lock, to.address)) }) it('emit the correct event', async () => { - const { args } = tx.logs.find(({ event }) => event === 'EventHooksUpdated') - assert.equal(args.onKeyPurchaseHook, ADDRESS_ZERO) - assert.equal(args.onKeyCancelHook, testEventHooks.address) - assert.equal(args.onValidKeyHook, ADDRESS_ZERO) - assert.equal(args.onTokenURIHook, ADDRESS_ZERO) - assert.equal(args.onKeyTransferHook, ADDRESS_ZERO) - assert.equal(args.onKeyExtendHook, ADDRESS_ZERO) - assert.equal(args.onKeyGrantHook, ADDRESS_ZERO) + await emitHookUpdatedEvent({ + events, + hookName: 'onKeyCancelHook', + hookAddress: testEventHooks.address, + }) }) it('key cancels should log the hook event', async () => { - const log = (await testEventHooks.getPastEvents('OnKeyCancel'))[0] - .returnValues - assert.equal(log.lock, lock.address) - assert.equal(log.operator, to) - assert.equal(log.to, to) - assert.notEqual(log.refund, 0) + await lock.connect(to).cancelAndRefund(tokenId) + const { args } = (await testEventHooks.queryFilter('OnKeyCancel')).filter( + ({ event }) => event === 'OnKeyCancel' + )[0] + assert.equal(args.lock, lock.address) + assert.equal(args.operator, to.address) + assert.equal(args.to, to.address) + assert.notEqual(args.refund, 0) }) it('cannot set the hook to a non-contract address', async () => { - await reverts( - lock.setEventHooks( - ADDRESS_ZERO, - accounts[1], - ADDRESS_ZERO, - ADDRESS_ZERO, - ADDRESS_ZERO, - ADDRESS_ZERO, - ADDRESS_ZERO - ), - 'INVALID_HOOK(1)' - ) + await canNotSetNonContractAddress({ lock, index: 1 }) }) }) diff --git a/smart-contracts/test/Lock/onKeyExtendHook.js b/smart-contracts/test/Lock/onKeyExtendHook.js index d311b28c705..23702f61f40 100644 --- a/smart-contracts/test/Lock/onKeyExtendHook.js +++ b/smart-contracts/test/Lock/onKeyExtendHook.js @@ -1,5 +1,5 @@ +const { assert } = require('chai') const { ethers } = require('hardhat') -const { time } = require('@openzeppelin/test-helpers') const { deployERC20, deployLock, @@ -7,17 +7,17 @@ const { purchaseKey, reverts, almostEqual, + increaseTimeTo, } = require('../helpers') const keyPrice = ethers.utils.parseUnits('0.01', 'ether') const someTokens = ethers.utils.parseUnits('10', 'ether') -contract('Lock / onKeyExtendHook', (accounts) => { +describe('Lock / onKeyExtendHook', () => { let lock let tokenId let keyOwner - let lockOwner - let testEventHooks + let lockOwner, testEventHooks let expirationDuration let tx @@ -26,16 +26,12 @@ contract('Lock / onKeyExtendHook', (accounts) => { // ERC20 token setup const testToken = await deployERC20(lockOwner.address) - await testToken.mint(keyOwner.address, someTokens, { - from: lockOwner.address, - }) + await testToken.mint(keyOwner.address, someTokens) // deploy ERC20 token const { address } = await deployLock({ tokenAddress: testToken.address }) lock = await ethers.getContractAt('PublicLock', address) - await testToken.approve(lock.address, someTokens, { - from: keyOwner.address, - }) + await testToken.connect(keyOwner).approve(lock.address, someTokens) // deploy mock events contract const TestEventHooks = await ethers.getContractFactory('TestEventHooks') @@ -110,7 +106,7 @@ contract('Lock / onKeyExtendHook', (accounts) => { ;({ tokenId } = await purchaseKey(lock, keyOwner.address, true)) // expire key const newExpirationTs = await lock.keyExpirationTimestampFor(tokenId) - await time.increaseTo(newExpirationTs.toNumber() - 1) + await increaseTimeTo(newExpirationTs.toNumber() - 1) // renew const tsBefore = await lock.keyExpirationTimestampFor(tokenId) await lock.renewMembershipFor(tokenId, ADDRESS_ZERO) @@ -133,7 +129,7 @@ contract('Lock / onKeyExtendHook', (accounts) => { ADDRESS_ZERO, ADDRESS_ZERO, ADDRESS_ZERO, - accounts[1], + keyOwner.address, ADDRESS_ZERO ), 'INVALID_HOOK(5)' diff --git a/smart-contracts/test/Lock/onKeyGrantHook.js b/smart-contracts/test/Lock/onKeyGrantHook.js index 8c981c591a4..f54f80b8e6a 100644 --- a/smart-contracts/test/Lock/onKeyGrantHook.js +++ b/smart-contracts/test/Lock/onKeyGrantHook.js @@ -1,21 +1,28 @@ -const { deployLock, reverts, ADDRESS_ZERO } = require('../helpers') +const { deployLock, ADDRESS_ZERO } = require('../helpers') const { assert } = require('chai') -const TestEventHooks = artifacts.require('TestEventHooks.sol') +const { ethers } = require('hardhat') +const { + emitHookUpdatedEvent, + canNotSetNonContractAddress, +} = require('./behaviors/hooks.js') let lock let testEventHooks -let tx -contract('Lock / onKeyGrantHook', (accounts) => { - const lockManager = accounts[0] - const to = accounts[2] - const keyManager = accounts[2] +describe('Lock / onKeyGrantHook', () => { + let lockManager + let to + let keyManager + let events before(async () => { - lock = await deployLock() - testEventHooks = await TestEventHooks.new() - tx = await lock.setEventHooks( + ;[{ address: lockManager }, { address: to }, { address: keyManager }] = + await ethers.getSigners() + lock = await deployLock({ isEthers: true }) + const TestEventHooks = await ethers.getContractFactory('TestEventHooks') + testEventHooks = await TestEventHooks.deploy() + const tx = await lock.setEventHooks( ADDRESS_ZERO, ADDRESS_ZERO, ADDRESS_ZERO, @@ -24,30 +31,31 @@ contract('Lock / onKeyGrantHook', (accounts) => { ADDRESS_ZERO, testEventHooks.address ) + ;({ events } = await tx.wait()) }) it('emit the correct event', async () => { - const { args } = tx.logs.find(({ event }) => event === 'EventHooksUpdated') - assert.equal(args.onKeyPurchaseHook, ADDRESS_ZERO) - assert.equal(args.onKeyCancelHook, ADDRESS_ZERO) - assert.equal(args.onValidKeyHook, ADDRESS_ZERO) - assert.equal(args.onTokenURIHook, ADDRESS_ZERO) - assert.equal(args.onKeyTransferHook, ADDRESS_ZERO) - assert.equal(args.onKeyExtendHook, ADDRESS_ZERO) - assert.equal(args.onKeyGrantHook, testEventHooks.address) + await emitHookUpdatedEvent({ + events, + hookName: 'onKeyGrantHook', + hookAddress: testEventHooks.address, + }) }) describe('grantKey', () => { it('can easily check if key is granted or purchase', async () => { const tx = await lock.grantKeys([to], [6200], [keyManager]) + const { events } = await tx.wait() - const { args: argsGrantKeys } = tx.logs.find( + const { args: argsGrantKeys } = events.find( ({ event }) => event === 'Transfer' ) const { tokenId } = argsGrantKeys // get event from hook contract - const { args } = (await testEventHooks.getPastEvents('OnKeyGranted'))[0] + const { args } = ( + await testEventHooks.queryFilter('OnKeyGranted') + ).filter(({ event }) => event === 'OnKeyGranted')[0] assert.equal(args.tokenId.toNumber(), tokenId.toNumber()) assert.equal(args.to, to) assert.equal(args.from, lockManager) @@ -57,17 +65,6 @@ contract('Lock / onKeyGrantHook', (accounts) => { }) it('cannot set the hook to a non-contract address', async () => { - await reverts( - lock.setEventHooks( - ADDRESS_ZERO, - ADDRESS_ZERO, - ADDRESS_ZERO, - ADDRESS_ZERO, - ADDRESS_ZERO, - ADDRESS_ZERO, - accounts[1] - ), - 'INVALID_HOOK(6)' - ) + await canNotSetNonContractAddress({ lock, index: 6 }) }) }) diff --git a/smart-contracts/test/Lock/onKeyPurchaseHook.js b/smart-contracts/test/Lock/onKeyPurchaseHook.js index cf75176ff23..99993f2e543 100644 --- a/smart-contracts/test/Lock/onKeyPurchaseHook.js +++ b/smart-contracts/test/Lock/onKeyPurchaseHook.js @@ -1,24 +1,29 @@ +const { assert } = require('chai') const { ethers } = require('hardhat') -const BigNumber = require('bignumber.js') -const { deployLock, reverts, ADDRESS_ZERO, MAX_UINT } = require('../helpers') - -const TestEventHooks = artifacts.require('TestEventHooks.sol') - -let lock -let testEventHooks -let tx - -contract('Lock / onKeyPurchaseHook', (accounts) => { - const from = accounts[1] - const to = accounts[2] - const dataField = ethers.utils.hexlify(ethers.utils.toUtf8Bytes('TestData')) +const { deployLock, reverts, compareBigNumbers } = require('../helpers') +const { ADDRESS_ZERO, MAX_UINT } = require('@unlock-protocol/hardhat-helpers') +const { + emitHookUpdatedEvent, + canNotSetNonContractAddress, +} = require('./behaviors/hooks.js') + +const dataField = ethers.utils.hexlify(ethers.utils.toUtf8Bytes('TestData')) + +describe('Lock / onKeyPurchaseHook', () => { + let lock + let testEventHooks + let events + let from, to let keyPrice let tokenId beforeEach(async () => { - lock = await deployLock() - testEventHooks = await TestEventHooks.new() - tx = await lock.setEventHooks( + ;[, from, to] = await ethers.getSigners() + lock = await deployLock({ isEthers: true }) + + const TestEventHooks = await ethers.getContractFactory('TestEventHooks') + testEventHooks = await TestEventHooks.deploy() + const tx = await lock.setEventHooks( testEventHooks.address, ADDRESS_ZERO, ADDRESS_ZERO, @@ -27,26 +32,33 @@ contract('Lock / onKeyPurchaseHook', (accounts) => { ADDRESS_ZERO, ADDRESS_ZERO ) - keyPrice = new BigNumber(await lock.keyPrice()) + console.log({ testEventHooks: testEventHooks.address }) + keyPrice = await lock.keyPrice() + ;({ events } = await tx.wait()) }) it('emit the correct event', async () => { - const { args } = tx.logs.find(({ event }) => event === 'EventHooksUpdated') - assert.equal(args.onKeyPurchaseHook, testEventHooks.address) - assert.equal(args.onKeyCancelHook, ADDRESS_ZERO) - assert.equal(args.onValidKeyHook, ADDRESS_ZERO) - assert.equal(args.onTokenURIHook, ADDRESS_ZERO) - assert.equal(args.onKeyTransferHook, ADDRESS_ZERO) - assert.equal(args.onKeyExtendHook, ADDRESS_ZERO) - assert.equal(args.onKeyGrantHook, ADDRESS_ZERO) + await emitHookUpdatedEvent({ + events, + hookName: 'onKeyPurchaseHook', + hookAddress: testEventHooks.address, + }) }) it('can block purchases', async () => { await reverts( - lock.purchase([], [to], [ADDRESS_ZERO], [ADDRESS_ZERO], [dataField], { - from, - value: keyPrice.toFixed(), - }), + lock + .connect(from) + .purchase( + [], + [to.address], + [ADDRESS_ZERO], + [ADDRESS_ZERO], + [dataField], + { + value: keyPrice, + } + ), 'PURCHASE_BLOCKED_BY_HOOK' ) }) @@ -54,80 +66,85 @@ contract('Lock / onKeyPurchaseHook', (accounts) => { describe('when enabled without discount', () => { beforeEach(async () => { await testEventHooks.configure(true, '0') - const tx = await lock.purchase( - [], - [to], - [ADDRESS_ZERO], - [ADDRESS_ZERO], - [dataField], - { - from, - value: keyPrice.toFixed(), - } - ) - ;({ tokenId } = tx.logs[0].args) + const tx = await lock + .connect(from) + .purchase( + [], + [to.address], + [ADDRESS_ZERO], + [ADDRESS_ZERO], + [dataField], + { + value: keyPrice, + } + ) + const { events } = await tx.wait() + ;({ tokenId } = await events[0].args) }) it('key sales should log the hook event', async () => { - const log = (await testEventHooks.getPastEvents('OnKeyPurchase'))[0] - .returnValues - assert.equal(log.lock, lock.address) - assert.equal(log.tokenId, tokenId) - assert.equal(log.from, from) - assert.equal(log.recipient, to) - assert.equal(log.referrer, ADDRESS_ZERO) - assert.equal(log.minKeyPrice, keyPrice.toFixed()) - assert.equal(log.pricePaid, keyPrice.toFixed()) + const { args } = ( + await testEventHooks.queryFilter('OnKeyPurchase') + ).filter(({ event }) => event === 'OnKeyPurchase')[0] + assert.equal(args.lock, lock.address) + await compareBigNumbers(args.tokenId, tokenId) + assert.equal(args.from, from.address) + assert.equal(args.recipient, to.address) + assert.equal(args.referrer, ADDRESS_ZERO) + await compareBigNumbers(args.minKeyPrice, keyPrice) + await compareBigNumbers(args.pricePaid, keyPrice) }) it('Sanity check: cannot buy at half price', async () => { await reverts( - lock.purchase([], [to], [ADDRESS_ZERO], [ADDRESS_ZERO], [dataField], { - from, - value: keyPrice.div(2).toFixed(), - }), + lock + .connect(from) + .purchase( + [], + [to.address], + [ADDRESS_ZERO], + [ADDRESS_ZERO], + [dataField], + { + value: keyPrice.div(2), + } + ), 'INSUFFICIENT_VALUE' ) }) it('cannot set the hook to a non-contract address', async () => { - await reverts( - lock.setEventHooks( - accounts[1], - ADDRESS_ZERO, - ADDRESS_ZERO, - ADDRESS_ZERO, - ADDRESS_ZERO, - ADDRESS_ZERO, - ADDRESS_ZERO - ), - 'INVALID_HOOK(0)' - ) + await canNotSetNonContractAddress({ lock, index: 0 }) }) }) describe('with a 50% off discount', () => { beforeEach(async () => { - await testEventHooks.configure(true, keyPrice.div(2).toFixed()) + await testEventHooks.configure(true, keyPrice.div(2)) }) it('can estimate the price', async () => { - const price = await lock.purchasePriceFor(to, ADDRESS_ZERO, dataField) - assert.equal(price, keyPrice.div(2).toFixed()) + const price = await lock.purchasePriceFor( + to.address, + ADDRESS_ZERO, + dataField + ) + await compareBigNumbers(price, keyPrice.div(2)) }) it('can buy at half price', async () => { - await lock.purchase( - [], - [to], - [ADDRESS_ZERO], - [ADDRESS_ZERO], - [dataField], - { - from, - value: keyPrice.div(2).toFixed(), - } - ) + await lock + .connect(from) + .purchase( + [], + [to.address], + [ADDRESS_ZERO], + [ADDRESS_ZERO], + [dataField], + { + value: keyPrice.div(2), + } + ) }) }) @@ -137,43 +154,47 @@ contract('Lock / onKeyPurchaseHook', (accounts) => { }) it('purchases are now free', async () => { - await lock.purchase( - [], - [to], - [ADDRESS_ZERO], - [ADDRESS_ZERO], - [dataField], - { - from, - value: '0', - } - ) - }) - - describe('can still send tips', () => { - beforeEach(async () => { - await lock.purchase( + await lock + .connect(from) + .purchase( [], - [to], + [to.address], [ADDRESS_ZERO], [ADDRESS_ZERO], [dataField], { - from, - value: '42', + value: '0', } ) + }) + + describe('can still send tips', () => { + beforeEach(async () => { + await lock + .connect(from) + .purchase( + [], + [to.address], + [ADDRESS_ZERO], + [ADDRESS_ZERO], + [dataField], + { + value: '42', + } + ) }) it('key sales should log the hook event', async () => { - const log = (await testEventHooks.getPastEvents('OnKeyPurchase'))[0] - .returnValues - assert.equal(log.lock, lock.address) - assert.equal(log.from, from) - assert.equal(log.recipient, to) - assert.equal(log.referrer, ADDRESS_ZERO) - assert.equal(log.minKeyPrice, '0') - assert.equal(log.pricePaid, '42') + const { args } = ( + await testEventHooks.queryFilter('OnKeyPurchase') + ).filter(({ event }) => event === 'OnKeyPurchase')[0] + + assert.equal(args.lock, lock.address) + assert.equal(args.from, from.address) + assert.equal(args.recipient, to.address) + assert.equal(args.referrer, ADDRESS_ZERO) + await compareBigNumbers(args.minKeyPrice, '0') + await compareBigNumbers(args.pricePaid, '42') }) }) }) diff --git a/smart-contracts/test/Lock/onKeyTransferHook.js b/smart-contracts/test/Lock/onKeyTransferHook.js index adf6ee9230c..82c6c3f6f6f 100644 --- a/smart-contracts/test/Lock/onKeyTransferHook.js +++ b/smart-contracts/test/Lock/onKeyTransferHook.js @@ -1,22 +1,27 @@ -const { deployLock, reverts, purchaseKey, ADDRESS_ZERO } = require('../helpers') +const { deployLock, purchaseKey, compareBigNumbers } = require('../helpers') +const { ADDRESS_ZERO } = require('@unlock-protocol/hardhat-helpers') -const TestEventHooks = artifacts.require('TestEventHooks.sol') +const { ethers } = require('hardhat') const { assert } = require('chai') +const { + emitHookUpdatedEvent, + canNotSetNonContractAddress, +} = require('./behaviors/hooks.js') -let lock -let testEventHooks -let tx - -contract('Lock / onKeyTransfer hook', (accounts) => { - const keyOwner = accounts[1] - const to = accounts[2] +describe('Lock / onKeyTransfer hook', () => { + let lock + let testEventHooks + let events + let keyOwner, to, random, random2 let keyPrice let tokenId before(async () => { - lock = await deployLock() - testEventHooks = await TestEventHooks.new() - tx = await lock.setEventHooks( + ;[, keyOwner, to, random, random2] = await ethers.getSigners() + lock = await deployLock({ isEthers: true }) + const TestEventHooks = await ethers.getContractFactory('TestEventHooks') + testEventHooks = await TestEventHooks.deploy() + const tx = await lock.setEventHooks( ADDRESS_ZERO, ADDRESS_ZERO, ADDRESS_ZERO, @@ -26,79 +31,66 @@ contract('Lock / onKeyTransfer hook', (accounts) => { ADDRESS_ZERO ) keyPrice = await lock.keyPrice() + ;({ events } = await tx.wait()) }) it('emit the correct event', async () => { - const { args } = tx.logs.find(({ event }) => event === 'EventHooksUpdated') - assert.equal(args.onKeyPurchaseHook, ADDRESS_ZERO) - assert.equal(args.onKeyCancelHook, ADDRESS_ZERO) - assert.equal(args.onValidKeyHook, ADDRESS_ZERO) - assert.equal(args.onTokenURIHook, ADDRESS_ZERO) - assert.equal(args.onKeyTransferHook, testEventHooks.address) - assert.equal(args.onKeyExtendHook, ADDRESS_ZERO) - assert.equal(args.onKeyGrantHook, ADDRESS_ZERO) + await emitHookUpdatedEvent({ + events, + hookName: 'onKeyTransferHook', + hookAddress: testEventHooks.address, + }) }) beforeEach(async () => { - ;({ tokenId } = await purchaseKey(lock, keyOwner)) + ;({ tokenId } = await purchaseKey(lock, keyOwner.address)) }) it('is not fired when a key is created', async () => { - const tx = await lock.purchase( - [], - [accounts[5]], - [ADDRESS_ZERO], - [ADDRESS_ZERO], - [[]], - { - from: keyOwner, + const tx = await lock + .connect(keyOwner) + .purchase([], [random.address], [ADDRESS_ZERO], [ADDRESS_ZERO], [[]], { value: keyPrice, - } - ) - const evt = tx.logs.find((v) => v.event === 'OnKeyTransfer') + }) + const { events } = await tx.wait() + const evt = events.find((v) => v.event === 'OnKeyTransfer') assert.equal(evt, null) }) it('is fired when using transferFrom', async () => { - await lock.transferFrom(keyOwner, to, tokenId, { from: keyOwner }) - const args = (await testEventHooks.getPastEvents('OnKeyTransfer'))[0] - .returnValues + await lock + .connect(keyOwner) + .transferFrom(keyOwner.address, to.address, tokenId) + const { args } = (await testEventHooks.queryFilter('OnKeyTransfer')).filter( + ({ event }) => event === 'OnKeyTransfer' + )[0] assert.equal(args.lock, lock.address) - assert.equal(args.tokenId, tokenId) - assert.equal(args.operator, keyOwner) - assert.equal(args.from, keyOwner) - assert.equal(args.to, to) + compareBigNumbers(args.tokenId, tokenId) + assert.equal(args.operator, keyOwner.address) + assert.equal(args.from, keyOwner.address) + assert.equal(args.to, to.address) const expirationTs = await lock.keyExpirationTimestampFor(tokenId) - assert.equal(args.time, expirationTs) + compareBigNumbers(args.time, expirationTs) }) it('is fired when a key manager is set', async () => { - await lock.setKeyManagerOf(tokenId, accounts[6], { from: keyOwner }) - await lock.transferFrom(keyOwner, accounts[3], tokenId, { - from: accounts[6], - }) - const args = (await testEventHooks.getPastEvents('OnKeyTransfer'))[0] - .returnValues + await lock.connect(keyOwner).setKeyManagerOf(tokenId, random2.address) + await lock + .connect(random2) + .transferFrom(keyOwner.address, random.address, tokenId) + const { args } = (await testEventHooks.queryFilter('OnKeyTransfer')).filter( + ({ event }) => event === 'OnKeyTransfer' + )[1] + assert.equal(args.lock, lock.address) - assert.equal(args.tokenId, tokenId) - assert.equal(args.operator, accounts[6]) - assert.equal(args.from, keyOwner) - assert.equal(args.to, accounts[3]) + compareBigNumbers(args.tokenId, tokenId) + assert.equal(args.operator, random2.address) + assert.equal(args.from, keyOwner.address) + assert.equal(args.to, random.address) }) it('cannot set the hook to a non-contract address', async () => { - await reverts( - lock.setEventHooks( - ADDRESS_ZERO, - ADDRESS_ZERO, - ADDRESS_ZERO, - ADDRESS_ZERO, - accounts[1], - ADDRESS_ZERO, - ADDRESS_ZERO - ), - 'INVALID_HOOK(4)' - ) + await canNotSetNonContractAddress({ lock, index: 4 }) }) /* diff --git a/smart-contracts/test/Lock/onTokenURIHook.js b/smart-contracts/test/Lock/onTokenURIHook.js index 8964c347773..4eadb12faf2 100644 --- a/smart-contracts/test/Lock/onTokenURIHook.js +++ b/smart-contracts/test/Lock/onTokenURIHook.js @@ -1,19 +1,25 @@ -const { deployLock, reverts, purchaseKey, ADDRESS_ZERO } = require('../helpers') - -const TestEventHooks = artifacts.require('TestEventHooks.sol') +const { assert } = require('chai') +const { deployLock, purchaseKey, ADDRESS_ZERO } = require('../helpers') +const { ethers } = require('hardhat') +const { + emitHookUpdatedEvent, + canNotSetNonContractAddress, +} = require('./behaviors/hooks.js') let lock let testEventHooks -contract('Lock / onTokenURIHook', (accounts) => { - const keyOwner = accounts[1] +describe('Lock / onTokenURIHook', () => { let tokenId - let tx + let events + let keyOwner, lockOwner before(async () => { - lock = await deployLock() - testEventHooks = await TestEventHooks.new() - tx = await lock.setEventHooks( + ;[lockOwner, keyOwner] = await ethers.getSigners() + lock = await deployLock({ isEthers: true }) + const TestEventHooks = await ethers.getContractFactory('TestEventHooks') + testEventHooks = await TestEventHooks.deploy() + const tx = await lock.setEventHooks( ADDRESS_ZERO, ADDRESS_ZERO, ADDRESS_ZERO, @@ -22,47 +28,39 @@ contract('Lock / onTokenURIHook', (accounts) => { ADDRESS_ZERO, ADDRESS_ZERO ) - ;({ tokenId } = await purchaseKey(lock, keyOwner)) + ;({ tokenId } = await purchaseKey(lock, keyOwner.address)) + ;({ events } = await tx.wait()) + }) + + it('is set correctly', async () => { + assert.equal(await lock.onTokenURIHook(), testEventHooks.address) }) it('emit the correct event', async () => { - const { args } = tx.logs.find(({ event }) => event === 'EventHooksUpdated') - assert.equal(args.onKeyPurchaseHook, ADDRESS_ZERO) - assert.equal(args.onKeyCancelHook, ADDRESS_ZERO) - assert.equal(args.onValidKeyHook, ADDRESS_ZERO) - assert.equal(args.onTokenURIHook, testEventHooks.address) - assert.equal(args.onKeyTransferHook, ADDRESS_ZERO) - assert.equal(args.onKeyExtendHook, ADDRESS_ZERO) - assert.equal(args.onKeyGrantHook, ADDRESS_ZERO) + await emitHookUpdatedEvent({ + events, + hookName: 'onTokenURIHook', + hookAddress: testEventHooks.address, + }) }) it('tokenURI should returns a custom value', async () => { - const baseTokenURI = 'https://unlock-uri-hook.test/' + const baseTokenURI = await testEventHooks.baseURI() const expirationTimestamp = await lock.keyExpirationTimestampFor(tokenId) const params = [ lock.address.toLowerCase(), // lockAddress - keyOwner.toLowerCase(), // owner - accounts[3].toLowerCase(), // operator + keyOwner.address.toLowerCase(), // owner + lockOwner.address.toLowerCase(), // operator expirationTimestamp, // expirationTimestamp tokenId, // tokenId ] - const tokenURI = `${baseTokenURI}${params.join('/')}` - assert.equal(await lock.tokenURI(tokenId, { from: accounts[3] }), tokenURI) + assert.equal(await lock.ownerOf(tokenId), keyOwner.address) + const tokenURI = await lock.tokenURI(tokenId) + assert.equal(tokenURI, `${baseTokenURI}${params.join('/')}`) }) it('cannot set the hook to a non-contract address', async () => { - await reverts( - lock.setEventHooks( - ADDRESS_ZERO, - ADDRESS_ZERO, - ADDRESS_ZERO, - accounts[3], - ADDRESS_ZERO, - ADDRESS_ZERO, - ADDRESS_ZERO - ), - 'INVALID_HOOK(3)' - ) + await canNotSetNonContractAddress({ lock, index: 3 }) }) }) diff --git a/smart-contracts/test/Lock/onValidKeyHook.js b/smart-contracts/test/Lock/onValidKeyHook.js index 96261c46953..9753737a61d 100644 --- a/smart-contracts/test/Lock/onValidKeyHook.js +++ b/smart-contracts/test/Lock/onValidKeyHook.js @@ -1,24 +1,27 @@ -const { deployLock, ADDRESS_ZERO, reverts, purchaseKey } = require('../helpers') - -const TestEventHooks = artifacts.require('TestEventHooks.sol') - -let lock -let tokenId -let testEventHooks -let tx - -contract('Lock / onValidKeyHook', (accounts) => { - const keyOwner = accounts[1] +const { assert } = require('chai') +const { deployLock, ADDRESS_ZERO, purchaseKey } = require('../helpers') + +const { ethers } = require('hardhat') +const { + emitHookUpdatedEvent, + canNotSetNonContractAddress, +} = require('./behaviors/hooks.js') + +describe('Lock / onValidKeyHook', () => { + let lock + let tokenId + let testEventHooks + let events + let keyOwner before(async () => { - lock = await deployLock() + ;[, { address: keyOwner }] = await ethers.getSigners() + lock = await deployLock({ isEthers: true }) ;({ tokenId } = await purchaseKey(lock, keyOwner)) - }) - - it('hasValidKey should returns a custom value', async () => { assert.equal(await lock.getHasValidKey(keyOwner), true) - testEventHooks = await TestEventHooks.new() - tx = await lock.setEventHooks( + const TestEventHooks = await ethers.getContractFactory('TestEventHooks') + testEventHooks = await TestEventHooks.deploy() + const tx = await lock.setEventHooks( ADDRESS_ZERO, ADDRESS_ZERO, testEventHooks.address, @@ -27,6 +30,10 @@ contract('Lock / onValidKeyHook', (accounts) => { ADDRESS_ZERO, ADDRESS_ZERO ) + ;({ events } = await tx.wait()) + }) + + it('hasValidKey should returns a custom value', async () => { // still returns value assert.equal(await lock.getHasValidKey(keyOwner), true) @@ -41,28 +48,14 @@ contract('Lock / onValidKeyHook', (accounts) => { }) it('emit the correct event', async () => { - const { args } = tx.logs.find(({ event }) => event === 'EventHooksUpdated') - assert.equal(args.onKeyPurchaseHook, ADDRESS_ZERO) - assert.equal(args.onKeyCancelHook, ADDRESS_ZERO) - assert.equal(args.onValidKeyHook, testEventHooks.address) - assert.equal(args.onTokenURIHook, ADDRESS_ZERO) - assert.equal(args.onKeyTransferHook, ADDRESS_ZERO) - assert.equal(args.onKeyExtendHook, ADDRESS_ZERO) - assert.equal(args.onKeyGrantHook, ADDRESS_ZERO) + await emitHookUpdatedEvent({ + events, + hookName: 'onValidKeyHook', + hookAddress: testEventHooks.address, + }) }) it('cannot set the hook to a non-contract address', async () => { - await reverts( - lock.setEventHooks( - ADDRESS_ZERO, - ADDRESS_ZERO, - accounts[3], - ADDRESS_ZERO, - ADDRESS_ZERO, - ADDRESS_ZERO, - ADDRESS_ZERO - ), - 'INVALID_HOOK(2)' - ) + await canNotSetNonContractAddress({ lock, index: 2 }) }) }) diff --git a/smart-contracts/test/Lock/owners.js b/smart-contracts/test/Lock/owners.js index aa9ba45b3b7..014b956c931 100644 --- a/smart-contracts/test/Lock/owners.js +++ b/smart-contracts/test/Lock/owners.js @@ -1,51 +1,60 @@ -const BigNumber = require('bignumber.js') -const { deployLock, purchaseKeys, ADDRESS_ZERO } = require('../helpers') +const { assert } = require('chai') +const { ethers } = require('hardhat') +const { + deployLock, + purchaseKeys, + ADDRESS_ZERO, + compareBigNumbers, +} = require('../helpers') let lock let tokenIds +let keyOwners +let random -contract('Lock / owners', (accounts) => { - const keyOwners = accounts.slice(1, 6) +describe('Lock / owners', () => { before(async () => { + random = (await ethers.getSigners())[10] lock = await deployLock() await lock.updateTransferFee(0) // disable the transfer fee for this test }) before(async () => { // Purchase keys! - ;({ tokenIds } = await purchaseKeys(lock, keyOwners.length)) + ;({ tokenIds, keyOwners } = await purchaseKeys(lock, 5)) + keyOwners = await Promise.all( + await keyOwners.map((k) => ethers.getSigner(k)) + ) }) it('should have the right number of keys', async () => { - const totalSupply = new BigNumber(await lock.totalSupply()) - assert.equal(totalSupply.toFixed(), keyOwners.length) + const totalSupply = await lock.totalSupply() + compareBigNumbers(totalSupply, keyOwners.length) }) it('should have the right number of owners', async () => { - const numberOfOwners = new BigNumber(await lock.numberOfOwners()) - assert.equal(numberOfOwners.toFixed(), keyOwners.length) + const numberOfOwners = await lock.numberOfOwners() + compareBigNumbers(numberOfOwners, keyOwners.length) }) describe('after a transfer to a new address', () => { let numberOfOwners before(async () => { - numberOfOwners = new BigNumber(await lock.numberOfOwners()) - await lock.transferFrom(keyOwners[0], accounts[8], tokenIds[0], { - from: keyOwners[0], - }) + numberOfOwners = await lock.numberOfOwners() + await lock + .connect(keyOwners[0]) + .transferFrom(keyOwners[0].address, random.address, tokenIds[0]) }) it('should have the right number of keys', async () => { - const totalSupply = new BigNumber(await lock.totalSupply()) - assert.equal(totalSupply.toFixed(), tokenIds.length) + compareBigNumbers(await lock.totalSupply(), tokenIds.length) }) it('should have the right number of owners', async () => { - assert.equal(await lock.balanceOf(accounts[8]), 1) - assert.equal(await lock.balanceOf(keyOwners[0]), 0) - const _numberOfOwners = new BigNumber(await lock.numberOfOwners()) - assert.equal(_numberOfOwners.toFixed(), numberOfOwners.toFixed()) + compareBigNumbers(await lock.balanceOf(random.address), 1) + compareBigNumbers(await lock.balanceOf(keyOwners[0].address), 0) + compareBigNumbers(await lock.numberOfOwners(), numberOfOwners) }) }) @@ -53,24 +62,22 @@ contract('Lock / owners', (accounts) => { let numberOfOwners before(async () => { - numberOfOwners = new BigNumber(await lock.numberOfOwners()) + numberOfOwners = await lock.numberOfOwners() // both have tokens - assert.equal(await lock.balanceOf(keyOwners[1]), 1) - assert.equal(await lock.balanceOf(keyOwners[2]), 1) - await lock.transferFrom(keyOwners[1], keyOwners[2], tokenIds[1], { - from: keyOwners[1], - }) + compareBigNumbers(await lock.balanceOf(keyOwners[1].address), 1) + compareBigNumbers(await lock.balanceOf(keyOwners[2].address), 1) + await lock + .connect(keyOwners[1]) + .transferFrom(keyOwners[1].address, keyOwners[2].address, tokenIds[1]) }) it('should have the right number of keys', async () => { - const totalSupply = new BigNumber(await lock.totalSupply()) - assert.equal(totalSupply.toFixed(), tokenIds.length) + compareBigNumbers(await lock.totalSupply(), tokenIds.length) }) it('should have the right number of owners', async () => { - const _numberOfOwners = new BigNumber(await lock.numberOfOwners()) - assert.equal(_numberOfOwners.toFixed(), numberOfOwners.toFixed() - 1) + compareBigNumbers(await lock.numberOfOwners(), numberOfOwners.sub(1)) }) }) @@ -78,44 +85,39 @@ contract('Lock / owners', (accounts) => { describe('after a transfer to a existing owner, buying a key again for someone who already owned one', () => { it('should preserve the right number of owners', async () => { // initial state - const numberOfOwners = new BigNumber(await lock.numberOfOwners()) - const totalSupplyBefore = new BigNumber(await lock.totalSupply()) + const numberOfOwners = await lock.numberOfOwners() + const totalSupplyBefore = await lock.totalSupply() // transfer the key to an existing owner - assert.equal(await lock.balanceOf(keyOwners[4]), 1) - await lock.transferFrom(keyOwners[3], keyOwners[4], tokenIds[3], { - from: keyOwners[3], - }) - assert.equal(await lock.ownerOf(tokenIds[3]), keyOwners[4]) - assert.equal(await lock.balanceOf(keyOwners[4]), 2) - assert.equal(await lock.balanceOf(keyOwners[3]), 0) + assert.equal(await lock.balanceOf(keyOwners[4].address), 1) + await lock + .connect(keyOwners[3]) + .transferFrom(keyOwners[3].address, keyOwners[4].address, tokenIds[3]) + compareBigNumbers(await lock.ownerOf(tokenIds[3]), keyOwners[4].address) + compareBigNumbers(await lock.balanceOf(keyOwners[4].address), 2) + compareBigNumbers(await lock.balanceOf(keyOwners[3].address), 0) // supply unchanged - const totalSupplyAfter = new BigNumber(await lock.totalSupply()) - assert.equal(totalSupplyBefore.toFixed(), totalSupplyAfter.toFixed()) + compareBigNumbers(totalSupplyBefore, await lock.totalSupply()) // number of owners changed - assert.equal( - (numberOfOwners - 1).toFixed(), - new BigNumber(await lock.numberOfOwners()).toFixed() - ) + compareBigNumbers(numberOfOwners.sub(1), await lock.numberOfOwners()) // someone buys a key again for the previous owner await lock.purchase( [], - [keyOwners[3]], + [keyOwners[3].address], [ADDRESS_ZERO], [ADDRESS_ZERO], [[]], { value: await lock.keyPrice(), - from: keyOwners[3], } ) // number of owners should be left unchanged - const _numberOfOwners = new BigNumber(await lock.numberOfOwners()) - assert.equal(_numberOfOwners.toFixed(), numberOfOwners.toFixed()) + const _numberOfOwners = await lock.numberOfOwners() + compareBigNumbers(_numberOfOwners, numberOfOwners) }) }) }) diff --git a/smart-contracts/test/Lock/permissions/isKeyManager.js b/smart-contracts/test/Lock/permissions/isKeyManager.js index 468677c226a..a8b6d1481fd 100644 --- a/smart-contracts/test/Lock/permissions/isKeyManager.js +++ b/smart-contracts/test/Lock/permissions/isKeyManager.js @@ -1,51 +1,54 @@ +const { assert } = require('chai') const { ethers } = require('hardhat') -const BigNumber = require('bignumber.js') -const { ADDRESS_ZERO } = require('../../helpers') - -const KeyManagerMock = artifacts.require('KeyManagerMock') let keyManagerMock -let keyOwner +let keyOwner, keyManager, random, notKeyManager let tokenId -const expirationDuration = new BigNumber(60 * 60 * 24 * 30) +const expirationDuration = ethers.BigNumber.from(60 * 60 * 24 * 30) -contract('Permissions / isKeyManager', (accounts) => { - keyOwner = accounts[1] +describe('Permissions / isKeyManager', () => { before(async () => { + ;[, keyOwner, keyManager, random, notKeyManager] = await ethers.getSigners() // init template - keyManagerMock = await KeyManagerMock.new() + const KeyManagerMock = await ethers.getContractFactory('KeyManagerMock') + + keyManagerMock = await KeyManagerMock.deploy() const { timestamp } = await ethers.provider.getBlock('latest') - const timestampBefore = new BigNumber(timestamp).plus(expirationDuration) + const timestampBefore = + ethers.BigNumber.from(timestamp).add(expirationDuration) const tx = await keyManagerMock.createNewKey( - keyOwner, - ADDRESS_ZERO, // beneficiary + keyOwner.address, + keyManager.address, timestampBefore ) - - const { args } = tx.logs.find((v) => v.event === 'Transfer') - tokenId = args.tokenId + const { events } = await tx.wait() + ;({ + args: { tokenId }, + } = events.find((v) => v.event === 'Transfer')) }) describe('confirming the key manager', () => { - let isKeyManager - it('should return true if address is the KM', async () => { - isKeyManager = await keyManagerMock.isKeyManager(tokenId, accounts[1], { - from: accounts[1], - }) - assert.equal(isKeyManager, true) + assert.equal( + await keyManagerMock + .connect(keyManager) + .isKeyManager(tokenId, keyManager.address), + true + ) // it shouldn't matter who is calling - isKeyManager = await keyManagerMock.isKeyManager(tokenId, accounts[1], { - from: accounts[5], - }) - assert.equal(isKeyManager, true) + assert.equal( + await keyManagerMock + .connect(random) + .isKeyManager(tokenId, keyManager.address), + true + ) }) it('should return false if address is not the KM', async () => { - isKeyManager = await keyManagerMock.isKeyManager(tokenId, accounts[9], { - from: accounts[1], - }) - assert.equal(isKeyManager, false) + assert.equal( + await keyManagerMock.isKeyManager(tokenId, notKeyManager.address), + false + ) }) }) }) diff --git a/smart-contracts/test/Lock/permissions/keyGranter.js b/smart-contracts/test/Lock/permissions/keyGranter.js index 224f08903b2..77e10898e7b 100644 --- a/smart-contracts/test/Lock/permissions/keyGranter.js +++ b/smart-contracts/test/Lock/permissions/keyGranter.js @@ -1,3 +1,5 @@ +const { assert } = require('chai') +const { ethers } = require('hardhat') const { deployLock, reverts, @@ -6,59 +8,63 @@ const { } = require('../../helpers') let lock -let result -let lockCreator -let notAuthorized -let newKeyGranter - -contract('Permissions / KeyGranter', (accounts) => { - lockCreator = accounts[0] - notAuthorized = accounts[9] - newKeyGranter = accounts[1] +let lockCreator, notAuthorized, newKeyGranter +describe('Permissions / KeyGranter', () => { before(async () => { + ;[lockCreator, notAuthorized, newKeyGranter] = await ethers.getSigners() lock = await deployLock() }) describe('default permissions on a new lock', () => { it('should add the lock creator to the keyGranter role', async () => { - assert.equal(await lock.hasRole(KEY_GRANTER_ROLE, lockCreator), true) + assert.equal( + await lock.hasRole(KEY_GRANTER_ROLE, lockCreator.address), + true + ) // lock creator is also added to the LockManager role by default - assert.equal(await lock.hasRole(LOCK_MANAGER_ROLE, lockCreator), true) + assert.equal( + await lock.hasRole(LOCK_MANAGER_ROLE, lockCreator.address), + true + ) }) }) describe('modifying permissions on an existing lock', () => { it('should allow a lockManager to add a KeyGranter', async () => { - result = await lock.isLockManager(lockCreator) - assert.equal(result, true) - await lock.grantRole(KEY_GRANTER_ROLE, newKeyGranter, { - from: lockCreator, - }) - result = await lock.hasRole(KEY_GRANTER_ROLE, newKeyGranter) - assert.equal(result, true) + assert.equal(await lock.isLockManager(lockCreator.address), true) + assert.equal( + await lock.hasRole(KEY_GRANTER_ROLE, newKeyGranter.address), + false + ) + await lock.grantRole(KEY_GRANTER_ROLE, newKeyGranter.address) + assert.equal( + await lock.hasRole(KEY_GRANTER_ROLE, newKeyGranter.address), + true + ) }) it('should not allow anyone else to add a KeyGranter', async () => { - result = await lock.isLockManager(notAuthorized) - assert.equal(result, false) + assert.equal(await lock.isLockManager(notAuthorized.address), false) await reverts( - lock.grantRole(KEY_GRANTER_ROLE, accounts[5], { from: notAuthorized }), + lock + .connect(notAuthorized) + .grantRole(KEY_GRANTER_ROLE, newKeyGranter.address), `is missing role ${LOCK_MANAGER_ROLE}` ) }) it('should only allow a lockManager to remove a KeyGranter', async () => { await reverts( - lock.revokeRole(KEY_GRANTER_ROLE, newKeyGranter, { - from: notAuthorized, - }), + lock + .connect(notAuthorized) + .revokeRole(KEY_GRANTER_ROLE, newKeyGranter.address), `is missing role ${LOCK_MANAGER_ROLE}` ) - await lock.revokeRole(KEY_GRANTER_ROLE, newKeyGranter, { - from: lockCreator, - }) - result = await lock.hasRole(KEY_GRANTER_ROLE, newKeyGranter) - assert.equal(result, false) + await lock.revokeRole(KEY_GRANTER_ROLE, newKeyGranter.address) + assert.equal( + await lock.hasRole(KEY_GRANTER_ROLE, newKeyGranter.address), + false + ) }) }) }) diff --git a/smart-contracts/test/Lock/permissions/keyManager.js b/smart-contracts/test/Lock/permissions/keyManager.js index c22a6f44401..c4df93a5b7f 100644 --- a/smart-contracts/test/Lock/permissions/keyManager.js +++ b/smart-contracts/test/Lock/permissions/keyManager.js @@ -1,142 +1,111 @@ -const BigNumber = require('bignumber.js') +const { assert } = require('chai') const { ethers } = require('hardhat') const { reverts, deployLock, ADDRESS_ZERO, - purchaseKeys, + purchaseKey, } = require('../../helpers') let lock -let lockCreator -let tokenIds - -contract('Permissions / KeyManager', (accounts) => { - lockCreator = accounts[0] - const lockManager = lockCreator - const keyGranter = lockCreator - const keyOwners = [accounts[1], accounts[2], accounts[3]] - const [keyOwner1] = keyOwners - const keyPrice = ethers.utils.parseUnits('0.01', 'ether') - const oneDay = new BigNumber(60 * 60 * 24) - let keyManager +let keyOwner, keyManager, keyRecipient, keyGrantee +let tokenId +const keyPrice = ethers.utils.parseUnits('0.01', 'ether') +const oneDay = 60 * 60 * 24 + +describe('Permissions / KeyManager', () => { let validExpirationTimestamp + before(async () => { + ;[, keyOwner, keyManager, keyRecipient, keyGrantee] = + await ethers.getSigners() + lock = await deployLock() + }) + beforeEach(async () => { // get time const blockNumber = await ethers.provider.getBlockNumber() const latestBlock = await ethers.provider.getBlock(blockNumber) validExpirationTimestamp = Math.round(latestBlock.timestamp + 600) + }) - // purchase keys - lock = await deployLock() - ;({ tokenIds } = await purchaseKeys(lock, keyOwners.length)) + it('should leave the KM == 0x00(default) for new purchases', async () => { + const { tokenId } = await purchaseKey(lock, keyOwner.address) + const keyManager = await lock.keyManagerOf(tokenId) + assert.equal(keyManager, ADDRESS_ZERO) }) describe('Key Purchases', () => { - it('should leave the KM == 0x00(default) for new purchases', async () => { - const keyManager = await lock.keyManagerOf(tokenIds[0]) - assert.equal(keyManager, ADDRESS_ZERO) - }) - it('should allow to set KM when buying new keys', async () => { const tx = await lock.purchase( [], - [keyOwner1], + [keyOwner.address], [ADDRESS_ZERO], - [accounts[8]], + [keyManager.address], [[]], { value: keyPrice, - from: keyOwner1, } ) - const { args } = tx.logs.find((v) => v.event === 'Transfer') - const newKeyManager = await lock.keyManagerOf(args.tokenId) - assert.equal(newKeyManager, accounts[8]) + const { events } = await tx.wait() + const { args } = events.find(({ event }) => event === 'Transfer') + assert.equal(await lock.keyManagerOf(args.tokenId), keyManager.address) }) }) describe('Key Renewal / extend', () => { let tokenId beforeEach(async () => { - const tx = await lock.purchase( - [], - [keyOwner1], - [ADDRESS_ZERO], - [ADDRESS_ZERO], - [[]], - { - value: keyPrice, - from: keyOwner1, - } - ) - const { args } = tx.logs.find((v) => v.event === 'Transfer') - tokenId = args.tokenId + ;({ tokenId } = await purchaseKey(lock, keyOwner.address)) }) - it('should reset key manager when specified', async () => { + + it('should left key manager untouched when referrer is specified', async () => { assert.equal(await lock.keyManagerOf(tokenId), ADDRESS_ZERO) assert.equal(await lock.isValidKey(tokenId), true) - await lock.extend(0, tokenId, accounts[8], [], { + await lock.extend(0, tokenId, keyManager.address, [], { value: keyPrice, - from: keyOwner1, }) assert.equal(await lock.keyManagerOf(tokenId), ADDRESS_ZERO) }) it('should left untouched when not specified', async () => { - await lock.setKeyManagerOf(tokenId, accounts[9], { from: keyOwner1 }) - assert.equal(await lock.keyManagerOf(tokenId), accounts[9]) + await lock.connect(keyOwner).setKeyManagerOf(tokenId, keyManager.address) + assert.equal(await lock.keyManagerOf(tokenId), keyManager.address) await lock.extend(0, tokenId, ADDRESS_ZERO, [], { value: keyPrice, - from: keyOwner1, }) - assert.equal(await lock.keyManagerOf(tokenId), accounts[9]) + assert.equal(await lock.keyManagerOf(tokenId), keyManager.address) }) }) describe('Key Transfers', () => { let tokenId - before(async () => { - lock = await deployLock() - const tx = await lock.purchase( - [], - keyOwners, - keyOwners.map(() => ADDRESS_ZERO), - keyOwners.map(() => ADDRESS_ZERO), - keyOwners.map(() => []), - { - value: keyPrice * keyOwners.length, - from: accounts[0], - } - ) - tokenIds = tx.logs - .filter((v) => v.event === 'Transfer') - .map(({ args }) => args.tokenId) - tokenId = tokenIds[0] + beforeEach(async () => { + ;({ tokenId } = await purchaseKey(lock, keyOwner.address)) }) - - it('should leave the KM == 0x00(default) for new recipients', async () => { - const tx = await lock.transferFrom(keyOwner1, accounts[8], tokenId, { - from: keyOwner1, - }) - const { args } = tx.logs.find((v) => v.event === 'Transfer') - keyManager = await lock.keyManagerOf(args.tokenId) - assert.equal(keyManager, ADDRESS_ZERO) + it('should leave the KM == 0x00(default) when transferring', async () => { + const tx = await lock + .connect(keyOwner) + .transferFrom(keyOwner.address, keyRecipient.address, tokenId) + const { events } = await tx.wait() + const { args } = events.find(({ event }) => event === 'Transfer') + assert.equal(await lock.keyManagerOf(args.tokenId), ADDRESS_ZERO) }) }) describe('Key Sharing', () => { let newTokenId beforeEach(async () => { + ;({ tokenId } = await purchaseKey(lock, keyOwner.address)) + // share key creates a new key - const tx = await lock.shareKey(accounts[4], tokenIds[0], oneDay, { - from: keyOwners[0], - }) - const { - args: { tokenId }, - } = tx.logs.find((v) => v.event === 'Transfer' && v.from !== ADDRESS_ZERO) - newTokenId = tokenId + const tx = await lock + .connect(keyOwner) + .shareKey(keyRecipient.address, tokenId, oneDay) + const { events } = await tx.wait() + ;({ + args: { tokenId: newTokenId }, + } = events.find((v) => v.event === 'Transfer' && v.from !== ADDRESS_ZERO)) }) it('should leave the KM == 0x00(default) for new recipients', async () => { @@ -148,7 +117,7 @@ contract('Permissions / KeyManager', (accounts) => { it('should not change KM for existing valid key owners', async () => { keyManagerBefore = await lock.keyManagerOf(tokenId) await lock.shareKey(keyOwner2, tokenId, oneDay, { - from: keyOwner1, + from: keyOwner, }) tokenId = await lock.getTokenIdFor(keyOwner2) keyManager = await lock.keyManagerOf(tokenId) @@ -156,24 +125,24 @@ contract('Permissions / KeyManager', (accounts) => { }) it('should reset the KM to 0x00 for expired key owners', async () => { - tokenId = await lock.getTokenIdFor(keyOwner1) + tokenId = await lock.getTokenIdFor(keyOwner) assert.notEqual(tokenId, 0) let keyManager = await lock.keyManagerOf(tokenId) assert.equal(keyManager, ADDRESS_ZERO) const owner = await lock.ownerOf(tokenId) - assert.equal(owner, keyOwner1) - await lock.setKeyManagerOf(tokenId, accounts[9], { from: keyOwner1 }) + assert.equal(owner, keyOwner) + await lock.setKeyManagerOf(tokenId, keyManager.address, { from: keyOwner }) keyManager = await lock.keyManagerOf(tokenId) - assert.equal(keyManager, accounts[9]) - await lock.expireAndRefundFor(keyOwner1, 0, { from: lockCreator }) - assert.equal(await lock.getHasValidKey(keyOwner1), false) + assert.equal(keyManager, keyManager.address) + await lock.expireAndRefundFor(keyOwner, 0, { from: lockCreator }) + assert.equal(await lock.getHasValidKey(keyOwner), false) tokenId = await lock.getTokenIdFor(keyOwner2) - await lock.shareKey(keyOwner1, tokenId, oneDay, { + await lock.shareKey(keyOwner, tokenId, oneDay, { from: keyOwner2, }) - tokenId = await lock.getTokenIdFor(keyOwner1) + tokenId = await lock.getTokenIdFor(keyOwner) keyManager = await lock.keyManagerOf(tokenId) - assert.equal(await lock.getHasValidKey(keyOwner1), true) + assert.equal(await lock.getHasValidKey(keyOwner), true) assert.equal(keyManager, ADDRESS_ZERO) }) */ @@ -182,35 +151,38 @@ contract('Permissions / KeyManager', (accounts) => { describe('Key Granting', () => { it('should let KeyGranter set an arbitrary KM for new keys', async () => { const tx = await lock.grantKeys( - [accounts[7]], + [keyGrantee.address], [validExpirationTimestamp], - [accounts[8]], - { - from: keyGranter, - } + [keyManager.address] ) - const { args } = tx.logs.find((v) => v.event === 'Transfer') - assert.equal(await lock.keyManagerOf(args.tokenId), accounts[8]) + const { events } = await tx.wait() + const { args } = events.find(({ event }) => event === 'Transfer') + assert.equal(await lock.keyManagerOf(args.tokenId), keyManager.address) }) }) describe('configuring the key manager', () => { + before(async () => { + lock = await deployLock() + }) + beforeEach(async () => { + ;({ tokenId } = await purchaseKey(lock, keyOwner.address)) + }) it('should allow the current keyManager to set a new KM', async () => { - assert.equal(await lock.keyManagerOf(tokenIds[0]), ADDRESS_ZERO) - await lock.setKeyManagerOf(tokenIds[0], accounts[9], { from: keyOwner1 }) - assert.equal(await lock.keyManagerOf(tokenIds[0]), accounts[9]) + assert.equal(await lock.keyManagerOf(tokenId), ADDRESS_ZERO) + await lock.connect(keyOwner).setKeyManagerOf(tokenId, keyManager.address) + assert.equal(await lock.keyManagerOf(tokenId), keyManager.address) }) it('should allow a LockManager to set a new KM', async () => { - await lock.setKeyManagerOf(tokenIds[1], accounts[7], { - from: lockManager, - }) - assert.equal(await lock.keyManagerOf(tokenIds[1]), accounts[7]) + assert.equal(await lock.keyManagerOf(tokenId), ADDRESS_ZERO) + await lock.setKeyManagerOf(tokenId, keyManager.address) + assert.equal(await lock.keyManagerOf(tokenId), keyManager.address) }) it('should fail to allow anyone else to set a new KM', async () => { await reverts( - lock.setKeyManagerOf(tokenIds[0], accounts[2], { from: accounts[5] }), + lock.connect(keyGrantee).setKeyManagerOf(tokenId, keyManager.address), 'UNAUTHORIZED_KEY_MANAGER_UPDATE' ) }) diff --git a/smart-contracts/test/Lock/permissions/setKeyManager.js b/smart-contracts/test/Lock/permissions/setKeyManager.js index cc5d7026034..0db5ce582d0 100644 --- a/smart-contracts/test/Lock/permissions/setKeyManager.js +++ b/smart-contracts/test/Lock/permissions/setKeyManager.js @@ -1,104 +1,85 @@ -const { deployLock, ADDRESS_ZERO, reverts } = require('../../helpers') +const { assert } = require('chai') +const { + deployLock, + ADDRESS_ZERO, + reverts, + purchaseKey, +} = require('../../helpers') const { ethers } = require('hardhat') let lock -let lockCreator - -contract('Permissions / KeyManager', (accounts) => { - lockCreator = accounts[0] - const lockManager = lockCreator - const keyPrice = ethers.utils.parseUnits('0.01', 'ether') - let tokenId - let keyManager - let keyManagerBefore +let tokenId +let keyOwner, keyManager, anotherKeyManager +describe('Permissions / KeyManager', () => { before(async () => { lock = await deployLock() - const tx = await lock.purchase( - [], - [accounts[1]], - [ADDRESS_ZERO], - [ADDRESS_ZERO], - [[]], - { - value: keyPrice, - from: accounts[1], - } - ) - const { args } = tx.logs.find((v) => v.event === 'Transfer') - tokenId = args.tokenId + ;[, keyOwner, keyManager, anotherKeyManager] = await ethers.getSigners() + }) - await lock.approve(accounts[7], tokenId, { - from: accounts[1], - }) + beforeEach(async () => { + ;({ tokenId } = await purchaseKey(lock, keyOwner.address)) }) - describe('setting the key manager', () => { - it('should have a default KM of 0x00', async () => { - keyManagerBefore = await lock.keyManagerOf(tokenId) - assert.equal(keyManagerBefore, ADDRESS_ZERO) - }) + it('should have a default KM of 0x00', async () => { + assert.equal(await lock.keyManagerOf(tokenId), ADDRESS_ZERO) + }) - // ensure that by default the owner is also the keyManager - it('should allow the default keyManager to set a new KM', async () => { - const defaultKeyManager = accounts[1] - await lock.setKeyManagerOf(tokenId, accounts[9], { - from: defaultKeyManager, - }) - keyManager = await lock.keyManagerOf(tokenId) - assert.equal(keyManager, accounts[9]) + describe('setting the key manager', () => { + it('should allow the key owner to set a new KM', async () => { + await lock.connect(keyOwner).setKeyManagerOf(tokenId, keyManager.address) + assert.equal(await lock.keyManagerOf(tokenId), keyManager.address) }) - it('should allow the current keyManager to set a new KM', async () => { - keyManagerBefore = await lock.keyManagerOf(tokenId) - await lock.setKeyManagerOf(tokenId, accounts[3], { - from: keyManagerBefore, - }) - keyManager = await lock.keyManagerOf(tokenId) - assert.equal(keyManager, accounts[3]) + it('should allow a keyManager to set another KM', async () => { + await lock.connect(keyOwner).setKeyManagerOf(tokenId, keyManager.address) + assert.equal(await lock.keyManagerOf(tokenId), keyManager.address) + await lock + .connect(keyManager) + .setKeyManagerOf(tokenId, anotherKeyManager.address) + assert.equal(await lock.keyManagerOf(tokenId), anotherKeyManager.address) }) it('should allow a LockManager to set a new KM', async () => { - keyManagerBefore = await lock.keyManagerOf(tokenId) - await lock.setKeyManagerOf(tokenId, accounts[5], { from: lockManager }) - keyManager = await lock.keyManagerOf(tokenId) - assert.notEqual(keyManagerBefore, keyManager) - assert.equal(keyManager, accounts[5]) + assert.equal(await lock.keyManagerOf(tokenId), ADDRESS_ZERO) + await lock.setKeyManagerOf(tokenId, keyManager.address) + assert.equal(await lock.keyManagerOf(tokenId), keyManager.address) + assert.notEqual( + await lock.keyManagerOf(tokenId), + anotherKeyManager.address + ) }) - // confirm that approvals are cleared for expired keys it('should clear any erc721-approvals for expired keys', async () => { - const approved = await lock.getApproved(tokenId) - assert.equal(approved, 0) + await lock.connect(keyOwner).approve(anotherKeyManager.address, tokenId) + assert.equal(await lock.getApproved(tokenId), anotherKeyManager.address) + await lock.setKeyManagerOf(tokenId, keyManager.address) + assert.equal(await lock.getApproved(tokenId), 0) }) it('should fail to allow anyone else to set a new KM', async () => { await reverts( - lock.setKeyManagerOf(tokenId, accounts[2], { from: accounts[6] }), + lock + .connect(anotherKeyManager) + .setKeyManagerOf(tokenId, keyManager.address), 'UNAUTHORIZED_KEY_MANAGER_UPDATE' ) }) it('should disallow owner to set a new KM if a KM is already set', async () => { - await lock.setKeyManagerOf(tokenId, accounts[5], { from: lockManager }) + await lock.setKeyManagerOf(tokenId, keyManager.address) await reverts( - lock.setKeyManagerOf(tokenId, accounts[1], { from: accounts[1] }), + lock.connect(keyOwner).setKeyManagerOf(tokenId, keyOwner.address), 'UNAUTHORIZED_KEY_MANAGER_UPDATE' ) }) describe('setting the KM to 0x00', () => { - before(async () => { - keyManager = await lock.keyManagerOf(tokenId) - await lock.setKeyManagerOf(tokenId, accounts[9], { from: keyManager }) - keyManager = await lock.keyManagerOf(tokenId) - assert.equal(keyManager, accounts[9]) - await lock.setKeyManagerOf(tokenId, ADDRESS_ZERO) - }) - it('should reset to the default KeyManager of 0x00', async () => { - keyManager = await lock.keyManagerOf(tokenId) - assert.equal(keyManager, ADDRESS_ZERO) + await lock.setKeyManagerOf(tokenId, keyManager.address) + assert.equal(await lock.keyManagerOf(tokenId), keyManager.address) + await lock.connect(keyManager).setKeyManagerOf(tokenId, ADDRESS_ZERO) + assert.equal(await lock.keyManagerOf(tokenId), ADDRESS_ZERO) }) }) }) diff --git a/smart-contracts/test/Lock/purchaseFor.js b/smart-contracts/test/Lock/purchaseFor.js index 9611af05c56..06e3091ec9d 100644 --- a/smart-contracts/test/Lock/purchaseFor.js +++ b/smart-contracts/test/Lock/purchaseFor.js @@ -1,16 +1,25 @@ +const { assert } = require('chai') const { ethers } = require('hardhat') -const BigNumber = require('bignumber.js') -const { getBalance, deployLock, reverts, ADDRESS_ZERO } = require('../helpers') +const { + getBalance, + deployLock, + reverts, + ADDRESS_ZERO, + compareBigNumbers, +} = require('../helpers') const keyPrice = ethers.utils.parseEther('0.01', 'ether') -contract('Lock / purchaseFor', (accounts) => { +describe('Lock / purchaseFor', () => { let lock let anotherLock let lockSingleKey let lockFree + let keyOwner, anotherKeyOwner beforeEach(async () => { + ;[, keyOwner, anotherKeyOwner] = await ethers.getSigners() + lock = await deployLock() anotherLock = await deployLock() lockSingleKey = await deployLock({ name: 'SINGLE KEY' }) @@ -20,19 +29,26 @@ contract('Lock / purchaseFor', (accounts) => { describe('when the contract has a public key release', () => { it('should fail if the price is not enough', async () => { await reverts( - lock.purchase([], [accounts[0]], [ADDRESS_ZERO], [ADDRESS_ZERO], [[]], { - value: ethers.utils.parseEther('0.0001', 'ether'), - }), + lock.purchase( + [], + [keyOwner.address], + [ADDRESS_ZERO], + [ADDRESS_ZERO], + [[]], + { + value: ethers.utils.parseEther('0.0001', 'ether'), + } + ), 'INSUFFICIENT_VALUE' ) // Making sure we do not have a key set! - assert.equal(await lock.keyExpirationTimestampFor(accounts[0]), 0) + assert.equal(await lock.keyExpirationTimestampFor(keyOwner.address), 0) }) it('should fail if we reached the max number of keys', async () => { await lockSingleKey.purchase( [], - [accounts[0]], + [keyOwner.address], [ADDRESS_ZERO], [ADDRESS_ZERO], [[]], @@ -43,13 +59,12 @@ contract('Lock / purchaseFor', (accounts) => { await reverts( lockSingleKey.purchase( [], - [accounts[1]], + [anotherKeyOwner.address], [ADDRESS_ZERO], [ADDRESS_ZERO], [[]], { value: keyPrice, - from: accounts[1], } ), 'LOCK_SOLD_OUT' @@ -59,7 +74,7 @@ contract('Lock / purchaseFor', (accounts) => { it('should trigger an event when successful', async () => { const tx = await lock.purchase( [], - [accounts[2]], + [anotherKeyOwner.address], [ADDRESS_ZERO], [ADDRESS_ZERO], [[]], @@ -67,11 +82,13 @@ contract('Lock / purchaseFor', (accounts) => { value: keyPrice, } ) - assert.equal(tx.logs[0].event, 'Transfer') - assert.equal(tx.logs[0].args.from, 0) - assert.equal(tx.logs[0].args.to, accounts[2]) + const { events } = await tx.wait() + const { args } = events.find((v) => v.event === 'Transfer') + + assert.equal(args.from, 0) + assert.equal(args.to, anotherKeyOwner.address) // Verify that RenewKeyPurchase does not emit on a first key purchase - const includes = tx.logs.filter((l) => l.event === 'RenewKeyPurchase') + const includes = events.filter((l) => l.event === 'RenewKeyPurchase') assert.equal(includes.length, 0) }) @@ -79,7 +96,7 @@ contract('Lock / purchaseFor', (accounts) => { it('should create a new key', async () => { const tx = await anotherLock.purchase( [], - [accounts[4]], + [keyOwner.address], [ADDRESS_ZERO], [ADDRESS_ZERO], [[]], @@ -87,20 +104,21 @@ contract('Lock / purchaseFor', (accounts) => { value: keyPrice, } ) - assert.equal(await anotherLock.balanceOf(accounts[4]), 1) - assert.equal(await anotherLock.getHasValidKey(accounts[4]), true) + assert.equal(await anotherLock.balanceOf(keyOwner.address), 1) + assert.equal(await anotherLock.getHasValidKey(keyOwner.address), true) // let's now expire the key - const { args } = tx.logs.find((v) => v.event === 'Transfer') + const { events } = await tx.wait() + const { args } = events.find((v) => v.event === 'Transfer') await anotherLock.expireAndRefundFor(args.tokenId, 0) - assert.equal(await anotherLock.getHasValidKey(accounts[4]), false) - assert.equal(await anotherLock.balanceOf(accounts[4]), 0) - assert.equal(await anotherLock.totalKeys(accounts[4]), 1) + assert.equal(await anotherLock.getHasValidKey(keyOwner.address), false) + assert.equal(await anotherLock.balanceOf(keyOwner.address), 0) + assert.equal(await anotherLock.totalKeys(keyOwner.address), 1) // Purchase a new one await anotherLock.purchase( [], - [accounts[4]], + [keyOwner.address], [ADDRESS_ZERO], [ADDRESS_ZERO], [[]], @@ -108,9 +126,9 @@ contract('Lock / purchaseFor', (accounts) => { value: keyPrice, } ) - assert.equal(await anotherLock.balanceOf(accounts[4]), 1) - assert.equal(await anotherLock.getHasValidKey(accounts[4]), true) - assert.equal(await anotherLock.totalKeys(accounts[4]), 2) + assert.equal(await anotherLock.balanceOf(keyOwner.address), 1) + assert.equal(await anotherLock.getHasValidKey(keyOwner.address), true) + assert.equal(await anotherLock.totalKeys(keyOwner.address), 2) }) }) @@ -118,7 +136,7 @@ contract('Lock / purchaseFor', (accounts) => { it('should create a new key', async () => { await lock.purchase( [], - [accounts[1]], + [anotherKeyOwner.address], [ADDRESS_ZERO], [ADDRESS_ZERO], [[]], @@ -126,10 +144,10 @@ contract('Lock / purchaseFor', (accounts) => { value: keyPrice, } ) - assert.equal(await lock.balanceOf(accounts[1]), 1) + assert.equal(await lock.balanceOf(anotherKeyOwner.address), 1) await lock.purchase( [], - [accounts[1]], + [anotherKeyOwner.address], [ADDRESS_ZERO], [ADDRESS_ZERO], [[]], @@ -137,24 +155,24 @@ contract('Lock / purchaseFor', (accounts) => { value: keyPrice, } ) - assert.equal(await lock.balanceOf(accounts[1]), 2) + assert.equal(await lock.balanceOf(anotherKeyOwner.address), 2) }) }) describe('when the key was successfuly purchased', () => { - let totalSupply - let numberOfOwners - let balance + let totalSupplyBefore + let numberOfOwnersBefore + let balanceBefore let now let tokenId beforeEach(async () => { - balance = await getBalance(lock.address) - totalSupply = new BigNumber(await lock.totalSupply()) - numberOfOwners = new BigNumber(await lock.numberOfOwners()) - const newKeyTx = await lock.purchase( + balanceBefore = await getBalance(lock.address) + totalSupplyBefore = await lock.totalSupply() + numberOfOwnersBefore = await lock.numberOfOwners() + const tx = await lock.purchase( [], - [accounts[0]], + [keyOwner.address], [ADDRESS_ZERO], [ADDRESS_ZERO], [[]], @@ -162,39 +180,37 @@ contract('Lock / purchaseFor', (accounts) => { value: keyPrice, } ) - const { args } = newKeyTx.logs.find((v) => v.event === 'Transfer') + const { events, blockNumber } = await tx.wait() + const { args } = events.find((v) => v.event === 'Transfer') tokenId = args.tokenId - const transferBlock = await ethers.provider.getBlock( - newKeyTx.receipt.blockNumber - ) - now = transferBlock.timestamp + ;({ timestamp: now } = await ethers.provider.getBlock(blockNumber)) }) it('should have the right expiration timestamp for the key', async () => { - const expirationTimestamp = new BigNumber( - await lock.keyExpirationTimestampFor(tokenId) - ) - const expirationDuration = new BigNumber( - await lock.expirationDuration() + const expirationTimestamp = await lock.keyExpirationTimestampFor( + tokenId ) - assert(expirationTimestamp.gte(expirationDuration.plus(now))) + + const expirationDuration = await lock.expirationDuration() + + assert(expirationTimestamp.gte(expirationDuration.add(now))) }) it('should have added the funds to the contract', async () => { - const newBalance = await getBalance(lock.address) - assert.equal(newBalance.toString(), balance.plus(keyPrice.toString())) + compareBigNumbers( + await getBalance(lock.address), + balanceBefore.add(keyPrice) + ) }) it('should have increased the number of outstanding keys', async () => { - const _totalSupply = new BigNumber(await lock.totalSupply()) - assert.equal(_totalSupply.toFixed(), totalSupply.plus(1).toFixed()) + compareBigNumbers(await lock.totalSupply(), totalSupplyBefore.add(1)) }) it('should have increased the number of owners', async () => { - const _numberOfOwners = new BigNumber(await lock.numberOfOwners()) - assert.equal( - _numberOfOwners.toFixed(), - numberOfOwners.plus(1).toFixed() + compareBigNumbers( + await lock.numberOfOwners(), + numberOfOwnersBefore.add(1) ) }) }) @@ -202,14 +218,15 @@ contract('Lock / purchaseFor', (accounts) => { it('can purchase a free key', async () => { const tx = await lockFree.purchase( [], - [accounts[2]], + [anotherKeyOwner.address], [ADDRESS_ZERO], [ADDRESS_ZERO], [[]] ) - assert.equal(tx.logs[0].event, 'Transfer') - assert.equal(tx.logs[0].args.from, 0) - assert.equal(tx.logs[0].args.to, accounts[2]) + const { events } = await tx.wait() + const { args } = events.find((v) => v.event === 'Transfer') + assert.equal(args.from, 0) + assert.equal(args.to, anotherKeyOwner.address) }) }) }) diff --git a/smart-contracts/test/Lock/purchaseForFrom.js b/smart-contracts/test/Lock/purchaseForFrom.js index 11f787e45a3..e94aefb908a 100644 --- a/smart-contracts/test/Lock/purchaseForFrom.js +++ b/smart-contracts/test/Lock/purchaseForFrom.js @@ -1,10 +1,13 @@ +const { assert } = require('chai') const { deployLock, ADDRESS_ZERO } = require('../helpers') const { ethers } = require('hardhat') -contract('Lock / purchaseForFrom', (accounts) => { +describe('Lock / purchaseForFrom', () => { let lock let lockFree + let keyOwner, referrer before(async () => { + ;[, keyOwner, referrer] = await ethers.getSigners() lock = await deployLock() lockFree = await deployLock({ name: 'FREE' }) }) @@ -13,8 +16,8 @@ contract('Lock / purchaseForFrom', (accounts) => { it('should succeed', async () => { await lock.purchase( [], - [accounts[0]], - [accounts[1]], + [keyOwner.address], + [referrer.address], [ADDRESS_ZERO], [[]], { @@ -28,7 +31,7 @@ contract('Lock / purchaseForFrom', (accounts) => { it('should succeed', async () => { await lock.purchase( [], - [accounts[0]], + [keyOwner.address], [ADDRESS_ZERO], [ADDRESS_ZERO], [[]], @@ -38,8 +41,8 @@ contract('Lock / purchaseForFrom', (accounts) => { ) await lock.purchase( [], - [accounts[1]], - [accounts[0]], + [referrer.address], + [keyOwner.address], [ADDRESS_ZERO], [[]], { @@ -51,21 +54,23 @@ contract('Lock / purchaseForFrom', (accounts) => { it('can purchaseForFrom a free key', async () => { await lockFree.purchase( [], - [accounts[0]], + [keyOwner.address], [ADDRESS_ZERO], [ADDRESS_ZERO], [[]] ) const tx = await lockFree.purchase( [], - [accounts[2]], - [accounts[0]], + [keyOwner.address], + [referrer.address], [ADDRESS_ZERO], [[]] ) - assert.equal(tx.logs[0].event, 'Transfer') - assert.equal(tx.logs[0].args.from, 0) - assert.equal(tx.logs[0].args.to, accounts[2]) + + const { events } = await tx.wait() + const { args } = events.find(({ event }) => event === 'Transfer') + assert.equal(args.from, 0) + assert.equal(args.to, keyOwner.address) }) }) }) diff --git a/smart-contracts/test/Lock/purchaseMultiple.js b/smart-contracts/test/Lock/purchaseMultiple.js index e1a7981e6fa..07337414eef 100644 --- a/smart-contracts/test/Lock/purchaseMultiple.js +++ b/smart-contracts/test/Lock/purchaseMultiple.js @@ -1,9 +1,11 @@ +const { assert } = require('chai') const { reverts, deployERC20, deployLock, ADDRESS_ZERO, getBalance, + compareBigNumbers, } = require('../helpers') const { ethers } = require('hardhat') @@ -11,45 +13,40 @@ const scenarios = [false, true] let testToken const keyPrice = ethers.utils.parseUnits('0.01', 'ether') +const allowance = '100000000000000000000' -contract('Lock / purchase multiple keys at once', (accounts) => { +describe('Lock / purchase multiple keys at once', () => { scenarios.forEach((isErc20) => { let lock let tokenAddress - const keyOwners = [accounts[1], accounts[2], accounts[3], accounts[4]] + let keyOwners describe(`Test ${isErc20 ? 'ERC20' : 'ETH'}`, () => { beforeEach(async () => { - testToken = await deployERC20(accounts[0]) + const [holder, deployer, ...signers] = await ethers.getSigners() + keyOwners = signers.slice(1, 5) + testToken = await deployERC20(deployer) + // Mint some tokens for testing - await testToken.mint(accounts[2], '100000000000000000000', { - from: accounts[0], - }) + await testToken.connect(deployer).mint(holder.address, allowance) tokenAddress = isErc20 ? testToken.address : ADDRESS_ZERO lock = await deployLock({ tokenAddress }) // Approve spending - await testToken.approve( - lock.address, - (keyPrice * keyOwners.length).toString(), - { - from: accounts[2], - } - ) + await testToken.connect(holder).approve(lock.address, allowance) }) describe('purchase with exact value specified', () => { beforeEach(async () => { await lock.purchase( isErc20 ? keyOwners.map(() => keyPrice) : [], - keyOwners, + keyOwners.map(({ address }) => address), keyOwners.map(() => ADDRESS_ZERO), keyOwners.map(() => ADDRESS_ZERO), keyOwners.map(() => []), { - value: isErc20 ? 0 : keyPrice * keyOwners.length, - from: keyOwners[1], + value: isErc20 ? 0 : keyPrice.mul(keyOwners.length), } ) }) @@ -59,15 +56,12 @@ contract('Lock / purchase multiple keys at once', (accounts) => { lock.address, isErc20 ? testToken.address : null ) - assert.equal( - balance.toString(), - (keyPrice * keyOwners.length).toString() - ) + compareBigNumbers(balance, keyPrice.mul(keyOwners.length)) }) it('users should have valid keys', async () => { const areValid = await Promise.all( - keyOwners.map((account) => lock.getHasValidKey(account)) + keyOwners.map(({ address }) => lock.getHasValidKey(address)) ) areValid.forEach((isValid) => assert.equal(isValid, true)) }) @@ -76,17 +70,17 @@ contract('Lock / purchase multiple keys at once', (accounts) => { describe('purchase with wrong amounts', () => { it('reverts when wrong amounts are specified', async () => { await reverts( - lock.purchase( + lock.connect(keyOwners[1]).purchase( isErc20 ? keyOwners.map(() => ethers.utils.parseUnits('0.005', 'ether')) : [], - keyOwners, + keyOwners.map(({ address }) => address), + keyOwners.map(() => ADDRESS_ZERO), keyOwners.map(() => ADDRESS_ZERO), keyOwners.map(() => []), { - value: isErc20 ? 0 : keyPrice * (keyOwners.length - 2), - from: keyOwners[1], + value: isErc20 ? 0 : keyPrice.mul(keyOwners.length - 2), } ), isErc20 ? 'INSUFFICIENT_ERC20_VALUE' : 'INSUFFICIENT_VALUE' diff --git a/smart-contracts/test/Lock/purchaseTip.js b/smart-contracts/test/Lock/purchaseTip.js index 4d14d8fbd2a..3d7bbbf6d04 100644 --- a/smart-contracts/test/Lock/purchaseTip.js +++ b/smart-contracts/test/Lock/purchaseTip.js @@ -1,99 +1,98 @@ -const BigNumber = require('bignumber.js') const { getBalance, deployERC20, deployLock, reverts, ADDRESS_ZERO, + compareBigNumbers, + MAX_UINT, } = require('../helpers') const { ethers } = require('hardhat') const scenarios = [false, true] -let testToken const keyPrice = ethers.utils.parseUnits('0.01', 'ether') -const tip = new BigNumber(keyPrice.toString()).plus( - ethers.utils.parseUnits('1', 'ether').toString() -) +const tip = ethers.utils.parseUnits('1', 'ether') -contract('Lock / purchaseTip', (accounts) => { - scenarios.forEach((isErc20, i) => { +describe('Lock / purchaseTip', () => { + scenarios.forEach((isErc20) => { let lock let tokenAddress - - if (i === 1) return + let testToken + let deployer, spender describe(`Test ${isErc20 ? 'ERC20' : 'ETH'}`, () => { beforeEach(async () => { - testToken = await deployERC20(accounts[0]) + ;[deployer, spender] = await ethers.getSigners() + testToken = await deployERC20(deployer) // Mint some tokens for testing - await testToken.mint(accounts[2], '100000000000000000000', { - from: accounts[0], - }) + await testToken.mint(spender.address, '100000000000000000000') tokenAddress = isErc20 ? testToken.address : ADDRESS_ZERO lock = await deployLock({ tokenAddress }) + // default to spender + lock = lock.connect(spender) // Approve spending - await testToken.approve(lock.address, tip, { - from: accounts[2], - }) + if (isErc20) { + await testToken.connect(spender).approve(lock.address, MAX_UINT) + } }) describe('purchase with exact value specified', () => { beforeEach(async () => { await lock.purchase( - [keyPrice.toString()], - [accounts[2]], + [keyPrice], + [spender.address], [ADDRESS_ZERO], [ADDRESS_ZERO], [[]], { - from: accounts[2], - value: isErc20 ? 0 : keyPrice.toString(), + value: isErc20 ? 0 : keyPrice, } ) }) it('user sent keyPrice to the contract', async () => { - const balance = await getBalance(lock.address, tokenAddress) - assert.equal(balance.toString(), keyPrice.toString()) + compareBigNumbers( + await getBalance(lock.address, tokenAddress), + keyPrice + ) }) }) describe('purchase with tip', () => { beforeEach(async () => { await lock.purchase( - [tip.toString()], - [accounts[2]], + [keyPrice.add(tip)], + [spender.address], [ADDRESS_ZERO], [ADDRESS_ZERO], [[]], { - from: accounts[2], - value: isErc20 ? 0 : tip.toString(), + value: isErc20 ? 0 : keyPrice.add(tip), } ) }) it('user sent the tip to the contract', async () => { - const balance = await getBalance(lock.address, tokenAddress) - assert.notEqual(balance.toString(), keyPrice.toString()) - assert.equal(balance.toString(), tip.toString()) + compareBigNumbers( + await getBalance(lock.address, tokenAddress), + isErc20 ? keyPrice : keyPrice.add(tip) + ) }) }) describe('purchase with ETH tip > value specified', () => { beforeEach(async () => { await lock.purchase( - [keyPrice.toString()], - [accounts[2]], + [keyPrice], + [spender.address], [ADDRESS_ZERO], [ADDRESS_ZERO], [[]], { - from: accounts[2], - value: isErc20 ? 0 : tip.toString(), + value: isErc20 ? 0 : keyPrice.add(tip), } ) }) @@ -101,9 +100,9 @@ contract('Lock / purchaseTip', (accounts) => { it('user sent tip to the contract if ETH (else send keyPrice)', async () => { const balance = await getBalance(lock.address, tokenAddress) if (!isErc20) { - assert.equal(balance.toString(), tip.toString()) + compareBigNumbers(balance, keyPrice.add(tip)) } else { - assert.equal(balance.toString(), keyPrice.toString()) + compareBigNumbers(balance, keyPrice) } }) }) @@ -113,24 +112,19 @@ contract('Lock / purchaseTip', (accounts) => { beforeEach(async () => { await lock.purchase( [], - [accounts[2]], + [spender.address], [ADDRESS_ZERO], [ADDRESS_ZERO], [[]], { - from: accounts[2], - value: isErc20 ? 0 : tip.toString(), + value: keyPrice.add(tip), } ) }) it('user sent tip to the contract if ETH (else send keyPrice)', async () => { const balance = await getBalance(lock.address, tokenAddress) - if (!isErc20) { - assert.equal(balance.toString(), tip.toString()) - } else { - assert.equal(balance.toString(), keyPrice.toString()) - } + compareBigNumbers(balance, keyPrice.add(tip)) }) }) } @@ -139,17 +133,16 @@ contract('Lock / purchaseTip', (accounts) => { it('should fail if value is less than keyPrice', async () => { await reverts( lock.purchase( - [1], - [accounts[2]], + [ethers.utils.parseUnits('0.001', 'ether')], + [spender.address], [ADDRESS_ZERO], [ADDRESS_ZERO], [[]], { - from: accounts[2], - value: isErc20 ? 0 : keyPrice.toString(), + value: 0, } ), - 'INSUFFICIENT_VALUE' + 'INSUFFICIENT_ERC20_VALUE' ) }) } diff --git a/smart-contracts/test/Lock/purchaseWithoutUnlock.js b/smart-contracts/test/Lock/purchaseWithoutUnlock.js index cb5a19733d1..1383bf45c81 100644 --- a/smart-contracts/test/Lock/purchaseWithoutUnlock.js +++ b/smart-contracts/test/Lock/purchaseWithoutUnlock.js @@ -1,3 +1,4 @@ +const { assert } = require('chai') const { ethers } = require('hardhat') const ProxyAdmin = require('@openzeppelin/upgrades-core/artifacts/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.json') @@ -23,13 +24,13 @@ const fixUnlock = async (unlockAddress) => { await upgradeTx.wait() } -contract('Lock / purchaseWithoutUnlock', () => { +describe('Lock / purchaseWithoutUnlock', () => { let unlock let lock // setup proxy admin etc before(async () => { - ;({ unlockEthers: unlock } = await deployContracts()) + ;({ unlock } = await deployContracts()) // deploy a random contract to break Unlock implementation const BrokenUnlock = await ethers.getContractFactory('LockSerializer') diff --git a/smart-contracts/test/Lock/renewMembershipFor.js b/smart-contracts/test/Lock/renewMembershipFor.js index cd2683ba512..5d0a62a011d 100644 --- a/smart-contracts/test/Lock/renewMembershipFor.js +++ b/smart-contracts/test/Lock/renewMembershipFor.js @@ -1,4 +1,3 @@ -const { time } = require('@openzeppelin/test-helpers') const { assert } = require('chai') const { deployERC20, @@ -6,6 +5,7 @@ const { purchaseKey, ADDRESS_ZERO, deployLock, + increaseTimeTo, } = require('../helpers') const { ethers } = require('hardhat') @@ -16,7 +16,7 @@ const keyPrice = ethers.utils.parseUnits('0.01', 'ether') const totalPrice = keyPrice.mul(10) const someDai = ethers.utils.parseUnits('10', 'ether') -contract('Lock / Recurring memberships', () => { +describe('Lock / Recurring memberships', () => { let lockOwner let keyOwner let randomSigner @@ -114,7 +114,7 @@ contract('Lock / Recurring memberships', () => { beforeEach(async () => { ;({ tokenId } = await purchaseKey(lock, keyOwner.address, true)) const expirationTs = await lock.keyExpirationTimestampFor(tokenId) - await time.increaseTo(expirationTs.toNumber()) + await increaseTimeTo(expirationTs) }) describe('fails when lock settings have changed', () => { @@ -200,7 +200,7 @@ contract('Lock / Recurring memberships', () => { '0' ) const expirationTs = await lock.keyExpirationTimestampFor(tokenId) - await time.increaseTo(expirationTs.toNumber()) + await increaseTimeTo(expirationTs) // now reverts await reverts( lock.renewMembershipFor(tokenId, ADDRESS_ZERO), @@ -222,7 +222,7 @@ contract('Lock / Recurring memberships', () => { // const expirationTs = await lock.keyExpirationTimestampFor(tokenId) - await time.increaseTo(expirationTs.toNumber()) + await increaseTimeTo(expirationTs) // now funds are not enough await reverts( diff --git a/smart-contracts/test/Lock/setKeyExpiration.js b/smart-contracts/test/Lock/setKeyExpiration.js index 2dc1b18c3f3..d4685df6b43 100644 --- a/smart-contracts/test/Lock/setKeyExpiration.js +++ b/smart-contracts/test/Lock/setKeyExpiration.js @@ -5,7 +5,7 @@ const { reverts, deployLock, purchaseKey } = require('../helpers') const ONE_DAY = ethers.BigNumber.from(60 * 60 * 24) -contract('Lock / setKeyExpiration', () => { +describe('Lock / setKeyExpiration', () => { let lock let keyOwner diff --git a/smart-contracts/test/Lock/setLockMetadata.js b/smart-contracts/test/Lock/setLockMetadata.js index 17d5a90cccf..d18d1cb20c8 100644 --- a/smart-contracts/test/Lock/setLockMetadata.js +++ b/smart-contracts/test/Lock/setLockMetadata.js @@ -1,23 +1,22 @@ +const { assert } = require('chai') +const { ethers } = require('hardhat') const metadata = require('../fixtures/metadata') const { deployLock, reverts } = require('../helpers') -contract('Lock / setLockMetadata', (accounts) => { +describe('Lock / setLockMetadata', () => { let lock let tx before(async () => { lock = await deployLock({ name: 'NO_MAX_KEYS' }) - tx = await lock.setLockMetadata(...Object.values(metadata), { - from: accounts[0], - }) + tx = await lock.setLockMetadata(...Object.values(metadata)) }) it('can only be invoked by lock manager', async () => { + const [, , rando] = await ethers.getSigners() await reverts( - lock.setLockMetadata(...Object.values(metadata), { - from: accounts[5], - }), + lock.connect(rando).setLockMetadata(...Object.values(metadata)), 'ONLY_LOCK_MANAGER' ) }) @@ -29,7 +28,8 @@ contract('Lock / setLockMetadata', (accounts) => { }) it('emit an event correctly', async () => { - const { args } = tx.logs.find(({ event }) => event === 'LockMetadata') + const { events } = await tx.wait() + const { args } = events.find(({ event }) => event === 'LockMetadata') assert.equal(args.name, metadata.name) assert.equal(args.symbol, metadata.symbol) assert.equal(args.baseTokenURI, metadata.baseTokenURI) diff --git a/smart-contracts/test/Lock/setReferrerFee.js b/smart-contracts/test/Lock/setReferrerFee.js index cb0951ee733..e681a6fb19d 100644 --- a/smart-contracts/test/Lock/setReferrerFee.js +++ b/smart-contracts/test/Lock/setReferrerFee.js @@ -1,248 +1,286 @@ -const BigNumber = require('bignumber.js') -const { time } = require('@openzeppelin/test-helpers') - -const { deployLock, ADDRESS_ZERO, reverts, deployERC20 } = require('../helpers') - -const { - ZERO_ADDRESS, - MAX_UINT256, -} = require('@openzeppelin/test-helpers/src/constants') +const { assert } = require('chai') const { ethers } = require('hardhat') +const { + deployLock, + reverts, + deployERC20, + compareBigNumbers, + increaseTimeTo, +} = require('../helpers') + +const { ADDRESS_ZERO, getBalance } = require('@unlock-protocol/hardhat-helpers') const BASIS_POINT_DENOMINATOR = 10000 const someDai = ethers.utils.parseUnits('10', 'ether') const scenarios = [false, true] -contract('Lock / setReferrerFee', (accounts) => { +describe('Lock / setReferrerFee', () => { let lock + let deployer, keyOwner, referrer, renewer let dai - let referrer - let lockOwner - let keyOwner let tokenAddress let keyPrice - let getBalance + + const setReferrerFeeAndPurchase = async ({ + isErc20, + lock, + referrerAddress, + referrerFee, + keyOwner, + }) => { + const tx = await lock.setReferrerFee(referrerAddress, referrerFee) + const { events } = await tx.wait() + const { args: eventArgs } = events.find( + ({ event }) => event === 'ReferrerFee' + ) + + const balanceBefore = await getBalance(referrerAddress, tokenAddress) + + await lock + .connect(keyOwner) + .purchase( + isErc20 ? [keyPrice] : [], + [keyOwner.address], + [referrerAddress], + [ADDRESS_ZERO], + [[]], + { + value: isErc20 ? 0 : keyPrice, + } + ) + return { + balanceBefore, + eventArgs, + } + } + + const storeFeeCorrectly = async (lock, referrerAddress, referrerFee) => { + const fee = await lock.referrerFees(referrerAddress) + compareBigNumbers(fee, referrerFee) + } + + const emitsCorrectEvent = async (eventArgs, referrerAddress, referrerFee) => { + assert.equal(eventArgs.fee, referrerFee) + assert.equal(eventArgs.referrer, referrerAddress) + } + + const transferCorrectly = async ( + balanceBefore, + referrerFee, + referrerAddress, + tokenAddress + ) => { + const balanceAfter = await getBalance(referrerAddress, tokenAddress) + compareBigNumbers( + balanceAfter, + balanceBefore.add(keyPrice.mul(referrerFee).div(BASIS_POINT_DENOMINATOR)) + ) + } scenarios.forEach((isErc20) => { describe(`Test ${isErc20 ? 'ERC20' : 'ETH'}`, () => { before(async () => { - lockOwner = accounts[0] - keyOwner = accounts[1] - referrer = accounts[5] + ;[deployer, keyOwner, referrer, renewer] = await ethers.getSigners() - dai = await deployERC20(lockOwner) + // ERC20 for testing + dai = await deployERC20(deployer) tokenAddress = isErc20 ? dai.address : ADDRESS_ZERO - - // Mint some dais for testing - await dai.mint(keyOwner, someDai, { - from: lockOwner, - }) + await dai.mint(keyOwner.address, someDai) // deploy a lock lock = await deployLock({ tokenAddress }) keyPrice = await lock.keyPrice() // Approve the lock to make transfers - await dai.approve(lock.address, MAX_UINT256, { from: keyOwner }) - - getBalance = async (account) => - isErc20 - ? new BigNumber(await dai.balanceOf(account)) - : new BigNumber(await ethers.provider.getBalance(account)) + await dai.connect(keyOwner).approve(lock.address, someDai) }) it('has a default fee of 0%', async () => { - const fee = new BigNumber(await lock.referrerFees(referrer)) - assert.equal(fee.div(BASIS_POINT_DENOMINATOR).toNumber(), 0) + const fee = await lock.referrerFees(referrer.address) + compareBigNumbers(fee.div(BASIS_POINT_DENOMINATOR), 0) }) it('reverts if a non-manager attempts to change the fee', async () => { await reverts( - lock.updateTransferFee(0, { from: accounts[1] }), + lock.connect(renewer).updateTransferFee(0), 'ONLY_LOCK_MANAGER' ) }) describe('setting 5% fee for a specific address', () => { + const referrerFee = 500 let balanceBefore - let tx - beforeEach(async () => { - tx = await lock.setReferrerFee(referrer, 500) - balanceBefore = await getBalance(referrer) - await lock.purchase( - isErc20 ? [keyPrice] : [], - [accounts[8]], - [referrer], - [ADDRESS_ZERO], - [[]], - { - value: isErc20 ? 0 : keyPrice, - from: keyOwner, - } - ) + let eventArgs + + before(async () => { + ;({ balanceBefore, eventArgs } = await setReferrerFeeAndPurchase({ + isErc20, + lock, + referrerAddress: referrer.address, + referrerFee, + keyOwner, + })) }) it('store fee correctly', async () => { - const fee = new BigNumber(await lock.referrerFees(referrer)) - assert.equal(fee.div(BASIS_POINT_DENOMINATOR).toFixed(), 0.05) + await storeFeeCorrectly(lock, referrer.address, referrerFee) }) it('emits an event', async () => { - const { args } = tx.logs.find((v) => v.event === 'ReferrerFee') - assert.equal(args.fee, 500) - assert.equal(args.referrer, referrer) + await emitsCorrectEvent(eventArgs, referrer.address, referrerFee) }) it('transfer correctly 5% of the price', async () => { - const balanceAfter = await getBalance(referrer) - assert.equal( - balanceAfter.toFixed(), - balanceBefore - .plus((keyPrice * 500) / BASIS_POINT_DENOMINATOR) - .toFixed() + await transferCorrectly( + balanceBefore, + referrerFee, + referrer.address, + tokenAddress ) }) }) describe('setting 20% fee for a specific address', () => { - let balanceBefore, tx + const referrerFee = 2000 + let balanceBefore + let eventArgs before(async () => { - // setting 20% fee - tx = await lock.setReferrerFee(referrer, 2000) - - balanceBefore = await getBalance(referrer) - await lock.purchase( - isErc20 ? [keyPrice] : [], - [keyOwner], - [referrer], - [ADDRESS_ZERO], - [[]], - { - from: keyOwner, - value: isErc20 ? 0 : keyPrice, - } - ) + ;({ balanceBefore, eventArgs } = await setReferrerFeeAndPurchase({ + isErc20, + lock, + referrerAddress: referrer.address, + referrerFee, + keyOwner, + })) }) it('store fee correctly', async () => { - const fee = new BigNumber(await lock.referrerFees(referrer)) - assert.equal(fee.div(BASIS_POINT_DENOMINATOR).toFixed(), 0.2) + await storeFeeCorrectly(lock, referrer.address, referrerFee) }) it('emits an event', async () => { - const { args } = tx.logs.find((v) => v.event === 'ReferrerFee') - assert.equal(args.fee, 2000) - assert.equal(args.referrer, referrer) + await emitsCorrectEvent(eventArgs, referrer.address, referrerFee) }) - it('transfer correctly 20% of the tokens', async () => { - const balanceAfter = await getBalance(referrer) - assert.equal( - balanceAfter.toFixed(), - balanceBefore - .plus((keyPrice * 2000) / BASIS_POINT_DENOMINATOR) - .toFixed() + it('transfer correctly 5% of the price', async () => { + await transferCorrectly( + balanceBefore, + referrerFee, + referrer.address, + tokenAddress ) }) }) describe('setting 20% general fee for all addresses', () => { - let balanceBefore, tx + let balanceBefore, eventArgs + const generalFee = 1000 + before(async () => { - tx = await lock.setReferrerFee(ZERO_ADDRESS, 2000) - balanceBefore = await getBalance(referrer) - await lock.purchase( - isErc20 ? [keyPrice] : [], - [accounts[8]], - [referrer], - [ADDRESS_ZERO], - [[]], - { - value: isErc20 ? 0 : keyPrice, - from: keyOwner, - } - ) + // reset fee for referrer + await lock.setReferrerFee(referrer.address, 0) + const tx = await lock.setReferrerFee(ADDRESS_ZERO, generalFee) + const { events } = await tx.wait() + ;({ args: eventArgs } = events.find( + ({ event }) => event === 'ReferrerFee' + )) }) + it('store fee correctly', async () => { - const fee = new BigNumber(await lock.referrerFees(ZERO_ADDRESS)) - assert.equal(fee.div(BASIS_POINT_DENOMINATOR).toFixed(), 0.2) + await storeFeeCorrectly(lock, ADDRESS_ZERO, generalFee) }) it('emits an event', async () => { - const { args } = tx.logs.find((v) => v.event === 'ReferrerFee') - assert.equal(args.fee.toNumber(), 2000) - assert.equal(args.referrer, ZERO_ADDRESS) + await emitsCorrectEvent(eventArgs, ADDRESS_ZERO, generalFee) }) - it('transfer correctly 5% of the price', async () => { - const balanceAfter = await getBalance(referrer) - assert.equal( - balanceAfter.toFixed(), - balanceBefore - .plus((keyPrice * 2000) / BASIS_POINT_DENOMINATOR) - .toFixed() + it('transfer correctly 20% of the price', async () => { + balanceBefore = await getBalance(referrer.address, tokenAddress) + + await lock + .connect(keyOwner) + .purchase( + isErc20 ? [keyPrice] : [], + [keyOwner.address], + [referrer.address], + [ADDRESS_ZERO], + [[]], + { + value: isErc20 ? 0 : keyPrice, + } + ) + + compareBigNumbers( + await getBalance(referrer.address, tokenAddress), + balanceBefore.add( + keyPrice.mul(generalFee).div(BASIS_POINT_DENOMINATOR) + ) ) }) }) describe('updating/cancelling a 5% fee', () => { before(async () => { - await lock.setReferrerFee(referrer, 500) + await lock.setReferrerFee(referrer.address, 500) }) it('fee can cancelled', async () => { - const tx = await lock.setReferrerFee(referrer, 0) - const fee = new BigNumber(await lock.referrerFees(referrer)) - assert.equal(fee.div(BASIS_POINT_DENOMINATOR).toNumber(), 0) - const { args } = tx.logs.find((v) => v.event === 'ReferrerFee') + compareBigNumbers(await lock.referrerFees(referrer.address), 500) + const tx = await lock.setReferrerFee(referrer.address, 0) + compareBigNumbers(await lock.referrerFees(referrer.address), 0) + const { events } = await tx.wait() + const { args } = events.find(({ event }) => event === 'ReferrerFee') assert.equal(args.fee, 0) - assert.equal(args.referrer, referrer) + assert.equal(args.referrer, referrer.address) }) it('fee can updated correctly', async () => { - const tx = await lock.setReferrerFee(referrer, 7000) - const fee = new BigNumber(await lock.referrerFees(referrer)) - assert.equal(fee.div(BASIS_POINT_DENOMINATOR).toFixed(), 0.7) - const { args } = tx.logs.find((v) => v.event === 'ReferrerFee') - assert.equal(args.fee.toNumber(), 7000) - assert.equal(args.referrer, referrer) + const tx = await lock.setReferrerFee(referrer.address, 7000) + // event fired ok + const { events } = await tx.wait() + const { args } = events.find(({ event }) => event === 'ReferrerFee') + assert.equal(args.fee, 7000) + assert.equal(args.referrer, referrer.address) + // prived updated ok + const fee = await lock.referrerFees(referrer.address) + assert.equal(fee, 7000) }) }) describe('extend() also pays the referrer', () => { let balanceBefore before(async () => { - await lock.setReferrerFee(referrer, 2000) - const tx = await lock.purchase( - isErc20 ? [keyPrice] : [], - [keyOwner], - [referrer], - [ADDRESS_ZERO], - [[]], - { - value: isErc20 ? 0 : keyPrice, - from: keyOwner, - } - ) - - const { args } = tx.logs.find((v) => v.event === 'Transfer') + await lock.setReferrerFee(referrer.address, 2000) + const tx = await lock + .connect(keyOwner) + .purchase( + isErc20 ? [keyPrice] : [], + [keyOwner.address], + [referrer.address], + [ADDRESS_ZERO], + [[]], + { + value: isErc20 ? 0 : keyPrice, + } + ) + const { events } = await tx.wait() + const { args } = events.find(({ event }) => event === 'Transfer') const { tokenId } = args - balanceBefore = await getBalance(referrer) + balanceBefore = await getBalance(referrer.address, tokenAddress) - await lock.extend(isErc20 ? keyPrice : 0, tokenId, referrer, [], { - value: isErc20 ? 0 : keyPrice, - from: keyOwner, - }) + await lock + .connect(keyOwner) + .extend(isErc20 ? keyPrice : 0, tokenId, referrer.address, [], { + value: isErc20 ? 0 : keyPrice, + }) }) it('transfer 5% of the key price on extend', async () => { - const balanceAfter = await getBalance(referrer) - assert.equal( - balanceAfter.toFixed(), - balanceBefore - .plus((keyPrice * 2000) / BASIS_POINT_DENOMINATOR) - .toFixed() + const balanceAfter = await getBalance(referrer.address, tokenAddress) + compareBigNumbers( + balanceAfter, + balanceBefore.add(keyPrice.mul(2000).div(BASIS_POINT_DENOMINATOR)) ) }) }) @@ -250,28 +288,28 @@ contract('Lock / setReferrerFee', (accounts) => { describe('doesnt revert if no referrer is specified', async () => { let balanceBefore before(async () => { - await lock.setReferrerFee(ZERO_ADDRESS, 2000) - balanceBefore = await getBalance(referrer) - await lock.purchase( - isErc20 ? [keyPrice] : [], - [keyOwner], - [ADDRESS_ZERO], - [ADDRESS_ZERO], - [[]], - { - value: isErc20 ? 0 : keyPrice, - from: keyOwner, - } - ) + await lock.setReferrerFee(ADDRESS_ZERO, 2000) + balanceBefore = await getBalance(referrer.address, tokenAddress) + await lock + .connect(keyOwner) + .purchase( + isErc20 ? [keyPrice] : [], + [keyOwner.address], + [ADDRESS_ZERO], + [ADDRESS_ZERO], + [[]], + { + value: isErc20 ? 0 : keyPrice, + } + ) }) it('store fee correctly', async () => { - const fee = new BigNumber(await lock.referrerFees(ZERO_ADDRESS)) - assert.equal(fee.div(BASIS_POINT_DENOMINATOR).toFixed(), 0.2) + compareBigNumbers(await lock.referrerFees(ADDRESS_ZERO), 2000) }) it('referrer balance didnt change', async () => { - assert.equal( - balanceBefore.toString(), - (await getBalance(referrer)).toString() + compareBigNumbers( + balanceBefore, + await getBalance(referrer.address, tokenAddress) ) }) }) @@ -280,46 +318,46 @@ contract('Lock / setReferrerFee', (accounts) => { describe('renewMembershipFor() also pays the referrer', () => { let balanceBefore before(async () => { - await lock.setReferrerFee(referrer, 2000) - - const tx = await lock.purchase( - isErc20 ? [keyPrice] : [], - [accounts[8]], - [referrer], - [ADDRESS_ZERO], - [[]], - { - value: isErc20 ? 0 : keyPrice, - from: keyOwner, - } - ) - - const { args } = tx.logs.find((v) => v.event === 'Transfer') + await lock.setReferrerFee(referrer.address, 2000) + + const tx = await lock + .connect(keyOwner) + .purchase( + isErc20 ? [keyPrice] : [], + [keyOwner.address], + [referrer.address], + [ADDRESS_ZERO], + [[]], + { + value: isErc20 ? 0 : keyPrice, + } + ) + + const { events } = await tx.wait() + const { args } = events.find(({ event }) => event === 'Transfer') const { tokenId } = args const expirationTs = await lock.keyExpirationTimestampFor(tokenId) - await time.increaseTo(expirationTs.toNumber()) + await increaseTimeTo(expirationTs) // Mint some dais for testing - const renewer = accounts[8] - await dai.mint(renewer, someDai, { - from: lockOwner, - }) - await dai.approve(lock.address, MAX_UINT256, { from: renewer }) + await dai.mint(renewer.address, someDai) + await dai.connect(renewer).approve(lock.address, someDai) - balanceBefore = await getBalance(referrer) - await lock.renewMembershipFor(tokenId, referrer, { - from: renewer, - }) + balanceBefore = await getBalance(referrer.address, tokenAddress) + await lock + .connect(renewer) + .renewMembershipFor(tokenId, referrer.address) }) it('transfer 5% of the key price on extend', async () => { - const balanceAfter = await getBalance(referrer) - assert.equal( - balanceAfter.toFixed(), - balanceBefore - .plus((keyPrice * 2000) / BASIS_POINT_DENOMINATOR) - .toFixed() + const balanceAfter = await getBalance( + referrer.address, + tokenAddress + ) + compareBigNumbers( + balanceAfter, + balanceBefore.add(keyPrice.mul(2000).div(BASIS_POINT_DENOMINATOR)) ) }) }) diff --git a/smart-contracts/test/Lock/shareKey.js b/smart-contracts/test/Lock/shareKey.js index bf0d65a5f18..f46137d7092 100644 --- a/smart-contracts/test/Lock/shareKey.js +++ b/smart-contracts/test/Lock/shareKey.js @@ -11,7 +11,7 @@ const { const ONE_DAY = ethers.BigNumber.from(60 * 60 * 24) const TOO_MUCH_TIME = 60 * 60 * 24 * 30 * 2 // 60 days -contract('Lock / shareKey', () => { +describe('Lock / shareKey', () => { let lock let tokenIds diff --git a/smart-contracts/test/Lock/soldOut.js b/smart-contracts/test/Lock/soldOut.js index 5a49d57f3a9..459b57c250b 100644 --- a/smart-contracts/test/Lock/soldOut.js +++ b/smart-contracts/test/Lock/soldOut.js @@ -2,7 +2,7 @@ const { deployLock, reverts, purchaseKeys } = require('../helpers') let lock -contract('Lock / soldOut', () => { +describe('Lock / soldOut', () => { beforeEach(async () => { lock = await deployLock() }) diff --git a/smart-contracts/test/Lock/timeMachine.js b/smart-contracts/test/Lock/timeMachine.js index f2ce44e565e..d6fa29cc0ee 100644 --- a/smart-contracts/test/Lock/timeMachine.js +++ b/smart-contracts/test/Lock/timeMachine.js @@ -1,3 +1,4 @@ +const { assert } = require('chai') const { ethers } = require('hardhat') const { ADDRESS_ZERO, reverts, MAX_UINT } = require('../helpers') @@ -5,7 +6,7 @@ const ONE_DAY = 60 * 60 * 24 const expirationDuration = ethers.BigNumber.from(`${ONE_DAY * 30}`) const tooMuchTime = ethers.BigNumber.from(`${ONE_DAY * 42}`) // 42 days -contract('Lock / timeMachine', () => { +describe('Lock / timeMachine', () => { let timeMachine let keyOwner let timestampBefore diff --git a/smart-contracts/test/Lock/totalKeys.js b/smart-contracts/test/Lock/totalKeys.js index d60ae89b69f..d32ddc1c270 100644 --- a/smart-contracts/test/Lock/totalKeys.js +++ b/smart-contracts/test/Lock/totalKeys.js @@ -1,65 +1,69 @@ const { ethers } = require('hardhat') -const { time } = require('@openzeppelin/test-helpers') -const { ADDRESS_ZERO, deployLock } = require('../helpers') +const { + ADDRESS_ZERO, + increaseTimeTo, + deployLock, + compareBigNumbers, +} = require('../helpers') let lock let tokenIds +let keyOwner -contract('Lock / totalKeys', (accounts) => { +describe('Lock / totalKeys', () => { before(async () => { lock = await deployLock() + ;[keyOwner] = await ethers.getSigners() const tx = await lock.purchase( [], - [accounts[1], accounts[1], accounts[1]], + [keyOwner.address, keyOwner.address, keyOwner.address], [ADDRESS_ZERO, ADDRESS_ZERO, ADDRESS_ZERO], [ADDRESS_ZERO, ADDRESS_ZERO, ADDRESS_ZERO], [[], [], []], { value: ethers.utils.parseUnits('0.03', 'ether'), - from: accounts[1], } ) - - tokenIds = tx.logs + const { events } = await tx.wait() + tokenIds = events .filter((v) => v.event === 'Transfer') .map(({ args }) => args.tokenId) }) it('should count all valid keys', async () => { - assert.equal((await lock.totalKeys(accounts[1])).toNumber(), 3) + compareBigNumbers(await lock.totalKeys(keyOwner.address), 3) }) it('should count expired keys', async () => { // expire all keys const expirationTs = await lock.keyExpirationTimestampFor(tokenIds[0]) - await time.increaseTo(expirationTs.toNumber() + 10) + await increaseTimeTo(expirationTs.add(10)) - assert.equal((await lock.balanceOf(accounts[1])).toNumber(), 0) - assert.equal((await lock.totalKeys(accounts[1])).toNumber(), 3) + compareBigNumbers(await lock.balanceOf(keyOwner.address), 0) + compareBigNumbers(await lock.totalKeys(keyOwner.address), 3) }) it('should count both expired and renewed keys', async () => { // extend once to fix block time in the past in test await lock.extend(0, tokenIds[0], ADDRESS_ZERO, [], { value: ethers.utils.parseUnits('0.03', 'ether'), - from: accounts[1], + from: keyOwner.address, }) // expire all keys const expirationTs = await lock.keyExpirationTimestampFor(tokenIds[0]) - await time.increaseTo(expirationTs.toNumber() + 10) + await increaseTimeTo(expirationTs.add(10)) - assert.equal((await lock.totalKeys(accounts[1])).toNumber(), 3) - assert.equal((await lock.balanceOf(accounts[1])).toNumber(), 0) + compareBigNumbers(await lock.totalKeys(keyOwner.address), 3) + compareBigNumbers(await lock.balanceOf(keyOwner.address), 0) // renew one - await lock.extend(0, tokenIds[0], ADDRESS_ZERO, [], { + await lock.connect(keyOwner).extend(0, tokenIds[0], ADDRESS_ZERO, [], { value: ethers.utils.parseUnits('0.03', 'ether'), - from: accounts[1], }) - assert.equal((await lock.balanceOf(accounts[1])).toNumber(), 1) - assert.equal((await lock.totalKeys(accounts[1])).toNumber(), 3) + compareBigNumbers(await lock.balanceOf(keyOwner.address), 1) + compareBigNumbers(await lock.totalKeys(keyOwner.address), 3) }) }) diff --git a/smart-contracts/test/Lock/transferFee.js b/smart-contracts/test/Lock/transferFee.js index 4f90a30c8db..7e0529b7642 100644 --- a/smart-contracts/test/Lock/transferFee.js +++ b/smart-contracts/test/Lock/transferFee.js @@ -1,13 +1,14 @@ +const { assert } = require('chai') const { ethers } = require('hardhat') -const { time } = require('@openzeppelin/test-helpers') const { deployLock, reverts, purchaseKey, compareBigNumbers, + increaseTimeTo, } = require('../helpers') -contract('Lock / transferFee', (accounts) => { +describe('Lock / transferFee', () => { let lock let keyOwner, newOwner, randomSigner, lockManager const denominator = 10000 @@ -48,7 +49,7 @@ contract('Lock / transferFee', (accounts) => { const { timestamp: nowBefore } = await ethers.provider.getBlock('latest') fee = await lock.getTransferFee(tokenId, 0) // Mine a transaction in order to ensure the block.timestamp has updated - await purchaseKey(lock, accounts[8]) + await purchaseKey(lock, randomSigner.address) const { timestamp: nowAfter } = await ethers.provider.getBlock('latest') let expiration = await lock.keyExpirationTimestampFor(tokenId) @@ -108,7 +109,7 @@ contract('Lock / transferFee', (accounts) => { let fee before(async () => { const expirationBefore = await lock.keyExpirationTimestampFor(tokenId) - await time.increaseTo(expirationBefore.toNumber()) + await increaseTimeTo(expirationBefore) fee = await lock.getTransferFee(tokenId, 0) }) diff --git a/smart-contracts/test/Lock/unlendKey.js b/smart-contracts/test/Lock/unlendKey.js index 3ebebde8d66..e9f648d9ae6 100644 --- a/smart-contracts/test/Lock/unlendKey.js +++ b/smart-contracts/test/Lock/unlendKey.js @@ -1,18 +1,18 @@ +const { assert } = require('chai') +const { ethers } = require('hardhat') const { ADDRESS_ZERO, deployLock, reverts } = require('../helpers') let lock let lockSingleKey let tokenId -let keyOwner -let receiver -let someone - -contract('Lock / unlendKey', (accounts) => { - keyOwner = accounts[1] - someone = accounts[2] // the person who key is lended to - receiver = accounts[3] +let keyOwner, + receiver, + someone, // the person who key is lended to + random +describe('Lock / unlendKey', () => { beforeEach(async () => { + ;[keyOwner, receiver, someone, random] = await ethers.getSigners() lock = await deployLock() lockSingleKey = await deployLock({ name: 'SINGLE KEY' }) await lock.updateTransferFee(0) // disable the lend fee for this test @@ -20,42 +20,41 @@ contract('Lock / unlendKey', (accounts) => { const tx = await lock.purchase( [], - [keyOwner], + [keyOwner.address], [ADDRESS_ZERO], [ADDRESS_ZERO], [[]], { value: await lock.keyPrice(), - from: keyOwner, } ) - const tokenIds = tx.logs + const { events } = await tx.wait() + ;[tokenId] = events .filter((v) => v.event === 'Transfer') .map(({ args }) => args.tokenId) - tokenId = tokenIds[0] // lend a key to someone - await lock.lendKey(keyOwner, someone, tokenId, { - from: keyOwner, - }) + await lock + .connect(keyOwner) + .lendKey(keyOwner.address, someone.address, tokenId) }) describe('failures', () => { it('should abort when there is no key to lend', async () => { - await reverts(lock.unlendKey(receiver, 999), 'UNAUTHORIZED') + await reverts(lock.unlendKey(receiver.address, 999), 'UNAUTHORIZED') }) it('should abort when caller is not a key manager', async () => { await reverts( - lock.unlendKey(receiver, tokenId, { from: accounts[9] }), + lock.connect(random).unlendKey(receiver.address, tokenId), 'UNAUTHORIZED' ) }) it('should abort when caller is the account that currently owns the key', async () => { await reverts( - lock.unlendKey(receiver, tokenId, { from: receiver }), + lock.connect(receiver).unlendKey(receiver.address, tokenId), 'UNAUTHORIZED' ) }) @@ -63,20 +62,20 @@ contract('Lock / unlendKey', (accounts) => { describe('when caller is the key manager', () => { beforeEach(async () => { - await lock.unlendKey(receiver, tokenId, { from: keyOwner }) + await lock.connect(keyOwner).unlendKey(receiver.address, tokenId) }) it('transfer ownership back to the specified recipient', async () => { - assert.equal(await lock.ownerOf(tokenId), receiver) + assert.equal(await lock.ownerOf(tokenId), receiver.address) }) it('update key validity properly', async () => { - assert.equal(await lock.getHasValidKey(someone), false) - assert.equal(await lock.getHasValidKey(receiver), true) + assert.equal(await lock.getHasValidKey(someone.address), false) + assert.equal(await lock.getHasValidKey(receiver.address), true) }) it('retains the correct key manager', async () => { - assert.equal(await lock.keyManagerOf(tokenId), keyOwner) + assert.equal(await lock.keyManagerOf(tokenId), keyOwner.address) }) }) }) diff --git a/smart-contracts/test/Lock/updateKeyPricing.js b/smart-contracts/test/Lock/updateKeyPricing.js index a077e66371c..16c55451942 100644 --- a/smart-contracts/test/Lock/updateKeyPricing.js +++ b/smart-contracts/test/Lock/updateKeyPricing.js @@ -1,139 +1,128 @@ +const { assert } = require('chai') const { ethers } = require('hardhat') -const BigNumber = require('bignumber.js') -const { reverts, deployLock, deployERC20, ADDRESS_ZERO } = require('../helpers') +const { + reverts, + deployLock, + deployERC20, + ADDRESS_ZERO, + compareBigNumbers, +} = require('../helpers') let lock let keyPriceBefore -let tokenAddressBefore -let transaction +let args let token -let lockCreator -let invalidTokenAddress +let tokenAddressBefore +let deployer, lockCreator, lockManager, random, invalidTokenAddress -contract('Lock / updateKeyPricing', (accounts) => { - invalidTokenAddress = accounts[9] - lockCreator = accounts[0] +const newPrice = ethers.utils.parseUnits('0.3', 'ether') +describe('Lock / updateKeyPricing', () => { before(async () => { - token = await deployERC20(accounts[0]) + ;[ + , + deployer, + lockCreator, + lockManager, + random, + { address: invalidTokenAddress }, + ] = await ethers.getSigners() + token = await deployERC20(deployer.address) + // Mint some tokens so that the totalSupply is greater than 0 - await token.mint(accounts[0], 1, { - from: accounts[0], - }) - lock = await deployLock() - keyPriceBefore = new BigNumber(await lock.keyPrice()) + await token.connect(deployer).mint(deployer.address, 1) + + lock = await deployLock({ from: lockCreator.address }) + + keyPriceBefore = await lock.keyPrice() tokenAddressBefore = await lock.tokenAddress() - assert.equal(keyPriceBefore.toFixed(), 10000000000000000) - transaction = await lock.updateKeyPricing( - ethers.utils.parseUnits('0.3', 'ether'), - token.address, - { from: lockCreator } - ) + + compareBigNumbers(keyPriceBefore, ethers.utils.parseUnits('0.01', 'ether')) + compareBigNumbers(tokenAddressBefore, ADDRESS_ZERO) + + const tx = await lock + .connect(lockCreator) + .updateKeyPricing(newPrice, token.address) + + const { events } = await tx.wait() + ;({ args } = events.find(({ event }) => event === 'PricingChanged')) }) it('should assign the owner to the LockManagerRole by default', async () => { - assert.equal(await lock.isLockManager(lockCreator), true) + assert.equal(await lock.isLockManager(lockCreator.address), true) }) it('should change the actual keyPrice', async () => { - const keyPriceAfter = new BigNumber(await lock.keyPrice()) - assert.equal(keyPriceAfter.toFixed(), 300000000000000000) + compareBigNumbers(await lock.keyPrice(), newPrice) }) it('should trigger an event', () => { - const event = transaction.logs.find((log) => { - return log.event === 'PricingChanged' - }) - assert(event) - assert.equal( - new BigNumber(event.args.keyPrice).toFixed(), - 300000000000000000 - ) + compareBigNumbers(args.keyPrice, newPrice) }) it('should allow changing price to 0', async () => { - await lock.updateKeyPricing(0, await lock.tokenAddress()) - const keyPriceAfter = new BigNumber(await lock.keyPrice()) - assert.equal(keyPriceAfter.toFixed(), 0) + await lock + .connect(lockCreator) + .updateKeyPricing(0, await lock.tokenAddress()) + compareBigNumbers(await lock.keyPrice(), 0) }) - describe('when the sender does not have the LockManager role', () => { - let keyPrice - - before(async () => { - keyPrice = new BigNumber(await lock.keyPrice()) - await reverts( - lock.updateKeyPricing( - ethers.utils.parseUnits('0.3', 'ether'), - await lock.tokenAddress(), - { - from: accounts[3], - } - ), - '' - ) - }) - - it('should leave the price unchanged', async () => { - const keyPriceAfter = new BigNumber(await lock.keyPrice()) - assert.equal(keyPrice.toFixed(), keyPriceAfter.toFixed()) - }) - - it('should fail to let anyone but a lockManager add another lockManager', async () => { - // first we try an account which is not a lockManager - assert.equal(await lock.isLockManager(accounts[8]), false) - await reverts( - lock.addLockManager(accounts[7], { - from: accounts[8], - }), - 'ONLY_LOCK_MANAGER' - ) - }) + it('fails when the sender does not have the LockManager role', async () => { + assert.equal(await lock.isLockManager(random.address), false) + await reverts( + lock + .connect(random) + .updateKeyPricing(newPrice, await lock.tokenAddress()), + '' + ) }) describe('changing the token address', () => { it('should allow a LockManager to switch from eth => erc20', async () => { assert.equal(tokenAddressBefore, 0) - assert.equal(await lock.isLockManager(lockCreator), true) - await lock.updateKeyPricing(await lock.keyPrice(), token.address, { - from: lockCreator, - }) - let tokenAddressAfter = await lock.tokenAddress() - assert.equal(tokenAddressAfter, token.address) + assert.equal(await lock.isLockManager(lockCreator.address), true) + await lock + .connect(lockCreator) + .updateKeyPricing(await lock.keyPrice(), token.address) + assert.equal(await lock.tokenAddress(), token.address) }) it('should allow a LockManager to switch from erc20 => eth', async () => { - await lock.updateKeyPricing(await lock.keyPrice(), ADDRESS_ZERO) + await lock + .connect(lockCreator) + .updateKeyPricing(await lock.keyPrice(), ADDRESS_ZERO) assert.equal(await lock.tokenAddress(), 0) }) it('should allow a lock manager who is not the owner to make changes', async () => { - await lock.addLockManager(accounts[8], { from: lockCreator }) - assert.notEqual(accounts[8], lockCreator) - assert.equal(await lock.isLockManager(accounts[8]), true) - await lock.updateKeyPricing( - ethers.utils.parseUnits('0.42', 'ether'), - token.address, - { from: accounts[8] } - ) + await lock.connect(lockCreator).addLockManager(lockManager.address) + assert.notEqual(lockManager.address, lockCreator.address) + assert.equal(await lock.isLockManager(lockManager.address), true) + + await lock + .connect(lockManager) + .updateKeyPricing( + ethers.utils.parseUnits('0.42', 'ether'), + token.address + ) assert.equal(await lock.tokenAddress(), token.address) - assert.equal( - (await lock.keyPrice()).toString(), - ethers.utils.parseUnits('0.42', 'ether').toString() + compareBigNumbers( + await lock.keyPrice(), + ethers.utils.parseUnits('0.42', 'ether') ) }) it('should allow a lockManager to renounce their role', async () => { - await lock.renounceLockManager({ from: accounts[8] }) - assert.equal(await lock.isLockManager(accounts[8]), false) + await lock.connect(lockManager).renounceLockManager() + assert.equal(await lock.isLockManager(lockManager.address), false) }) it('should revert if trying to switch to an invalid token address', async () => { await reverts( - lock.updateKeyPricing(await lock.keyPrice(), invalidTokenAddress, { - from: lockCreator, - }) + lock + .connect(lockCreator) + .updateKeyPricing(await lock.keyPrice(), invalidTokenAddress) ) }) }) diff --git a/smart-contracts/test/Lock/updateLockConfig.js b/smart-contracts/test/Lock/updateLockConfig.js index e93443237e2..c73c51ce380 100644 --- a/smart-contracts/test/Lock/updateLockConfig.js +++ b/smart-contracts/test/Lock/updateLockConfig.js @@ -1,13 +1,19 @@ const { ethers } = require('hardhat') const { assert } = require('chai') -const { deployLock, purchaseKey, purchaseKeys, reverts } = require('../helpers') +const { + deployLock, + purchaseKey, + purchaseKeys, + reverts, + compareBigNumbers, +} = require('../helpers') const { lockFixtures } = require('@unlock-protocol/hardhat-helpers') const { maxNumberOfKeys, expirationDuration } = lockFixtures['NO_MAX_KEYS'] const maxKeysPerAddress = 1 const defaultValues = [expirationDuration, maxNumberOfKeys, maxKeysPerAddress] -contract('Lock / updateLockConfig', (accounts) => { +describe('Lock / updateLockConfig', () => { let lock before(async () => { @@ -15,19 +21,15 @@ contract('Lock / updateLockConfig', (accounts) => { }) it('set default values correctly', async () => { - assert.equal((await lock.maxKeysPerAddress()).toNumber(), maxKeysPerAddress) - assert.equal( - (await lock.expirationDuration()).toString(), - expirationDuration - ) - assert.equal(await lock.maxNumberOfKeys(), maxNumberOfKeys) + compareBigNumbers(await lock.maxKeysPerAddress(), maxKeysPerAddress) + compareBigNumbers(await lock.expirationDuration(), expirationDuration) + compareBigNumbers(await lock.maxNumberOfKeys(), maxNumberOfKeys) }) it('can only be invoked by lock manager', async () => { + const [, , rando] = await ethers.getSigners() await reverts( - lock.updateLockConfig(...defaultValues, { - from: accounts[5], - }), + lock.connect(rando).updateLockConfig(...defaultValues), 'ONLY_LOCK_MANAGER' ) }) @@ -42,44 +44,44 @@ contract('Lock / updateLockConfig', (accounts) => { it('update the maxKeysPerAddress correctly', async () => { await lock.updateLockConfig(expirationDuration, maxNumberOfKeys, 11) - assert.equal((await lock.maxKeysPerAddress()).toNumber(), 11) + assert.equal(await lock.maxKeysPerAddress(), 11) await lock.updateLockConfig( maxNumberOfKeys, expirationDuration, 1234567890 ) - assert.equal((await lock.maxKeysPerAddress()).toNumber(), 1234567890) + compareBigNumbers(await lock.maxKeysPerAddress(), 1234567890) await lock.updateLockConfig(expirationDuration, maxNumberOfKeys, 1) - assert.equal((await lock.maxKeysPerAddress()).toNumber(), 1) + compareBigNumbers(await lock.maxKeysPerAddress(), 1) }) }) describe('set expirationDuration', () => { it('update the expiration duration of an existing lock', async () => { await lock.updateLockConfig(1000, maxNumberOfKeys, maxKeysPerAddress) - assert.equal((await lock.expirationDuration()).toString(), '1000') + compareBigNumbers(await lock.expirationDuration(), '1000') await lock.updateLockConfig(0, maxNumberOfKeys, maxKeysPerAddress) - assert.equal((await lock.expirationDuration()).toString(), '0') + compareBigNumbers(await lock.expirationDuration(), '0') }) }) describe('set maxNumberofKeys', () => { it('update the expiration duration of an existing lock', async () => { await lock.updateLockConfig(expirationDuration, 20, maxKeysPerAddress) - assert.equal((await lock.maxNumberOfKeys()).toNumber(), 20) + compareBigNumbers(await lock.maxNumberOfKeys(), 20) await lock.updateLockConfig(expirationDuration, 201, maxKeysPerAddress) - assert.equal((await lock.maxNumberOfKeys()).toNumber(), 201) + compareBigNumbers(await lock.maxNumberOfKeys(), 201) }) it('should allow setting a value lower than total supply', async () => { // buy 10 keys await purchaseKeys(lock, 10) await lock.updateLockConfig(expirationDuration, 0, maxKeysPerAddress) - assert.equal((await lock.maxNumberOfKeys()).toNumber(), 0) + compareBigNumbers(await lock.maxNumberOfKeys(), 0) }) it('should allow setting a value equal to current total supply', async () => { // redeploy lock @@ -96,10 +98,7 @@ contract('Lock / updateLockConfig', (accounts) => { totalSupply, await lock.maxKeysPerAddress() ) - assert.equal( - (await lock.maxNumberOfKeys()).toString(), - totalSupply.toString() - ) + compareBigNumbers(await lock.maxNumberOfKeys(), totalSupply) // try to buy another key exceding totalSupply await reverts(purchaseKey(lock, buyers[11].address), 'LOCK_SOLD_OUT') @@ -109,11 +108,13 @@ contract('Lock / updateLockConfig', (accounts) => { describe('emit correct event', () => { it('update the expiration duration of an existing lock', async () => { const tx = await lock.updateLockConfig(10, 20, 30) - const { args } = tx.logs.find(({ event }) => event === 'LockConfig') - assert.equal(args.expirationDuration.toNumber(), 10) - assert.equal(args.maxNumberOfKeys.toNumber(), 20) - assert.equal(args.maxKeysPerAcccount.toNumber(), 30) + const { events } = await tx.wait() + const { args } = events.find(({ event }) => event === 'LockConfig') + + assert.equal(args.expirationDuration, 10) + assert.equal(args.maxNumberOfKeys, 20) + assert.equal(args.maxKeysPerAcccount, 30) }) }) }) diff --git a/smart-contracts/test/Lock/upgrades/v10.js b/smart-contracts/test/Lock/upgrades/v10.js index bb2a3f524cf..3906ee93b4f 100644 --- a/smart-contracts/test/Lock/upgrades/v10.js +++ b/smart-contracts/test/Lock/upgrades/v10.js @@ -1,3 +1,4 @@ +const { assert } = require('chai') const { ethers, upgrades } = require('hardhat') const { reverts } = require('../../helpers/errors') const path = require('path') diff --git a/smart-contracts/test/Lock/upgrades/v11.js b/smart-contracts/test/Lock/upgrades/v11.js index 76deabf24df..fac8bac6ee6 100644 --- a/smart-contracts/test/Lock/upgrades/v11.js +++ b/smart-contracts/test/Lock/upgrades/v11.js @@ -1,3 +1,4 @@ +const { assert } = require('chai') const { ethers, upgrades } = require('hardhat') const path = require('path') const { diff --git a/smart-contracts/test/Lock/upgrades/v12.js b/smart-contracts/test/Lock/upgrades/v12.js index 61d8bf87f03..7bac7973c98 100644 --- a/smart-contracts/test/Lock/upgrades/v12.js +++ b/smart-contracts/test/Lock/upgrades/v12.js @@ -1,3 +1,4 @@ +const { assert } = require('chai') const { ethers, upgrades } = require('hardhat') const path = require('path') diff --git a/smart-contracts/test/Lock/upgrades/v13.js b/smart-contracts/test/Lock/upgrades/v13.js index 02b25e6d91f..64684184429 100644 --- a/smart-contracts/test/Lock/upgrades/v13.js +++ b/smart-contracts/test/Lock/upgrades/v13.js @@ -1,3 +1,4 @@ +const { assert } = require('chai') const { ethers, upgrades } = require('hardhat') const path = require('path') diff --git a/smart-contracts/test/Lock/upgrades/v14.js b/smart-contracts/test/Lock/upgrades/v14.js index 953faa5a36b..93babe9bda2 100644 --- a/smart-contracts/test/Lock/upgrades/v14.js +++ b/smart-contracts/test/Lock/upgrades/v14.js @@ -1,3 +1,4 @@ +const { assert } = require('chai') const { ethers, upgrades } = require('hardhat') const path = require('path') diff --git a/smart-contracts/test/Lock/withdraw.js b/smart-contracts/test/Lock/withdraw.js index efc31aa2046..3c4a73a749b 100644 --- a/smart-contracts/test/Lock/withdraw.js +++ b/smart-contracts/test/Lock/withdraw.js @@ -1,5 +1,5 @@ +const { assert } = require('chai') const { ethers } = require('hardhat') -const BigNumber = require('bignumber.js') const { getBalance, @@ -8,60 +8,55 @@ const { reverts, purchaseKeys, ADDRESS_ZERO, + compareBigNumbers, } = require('../helpers') const someTokens = ethers.utils.parseUnits('10', 'ether') -const scenarios = [true] +const scenarios = [true, false] -contract('Lock / withdraw', (accounts) => { +describe('Lock / withdraw', () => { let lock - let tokenAddress = ADDRESS_ZERO + let tokenAddress let testToken - const owner = accounts[0] + let owner, attacker scenarios.forEach((isErc20) => { describe(`Test ${isErc20 ? 'ERC20' : 'ETH'}`, () => { before(async () => { - if (isErc20) { - testToken = await deployERC20(owner) - tokenAddress = testToken.address + ;[owner, attacker] = await ethers.getSigners() + + testToken = await deployERC20(owner.addres) + tokenAddress = isErc20 ? testToken.address : ADDRESS_ZERO - // Mint some tokens for testing - await testToken.mint(owner, someTokens, { - from: owner, - }) - } lock = await deployLock({ tokenAddress }) if (isErc20) { - await testToken.approve(lock.address, someTokens, { - from: owner, - }) + await testToken.mint(owner.address, someTokens) + await testToken.approve(lock.address, someTokens) } - await purchaseKeys(lock, 2, isErc20) + await purchaseKeys(lock, 5, isErc20) }) it('should only allow the owner to withdraw', async () => { - assert.notEqual(owner, accounts[1]) // Making sure + assert.notEqual(owner.address, attacker.address) // Making sure await reverts( - lock.withdraw(tokenAddress, accounts[1], 0, { - from: accounts[1], - }), + lock.connect(attacker).withdraw(tokenAddress, attacker.address, 0), 'ONLY_LOCK_MANAGER' ) }) describe('when the owner withdraws funds', () => { - let tx + let gas let ownerBalance let contractBalance before(async () => { - ownerBalance = await getBalance(owner, tokenAddress) + ownerBalance = await getBalance(owner.address, tokenAddress) contractBalance = await getBalance(lock.address, tokenAddress) - tx = await lock.withdraw(tokenAddress, owner, 0, { - from: owner, - }) + const tx = await lock.withdraw(tokenAddress, owner.address, 0) + const { gasPrice } = tx + const { gasUsed } = await tx.wait() + gas = gasPrice.mul(gasUsed) }) it("should set the lock's balance to 0", async () => { @@ -69,78 +64,61 @@ contract('Lock / withdraw', (accounts) => { }) it("should increase the owner's balance with the funds from the lock", async () => { - const balance = await getBalance(owner, tokenAddress) - - const { gasPrice } = await ethers.provider.getTransaction(tx.tx) - const gasUsed = new BigNumber(tx.receipt.gasUsed) - const txFee = gasUsed.times(gasPrice.toString()) - assert.equal( - balance.toString(), - ownerBalance - .plus(contractBalance.toString()) - .minus(tokenAddress === ADDRESS_ZERO ? txFee : 0) - .toString() + compareBigNumbers( + await getBalance(owner.address, tokenAddress), + ownerBalance.add(contractBalance).sub(isErc20 ? 0 : gas) ) }) it('should fail if there is nothing left to withdraw', async () => { await reverts( - lock.withdraw(tokenAddress, owner, 0, { - from: owner, - }), + lock.withdraw(tokenAddress, owner.address, 0), 'NOT_ENOUGH_FUNDS' ) }) }) describe('when the owner partially withdraws funds', () => { - let tx + let gas let ownerBalance let contractBalance + const amount = 42 before(async () => { await purchaseKeys(lock, 2, isErc20) - ownerBalance = await getBalance(owner, tokenAddress) + ownerBalance = await getBalance(owner.address, tokenAddress) contractBalance = await getBalance(lock.address, tokenAddress) - tx = await lock.withdraw(tokenAddress, owner, 42, { - from: owner, - }) + const tx = await lock.withdraw(tokenAddress, owner.address, amount) + + // calculate gas + const { gasPrice } = tx + const { gasUsed } = await tx.wait() + gas = gasPrice.mul(gasUsed) }) - it("should reduce the lock's balance by 42", async () => { - assert.equal( - (await getBalance(lock.address, tokenAddress)).toString(), - contractBalance.minus(42).toString() + it(`should reduce the lock's balance by ${amount}`, async () => { + compareBigNumbers( + await getBalance(lock.address, tokenAddress), + contractBalance.sub(amount) ) }) - it("should increase the owner's balance by 42", async () => { - const balance = await getBalance(owner, tokenAddress) - const { gasPrice } = await ethers.provider.getTransaction(tx.tx) - const gasUsed = new BigNumber(tx.receipt.gasUsed) - const txFee = gasUsed.times(gasPrice.toString()) - assert.equal( - balance.toString(), - ownerBalance - .plus(42) - .minus(tokenAddress === ADDRESS_ZERO ? txFee.toString() : 0) - .toString() + it(`should increase the owner's balance by ${amount}`, async () => { + compareBigNumbers( + await getBalance(owner.address, tokenAddress), + ownerBalance.add(amount).sub(isErc20 ? 0 : gas) ) }) describe('when there is nothing left to withdraw', () => { before(async () => { - await lock.withdraw(tokenAddress, owner, 0, { - from: owner, - }) + await lock.withdraw(tokenAddress, owner.address, 0) }) it('withdraw should fail', async () => { await reverts( - lock.withdraw(tokenAddress, owner, 42, { - from: owner, - }), + lock.withdraw(tokenAddress, owner.address, 42), 'NOT_ENOUGH_FUNDS' ) }) diff --git a/smart-contracts/test/LockSerializer/_compareValues.js b/smart-contracts/test/LockSerializer/_compareValues.js index f5bcbb26992..49cd861c352 100644 --- a/smart-contracts/test/LockSerializer/_compareValues.js +++ b/smart-contracts/test/LockSerializer/_compareValues.js @@ -1,3 +1,4 @@ +const { assert } = require('chai') const { ethers } = require('hardhat') const compareValues = async (serialized, lock) => { diff --git a/smart-contracts/test/LockSerializer/serialize.js b/smart-contracts/test/LockSerializer/serialize.js index 57c75724a81..48e8cb610c3 100644 --- a/smart-contracts/test/LockSerializer/serialize.js +++ b/smart-contracts/test/LockSerializer/serialize.js @@ -1,9 +1,10 @@ +const { assert } = require('chai') const { ethers } = require('hardhat') const compareValues = require('./_compareValues') const { deployLock, ADDRESS_ZERO } = require('../helpers') -contract('LockSerializer', () => { +describe('LockSerializer', () => { let lock let serializer let lockOwner diff --git a/smart-contracts/test/UniswapOracleV3/uniswapOracleV3.mainnet.js b/smart-contracts/test/UniswapOracleV3/uniswapOracleV3.mainnet.js index 7337200d617..ce90fa274f3 100644 --- a/smart-contracts/test/UniswapOracleV3/uniswapOracleV3.mainnet.js +++ b/smart-contracts/test/UniswapOracleV3/uniswapOracleV3.mainnet.js @@ -1,6 +1,6 @@ const { expect } = require('chai') const { ethers } = require('hardhat') -const { expectRevert } = require('@openzeppelin/test-helpers') +const { reverts } = require('../helpers') const { getTokens, getNetwork } = require('@unlock-protocol/hardhat-helpers') @@ -81,7 +81,7 @@ describe(`oracle`, () => { }) it('throws if pair doesnt exist', async () => { const [{ address: one }, { address: two }] = await ethers.getSigners() - expectRevert( + reverts( oracle.consult(one, ethers.utils.parseEther('1'), two), `MISSING_POOL(${one},${two})` ) diff --git a/smart-contracts/test/Unlock/addLockTemplate.js b/smart-contracts/test/Unlock/addLockTemplate.js index 20d8b1ed335..bb1f8eb0625 100644 --- a/smart-contracts/test/Unlock/addLockTemplate.js +++ b/smart-contracts/test/Unlock/addLockTemplate.js @@ -2,7 +2,7 @@ const { expect } = require('chai') const { ethers, upgrades } = require('hardhat') const { reverts, ADDRESS_ZERO } = require('../helpers') -contract('PublicLock template versions', () => { +describe('PublicLock template versions', () => { let unlock let publicLock let publicLockUpgraded diff --git a/smart-contracts/test/Unlock/behaviors.js b/smart-contracts/test/Unlock/behaviors.js new file mode 100644 index 00000000000..a47b6cc9312 --- /dev/null +++ b/smart-contracts/test/Unlock/behaviors.js @@ -0,0 +1,101 @@ +const { assert } = require('chai') +const { ethers } = require('hardhat') + +const { + ADDRESS_ZERO, + createLockCalldata, +} = require('@unlock-protocol/hardhat-helpers') + +const deployContracts = require('../fixtures/deploy') +const { compareBigNumbers } = require('../helpers') + +describe('Unlock / UnlockProxy', () => { + let unlock + let unlockOwner + before(async () => { + ;[unlockOwner] = await ethers.getSigners() + + // get proxy from hardhat deployment + ;({ unlock } = await deployContracts()) + + // deploy template + const PublicLock = await ethers.getContractFactory( + 'contracts/PublicLock.sol:PublicLock' + ) + const template = await PublicLock.deploy() + await template.deployed() + + await unlock.addLockTemplate( + template.address, + (await unlock.publicLockLatestVersion()) + 1 + ) + await unlock.setLockTemplate(template.address) + }) + + describe('initialization', () => { + it('should have an owner', async () => { + const owner = await unlock.owner() + assert.equal(owner, unlockOwner.address) + }) + + it('should have initialized grossNetworkProduct', async () => { + compareBigNumbers(await unlock.grossNetworkProduct(), 0) + }) + + it('should have initialized totalDiscountGranted', async () => { + assert.equal(await unlock.totalDiscountGranted(), 0) + }) + }) + + describe('lock created successfully', () => { + let newLockArgs + + beforeEach(async () => { + const args = [ + 60 * 60 * 24 * 30, // expirationDuration: 30 days + ADDRESS_ZERO, + ethers.utils.parseUnits('1', 'ether').toString(), // keyPrice: in wei + 100, // maxNumberOfKeys + 'New Lock', + ] + const calldata = await createLockCalldata({ + args, + from: unlockOwner.address, + }) + const tx = await unlock.createUpgradeableLock(calldata) + const { events } = await tx.wait() + ;({ args: newLockArgs } = events.find((v) => v.event === 'NewLock')) + }) + + it('should have kept track of the Lock inside Unlock with the right balances', async () => { + let publicLock = await ethers.getContractAt( + 'contracts/PublicLock.sol:PublicLock', + newLockArgs.newLockAddress + ) + // This is a bit of a dumb test because when the lock is missing, the value are 0 anyway... + let results = await unlock.locks(publicLock.address) + assert.equal(results.totalSales, 0) + assert.equal(results.yieldedDiscountTokens, 0) + }) + + it('should trigger the NewLock event', () => { + assert.equal( + ethers.utils.getAddress(newLockArgs.lockOwner), + ethers.utils.getAddress(unlockOwner.address) + ) + assert(newLockArgs.newLockAddress) + }) + + it('should have created the lock with the right address for unlock', async () => { + let publicLock = await ethers.getContractAt( + 'contracts/PublicLock.sol:PublicLock', + newLockArgs.newLockAddress + ) + let unlockProtocol = await publicLock.unlockProtocol() + assert.equal( + ethers.utils.getAddress(unlockProtocol), + ethers.utils.getAddress(unlock.address) + ) + }) + }) +}) diff --git a/smart-contracts/test/Unlock/behaviors/UnlockProxy.js b/smart-contracts/test/Unlock/behaviors/UnlockProxy.js deleted file mode 100644 index 6ddcb51770c..00000000000 --- a/smart-contracts/test/Unlock/behaviors/UnlockProxy.js +++ /dev/null @@ -1,41 +0,0 @@ -const deployContracts = require('../../fixtures/deploy') -const { MAX_GAS } = require('../../helpers') - -const shared = require('./shared') - -const PublicLock = artifacts.require('PublicLock') - -contract('Unlock / UnlockProxy', (accounts) => { - const [unlockOwner] = accounts - this.accounts = accounts - - beforeEach(async () => { - this.unlockOwner = unlockOwner - - // get proxy from hardhat deployment - const { unlock } = await deployContracts() - this.proxyAddress = unlock.address - this.unlock = unlock - - // deploy template - const lock = await PublicLock.new() - - await this.unlock.addLockTemplate( - lock.address, - (await unlock.publicLockLatestVersion()) + 1, - { - from: this.unlockOwner, - gas: MAX_GAS, - } - ) - - await this.unlock.setLockTemplate(lock.address, { - from: this.unlockOwner, - gas: MAX_GAS, - }) - }) - - describe('should function as a proxy', () => { - shared.shouldBehaveLikeV1(this) - }) -}) diff --git a/smart-contracts/test/Unlock/behaviors/createLock.js b/smart-contracts/test/Unlock/behaviors/createLock.js deleted file mode 100644 index f1c4beb30e8..00000000000 --- a/smart-contracts/test/Unlock/behaviors/createLock.js +++ /dev/null @@ -1,64 +0,0 @@ -const { ethers } = require('hardhat') -const { - ADDRESS_ZERO, - createLockCalldata, -} = require('@unlock-protocol/hardhat-helpers') - -const PublicLock = artifacts.require('PublicLock') - -exports.shouldCreateLock = (options) => { - describe('Unlock / behaviors / createLock', () => { - let unlock - let accounts - let evt - - beforeEach(async () => { - ;({ unlock, accounts } = options) - }) - - describe('lock created successfully', () => { - let transaction - beforeEach(async () => { - const args = [ - 60 * 60 * 24 * 30, // expirationDuration: 30 days - ADDRESS_ZERO, - ethers.utils.parseUnits('1', 'ether').toString(), // keyPrice: in wei - 100, // maxNumberOfKeys - 'New Lock', - ] - const calldata = await createLockCalldata({ args, from: accounts[0] }) - transaction = await unlock.createUpgradeableLock(calldata, { - gas: 6000000, - }) - evt = transaction.logs.find((v) => v.event === 'NewLock') - }) - - it('should have kept track of the Lock inside Unlock with the right balances', async () => { - let publicLock = await PublicLock.at(evt.args.newLockAddress) - // This is a bit of a dumb test because when the lock is missing, the value are 0 anyway... - let results = await unlock.locks(publicLock.address) - assert.equal(results.totalSales, 0) - assert.equal(results.yieldedDiscountTokens, 0) - }) - - it('should trigger the NewLock event', () => { - const event = transaction.logs.find((v) => v.event === 'NewLock') - assert(event) - assert.equal( - ethers.utils.getAddress(event.args.lockOwner), - ethers.utils.getAddress(accounts[0]) - ) - assert(event.args.newLockAddress) - }) - - it('should have created the lock with the right address for unlock', async () => { - let publicLock = await PublicLock.at(evt.args.newLockAddress) - let unlockProtocol = await publicLock.unlockProtocol() - assert.equal( - ethers.utils.getAddress(unlockProtocol), - ethers.utils.getAddress(unlock.address) - ) - }) - }) - }) -} diff --git a/smart-contracts/test/Unlock/behaviors/initialization.js b/smart-contracts/test/Unlock/behaviors/initialization.js deleted file mode 100644 index 54cf8c0a3ca..00000000000 --- a/smart-contracts/test/Unlock/behaviors/initialization.js +++ /dev/null @@ -1,32 +0,0 @@ -const BigNumber = require('bignumber.js') -const { ethers } = require('hardhat') - -exports.shouldHaveInitialized = (options) => { - describe('Unlock / behaviors / initialization', () => { - let unlock - let unlockOwner - - beforeEach(async () => { - ;({ unlock, unlockOwner } = options) - }) - - it('should have an owner', async () => { - const owner = await unlock.owner() - assert.equal(owner, ethers.utils.getAddress(unlockOwner)) - }) - - it('should have initialized grossNetworkProduct', async () => { - const grossNetworkProduct = new BigNumber( - await unlock.grossNetworkProduct() - ) - assert.equal(grossNetworkProduct.toFixed(), 0) - }) - - it('should have initialized totalDiscountGranted', async () => { - const totalDiscountGranted = new BigNumber( - await unlock.totalDiscountGranted() - ) - assert.equal(totalDiscountGranted.toFixed(), 0) - }) - }) -} diff --git a/smart-contracts/test/Unlock/behaviors/shared.js b/smart-contracts/test/Unlock/behaviors/shared.js deleted file mode 100644 index 8fae812754f..00000000000 --- a/smart-contracts/test/Unlock/behaviors/shared.js +++ /dev/null @@ -1,9 +0,0 @@ -const initialization = require('./initialization') -const createLock = require('./createLock') - -exports.shouldBehaveLikeV1 = (options) => { - describe('Unlock / behaviors / shared', () => { - initialization.shouldHaveInitialized(options) - createLock.shouldCreateLock(options) - }) -} diff --git a/smart-contracts/test/Unlock/createLockAtVersion.js b/smart-contracts/test/Unlock/createLockAtVersion.js index 87d45231590..7073b13f0dd 100644 --- a/smart-contracts/test/Unlock/createLockAtVersion.js +++ b/smart-contracts/test/Unlock/createLockAtVersion.js @@ -1,8 +1,7 @@ const { expect, assert } = require('chai') const { ethers, upgrades } = require('hardhat') -const { expectRevert } = require('@openzeppelin/test-helpers') const { createLockCalldata } = require('@unlock-protocol/hardhat-helpers') -const { ADDRESS_ZERO } = require('../helpers') +const { ADDRESS_ZERO, reverts } = require('../helpers') // lock args const args = [ 60 * 60 * 24 * 30, // expirationDuration: 30 days @@ -12,7 +11,7 @@ const args = [ 'New Lock', ] -contract('Unlock / createUpgradeableLockAtVersion', () => { +describe('Unlock / createUpgradeableLockAtVersion', () => { let unlock let publicLock let publicLockUpgraded @@ -97,7 +96,7 @@ contract('Unlock / createUpgradeableLockAtVersion', () => { }) it('reverts if version is not set', async () => { - await expectRevert( + await reverts( unlock.createUpgradeableLockAtVersion(calldata, 3), 'MISSING_LOCK_TEMPLATE' ) diff --git a/smart-contracts/test/Unlock/createLockLegacy.js b/smart-contracts/test/Unlock/createLockLegacy.js index 4f54441ca2a..cba9f4eaa65 100644 --- a/smart-contracts/test/Unlock/createLockLegacy.js +++ b/smart-contracts/test/Unlock/createLockLegacy.js @@ -1,3 +1,4 @@ +const { assert } = require('chai') const { ethers } = require('hardhat') const { ADDRESS_ZERO, deployContracts } = require('../helpers') @@ -5,8 +6,9 @@ const { ADDRESS_ZERO, deployContracts } = require('../helpers') let unlock let lock let publicLockUpgraded +let currentVersion -contract('Unlock / createLock (Legacy)', () => { +describe('Unlock / createLock (Legacy)', () => { before(async () => { // setup Unlock ;({ unlock } = await deployContracts()) @@ -17,11 +19,10 @@ contract('Unlock / createLock (Legacy)', () => { ) publicLockUpgraded = await PublicLockUpgraded.deploy() await publicLockUpgraded.deployed() - const currentVersion = await unlock.publicLockLatestVersion() - await unlock.addLockTemplate( - publicLockUpgraded.address, - currentVersion.toNumber() + 1 - ) + currentVersion = await unlock.publicLockLatestVersion() + + // add template for upgrade test + await unlock.addLockTemplate(publicLockUpgraded.address, currentVersion + 1) }) describe('Deploy correctly using legacy createLock method', () => { @@ -49,7 +50,8 @@ contract('Unlock / createLock (Legacy)', () => { 'Test Lock', ] const tx = await unlock.createLock(...args, salt) - const evt = tx.logs.find((v) => v.event === 'NewLock') + const { events } = await tx.wait() + const evt = events.find(({ event }) => event === 'NewLock') lock = await ethers.getContractAt( 'contracts/PublicLock.sol:PublicLock', evt.args.newLockAddress @@ -70,7 +72,10 @@ contract('Unlock / createLock (Legacy)', () => { lock.address, (await lock.publicLockVersion()) + 1 ) - assert.equal(tx.logs[0].event, 'LockUpgraded') + const { events } = await tx.wait() + const { args } = events.find(({ event }) => event === 'LockUpgraded') + assert.equal(args.lockAddress, lock.address) + assert.equal(args.version, currentVersion + 1) }) }) } diff --git a/smart-contracts/test/Unlock/gas.js b/smart-contracts/test/Unlock/gas.js index a2d0c815dd6..3595af33706 100644 --- a/smart-contracts/test/Unlock/gas.js +++ b/smart-contracts/test/Unlock/gas.js @@ -1,16 +1,14 @@ +const { assert } = require('chai') const { ethers } = require('hardhat') -const BigNumber = require('bignumber.js') const WalletService = require('../helpers/walletServiceMock.js') const { createLockCalldata } = require('@unlock-protocol/hardhat-helpers') const { ADDRESS_ZERO, deployContracts } = require('../helpers') -let unlock -let createLockGas = new BigNumber(42) - -contract('Unlock / gas', (accounts) => { - before(async () => { - ;({ unlock } = await deployContracts()) +describe('Unlock / gas', () => { + it('gas used to createLock is less than wallet service limit', async () => { + const { unlock } = await deployContracts() + const [signer] = await ethers.getSigners() const args = [ 60 * 60 * 24 * 30, // expirationDuration: 30 days @@ -19,14 +17,11 @@ contract('Unlock / gas', (accounts) => { 100, // maxNumberOfKeys 'Gas Test Lock', ] - const calldata = await createLockCalldata({ args, from: accounts[0] }) + const calldata = await createLockCalldata({ args, from: signer.address }) const tx = await unlock.createUpgradeableLock(calldata) - createLockGas = new BigNumber(tx.receipt.gasUsed) - }) - - it('gas used to createLock is less than wallet service limit', async () => { + const { gasUsed } = await tx.wait() if (!process.env.TEST_COVERAGE) { - assert(createLockGas.lte(WalletService.gasAmountConstants().createLock)) + assert(gasUsed.lte(WalletService.gasAmountConstants().createLock)) } }) }) diff --git a/smart-contracts/test/Unlock/getAdmin.js b/smart-contracts/test/Unlock/getAdmin.js index c21a9b1ee37..b45c847b288 100644 --- a/smart-contracts/test/Unlock/getAdmin.js +++ b/smart-contracts/test/Unlock/getAdmin.js @@ -1,7 +1,8 @@ +const { assert } = require('chai') const { upgrades } = require('hardhat') const { deployContracts, getProxyAdminAddress } = require('../helpers') -contract('Unlock / getAdmin', () => { +describe('Unlock / getAdmin', () => { it('fetched correctly the proxy admin address', async () => { const { unlock } = await deployContracts() const admin = await unlock.getAdmin() diff --git a/smart-contracts/test/Unlock/initializers.js b/smart-contracts/test/Unlock/initializers.js index 77ff72d5ccb..ce01e6f23de 100644 --- a/smart-contracts/test/Unlock/initializers.js +++ b/smart-contracts/test/Unlock/initializers.js @@ -1,7 +1,8 @@ +const { assert } = require('chai') const { ethers } = require('hardhat') const { reverts, deployContracts, parseInterface } = require('../helpers') -contract('Unlock / initializers', (accounts) => { +describe('Unlock / initializers', () => { it('There is only 1 public initializer in Unlock', async () => { const { interface } = await ethers.getContractFactory('Unlock') const count = parseInterface(interface).filter( @@ -12,6 +13,7 @@ contract('Unlock / initializers', (accounts) => { it('initialize may not be called again', async () => { const { unlock } = await deployContracts() - await reverts(unlock.initialize(accounts[0]), 'ALREADY_INITIALIZED') + const [, someAccount] = await ethers.getSigners() + await reverts(unlock.initialize(someAccount.address), 'ALREADY_INITIALIZED') }) }) diff --git a/smart-contracts/test/Unlock/interface.js b/smart-contracts/test/Unlock/interface.js index 462c1a42566..84440e05a96 100644 --- a/smart-contracts/test/Unlock/interface.js +++ b/smart-contracts/test/Unlock/interface.js @@ -6,7 +6,7 @@ const { compareInterfaces, } = require('../helpers') -contract('Unlock / interface', () => { +describe('Unlock / interface', () => { let unlockContract let unlockInterface diff --git a/smart-contracts/test/Unlock/lockTotalSales.js b/smart-contracts/test/Unlock/lockTotalSales.js index b5fef87ba8b..6b9e5b604e6 100644 --- a/smart-contracts/test/Unlock/lockTotalSales.js +++ b/smart-contracts/test/Unlock/lockTotalSales.js @@ -1,3 +1,4 @@ +const { assert } = require('chai') const { ethers } = require('hardhat') const { deployContracts, @@ -10,7 +11,7 @@ let lock let unlock const price = ethers.utils.parseUnits('0.01', 'ether') -contract('Unlock / lockTotalSales', () => { +describe('Unlock / lockTotalSales', () => { before(async () => { ;({ unlock } = await deployContracts()) lock = await deployLock({ unlock }) diff --git a/smart-contracts/test/Unlock/migrateLockData/v10.js b/smart-contracts/test/Unlock/migrateLockData/v10.js index f27a31b9a25..5352affadcf 100644 --- a/smart-contracts/test/Unlock/migrateLockData/v10.js +++ b/smart-contracts/test/Unlock/migrateLockData/v10.js @@ -1,3 +1,4 @@ +const { assert } = require('chai') /** * Tests for the lock data migration for PublicLock v10 */ diff --git a/smart-contracts/test/Unlock/protocolFee.js b/smart-contracts/test/Unlock/protocolFee.js index 36390eeabe7..91dde163701 100644 --- a/smart-contracts/test/Unlock/protocolFee.js +++ b/smart-contracts/test/Unlock/protocolFee.js @@ -1,3 +1,4 @@ +const { assert } = require('chai') const { ethers } = require('hardhat') const { deployLock, @@ -7,19 +8,19 @@ const { purchaseKeys, reverts, ADDRESS_ZERO, - getBalanceEthers, + getBalance, + increaseTimeTo, } = require('../helpers') -const { time } = require('@openzeppelin/test-helpers') const scenarios = [false, true] const someDai = ethers.utils.parseEther('10') const BASIS_POINT_DENOMINATOR = 10000 -contract('Unlock / protocolFee', async () => { +describe('Unlock / protocolFee', async () => { let unlock before(async () => { - ;({ unlockEthers: unlock } = await deployContracts()) + ;({ unlock } = await deployContracts()) }) describe('setProtocolFee', () => { @@ -72,7 +73,7 @@ contract('Unlock / protocolFee', async () => { describe('pays fees to Unlock correctly when', () => { it('purchasing a single key', async () => { - const unlockBalanceBefore = await getBalanceEthers( + const unlockBalanceBefore = await getBalance( unlock.address, tokenAddress ) @@ -84,7 +85,7 @@ contract('Unlock / protocolFee', async () => { .mul(await unlock.protocolFee()) .div(BASIS_POINT_DENOMINATOR) - const unlockBalanceAfter = await getBalanceEthers( + const unlockBalanceAfter = await getBalance( unlock.address, tokenAddress ) @@ -95,7 +96,7 @@ contract('Unlock / protocolFee', async () => { }) it('purchasing multiple keys', async () => { - const unlockBalanceBefore = await getBalanceEthers( + const unlockBalanceBefore = await getBalance( unlock.address, tokenAddress ) @@ -103,7 +104,7 @@ contract('Unlock / protocolFee', async () => { await dai.connect(keyOwner).approve(lock.address, keyPrice.mul(3)) } await purchaseKeys(lock, 3, isErc20, keyOwner) - const unlockBalanceAfter = await getBalanceEthers( + const unlockBalanceAfter = await getBalance( unlock.address, tokenAddress ) @@ -114,7 +115,7 @@ contract('Unlock / protocolFee', async () => { }) it('extending a key', async () => { - const unlockBalanceBefore = await getBalanceEthers( + const unlockBalanceBefore = await getBalance( unlock.address, tokenAddress ) @@ -132,7 +133,7 @@ contract('Unlock / protocolFee', async () => { .extend(isErc20 ? keyPrice : 0, tokenId, ADDRESS_ZERO, [], { value: isErc20 ? 0 : keyPrice, }) - const unlockBalanceAfter = await getBalanceEthers( + const unlockBalanceAfter = await getBalance( unlock.address, tokenAddress ) @@ -144,7 +145,7 @@ contract('Unlock / protocolFee', async () => { if (isErc20) { it('renewing a key', async () => { - const unlockBalanceBefore = await getBalanceEthers( + const unlockBalanceBefore = await getBalance( unlock.address, tokenAddress ) @@ -152,10 +153,10 @@ contract('Unlock / protocolFee', async () => { await dai.connect(keyOwner).approve(lock.address, keyPrice.mul(2)) const { tokenId } = await purchaseKey(lock, keyOwner.address, true) const expirationTs = await lock.keyExpirationTimestampFor(tokenId) - await time.increaseTo(expirationTs.toNumber()) + await increaseTimeTo(expirationTs) await lock.renewMembershipFor(tokenId, ADDRESS_ZERO) - const unlockBalanceAfter = await getBalanceEthers( + const unlockBalanceAfter = await getBalance( unlock.address, tokenAddress ) diff --git a/smart-contracts/test/Unlock/proxyAdmin.js b/smart-contracts/test/Unlock/proxyAdmin.js index 85e5847191b..54434d57547 100644 --- a/smart-contracts/test/Unlock/proxyAdmin.js +++ b/smart-contracts/test/Unlock/proxyAdmin.js @@ -1,7 +1,8 @@ +const { assert } = require('chai') const { ethers, upgrades } = require('hardhat') const { reverts } = require('../helpers/errors') -contract('proxyAdmin', () => { +describe('proxyAdmin', () => { let unlock beforeEach(async () => { diff --git a/smart-contracts/test/Unlock/receive.js b/smart-contracts/test/Unlock/receive.js index bc0ffd1fffe..5f78fea8297 100644 --- a/smart-contracts/test/Unlock/receive.js +++ b/smart-contracts/test/Unlock/receive.js @@ -1,26 +1,27 @@ +const { assert } = require('chai') const { ethers } = require('hardhat') -const { deployContracts, reverts, getBalanceEthers } = require('../helpers') +const { deployContracts, reverts, getBalance } = require('../helpers') const oneEth = ethers.utils.parseEther('1') -contract('Unlock / receive', async () => { +describe('Unlock / receive', async () => { let unlock, signer before(async () => { ;[signer] = await ethers.getSigners() - ;({ unlockEthers: unlock } = await deployContracts()) + ;({ unlock } = await deployContracts()) }) describe('Unlock contract receiving native tokens', () => { it('works correctly', async () => { - const balanceBefore = await getBalanceEthers(unlock.address) + const balanceBefore = await getBalance(unlock.address) await signer.sendTransaction({ to: unlock.address, value: oneEth, }) assert.equal( balanceBefore.add(oneEth).toString(), - (await getBalanceEthers(unlock.address)).toString() + (await getBalance(unlock.address)).toString() ) }) it('reverts with null value', async () => { diff --git a/smart-contracts/test/Unlock/resetTrackedValue.js b/smart-contracts/test/Unlock/resetTrackedValue.js index 65467d8de53..e381fc7da92 100644 --- a/smart-contracts/test/Unlock/resetTrackedValue.js +++ b/smart-contracts/test/Unlock/resetTrackedValue.js @@ -3,6 +3,7 @@ const { deployLock, reverts, purchaseKey, + compareBigNumbers, } = require('../helpers') const { ethers } = require('hardhat') @@ -10,69 +11,68 @@ const keyPrice = ethers.utils.parseUnits('0.01', 'ether') let unlock let lock +let unlockOwner, keyOwner, anotherKeyOwner -contract('Unlock / resetTrackedValue', (accounts) => { +describe('Unlock / resetTrackedValue', () => { beforeEach(async () => { ;({ unlock } = await deployContracts()) lock = await deployLock({ unlock }) - await purchaseKey(lock, accounts[1]) + ;[unlockOwner, keyOwner, anotherKeyOwner] = await ethers.getSigners() + await purchaseKey(lock, keyOwner.address) }) it('grossNetworkProduct has a non-zero value after a purchase', async () => { const grossNetworkProduct = await unlock.grossNetworkProduct() - assert.equal(grossNetworkProduct.toString(), keyPrice.toString()) + compareBigNumbers(grossNetworkProduct, keyPrice) }) it('should fail to resetTrackedValue if called from a non-owner account', async () => { await reverts( - unlock.resetTrackedValue(0, 0, { from: accounts[1] }), + unlock.connect(keyOwner).resetTrackedValue(0, 0), 'ONLY_OWNER' ) }) describe('resetTrackedValue to 0', async () => { beforeEach(async () => { - await unlock.resetTrackedValue(0, 0, { from: accounts[0] }) + await unlock.connect(unlockOwner).resetTrackedValue(0, 0) }) it('grossNetworkProduct is now 0', async () => { const grossNetworkProduct = await unlock.grossNetworkProduct() - assert.equal(grossNetworkProduct, 0) + compareBigNumbers(grossNetworkProduct, 0) }) describe('After purchase', () => { beforeEach(async () => { - await purchaseKey(lock, accounts[2]) + await purchaseKey(lock, anotherKeyOwner.address) }) it('grossNetworkProduct has a non-zero value after a purchase', async () => { const grossNetworkProduct = await unlock.grossNetworkProduct() - assert.equal(grossNetworkProduct.toString(), keyPrice.toString()) + compareBigNumbers(grossNetworkProduct, keyPrice) }) }) }) describe('resetTrackedValue to 42', async () => { beforeEach(async () => { - await unlock.resetTrackedValue(42, 0, { from: accounts[0] }) + await unlock.connect(unlockOwner).resetTrackedValue(42, 0) }) it('grossNetworkProduct is now 42', async () => { const grossNetworkProduct = await unlock.grossNetworkProduct() - assert.equal(grossNetworkProduct, 42) + compareBigNumbers(grossNetworkProduct, 42) }) describe('After purchase', () => { beforeEach(async () => { - await purchaseKey(lock, accounts[2]) + await purchaseKey(lock, anotherKeyOwner.address) }) it('grossNetworkProduct has a non-zero value after a purchase', async () => { const grossNetworkProduct = await unlock.grossNetworkProduct() - assert.equal( - grossNetworkProduct.toString(), - keyPrice.add(42).toString() - ) + compareBigNumbers(grossNetworkProduct, keyPrice.add(42)) }) }) }) diff --git a/smart-contracts/test/Unlock/setLockTemplate.js b/smart-contracts/test/Unlock/setLockTemplate.js index d19c9fcd58f..0c9d5dbcd90 100644 --- a/smart-contracts/test/Unlock/setLockTemplate.js +++ b/smart-contracts/test/Unlock/setLockTemplate.js @@ -1,3 +1,4 @@ +const { assert } = require('chai') const { ethers } = require('hardhat') const { deployContracts, reverts } = require('../helpers') @@ -5,9 +6,9 @@ let unlock, PublicLock let lockTemplate let signer -contract('Lock / setLockTemplate', () => { +describe('Lock / setLockTemplate', () => { beforeEach(async () => { - ;({ unlockEthers: unlock } = await deployContracts()) + ;({ unlock } = await deployContracts()) PublicLock = await ethers.getContractFactory( 'contracts/PublicLock.sol:PublicLock' diff --git a/smart-contracts/test/Unlock/swapAndBurn.js b/smart-contracts/test/Unlock/swapAndBurn.js index 11d6811c806..e58e847ec2a 100644 --- a/smart-contracts/test/Unlock/swapAndBurn.js +++ b/smart-contracts/test/Unlock/swapAndBurn.js @@ -1,3 +1,4 @@ +const { assert } = require('chai') const { ethers } = require('hardhat') const { deployERC20, deployContracts, reverts } = require('../helpers') @@ -11,11 +12,11 @@ const { compareBigNumbers } = require('../helpers') const fee = 3000 -contract('Unlock / swapAndBurn', async () => { +describe('Unlock / swapAndBurn', async () => { let unlock, swapBurner, udtAddress, udt, mockSwapBurner before(async () => { - ;({ unlockEthers: unlock, udt } = await deployContracts()) + ;({ unlock, udt } = await deployContracts()) udtAddress = udt.address // set UDT in unlock diff --git a/smart-contracts/test/Unlock/uniswapValue.mainnet.js b/smart-contracts/test/Unlock/uniswapValue.mainnet.js index 04c9414db3d..51e8dacd8a2 100644 --- a/smart-contracts/test/Unlock/uniswapValue.mainnet.js +++ b/smart-contracts/test/Unlock/uniswapValue.mainnet.js @@ -1,3 +1,4 @@ +const { assert } = require('chai') const { ethers } = require('hardhat') const { mainnet } = require('@unlock-protocol/networks') const { expect } = require('chai') @@ -26,7 +27,7 @@ const totalPrice = keyPrice.mul(5) const keyPriceUSDC = ethers.utils.parseUnits('50', 6) const totalPriceUSDC = keyPriceUSDC.mul(5) -contract('Unlock / uniswapValue', () => { +describe('Unlock / uniswapValue', () => { let lock let unlock let token diff --git a/smart-contracts/test/Unlock/unlockConfig.js b/smart-contracts/test/Unlock/unlockConfig.js index 90dfc2f7774..bf7087b99bc 100644 --- a/smart-contracts/test/Unlock/unlockConfig.js +++ b/smart-contracts/test/Unlock/unlockConfig.js @@ -1,41 +1,36 @@ +const { ethers } = require('hardhat') const { reverts, deployContracts } = require('../helpers') let unlock -let unlockOwner +let unlockOwner, someAccount -contract('Lock / configUnlock', (accounts) => { +describe('Lock / configUnlock', () => { before(async () => { ;({ unlock } = await deployContracts()) - ;[unlockOwner] = accounts + ;[unlockOwner, someAccount] = await ethers.getSigners() }) describe('configuring the Unlock contract', () => { it('should let the owner configure the Unlock contract', async () => { - await unlock.configUnlock( + await unlock.connect(unlockOwner).configUnlock( await unlock.udt(), await unlock.weth(), 0, '', '', - 1, // mainnet - { - from: unlockOwner, - } + 1 // mainnet ) }) it('should revert if called by other than the owner', async () => { await reverts( - unlock.configUnlock( + unlock.connect(someAccount).configUnlock( await unlock.udt(), await unlock.weth(), 0, '', '', - 1, // mainnet - { - from: accounts[7], - } + 1 // mainnet ), 'ONLY_OWNER' ) diff --git a/smart-contracts/test/Unlock/upgradeLock.js b/smart-contracts/test/Unlock/upgradeLock.js index a4b0cf6c663..bb05b3ae0e4 100644 --- a/smart-contracts/test/Unlock/upgradeLock.js +++ b/smart-contracts/test/Unlock/upgradeLock.js @@ -1,3 +1,4 @@ +const { assert } = require('chai') const { ethers, upgrades } = require('hardhat') const contracts = require('@unlock-protocol/contracts') const { ADDRESS_ZERO, reverts } = require('../helpers') diff --git a/smart-contracts/test/Unlock/upgrades.js b/smart-contracts/test/Unlock/upgrades.js index 63736f9f2a9..e33e5f576ec 100644 --- a/smart-contracts/test/Unlock/upgrades.js +++ b/smart-contracts/test/Unlock/upgrades.js @@ -1,3 +1,4 @@ +const { assert } = require('chai') const { ethers } = require('hardhat') const { @@ -18,8 +19,9 @@ const { const unlockVersions = getUnlockVersionNumbers() -contract('Unlock / upgrades', async (accounts) => { - const [unlockOwner, lockOwner, keyOwner] = await ethers.getSigners() +describe('Unlock / upgrades', async () => { + const [unlockOwner, lockOwner, keyOwner, anotherAccount] = + await ethers.getSigners() const keyPrice = ethers.utils.parseUnits('0.01', 'ether') after(async () => await cleanupContractVersions(__dirname)) @@ -296,7 +298,7 @@ contract('Unlock / upgrades', async (accounts) => { } const tx = await lock .connect(keyOwner) - .transferFrom(keyOwner.address, accounts[8], id) + .transferFrom(keyOwner.address, anotherAccount.address, id) const { events } = await tx.wait() const evt = events.find(({ event }) => event === 'Transfer') assert.equal(evt.event, 'Transfer') diff --git a/smart-contracts/test/Unlock/upgrades.mainnet.js b/smart-contracts/test/Unlock/upgrades.mainnet.js index e663ec382f0..5f98cfe6d23 100644 --- a/smart-contracts/test/Unlock/upgrades.mainnet.js +++ b/smart-contracts/test/Unlock/upgrades.mainnet.js @@ -75,7 +75,7 @@ const upgradeContract = async () => { return Unlock.attach(ProxyContractAddress) } -contract('Unlock (on mainnet)', async () => { +describe('Unlock (on mainnet)', async () => { let unlock let deployer diff --git a/smart-contracts/test/UnlockDiscountToken/UnlockDiscountToken.js b/smart-contracts/test/UnlockDiscountToken/UnlockDiscountToken.js index dad6c9785f3..08abc8be653 100644 --- a/smart-contracts/test/UnlockDiscountToken/UnlockDiscountToken.js +++ b/smart-contracts/test/UnlockDiscountToken/UnlockDiscountToken.js @@ -1,67 +1,49 @@ -const BigNumber = require('bignumber.js') +const { assert } = require('chai') +const { ethers } = require('hardhat') const { reverts } = require('../helpers') const deployContracts = require('../fixtures/deploy') -const UnlockDiscountToken = artifacts.require('UnlockDiscountTokenV3.sol') -contract('UnlockDiscountToken', (accounts) => { - let unlockDiscountToken - const minter = accounts[1] +describe('udt', () => { + let udt + let minter, recipient, accounts before(async () => { - const { udt } = await deployContracts() - unlockDiscountToken = await UnlockDiscountToken.at(udt.address) - }) - - it('shouldFail to call init again', async () => { - await reverts( - unlockDiscountToken.initialize(minter), - 'Initializable: contract is already initialized' - ) + ;[, minter, recipient, ...accounts] = await ethers.getSigners() + ;({ udt } = await deployContracts()) }) describe('Supply', () => { it('Starting supply is 0', async () => { - const totalSupply = new BigNumber(await unlockDiscountToken.totalSupply()) + const totalSupply = await udt.totalSupply() assert(totalSupply.eq(0), 'starting supply must be 0') }) describe('Minting tokens', () => { const mintAmount = 1000 - const recipient = accounts[1] let balanceBefore let totalSupplyBefore before(async () => { - balanceBefore = new BigNumber( - await unlockDiscountToken.balanceOf(recipient) - ) - totalSupplyBefore = new BigNumber( - await unlockDiscountToken.totalSupply() - ) - await unlockDiscountToken.mint(recipient, mintAmount, { - from: minter, - }) + balanceBefore = await udt.balanceOf(recipient.address) + totalSupplyBefore = await udt.totalSupply() + await udt.connect(minter).mint(recipient.address, mintAmount) }) it('Balance went up', async () => { - const balanceAfter = new BigNumber( - await unlockDiscountToken.balanceOf(recipient) - ) + const balanceAfter = await udt.balanceOf(recipient.address) assert.equal( - balanceAfter.toFixed(), - balanceBefore.plus(mintAmount).toFixed(), + balanceAfter.toNumber(), + balanceBefore.add(mintAmount).toNumber(), 'Balance must increase by amount minted' ) }) it('Total supply went up', async () => { - const totalSupplyAfter = new BigNumber( - await unlockDiscountToken.totalSupply() - ) + const totalSupplyAfter = await udt.totalSupply() assert.equal( - totalSupplyAfter.toFixed(), - totalSupplyBefore.plus(mintAmount).toFixed(), + totalSupplyAfter.toNumber(), + totalSupplyBefore.add(mintAmount).toNumber(), 'Total supply must increase by amount minted' ) }) @@ -73,71 +55,55 @@ contract('UnlockDiscountToken', (accounts) => { before(async () => { for (let i = 0; i < 3; i++) { - await unlockDiscountToken.mint(accounts[i], mintAmount, { - from: minter, - }) + await udt.connect(minter).mint(accounts[i].address, mintAmount) } }) describe('transfer', async () => { - const transferAmount = new BigNumber(123) + const transferAmount = 123 let balanceBefore0 let balanceBefore1 before(async () => { - balanceBefore0 = new BigNumber( - await unlockDiscountToken.balanceOf(accounts[0]) - ) - balanceBefore1 = new BigNumber( - await unlockDiscountToken.balanceOf(accounts[1]) - ) + balanceBefore0 = await udt.balanceOf(accounts[0].address) + balanceBefore1 = await udt.balanceOf(accounts[1].address) }) it('normal transfer', async () => { - await unlockDiscountToken.transfer(accounts[1], transferAmount, { - from: accounts[0], - }) - const balanceAfter0 = new BigNumber( - await unlockDiscountToken.balanceOf(accounts[0]) - ) - const balanceAfter1 = new BigNumber( - await unlockDiscountToken.balanceOf(accounts[1]) - ) + await udt + .connect(accounts[0]) + .transfer(accounts[1].address, transferAmount) + const balanceAfter0 = await udt.balanceOf(accounts[0].address) + const balanceAfter1 = await udt.balanceOf(accounts[1].address) assert( - balanceBefore0.minus(transferAmount).eq(balanceAfter0), + balanceBefore0.sub(transferAmount).eq(balanceAfter0), 'Sender balance must have gone down by amount sent' ) assert( - balanceBefore1.plus(transferAmount).eq(balanceAfter1), - 'Recipient balance must have gone down by amount sent' + balanceBefore1.add(transferAmount).eq(balanceAfter1), + 'Recipient balance must have gone up by amount sent' ) }) }) }) describe('Minters', () => { - const newMinter = accounts[2] + let newMinter before(async () => { - await unlockDiscountToken.addMinter(newMinter, { from: minter }) + newMinter = accounts[5] + await udt.connect(minter).addMinter(newMinter.address) }) it('newMinter can mint', async () => { - await unlockDiscountToken.mint(accounts[0], 1, { - from: newMinter, - }) + await udt.connect(newMinter).mint(accounts[0].address, 1) }) describe('Renounce minter', () => { - before(async () => { - await unlockDiscountToken.renounceMinter({ from: newMinter }) - }) - it('newMinter cannot mint anymore', async () => { + await udt.connect(newMinter).renounceMinter() await reverts( - unlockDiscountToken.mint(accounts[0], 1, { - from: newMinter, - }), + udt.connect(newMinter).mint(accounts[0].address, 1), 'MinterRole: caller does not have the Minter role' ) }) diff --git a/smart-contracts/test/UnlockDiscountToken/governance.js b/smart-contracts/test/UnlockDiscountToken/governance.js index 32458d15f57..6f457c50b34 100644 --- a/smart-contracts/test/UnlockDiscountToken/governance.js +++ b/smart-contracts/test/UnlockDiscountToken/governance.js @@ -1,6 +1,7 @@ // tests adapted/imported from https://github.com/OpenZeppelin/openzeppelin-contracts/blob/7e41bf2259950c33e55604015875b7780b6a2e63/test/token/ERC20/extensions/ERC20VotesComp.test.js const { ethers } = require('hardhat') -const { expectRevert, time } = require('@openzeppelin/test-helpers') +const { assert } = require('chai') +const { advanceBlock, reverts } = require('../helpers') const { ADDRESS_ZERO, @@ -8,6 +9,7 @@ const { notExpectEvent, compareBigNumbers, compareBigNumberArrays, + getLatestBlock, } = require('../helpers') const supply = ethers.BigNumber.from('10000000000000000000000000') @@ -45,7 +47,7 @@ describe('UDT ERC20VotesComp extension', () => { }) it('minting restriction', async () => { const amount = ethers.BigNumber.from('2').pow('96') - await expectRevert( + await reverts( udt.mint(minter, amount), 'ERC20Votes: total supply risks overflowing votes' ) @@ -73,7 +75,7 @@ describe('UDT ERC20VotesComp extension', () => { compareBigNumbers(supply, await udt.getCurrentVotes(holder)) compareBigNumbers('0', await udt.getPriorVotes(holder, blockNumber - 1)) - await time.advanceBlock() + await advanceBlock() compareBigNumbers(supply, await udt.getPriorVotes(holder, blockNumber)) }) it('delegation without balance', async () => { @@ -134,7 +136,7 @@ describe('UDT ERC20VotesComp extension', () => { await udt.getPriorVotes(holderDelegatee, blockNumber - 1) ) - await time.advanceBlock() + await advanceBlock() compareBigNumbers('0', await udt.getPriorVotes(holder, blockNumber)) compareBigNumbers( @@ -237,8 +239,8 @@ describe('UDT ERC20VotesComp extension', () => { compareBigNumbers(recipientVotes, await udt.getCurrentVotes(recipient)) // need to advance 2 blocks to see the effect of a transfer on "getPriorVotes" - const blockNumber = (await time.latestBlock()).toString() - await time.advanceBlock() + const blockNumber = (await getLatestBlock()).toString() + await advanceBlock() compareBigNumbers( holderVotes, await udt.getPriorVotes(holder, blockNumber) @@ -298,7 +300,7 @@ describe('UDT ERC20VotesComp extension', () => { '100', ]) - await time.advanceBlock() + await advanceBlock() compareBigNumbers( '100', await udt.getPriorVotes(other1, t1.blockNumber) @@ -317,7 +319,7 @@ describe('UDT ERC20VotesComp extension', () => { describe('getPriorVotes', () => { it('reverts if block number >= current block', async () => { - await expectRevert( + await reverts( udt.getPriorVotes(other1, 5e10), 'ERC20Votes: block not yet mined' ) @@ -330,8 +332,8 @@ describe('UDT ERC20VotesComp extension', () => { it('returns the latest block if >= last checkpoint block', async () => { const t1 = await udt.connect(holderSigner).delegate(other1) const { blockNumber } = await t1.wait() - await time.advanceBlock() - await time.advanceBlock() + await advanceBlock() + await advanceBlock() compareBigNumbers( '10000000000000000000000000', @@ -345,11 +347,11 @@ describe('UDT ERC20VotesComp extension', () => { }) it('returns zero if < first checkpoint block', async () => { - await time.advanceBlock() + await advanceBlock() const t1 = await udt.connect(holderSigner).delegate(other1) const { blockNumber } = await t1.wait() - await time.advanceBlock() - await time.advanceBlock() + await advanceBlock() + await advanceBlock() compareBigNumbers('0', await udt.getPriorVotes(other1, blockNumber - 1)) @@ -361,19 +363,19 @@ describe('UDT ERC20VotesComp extension', () => { it('generally returns the voting balance at the appropriate checkpoint', async () => { const t1 = await udt.connect(holderSigner).delegate(other1) - await time.advanceBlock() - await time.advanceBlock() + await advanceBlock() + await advanceBlock() const t2 = await udt.connect(holderSigner).transfer(other2, 10) - await time.advanceBlock() - await time.advanceBlock() + await advanceBlock() + await advanceBlock() const t3 = await udt.connect(holderSigner).transfer(other2, 10) - await time.advanceBlock() - await time.advanceBlock() + await advanceBlock() + await advanceBlock() const t4 = await udt .connect(await ethers.getSigner(other2)) .transfer(holder, 20) - await time.advanceBlock() - await time.advanceBlock() + await advanceBlock() + await advanceBlock() compareBigNumbers( '0', @@ -421,7 +423,7 @@ describe('UDT ERC20VotesComp extension', () => { }) it('reverts if block number >= current block', async () => { - await expectRevert( + await reverts( udt.getPastTotalSupply(5e10), 'ERC20Votes: block not yet mined' ) @@ -434,8 +436,8 @@ describe('UDT ERC20VotesComp extension', () => { it('returns the latest block if >= last checkpoint block', async () => { const t1 = await udt.mint(holder, supply) - await time.advanceBlock() - await time.advanceBlock() + await advanceBlock() + await advanceBlock() compareBigNumbers(supply, await udt.getPastTotalSupply(t1.blockNumber)) @@ -446,10 +448,10 @@ describe('UDT ERC20VotesComp extension', () => { }) it('returns zero if < first checkpoint block', async () => { - await time.advanceBlock() + await advanceBlock() const t1 = await udt.mint(holder, supply) - await time.advanceBlock() - await time.advanceBlock() + await advanceBlock() + await advanceBlock() compareBigNumbers('0', await udt.getPastTotalSupply(t1.blockNumber - 1)) @@ -461,17 +463,17 @@ describe('UDT ERC20VotesComp extension', () => { it('generally returns the voting balance at the appropriate checkpoint', async () => { const t1 = await udt.mint(holder, supply) - await time.advanceBlock() - await time.advanceBlock() + await advanceBlock() + await advanceBlock() const t2 = await udt.mint(holder, 10) - await time.advanceBlock() - await time.advanceBlock() + await advanceBlock() + await advanceBlock() const t3 = await udt.mint(holder, 10) - await time.advanceBlock() - await time.advanceBlock() + await advanceBlock() + await advanceBlock() const t4 = await udt.mint(holder, 20) - await time.advanceBlock() - await time.advanceBlock() + await advanceBlock() + await advanceBlock() compareBigNumbers('0', await udt.getPastTotalSupply(t1.blockNumber - 1)) diff --git a/smart-contracts/test/UnlockDiscountToken/governor.js b/smart-contracts/test/UnlockDiscountToken/governor.js index f8f751d3a37..0b4004b042f 100644 --- a/smart-contracts/test/UnlockDiscountToken/governor.js +++ b/smart-contracts/test/UnlockDiscountToken/governor.js @@ -1,15 +1,19 @@ -const { time } = require('@openzeppelin/test-helpers') - -const { reverts } = require('../helpers/errors') const { ethers, upgrades, network } = require('hardhat') -const { ADDRESS_ZERO } = require('../helpers') +const { assert } = require('chai') +const { + ADDRESS_ZERO, + getLatestBlock, + advanceBlock, + advanceBlockTo, + reverts, +} = require('../helpers') const deployContracts = require('../fixtures/deploy') const PROPOSER_ROLE = ethers.utils.keccak256( ethers.utils.toUtf8Bytes('PROPOSER_ROLE') ) -contract('UnlockProtocolGovernor', () => { +describe('UnlockProtocolGovernor', () => { let gov let udt let updateTx @@ -32,7 +36,7 @@ contract('UnlockProtocolGovernor', () => { // wait for a block (default voting delay) const currentBlock = await ethers.provider.getBlockNumber() - await time.advanceBlockTo(currentBlock + 2) + await advanceBlockTo(currentBlock + 2) // now ready to receive votes assert.equal(await gov.state(proposalId), 1) // Active @@ -43,7 +47,7 @@ contract('UnlockProtocolGovernor', () => { // wait until voting delay is over const deadline = await gov.proposalDeadline(proposalId) - await time.advanceBlockTo(deadline.toNumber() + 1) + await advanceBlockTo(deadline.toNumber() + 1) assert.equal(await gov.state(proposalId), 4) // Succeeded @@ -165,11 +169,11 @@ contract('UnlockProtocolGovernor', () => { await launchVotingProcess(voter, proposal) - const lastBlock = await time.latestBlock() - await time.advanceBlock() + const lastBlock = await getLatestBlock() + await advanceBlock() // make sure quorum has been changed succesfully - const changed = await gov.quorum(await lastBlock.toNumber()) + const changed = await gov.quorum(lastBlock) assert.equal(changed.eq(quorum), true) // make sure event has been fired diff --git a/smart-contracts/test/UnlockDiscountToken/grantTokens.js b/smart-contracts/test/UnlockDiscountToken/grantTokens.js index 6ba9008f32f..18519a1bced 100644 --- a/smart-contracts/test/UnlockDiscountToken/grantTokens.js +++ b/smart-contracts/test/UnlockDiscountToken/grantTokens.js @@ -1,18 +1,19 @@ +// TODO: cleanup this test // ignoring that rule is needed when using the `describeOrskip` workaround -const BigNumber = require('bignumber.js') -const { time } = require('@openzeppelin/test-helpers') +const { assert } = require('chai') const { ethers, network } = require('hardhat') const { deployContracts, deployLock, ADDRESS_ZERO, createUniswapV2Exchange, + compareBigNumbers, + increaseTime, } = require('../helpers') -const UnlockDiscountToken = artifacts.require('UnlockDiscountTokenV3.sol') - let unlock, udt, lock, oracle, weth +let protocolOwner, minter, referrer, keyBuyer // skip on coverage until solidity-coverage supports EIP-1559 const describeOrSkip = process.env.IS_COVERAGE ? describe.skip : describe @@ -26,21 +27,26 @@ const scenarios = [ 137, // polygon ] -contract('UnlockDiscountToken (l2/sidechain) / granting Tokens', (accounts) => { - const [protocolOwner, minter, referrer, keyBuyer] = accounts +const mintAmount = ethers.utils.parseUnits('1000000', 'ether') + +const round = (bn) => { + const [integral, decimals] = bn.split('.') + const remainer = Math.round(`0.${decimals.slice(0, 4)}`).toString() + return ethers.BigNumber.from(integral).add(remainer) +} + +describe('UnlockDiscountToken (l2/sidechain) / granting Tokens', () => { let rate - before(async () => { + before(async function () { + ;[protocolOwner, minter, referrer, keyBuyer] = await ethers.getSigners() ;({ unlock, udt } = await deployContracts()) - // parse for truffle - udt = await UnlockDiscountToken.at(udt.address) - lock = await deployLock({ unlock }) // Deploy the exchange ;({ oracle, weth } = await createUniswapV2Exchange({ - protocolOwner: await ethers.getSigner(protocolOwner), - minter: await ethers.getSigner(minter), + protocolOwner, + minter, udtAddress: udt.address, })) @@ -51,23 +57,26 @@ contract('UnlockDiscountToken (l2/sidechain) / granting Tokens', (accounts) => { estimateGas, await unlock.globalTokenSymbol(), await unlock.globalBaseTokenURI(), - 1, - { from: protocolOwner } + 1 ) - await unlock.setOracle(udt.address, oracle.address, { - from: protocolOwner, - }) + await unlock.setOracle(udt.address, oracle.address) // Advance time so 1 full period has past and then update again so we have data point to read - await time.increase(time.duration.hours(30)) + await increaseTime(30) await oracle.update(weth.address, udt.address) // Purchase a valid key for the referrer - await lock.purchase([], [referrer], [ADDRESS_ZERO], [ADDRESS_ZERO], [[]], { - from: referrer, - value: await lock.keyPrice(), - }) + await lock.purchase( + [], + [referrer.address], + [ADDRESS_ZERO], + [ADDRESS_ZERO], + [[]], + { + value: await lock.keyPrice(), + } + ) rate = await oracle.consult( udt.address, @@ -76,13 +85,7 @@ contract('UnlockDiscountToken (l2/sidechain) / granting Tokens', (accounts) => { ) // Mint another 1000000 - await udt.mint( - unlock.address, - ethers.utils.parseUnits('1000000', 'ether'), - { - from: minter, - } - ) + await udt.connect(minter).mint(unlock.address, mintAmount) }) it('exchange rate is > 0', async () => { @@ -92,24 +95,16 @@ contract('UnlockDiscountToken (l2/sidechain) / granting Tokens', (accounts) => { }) it('referrer has 0 UDT to start', async () => { - const actual = await udt.balanceOf(referrer) - assert.equal(actual.toString(), 0) + const actual = await udt.balanceOf(referrer.address) + compareBigNumbers(actual, '0') }) it('owner starts with 0 UDT', async () => { - assert.equal( - new BigNumber(await udt.balanceOf(await unlock.owner())).toFixed(), - '0' - ) + compareBigNumbers(await udt.balanceOf(await unlock.owner()), '0') }) it('unlock has some 0 UDT', async () => { - assert.equal( - new BigNumber(await udt.balanceOf(await unlock.address)) - .shiftedBy(-18) - .toFixed(5), - '1000000.00000' - ) + compareBigNumbers(await udt.balanceOf(await unlock.address), mintAmount) }) scenarios.forEach((chainId) => { @@ -123,60 +118,51 @@ contract('UnlockDiscountToken (l2/sidechain) / granting Tokens', (accounts) => { estimateGas, await unlock.globalTokenSymbol(), await unlock.globalBaseTokenURI(), - chainId, - { from: protocolOwner } + chainId ) }) - describe('grant by gas price', () => { + describeOrSkip('grant by gas price', () => { let gasSpent before(async () => { // Let's set GDP to be very low (1 wei) so that we know that growth of supply is cap by gas - await unlock.resetTrackedValue( - ethers.utils.parseUnits('1', 'wei'), - 0, - { - from: protocolOwner, - } - ) - - const balanceReferrerBefore = await udt.balanceOf(referrer) - const { blockNumber } = await lock.purchase( - [], - [keyBuyer], - [referrer], - [ADDRESS_ZERO], - [[]], - { - from: keyBuyer, - value: await lock.keyPrice(), - } - ) + await unlock.resetTrackedValue(ethers.utils.parseUnits('1', 'wei'), 0) + + const balanceReferrerBefore = await udt.balanceOf(referrer.address) + const { blockNumber } = await lock + .connect(keyBuyer) + .purchase( + [], + [keyBuyer.address], + [referrer.address], + [ADDRESS_ZERO], + [[]], + { + value: await lock.keyPrice(), + } + ) const { baseFeePerGas } = await ethers.provider.getBlock(blockNumber) + // using estimatedGas instead of the actual gas used so this test does // not regress as other features are implemented - gasSpent = new BigNumber(baseFeePerGas.toString()).times(estimateGas) + gasSpent = baseFeePerGas.mul(estimateGas) - balanceReferrer = new BigNumber(await udt.balanceOf(referrer)).minus( + balanceReferrer = (await udt.balanceOf(referrer.address)).sub( balanceReferrerBefore ) }) it('referrer has received some UDT now', async () => { - assert.notEqual(balanceReferrer.toString(), 0) + assert.notEqual(balanceReferrer.toString(), '0') }) it('amount granted for referrer ~= gas spent', async () => { // 120 UDT granted * 0.000042 ETH/UDT == 0.005 ETH spent - assert.equal( - balanceReferrer - .shiftedBy(-18) // shift UDT balance - .times(rate.toString()) - .shiftedBy(-18) // shift the rate - .toFixed(3), - gasSpent.shiftedBy(-18).toFixed(3) + compareBigNumbers( + gasSpent, + round(ethers.utils.formatEther(balanceReferrer.mul(rate))) ) }) }) @@ -193,10 +179,7 @@ contract('UnlockDiscountToken (l2/sidechain) / granting Tokens', (accounts) => { // user earns 10UDT or await unlock.resetTrackedValue( ethers.utils.parseUnits('500', 'ether'), - 0, - { - from: protocolOwner, - } + 0 ) const baseFeePerGas = 1000000000 // in gwei @@ -204,23 +187,24 @@ contract('UnlockDiscountToken (l2/sidechain) / granting Tokens', (accounts) => { ethers.BigNumber.from(baseFeePerGas).toHexString(16), ]) - const balanceReferrerBefore = await udt.balanceOf(referrer) - await lock.purchase( - [], - [keyBuyer], - [referrer], - [ADDRESS_ZERO], - [[]], - { - from: keyBuyer, - value: await lock.keyPrice(), - gasPrice: ethers.BigNumber.from(baseFeePerGas) - .mul(2) - .toHexString(16), - } - ) - - balanceReferrer = new BigNumber(await udt.balanceOf(referrer)).minus( + const balanceReferrerBefore = await udt.balanceOf(referrer.address) + await lock + .connect(keyBuyer) + .purchase( + [], + [keyBuyer.address], + [referrer.address], + [ADDRESS_ZERO], + [[]], + { + value: await lock.keyPrice(), + gasPrice: ethers.BigNumber.from(baseFeePerGas) + .mul(2) + .toHexString(16), + } + ) + + balanceReferrer = (await udt.balanceOf(referrer.address)).sub( balanceReferrerBefore ) }) @@ -230,7 +214,10 @@ contract('UnlockDiscountToken (l2/sidechain) / granting Tokens', (accounts) => { }) it('amount granted for referrer ~= 10 UDT', async () => { - assert.equal(balanceReferrer.shiftedBy(-18).toFixed(0), '10') + assert.equal( + Math.round(ethers.utils.formatEther(balanceReferrer)), + '10' + ) }) }) }) diff --git a/smart-contracts/test/UnlockDiscountToken/upgrades.js b/smart-contracts/test/UnlockDiscountToken/upgrades.js index 65dccc1517f..4cdeefd3672 100644 --- a/smart-contracts/test/UnlockDiscountToken/upgrades.js +++ b/smart-contracts/test/UnlockDiscountToken/upgrades.js @@ -1,10 +1,10 @@ +const { assert } = require('chai') const BigNumber = require('bignumber.js') const path = require('path') const fs = require('fs-extra') -const { time } = require('@openzeppelin/test-helpers') const { ethers, upgrades, network, run } = require('hardhat') const { ADDRESS_ZERO } = require('../helpers') -const { createUniswapV2Exchange } = require('../helpers') +const { createUniswapV2Exchange, increaseTime } = require('../helpers') const deployContracts = require('../fixtures/deploy') const { @@ -51,7 +51,7 @@ const upgradeContract = async (contractAddress) => { return updated } -contract('UnlockDiscountToken upgrade', async () => { +describe('UnlockDiscountToken upgrade', async () => { let udt const mintAmount = 1000 @@ -151,7 +151,7 @@ contract('UnlockDiscountToken upgrade', async () => { ;[deployer, lockOwner, keyBuyer, referrer, referrer2] = await ethers.getSigners() - const { unlockEthers: unlockDeployed } = await deployContracts() + const { unlock: unlockDeployed } = await deployContracts() unlock = unlockDeployed // Grant Unlock minting permissions @@ -200,7 +200,7 @@ contract('UnlockDiscountToken upgrade', async () => { await unlock.setOracle(udt.address, oracle.address) // Advance time so 1 full period has past and then update again so we have data point to read - await time.increase(time.duration.hours(30)) + await increaseTime(30) await oracle.update(weth.address, udt.address) // Purchase a valid key for the referrers diff --git a/smart-contracts/test/UnlockDiscountToken/upgrades.mainnet.js b/smart-contracts/test/UnlockDiscountToken/upgrades.mainnet.js index be897a86efc..9ad8180cf8f 100644 --- a/smart-contracts/test/UnlockDiscountToken/upgrades.mainnet.js +++ b/smart-contracts/test/UnlockDiscountToken/upgrades.mainnet.js @@ -1,6 +1,5 @@ -const { reverts, ADDRESS_ZERO } = require('../helpers') +const { reverts, ADDRESS_ZERO, advanceBlock } = require('../helpers') const { config, ethers, assert, network, upgrades } = require('hardhat') -const { time } = require('@openzeppelin/test-helpers') const multisigABI = require('@unlock-protocol/hardhat-helpers/dist/ABIs/multisig.json') const proxyABI = require('@unlock-protocol/hardhat-helpers/dist/ABIs/proxy.json') @@ -83,7 +82,7 @@ const upgradeContract = async () => { return UnlockDiscountTokenV3.attach(UDTProxyContractAddress) } -contract('UnlockDiscountToken (on mainnet)', async () => { +describe('UnlockDiscountToken (on mainnet)', async () => { let udt let deployer @@ -524,7 +523,7 @@ contract('UnlockDiscountToken (on mainnet)', async () => { assert( (await udt.getPriorVotes(recipient.address, blockNumber - 1)).eq(0) ) - await time.advanceBlock() + await advanceBlock() assert( supply.eq(await udt.getPriorVotes(recipient.address, blockNumber)) ) diff --git a/smart-contracts/test/UnlockSwapPurchaser/swapAndCall.mainnet.js b/smart-contracts/test/UnlockSwapPurchaser/swapAndCall.mainnet.js index d8679bceb93..aed2ec4f29a 100644 --- a/smart-contracts/test/UnlockSwapPurchaser/swapAndCall.mainnet.js +++ b/smart-contracts/test/UnlockSwapPurchaser/swapAndCall.mainnet.js @@ -1,3 +1,4 @@ +const { assert } = require('chai') const { ethers } = require('hardhat') const { expect } = require('chai') const { deployLock, purchaseKey, getUnlock, reverts } = require('../helpers') diff --git a/smart-contracts/test/UnlockSwapPurchaser/withdraw.js b/smart-contracts/test/UnlockSwapPurchaser/withdraw.js index 7a4109a8b52..ecc3aee56e1 100644 --- a/smart-contracts/test/UnlockSwapPurchaser/withdraw.js +++ b/smart-contracts/test/UnlockSwapPurchaser/withdraw.js @@ -21,12 +21,12 @@ let swapper, swapperBalanceBefore const { assert } = require('chai') -contract('UnlockSwapPurchaser / withdraw', () => { +describe('UnlockSwapPurchaser / withdraw', () => { scenarios.forEach((isErc20) => { describe(`Test ${isErc20 ? 'ERC20' : 'ETH'}`, () => { before(async () => { ;[owner] = await ethers.getSigners() - ;({ unlockEthers: unlock } = await deployContracts()) + ;({ unlock } = await deployContracts()) const UnlockSwapPurchaser = await ethers.getContractFactory( 'UnlockSwapPurchaser' diff --git a/smart-contracts/test/fixtures/deploy.js b/smart-contracts/test/fixtures/deploy.js index 9a55590f55c..1c4be99e0fd 100644 --- a/smart-contracts/test/fixtures/deploy.js +++ b/smart-contracts/test/fixtures/deploy.js @@ -1,8 +1,6 @@ -const { ethers, upgrades, artifacts } = require('hardhat') +const { ethers, upgrades } = require('hardhat') const { copySync } = require('fs-extra') -const UnlockTruffle = artifacts.require('Unlock') - module.exports = async () => { // when running a mainnet fork if (process.env.RUN_FORK) { @@ -42,8 +40,7 @@ module.exports = async () => { await udt.deployed() return { - unlock: await UnlockTruffle.at(unlock.address), - unlockEthers: unlock, + unlock, publicLock, udt, } diff --git a/smart-contracts/test/helpers/balance.js b/smart-contracts/test/helpers/balance.js index 1fa3700111c..8a2d2a0f830 100644 --- a/smart-contracts/test/helpers/balance.js +++ b/smart-contracts/test/helpers/balance.js @@ -1,14 +1,22 @@ -const BigNumber = require('bignumber.js') -const { - getBalance: getBalanceEthers, -} = require('@unlock-protocol/hardhat-helpers') +const { ethers } = require('hardhat') +const { ADDRESS_ZERO } = require('./constants') async function getBalance(account, tokenAddress) { - const balance = await getBalanceEthers(account, tokenAddress) - return new BigNumber(balance.toString()) + let balance + // ETH balance + if (!tokenAddress || tokenAddress === ADDRESS_ZERO) { + balance = await ethers.provider.getBalance(account) + } else { + // erc20 balance + const token = await ethers.getContractAt( + '@openzeppelin/contracts/token/ERC20/IERC20.sol:IERC20', + tokenAddress + ) + balance = await token.balanceOf(account) + } + return balance } module.exports = { getBalance, - getBalanceEthers, } diff --git a/smart-contracts/test/helpers/bigNumber.js b/smart-contracts/test/helpers/bigNumber.js index ee9468fd986..9badad3e2e2 100644 --- a/smart-contracts/test/helpers/bigNumber.js +++ b/smart-contracts/test/helpers/bigNumber.js @@ -1,14 +1,15 @@ const { BigNumber } = require('ethers') +const { assert } = require('chai') function isBigNumber(object) { return object instanceof BigNumber } function compareBigNumbers(bn1, bn2) { - // console.log(bn1, bn2) assert.equal( typeof bn1 === 'string' ? bn1 : bn1.toString(), - typeof bn2 === 'string' ? bn2 : bn2.toString() + typeof bn2 === 'string' ? bn2 : bn2.toString(), + `${bn1.toString()} does not match ${bn2.toString()}` ) } diff --git a/smart-contracts/test/helpers/deployLocks.js b/smart-contracts/test/helpers/deployLocks.js index ad464af5550..3aa36bc2b1c 100755 --- a/smart-contracts/test/helpers/deployLocks.js +++ b/smart-contracts/test/helpers/deployLocks.js @@ -1,5 +1,4 @@ const { ethers } = require('hardhat') -const PublicLock = artifacts.require('contracts/PublicLock.sol:PublicLock') const deployContracts = require('../fixtures/deploy') const { ADDRESS_ZERO, @@ -14,14 +13,16 @@ async function deployLock({ tokenAddress = ADDRESS_ZERO, name = 'FIRST', keyPrice, - isEthers, } = {}) { if (!unlock) { ;({ unlock } = await deployContracts()) } + + // parse deployer as ethers signer if (!deployer) { - const [defaultDeployer] = await ethers.getSigners() - deployer = defaultDeployer.address + ;[deployer] = await ethers.getSigners() + } else if (typeof deployer === 'string') { + deployer = await ethers.getSigner(deployer) } const { @@ -43,53 +44,31 @@ async function deployLock({ lockName, ] - const calldata = await createLockCalldata({ args, from: deployer }) + const calldata = await createLockCalldata({ args, from: deployer.address }) - // support passing unlock as either truffle or ethersjs contract instance + // attach Lock contract abi from newly created lock in Unlock event const tx = await unlock.createUpgradeableLock(calldata) - let evt - if (unlock.constructor.name === 'TruffleContract') { - evt = tx.logs.find((v) => v.event === 'NewLock') - } else { - const { events } = await tx.wait() - evt = events.find((v) => v.event === 'NewLock') - } - const { newLockAddress } = evt.args - const lock = await PublicLock.at(newLockAddress) + const { events } = await tx.wait() + const { + args: { newLockAddress }, + } = events.find((v) => v.event === 'NewLock') + + const lock = await ethers.getContractAt( + 'contracts/PublicLock.sol:PublicLock', + newLockAddress + ) if (maxKeysPerAddress) { - await lock.updateLockConfig( + await lock.connect(deployer).updateLockConfig( expirationDuration, maxNumberOfKeys, - 10, // default maxKeysPerAddress to 10 for tests - { from: deployer } + 10 // default maxKeysPerAddress to 10 for tests ) } - return isEthers - ? await ethers.getContractAt( - 'contracts/PublicLock.sol:PublicLock', - lock.address - ) - : lock -} - -async function deployAllLocks(unlock, from, tokenAddress = ADDRESS_ZERO) { - const locks = await Promise.all( - Object.keys(Locks).map((name) => - deployLock(unlock, from, tokenAddress, Locks[name]) - ) - ) - return locks.reduce( - (acc, d, i) => ({ - ...acc, - [Object.keys(Locks)[i]]: locks[i], - }), - {} - ) + return lock } module.exports = { deployLock, - deployAllLocks, } diff --git a/smart-contracts/test/helpers/errors.js b/smart-contracts/test/helpers/errors.js index 2a5491e17c1..12cfe291002 100644 --- a/smart-contracts/test/helpers/errors.js +++ b/smart-contracts/test/helpers/errors.js @@ -1,7 +1,23 @@ -const { expectRevert } = require('@openzeppelin/test-helpers') +const { assert } = require('chai') -const reverts = (call, msg) => - msg ? expectRevert(call, msg) : expectRevert.unspecified(call) +const reverts = async (call, msg) => { + let hasReverted = false + try { + await call + } catch (error) { + hasReverted = true + const actualError = error.message.replace( + /Returned error: VM Exception while processing transaction: (revert )?/, + '' + ) + if (msg) { + assert.include(actualError, msg, `Wrong Error received: ${error.message}`) + } + } + if (!hasReverted) { + assert.fail('Expected an exception but none was received') + } +} module.exports = { reverts, diff --git a/smart-contracts/test/helpers/events.js b/smart-contracts/test/helpers/events.js index 722199d9330..3226c505938 100644 --- a/smart-contracts/test/helpers/events.js +++ b/smart-contracts/test/helpers/events.js @@ -1,3 +1,4 @@ +const { assert } = require('chai') const { isBigNumber } = require('./bigNumber') function notExpectEvent(events, eventName) { diff --git a/smart-contracts/test/helpers/getTokenBalance.js b/smart-contracts/test/helpers/getTokenBalance.js deleted file mode 100644 index 8487fb85a5d..00000000000 --- a/smart-contracts/test/helpers/getTokenBalance.js +++ /dev/null @@ -1,29 +0,0 @@ -const { ethers } = require('hardhat') -const BigNumber = require('bignumber.js') -const { ADDRESS_ZERO } = require('./constants') - -async function getBalance(account, tokenAddress) { - const balance = await getBalanceEthers(account, tokenAddress) - return new BigNumber(balance.toString()) -} - -async function getBalanceEthers(account, tokenAddress) { - let balance - // ETH balance - if (!tokenAddress || tokenAddress === ADDRESS_ZERO) { - balance = await ethers.provider.getBalance(account) - } else { - // erc20 balance - const token = await ethers.getContractAt( - '@openzeppelin/contracts/token/ERC20/IERC20.sol:IERC20', - tokenAddress - ) - balance = await token.balanceOf(account) - } - return balance -} - -module.exports = { - getBalance, - getBalanceEthers, -} diff --git a/smart-contracts/test/helpers/time.js b/smart-contracts/test/helpers/time.js index e7a4d05a939..892965820c4 100644 --- a/smart-contracts/test/helpers/time.js +++ b/smart-contracts/test/helpers/time.js @@ -1,23 +1,33 @@ +const helpers = require('@nomicfoundation/hardhat-network-helpers') const { network, ethers } = require('hardhat') -async function increaseTimeTo(expirationTs) { - expirationTs = - typeof expirationTs === 'number' - ? expirationTs - : expirationTs === 'string' - ? parseInt(expirationTs) - : expirationTs.toNumber() - +async function increaseTime(durationInHours) { const { timestamp } = await ethers.provider.getBlock('latest') + await network.provider.send('evm_increaseTime', [ + ethers.BigNumber.from(durationInHours).mul(3600).add(timestamp).toNumber(), + ]) +} + +async function advanceBlock() { + await helpers.mine(1) +} + +async function advanceBlockTo(blockNumber) { + await helpers.mineUpTo(blockNumber) +} + +async function getLatestBlock() { + return await helpers.time.latestBlock() +} - if (timestamp > expirationTs) { - throw new Error( - `Cannot increase time (${timestamp}) to the past (${expirationTs})` - ) - } - await network.provider.send('evm_increaseTime', [expirationTs]) +async function increaseTimeTo(newTimestamp) { + await helpers.time.increaseTo(ethers.BigNumber.from(newTimestamp.toString())) } module.exports = { increaseTimeTo, + increaseTime, + advanceBlock, + advanceBlockTo, + getLatestBlock, } diff --git a/smart-contracts/test/helpers/tokens.js b/smart-contracts/test/helpers/tokens.js index d0c785f0145..cfaf7baa6d6 100644 --- a/smart-contracts/test/helpers/tokens.js +++ b/smart-contracts/test/helpers/tokens.js @@ -1,19 +1,13 @@ const { ethers } = require('hardhat') const WethABI = require('@unlock-protocol/hardhat-helpers/dist/ABIs/weth.json') -const TestERC20 = artifacts.require('TestERC20') -const deployERC20 = async (deployer, isEthers = false) => { +const deployERC20 = async (deployer) => { const signer = typeof deployer === 'string' ? await ethers.getSigner(deployer) : deployer const Token = await ethers.getContractFactory('TestERC20', signer) const token = await Token.deploy() await token.deployed() - - if (isEthers) { - return token - } - // return truffle artifact as default - return TestERC20.at(token.address) + return token } const deployWETH = async (deployer) => { diff --git a/smart-contracts/test/helpers/uniswapV2.js b/smart-contracts/test/helpers/uniswapV2.js index e5daad2bd66..76c9fe32d5a 100644 --- a/smart-contracts/test/helpers/uniswapV2.js +++ b/smart-contracts/test/helpers/uniswapV2.js @@ -1,5 +1,5 @@ const { ethers } = require('hardhat') -const { time } = require('@openzeppelin/test-helpers') +const { increaseTime } = require('./time') const UniswapV2Factory = require('@uniswap/v2-core/build/UniswapV2Factory.json') const UniswapV2Router02 = require('@uniswap/v2-periphery/build/UniswapV2Router02.json') @@ -80,7 +80,7 @@ const createUniswapV2Exchange = async ({ ) // Advancing time to avoid an intermittent test fail - await time.increase(time.duration.hours(1)) + await increaseTime(1) // Do a swap so there is some data accumulated await uniswapRouter diff --git a/smart-contracts/test/mainnet/udt.js b/smart-contracts/test/mainnet/udt.js index 5b833c22ad3..4f59d8e151d 100644 --- a/smart-contracts/test/mainnet/udt.js +++ b/smart-contracts/test/mainnet/udt.js @@ -1,6 +1,11 @@ +const { assert } = require('chai') const { ethers } = require('hardhat') -const { reverts, ADDRESS_ZERO, getProxyAddress } = require('../helpers') -const { time } = require('@openzeppelin/test-helpers') +const { + reverts, + ADDRESS_ZERO, + getProxyAddress, + advanceBlock, +} = require('../helpers') const { resetNodeState, @@ -8,7 +13,7 @@ const { MULTISIG_ADDRESS_OWNER, } = require('../helpers') -contract('UnlockDiscountToken on mainnet', async () => { +describe('UnlockDiscountToken on mainnet', async () => { let udt const chainId = 1 // mainnet let unlockAddress @@ -121,7 +126,7 @@ contract('UnlockDiscountToken on mainnet', async () => { describe('pastTotalSupply', async () => { it('corresponds to latest totalSupply', async () => { const blockNumber = await ethers.provider.getBlockNumber() - await time.advanceBlock() + await advanceBlock() const pastTotalSupply = await udt.getPastTotalSupply(blockNumber) const totalSupply = await udt.totalSupply() assert.isTrue(pastTotalSupply.eq(totalSupply)) @@ -131,7 +136,7 @@ contract('UnlockDiscountToken on mainnet', async () => { ethers.utils.parseEther('1000') ) const blockNumber = await ethers.provider.getBlockNumber() - await time.advanceBlock() + await advanceBlock() const pastTotalSupply = await udt.getPastTotalSupply(blockNumber) // mint some tokens @@ -140,7 +145,7 @@ contract('UnlockDiscountToken on mainnet', async () => { const unlock = await ethers.getSigner(unlockAddress) const tx = await udt.connect(unlock).mint(recipient.address, amount) const receipt = await tx.wait() - await time.advanceBlock() + await advanceBlock() const pastTotalSupplyAfter = await udt.getPastTotalSupply( receipt.blockNumber @@ -297,7 +302,7 @@ contract('UnlockDiscountToken on mainnet', async () => { assert( (await udt.getPriorVotes(recipient.address, blockNumber - 1)).eq(0) ) - await time.advanceBlock() + await advanceBlock() assert( supply.eq(await udt.getPriorVotes(recipient.address, blockNumber)) ) diff --git a/tests/package.json b/tests/package.json index 0ff7670dc35..6298724a5a8 100644 --- a/tests/package.json +++ b/tests/package.json @@ -12,8 +12,8 @@ "@apollo/client": "3.6.9", "@ethersproject/abi": "5.7.0", "@ethersproject/providers": "5.7.2", - "@nomicfoundation/hardhat-ethers": "3.0.5", "@nomicfoundation/hardhat-chai-matchers": "2.0.2", + "@nomicfoundation/hardhat-ethers": "3.0.5", "@nomicfoundation/hardhat-network-helpers": "1.0.10", "@nomicfoundation/hardhat-toolbox": "4.0.0", "@nomicfoundation/hardhat-verify": "2.0.4", diff --git a/yarn.lock b/yarn.lock index 0949ddf6e92..5449b82a7ee 100644 --- a/yarn.lock +++ b/yarn.lock @@ -432,7 +432,7 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/client-s3@npm:3.525.0, @aws-sdk/client-s3@npm:^3.0.0": +"@aws-sdk/client-s3@npm:3.525.0": version: 3.525.0 resolution: "@aws-sdk/client-s3@npm:3.525.0" dependencies: @@ -498,6 +498,72 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/client-s3@npm:^3.0.0": + version: 3.485.0 + resolution: "@aws-sdk/client-s3@npm:3.485.0" + dependencies: + "@aws-crypto/sha1-browser": "npm:3.0.0" + "@aws-crypto/sha256-browser": "npm:3.0.0" + "@aws-crypto/sha256-js": "npm:3.0.0" + "@aws-sdk/client-sts": "npm:3.485.0" + "@aws-sdk/core": "npm:3.485.0" + "@aws-sdk/credential-provider-node": "npm:3.485.0" + "@aws-sdk/middleware-bucket-endpoint": "npm:3.485.0" + "@aws-sdk/middleware-expect-continue": "npm:3.485.0" + "@aws-sdk/middleware-flexible-checksums": "npm:3.485.0" + "@aws-sdk/middleware-host-header": "npm:3.485.0" + "@aws-sdk/middleware-location-constraint": "npm:3.485.0" + "@aws-sdk/middleware-logger": "npm:3.485.0" + "@aws-sdk/middleware-recursion-detection": "npm:3.485.0" + "@aws-sdk/middleware-sdk-s3": "npm:3.485.0" + "@aws-sdk/middleware-signing": "npm:3.485.0" + "@aws-sdk/middleware-ssec": "npm:3.485.0" + "@aws-sdk/middleware-user-agent": "npm:3.485.0" + "@aws-sdk/region-config-resolver": "npm:3.485.0" + "@aws-sdk/signature-v4-multi-region": "npm:3.485.0" + "@aws-sdk/types": "npm:3.485.0" + "@aws-sdk/util-endpoints": "npm:3.485.0" + "@aws-sdk/util-user-agent-browser": "npm:3.485.0" + "@aws-sdk/util-user-agent-node": "npm:3.485.0" + "@aws-sdk/xml-builder": "npm:3.485.0" + "@smithy/config-resolver": "npm:^2.0.23" + "@smithy/core": "npm:^1.2.2" + "@smithy/eventstream-serde-browser": "npm:^2.0.16" + "@smithy/eventstream-serde-config-resolver": "npm:^2.0.16" + "@smithy/eventstream-serde-node": "npm:^2.0.16" + "@smithy/fetch-http-handler": "npm:^2.3.2" + "@smithy/hash-blob-browser": "npm:^2.0.17" + "@smithy/hash-node": "npm:^2.0.18" + "@smithy/hash-stream-node": "npm:^2.0.18" + "@smithy/invalid-dependency": "npm:^2.0.16" + "@smithy/md5-js": "npm:^2.0.18" + "@smithy/middleware-content-length": "npm:^2.0.18" + "@smithy/middleware-endpoint": "npm:^2.3.0" + "@smithy/middleware-retry": "npm:^2.0.26" + "@smithy/middleware-serde": "npm:^2.0.16" + "@smithy/middleware-stack": "npm:^2.0.10" + "@smithy/node-config-provider": "npm:^2.1.9" + "@smithy/node-http-handler": "npm:^2.2.2" + "@smithy/protocol-http": "npm:^3.0.12" + "@smithy/smithy-client": "npm:^2.2.1" + "@smithy/types": "npm:^2.8.0" + "@smithy/url-parser": "npm:^2.0.16" + "@smithy/util-base64": "npm:^2.0.1" + "@smithy/util-body-length-browser": "npm:^2.0.1" + "@smithy/util-body-length-node": "npm:^2.1.0" + "@smithy/util-defaults-mode-browser": "npm:^2.0.24" + "@smithy/util-defaults-mode-node": "npm:^2.0.32" + "@smithy/util-endpoints": "npm:^1.0.8" + "@smithy/util-retry": "npm:^2.0.9" + "@smithy/util-stream": "npm:^2.0.24" + "@smithy/util-utf8": "npm:^2.0.2" + "@smithy/util-waiter": "npm:^2.0.16" + fast-xml-parser: "npm:4.2.5" + tslib: "npm:^2.5.0" + checksum: 9ce365c960e11480fa9e3141468815166a6fe123faca480dd23aba0d423684d18ae0a7e479099997a534932f4c636dbb36344f53de5edfb70f2f81eaf2a757e8 + languageName: node + linkType: hard + "@aws-sdk/client-sso-oidc@npm:3.525.0": version: 3.525.0 resolution: "@aws-sdk/client-sso-oidc@npm:3.525.0" @@ -547,6 +613,51 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/client-sso@npm:3.485.0": + version: 3.485.0 + resolution: "@aws-sdk/client-sso@npm:3.485.0" + dependencies: + "@aws-crypto/sha256-browser": "npm:3.0.0" + "@aws-crypto/sha256-js": "npm:3.0.0" + "@aws-sdk/core": "npm:3.485.0" + "@aws-sdk/middleware-host-header": "npm:3.485.0" + "@aws-sdk/middleware-logger": "npm:3.485.0" + "@aws-sdk/middleware-recursion-detection": "npm:3.485.0" + "@aws-sdk/middleware-user-agent": "npm:3.485.0" + "@aws-sdk/region-config-resolver": "npm:3.485.0" + "@aws-sdk/types": "npm:3.485.0" + "@aws-sdk/util-endpoints": "npm:3.485.0" + "@aws-sdk/util-user-agent-browser": "npm:3.485.0" + "@aws-sdk/util-user-agent-node": "npm:3.485.0" + "@smithy/config-resolver": "npm:^2.0.23" + "@smithy/core": "npm:^1.2.2" + "@smithy/fetch-http-handler": "npm:^2.3.2" + "@smithy/hash-node": "npm:^2.0.18" + "@smithy/invalid-dependency": "npm:^2.0.16" + "@smithy/middleware-content-length": "npm:^2.0.18" + "@smithy/middleware-endpoint": "npm:^2.3.0" + "@smithy/middleware-retry": "npm:^2.0.26" + "@smithy/middleware-serde": "npm:^2.0.16" + "@smithy/middleware-stack": "npm:^2.0.10" + "@smithy/node-config-provider": "npm:^2.1.9" + "@smithy/node-http-handler": "npm:^2.2.2" + "@smithy/protocol-http": "npm:^3.0.12" + "@smithy/smithy-client": "npm:^2.2.1" + "@smithy/types": "npm:^2.8.0" + "@smithy/url-parser": "npm:^2.0.16" + "@smithy/util-base64": "npm:^2.0.1" + "@smithy/util-body-length-browser": "npm:^2.0.1" + "@smithy/util-body-length-node": "npm:^2.1.0" + "@smithy/util-defaults-mode-browser": "npm:^2.0.24" + "@smithy/util-defaults-mode-node": "npm:^2.0.32" + "@smithy/util-endpoints": "npm:^1.0.8" + "@smithy/util-retry": "npm:^2.0.9" + "@smithy/util-utf8": "npm:^2.0.2" + tslib: "npm:^2.5.0" + checksum: 635de0e310c3608bd94d90766ac36b56663ae39df0164122236f5d4e5a3447ba7dd2f66d7f3481380e74f1d508053d218bd0c2872df679f11225dc46f52dba11 + languageName: node + linkType: hard + "@aws-sdk/client-sso@npm:3.525.0": version: 3.525.0 resolution: "@aws-sdk/client-sso@npm:3.525.0" @@ -593,6 +704,54 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/client-sts@npm:3.485.0": + version: 3.485.0 + resolution: "@aws-sdk/client-sts@npm:3.485.0" + dependencies: + "@aws-crypto/sha256-browser": "npm:3.0.0" + "@aws-crypto/sha256-js": "npm:3.0.0" + "@aws-sdk/core": "npm:3.485.0" + "@aws-sdk/credential-provider-node": "npm:3.485.0" + "@aws-sdk/middleware-host-header": "npm:3.485.0" + "@aws-sdk/middleware-logger": "npm:3.485.0" + "@aws-sdk/middleware-recursion-detection": "npm:3.485.0" + "@aws-sdk/middleware-user-agent": "npm:3.485.0" + "@aws-sdk/region-config-resolver": "npm:3.485.0" + "@aws-sdk/types": "npm:3.485.0" + "@aws-sdk/util-endpoints": "npm:3.485.0" + "@aws-sdk/util-user-agent-browser": "npm:3.485.0" + "@aws-sdk/util-user-agent-node": "npm:3.485.0" + "@smithy/config-resolver": "npm:^2.0.23" + "@smithy/core": "npm:^1.2.2" + "@smithy/fetch-http-handler": "npm:^2.3.2" + "@smithy/hash-node": "npm:^2.0.18" + "@smithy/invalid-dependency": "npm:^2.0.16" + "@smithy/middleware-content-length": "npm:^2.0.18" + "@smithy/middleware-endpoint": "npm:^2.3.0" + "@smithy/middleware-retry": "npm:^2.0.26" + "@smithy/middleware-serde": "npm:^2.0.16" + "@smithy/middleware-stack": "npm:^2.0.10" + "@smithy/node-config-provider": "npm:^2.1.9" + "@smithy/node-http-handler": "npm:^2.2.2" + "@smithy/protocol-http": "npm:^3.0.12" + "@smithy/smithy-client": "npm:^2.2.1" + "@smithy/types": "npm:^2.8.0" + "@smithy/url-parser": "npm:^2.0.16" + "@smithy/util-base64": "npm:^2.0.1" + "@smithy/util-body-length-browser": "npm:^2.0.1" + "@smithy/util-body-length-node": "npm:^2.1.0" + "@smithy/util-defaults-mode-browser": "npm:^2.0.24" + "@smithy/util-defaults-mode-node": "npm:^2.0.32" + "@smithy/util-endpoints": "npm:^1.0.8" + "@smithy/util-middleware": "npm:^2.0.9" + "@smithy/util-retry": "npm:^2.0.9" + "@smithy/util-utf8": "npm:^2.0.2" + fast-xml-parser: "npm:4.2.5" + tslib: "npm:^2.5.0" + checksum: 98c7f4d7223cd32a1e8ded3f4d8f2fdb228c3a717a42859fbbf8afbadec56826f1e41a33d126ef2855e1e7b6d411abf25d83cd6baf9afcd65b682436570e81bd + languageName: node + linkType: hard + "@aws-sdk/client-sts@npm:3.525.0": version: 3.525.0 resolution: "@aws-sdk/client-sts@npm:3.525.0" @@ -642,6 +801,20 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/core@npm:3.485.0": + version: 3.485.0 + resolution: "@aws-sdk/core@npm:3.485.0" + dependencies: + "@smithy/core": "npm:^1.2.2" + "@smithy/protocol-http": "npm:^3.0.12" + "@smithy/signature-v4": "npm:^2.0.0" + "@smithy/smithy-client": "npm:^2.2.1" + "@smithy/types": "npm:^2.8.0" + tslib: "npm:^2.5.0" + checksum: b84dafb213d97ebbab5d03b473e032c0e7f85872a8745fdb3274b628aa5c6e300c87a4df0747ebd29ac812c14566c295994642525210bfc81ded083d7559dbc9 + languageName: node + linkType: hard + "@aws-sdk/core@npm:3.525.0": version: 3.525.0 resolution: "@aws-sdk/core@npm:3.525.0" @@ -656,6 +829,18 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/credential-provider-env@npm:3.485.0": + version: 3.485.0 + resolution: "@aws-sdk/credential-provider-env@npm:3.485.0" + dependencies: + "@aws-sdk/types": "npm:3.485.0" + "@smithy/property-provider": "npm:^2.0.0" + "@smithy/types": "npm:^2.8.0" + tslib: "npm:^2.5.0" + checksum: b8346ea6f54cdce2302d266e76cff3569151ef9d5cf31364e99b9b0808f5f62cb45ffacb48cb68ccc85bd5774443231056a648fe9db45ac9c9f6d83e47a0c2d7 + languageName: node + linkType: hard + "@aws-sdk/credential-provider-env@npm:3.523.0": version: 3.523.0 resolution: "@aws-sdk/credential-provider-env@npm:3.523.0" @@ -685,6 +870,24 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/credential-provider-ini@npm:3.485.0": + version: 3.485.0 + resolution: "@aws-sdk/credential-provider-ini@npm:3.485.0" + dependencies: + "@aws-sdk/credential-provider-env": "npm:3.485.0" + "@aws-sdk/credential-provider-process": "npm:3.485.0" + "@aws-sdk/credential-provider-sso": "npm:3.485.0" + "@aws-sdk/credential-provider-web-identity": "npm:3.485.0" + "@aws-sdk/types": "npm:3.485.0" + "@smithy/credential-provider-imds": "npm:^2.0.0" + "@smithy/property-provider": "npm:^2.0.0" + "@smithy/shared-ini-file-loader": "npm:^2.0.6" + "@smithy/types": "npm:^2.8.0" + tslib: "npm:^2.5.0" + checksum: 3176b03ee14ae1b84340a235161e1812f16da95115330917c22b0bbcc7fa86a051e53d493d589a537466cb5bbd4866897a8088d43d7d337c36aa9bb5b12b8525 + languageName: node + linkType: hard + "@aws-sdk/credential-provider-ini@npm:3.525.0": version: 3.525.0 resolution: "@aws-sdk/credential-provider-ini@npm:3.525.0" @@ -704,6 +907,25 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/credential-provider-node@npm:3.485.0": + version: 3.485.0 + resolution: "@aws-sdk/credential-provider-node@npm:3.485.0" + dependencies: + "@aws-sdk/credential-provider-env": "npm:3.485.0" + "@aws-sdk/credential-provider-ini": "npm:3.485.0" + "@aws-sdk/credential-provider-process": "npm:3.485.0" + "@aws-sdk/credential-provider-sso": "npm:3.485.0" + "@aws-sdk/credential-provider-web-identity": "npm:3.485.0" + "@aws-sdk/types": "npm:3.485.0" + "@smithy/credential-provider-imds": "npm:^2.0.0" + "@smithy/property-provider": "npm:^2.0.0" + "@smithy/shared-ini-file-loader": "npm:^2.0.6" + "@smithy/types": "npm:^2.8.0" + tslib: "npm:^2.5.0" + checksum: d31e5a95ea06436dc10978c39ce33263339dbd295934c37c2e762000039054456f623cf3549a07e1a2250c9f2b0552236e38dbe4cd97df809b6f7e946a65d98e + languageName: node + linkType: hard + "@aws-sdk/credential-provider-node@npm:3.525.0": version: 3.525.0 resolution: "@aws-sdk/credential-provider-node@npm:3.525.0" @@ -724,6 +946,19 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/credential-provider-process@npm:3.485.0": + version: 3.485.0 + resolution: "@aws-sdk/credential-provider-process@npm:3.485.0" + dependencies: + "@aws-sdk/types": "npm:3.485.0" + "@smithy/property-provider": "npm:^2.0.0" + "@smithy/shared-ini-file-loader": "npm:^2.0.6" + "@smithy/types": "npm:^2.8.0" + tslib: "npm:^2.5.0" + checksum: e740fb949ec17afd4e3a7515aa6f279eb587539f9114455e0869e762a1fb90b8349c3b7e2ceed1de307e3bef2ef9916a00e89ee5a3c1b1b6caf02a686a2d4be0 + languageName: node + linkType: hard + "@aws-sdk/credential-provider-process@npm:3.523.0": version: 3.523.0 resolution: "@aws-sdk/credential-provider-process@npm:3.523.0" @@ -737,6 +972,21 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/credential-provider-sso@npm:3.485.0": + version: 3.485.0 + resolution: "@aws-sdk/credential-provider-sso@npm:3.485.0" + dependencies: + "@aws-sdk/client-sso": "npm:3.485.0" + "@aws-sdk/token-providers": "npm:3.485.0" + "@aws-sdk/types": "npm:3.485.0" + "@smithy/property-provider": "npm:^2.0.0" + "@smithy/shared-ini-file-loader": "npm:^2.0.6" + "@smithy/types": "npm:^2.8.0" + tslib: "npm:^2.5.0" + checksum: 7269315797a1a6a9e3d1dbfd2a65ad7c092fcc4631be880f748b3561cebab30631d10d7c281880d46113306c7794b10f2b7b3f934e8047c8559e0ec0da15d0fb + languageName: node + linkType: hard + "@aws-sdk/credential-provider-sso@npm:3.525.0": version: 3.525.0 resolution: "@aws-sdk/credential-provider-sso@npm:3.525.0" @@ -752,6 +1002,18 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/credential-provider-web-identity@npm:3.485.0": + version: 3.485.0 + resolution: "@aws-sdk/credential-provider-web-identity@npm:3.485.0" + dependencies: + "@aws-sdk/types": "npm:3.485.0" + "@smithy/property-provider": "npm:^2.0.0" + "@smithy/types": "npm:^2.8.0" + tslib: "npm:^2.5.0" + checksum: 33125ce0b7c3bf36ff3f52bda6657f667698e25bd09cb0c302e1e85b8d8b20b322e225981c887363bbe8ba47e22721184ad83ff30271b2887d4ea25de270b760 + languageName: node + linkType: hard + "@aws-sdk/credential-provider-web-identity@npm:3.525.0": version: 3.525.0 resolution: "@aws-sdk/credential-provider-web-identity@npm:3.525.0" @@ -782,6 +1044,21 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/middleware-bucket-endpoint@npm:3.485.0": + version: 3.485.0 + resolution: "@aws-sdk/middleware-bucket-endpoint@npm:3.485.0" + dependencies: + "@aws-sdk/types": "npm:3.485.0" + "@aws-sdk/util-arn-parser": "npm:3.465.0" + "@smithy/node-config-provider": "npm:^2.1.9" + "@smithy/protocol-http": "npm:^3.0.12" + "@smithy/types": "npm:^2.8.0" + "@smithy/util-config-provider": "npm:^2.1.0" + tslib: "npm:^2.5.0" + checksum: 2c285960e3a3c9fa4edf20fff00898cf087bf99c92bcebb484cffb42cc8dca04ed27a7bcb991f1122ecefc767796e33a756f070fbb03a446a22f2f38cb14ab23 + languageName: node + linkType: hard + "@aws-sdk/middleware-bucket-endpoint@npm:3.525.0": version: 3.525.0 resolution: "@aws-sdk/middleware-bucket-endpoint@npm:3.525.0" @@ -797,6 +1074,18 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/middleware-expect-continue@npm:3.485.0": + version: 3.485.0 + resolution: "@aws-sdk/middleware-expect-continue@npm:3.485.0" + dependencies: + "@aws-sdk/types": "npm:3.485.0" + "@smithy/protocol-http": "npm:^3.0.12" + "@smithy/types": "npm:^2.8.0" + tslib: "npm:^2.5.0" + checksum: f6c712ac29430b92dfae5534f1a65d048a7774d0df75557d8ebe23efb80088e8e6eaa096577ca24f83c3ae15502a17ebc0e87473dc6a427b67a99dda68d65bce + languageName: node + linkType: hard + "@aws-sdk/middleware-expect-continue@npm:3.523.0": version: 3.523.0 resolution: "@aws-sdk/middleware-expect-continue@npm:3.523.0" @@ -809,6 +1098,22 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/middleware-flexible-checksums@npm:3.485.0": + version: 3.485.0 + resolution: "@aws-sdk/middleware-flexible-checksums@npm:3.485.0" + dependencies: + "@aws-crypto/crc32": "npm:3.0.0" + "@aws-crypto/crc32c": "npm:3.0.0" + "@aws-sdk/types": "npm:3.485.0" + "@smithy/is-array-buffer": "npm:^2.0.0" + "@smithy/protocol-http": "npm:^3.0.12" + "@smithy/types": "npm:^2.8.0" + "@smithy/util-utf8": "npm:^2.0.2" + tslib: "npm:^2.5.0" + checksum: 10c61b9166321ca5ea940a8269d3ceddda422ad1029e87286d0b129ac9ae67737eac79f00cd79b65011d6b60dc37c38c7bf7b385f5b8fe518f8658b24ec53ef0 + languageName: node + linkType: hard + "@aws-sdk/middleware-flexible-checksums@npm:3.523.0": version: 3.523.0 resolution: "@aws-sdk/middleware-flexible-checksums@npm:3.523.0" @@ -825,6 +1130,18 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/middleware-host-header@npm:3.485.0": + version: 3.485.0 + resolution: "@aws-sdk/middleware-host-header@npm:3.485.0" + dependencies: + "@aws-sdk/types": "npm:3.485.0" + "@smithy/protocol-http": "npm:^3.0.12" + "@smithy/types": "npm:^2.8.0" + tslib: "npm:^2.5.0" + checksum: 9ca3da2a264885448a84efe37d3262909118c5ca7d74d0459f74dd9291e036660835d648f8962144a27ef25f9b8662610e104f2534e40cb2765c2747cb7a22b9 + languageName: node + linkType: hard + "@aws-sdk/middleware-host-header@npm:3.523.0": version: 3.523.0 resolution: "@aws-sdk/middleware-host-header@npm:3.523.0" @@ -837,6 +1154,17 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/middleware-location-constraint@npm:3.485.0": + version: 3.485.0 + resolution: "@aws-sdk/middleware-location-constraint@npm:3.485.0" + dependencies: + "@aws-sdk/types": "npm:3.485.0" + "@smithy/types": "npm:^2.8.0" + tslib: "npm:^2.5.0" + checksum: e0c6637ae1e4302f5c69e46bb1d47c644e1211850c688ad36926c1905bf0af6e141d0bc6c8f7f1c4adc66ad861480efdae6206154c6c2d488e22531d17b0fec5 + languageName: node + linkType: hard + "@aws-sdk/middleware-location-constraint@npm:3.523.0": version: 3.523.0 resolution: "@aws-sdk/middleware-location-constraint@npm:3.523.0" @@ -848,6 +1176,17 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/middleware-logger@npm:3.485.0": + version: 3.485.0 + resolution: "@aws-sdk/middleware-logger@npm:3.485.0" + dependencies: + "@aws-sdk/types": "npm:3.485.0" + "@smithy/types": "npm:^2.8.0" + tslib: "npm:^2.5.0" + checksum: 2fcb731794ecc665517b2aaba20ae24f42046cf1c7e663288afc7e97263116b6d9fa9dd36c1ba47c6ea01954a15519d6da57653b50097dab0853c6a344a69492 + languageName: node + linkType: hard + "@aws-sdk/middleware-logger@npm:3.523.0": version: 3.523.0 resolution: "@aws-sdk/middleware-logger@npm:3.523.0" @@ -859,6 +1198,18 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/middleware-recursion-detection@npm:3.485.0": + version: 3.485.0 + resolution: "@aws-sdk/middleware-recursion-detection@npm:3.485.0" + dependencies: + "@aws-sdk/types": "npm:3.485.0" + "@smithy/protocol-http": "npm:^3.0.12" + "@smithy/types": "npm:^2.8.0" + tslib: "npm:^2.5.0" + checksum: afdea18930299e12a961f68a9a898f34f737c2ce9709c70e0043d6b7ec2ea2c6ad8df05877ab013f8d7d3f6322253bbf1ff6100ab6be445ef91a95a865f74ffa + languageName: node + linkType: hard + "@aws-sdk/middleware-recursion-detection@npm:3.523.0": version: 3.523.0 resolution: "@aws-sdk/middleware-recursion-detection@npm:3.523.0" @@ -871,6 +1222,23 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/middleware-sdk-s3@npm:3.485.0": + version: 3.485.0 + resolution: "@aws-sdk/middleware-sdk-s3@npm:3.485.0" + dependencies: + "@aws-sdk/types": "npm:3.485.0" + "@aws-sdk/util-arn-parser": "npm:3.465.0" + "@smithy/node-config-provider": "npm:^2.1.9" + "@smithy/protocol-http": "npm:^3.0.12" + "@smithy/signature-v4": "npm:^2.0.0" + "@smithy/smithy-client": "npm:^2.2.1" + "@smithy/types": "npm:^2.8.0" + "@smithy/util-config-provider": "npm:^2.1.0" + tslib: "npm:^2.5.0" + checksum: 48a727d7b2cec8aa4f1034e9c74221fa9a0b778b1ba8f5420609d5e8ea78a188ab35d99f70a50b089bb5614a266aab1ba2ec41a532507d47f59f0319309b6c6f + languageName: node + linkType: hard + "@aws-sdk/middleware-sdk-s3@npm:3.525.0": version: 3.525.0 resolution: "@aws-sdk/middleware-sdk-s3@npm:3.525.0" @@ -888,6 +1256,21 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/middleware-signing@npm:3.485.0": + version: 3.485.0 + resolution: "@aws-sdk/middleware-signing@npm:3.485.0" + dependencies: + "@aws-sdk/types": "npm:3.485.0" + "@smithy/property-provider": "npm:^2.0.0" + "@smithy/protocol-http": "npm:^3.0.12" + "@smithy/signature-v4": "npm:^2.0.0" + "@smithy/types": "npm:^2.8.0" + "@smithy/util-middleware": "npm:^2.0.9" + tslib: "npm:^2.5.0" + checksum: f9dbb39d8dda2841350c015eacbaa9f2444fa9b48080a5da2a41465252241f45da65007c21ce56a1961c75bf7d5395fadf39ce11ec78c96a7923a8b98a6684a2 + languageName: node + linkType: hard + "@aws-sdk/middleware-signing@npm:3.523.0": version: 3.523.0 resolution: "@aws-sdk/middleware-signing@npm:3.523.0" @@ -903,6 +1286,17 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/middleware-ssec@npm:3.485.0": + version: 3.485.0 + resolution: "@aws-sdk/middleware-ssec@npm:3.485.0" + dependencies: + "@aws-sdk/types": "npm:3.485.0" + "@smithy/types": "npm:^2.8.0" + tslib: "npm:^2.5.0" + checksum: 3a550c960c9a2cdceb5e56743a7c253c92009928167f148c6ce80d1a9358f47578abee8bf96cf211deeec45768121b0751128ab1a3578ce56bae61531f035589 + languageName: node + linkType: hard + "@aws-sdk/middleware-ssec@npm:3.523.0": version: 3.523.0 resolution: "@aws-sdk/middleware-ssec@npm:3.523.0" @@ -914,6 +1308,19 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/middleware-user-agent@npm:3.485.0": + version: 3.485.0 + resolution: "@aws-sdk/middleware-user-agent@npm:3.485.0" + dependencies: + "@aws-sdk/types": "npm:3.485.0" + "@aws-sdk/util-endpoints": "npm:3.485.0" + "@smithy/protocol-http": "npm:^3.0.12" + "@smithy/types": "npm:^2.8.0" + tslib: "npm:^2.5.0" + checksum: a8fc812aff61a1a98dbd1cb6555786b7156a1024d3aba6554d56f5302e90b1b660e141f274c0a00e107276b0f4129ce4978faeb5847a54c54cc9289dd2834035 + languageName: node + linkType: hard + "@aws-sdk/middleware-user-agent@npm:3.525.0": version: 3.525.0 resolution: "@aws-sdk/middleware-user-agent@npm:3.525.0" @@ -927,6 +1334,19 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/region-config-resolver@npm:3.485.0": + version: 3.485.0 + resolution: "@aws-sdk/region-config-resolver@npm:3.485.0" + dependencies: + "@smithy/node-config-provider": "npm:^2.1.9" + "@smithy/types": "npm:^2.8.0" + "@smithy/util-config-provider": "npm:^2.1.0" + "@smithy/util-middleware": "npm:^2.0.9" + tslib: "npm:^2.5.0" + checksum: 55bc5128b8dd325f7826afb741544689ff89da8ed5cfe4a704c90eff1c477ecf71b023cb6f52d0a2d5045eecfb4b61d82e3f98f10feb913d3720f14cce4df632 + languageName: node + linkType: hard + "@aws-sdk/region-config-resolver@npm:3.525.0": version: 3.525.0 resolution: "@aws-sdk/region-config-resolver@npm:3.525.0" @@ -941,6 +1361,20 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/signature-v4-multi-region@npm:3.485.0": + version: 3.485.0 + resolution: "@aws-sdk/signature-v4-multi-region@npm:3.485.0" + dependencies: + "@aws-sdk/middleware-sdk-s3": "npm:3.485.0" + "@aws-sdk/types": "npm:3.485.0" + "@smithy/protocol-http": "npm:^3.0.12" + "@smithy/signature-v4": "npm:^2.0.0" + "@smithy/types": "npm:^2.8.0" + tslib: "npm:^2.5.0" + checksum: 14551f298a136e90e95ccb87a89147d4a0b845fbc79fbc68351ba70c8962cc0fd906ba5facf64fd0727c837f65938547b8222a192cbe182e7d2f815c76dea086 + languageName: node + linkType: hard + "@aws-sdk/signature-v4-multi-region@npm:3.525.0": version: 3.525.0 resolution: "@aws-sdk/signature-v4-multi-region@npm:3.525.0" @@ -955,6 +1389,51 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/token-providers@npm:3.485.0": + version: 3.485.0 + resolution: "@aws-sdk/token-providers@npm:3.485.0" + dependencies: + "@aws-crypto/sha256-browser": "npm:3.0.0" + "@aws-crypto/sha256-js": "npm:3.0.0" + "@aws-sdk/middleware-host-header": "npm:3.485.0" + "@aws-sdk/middleware-logger": "npm:3.485.0" + "@aws-sdk/middleware-recursion-detection": "npm:3.485.0" + "@aws-sdk/middleware-user-agent": "npm:3.485.0" + "@aws-sdk/region-config-resolver": "npm:3.485.0" + "@aws-sdk/types": "npm:3.485.0" + "@aws-sdk/util-endpoints": "npm:3.485.0" + "@aws-sdk/util-user-agent-browser": "npm:3.485.0" + "@aws-sdk/util-user-agent-node": "npm:3.485.0" + "@smithy/config-resolver": "npm:^2.0.23" + "@smithy/fetch-http-handler": "npm:^2.3.2" + "@smithy/hash-node": "npm:^2.0.18" + "@smithy/invalid-dependency": "npm:^2.0.16" + "@smithy/middleware-content-length": "npm:^2.0.18" + "@smithy/middleware-endpoint": "npm:^2.3.0" + "@smithy/middleware-retry": "npm:^2.0.26" + "@smithy/middleware-serde": "npm:^2.0.16" + "@smithy/middleware-stack": "npm:^2.0.10" + "@smithy/node-config-provider": "npm:^2.1.9" + "@smithy/node-http-handler": "npm:^2.2.2" + "@smithy/property-provider": "npm:^2.0.0" + "@smithy/protocol-http": "npm:^3.0.12" + "@smithy/shared-ini-file-loader": "npm:^2.0.6" + "@smithy/smithy-client": "npm:^2.2.1" + "@smithy/types": "npm:^2.8.0" + "@smithy/url-parser": "npm:^2.0.16" + "@smithy/util-base64": "npm:^2.0.1" + "@smithy/util-body-length-browser": "npm:^2.0.1" + "@smithy/util-body-length-node": "npm:^2.1.0" + "@smithy/util-defaults-mode-browser": "npm:^2.0.24" + "@smithy/util-defaults-mode-node": "npm:^2.0.32" + "@smithy/util-endpoints": "npm:^1.0.8" + "@smithy/util-retry": "npm:^2.0.9" + "@smithy/util-utf8": "npm:^2.0.2" + tslib: "npm:^2.5.0" + checksum: aed270b62546e34a476e034f90a1d10fbb05a8a14be6c93bbcd5dd8ab77cfa3b2915bae0d6a0c21044bdd039851fcbbac01f4c931b35d4f7cd5317be5b3eab24 + languageName: node + linkType: hard + "@aws-sdk/token-providers@npm:3.525.0": version: 3.525.0 resolution: "@aws-sdk/token-providers@npm:3.525.0" @@ -969,6 +1448,16 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/types@npm:3.485.0": + version: 3.485.0 + resolution: "@aws-sdk/types@npm:3.485.0" + dependencies: + "@smithy/types": "npm:^2.8.0" + tslib: "npm:^2.5.0" + checksum: 588aae4b494d7914475280bcecb579690170ca2a1c8b6d9c64ed05819dfd79de225eaa64a455f3d168f57b365eca743a363c27be464aa3ac59a2f2199d125ae5 + languageName: node + linkType: hard + "@aws-sdk/types@npm:3.523.0, @aws-sdk/types@npm:^3.1.0, @aws-sdk/types@npm:^3.222.0": version: 3.523.0 resolution: "@aws-sdk/types@npm:3.523.0" @@ -979,6 +1468,15 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/util-arn-parser@npm:3.465.0": + version: 3.465.0 + resolution: "@aws-sdk/util-arn-parser@npm:3.465.0" + dependencies: + tslib: "npm:^2.5.0" + checksum: 0fb11c7e3d09901708f46cb0c885c2df7a8e8af70560484fa478bf9e2f8ee2aa6028c67187c0520eec6a92003bc43ae68c0ddc32db3af3e6d554b48080910af5 + languageName: node + linkType: hard + "@aws-sdk/util-arn-parser@npm:3.495.0": version: 3.495.0 resolution: "@aws-sdk/util-arn-parser@npm:3.495.0" @@ -988,6 +1486,17 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/util-endpoints@npm:3.485.0": + version: 3.485.0 + resolution: "@aws-sdk/util-endpoints@npm:3.485.0" + dependencies: + "@aws-sdk/types": "npm:3.485.0" + "@smithy/util-endpoints": "npm:^1.0.8" + tslib: "npm:^2.5.0" + checksum: c1844fed8bb8fd01490fde9ed6cf3dad5647a51b72a964f7fd525f82a812bb79a128ff24fe0c3a3afb459290da21435548ef32e249d0018fe53bb3b4d4635bcb + languageName: node + linkType: hard + "@aws-sdk/util-endpoints@npm:3.525.0": version: 3.525.0 resolution: "@aws-sdk/util-endpoints@npm:3.525.0" @@ -1009,6 +1518,18 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/util-user-agent-browser@npm:3.485.0": + version: 3.485.0 + resolution: "@aws-sdk/util-user-agent-browser@npm:3.485.0" + dependencies: + "@aws-sdk/types": "npm:3.485.0" + "@smithy/types": "npm:^2.8.0" + bowser: "npm:^2.11.0" + tslib: "npm:^2.5.0" + checksum: d1e4d4c63508e91a38f0a1a35330cc7233d235efe315b56925f0d4cd4ea88baef3a6ca0f995571e3b81084e1b2ef229a5c0c9e72e2787321bb7da889231a8f77 + languageName: node + linkType: hard + "@aws-sdk/util-user-agent-browser@npm:3.523.0": version: 3.523.0 resolution: "@aws-sdk/util-user-agent-browser@npm:3.523.0" @@ -1021,6 +1542,23 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/util-user-agent-node@npm:3.485.0": + version: 3.485.0 + resolution: "@aws-sdk/util-user-agent-node@npm:3.485.0" + dependencies: + "@aws-sdk/types": "npm:3.485.0" + "@smithy/node-config-provider": "npm:^2.1.9" + "@smithy/types": "npm:^2.8.0" + tslib: "npm:^2.5.0" + peerDependencies: + aws-crt: ">=1.0.0" + peerDependenciesMeta: + aws-crt: + optional: true + checksum: e2805ef37b90677673b73acc9dc009cdd70f6167d1f0f83fdfe65e867057f6091b924642f8ff5338aff711b8c623fe9e765f2438cdeaa232953359f756947dd5 + languageName: node + linkType: hard + "@aws-sdk/util-user-agent-node@npm:3.525.0": version: 3.525.0 resolution: "@aws-sdk/util-user-agent-node@npm:3.525.0" @@ -1047,6 +1585,16 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/xml-builder@npm:3.485.0": + version: 3.485.0 + resolution: "@aws-sdk/xml-builder@npm:3.485.0" + dependencies: + "@smithy/types": "npm:^2.8.0" + tslib: "npm:^2.5.0" + checksum: 82bee30922662391703fca2ca1c735f6a91b031e3330091ca3fab774062742ac0dd88085feeebc2431e7d3c3d02f50bfa0d1bec7673e691dcd07ef03ff6bb880 + languageName: node + linkType: hard + "@aws-sdk/xml-builder@npm:3.523.0": version: 3.523.0 resolution: "@aws-sdk/xml-builder@npm:3.523.0" @@ -1111,7 +1659,7 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.16.0, @babel/code-frame@npm:^7.21.4, @babel/code-frame@npm:^7.22.5, @babel/code-frame@npm:^7.23.5, @babel/code-frame@npm:^7.8.3": +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.16.0, @babel/code-frame@npm:^7.21.4, @babel/code-frame@npm:^7.23.5": version: 7.23.5 resolution: "@babel/code-frame@npm:7.23.5" dependencies: @@ -1121,13 +1669,53 @@ __metadata: languageName: node linkType: hard -"@babel/compat-data@npm:^7.17.7, @babel/compat-data@npm:^7.20.5, @babel/compat-data@npm:^7.21.5, @babel/compat-data@npm:^7.22.3, @babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.22.9, @babel/compat-data@npm:^7.23.5": +"@babel/code-frame@npm:^7.22.13": + version: 7.22.13 + resolution: "@babel/code-frame@npm:7.22.13" + dependencies: + "@babel/highlight": "npm:^7.22.13" + chalk: "npm:^2.4.2" + checksum: bf6ae6ba3a510adfda6a211b4a89b0f1c98ca1352b745c077d113f3b568141e0d44ce750b9ac2a80143ba5c8c4080c50fcfc1aa11d86e194ea6785f62520eb5a + languageName: node + linkType: hard + +"@babel/code-frame@npm:^7.22.5, @babel/code-frame@npm:^7.8.3": + version: 7.22.5 + resolution: "@babel/code-frame@npm:7.22.5" + dependencies: + "@babel/highlight": "npm:^7.22.5" + checksum: b1ac7de75859699a9118c5247f489cc943d8d041339323904cd8140592993762f50abc14bc49b6703cb8a94b1aa90d6df2599625825e7ae470c9283b4a6170aa + languageName: node + linkType: hard + +"@babel/compat-data@npm:^7.17.7, @babel/compat-data@npm:^7.20.5, @babel/compat-data@npm:^7.21.5, @babel/compat-data@npm:^7.23.3, @babel/compat-data@npm:^7.23.5": version: 7.23.5 resolution: "@babel/compat-data@npm:7.23.5" checksum: 088f14f646ecbddd5ef89f120a60a1b3389a50a9705d44603dca77662707d0175a5e0e0da3943c3298f1907a4ab871468656fbbf74bb7842cd8b0686b2c19736 languageName: node linkType: hard +"@babel/compat-data@npm:^7.22.0, @babel/compat-data@npm:^7.22.3": + version: 7.22.3 + resolution: "@babel/compat-data@npm:7.22.3" + checksum: d0a1acf739faa9b11757dbf5ddb11699af31c1d5ff339831d03e477c617beb205e8127125a8406ccb6f725a97a48cb1de170534f700ef40db02d8702d835a4a0 + languageName: node + linkType: hard + +"@babel/compat-data@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/compat-data@npm:7.22.5" + checksum: 18eb983dd250d94b4c794dd332bf80c4d2af147636991f214df19f15531fb6e405763f9bfec90de51dbbc368b9542bfd4f775cab74427adae0e80830cf0686dd + languageName: node + linkType: hard + +"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.22.9": + version: 7.22.9 + resolution: "@babel/compat-data@npm:7.22.9" + checksum: 6797f59857917e57e1765811e4f48371f2bc6063274be012e380e83cbc1a4f7931d616c235df56404134aa4bb4775ee61f7b382688314e1b625a4d51caabd734 + languageName: node + linkType: hard + "@babel/core@npm:7.21.5": version: 7.21.5 resolution: "@babel/core@npm:7.21.5" @@ -1197,30 +1785,7 @@ __metadata: languageName: node linkType: hard -"@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.10, @babel/core@npm:^7.12.3, @babel/core@npm:^7.13.16, @babel/core@npm:^7.14.0, @babel/core@npm:^7.16.0, @babel/core@npm:^7.18.9, @babel/core@npm:^7.19.6, @babel/core@npm:^7.20.12, @babel/core@npm:^7.20.2, @babel/core@npm:^7.21.3, @babel/core@npm:^7.22.9, @babel/core@npm:^7.23.0, @babel/core@npm:^7.23.2, @babel/core@npm:^7.23.3, @babel/core@npm:^7.23.5, @babel/core@npm:^7.7.5": - version: 7.24.0 - resolution: "@babel/core@npm:7.24.0" - dependencies: - "@ampproject/remapping": "npm:^2.2.0" - "@babel/code-frame": "npm:^7.23.5" - "@babel/generator": "npm:^7.23.6" - "@babel/helper-compilation-targets": "npm:^7.23.6" - "@babel/helper-module-transforms": "npm:^7.23.3" - "@babel/helpers": "npm:^7.24.0" - "@babel/parser": "npm:^7.24.0" - "@babel/template": "npm:^7.24.0" - "@babel/traverse": "npm:^7.24.0" - "@babel/types": "npm:^7.24.0" - convert-source-map: "npm:^2.0.0" - debug: "npm:^4.1.0" - gensync: "npm:^1.0.0-beta.2" - json5: "npm:^2.2.3" - semver: "npm:^6.3.1" - checksum: 1e22215cc89e061e0cbfed72f265ad24d363f3e9b24b51e9c4cf3ccb9222260a29a1c1e62edb439cb7e2229a3fce924edd43300500416613236c13fc8d62a947 - languageName: node - linkType: hard - -"@babel/core@npm:~7.21.0": +"@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.10, @babel/core@npm:^7.12.3, @babel/core@npm:^7.13.16, @babel/core@npm:^7.14.0, @babel/core@npm:^7.16.0, @babel/core@npm:^7.20.12, @babel/core@npm:^7.20.2, @babel/core@npm:^7.21.3, @babel/core@npm:^7.7.5, @babel/core@npm:~7.21.0": version: 7.21.8 resolution: "@babel/core@npm:7.21.8" dependencies: @@ -1243,6 +1808,75 @@ __metadata: languageName: node linkType: hard +"@babel/core@npm:^7.18.9": + version: 7.23.2 + resolution: "@babel/core@npm:7.23.2" + dependencies: + "@ampproject/remapping": "npm:^2.2.0" + "@babel/code-frame": "npm:^7.22.13" + "@babel/generator": "npm:^7.23.0" + "@babel/helper-compilation-targets": "npm:^7.22.15" + "@babel/helper-module-transforms": "npm:^7.23.0" + "@babel/helpers": "npm:^7.23.2" + "@babel/parser": "npm:^7.23.0" + "@babel/template": "npm:^7.22.15" + "@babel/traverse": "npm:^7.23.2" + "@babel/types": "npm:^7.23.0" + convert-source-map: "npm:^2.0.0" + debug: "npm:^4.1.0" + gensync: "npm:^1.0.0-beta.2" + json5: "npm:^2.2.3" + semver: "npm:^6.3.1" + checksum: b69d7008695b2ac7a3a2db83c5c712fbb79f7031c4480f6351cde327930e38873003d1d021059b729a1d0cb48093f1d384c64269b78f6189f50051fe4f64dc2d + languageName: node + linkType: hard + +"@babel/core@npm:^7.19.6, @babel/core@npm:^7.22.9": + version: 7.23.7 + resolution: "@babel/core@npm:7.23.7" + dependencies: + "@ampproject/remapping": "npm:^2.2.0" + "@babel/code-frame": "npm:^7.23.5" + "@babel/generator": "npm:^7.23.6" + "@babel/helper-compilation-targets": "npm:^7.23.6" + "@babel/helper-module-transforms": "npm:^7.23.3" + "@babel/helpers": "npm:^7.23.7" + "@babel/parser": "npm:^7.23.6" + "@babel/template": "npm:^7.22.15" + "@babel/traverse": "npm:^7.23.7" + "@babel/types": "npm:^7.23.6" + convert-source-map: "npm:^2.0.0" + debug: "npm:^4.1.0" + gensync: "npm:^1.0.0-beta.2" + json5: "npm:^2.2.3" + semver: "npm:^6.3.1" + checksum: 956841695ea801c8b4196d01072e6c1062335960715a6fcfd4009831003b526b00627c78b373ed49b1658c3622c71142f7ff04235fe839cac4a1a25ed51b90aa + languageName: node + linkType: hard + +"@babel/core@npm:^7.23.0, @babel/core@npm:^7.23.2, @babel/core@npm:^7.23.3, @babel/core@npm:^7.23.5": + version: 7.23.5 + resolution: "@babel/core@npm:7.23.5" + dependencies: + "@ampproject/remapping": "npm:^2.2.0" + "@babel/code-frame": "npm:^7.23.5" + "@babel/generator": "npm:^7.23.5" + "@babel/helper-compilation-targets": "npm:^7.22.15" + "@babel/helper-module-transforms": "npm:^7.23.3" + "@babel/helpers": "npm:^7.23.5" + "@babel/parser": "npm:^7.23.5" + "@babel/template": "npm:^7.22.15" + "@babel/traverse": "npm:^7.23.5" + "@babel/types": "npm:^7.23.5" + convert-source-map: "npm:^2.0.0" + debug: "npm:^4.1.0" + gensync: "npm:^1.0.0-beta.2" + json5: "npm:^2.2.3" + semver: "npm:^6.3.1" + checksum: f24265172610dbffe0e315b6a8e8f87cf87d2643c8915196adcddd81c66a8eaeb1b36fea851e2308961636a180089a5f10becaa340d5b707d5f64e2e5ffb2bc8 + languageName: node + linkType: hard + "@babel/eslint-parser@npm:7.23.3": version: 7.23.3 resolution: "@babel/eslint-parser@npm:7.23.3" @@ -1257,7 +1891,7 @@ __metadata: languageName: node linkType: hard -"@babel/generator@npm:^7.12.11, @babel/generator@npm:^7.14.0, @babel/generator@npm:^7.18.13, @babel/generator@npm:^7.21.5, @babel/generator@npm:^7.22.0, @babel/generator@npm:^7.22.9, @babel/generator@npm:^7.23.0, @babel/generator@npm:^7.23.3, @babel/generator@npm:^7.23.6": +"@babel/generator@npm:^7.12.11, @babel/generator@npm:^7.14.0, @babel/generator@npm:^7.18.13, @babel/generator@npm:^7.21.5, @babel/generator@npm:^7.23.3, @babel/generator@npm:^7.23.6": version: 7.23.6 resolution: "@babel/generator@npm:7.23.6" dependencies: @@ -1269,6 +1903,66 @@ __metadata: languageName: node linkType: hard +"@babel/generator@npm:^7.22.0, @babel/generator@npm:^7.22.3": + version: 7.22.3 + resolution: "@babel/generator@npm:7.22.3" + dependencies: + "@babel/types": "npm:^7.22.3" + "@jridgewell/gen-mapping": "npm:^0.3.2" + "@jridgewell/trace-mapping": "npm:^0.3.17" + jsesc: "npm:^2.5.1" + checksum: fcada8c18fb59340aadc1bee765ee02f52086d72b4fa1bd039aba504dd449f2016396c5cccf970b838c4b4fed831b500f41f1651a2de3c648d2f32a4bf3d92af + languageName: node + linkType: hard + +"@babel/generator@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/generator@npm:7.22.5" + dependencies: + "@babel/types": "npm:^7.22.5" + "@jridgewell/gen-mapping": "npm:^0.3.2" + "@jridgewell/trace-mapping": "npm:^0.3.17" + jsesc: "npm:^2.5.1" + checksum: 56849bc15d130fe8b31f5c4cccda00aaa6005cb1a2b40cdf7754cf4905d804e41468a25b5b95f07059820926873039066ed1cb82f92cf7bf76a72c853274d1f7 + languageName: node + linkType: hard + +"@babel/generator@npm:^7.22.7, @babel/generator@npm:^7.22.9": + version: 7.22.9 + resolution: "@babel/generator@npm:7.22.9" + dependencies: + "@babel/types": "npm:^7.22.5" + "@jridgewell/gen-mapping": "npm:^0.3.2" + "@jridgewell/trace-mapping": "npm:^0.3.17" + jsesc: "npm:^2.5.1" + checksum: 1ee43f99512c51d594c8992f4c4cd07d2843eb58cf3c22d1f605906b9c0ed89640bdcea2c8d583e75a8032a49bb4d950d2055007ecb75af404ebc2db8a513b94 + languageName: node + linkType: hard + +"@babel/generator@npm:^7.23.0": + version: 7.23.0 + resolution: "@babel/generator@npm:7.23.0" + dependencies: + "@babel/types": "npm:^7.23.0" + "@jridgewell/gen-mapping": "npm:^0.3.2" + "@jridgewell/trace-mapping": "npm:^0.3.17" + jsesc: "npm:^2.5.1" + checksum: bd1598bd356756065d90ce26968dd464ac2b915c67623f6f071fb487da5f9eb454031a380e20e7c9a7ce5c4a49d23be6cb9efde404952b0b3f3c0c3a9b73d68a + languageName: node + linkType: hard + +"@babel/generator@npm:^7.23.5": + version: 7.23.5 + resolution: "@babel/generator@npm:7.23.5" + dependencies: + "@babel/types": "npm:^7.23.5" + "@jridgewell/gen-mapping": "npm:^0.3.2" + "@jridgewell/trace-mapping": "npm:^0.3.17" + jsesc: "npm:^2.5.1" + checksum: 094af79c2e8fdb0cfd06b42ff6a39a8a95639bc987cace44f52ed5c46127f5469eb20ab5f4c8991fc00fa9c1445a1977cde8e44289d6be29ddbb315fb0fc1b45 + languageName: node + linkType: hard + "@babel/generator@npm:~7.21.1": version: 7.21.9 resolution: "@babel/generator@npm:7.21.9" @@ -1299,7 +1993,16 @@ __metadata: languageName: node linkType: hard -"@babel/helper-compilation-targets@npm:^7.17.7, @babel/helper-compilation-targets@npm:^7.20.7, @babel/helper-compilation-targets@npm:^7.21.5, @babel/helper-compilation-targets@npm:^7.22.1, @babel/helper-compilation-targets@npm:^7.22.15, @babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.22.9, @babel/helper-compilation-targets@npm:^7.23.6": +"@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.22.5" + dependencies: + "@babel/types": "npm:^7.22.5" + checksum: d753acac62399fc6dd354cf1b9441bde0c331c2fe792a4c14904c5e5eafc3cac79478f6aa038e8a51c1148b0af6710a2e619855e4b5d54497ac972eaffed5884 + languageName: node + linkType: hard + +"@babel/helper-compilation-targets@npm:^7.17.7, @babel/helper-compilation-targets@npm:^7.20.7, @babel/helper-compilation-targets@npm:^7.21.5, @babel/helper-compilation-targets@npm:^7.23.6": version: 7.23.6 resolution: "@babel/helper-compilation-targets@npm:7.23.6" dependencies: @@ -1312,7 +2015,122 @@ __metadata: languageName: node linkType: hard -"@babel/helper-create-class-features-plugin@npm:^7.18.6, @babel/helper-create-class-features-plugin@npm:^7.21.0, @babel/helper-create-class-features-plugin@npm:^7.22.15, @babel/helper-create-class-features-plugin@npm:^7.23.6, @babel/helper-create-class-features-plugin@npm:^7.24.0": +"@babel/helper-compilation-targets@npm:^7.22.1": + version: 7.22.1 + resolution: "@babel/helper-compilation-targets@npm:7.22.1" + dependencies: + "@babel/compat-data": "npm:^7.22.0" + "@babel/helper-validator-option": "npm:^7.21.0" + browserslist: "npm:^4.21.3" + lru-cache: "npm:^5.1.1" + semver: "npm:^6.3.0" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: a5c033c2b560c037e044134653844f4f9f85b55ff24925d3831a31c794fc9749707213412aeeea3fa1abfe8817dba3072512f2909940fe17ca74452bbdf6ba28 + languageName: node + linkType: hard + +"@babel/helper-compilation-targets@npm:^7.22.15": + version: 7.22.15 + resolution: "@babel/helper-compilation-targets@npm:7.22.15" + dependencies: + "@babel/compat-data": "npm:^7.22.9" + "@babel/helper-validator-option": "npm:^7.22.15" + browserslist: "npm:^4.21.9" + lru-cache: "npm:^5.1.1" + semver: "npm:^6.3.1" + checksum: 9706decaa1591cf44511b6f3447eb9653b50ca3538215fe2e5387a8598c258c062f4622da5b95e61f0415706534deee619bbf53a2889f9bd967949b8f6024e0e + languageName: node + linkType: hard + +"@babel/helper-compilation-targets@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/helper-compilation-targets@npm:7.22.5" + dependencies: + "@babel/compat-data": "npm:^7.22.5" + "@babel/helper-validator-option": "npm:^7.22.5" + browserslist: "npm:^4.21.3" + lru-cache: "npm:^5.1.1" + semver: "npm:^6.3.0" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: aff56630b85481d7fa1f268fecc6f70df30c06df5073ea72cd422caccb957a0504f119d9681952f7f7b024f27117dc5e9147a48cc0046c2d84856eae92bfae03 + languageName: node + linkType: hard + +"@babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.22.9": + version: 7.22.9 + resolution: "@babel/helper-compilation-targets@npm:7.22.9" + dependencies: + "@babel/compat-data": "npm:^7.22.9" + "@babel/helper-validator-option": "npm:^7.22.5" + browserslist: "npm:^4.21.9" + lru-cache: "npm:^5.1.1" + semver: "npm:^6.3.1" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 779510e4c2036fa9880c0ed7b77ce84e5926093e216dffa0044f31a146f0daae363c00d1cdda2250788edc8d6457b9bce6245c51d9f4161bb51e053c12c4b478 + languageName: node + linkType: hard + +"@babel/helper-create-class-features-plugin@npm:^7.18.6, @babel/helper-create-class-features-plugin@npm:^7.21.0, @babel/helper-create-class-features-plugin@npm:^7.23.6": + version: 7.23.7 + resolution: "@babel/helper-create-class-features-plugin@npm:7.23.7" + dependencies: + "@babel/helper-annotate-as-pure": "npm:^7.22.5" + "@babel/helper-environment-visitor": "npm:^7.22.20" + "@babel/helper-function-name": "npm:^7.23.0" + "@babel/helper-member-expression-to-functions": "npm:^7.23.0" + "@babel/helper-optimise-call-expression": "npm:^7.22.5" + "@babel/helper-replace-supers": "npm:^7.22.20" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.22.5" + "@babel/helper-split-export-declaration": "npm:^7.22.6" + semver: "npm:^6.3.1" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: c8b3ef58fca399a25f00d703b0fb2ac1d86642d9e3bd7af04df77857641ed08aaca042ffb271ef93771f9272481fd1cf102a9bddfcee407fb126c927deeef6a7 + languageName: node + linkType: hard + +"@babel/helper-create-class-features-plugin@npm:^7.22.15": + version: 7.23.5 + resolution: "@babel/helper-create-class-features-plugin@npm:7.23.5" + dependencies: + "@babel/helper-annotate-as-pure": "npm:^7.22.5" + "@babel/helper-environment-visitor": "npm:^7.22.20" + "@babel/helper-function-name": "npm:^7.23.0" + "@babel/helper-member-expression-to-functions": "npm:^7.23.0" + "@babel/helper-optimise-call-expression": "npm:^7.22.5" + "@babel/helper-replace-supers": "npm:^7.22.20" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.22.5" + "@babel/helper-split-export-declaration": "npm:^7.22.6" + semver: "npm:^6.3.1" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: cd951e81b6a4ad79879f38edbe78d51cf29dfd5a7d33d7162aeaa3ac536dcc9a6679de8feb976bbd76d255a1654bf1742410517edd5c426fec66e0bf41eb8c45 + languageName: node + linkType: hard + +"@babel/helper-create-class-features-plugin@npm:^7.22.5, @babel/helper-create-class-features-plugin@npm:^7.22.9": + version: 7.22.9 + resolution: "@babel/helper-create-class-features-plugin@npm:7.22.9" + dependencies: + "@babel/helper-annotate-as-pure": "npm:^7.22.5" + "@babel/helper-environment-visitor": "npm:^7.22.5" + "@babel/helper-function-name": "npm:^7.22.5" + "@babel/helper-member-expression-to-functions": "npm:^7.22.5" + "@babel/helper-optimise-call-expression": "npm:^7.22.5" + "@babel/helper-replace-supers": "npm:^7.22.9" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.22.5" + "@babel/helper-split-export-declaration": "npm:^7.22.6" + semver: "npm:^6.3.1" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 7e4ed99b88f844b762013862d7453b531b792da13a0afa3ef1a2d483c4f52f688b38e6d07e9b32c2304d17be752b2deba00b48530113cad979060dbc3bf20594 + languageName: node + linkType: hard + +"@babel/helper-create-class-features-plugin@npm:^7.24.0": version: 7.24.0 resolution: "@babel/helper-create-class-features-plugin@npm:7.24.0" dependencies: @@ -1331,7 +2149,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.22.15, @babel/helper-create-regexp-features-plugin@npm:^7.22.5": +"@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.22.15": version: 7.22.15 resolution: "@babel/helper-create-regexp-features-plugin@npm:7.22.15" dependencies: @@ -1344,6 +2162,32 @@ __metadata: languageName: node linkType: hard +"@babel/helper-create-regexp-features-plugin@npm:^7.22.1": + version: 7.22.1 + resolution: "@babel/helper-create-regexp-features-plugin@npm:7.22.1" + dependencies: + "@babel/helper-annotate-as-pure": "npm:^7.18.6" + regexpu-core: "npm:^5.3.1" + semver: "npm:^6.3.0" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 464af32e0be268703c3376cf2499f721c0579d66b77462feff8bcbf9e399b85145322138ac290668fb766eb34f295ed362a39d30c73e8c695ccfe31067e13a47 + languageName: node + linkType: hard + +"@babel/helper-create-regexp-features-plugin@npm:^7.22.5": + version: 7.22.9 + resolution: "@babel/helper-create-regexp-features-plugin@npm:7.22.9" + dependencies: + "@babel/helper-annotate-as-pure": "npm:^7.22.5" + regexpu-core: "npm:^5.3.1" + semver: "npm:^6.3.1" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 6f3475a7661bc34527201c07eeeec3077c8adab0ed74bff728dc479da6c74bb393b6121ddf590ef1671f3f508fab3c7792a5ada65672665d84db4556daebd210 + languageName: node + linkType: hard + "@babel/helper-define-polyfill-provider@npm:^0.3.3": version: 0.3.3 resolution: "@babel/helper-define-polyfill-provider@npm:0.3.3" @@ -1360,6 +2204,36 @@ __metadata: languageName: node linkType: hard +"@babel/helper-define-polyfill-provider@npm:^0.4.2": + version: 0.4.2 + resolution: "@babel/helper-define-polyfill-provider@npm:0.4.2" + dependencies: + "@babel/helper-compilation-targets": "npm:^7.22.6" + "@babel/helper-plugin-utils": "npm:^7.22.5" + debug: "npm:^4.1.1" + lodash.debounce: "npm:^4.0.8" + resolve: "npm:^1.14.2" + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: 6383a34af4048957e46366fa7e6228b61e140955a707f8af7b69c26b2b780880db164d08b6de9420f6ec5a0ee01eb23aa5d78a4b141f2b65b3670e71906471bf + languageName: node + linkType: hard + +"@babel/helper-define-polyfill-provider@npm:^0.4.3": + version: 0.4.3 + resolution: "@babel/helper-define-polyfill-provider@npm:0.4.3" + dependencies: + "@babel/helper-compilation-targets": "npm:^7.22.6" + "@babel/helper-plugin-utils": "npm:^7.22.5" + debug: "npm:^4.1.1" + lodash.debounce: "npm:^4.0.8" + resolve: "npm:^1.14.2" + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: 9ab9d6a2cfaffc44f8b7ad661b642b03f31597282557686b7f4c64f67acd3c5844d4eac028e63d238819bcec0549ddef7dc0539d10966ace96f4c61e97b33138 + languageName: node + linkType: hard + "@babel/helper-define-polyfill-provider@npm:^0.4.4": version: 0.4.4 resolution: "@babel/helper-define-polyfill-provider@npm:0.4.4" @@ -1397,7 +2271,21 @@ __metadata: languageName: node linkType: hard -"@babel/helper-function-name@npm:^7.21.0, @babel/helper-function-name@npm:^7.22.5, @babel/helper-function-name@npm:^7.23.0": +"@babel/helper-environment-visitor@npm:^7.22.1": + version: 7.22.1 + resolution: "@babel/helper-environment-visitor@npm:7.22.1" + checksum: a6b4bb5505453bff95518d361ac1de393f0029aeb8b690c70540f4317934c53c43cc4afcda8c752ffa8c272e63ed6b929a56eca28e4978424177b24238b21bf9 + languageName: node + linkType: hard + +"@babel/helper-environment-visitor@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/helper-environment-visitor@npm:7.22.5" + checksum: 248532077d732a34cd0844eb7b078ff917c3a8ec81a7f133593f71a860a582f05b60f818dc5049c2212e5baa12289c27889a4b81d56ef409b4863db49646c4b1 + languageName: node + linkType: hard + +"@babel/helper-function-name@npm:^7.21.0, @babel/helper-function-name@npm:^7.23.0": version: 7.23.0 resolution: "@babel/helper-function-name@npm:7.23.0" dependencies: @@ -1407,6 +2295,16 @@ __metadata: languageName: node linkType: hard +"@babel/helper-function-name@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/helper-function-name@npm:7.22.5" + dependencies: + "@babel/template": "npm:^7.22.5" + "@babel/types": "npm:^7.22.5" + checksum: 6d02e304a45fe2a64d69dfa5b4fdfd6d68e08deb32b0a528e7b99403d664e9207e6b856787a8ff3f420e77d15987ac1de4eb869906e6ed764b67b07c804d20ba + languageName: node + linkType: hard + "@babel/helper-get-function-arity@npm:7.16.7": version: 7.16.7 resolution: "@babel/helper-get-function-arity@npm:7.16.7" @@ -1434,6 +2332,15 @@ __metadata: languageName: node linkType: hard +"@babel/helper-member-expression-to-functions@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/helper-member-expression-to-functions@npm:7.22.5" + dependencies: + "@babel/types": "npm:^7.22.5" + checksum: bb51f195c17d8d98ca5fda630fed436643d27f094f3c936f670b43cb05865f192900f455ffb730c8d4310702b2211996a90354fd55ae8659b096bc6c75d36ec5 + languageName: node + linkType: hard + "@babel/helper-module-imports@npm:^7.21.4, @babel/helper-module-imports@npm:^7.22.15": version: 7.22.15 resolution: "@babel/helper-module-imports@npm:7.22.15" @@ -1443,7 +2350,16 @@ __metadata: languageName: node linkType: hard -"@babel/helper-module-transforms@npm:^7.21.5, @babel/helper-module-transforms@npm:^7.22.1, @babel/helper-module-transforms@npm:^7.22.9, @babel/helper-module-transforms@npm:^7.23.3": +"@babel/helper-module-imports@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/helper-module-imports@npm:7.22.5" + dependencies: + "@babel/types": "npm:^7.22.5" + checksum: d8296447c0cdc3c02417ba32864da3374e53bd2763a6c404aae118987c222c47238d9d1f4fd2a88250a85e0a68eff38d878c491b00c56d9bd20e809f91eb41b4 + languageName: node + linkType: hard + +"@babel/helper-module-transforms@npm:^7.21.5, @babel/helper-module-transforms@npm:^7.22.9, @babel/helper-module-transforms@npm:^7.23.3": version: 7.23.3 resolution: "@babel/helper-module-transforms@npm:7.23.3" dependencies: @@ -1458,6 +2374,53 @@ __metadata: languageName: node linkType: hard +"@babel/helper-module-transforms@npm:^7.22.1": + version: 7.22.1 + resolution: "@babel/helper-module-transforms@npm:7.22.1" + dependencies: + "@babel/helper-environment-visitor": "npm:^7.22.1" + "@babel/helper-module-imports": "npm:^7.21.4" + "@babel/helper-simple-access": "npm:^7.21.5" + "@babel/helper-split-export-declaration": "npm:^7.18.6" + "@babel/helper-validator-identifier": "npm:^7.19.1" + "@babel/template": "npm:^7.21.9" + "@babel/traverse": "npm:^7.22.1" + "@babel/types": "npm:^7.22.0" + checksum: 66a6a964dbf64342ff9d07627b88ea12de13734b15df70cdf397ea91c8068a4b9d32ddf8dad348c5980c2c09db8ea1f1cdb9cf1b65a0f469e5b9294653c7d0a6 + languageName: node + linkType: hard + +"@babel/helper-module-transforms@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/helper-module-transforms@npm:7.22.5" + dependencies: + "@babel/helper-environment-visitor": "npm:^7.22.5" + "@babel/helper-module-imports": "npm:^7.22.5" + "@babel/helper-simple-access": "npm:^7.22.5" + "@babel/helper-split-export-declaration": "npm:^7.22.5" + "@babel/helper-validator-identifier": "npm:^7.22.5" + "@babel/template": "npm:^7.22.5" + "@babel/traverse": "npm:^7.22.5" + "@babel/types": "npm:^7.22.5" + checksum: 1ebe1e0458f7eaaf085953888df4311ca1a2cdac15a656c63a7f9c5ecd003993cf3eb41ad1545d0e41039955f8d2f8fa64747a9419ae32bbf5bea532a51fa9f4 + languageName: node + linkType: hard + +"@babel/helper-module-transforms@npm:^7.23.0": + version: 7.23.0 + resolution: "@babel/helper-module-transforms@npm:7.23.0" + dependencies: + "@babel/helper-environment-visitor": "npm:^7.22.20" + "@babel/helper-module-imports": "npm:^7.22.15" + "@babel/helper-simple-access": "npm:^7.22.5" + "@babel/helper-split-export-declaration": "npm:^7.22.6" + "@babel/helper-validator-identifier": "npm:^7.22.20" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: d72fe444f7b6c5aadaac8f393298d603eedd48e5dead67273a48e5c83a677cbccbd8a12a06c5bf5d97924666083279158a4bd0e799d28b86cbbfacba9e41f598 + languageName: node + linkType: hard + "@babel/helper-optimise-call-expression@npm:^7.22.5": version: 7.22.5 resolution: "@babel/helper-optimise-call-expression@npm:7.22.5" @@ -1467,7 +2430,14 @@ __metadata: languageName: node linkType: hard -"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.16.7, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.18.9, @babel/helper-plugin-utils@npm:^7.20.2, @babel/helper-plugin-utils@npm:^7.21.5, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.24.0, @babel/helper-plugin-utils@npm:^7.8.0, @babel/helper-plugin-utils@npm:^7.8.3": +"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.16.7, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.18.9, @babel/helper-plugin-utils@npm:^7.20.2, @babel/helper-plugin-utils@npm:^7.21.5, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.8.0, @babel/helper-plugin-utils@npm:^7.8.3": + version: 7.22.5 + resolution: "@babel/helper-plugin-utils@npm:7.22.5" + checksum: ab220db218089a2aadd0582f5833fd17fa300245999f5f8784b10f5a75267c4e808592284a29438a0da365e702f05acb369f99e1c915c02f9f9210ec60eab8ea + languageName: node + linkType: hard + +"@babel/helper-plugin-utils@npm:^7.24.0": version: 7.24.0 resolution: "@babel/helper-plugin-utils@npm:7.24.0" checksum: dc8c7af321baf7653d93315beffee1790eb2c464b4f529273a24c8743a3f3095bf3f2d11828cb2c52d56282ef43a4bdc67a79c9ab8dd845e35d01871f3f28a0e @@ -1487,6 +2457,19 @@ __metadata: languageName: node linkType: hard +"@babel/helper-remap-async-to-generator@npm:^7.22.5": + version: 7.22.9 + resolution: "@babel/helper-remap-async-to-generator@npm:7.22.9" + dependencies: + "@babel/helper-annotate-as-pure": "npm:^7.22.5" + "@babel/helper-environment-visitor": "npm:^7.22.5" + "@babel/helper-wrap-function": "npm:^7.22.9" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 05538079447829b13512157491cc77f9cf1ea7e1680e15cff0682c3ed9ee162de0c4862ece20a6d6b2df28177a1520bcfe45993fbeccf2747a81795a7c3f6290 + languageName: node + linkType: hard + "@babel/helper-replace-supers@npm:^7.22.20": version: 7.22.20 resolution: "@babel/helper-replace-supers@npm:7.22.20" @@ -1500,6 +2483,28 @@ __metadata: languageName: node linkType: hard +"@babel/helper-replace-supers@npm:^7.22.5, @babel/helper-replace-supers@npm:^7.22.9": + version: 7.22.9 + resolution: "@babel/helper-replace-supers@npm:7.22.9" + dependencies: + "@babel/helper-environment-visitor": "npm:^7.22.5" + "@babel/helper-member-expression-to-functions": "npm:^7.22.5" + "@babel/helper-optimise-call-expression": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: b5a740a95f12250b67afe30574ad60fa44175db92441658c6c3e8f473fcb8f8eaffd24fdad436cdfa1beee21b470d1190d64a0bb97b444525ca952e6cc081dc9 + languageName: node + linkType: hard + +"@babel/helper-simple-access@npm:^7.21.5": + version: 7.21.5 + resolution: "@babel/helper-simple-access@npm:7.21.5" + dependencies: + "@babel/types": "npm:^7.21.5" + checksum: a31207d263b860f470f0ba3bf7c5262de8d1119fa6ed3f69ee64692e3336c21b9044dce89732bb8a4c2cf50b7478157b43dc632818d3cbae49b2fd7313c9b99d + languageName: node + linkType: hard + "@babel/helper-simple-access@npm:^7.22.5": version: 7.22.5 resolution: "@babel/helper-simple-access@npm:7.22.5" @@ -1527,6 +2532,15 @@ __metadata: languageName: node linkType: hard +"@babel/helper-split-export-declaration@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/helper-split-export-declaration@npm:7.22.5" + dependencies: + "@babel/types": "npm:^7.22.5" + checksum: d10e05a02f49c1f7c578cea63d2ac55356501bbf58856d97ac9bfde4957faee21ae97c7f566aa309e38a256eef58b58e5b670a7f568b362c00e93dfffe072650 + languageName: node + linkType: hard + "@babel/helper-string-parser@npm:^7.21.5, @babel/helper-string-parser@npm:^7.23.4": version: 7.23.4 resolution: "@babel/helper-string-parser@npm:7.23.4" @@ -1534,6 +2548,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-string-parser@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/helper-string-parser@npm:7.22.5" + checksum: 7f275a7f1a9504da06afc33441e219796352a4a3d0288a961bc14d1e30e06833a71621b33c3e60ee3ac1ff3c502d55e392bcbc0665f6f9d2629809696fab7cdd + languageName: node + linkType: hard + "@babel/helper-validator-identifier@npm:^7.19.1, @babel/helper-validator-identifier@npm:^7.22.20": version: 7.22.20 resolution: "@babel/helper-validator-identifier@npm:7.22.20" @@ -1541,13 +2562,34 @@ __metadata: languageName: node linkType: hard -"@babel/helper-validator-option@npm:^7.21.0, @babel/helper-validator-option@npm:^7.22.15, @babel/helper-validator-option@npm:^7.22.5, @babel/helper-validator-option@npm:^7.23.5": +"@babel/helper-validator-identifier@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/helper-validator-identifier@npm:7.22.5" + checksum: 12cb7d4535b3f8d109a446f7bef08d20eebe94fd97b534cd415c936ab342e9634edc5c99961af976bd78bcae6e6ec4b2ab8483d0da2ac5926fbe9f7dd9ab28ab + languageName: node + linkType: hard + +"@babel/helper-validator-option@npm:^7.21.0, @babel/helper-validator-option@npm:^7.23.5": version: 7.23.5 resolution: "@babel/helper-validator-option@npm:7.23.5" checksum: 537cde2330a8aede223552510e8a13e9c1c8798afee3757995a7d4acae564124fe2bf7e7c3d90d62d3657434a74340a274b3b3b1c6f17e9a2be1f48af29cb09e languageName: node linkType: hard +"@babel/helper-validator-option@npm:^7.22.15": + version: 7.22.15 + resolution: "@babel/helper-validator-option@npm:7.22.15" + checksum: 68da52b1e10002a543161494c4bc0f4d0398c8fdf361d5f7f4272e95c45d5b32d974896d44f6a0ea7378c9204988879d73613ca683e13bd1304e46d25ff67a8d + languageName: node + linkType: hard + +"@babel/helper-validator-option@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/helper-validator-option@npm:7.22.5" + checksum: bbeca8a85ee86990215c0424997438b388b8d642d69b9f86c375a174d3cdeb270efafd1ff128bc7a1d370923d13b6e45829ba8581c027620e83e3a80c5c414b3 + languageName: node + linkType: hard + "@babel/helper-wrap-function@npm:^7.22.20": version: 7.22.20 resolution: "@babel/helper-wrap-function@npm:7.22.20" @@ -1559,14 +2601,80 @@ __metadata: languageName: node linkType: hard -"@babel/helpers@npm:^7.21.5, @babel/helpers@npm:^7.22.0, @babel/helpers@npm:^7.22.6, @babel/helpers@npm:^7.24.0": - version: 7.24.0 - resolution: "@babel/helpers@npm:7.24.0" +"@babel/helper-wrap-function@npm:^7.22.9": + version: 7.22.9 + resolution: "@babel/helper-wrap-function@npm:7.22.9" + dependencies: + "@babel/helper-function-name": "npm:^7.22.5" + "@babel/template": "npm:^7.22.5" + "@babel/types": "npm:^7.22.5" + checksum: 5ac86fe27b92d5fd866b4021644bbbae34b76af4c0a568ed854e10c25481c2cd56a81919aac5df270e8ebef788d62074195236adbf3a4039ecd93e0e8e83a3f5 + languageName: node + linkType: hard + +"@babel/helpers@npm:^7.21.5, @babel/helpers@npm:^7.22.6, @babel/helpers@npm:^7.23.7": + version: 7.23.7 + resolution: "@babel/helpers@npm:7.23.7" + dependencies: + "@babel/template": "npm:^7.22.15" + "@babel/traverse": "npm:^7.23.7" + "@babel/types": "npm:^7.23.6" + checksum: ec07061dc871d406ed82c8757c4d7a510aaf15145799fb0a2c3bd3c72ca101fe82a02dd5f83ca604fbbba5de5408dd731bb1452150562bed4f3b0a2846f81f61 + languageName: node + linkType: hard + +"@babel/helpers@npm:^7.22.0": + version: 7.22.3 + resolution: "@babel/helpers@npm:7.22.3" + dependencies: + "@babel/template": "npm:^7.21.9" + "@babel/traverse": "npm:^7.22.1" + "@babel/types": "npm:^7.22.3" + checksum: 8f178283d93998177dd4b37cd697b57b2d01476dff46b80a231afe822db1e937c086e6f26a24cb1ea75750161b8dd91be736300c70d0d37879c5476949a301f8 + languageName: node + linkType: hard + +"@babel/helpers@npm:^7.23.2": + version: 7.23.2 + resolution: "@babel/helpers@npm:7.23.2" + dependencies: + "@babel/template": "npm:^7.22.15" + "@babel/traverse": "npm:^7.23.2" + "@babel/types": "npm:^7.23.0" + checksum: d66d949d41513f19e62e43a9426e283d46bc9a3c72f1e3dd136568542382edd411047403458aaa0ae3adf7c14d23e0e9a1126092bb56e72ba796a6dd7e4c082a + languageName: node + linkType: hard + +"@babel/helpers@npm:^7.23.5": + version: 7.23.5 + resolution: "@babel/helpers@npm:7.23.5" + dependencies: + "@babel/template": "npm:^7.22.15" + "@babel/traverse": "npm:^7.23.5" + "@babel/types": "npm:^7.23.5" + checksum: 84a813db55e03b5f47cef1210eb22751dae5dc3605bf62ff9acd4c248d857f94cb43dc7299e0edcec9312b31088f0d77f881282df2957e65a322b5412801cc24 + languageName: node + linkType: hard + +"@babel/highlight@npm:^7.22.13": + version: 7.22.20 + resolution: "@babel/highlight@npm:7.22.20" dependencies: - "@babel/template": "npm:^7.24.0" - "@babel/traverse": "npm:^7.24.0" - "@babel/types": "npm:^7.24.0" - checksum: cc82012161b30185c2698da359c7311cf019f0932f8fcb805e985fec9e0053c354f0534dc9961f3170eee579df6724eecd34b0f5ffaa155cdd456af59fbff86e + "@babel/helper-validator-identifier": "npm:^7.22.20" + chalk: "npm:^2.4.2" + js-tokens: "npm:^4.0.0" + checksum: 1aabc95b2cb7f67adc26c7049554306f1435bfedb76b9731c36ff3d7cdfcb32bd65a6dd06985644124eb2100bd911721d9e5c4f5ac40b7f0da2995a61bf8da92 + languageName: node + linkType: hard + +"@babel/highlight@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/highlight@npm:7.22.5" + dependencies: + "@babel/helper-validator-identifier": "npm:^7.22.5" + chalk: "npm:^2.0.0" + js-tokens: "npm:^4.0.0" + checksum: ff59305c0184648c9cb042638e9d2d184c12df2a112c71359268a982e7ab65cd5236f392ee8eb722a3bf5b5bd155954fdc7b5aacb6b2b1cd5e38dafcbe63cc57 languageName: node linkType: hard @@ -1608,34 +2716,70 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.13.16, @babel/parser@npm:^7.14.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.16.8, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.21.5, @babel/parser@npm:^7.21.8, @babel/parser@npm:^7.22.0, @babel/parser@npm:^7.22.5, @babel/parser@npm:^7.22.7, @babel/parser@npm:^7.23.0, @babel/parser@npm:^7.24.0": - version: 7.24.0 - resolution: "@babel/parser@npm:7.24.0" +"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.13.16, @babel/parser@npm:^7.14.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.16.8, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.21.5, @babel/parser@npm:^7.21.8, @babel/parser@npm:^7.23.6": + version: 7.23.6 + resolution: "@babel/parser@npm:7.23.6" bin: parser: ./bin/babel-parser.js - checksum: 3e5ebb903a6f71629a9d0226743e37fe3d961e79911d2698b243637f66c4df7e3e0a42c07838bc0e7cc9fcd585d9be8f4134a145b9459ee4a459420fb0d1360b + checksum: 6be3a63d3c9d07b035b5a79c022327cb7e16cbd530140ecb731f19a650c794c315a72c699a22413ebeafaff14aa8f53435111898d59e01a393d741b85629fa7d languageName: node linkType: hard -"@babel/parser@npm:~7.21.2": - version: 7.21.9 - resolution: "@babel/parser@npm:7.21.9" +"@babel/parser@npm:^7.21.9, @babel/parser@npm:^7.22.0, @babel/parser@npm:^7.22.4, @babel/parser_latest@npm:@babel/parser@7.22.4": + version: 7.22.4 + resolution: "@babel/parser@npm:7.22.4" bin: parser: ./bin/babel-parser.js - checksum: 5c92a0b3981aa9e67e9bc783d4c0674838598ac0c8b8aa110d16e8096a5292213027b6a28b7899aa6490df6a6b02848b6adf95034bee1b9c0738197b7371ac96 + checksum: 35f2777452d1371e76f8861a8e69c77df000af5aef3b3020b5da783ba6376cc6de088fcfc193ad7acf6cd7646df5b83be58b7fb8c84d59a4588fd1d8ad43289a languageName: node linkType: hard -"@babel/parser_latest@npm:@babel/parser@7.22.4": - version: 7.22.4 - resolution: "@babel/parser@npm:7.22.4" +"@babel/parser@npm:^7.22.15, @babel/parser@npm:^7.23.0": + version: 7.23.0 + resolution: "@babel/parser@npm:7.23.0" bin: parser: ./bin/babel-parser.js - checksum: 35f2777452d1371e76f8861a8e69c77df000af5aef3b3020b5da783ba6376cc6de088fcfc193ad7acf6cd7646df5b83be58b7fb8c84d59a4588fd1d8ad43289a + checksum: 201641e068f8cca1ff12b141fcba32d7ccbabc586961bd1b85ae89d9695867f84d57fc2e1176dc4981fd28e5e97ca0e7c32cd688bd5eabb641a302abc0cb5040 + languageName: node + linkType: hard + +"@babel/parser@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/parser@npm:7.22.5" + bin: + parser: ./bin/babel-parser.js + checksum: 46525855c9290e455a548336bfbb4dddb5ced0f213e982fa50f459995c747da3ff196b8603b093ad39a498d66069ca3cc1111c47a6424b521831ca02f706ccbf + languageName: node + linkType: hard + +"@babel/parser@npm:^7.22.7": + version: 7.22.7 + resolution: "@babel/parser@npm:7.22.7" + bin: + parser: ./bin/babel-parser.js + checksum: f420f89ea8e5803a44f76a57630002ca5721fbde719c10ac4eaebf1d01fad102447cd90a7721c97b1176bde33ec9bc2b68fe8c7d541668dc6610727ba79c8862 + languageName: node + linkType: hard + +"@babel/parser@npm:^7.23.5": + version: 7.23.5 + resolution: "@babel/parser@npm:7.23.5" + bin: + parser: ./bin/babel-parser.js + checksum: 828c250ace0c58f9dc311fd13ad3da34e86ed27a5c6b4183ce9d85be250e78eeb71a13f6d51a368c46f8cbe51106c726bfbb158bf46a89db3a168a0002d3050a + languageName: node + linkType: hard + +"@babel/parser@npm:~7.21.2": + version: 7.21.9 + resolution: "@babel/parser@npm:7.21.9" + bin: + parser: ./bin/babel-parser.js + checksum: 5c92a0b3981aa9e67e9bc783d4c0674838598ac0c8b8aa110d16e8096a5292213027b6a28b7899aa6490df6a6b02848b6adf95034bee1b9c0738197b7371ac96 languageName: node linkType: hard -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.18.6, @babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.22.5, @babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.23.3": +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.18.6, @babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.23.3" dependencies: @@ -1646,7 +2790,18 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.20.7, @babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.22.3, @babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.22.5, @babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.23.3": +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 1e353a060fb2cd8f1256d28cd768f16fb02513f905b9b6d656fb0242c96c341a196fa188b27c2701506a6e27515359fbcc1a5ca7fa8b9b530cf88fbd137baefc + languageName: node + linkType: hard + +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.20.7, @babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.23.3" dependencies: @@ -1659,6 +2814,44 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.22.3": + version: 7.22.3 + resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.22.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.21.5" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.20.0" + "@babel/plugin-transform-optional-chaining": "npm:^7.22.3" + peerDependencies: + "@babel/core": ^7.13.0 + checksum: d786e4d89c0674cab4fb65e804920782b2ff8319a3e6c561c81b0265451f4ac9f8ce1f9699303398636352b5177730e31c219a086b72980bf39f98faadeab3c1 + languageName: node + linkType: hard + +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.22.5" + "@babel/plugin-transform-optional-chaining": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.13.0 + checksum: 16e7a5f3bf2f2ac0ca032a70bf0ebd7e886d84dbb712b55c0643c04c495f0f221fbcbca14b5f8f8027fa6c87a3dafae0934022ad2b409384af6c5c356495b7bd + languageName: node + linkType: hard + +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.23.3" + dependencies: + "@babel/helper-environment-visitor": "npm:^7.22.20" + "@babel/helper-plugin-utils": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 6e13f14949eb943d33cf4d3775a7195fa93c92851dfb648931038e9eb92a9b1709fdaa5a0ff6cf063cfcd68b3e52d280f3ebc0f3085b3e006e64dd6196ecb72a + languageName: node + linkType: hard + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.23.7": version: 7.23.7 resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.23.7" @@ -1959,7 +3152,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-import-assertions@npm:^7.20.0, @babel/plugin-syntax-import-assertions@npm:^7.22.5, @babel/plugin-syntax-import-assertions@npm:^7.23.3": +"@babel/plugin-syntax-import-assertions@npm:^7.20.0, @babel/plugin-syntax-import-assertions@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-syntax-import-assertions@npm:7.23.3" dependencies: @@ -1970,7 +3163,18 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-import-attributes@npm:^7.22.3, @babel/plugin-syntax-import-attributes@npm:^7.22.5, @babel/plugin-syntax-import-attributes@npm:^7.23.3": +"@babel/plugin-syntax-import-assertions@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-syntax-import-assertions@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 2b8b5572db04a7bef1e6cd20debf447e4eef7cb012616f5eceb8fa3e23ce469b8f76ee74fd6d1e158ba17a8f58b0aec579d092fb67c5a30e83ccfbc5754916c1 + languageName: node + linkType: hard + +"@babel/plugin-syntax-import-attributes@npm:^7.22.3, @babel/plugin-syntax-import-attributes@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-syntax-import-attributes@npm:7.23.3" dependencies: @@ -1981,6 +3185,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-syntax-import-attributes@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-syntax-import-attributes@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 197b3c5ea2a9649347f033342cb222ab47f4645633695205c0250c6bf2af29e643753b8bb24a2db39948bef08e7c540babfd365591eb57fc110cb30b425ffc47 + languageName: node + linkType: hard + "@babel/plugin-syntax-import-meta@npm:^7.10.4": version: 7.10.4 resolution: "@babel/plugin-syntax-import-meta@npm:7.10.4" @@ -2014,6 +3229,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-syntax-jsx@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-syntax-jsx@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 8829d30c2617ab31393d99cec2978e41f014f4ac6f01a1cecf4c4dd8320c3ec12fdc3ce121126b2d8d32f6887e99ca1a0bad53dedb1e6ad165640b92b24980ce + languageName: node + linkType: hard + "@babel/plugin-syntax-logical-assignment-operators@npm:^7.10.4": version: 7.10.4 resolution: "@babel/plugin-syntax-logical-assignment-operators@npm:7.10.4" @@ -2102,6 +3328,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-syntax-typescript@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-syntax-typescript@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 8ab7718fbb026d64da93681a57797d60326097fd7cb930380c8bffd9eb101689e90142c760a14b51e8e69c88a73ba3da956cb4520a3b0c65743aee5c71ef360a + languageName: node + linkType: hard + "@babel/plugin-syntax-typescript@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-syntax-typescript@npm:7.23.3" @@ -2125,7 +3362,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-arrow-functions@npm:^7.0.0, @babel/plugin-transform-arrow-functions@npm:^7.21.5, @babel/plugin-transform-arrow-functions@npm:^7.22.5, @babel/plugin-transform-arrow-functions@npm:^7.23.3": +"@babel/plugin-transform-arrow-functions@npm:^7.0.0, @babel/plugin-transform-arrow-functions@npm:^7.21.5, @babel/plugin-transform-arrow-functions@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-arrow-functions@npm:7.23.3" dependencies: @@ -2136,9 +3373,48 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-async-generator-functions@npm:^7.22.3, @babel/plugin-transform-async-generator-functions@npm:^7.22.7, @babel/plugin-transform-async-generator-functions@npm:^7.23.9": - version: 7.23.9 - resolution: "@babel/plugin-transform-async-generator-functions@npm:7.23.9" +"@babel/plugin-transform-arrow-functions@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-arrow-functions@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 35abb6c57062802c7ce8bd96b2ef2883e3124370c688bbd67609f7d2453802fb73944df8808f893b6c67de978eb2bcf87bbfe325e46d6f39b5fcb09ece11d01a + languageName: node + linkType: hard + +"@babel/plugin-transform-async-generator-functions@npm:^7.22.3, @babel/plugin-transform-async-generator-functions@npm:^7.23.7": + version: 7.23.7 + resolution: "@babel/plugin-transform-async-generator-functions@npm:7.23.7" + dependencies: + "@babel/helper-environment-visitor": "npm:^7.22.20" + "@babel/helper-plugin-utils": "npm:^7.22.5" + "@babel/helper-remap-async-to-generator": "npm:^7.22.20" + "@babel/plugin-syntax-async-generators": "npm:^7.8.4" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: b1f66b23423933c27336b1161ac92efef46683321caea97e2255a666f992979376f47a5559f64188d3831fa66a4b24c2a7a40838cc0e9737e90eebe20e8e6372 + languageName: node + linkType: hard + +"@babel/plugin-transform-async-generator-functions@npm:^7.22.7": + version: 7.22.7 + resolution: "@babel/plugin-transform-async-generator-functions@npm:7.22.7" + dependencies: + "@babel/helper-environment-visitor": "npm:^7.22.5" + "@babel/helper-plugin-utils": "npm:^7.22.5" + "@babel/helper-remap-async-to-generator": "npm:^7.22.5" + "@babel/plugin-syntax-async-generators": "npm:^7.8.4" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 89d307629dc4d8838252cc12b56f8bff2f8de790abe2ee8cc0d112094dfc7fd653b47c629834dda8d26c624ca3c3c73f165e956badf9239c951bba4c97affad2 + languageName: node + linkType: hard + +"@babel/plugin-transform-async-generator-functions@npm:^7.23.4": + version: 7.23.4 + resolution: "@babel/plugin-transform-async-generator-functions@npm:7.23.4" dependencies: "@babel/helper-environment-visitor": "npm:^7.22.20" "@babel/helper-plugin-utils": "npm:^7.22.5" @@ -2146,11 +3422,11 @@ __metadata: "@babel/plugin-syntax-async-generators": "npm:^7.8.4" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: d402494087a6b803803eb5ab46b837aab100a04c4c5148e38bfa943ea1bbfc1ecfb340f1ced68972564312d3580f550c125f452372e77607a558fbbaf98c31c0 + checksum: e2fc132c9033711d55209f4781e1fc73f0f4da5e0ca80a2da73dec805166b73c92a6e83571a8994cd2c893a28302e24107e90856202b24781bab734f800102bb languageName: node linkType: hard -"@babel/plugin-transform-async-to-generator@npm:^7.20.7, @babel/plugin-transform-async-to-generator@npm:^7.22.5, @babel/plugin-transform-async-to-generator@npm:^7.23.3": +"@babel/plugin-transform-async-to-generator@npm:^7.20.7, @babel/plugin-transform-async-to-generator@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-async-to-generator@npm:7.23.3" dependencies: @@ -2163,7 +3439,20 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-block-scoped-functions@npm:^7.0.0, @babel/plugin-transform-block-scoped-functions@npm:^7.18.6, @babel/plugin-transform-block-scoped-functions@npm:^7.22.5, @babel/plugin-transform-block-scoped-functions@npm:^7.23.3": +"@babel/plugin-transform-async-to-generator@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-async-to-generator@npm:7.22.5" + dependencies: + "@babel/helper-module-imports": "npm:^7.22.5" + "@babel/helper-plugin-utils": "npm:^7.22.5" + "@babel/helper-remap-async-to-generator": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: b95f23f99dcb379a9f0a1c2a3bbea3f8dc0e1b16dc1ac8b484fe378370169290a7a63d520959a9ba1232837cf74a80e23f6facbe14fd42a3cda6d3c2d7168e62 + languageName: node + linkType: hard + +"@babel/plugin-transform-block-scoped-functions@npm:^7.0.0, @babel/plugin-transform-block-scoped-functions@npm:^7.18.6, @babel/plugin-transform-block-scoped-functions@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.23.3" dependencies: @@ -2174,7 +3463,18 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-block-scoping@npm:^7.0.0, @babel/plugin-transform-block-scoping@npm:^7.21.0, @babel/plugin-transform-block-scoping@npm:^7.22.5, @babel/plugin-transform-block-scoping@npm:^7.23.4": +"@babel/plugin-transform-block-scoped-functions@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 416b1341858e8ca4e524dee66044735956ced5f478b2c3b9bc11ec2285b0c25d7dbb96d79887169eb938084c95d0a89338c8b2fe70d473bd9dc92e5d9db1732c + languageName: node + linkType: hard + +"@babel/plugin-transform-block-scoping@npm:^7.0.0, @babel/plugin-transform-block-scoping@npm:^7.21.0, @babel/plugin-transform-block-scoping@npm:^7.23.4": version: 7.23.4 resolution: "@babel/plugin-transform-block-scoping@npm:7.23.4" dependencies: @@ -2185,7 +3485,18 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-class-properties@npm:^7.22.3, @babel/plugin-transform-class-properties@npm:^7.22.5, @babel/plugin-transform-class-properties@npm:^7.23.3": +"@babel/plugin-transform-block-scoping@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-block-scoping@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: ecfff46f51daed83a0c7dc5de237b9e09028f40f21d4f3552d2ed0d341e81d3194ffcd0a873dd83ec8d33ffb822666c14dc2d99ae010362e4c1a546416cdd4cf + languageName: node + linkType: hard + +"@babel/plugin-transform-class-properties@npm:^7.22.3, @babel/plugin-transform-class-properties@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-class-properties@npm:7.23.3" dependencies: @@ -2197,7 +3508,19 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-class-static-block@npm:^7.22.3, @babel/plugin-transform-class-static-block@npm:^7.22.5, @babel/plugin-transform-class-static-block@npm:^7.23.4": +"@babel/plugin-transform-class-properties@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-class-properties@npm:7.22.5" + dependencies: + "@babel/helper-create-class-features-plugin": "npm:^7.22.5" + "@babel/helper-plugin-utils": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: b830152dfc2ff2f647f0abe76e6251babdfbef54d18c4b2c73a6bf76b1a00050a5d998dac80dc901a48514e95604324943a9dd39317073fe0928b559e0e0c579 + languageName: node + linkType: hard + +"@babel/plugin-transform-class-static-block@npm:^7.22.3, @babel/plugin-transform-class-static-block@npm:^7.23.4": version: 7.23.4 resolution: "@babel/plugin-transform-class-static-block@npm:7.23.4" dependencies: @@ -2210,25 +3533,58 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-classes@npm:^7.0.0, @babel/plugin-transform-classes@npm:^7.21.0, @babel/plugin-transform-classes@npm:^7.22.6, @babel/plugin-transform-classes@npm:^7.23.8": - version: 7.23.8 - resolution: "@babel/plugin-transform-classes@npm:7.23.8" +"@babel/plugin-transform-class-static-block@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-class-static-block@npm:7.22.5" + dependencies: + "@babel/helper-create-class-features-plugin": "npm:^7.22.5" + "@babel/helper-plugin-utils": "npm:^7.22.5" + "@babel/plugin-syntax-class-static-block": "npm:^7.14.5" + peerDependencies: + "@babel/core": ^7.12.0 + checksum: bc48b92dbaf625a14f2bf62382384eef01e0515802426841636ae9146e27395d068c7a8a45e9e15699491b0a01d990f38f179cbc9dc89274a393f85648772f12 + languageName: node + linkType: hard + +"@babel/plugin-transform-classes@npm:^7.0.0, @babel/plugin-transform-classes@npm:^7.21.0, @babel/plugin-transform-classes@npm:^7.23.5": + version: 7.23.5 + resolution: "@babel/plugin-transform-classes@npm:7.23.5" dependencies: "@babel/helper-annotate-as-pure": "npm:^7.22.5" - "@babel/helper-compilation-targets": "npm:^7.23.6" + "@babel/helper-compilation-targets": "npm:^7.22.15" "@babel/helper-environment-visitor": "npm:^7.22.20" "@babel/helper-function-name": "npm:^7.23.0" + "@babel/helper-optimise-call-expression": "npm:^7.22.5" "@babel/helper-plugin-utils": "npm:^7.22.5" "@babel/helper-replace-supers": "npm:^7.22.20" "@babel/helper-split-export-declaration": "npm:^7.22.6" globals: "npm:^11.1.0" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 4bb4b19e7a39871c4414fb44fc5f2cc47c78f993b74c43238dfb99c9dac2d15cb99b43f8a3d42747580e1807d2b8f5e13ce7e95e593fd839bd176aa090bf9a23 + checksum: f6c4fed2f48bdd46a4726b829ea2ddb5c9c97edd0e55dc53791d82927daad5725052b7e785a8b7e90a53b0606166b9c554469dc94f10fba59ca9642e997d97ee + languageName: node + linkType: hard + +"@babel/plugin-transform-classes@npm:^7.22.6": + version: 7.22.6 + resolution: "@babel/plugin-transform-classes@npm:7.22.6" + dependencies: + "@babel/helper-annotate-as-pure": "npm:^7.22.5" + "@babel/helper-compilation-targets": "npm:^7.22.6" + "@babel/helper-environment-visitor": "npm:^7.22.5" + "@babel/helper-function-name": "npm:^7.22.5" + "@babel/helper-optimise-call-expression": "npm:^7.22.5" + "@babel/helper-plugin-utils": "npm:^7.22.5" + "@babel/helper-replace-supers": "npm:^7.22.5" + "@babel/helper-split-export-declaration": "npm:^7.22.6" + globals: "npm:^11.1.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 9b2f653d12ade0302f8b01a0f647cdbe5e5874984bf85f65e445fb5f660abe0347dd7e45bebc376aa4e096e607f62af73fc44a7e67765cfbe387b632ec8867f9 languageName: node linkType: hard -"@babel/plugin-transform-computed-properties@npm:^7.0.0, @babel/plugin-transform-computed-properties@npm:^7.21.5, @babel/plugin-transform-computed-properties@npm:^7.22.5, @babel/plugin-transform-computed-properties@npm:^7.23.3": +"@babel/plugin-transform-computed-properties@npm:^7.0.0, @babel/plugin-transform-computed-properties@npm:^7.21.5, @babel/plugin-transform-computed-properties@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-computed-properties@npm:7.23.3" dependencies: @@ -2240,7 +3596,19 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-destructuring@npm:^7.0.0, @babel/plugin-transform-destructuring@npm:^7.21.3, @babel/plugin-transform-destructuring@npm:^7.22.5, @babel/plugin-transform-destructuring@npm:^7.23.3": +"@babel/plugin-transform-computed-properties@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-computed-properties@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.22.5" + "@babel/template": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: a3efa8de19e4c52f01a99301d864819a7997a7845044d9cef5b67b0fb1e5e3e610ecc23053a8b5cf8fe40fcad93c15a586eaeffd22b89eeaa038339c37919661 + languageName: node + linkType: hard + +"@babel/plugin-transform-destructuring@npm:^7.0.0, @babel/plugin-transform-destructuring@npm:^7.21.3, @babel/plugin-transform-destructuring@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-destructuring@npm:7.23.3" dependencies: @@ -2251,7 +3619,42 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-dotall-regex@npm:^7.18.6, @babel/plugin-transform-dotall-regex@npm:^7.22.5, @babel/plugin-transform-dotall-regex@npm:^7.23.3, @babel/plugin-transform-dotall-regex@npm:^7.4.4": +"@babel/plugin-transform-destructuring@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-destructuring@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: b568c51bc80d9c941a5285b010d694345a1ae50b45bf5eb6c591b3a31303ac920150fc8c1cc810692d139dd3c60285f5bdc250dae58b5a227597f76bffbd9b61 + languageName: node + linkType: hard + +"@babel/plugin-transform-dotall-regex@npm:^7.18.6, @babel/plugin-transform-dotall-regex@npm:^7.4.4": + version: 7.18.6 + resolution: "@babel/plugin-transform-dotall-regex@npm:7.18.6" + dependencies: + "@babel/helper-create-regexp-features-plugin": "npm:^7.18.6" + "@babel/helper-plugin-utils": "npm:^7.18.6" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: cbe5d7063eb8f8cca24cd4827bc97f5641166509e58781a5f8aa47fb3d2d786ce4506a30fca2e01f61f18792783a5cb5d96bf5434c3dd1ad0de8c9cc625a53da + languageName: node + linkType: hard + +"@babel/plugin-transform-dotall-regex@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-dotall-regex@npm:7.22.5" + dependencies: + "@babel/helper-create-regexp-features-plugin": "npm:^7.22.5" + "@babel/helper-plugin-utils": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 409b658d11e3082c8f69e9cdef2d96e4d6d11256f005772425fb230cc48fd05945edbfbcb709dab293a1a2f01f9c8a5bb7b4131e632b23264039d9f95864b453 + languageName: node + linkType: hard + +"@babel/plugin-transform-dotall-regex@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-dotall-regex@npm:7.23.3" dependencies: @@ -2263,7 +3666,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-duplicate-keys@npm:^7.18.9, @babel/plugin-transform-duplicate-keys@npm:^7.22.5, @babel/plugin-transform-duplicate-keys@npm:^7.23.3": +"@babel/plugin-transform-duplicate-keys@npm:^7.18.9, @babel/plugin-transform-duplicate-keys@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-duplicate-keys@npm:7.23.3" dependencies: @@ -2274,7 +3677,18 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-dynamic-import@npm:^7.22.1, @babel/plugin-transform-dynamic-import@npm:^7.22.5, @babel/plugin-transform-dynamic-import@npm:^7.23.4": +"@babel/plugin-transform-duplicate-keys@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-duplicate-keys@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: bb1280fbabaab6fab2ede585df34900712698210a3bd413f4df5bae6d8c24be36b496c92722ae676a7a67d060a4624f4d6c23b923485f906bfba8773c69f55b4 + languageName: node + linkType: hard + +"@babel/plugin-transform-dynamic-import@npm:^7.22.1, @babel/plugin-transform-dynamic-import@npm:^7.23.4": version: 7.23.4 resolution: "@babel/plugin-transform-dynamic-import@npm:7.23.4" dependencies: @@ -2286,7 +3700,19 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-exponentiation-operator@npm:^7.18.6, @babel/plugin-transform-exponentiation-operator@npm:^7.22.5, @babel/plugin-transform-exponentiation-operator@npm:^7.23.3": +"@babel/plugin-transform-dynamic-import@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-dynamic-import@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.22.5" + "@babel/plugin-syntax-dynamic-import": "npm:^7.8.3" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 186a6d59f36eb3c5824739fc9c22ed0f4ca68e001662aa3a302634346a8b785cb9579b23b0c158f4570604d697d19598ca09b58c60a7fa2894da1163c4eb1907 + languageName: node + linkType: hard + +"@babel/plugin-transform-exponentiation-operator@npm:^7.18.6, @babel/plugin-transform-exponentiation-operator@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.23.3" dependencies: @@ -2298,7 +3724,19 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-export-namespace-from@npm:^7.22.3, @babel/plugin-transform-export-namespace-from@npm:^7.22.5, @babel/plugin-transform-export-namespace-from@npm:^7.23.4": +"@babel/plugin-transform-exponentiation-operator@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.22.5" + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor": "npm:^7.22.5" + "@babel/helper-plugin-utils": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: f2d660c1b1d51ad5fec1cd5ad426a52187204068c4158f8c4aa977b31535c61b66898d532603eef21c15756827be8277f724c869b888d560f26d7fe848bb5eae + languageName: node + linkType: hard + +"@babel/plugin-transform-export-namespace-from@npm:^7.22.3, @babel/plugin-transform-export-namespace-from@npm:^7.23.4": version: 7.23.4 resolution: "@babel/plugin-transform-export-namespace-from@npm:7.23.4" dependencies: @@ -2310,6 +3748,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-export-namespace-from@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-export-namespace-from@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.22.5" + "@babel/plugin-syntax-export-namespace-from": "npm:^7.8.3" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 3d197b788758044983c96b9c49bed4b456055f35a388521a405968db0f6e2ffb6fd59110e3931f4dcc5e126ae9e5e00e154a0afb47a7ea359d8d0dea79f480d7 + languageName: node + linkType: hard + "@babel/plugin-transform-flow-strip-types@npm:^7.0.0, @babel/plugin-transform-flow-strip-types@npm:^7.16.0, @babel/plugin-transform-flow-strip-types@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-flow-strip-types@npm:7.23.3" @@ -2322,7 +3772,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-for-of@npm:^7.0.0, @babel/plugin-transform-for-of@npm:^7.21.5, @babel/plugin-transform-for-of@npm:^7.22.5, @babel/plugin-transform-for-of@npm:^7.23.6": +"@babel/plugin-transform-for-of@npm:^7.0.0, @babel/plugin-transform-for-of@npm:^7.21.5, @babel/plugin-transform-for-of@npm:^7.23.6": version: 7.23.6 resolution: "@babel/plugin-transform-for-of@npm:7.23.6" dependencies: @@ -2334,7 +3784,29 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-function-name@npm:^7.0.0, @babel/plugin-transform-function-name@npm:^7.18.9, @babel/plugin-transform-function-name@npm:^7.22.5, @babel/plugin-transform-function-name@npm:^7.23.3": +"@babel/plugin-transform-for-of@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-for-of@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 07ab9ce49a15a03840937dbbddbf2235e0e6b9af3c1427746fab6aaa667acd92327620f937134922167193ac7aca871d20326b59e7a8b1efd52f22f876348928 + languageName: node + linkType: hard + +"@babel/plugin-transform-for-of@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-for-of@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 745054f125fba6dbaea3d863352c94266c97db87e3521bc6c436a8c05f384821907c0109ace437a90342e423a3365f4d8e592de06e4a241bbd7070e1f293604f + languageName: node + linkType: hard + +"@babel/plugin-transform-function-name@npm:^7.0.0, @babel/plugin-transform-function-name@npm:^7.18.9, @babel/plugin-transform-function-name@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-function-name@npm:7.23.3" dependencies: @@ -2347,7 +3819,20 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-json-strings@npm:^7.22.3, @babel/plugin-transform-json-strings@npm:^7.22.5, @babel/plugin-transform-json-strings@npm:^7.23.4": +"@babel/plugin-transform-function-name@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-function-name@npm:7.22.5" + dependencies: + "@babel/helper-compilation-targets": "npm:^7.22.5" + "@babel/helper-function-name": "npm:^7.22.5" + "@babel/helper-plugin-utils": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: cff3b876357999cb8ae30e439c3ec6b0491a53b0aa6f722920a4675a6dd5b53af97a833051df4b34791fe5b3dd326ccf769d5c8e45b322aa50ee11a660b17845 + languageName: node + linkType: hard + +"@babel/plugin-transform-json-strings@npm:^7.22.3, @babel/plugin-transform-json-strings@npm:^7.23.4": version: 7.23.4 resolution: "@babel/plugin-transform-json-strings@npm:7.23.4" dependencies: @@ -2359,7 +3844,19 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-literals@npm:^7.0.0, @babel/plugin-transform-literals@npm:^7.18.9, @babel/plugin-transform-literals@npm:^7.22.5, @babel/plugin-transform-literals@npm:^7.23.3": +"@babel/plugin-transform-json-strings@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-json-strings@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.22.5" + "@babel/plugin-syntax-json-strings": "npm:^7.8.3" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 4e00b902487a670b6c8948f33f9108133fd745cf9d1478aca515fb460b9b2f12e137988ebc1663630fb82070a870aed8b0c1aa4d007a841c18004619798f255c + languageName: node + linkType: hard + +"@babel/plugin-transform-literals@npm:^7.0.0, @babel/plugin-transform-literals@npm:^7.18.9, @babel/plugin-transform-literals@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-literals@npm:7.23.3" dependencies: @@ -2370,7 +3867,18 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-logical-assignment-operators@npm:^7.22.3, @babel/plugin-transform-logical-assignment-operators@npm:^7.22.5, @babel/plugin-transform-logical-assignment-operators@npm:^7.23.4": +"@babel/plugin-transform-literals@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-literals@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: ec37cc2ffb32667af935ab32fe28f00920ec8a1eb999aa6dc6602f2bebd8ba205a558aeedcdccdebf334381d5c57106c61f52332045730393e73410892a9735b + languageName: node + linkType: hard + +"@babel/plugin-transform-logical-assignment-operators@npm:^7.22.3, @babel/plugin-transform-logical-assignment-operators@npm:^7.23.4": version: 7.23.4 resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.23.4" dependencies: @@ -2382,7 +3890,19 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-member-expression-literals@npm:^7.0.0, @babel/plugin-transform-member-expression-literals@npm:^7.18.6, @babel/plugin-transform-member-expression-literals@npm:^7.22.5, @babel/plugin-transform-member-expression-literals@npm:^7.23.3": +"@babel/plugin-transform-logical-assignment-operators@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.22.5" + "@babel/plugin-syntax-logical-assignment-operators": "npm:^7.10.4" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 18748e953c08f64885f18c224eac58df10a13eac4d845d16b5d9b6276907da7ca2530dfebe6ed41cdc5f8a75d9db3e36d8eb54ddce7cd0364af1cab09b435302 + languageName: node + linkType: hard + +"@babel/plugin-transform-member-expression-literals@npm:^7.0.0, @babel/plugin-transform-member-expression-literals@npm:^7.18.6, @babel/plugin-transform-member-expression-literals@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-member-expression-literals@npm:7.23.3" dependencies: @@ -2393,7 +3913,18 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-modules-amd@npm:^7.20.11, @babel/plugin-transform-modules-amd@npm:^7.22.5, @babel/plugin-transform-modules-amd@npm:^7.23.3": +"@babel/plugin-transform-member-expression-literals@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-member-expression-literals@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: ec4b0e07915ddd4fda0142fd104ee61015c208608a84cfa13643a95d18760b1dc1ceb6c6e0548898b8c49e5959a994e46367260176dbabc4467f729b21868504 + languageName: node + linkType: hard + +"@babel/plugin-transform-modules-amd@npm:^7.20.11, @babel/plugin-transform-modules-amd@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-modules-amd@npm:7.23.3" dependencies: @@ -2405,7 +3936,19 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-modules-commonjs@npm:^7.0.0, @babel/plugin-transform-modules-commonjs@npm:^7.13.8, @babel/plugin-transform-modules-commonjs@npm:^7.21.5, @babel/plugin-transform-modules-commonjs@npm:^7.22.5, @babel/plugin-transform-modules-commonjs@npm:^7.23.0, @babel/plugin-transform-modules-commonjs@npm:^7.23.3": +"@babel/plugin-transform-modules-amd@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-modules-amd@npm:7.22.5" + dependencies: + "@babel/helper-module-transforms": "npm:^7.22.5" + "@babel/helper-plugin-utils": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 5453f829205f6c918cc74d66946c9bf9544869f961d72a9934b4370049bf72a9b0ac089b64389be5172b217858c5353ec3479a18ab14cebb23329d708f6fc1ab + languageName: node + linkType: hard + +"@babel/plugin-transform-modules-commonjs@npm:^7.0.0, @babel/plugin-transform-modules-commonjs@npm:^7.13.8, @babel/plugin-transform-modules-commonjs@npm:^7.21.5, @babel/plugin-transform-modules-commonjs@npm:^7.23.0, @babel/plugin-transform-modules-commonjs@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-modules-commonjs@npm:7.23.3" dependencies: @@ -2418,9 +3961,22 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-modules-systemjs@npm:^7.20.11, @babel/plugin-transform-modules-systemjs@npm:^7.22.3, @babel/plugin-transform-modules-systemjs@npm:^7.22.5, @babel/plugin-transform-modules-systemjs@npm:^7.23.9": - version: 7.23.9 - resolution: "@babel/plugin-transform-modules-systemjs@npm:7.23.9" +"@babel/plugin-transform-modules-commonjs@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-modules-commonjs@npm:7.22.5" + dependencies: + "@babel/helper-module-transforms": "npm:^7.22.5" + "@babel/helper-plugin-utils": "npm:^7.22.5" + "@babel/helper-simple-access": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: bf8bcc7a0f28f1fb2bfad3e65a50e6aee54998917caf89c68fc871d1831808a74ae7563b8a37485da03a583a9bd1211c30b667bb366c3161a22c6105962ab5f8 + languageName: node + linkType: hard + +"@babel/plugin-transform-modules-systemjs@npm:^7.20.11, @babel/plugin-transform-modules-systemjs@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-modules-systemjs@npm:7.23.3" dependencies: "@babel/helper-hoist-variables": "npm:^7.22.5" "@babel/helper-module-transforms": "npm:^7.23.3" @@ -2428,11 +3984,39 @@ __metadata: "@babel/helper-validator-identifier": "npm:^7.22.20" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 4bb800e5a9d0d668d7421ae3672fccff7d5f2a36621fd87414d7ece6d6f4d93627f9644cfecacae934bc65ffc131c8374242aaa400cca874dcab9b281a21aff0 + checksum: 051112de7585fff4ffd67865066401f01f90745d41f26b0edbeec0981342c10517ce1a6b4d7051b583a3e513088eece6a3f57b1663f1dd9418071cd05f14fef9 + languageName: node + linkType: hard + +"@babel/plugin-transform-modules-systemjs@npm:^7.22.3": + version: 7.22.3 + resolution: "@babel/plugin-transform-modules-systemjs@npm:7.22.3" + dependencies: + "@babel/helper-hoist-variables": "npm:^7.18.6" + "@babel/helper-module-transforms": "npm:^7.22.1" + "@babel/helper-plugin-utils": "npm:^7.21.5" + "@babel/helper-validator-identifier": "npm:^7.19.1" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 0bfe522fd641513ddadfe49f46e1c68fa7a2cd2f27ef5d269515fb869a4a9f1f417533e36c2d1ec7301d8dc3735c11a57fcd51ccd4a111faf1514e947286aee9 + languageName: node + linkType: hard + +"@babel/plugin-transform-modules-systemjs@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-modules-systemjs@npm:7.22.5" + dependencies: + "@babel/helper-hoist-variables": "npm:^7.22.5" + "@babel/helper-module-transforms": "npm:^7.22.5" + "@babel/helper-plugin-utils": "npm:^7.22.5" + "@babel/helper-validator-identifier": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: bc9fc6fe6dfe1aeee379abf771a857fdcfea8a548d40ecdafc8e522e71713ae230450d2c48f03e1e3c2d056c0f30286845c1f1fc8c5fd827bddaeb0d860a312c languageName: node linkType: hard -"@babel/plugin-transform-modules-umd@npm:^7.18.6, @babel/plugin-transform-modules-umd@npm:^7.22.5, @babel/plugin-transform-modules-umd@npm:^7.23.3": +"@babel/plugin-transform-modules-umd@npm:^7.18.6, @babel/plugin-transform-modules-umd@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-modules-umd@npm:7.23.3" dependencies: @@ -2444,7 +4028,19 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.20.5, @babel/plugin-transform-named-capturing-groups-regex@npm:^7.22.3, @babel/plugin-transform-named-capturing-groups-regex@npm:^7.22.5": +"@babel/plugin-transform-modules-umd@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-modules-umd@npm:7.22.5" + dependencies: + "@babel/helper-module-transforms": "npm:^7.22.5" + "@babel/helper-plugin-utils": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: b955d066c68b60c1179bfb0b744e2fad32dbe86d0673bd94637439cfe425d1e3ff579bd47a417233609aac1624f4fe69915bee73e6deb2af6188fda8aaa5db63 + languageName: node + linkType: hard + +"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.20.5, @babel/plugin-transform-named-capturing-groups-regex@npm:^7.22.5": version: 7.22.5 resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.22.5" dependencies: @@ -2456,7 +4052,19 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-new-target@npm:^7.18.6, @babel/plugin-transform-new-target@npm:^7.22.3, @babel/plugin-transform-new-target@npm:^7.22.5, @babel/plugin-transform-new-target@npm:^7.23.3": +"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.22.3": + version: 7.22.3 + resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.22.3" + dependencies: + "@babel/helper-create-regexp-features-plugin": "npm:^7.22.1" + "@babel/helper-plugin-utils": "npm:^7.21.5" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: baf3d8d785ab36df2d7396b8a255e1209eecf83ad5334121fbb9e966a95353fe2100dd3683436f4c74b3c848ec0b34817491c4d14b074e3e539e2040076173d8 + languageName: node + linkType: hard + +"@babel/plugin-transform-new-target@npm:^7.18.6, @babel/plugin-transform-new-target@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-new-target@npm:7.23.3" dependencies: @@ -2467,7 +4075,29 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.22.11, @babel/plugin-transform-nullish-coalescing-operator@npm:^7.22.3, @babel/plugin-transform-nullish-coalescing-operator@npm:^7.22.5, @babel/plugin-transform-nullish-coalescing-operator@npm:^7.23.4": +"@babel/plugin-transform-new-target@npm:^7.22.3": + version: 7.22.3 + resolution: "@babel/plugin-transform-new-target@npm:7.22.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.21.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: a28043575aae52127b7287711cf0b244a28279464d979858408ca6197169b6f7e6341e5b4554a894d409245fcd696c9bf38d5f1f1c64f84a82f479bf35659920 + languageName: node + linkType: hard + +"@babel/plugin-transform-new-target@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-new-target@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 6b72112773487a881a1d6ffa680afde08bad699252020e86122180ee7a88854d5da3f15d9bca3331cf2e025df045604494a8208a2e63b486266b07c14e2ffbf3 + languageName: node + linkType: hard + +"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.22.11, @babel/plugin-transform-nullish-coalescing-operator@npm:^7.23.4": version: 7.23.4 resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.23.4" dependencies: @@ -2479,7 +4109,31 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-numeric-separator@npm:^7.22.3, @babel/plugin-transform-numeric-separator@npm:^7.22.5, @babel/plugin-transform-numeric-separator@npm:^7.23.4": +"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.22.3": + version: 7.22.3 + resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.22.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.21.5" + "@babel/plugin-syntax-nullish-coalescing-operator": "npm:^7.8.3" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 404c3c7eb8b99f226ce40147d350ad3df55b38ffe39856356f7cfbbb1626ce060bc1daff0663c090d53160d39fdb26ea67ca291d47211ff7746a8a0c3bbc1639 + languageName: node + linkType: hard + +"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.22.5" + "@babel/plugin-syntax-nullish-coalescing-operator": "npm:^7.8.3" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: e6a059169d257fc61322d0708edae423072449b7c33de396261e68dee582aec5396789a1c22bce84e5bd88a169623c2e750b513fc222930979e6accd52a44bf2 + languageName: node + linkType: hard + +"@babel/plugin-transform-numeric-separator@npm:^7.22.3, @babel/plugin-transform-numeric-separator@npm:^7.23.4": version: 7.23.4 resolution: "@babel/plugin-transform-numeric-separator@npm:7.23.4" dependencies: @@ -2491,22 +4145,49 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-object-rest-spread@npm:^7.22.3, @babel/plugin-transform-object-rest-spread@npm:^7.22.5, @babel/plugin-transform-object-rest-spread@npm:^7.24.0": - version: 7.24.0 - resolution: "@babel/plugin-transform-object-rest-spread@npm:7.24.0" +"@babel/plugin-transform-numeric-separator@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-numeric-separator@npm:7.22.5" dependencies: - "@babel/compat-data": "npm:^7.23.5" - "@babel/helper-compilation-targets": "npm:^7.23.6" - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-plugin-utils": "npm:^7.22.5" + "@babel/plugin-syntax-numeric-separator": "npm:^7.10.4" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 9e7837d4eae04f211ebaa034fe5003d2927b6bf6d5b9dc09f2b1183c01482cdde5a75b8bd5c7ff195c2abc7b923339eb0b2a9d27cb78359d38248a3b2c2367c4 + languageName: node + linkType: hard + +"@babel/plugin-transform-object-rest-spread@npm:^7.22.3, @babel/plugin-transform-object-rest-spread@npm:^7.23.4": + version: 7.23.4 + resolution: "@babel/plugin-transform-object-rest-spread@npm:7.23.4" + dependencies: + "@babel/compat-data": "npm:^7.23.3" + "@babel/helper-compilation-targets": "npm:^7.22.15" + "@babel/helper-plugin-utils": "npm:^7.22.5" "@babel/plugin-syntax-object-rest-spread": "npm:^7.8.3" "@babel/plugin-transform-parameters": "npm:^7.23.3" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 1dfafd9461723769b29f724fcbdca974c4280f68a9e03c8ff412643ffe88930755f093f9cbf919cdb6d0d53751614892dd2882bccad286e14e9e995c5a8242ed + checksum: 656f09c4ec629856e807d5b386559166ae417ff75943abce19656b2c6de5101dfd0aaf23f9074e854339370b4e09f57518d3202457046ee5b567ded531005479 + languageName: node + linkType: hard + +"@babel/plugin-transform-object-rest-spread@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-object-rest-spread@npm:7.22.5" + dependencies: + "@babel/compat-data": "npm:^7.22.5" + "@babel/helper-compilation-targets": "npm:^7.22.5" + "@babel/helper-plugin-utils": "npm:^7.22.5" + "@babel/plugin-syntax-object-rest-spread": "npm:^7.8.3" + "@babel/plugin-transform-parameters": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: f4ab721dff46c9013ba1a29132d6ab334f1f08f6150945b444e606f0dd16a5e0a0da91fc4fa5eec44389d870f1cabcbf3365314dcbfab7b7f25047481976fa6e languageName: node linkType: hard -"@babel/plugin-transform-object-super@npm:^7.0.0, @babel/plugin-transform-object-super@npm:^7.18.6, @babel/plugin-transform-object-super@npm:^7.22.5, @babel/plugin-transform-object-super@npm:^7.23.3": +"@babel/plugin-transform-object-super@npm:^7.0.0, @babel/plugin-transform-object-super@npm:^7.18.6, @babel/plugin-transform-object-super@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-object-super@npm:7.23.3" dependencies: @@ -2518,7 +4199,19 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-optional-catch-binding@npm:^7.22.3, @babel/plugin-transform-optional-catch-binding@npm:^7.22.5, @babel/plugin-transform-optional-catch-binding@npm:^7.23.4": +"@babel/plugin-transform-object-super@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-object-super@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.22.5" + "@babel/helper-replace-supers": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: b71887877d74cb64dbccb5c0324fa67e31171e6a5311991f626650e44a4083e5436a1eaa89da78c0474fb095d4ec322d63ee778b202d33aa2e4194e1ed8e62d7 + languageName: node + linkType: hard + +"@babel/plugin-transform-optional-catch-binding@npm:^7.22.3, @babel/plugin-transform-optional-catch-binding@npm:^7.23.4": version: 7.23.4 resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.23.4" dependencies: @@ -2530,7 +4223,19 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-optional-chaining@npm:^7.22.3, @babel/plugin-transform-optional-chaining@npm:^7.22.6, @babel/plugin-transform-optional-chaining@npm:^7.23.0, @babel/plugin-transform-optional-chaining@npm:^7.23.3, @babel/plugin-transform-optional-chaining@npm:^7.23.4": +"@babel/plugin-transform-optional-catch-binding@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.22.5" + "@babel/plugin-syntax-optional-catch-binding": "npm:^7.8.3" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: b0e8b4233ff06b5c9d285257f49c5bd441f883189b24282e6200f9ebdf5db29aeeebbffae57fbbcd5df9f4387b3e66e5d322aaae5652a78e89685ddbae46bbd1 + languageName: node + linkType: hard + +"@babel/plugin-transform-optional-chaining@npm:^7.22.3, @babel/plugin-transform-optional-chaining@npm:^7.23.0, @babel/plugin-transform-optional-chaining@npm:^7.23.3, @babel/plugin-transform-optional-chaining@npm:^7.23.4": version: 7.23.4 resolution: "@babel/plugin-transform-optional-chaining@npm:7.23.4" dependencies: @@ -2543,7 +4248,20 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-parameters@npm:^7.0.0, @babel/plugin-transform-parameters@npm:^7.20.7, @babel/plugin-transform-parameters@npm:^7.21.3, @babel/plugin-transform-parameters@npm:^7.22.3, @babel/plugin-transform-parameters@npm:^7.22.5, @babel/plugin-transform-parameters@npm:^7.23.3": +"@babel/plugin-transform-optional-chaining@npm:^7.22.5, @babel/plugin-transform-optional-chaining@npm:^7.22.6": + version: 7.22.6 + resolution: "@babel/plugin-transform-optional-chaining@npm:7.22.6" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.22.5" + "@babel/plugin-syntax-optional-chaining": "npm:^7.8.3" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 9b9e2ab090def43bb4bf811f9b08e0c520249d121de39a743bd1375361cb7b3e0c9bf84ab12511a842aa7f073ffbba19b954ddd8e99f2fc9fa8e7cfe48f5aec2 + languageName: node + linkType: hard + +"@babel/plugin-transform-parameters@npm:^7.0.0, @babel/plugin-transform-parameters@npm:^7.20.7, @babel/plugin-transform-parameters@npm:^7.21.3, @babel/plugin-transform-parameters@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-parameters@npm:7.23.3" dependencies: @@ -2554,7 +4272,29 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-private-methods@npm:^7.22.3, @babel/plugin-transform-private-methods@npm:^7.22.5, @babel/plugin-transform-private-methods@npm:^7.23.3": +"@babel/plugin-transform-parameters@npm:^7.22.3": + version: 7.22.3 + resolution: "@babel/plugin-transform-parameters@npm:7.22.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.21.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 70e666b27f5f15a85346e4e02c3a30bf6a8ad0b33886f8f06a24eeaefe001a2a1ce9e9f07a3bd2e2e7f8f06f2f214207a63697d71043763266e9e10bfaca38cb + languageName: node + linkType: hard + +"@babel/plugin-transform-parameters@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-parameters@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 86bec14b1a42a3c7059fe7dcbbedcae91e778a6b61e59922560d689fea10a165d89e53c2d9f383ad361b642ce444e183880a88dea39d87c09f2046a534b64304 + languageName: node + linkType: hard + +"@babel/plugin-transform-private-methods@npm:^7.22.3, @babel/plugin-transform-private-methods@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-private-methods@npm:7.23.3" dependencies: @@ -2566,7 +4306,19 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-private-property-in-object@npm:^7.22.3, @babel/plugin-transform-private-property-in-object@npm:^7.22.5, @babel/plugin-transform-private-property-in-object@npm:^7.23.4": +"@babel/plugin-transform-private-methods@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-private-methods@npm:7.22.5" + dependencies: + "@babel/helper-create-class-features-plugin": "npm:^7.22.5" + "@babel/helper-plugin-utils": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 321479b4fcb6d3b3ef622ab22fd24001e43d46e680e8e41324c033d5810c84646e470f81b44cbcbef5c22e99030784f7cac92f1829974da7a47a60a7139082c3 + languageName: node + linkType: hard + +"@babel/plugin-transform-private-property-in-object@npm:^7.22.3, @babel/plugin-transform-private-property-in-object@npm:^7.23.4": version: 7.23.4 resolution: "@babel/plugin-transform-private-property-in-object@npm:7.23.4" dependencies: @@ -2580,7 +4332,21 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-property-literals@npm:^7.0.0, @babel/plugin-transform-property-literals@npm:^7.18.6, @babel/plugin-transform-property-literals@npm:^7.22.5, @babel/plugin-transform-property-literals@npm:^7.23.3": +"@babel/plugin-transform-private-property-in-object@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-private-property-in-object@npm:7.22.5" + dependencies: + "@babel/helper-annotate-as-pure": "npm:^7.22.5" + "@babel/helper-create-class-features-plugin": "npm:^7.22.5" + "@babel/helper-plugin-utils": "npm:^7.22.5" + "@babel/plugin-syntax-private-property-in-object": "npm:^7.14.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: d340bd71805fd00587b68711e24e7fa02257ad95835628f7e451fcc5a4610685ac43d90a6746df5464b0c9bc11b74d3097f1ac695fb09a04a71aa5035bca40b0 + languageName: node + linkType: hard + +"@babel/plugin-transform-property-literals@npm:^7.0.0, @babel/plugin-transform-property-literals@npm:^7.18.6, @babel/plugin-transform-property-literals@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-property-literals@npm:7.23.3" dependencies: @@ -2591,6 +4357,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-property-literals@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-property-literals@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 796176a3176106f77fcb8cd04eb34a8475ce82d6d03a88db089531b8f0453a2fb8b0c6ec9a52c27948bc0ea478becec449893741fc546dfc3930ab927e3f9f2e + languageName: node + linkType: hard + "@babel/plugin-transform-react-constant-elements@npm:^7.18.12": version: 7.23.3 resolution: "@babel/plugin-transform-react-constant-elements@npm:7.23.3" @@ -2613,6 +4390,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-react-display-name@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-react-display-name@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: a12bfd1e4e93055efca3ace3c34722571bda59d9740dca364d225d9c6e3ca874f134694d21715c42cc63d79efd46db9665bd4a022998767f9245f1e29d5d204d + languageName: node + linkType: hard + "@babel/plugin-transform-react-jsx-development@npm:^7.22.5": version: 7.22.5 resolution: "@babel/plugin-transform-react-jsx-development@npm:7.22.5" @@ -2624,7 +4412,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-react-jsx-self@npm:^7.18.6, @babel/plugin-transform-react-jsx-self@npm:^7.22.5, @babel/plugin-transform-react-jsx-self@npm:^7.23.3": +"@babel/plugin-transform-react-jsx-self@npm:^7.18.6, @babel/plugin-transform-react-jsx-self@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-react-jsx-self@npm:7.23.3" dependencies: @@ -2635,7 +4423,18 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-react-jsx-source@npm:^7.19.6, @babel/plugin-transform-react-jsx-source@npm:^7.22.5, @babel/plugin-transform-react-jsx-source@npm:^7.23.3": +"@babel/plugin-transform-react-jsx-self@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-react-jsx-self@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 671eebfabd14a0c7d6ae805fff7e289dfdb7ba984bb100ea2ef6dad1d6a665ebbb09199ab2e64fca7bc78bd0fdc80ca897b07996cf215fafc32c67bc564309af + languageName: node + linkType: hard + +"@babel/plugin-transform-react-jsx-source@npm:^7.19.6, @babel/plugin-transform-react-jsx-source@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-react-jsx-source@npm:7.23.3" dependencies: @@ -2646,7 +4445,18 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-react-jsx@npm:^7.0.0, @babel/plugin-transform-react-jsx@npm:^7.19.0, @babel/plugin-transform-react-jsx@npm:^7.22.15, @babel/plugin-transform-react-jsx@npm:^7.22.5": +"@babel/plugin-transform-react-jsx-source@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-react-jsx-source@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 4ca2bd62ca14f8bbdcda9139f3f799e1c1c1bae504b67c1ca9bca142c53d81926d1a2b811f66a625f20999b2d352131053d886601f1ba3c1e9378c104d884277 + languageName: node + linkType: hard + +"@babel/plugin-transform-react-jsx@npm:^7.0.0, @babel/plugin-transform-react-jsx@npm:^7.19.0, @babel/plugin-transform-react-jsx@npm:^7.22.15": version: 7.23.4 resolution: "@babel/plugin-transform-react-jsx@npm:7.23.4" dependencies: @@ -2661,6 +4471,33 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-react-jsx@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-react-jsx@npm:7.22.5" + dependencies: + "@babel/helper-annotate-as-pure": "npm:^7.22.5" + "@babel/helper-module-imports": "npm:^7.22.5" + "@babel/helper-plugin-utils": "npm:^7.22.5" + "@babel/plugin-syntax-jsx": "npm:^7.22.5" + "@babel/types": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 6be5db99b170c937c71fbe68dc64804bb041729d2f95b376ab5e7bc51c34a790f28753b14384160e87cabacf5e1b1aa3379a1a430a60b1fd6b031ba58955f5a6 + languageName: node + linkType: hard + +"@babel/plugin-transform-react-pure-annotations@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-react-pure-annotations@npm:7.22.5" + dependencies: + "@babel/helper-annotate-as-pure": "npm:^7.22.5" + "@babel/helper-plugin-utils": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 092021c4f404e267002099ec20b3f12dd730cb90b0d83c5feed3dc00dbe43b9c42c795a18e7c6c7d7bddea20c7dd56221b146aec81b37f2e7eb5137331c61120 + languageName: node + linkType: hard + "@babel/plugin-transform-react-pure-annotations@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-react-pure-annotations@npm:7.23.3" @@ -2673,7 +4510,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-regenerator@npm:^7.21.5, @babel/plugin-transform-regenerator@npm:^7.22.5, @babel/plugin-transform-regenerator@npm:^7.23.3": +"@babel/plugin-transform-regenerator@npm:^7.21.5, @babel/plugin-transform-regenerator@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-regenerator@npm:7.23.3" dependencies: @@ -2685,7 +4522,19 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-reserved-words@npm:^7.18.6, @babel/plugin-transform-reserved-words@npm:^7.22.5, @babel/plugin-transform-reserved-words@npm:^7.23.3": +"@babel/plugin-transform-regenerator@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-regenerator@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.22.5" + regenerator-transform: "npm:^0.15.1" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: f7c5ca5151321963df777cc02725d10d1ccc3b3b8323da0423aecd9ac6144cbdd2274af5281a5580db2fc2f8b234e318517b5d76b85669118906533a559f2b6a + languageName: node + linkType: hard + +"@babel/plugin-transform-reserved-words@npm:^7.18.6, @babel/plugin-transform-reserved-words@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-reserved-words@npm:7.23.3" dependencies: @@ -2696,6 +4545,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-reserved-words@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-reserved-words@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 3ffd7dbc425fe8132bfec118b9817572799cab1473113a635d25ab606c1f5a2341a636c04cf6b22df3813320365ed5a965b5eeb3192320a10e4cc2c137bd8bfc + languageName: node + linkType: hard + "@babel/plugin-transform-runtime@npm:7.22.4": version: 7.22.4 resolution: "@babel/plugin-transform-runtime@npm:7.22.4" @@ -2712,23 +4572,39 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-runtime@npm:^7.16.4, @babel/plugin-transform-runtime@npm:^7.22.9, @babel/plugin-transform-runtime@npm:^7.5.5": - version: 7.24.0 - resolution: "@babel/plugin-transform-runtime@npm:7.24.0" +"@babel/plugin-transform-runtime@npm:^7.16.4, @babel/plugin-transform-runtime@npm:^7.5.5": + version: 7.21.4 + resolution: "@babel/plugin-transform-runtime@npm:7.21.4" + dependencies: + "@babel/helper-module-imports": "npm:^7.21.4" + "@babel/helper-plugin-utils": "npm:^7.20.2" + babel-plugin-polyfill-corejs2: "npm:^0.3.3" + babel-plugin-polyfill-corejs3: "npm:^0.6.0" + babel-plugin-polyfill-regenerator: "npm:^0.4.1" + semver: "npm:^6.3.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 0748067b95b8f87af34d2de866bdbd6e427bb711cc0d22822084b2476b412a3464d35db0a0369add087af387eb0d8aeb16ba02e99d36cc82ad79d6e79863a82f + languageName: node + linkType: hard + +"@babel/plugin-transform-runtime@npm:^7.22.9": + version: 7.23.7 + resolution: "@babel/plugin-transform-runtime@npm:7.23.7" dependencies: "@babel/helper-module-imports": "npm:^7.22.15" - "@babel/helper-plugin-utils": "npm:^7.24.0" - babel-plugin-polyfill-corejs2: "npm:^0.4.8" - babel-plugin-polyfill-corejs3: "npm:^0.9.0" - babel-plugin-polyfill-regenerator: "npm:^0.5.5" + "@babel/helper-plugin-utils": "npm:^7.22.5" + babel-plugin-polyfill-corejs2: "npm:^0.4.7" + babel-plugin-polyfill-corejs3: "npm:^0.8.7" + babel-plugin-polyfill-regenerator: "npm:^0.5.4" semver: "npm:^6.3.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 162c59982d1c6df45458c6a449f305d1b61b113bb2bbdad6bb19e41390749f118edb225f68bedf90ae1e8d32abefe7314480ad1ca770bc916cd15c46724a1458 + checksum: 1e0b21c943e565e6a2a859991059f5b5a8b917689aab9b3beb172babece1843b42f9ae9ff9913f01134fb201fd67ac2831559578949c7287e7c782e6d6740de8 languageName: node linkType: hard -"@babel/plugin-transform-shorthand-properties@npm:^7.0.0, @babel/plugin-transform-shorthand-properties@npm:^7.18.6, @babel/plugin-transform-shorthand-properties@npm:^7.22.5, @babel/plugin-transform-shorthand-properties@npm:^7.23.3": +"@babel/plugin-transform-shorthand-properties@npm:^7.0.0, @babel/plugin-transform-shorthand-properties@npm:^7.18.6, @babel/plugin-transform-shorthand-properties@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-shorthand-properties@npm:7.23.3" dependencies: @@ -2739,77 +4615,158 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-spread@npm:^7.0.0, @babel/plugin-transform-spread@npm:^7.20.7, @babel/plugin-transform-spread@npm:^7.22.5, @babel/plugin-transform-spread@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-spread@npm:7.23.3" +"@babel/plugin-transform-shorthand-properties@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-shorthand-properties@npm:7.22.5" dependencies: "@babel/helper-plugin-utils": "npm:^7.22.5" - "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.22.5" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: c6372d2f788fd71d85aba12fbe08ee509e053ed27457e6674a4f9cae41ff885e2eb88aafea8fadd0ccf990601fc69ec596fa00959e05af68a15461a8d97a548d + checksum: a5ac902c56ea8effa99f681340ee61bac21094588f7aef0bc01dff98246651702e677552fa6d10e548c4ac22a3ffad047dd2f8c8f0540b68316c2c203e56818b languageName: node linkType: hard -"@babel/plugin-transform-sticky-regex@npm:^7.18.6, @babel/plugin-transform-sticky-regex@npm:^7.22.5, @babel/plugin-transform-sticky-regex@npm:^7.23.3": +"@babel/plugin-transform-spread@npm:^7.0.0, @babel/plugin-transform-spread@npm:^7.20.7, @babel/plugin-transform-spread@npm:^7.23.3": version: 7.23.3 - resolution: "@babel/plugin-transform-sticky-regex@npm:7.23.3" + resolution: "@babel/plugin-transform-spread@npm:7.23.3" dependencies: "@babel/helper-plugin-utils": "npm:^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.22.5" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 53e55eb2575b7abfdb4af7e503a2bf7ef5faf8bf6b92d2cd2de0700bdd19e934e5517b23e6dfed94ba50ae516b62f3f916773ef7d9bc81f01503f585051e2949 + checksum: c6372d2f788fd71d85aba12fbe08ee509e053ed27457e6674a4f9cae41ff885e2eb88aafea8fadd0ccf990601fc69ec596fa00959e05af68a15461a8d97a548d languageName: node linkType: hard -"@babel/plugin-transform-template-literals@npm:^7.0.0, @babel/plugin-transform-template-literals@npm:^7.18.9, @babel/plugin-transform-template-literals@npm:^7.22.5, @babel/plugin-transform-template-literals@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-template-literals@npm:7.23.3" +"@babel/plugin-transform-spread@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-spread@npm:7.22.5" dependencies: "@babel/helper-plugin-utils": "npm:^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.22.5" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: b16c5cb0b8796be0118e9c144d15bdc0d20a7f3f59009c6303a6e9a8b74c146eceb3f05186f5b97afcba7cfa87e34c1585a22186e3d5b22f2fd3d27d959d92b2 + checksum: f9fd247b3fa8953416c8808c124c3a5db5cd697abbf791aae0143a0587fff6b386045f94c62bcd1b6783a1fd275629cc194f25f6c0aafc9f05f12a56fd5f94bf languageName: node linkType: hard -"@babel/plugin-transform-typeof-symbol@npm:^7.18.9, @babel/plugin-transform-typeof-symbol@npm:^7.22.5, @babel/plugin-transform-typeof-symbol@npm:^7.23.3": +"@babel/plugin-transform-sticky-regex@npm:^7.18.6, @babel/plugin-transform-sticky-regex@npm:^7.23.3": version: 7.23.3 - resolution: "@babel/plugin-transform-typeof-symbol@npm:7.23.3" + resolution: "@babel/plugin-transform-sticky-regex@npm:7.23.3" dependencies: "@babel/helper-plugin-utils": "npm:^7.22.5" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 0af7184379d43afac7614fc89b1bdecce4e174d52f4efaeee8ec1a4f2c764356c6dba3525c0685231f1cbf435b6dd4ee9e738d7417f3b10ce8bbe869c32f4384 + checksum: 53e55eb2575b7abfdb4af7e503a2bf7ef5faf8bf6b92d2cd2de0700bdd19e934e5517b23e6dfed94ba50ae516b62f3f916773ef7d9bc81f01503f585051e2949 languageName: node linkType: hard -"@babel/plugin-transform-typescript@npm:^7.23.3": - version: 7.23.6 - resolution: "@babel/plugin-transform-typescript@npm:7.23.6" +"@babel/plugin-transform-sticky-regex@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-sticky-regex@npm:7.22.5" dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.22.5" - "@babel/helper-create-class-features-plugin": "npm:^7.23.6" "@babel/helper-plugin-utils": "npm:^7.22.5" - "@babel/plugin-syntax-typescript": "npm:^7.23.3" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: a816811129f3fcb0af1aeb52b84285be390ed8a0eedab17d31fa8e6847c4ca39b4b176d44831f20a8561b3f586974053570ad7bdfa51f89566276e6b191786d2 + checksum: 63b2c575e3e7f96c32d52ed45ee098fb7d354b35c2223b8c8e76840b32cc529ee0c0ceb5742fd082e56e91e3d82842a367ce177e82b05039af3d602c9627a729 languageName: node linkType: hard -"@babel/plugin-transform-unicode-escapes@npm:^7.21.5, @babel/plugin-transform-unicode-escapes@npm:^7.22.5, @babel/plugin-transform-unicode-escapes@npm:^7.23.3": +"@babel/plugin-transform-template-literals@npm:^7.0.0, @babel/plugin-transform-template-literals@npm:^7.18.9, @babel/plugin-transform-template-literals@npm:^7.23.3": version: 7.23.3 - resolution: "@babel/plugin-transform-unicode-escapes@npm:7.23.3" + resolution: "@babel/plugin-transform-template-literals@npm:7.23.3" dependencies: "@babel/helper-plugin-utils": "npm:^7.22.5" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 561c429183a54b9e4751519a3dfba6014431e9cdc1484fad03bdaf96582dfc72c76a4f8661df2aeeae7c34efd0fa4d02d3b83a2f63763ecf71ecc925f9cc1f60 + checksum: b16c5cb0b8796be0118e9c144d15bdc0d20a7f3f59009c6303a6e9a8b74c146eceb3f05186f5b97afcba7cfa87e34c1585a22186e3d5b22f2fd3d27d959d92b2 languageName: node linkType: hard -"@babel/plugin-transform-unicode-property-regex@npm:^7.22.3, @babel/plugin-transform-unicode-property-regex@npm:^7.22.5, @babel/plugin-transform-unicode-property-regex@npm:^7.23.3": +"@babel/plugin-transform-template-literals@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-template-literals@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 27e9bb030654cb425381c69754be4abe6a7c75b45cd7f962cd8d604b841b2f0fb7b024f2efc1c25cc53f5b16d79d5e8cfc47cacbdaa983895b3aeefa3e7e24ff + languageName: node + linkType: hard + +"@babel/plugin-transform-typeof-symbol@npm:^7.18.9, @babel/plugin-transform-typeof-symbol@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-typeof-symbol@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 0af7184379d43afac7614fc89b1bdecce4e174d52f4efaeee8ec1a4f2c764356c6dba3525c0685231f1cbf435b6dd4ee9e738d7417f3b10ce8bbe869c32f4384 + languageName: node + linkType: hard + +"@babel/plugin-transform-typeof-symbol@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-typeof-symbol@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 82a53a63ffc3010b689ca9a54e5f53b2718b9f4b4a9818f36f9b7dba234f38a01876680553d2716a645a61920b5e6e4aaf8d4a0064add379b27ca0b403049512 + languageName: node + linkType: hard + +"@babel/plugin-transform-typescript@npm:^7.22.5": + version: 7.22.9 + resolution: "@babel/plugin-transform-typescript@npm:7.22.9" + dependencies: + "@babel/helper-annotate-as-pure": "npm:^7.22.5" + "@babel/helper-create-class-features-plugin": "npm:^7.22.9" + "@babel/helper-plugin-utils": "npm:^7.22.5" + "@babel/plugin-syntax-typescript": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 7f216a154a507b3a84af29a0f9f2909eb1a418740ebba2b8dd09dac61049b43ca6a35620e28b72ab2c56292e3950355cb2b625bc8ea41e60c8dd770562b1650c + languageName: node + linkType: hard + +"@babel/plugin-transform-typescript@npm:^7.23.3": + version: 7.23.6 + resolution: "@babel/plugin-transform-typescript@npm:7.23.6" + dependencies: + "@babel/helper-annotate-as-pure": "npm:^7.22.5" + "@babel/helper-create-class-features-plugin": "npm:^7.23.6" + "@babel/helper-plugin-utils": "npm:^7.22.5" + "@babel/plugin-syntax-typescript": "npm:^7.23.3" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: a816811129f3fcb0af1aeb52b84285be390ed8a0eedab17d31fa8e6847c4ca39b4b176d44831f20a8561b3f586974053570ad7bdfa51f89566276e6b191786d2 + languageName: node + linkType: hard + +"@babel/plugin-transform-unicode-escapes@npm:^7.21.5, @babel/plugin-transform-unicode-escapes@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-unicode-escapes@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 561c429183a54b9e4751519a3dfba6014431e9cdc1484fad03bdaf96582dfc72c76a4f8661df2aeeae7c34efd0fa4d02d3b83a2f63763ecf71ecc925f9cc1f60 + languageName: node + linkType: hard + +"@babel/plugin-transform-unicode-escapes@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-unicode-escapes@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: da5e85ab3bb33a75cbf6181bfd236b208dc934702fd304db127232f17b4e0f42c6d3f238de8589470b4190906967eea8ca27adf3ae9d8ee4de2a2eae906ed186 + languageName: node + linkType: hard + +"@babel/plugin-transform-unicode-property-regex@npm:^7.22.3, @babel/plugin-transform-unicode-property-regex@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-unicode-property-regex@npm:7.23.3" dependencies: @@ -2821,7 +4778,19 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-unicode-regex@npm:^7.18.6, @babel/plugin-transform-unicode-regex@npm:^7.22.5, @babel/plugin-transform-unicode-regex@npm:^7.23.3": +"@babel/plugin-transform-unicode-property-regex@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-unicode-property-regex@npm:7.22.5" + dependencies: + "@babel/helper-create-regexp-features-plugin": "npm:^7.22.5" + "@babel/helper-plugin-utils": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 2495e5f663cb388e3d888b4ba3df419ac436a5012144ac170b622ddfc221f9ea9bdba839fa2bc0185cb776b578030666406452ec7791cbf0e7a3d4c88ae9574c + languageName: node + linkType: hard + +"@babel/plugin-transform-unicode-regex@npm:^7.18.6, @babel/plugin-transform-unicode-regex@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-unicode-regex@npm:7.23.3" dependencies: @@ -2833,7 +4802,19 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-unicode-sets-regex@npm:^7.22.3, @babel/plugin-transform-unicode-sets-regex@npm:^7.22.5, @babel/plugin-transform-unicode-sets-regex@npm:^7.23.3": +"@babel/plugin-transform-unicode-regex@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-unicode-regex@npm:7.22.5" + dependencies: + "@babel/helper-create-regexp-features-plugin": "npm:^7.22.5" + "@babel/helper-plugin-utils": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 6b5d1404c8c623b0ec9bd436c00d885a17d6a34f3f2597996343ddb9d94f6379705b21582dfd4cec2c47fd34068872e74ab6b9580116c0566b3f9447e2a7fa06 + languageName: node + linkType: hard + +"@babel/plugin-transform-unicode-sets-regex@npm:^7.22.3, @babel/plugin-transform-unicode-sets-regex@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.23.3" dependencies: @@ -2845,6 +4826,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-unicode-sets-regex@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.22.5" + dependencies: + "@babel/helper-create-regexp-features-plugin": "npm:^7.22.5" + "@babel/helper-plugin-utils": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: c042070f980b139547f8b0179efbc049ac5930abec7fc26ed7a41d89a048d8ab17d362200e204b6f71c3c20d6991a0e74415e1a412a49adc8131c2a40c04822e + languageName: node + linkType: hard + "@babel/preset-env@npm:7.22.4": version: 7.22.4 resolution: "@babel/preset-env@npm:7.22.4" @@ -3025,13 +5018,99 @@ __metadata: languageName: node linkType: hard -"@babel/preset-env@npm:^7.16.4, @babel/preset-env@npm:^7.19.4, @babel/preset-env@npm:^7.20.2, @babel/preset-env@npm:^7.22.9, @babel/preset-env@npm:^7.23.2": - version: 7.24.0 - resolution: "@babel/preset-env@npm:7.24.0" +"@babel/preset-env@npm:^7.16.4, @babel/preset-env@npm:^7.20.2, @babel/preset-env@npm:~7.21.0": + version: 7.21.5 + resolution: "@babel/preset-env@npm:7.21.5" + dependencies: + "@babel/compat-data": "npm:^7.21.5" + "@babel/helper-compilation-targets": "npm:^7.21.5" + "@babel/helper-plugin-utils": "npm:^7.21.5" + "@babel/helper-validator-option": "npm:^7.21.0" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "npm:^7.18.6" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "npm:^7.20.7" + "@babel/plugin-proposal-async-generator-functions": "npm:^7.20.7" + "@babel/plugin-proposal-class-properties": "npm:^7.18.6" + "@babel/plugin-proposal-class-static-block": "npm:^7.21.0" + "@babel/plugin-proposal-dynamic-import": "npm:^7.18.6" + "@babel/plugin-proposal-export-namespace-from": "npm:^7.18.9" + "@babel/plugin-proposal-json-strings": "npm:^7.18.6" + "@babel/plugin-proposal-logical-assignment-operators": "npm:^7.20.7" + "@babel/plugin-proposal-nullish-coalescing-operator": "npm:^7.18.6" + "@babel/plugin-proposal-numeric-separator": "npm:^7.18.6" + "@babel/plugin-proposal-object-rest-spread": "npm:^7.20.7" + "@babel/plugin-proposal-optional-catch-binding": "npm:^7.18.6" + "@babel/plugin-proposal-optional-chaining": "npm:^7.21.0" + "@babel/plugin-proposal-private-methods": "npm:^7.18.6" + "@babel/plugin-proposal-private-property-in-object": "npm:^7.21.0" + "@babel/plugin-proposal-unicode-property-regex": "npm:^7.18.6" + "@babel/plugin-syntax-async-generators": "npm:^7.8.4" + "@babel/plugin-syntax-class-properties": "npm:^7.12.13" + "@babel/plugin-syntax-class-static-block": "npm:^7.14.5" + "@babel/plugin-syntax-dynamic-import": "npm:^7.8.3" + "@babel/plugin-syntax-export-namespace-from": "npm:^7.8.3" + "@babel/plugin-syntax-import-assertions": "npm:^7.20.0" + "@babel/plugin-syntax-import-meta": "npm:^7.10.4" + "@babel/plugin-syntax-json-strings": "npm:^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators": "npm:^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator": "npm:^7.8.3" + "@babel/plugin-syntax-numeric-separator": "npm:^7.10.4" + "@babel/plugin-syntax-object-rest-spread": "npm:^7.8.3" + "@babel/plugin-syntax-optional-catch-binding": "npm:^7.8.3" + "@babel/plugin-syntax-optional-chaining": "npm:^7.8.3" + "@babel/plugin-syntax-private-property-in-object": "npm:^7.14.5" + "@babel/plugin-syntax-top-level-await": "npm:^7.14.5" + "@babel/plugin-transform-arrow-functions": "npm:^7.21.5" + "@babel/plugin-transform-async-to-generator": "npm:^7.20.7" + "@babel/plugin-transform-block-scoped-functions": "npm:^7.18.6" + "@babel/plugin-transform-block-scoping": "npm:^7.21.0" + "@babel/plugin-transform-classes": "npm:^7.21.0" + "@babel/plugin-transform-computed-properties": "npm:^7.21.5" + "@babel/plugin-transform-destructuring": "npm:^7.21.3" + "@babel/plugin-transform-dotall-regex": "npm:^7.18.6" + "@babel/plugin-transform-duplicate-keys": "npm:^7.18.9" + "@babel/plugin-transform-exponentiation-operator": "npm:^7.18.6" + "@babel/plugin-transform-for-of": "npm:^7.21.5" + "@babel/plugin-transform-function-name": "npm:^7.18.9" + "@babel/plugin-transform-literals": "npm:^7.18.9" + "@babel/plugin-transform-member-expression-literals": "npm:^7.18.6" + "@babel/plugin-transform-modules-amd": "npm:^7.20.11" + "@babel/plugin-transform-modules-commonjs": "npm:^7.21.5" + "@babel/plugin-transform-modules-systemjs": "npm:^7.20.11" + "@babel/plugin-transform-modules-umd": "npm:^7.18.6" + "@babel/plugin-transform-named-capturing-groups-regex": "npm:^7.20.5" + "@babel/plugin-transform-new-target": "npm:^7.18.6" + "@babel/plugin-transform-object-super": "npm:^7.18.6" + "@babel/plugin-transform-parameters": "npm:^7.21.3" + "@babel/plugin-transform-property-literals": "npm:^7.18.6" + "@babel/plugin-transform-regenerator": "npm:^7.21.5" + "@babel/plugin-transform-reserved-words": "npm:^7.18.6" + "@babel/plugin-transform-shorthand-properties": "npm:^7.18.6" + "@babel/plugin-transform-spread": "npm:^7.20.7" + "@babel/plugin-transform-sticky-regex": "npm:^7.18.6" + "@babel/plugin-transform-template-literals": "npm:^7.18.9" + "@babel/plugin-transform-typeof-symbol": "npm:^7.18.9" + "@babel/plugin-transform-unicode-escapes": "npm:^7.21.5" + "@babel/plugin-transform-unicode-regex": "npm:^7.18.6" + "@babel/preset-modules": "npm:^0.1.5" + "@babel/types": "npm:^7.21.5" + babel-plugin-polyfill-corejs2: "npm:^0.3.3" + babel-plugin-polyfill-corejs3: "npm:^0.6.0" + babel-plugin-polyfill-regenerator: "npm:^0.4.1" + core-js-compat: "npm:^3.25.1" + semver: "npm:^6.3.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 8ecd96e5869b354fa24930054255d14a0bdc306515809b4dd758de01400d41bbf0323de19ce41cf6f54cbaa62a103343e999a0644ea16e368e99903780d0fb67 + languageName: node + linkType: hard + +"@babel/preset-env@npm:^7.19.4, @babel/preset-env@npm:^7.22.9": + version: 7.23.7 + resolution: "@babel/preset-env@npm:7.23.7" dependencies: "@babel/compat-data": "npm:^7.23.5" "@babel/helper-compilation-targets": "npm:^7.23.6" - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-plugin-utils": "npm:^7.22.5" "@babel/helper-validator-option": "npm:^7.23.5" "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "npm:^7.23.3" "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "npm:^7.23.3" @@ -3056,13 +5135,13 @@ __metadata: "@babel/plugin-syntax-top-level-await": "npm:^7.14.5" "@babel/plugin-syntax-unicode-sets-regex": "npm:^7.18.6" "@babel/plugin-transform-arrow-functions": "npm:^7.23.3" - "@babel/plugin-transform-async-generator-functions": "npm:^7.23.9" + "@babel/plugin-transform-async-generator-functions": "npm:^7.23.7" "@babel/plugin-transform-async-to-generator": "npm:^7.23.3" "@babel/plugin-transform-block-scoped-functions": "npm:^7.23.3" "@babel/plugin-transform-block-scoping": "npm:^7.23.4" "@babel/plugin-transform-class-properties": "npm:^7.23.3" "@babel/plugin-transform-class-static-block": "npm:^7.23.4" - "@babel/plugin-transform-classes": "npm:^7.23.8" + "@babel/plugin-transform-classes": "npm:^7.23.5" "@babel/plugin-transform-computed-properties": "npm:^7.23.3" "@babel/plugin-transform-destructuring": "npm:^7.23.3" "@babel/plugin-transform-dotall-regex": "npm:^7.23.3" @@ -3078,13 +5157,13 @@ __metadata: "@babel/plugin-transform-member-expression-literals": "npm:^7.23.3" "@babel/plugin-transform-modules-amd": "npm:^7.23.3" "@babel/plugin-transform-modules-commonjs": "npm:^7.23.3" - "@babel/plugin-transform-modules-systemjs": "npm:^7.23.9" + "@babel/plugin-transform-modules-systemjs": "npm:^7.23.3" "@babel/plugin-transform-modules-umd": "npm:^7.23.3" "@babel/plugin-transform-named-capturing-groups-regex": "npm:^7.22.5" "@babel/plugin-transform-new-target": "npm:^7.23.3" "@babel/plugin-transform-nullish-coalescing-operator": "npm:^7.23.4" "@babel/plugin-transform-numeric-separator": "npm:^7.23.4" - "@babel/plugin-transform-object-rest-spread": "npm:^7.24.0" + "@babel/plugin-transform-object-rest-spread": "npm:^7.23.4" "@babel/plugin-transform-object-super": "npm:^7.23.3" "@babel/plugin-transform-optional-catch-binding": "npm:^7.23.4" "@babel/plugin-transform-optional-chaining": "npm:^7.23.4" @@ -3104,48 +5183,36 @@ __metadata: "@babel/plugin-transform-unicode-regex": "npm:^7.23.3" "@babel/plugin-transform-unicode-sets-regex": "npm:^7.23.3" "@babel/preset-modules": "npm:0.1.6-no-external-plugins" - babel-plugin-polyfill-corejs2: "npm:^0.4.8" - babel-plugin-polyfill-corejs3: "npm:^0.9.0" - babel-plugin-polyfill-regenerator: "npm:^0.5.5" + babel-plugin-polyfill-corejs2: "npm:^0.4.7" + babel-plugin-polyfill-corejs3: "npm:^0.8.7" + babel-plugin-polyfill-regenerator: "npm:^0.5.4" core-js-compat: "npm:^3.31.0" semver: "npm:^6.3.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 88bca150a09e658124997178ee1ff375a9aceecfd70ec11c7ccc12e82f5be5f7ff2ddfefba5b10fb617891645f92949392b350509de9742d2aa138f42959e190 + checksum: 2059dee350c39aba0a1f128d00ccfd7abf97f92a9b661f4db07a96c11d91c928a9f1df39477583f068090627bff571b4415f1a4f94008d29f6ad8b124e69804e languageName: node linkType: hard -"@babel/preset-env@npm:~7.21.0": - version: 7.21.5 - resolution: "@babel/preset-env@npm:7.21.5" +"@babel/preset-env@npm:^7.23.2": + version: 7.23.5 + resolution: "@babel/preset-env@npm:7.23.5" dependencies: - "@babel/compat-data": "npm:^7.21.5" - "@babel/helper-compilation-targets": "npm:^7.21.5" - "@babel/helper-plugin-utils": "npm:^7.21.5" - "@babel/helper-validator-option": "npm:^7.21.0" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "npm:^7.18.6" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "npm:^7.20.7" - "@babel/plugin-proposal-async-generator-functions": "npm:^7.20.7" - "@babel/plugin-proposal-class-properties": "npm:^7.18.6" - "@babel/plugin-proposal-class-static-block": "npm:^7.21.0" - "@babel/plugin-proposal-dynamic-import": "npm:^7.18.6" - "@babel/plugin-proposal-export-namespace-from": "npm:^7.18.9" - "@babel/plugin-proposal-json-strings": "npm:^7.18.6" - "@babel/plugin-proposal-logical-assignment-operators": "npm:^7.20.7" - "@babel/plugin-proposal-nullish-coalescing-operator": "npm:^7.18.6" - "@babel/plugin-proposal-numeric-separator": "npm:^7.18.6" - "@babel/plugin-proposal-object-rest-spread": "npm:^7.20.7" - "@babel/plugin-proposal-optional-catch-binding": "npm:^7.18.6" - "@babel/plugin-proposal-optional-chaining": "npm:^7.21.0" - "@babel/plugin-proposal-private-methods": "npm:^7.18.6" - "@babel/plugin-proposal-private-property-in-object": "npm:^7.21.0" - "@babel/plugin-proposal-unicode-property-regex": "npm:^7.18.6" + "@babel/compat-data": "npm:^7.23.5" + "@babel/helper-compilation-targets": "npm:^7.22.15" + "@babel/helper-plugin-utils": "npm:^7.22.5" + "@babel/helper-validator-option": "npm:^7.23.5" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "npm:^7.23.3" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "npm:^7.23.3" + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "npm:^7.23.3" + "@babel/plugin-proposal-private-property-in-object": "npm:7.21.0-placeholder-for-preset-env.2" "@babel/plugin-syntax-async-generators": "npm:^7.8.4" "@babel/plugin-syntax-class-properties": "npm:^7.12.13" "@babel/plugin-syntax-class-static-block": "npm:^7.14.5" "@babel/plugin-syntax-dynamic-import": "npm:^7.8.3" "@babel/plugin-syntax-export-namespace-from": "npm:^7.8.3" - "@babel/plugin-syntax-import-assertions": "npm:^7.20.0" + "@babel/plugin-syntax-import-assertions": "npm:^7.23.3" + "@babel/plugin-syntax-import-attributes": "npm:^7.23.3" "@babel/plugin-syntax-import-meta": "npm:^7.10.4" "@babel/plugin-syntax-json-strings": "npm:^7.8.3" "@babel/plugin-syntax-logical-assignment-operators": "npm:^7.10.4" @@ -3156,48 +5223,64 @@ __metadata: "@babel/plugin-syntax-optional-chaining": "npm:^7.8.3" "@babel/plugin-syntax-private-property-in-object": "npm:^7.14.5" "@babel/plugin-syntax-top-level-await": "npm:^7.14.5" - "@babel/plugin-transform-arrow-functions": "npm:^7.21.5" - "@babel/plugin-transform-async-to-generator": "npm:^7.20.7" - "@babel/plugin-transform-block-scoped-functions": "npm:^7.18.6" - "@babel/plugin-transform-block-scoping": "npm:^7.21.0" - "@babel/plugin-transform-classes": "npm:^7.21.0" - "@babel/plugin-transform-computed-properties": "npm:^7.21.5" - "@babel/plugin-transform-destructuring": "npm:^7.21.3" - "@babel/plugin-transform-dotall-regex": "npm:^7.18.6" - "@babel/plugin-transform-duplicate-keys": "npm:^7.18.9" - "@babel/plugin-transform-exponentiation-operator": "npm:^7.18.6" - "@babel/plugin-transform-for-of": "npm:^7.21.5" - "@babel/plugin-transform-function-name": "npm:^7.18.9" - "@babel/plugin-transform-literals": "npm:^7.18.9" - "@babel/plugin-transform-member-expression-literals": "npm:^7.18.6" - "@babel/plugin-transform-modules-amd": "npm:^7.20.11" - "@babel/plugin-transform-modules-commonjs": "npm:^7.21.5" - "@babel/plugin-transform-modules-systemjs": "npm:^7.20.11" - "@babel/plugin-transform-modules-umd": "npm:^7.18.6" - "@babel/plugin-transform-named-capturing-groups-regex": "npm:^7.20.5" - "@babel/plugin-transform-new-target": "npm:^7.18.6" - "@babel/plugin-transform-object-super": "npm:^7.18.6" - "@babel/plugin-transform-parameters": "npm:^7.21.3" - "@babel/plugin-transform-property-literals": "npm:^7.18.6" - "@babel/plugin-transform-regenerator": "npm:^7.21.5" - "@babel/plugin-transform-reserved-words": "npm:^7.18.6" - "@babel/plugin-transform-shorthand-properties": "npm:^7.18.6" - "@babel/plugin-transform-spread": "npm:^7.20.7" - "@babel/plugin-transform-sticky-regex": "npm:^7.18.6" - "@babel/plugin-transform-template-literals": "npm:^7.18.9" - "@babel/plugin-transform-typeof-symbol": "npm:^7.18.9" - "@babel/plugin-transform-unicode-escapes": "npm:^7.21.5" - "@babel/plugin-transform-unicode-regex": "npm:^7.18.6" - "@babel/preset-modules": "npm:^0.1.5" - "@babel/types": "npm:^7.21.5" - babel-plugin-polyfill-corejs2: "npm:^0.3.3" - babel-plugin-polyfill-corejs3: "npm:^0.6.0" - babel-plugin-polyfill-regenerator: "npm:^0.4.1" - core-js-compat: "npm:^3.25.1" - semver: "npm:^6.3.0" + "@babel/plugin-syntax-unicode-sets-regex": "npm:^7.18.6" + "@babel/plugin-transform-arrow-functions": "npm:^7.23.3" + "@babel/plugin-transform-async-generator-functions": "npm:^7.23.4" + "@babel/plugin-transform-async-to-generator": "npm:^7.23.3" + "@babel/plugin-transform-block-scoped-functions": "npm:^7.23.3" + "@babel/plugin-transform-block-scoping": "npm:^7.23.4" + "@babel/plugin-transform-class-properties": "npm:^7.23.3" + "@babel/plugin-transform-class-static-block": "npm:^7.23.4" + "@babel/plugin-transform-classes": "npm:^7.23.5" + "@babel/plugin-transform-computed-properties": "npm:^7.23.3" + "@babel/plugin-transform-destructuring": "npm:^7.23.3" + "@babel/plugin-transform-dotall-regex": "npm:^7.23.3" + "@babel/plugin-transform-duplicate-keys": "npm:^7.23.3" + "@babel/plugin-transform-dynamic-import": "npm:^7.23.4" + "@babel/plugin-transform-exponentiation-operator": "npm:^7.23.3" + "@babel/plugin-transform-export-namespace-from": "npm:^7.23.4" + "@babel/plugin-transform-for-of": "npm:^7.23.3" + "@babel/plugin-transform-function-name": "npm:^7.23.3" + "@babel/plugin-transform-json-strings": "npm:^7.23.4" + "@babel/plugin-transform-literals": "npm:^7.23.3" + "@babel/plugin-transform-logical-assignment-operators": "npm:^7.23.4" + "@babel/plugin-transform-member-expression-literals": "npm:^7.23.3" + "@babel/plugin-transform-modules-amd": "npm:^7.23.3" + "@babel/plugin-transform-modules-commonjs": "npm:^7.23.3" + "@babel/plugin-transform-modules-systemjs": "npm:^7.23.3" + "@babel/plugin-transform-modules-umd": "npm:^7.23.3" + "@babel/plugin-transform-named-capturing-groups-regex": "npm:^7.22.5" + "@babel/plugin-transform-new-target": "npm:^7.23.3" + "@babel/plugin-transform-nullish-coalescing-operator": "npm:^7.23.4" + "@babel/plugin-transform-numeric-separator": "npm:^7.23.4" + "@babel/plugin-transform-object-rest-spread": "npm:^7.23.4" + "@babel/plugin-transform-object-super": "npm:^7.23.3" + "@babel/plugin-transform-optional-catch-binding": "npm:^7.23.4" + "@babel/plugin-transform-optional-chaining": "npm:^7.23.4" + "@babel/plugin-transform-parameters": "npm:^7.23.3" + "@babel/plugin-transform-private-methods": "npm:^7.23.3" + "@babel/plugin-transform-private-property-in-object": "npm:^7.23.4" + "@babel/plugin-transform-property-literals": "npm:^7.23.3" + "@babel/plugin-transform-regenerator": "npm:^7.23.3" + "@babel/plugin-transform-reserved-words": "npm:^7.23.3" + "@babel/plugin-transform-shorthand-properties": "npm:^7.23.3" + "@babel/plugin-transform-spread": "npm:^7.23.3" + "@babel/plugin-transform-sticky-regex": "npm:^7.23.3" + "@babel/plugin-transform-template-literals": "npm:^7.23.3" + "@babel/plugin-transform-typeof-symbol": "npm:^7.23.3" + "@babel/plugin-transform-unicode-escapes": "npm:^7.23.3" + "@babel/plugin-transform-unicode-property-regex": "npm:^7.23.3" + "@babel/plugin-transform-unicode-regex": "npm:^7.23.3" + "@babel/plugin-transform-unicode-sets-regex": "npm:^7.23.3" + "@babel/preset-modules": "npm:0.1.6-no-external-plugins" + babel-plugin-polyfill-corejs2: "npm:^0.4.6" + babel-plugin-polyfill-corejs3: "npm:^0.8.5" + babel-plugin-polyfill-regenerator: "npm:^0.5.3" + core-js-compat: "npm:^3.31.0" + semver: "npm:^6.3.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 8ecd96e5869b354fa24930054255d14a0bdc306515809b4dd758de01400d41bbf0323de19ce41cf6f54cbaa62a103343e999a0644ea16e368e99903780d0fb67 + checksum: 9c2c2ca7a8ac7ea5a36866f5c1df43936f60b4b5988693c574d531a2abfbcd2804d8a67db3560a8e505cf11e2c3e3031ce4104a84685cff6fbd46b884592146c languageName: node linkType: hard @@ -3242,7 +5325,7 @@ __metadata: languageName: node linkType: hard -"@babel/preset-react@npm:^7.16.0, @babel/preset-react@npm:^7.18.6, @babel/preset-react@npm:^7.22.5": +"@babel/preset-react@npm:^7.16.0, @babel/preset-react@npm:^7.22.5": version: 7.23.3 resolution: "@babel/preset-react@npm:7.23.3" dependencies: @@ -3258,7 +5341,23 @@ __metadata: languageName: node linkType: hard -"@babel/preset-typescript@npm:^7.13.0, @babel/preset-typescript@npm:^7.16.0, @babel/preset-typescript@npm:^7.18.6, @babel/preset-typescript@npm:^7.22.5, @babel/preset-typescript@npm:^7.23.0": +"@babel/preset-react@npm:^7.18.6": + version: 7.22.5 + resolution: "@babel/preset-react@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.22.5" + "@babel/helper-validator-option": "npm:^7.22.5" + "@babel/plugin-transform-react-display-name": "npm:^7.22.5" + "@babel/plugin-transform-react-jsx": "npm:^7.22.5" + "@babel/plugin-transform-react-jsx-development": "npm:^7.22.5" + "@babel/plugin-transform-react-pure-annotations": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 7c78b1bca3f2de9cb863b50cf0a5378d5e80b1b2e7573b9daabf09c0517d197aa7ff7fcd7daeb4a51e148743ab5dbd24c7b34422c86a256baf0e10e13400fe98 + languageName: node + linkType: hard + +"@babel/preset-typescript@npm:^7.13.0, @babel/preset-typescript@npm:^7.16.0, @babel/preset-typescript@npm:^7.22.5, @babel/preset-typescript@npm:^7.23.0": version: 7.23.3 resolution: "@babel/preset-typescript@npm:7.23.3" dependencies: @@ -3273,7 +5372,22 @@ __metadata: languageName: node linkType: hard -"@babel/register@npm:^7.13.16, @babel/register@npm:^7.21.0, @babel/register@npm:^7.22.15": +"@babel/preset-typescript@npm:^7.18.6": + version: 7.22.5 + resolution: "@babel/preset-typescript@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.22.5" + "@babel/helper-validator-option": "npm:^7.22.5" + "@babel/plugin-syntax-jsx": "npm:^7.22.5" + "@babel/plugin-transform-modules-commonjs": "npm:^7.22.5" + "@babel/plugin-transform-typescript": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 2d851117e78235540be469a12a5c3bad42f994d030cf1fa58943e69f218dd21b805b0f2a592caf5f4bfc7beee2d3f9b66fa2a1daeb80c78edb3c574bd99e63d3 + languageName: node + linkType: hard + +"@babel/register@npm:^7.13.16, @babel/register@npm:^7.21.0": version: 7.23.7 resolution: "@babel/register@npm:7.23.7" dependencies: @@ -3288,6 +5402,21 @@ __metadata: languageName: node linkType: hard +"@babel/register@npm:^7.22.15": + version: 7.22.15 + resolution: "@babel/register@npm:7.22.15" + dependencies: + clone-deep: "npm:^4.0.1" + find-cache-dir: "npm:^2.0.0" + make-dir: "npm:^2.1.0" + pirates: "npm:^4.0.5" + source-map-support: "npm:^0.5.16" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 5497be6773608cd2d874210edd14499fce464ddbea170219da55955afe4c9173adb591164193458fd639e43b7d1314088a6186f4abf241476c59b3f0da6afd6f + languageName: node + linkType: hard + "@babel/regjsgen@npm:^0.8.0": version: 0.8.0 resolution: "@babel/regjsgen@npm:0.8.0" @@ -3305,7 +5434,34 @@ __metadata: languageName: node linkType: hard -"@babel/runtime@npm:^7.0.0, @babel/runtime@npm:^7.1.2, @babel/runtime@npm:^7.10.3, @babel/runtime@npm:^7.12.13, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.13.10, @babel/runtime@npm:^7.15.4, @babel/runtime@npm:^7.16.3, @babel/runtime@npm:^7.17.2, @babel/runtime@npm:^7.17.8, @babel/runtime@npm:^7.21.0, @babel/runtime@npm:^7.22.6, @babel/runtime@npm:^7.23.2, @babel/runtime@npm:^7.23.7, @babel/runtime@npm:^7.3.1, @babel/runtime@npm:^7.4.4, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.8.3, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.8.7, @babel/runtime@npm:^7.9.2": +"@babel/runtime@npm:^7.0.0, @babel/runtime@npm:^7.1.2, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.13.10, @babel/runtime@npm:^7.15.4, @babel/runtime@npm:^7.16.3, @babel/runtime@npm:^7.17.8, @babel/runtime@npm:^7.21.0, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.8.4": + version: 7.21.5 + resolution: "@babel/runtime@npm:7.21.5" + dependencies: + regenerator-runtime: "npm:^0.13.11" + checksum: 7cd4f9be85c655432688e1b328a62dc5666e2386b379948153da6ab51eff1a1a583e8606024cf9231ee59fc595d6cd1d2ecc6c280739c45f7a5994e8ccf8c281 + languageName: node + linkType: hard + +"@babel/runtime@npm:^7.10.3, @babel/runtime@npm:^7.12.13, @babel/runtime@npm:^7.8.7, @babel/runtime@npm:^7.9.2": + version: 7.22.6 + resolution: "@babel/runtime@npm:7.22.6" + dependencies: + regenerator-runtime: "npm:^0.13.11" + checksum: 1d2f56797f548b009910bddf3dc04f980a9701193233145dc923f3ea87c8f88121a3c3ef1d449e9cb52a370d7d025a2243c748882d5546ff079ddf5ffe29f240 + languageName: node + linkType: hard + +"@babel/runtime@npm:^7.17.2, @babel/runtime@npm:^7.22.6, @babel/runtime@npm:^7.23.2": + version: 7.23.7 + resolution: "@babel/runtime@npm:7.23.7" + dependencies: + regenerator-runtime: "npm:^0.14.0" + checksum: b29cf3ca6277aea8c5c823d9b86e7f7153757f07eaaa81d726f125de00ac0e7451c90845770f919826a94ade8f71a6bda9c0421410dfcc285ee17a40f8f8ca00 + languageName: node + linkType: hard + +"@babel/runtime@npm:^7.23.7": version: 7.24.0 resolution: "@babel/runtime@npm:7.24.0" dependencies: @@ -3314,36 +5470,38 @@ __metadata: languageName: node linkType: hard -"@babel/template@npm:^7.18.10, @babel/template@npm:^7.20.7, @babel/template@npm:^7.21.9, @babel/template@npm:^7.22.15, @babel/template@npm:^7.22.5, @babel/template@npm:^7.24.0": - version: 7.24.0 - resolution: "@babel/template@npm:7.24.0" +"@babel/runtime@npm:^7.3.1, @babel/runtime@npm:^7.8.3": + version: 7.22.11 + resolution: "@babel/runtime@npm:7.22.11" dependencies: - "@babel/code-frame": "npm:^7.23.5" - "@babel/parser": "npm:^7.24.0" - "@babel/types": "npm:^7.24.0" - checksum: 8c538338c7de8fac8ada691a5a812bdcbd60bd4a4eb5adae2cc9ee19773e8fb1a724312a00af9e1ce49056ffd3c3475e7287b5668cf6360bfb3f8ac827a06ffe + regenerator-runtime: "npm:^0.14.0" + checksum: 789b566482e543819dbef980581fc570a1fe2249e443d5e6b463494e69b73ba4aabfd0493794409fb756c5d36ad894ab2a90c23678017407841b73c641d849d6 languageName: node linkType: hard -"@babel/traverse@npm:^7.1.6, @babel/traverse@npm:^7.14.0, @babel/traverse@npm:^7.16.8, @babel/traverse@npm:^7.18.9, @babel/traverse@npm:^7.21.5, @babel/traverse@npm:^7.22.1, @babel/traverse@npm:^7.22.8, @babel/traverse@npm:^7.23.2, @babel/traverse@npm:^7.24.0": - version: 7.24.0 - resolution: "@babel/traverse@npm:7.24.0" +"@babel/template@npm:^7.18.10, @babel/template@npm:^7.20.7, @babel/template@npm:^7.22.15, @babel/template@npm:^7.22.5": + version: 7.22.15 + resolution: "@babel/template@npm:7.22.15" dependencies: - "@babel/code-frame": "npm:^7.23.5" - "@babel/generator": "npm:^7.23.6" - "@babel/helper-environment-visitor": "npm:^7.22.20" - "@babel/helper-function-name": "npm:^7.23.0" - "@babel/helper-hoist-variables": "npm:^7.22.5" - "@babel/helper-split-export-declaration": "npm:^7.22.6" - "@babel/parser": "npm:^7.24.0" - "@babel/types": "npm:^7.24.0" - debug: "npm:^4.3.1" - globals: "npm:^11.1.0" - checksum: 5cc482248ebb79adcbcf021aab4e0e95bafe2a1736ee4b46abe6f88b59848ad73e15e219db8f06c9a33a14c64257e5b47e53876601e998a8c596accb1b7f4996 + "@babel/code-frame": "npm:^7.22.13" + "@babel/parser": "npm:^7.22.15" + "@babel/types": "npm:^7.22.15" + checksum: 21e768e4eed4d1da2ce5d30aa51db0f4d6d8700bc1821fec6292587df7bba2fe1a96451230de8c64b989740731888ebf1141138bfffb14cacccf4d05c66ad93f languageName: node linkType: hard -"@babel/traverse@npm:~7.21.2": +"@babel/template@npm:^7.21.9": + version: 7.21.9 + resolution: "@babel/template@npm:7.21.9" + dependencies: + "@babel/code-frame": "npm:^7.21.4" + "@babel/parser": "npm:^7.21.9" + "@babel/types": "npm:^7.21.5" + checksum: dfa6df04a737c1c858b52defe6469cd5206127e7c4cf44c24f81b630e549a1c72ec1945773da9f280147061f27bfd13a9180171b47acac889868c19579be4e7f + languageName: node + linkType: hard + +"@babel/traverse@npm:^7.1.6, @babel/traverse@npm:^7.14.0, @babel/traverse@npm:^7.16.8, @babel/traverse@npm:^7.21.5, @babel/traverse@npm:~7.21.2": version: 7.21.5 resolution: "@babel/traverse@npm:7.21.5" dependencies: @@ -3361,6 +5519,114 @@ __metadata: languageName: node linkType: hard +"@babel/traverse@npm:^7.18.9, @babel/traverse@npm:^7.23.2": + version: 7.23.2 + resolution: "@babel/traverse@npm:7.23.2" + dependencies: + "@babel/code-frame": "npm:^7.22.13" + "@babel/generator": "npm:^7.23.0" + "@babel/helper-environment-visitor": "npm:^7.22.20" + "@babel/helper-function-name": "npm:^7.23.0" + "@babel/helper-hoist-variables": "npm:^7.22.5" + "@babel/helper-split-export-declaration": "npm:^7.22.6" + "@babel/parser": "npm:^7.23.0" + "@babel/types": "npm:^7.23.0" + debug: "npm:^4.1.0" + globals: "npm:^11.1.0" + checksum: e4fcb8f8395804956df4ae1301230a14b6eb35b74a7058a0e0b40f6f4be7281e619e6dafe400e833d4512da5d61cf17ea177d04b00a8f7cf3d8d69aff83ca3d8 + languageName: node + linkType: hard + +"@babel/traverse@npm:^7.22.1": + version: 7.22.4 + resolution: "@babel/traverse@npm:7.22.4" + dependencies: + "@babel/code-frame": "npm:^7.21.4" + "@babel/generator": "npm:^7.22.3" + "@babel/helper-environment-visitor": "npm:^7.22.1" + "@babel/helper-function-name": "npm:^7.21.0" + "@babel/helper-hoist-variables": "npm:^7.18.6" + "@babel/helper-split-export-declaration": "npm:^7.18.6" + "@babel/parser": "npm:^7.22.4" + "@babel/types": "npm:^7.22.4" + debug: "npm:^4.1.0" + globals: "npm:^11.1.0" + checksum: 5347a58172c8dacbfdcda804cd57037d1853f484a31b4a3bea3e81b6db00dcc71eff90f4a90c2ed6dcc0626ea2ed03fe441044136ad8da59a019d97337567539 + languageName: node + linkType: hard + +"@babel/traverse@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/traverse@npm:7.22.5" + dependencies: + "@babel/code-frame": "npm:^7.22.5" + "@babel/generator": "npm:^7.22.5" + "@babel/helper-environment-visitor": "npm:^7.22.5" + "@babel/helper-function-name": "npm:^7.22.5" + "@babel/helper-hoist-variables": "npm:^7.22.5" + "@babel/helper-split-export-declaration": "npm:^7.22.5" + "@babel/parser": "npm:^7.22.5" + "@babel/types": "npm:^7.22.5" + debug: "npm:^4.1.0" + globals: "npm:^11.1.0" + checksum: 2dad5f816da92c6fd2a2dc40db390b30ff95e5f370bea2d26d488b1dcf588b952d6c271f786a118ed5de03948c3c1236a88852f0ab307ab23df3e125507ff1ac + languageName: node + linkType: hard + +"@babel/traverse@npm:^7.22.8": + version: 7.22.8 + resolution: "@babel/traverse@npm:7.22.8" + dependencies: + "@babel/code-frame": "npm:^7.22.5" + "@babel/generator": "npm:^7.22.7" + "@babel/helper-environment-visitor": "npm:^7.22.5" + "@babel/helper-function-name": "npm:^7.22.5" + "@babel/helper-hoist-variables": "npm:^7.22.5" + "@babel/helper-split-export-declaration": "npm:^7.22.6" + "@babel/parser": "npm:^7.22.7" + "@babel/types": "npm:^7.22.5" + debug: "npm:^4.1.0" + globals: "npm:^11.1.0" + checksum: a2c2157c854a10f64bd8e2ac30e76723a4ee948572158962d102ba4d694abdb47c9cb7f0ede7d662ce083cd1940b631a6ad9ec55e86f4bbe1a1960cbf692078a + languageName: node + linkType: hard + +"@babel/traverse@npm:^7.23.5": + version: 7.23.5 + resolution: "@babel/traverse@npm:7.23.5" + dependencies: + "@babel/code-frame": "npm:^7.23.5" + "@babel/generator": "npm:^7.23.5" + "@babel/helper-environment-visitor": "npm:^7.22.20" + "@babel/helper-function-name": "npm:^7.23.0" + "@babel/helper-hoist-variables": "npm:^7.22.5" + "@babel/helper-split-export-declaration": "npm:^7.22.6" + "@babel/parser": "npm:^7.23.5" + "@babel/types": "npm:^7.23.5" + debug: "npm:^4.1.0" + globals: "npm:^11.1.0" + checksum: 281cae2765caad88c7af6214eab3647db0e9cadc7ffcd3fd924f09fbb9bd09d97d6fb210794b7545c317ce417a30016636530043a455ba6922349e39c1ba622a + languageName: node + linkType: hard + +"@babel/traverse@npm:^7.23.7": + version: 7.23.7 + resolution: "@babel/traverse@npm:7.23.7" + dependencies: + "@babel/code-frame": "npm:^7.23.5" + "@babel/generator": "npm:^7.23.6" + "@babel/helper-environment-visitor": "npm:^7.22.20" + "@babel/helper-function-name": "npm:^7.23.0" + "@babel/helper-hoist-variables": "npm:^7.22.5" + "@babel/helper-split-export-declaration": "npm:^7.22.6" + "@babel/parser": "npm:^7.23.6" + "@babel/types": "npm:^7.23.6" + debug: "npm:^4.3.1" + globals: "npm:^11.1.0" + checksum: 3215e59429963c8dac85c26933372cdd322952aa9930e4bc5ef2d0e4bd7a1510d1ecf8f8fd860ace5d4d9fe496d23805a1ea019a86410aee4111de5f63ee84f9 + languageName: node + linkType: hard + "@babel/types@npm:7.23.6": version: 7.23.6 resolution: "@babel/types@npm:7.23.6" @@ -3372,7 +5638,51 @@ __metadata: languageName: node linkType: hard -"@babel/types@npm:^7.0.0, @babel/types@npm:^7.16.7, @babel/types@npm:^7.16.8, @babel/types@npm:^7.18.13, @babel/types@npm:^7.18.9, @babel/types@npm:^7.2.0, @babel/types@npm:^7.20.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.21.3, @babel/types@npm:^7.21.5, @babel/types@npm:^7.22.0, @babel/types@npm:^7.22.15, @babel/types@npm:^7.22.19, @babel/types@npm:^7.22.4, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.0, @babel/types@npm:^7.23.4, @babel/types@npm:^7.23.6, @babel/types@npm:^7.24.0, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3": +"@babel/types@npm:^7.0.0, @babel/types@npm:^7.16.8, @babel/types@npm:^7.18.13, @babel/types@npm:^7.18.9, @babel/types@npm:^7.2.0, @babel/types@npm:^7.20.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.21.5, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3, @babel/types@npm:~7.21.2": + version: 7.21.5 + resolution: "@babel/types@npm:7.21.5" + dependencies: + "@babel/helper-string-parser": "npm:^7.21.5" + "@babel/helper-validator-identifier": "npm:^7.19.1" + to-fast-properties: "npm:^2.0.0" + checksum: 3411d24b1fcb2d7e8e7ee35cc8829ac34b59873506c33644abac63e4710aaf684d9af3dfee8c64e668693f3f9fb1db100ae1ebfff9c4077f287da382d2f2f9af + languageName: node + linkType: hard + +"@babel/types@npm:^7.16.7, @babel/types@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/types@npm:7.22.5" + dependencies: + "@babel/helper-string-parser": "npm:^7.22.5" + "@babel/helper-validator-identifier": "npm:^7.22.5" + to-fast-properties: "npm:^2.0.0" + checksum: 7f7edffe7e13dbd26a182677575ca7451bc234ce43b93dc49d27325306748628019e7753e6b5619ae462ea0d7e5ce2c0cc24092d53b592642ea89542037748b5 + languageName: node + linkType: hard + +"@babel/types@npm:^7.21.3, @babel/types@npm:^7.22.0, @babel/types@npm:^7.22.3, @babel/types@npm:^7.22.4": + version: 7.22.4 + resolution: "@babel/types@npm:7.22.4" + dependencies: + "@babel/helper-string-parser": "npm:^7.21.5" + "@babel/helper-validator-identifier": "npm:^7.19.1" + to-fast-properties: "npm:^2.0.0" + checksum: e614d94f96f45964a42cf12aff2c84e5500045b6c20dd054e38fc39be9e0a6fa64b7241bff55a9d01e02a9656687bfa2bc44fb9c95380f7c5b228126ade62b1b + languageName: node + linkType: hard + +"@babel/types@npm:^7.22.15, @babel/types@npm:^7.23.0": + version: 7.23.0 + resolution: "@babel/types@npm:7.23.0" + dependencies: + "@babel/helper-string-parser": "npm:^7.22.5" + "@babel/helper-validator-identifier": "npm:^7.22.20" + to-fast-properties: "npm:^2.0.0" + checksum: ca5b896a26c91c5672254725c4c892a35567d2122afc47bd5331d1611a7f9230c19fc9ef591a5a6f80bf0d80737e104a9ac205c96447c74bee01d4319db58001 + languageName: node + linkType: hard + +"@babel/types@npm:^7.22.19, @babel/types@npm:^7.23.4, @babel/types@npm:^7.23.6": version: 7.24.0 resolution: "@babel/types@npm:7.24.0" dependencies: @@ -3383,14 +5693,14 @@ __metadata: languageName: node linkType: hard -"@babel/types@npm:~7.21.2": - version: 7.21.5 - resolution: "@babel/types@npm:7.21.5" +"@babel/types@npm:^7.23.5": + version: 7.23.5 + resolution: "@babel/types@npm:7.23.5" dependencies: - "@babel/helper-string-parser": "npm:^7.21.5" - "@babel/helper-validator-identifier": "npm:^7.19.1" + "@babel/helper-string-parser": "npm:^7.23.4" + "@babel/helper-validator-identifier": "npm:^7.22.20" to-fast-properties: "npm:^2.0.0" - checksum: 3411d24b1fcb2d7e8e7ee35cc8829ac34b59873506c33644abac63e4710aaf684d9af3dfee8c64e668693f3f9fb1db100ae1ebfff9c4077f287da382d2f2f9af + checksum: a623a4e7f396f1903659099da25bfa059694a49f42820f6b5288347f1646f0b37fb7cc550ba45644e9067149368ef34ccb1bd4a4251ec59b83b3f7765088f363 languageName: node linkType: hard @@ -3485,6 +5795,52 @@ __metadata: languageName: node linkType: hard +"@chainsafe/as-sha256@npm:^0.3.1": + version: 0.3.1 + resolution: "@chainsafe/as-sha256@npm:0.3.1" + checksum: 3bae7b4bc6e307baa3cf1f9d2c75827874cd0fb458bc592656d741d374b48e71c042fe21616a506cb821487a5abfc6b92181e4b7fbf49b7370cee4df0b67d95a + languageName: node + linkType: hard + +"@chainsafe/persistent-merkle-tree@npm:^0.4.2": + version: 0.4.2 + resolution: "@chainsafe/persistent-merkle-tree@npm:0.4.2" + dependencies: + "@chainsafe/as-sha256": "npm:^0.3.1" + checksum: a7e59f80be3ce0a86fe452a3c003bd159a1719ed22cae22e9841668f0eda8c35412fa16b3b150d96f583a24f430a5cc2a1bfcabafc1b9cf6e1fdb227e98c4dc7 + languageName: node + linkType: hard + +"@chainsafe/persistent-merkle-tree@npm:^0.5.0": + version: 0.5.0 + resolution: "@chainsafe/persistent-merkle-tree@npm:0.5.0" + dependencies: + "@chainsafe/as-sha256": "npm:^0.3.1" + checksum: c8a37eb2fbe04d8b6f219774400dad5c50e109a9daf427883c9e33826a294a1bbd6bc759b5d6d38fefb2398443d2d880b67130eacab55b34d95d1332ac8ab680 + languageName: node + linkType: hard + +"@chainsafe/ssz@npm:^0.10.0": + version: 0.10.2 + resolution: "@chainsafe/ssz@npm:0.10.2" + dependencies: + "@chainsafe/as-sha256": "npm:^0.3.1" + "@chainsafe/persistent-merkle-tree": "npm:^0.5.0" + checksum: 359b3a672b460ad7fee524115fe7e5d9518c62b667dfc3dc6d8be0286ebb785ce303a68070cde5b31fc2860f99fda40df4296030cb9af42554143290f542326b + languageName: node + linkType: hard + +"@chainsafe/ssz@npm:^0.9.2": + version: 0.9.4 + resolution: "@chainsafe/ssz@npm:0.9.4" + dependencies: + "@chainsafe/as-sha256": "npm:^0.3.1" + "@chainsafe/persistent-merkle-tree": "npm:^0.4.2" + case: "npm:^1.6.3" + checksum: 2fe83d0b3ef131e14b51b88bb3343b14e7a02185fa9fd3da84b4726dbd857daaa4f7f6f4840fe3772fc1380352b1675a13b5f6153c4211c0f00ffa542b62bf2f + languageName: node + linkType: hard + "@cloudflare/kv-asset-handler@npm:0.3.1": version: 0.3.1 resolution: "@cloudflare/kv-asset-handler@npm:0.3.1" @@ -4239,57 +6595,6 @@ __metadata: languageName: node linkType: hard -"@ensdomains/address-encoder@npm:^0.1.7": - version: 0.1.9 - resolution: "@ensdomains/address-encoder@npm:0.1.9" - dependencies: - bech32: "npm:^1.1.3" - blakejs: "npm:^1.1.0" - bn.js: "npm:^4.11.8" - bs58: "npm:^4.0.1" - crypto-addr-codec: "npm:^0.1.7" - nano-base32: "npm:^1.0.1" - ripemd160: "npm:^2.0.2" - checksum: 23a02f72e8e99d7303cce82eae7dfa2d1cff07cc60a625b9fde3ff17db23178a1dbe29f96b92a486b937eeed5908a2e3221ab9b245c92b543ac8c2df2e75d704 - languageName: node - linkType: hard - -"@ensdomains/ens@npm:0.4.5": - version: 0.4.5 - resolution: "@ensdomains/ens@npm:0.4.5" - dependencies: - bluebird: "npm:^3.5.2" - eth-ens-namehash: "npm:^2.0.8" - solc: "npm:^0.4.20" - testrpc: "npm:0.0.1" - web3-utils: "npm:^1.0.0-beta.31" - checksum: 3e02c9666904366bee59fbf25f87a04363cba79769840e5b7ebd21d74c6c15272a3045fc0b7397b3836214f8172c66ced8133e31f63d9c199ea065b724d269e3 - languageName: node - linkType: hard - -"@ensdomains/ensjs@npm:^2.0.1, @ensdomains/ensjs@npm:^2.1.0": - version: 2.1.0 - resolution: "@ensdomains/ensjs@npm:2.1.0" - dependencies: - "@babel/runtime": "npm:^7.4.4" - "@ensdomains/address-encoder": "npm:^0.1.7" - "@ensdomains/ens": "npm:0.4.5" - "@ensdomains/resolver": "npm:0.2.4" - content-hash: "npm:^2.5.2" - eth-ens-namehash: "npm:^2.0.8" - ethers: "npm:^5.0.13" - js-sha3: "npm:^0.8.0" - checksum: 5edee5179487e6fc643b3354e4c698167c694d2d6a804fa6cb69a1f846162dcd9b0da4c327421c222ae2e01dfefc43a79d878236935c1f73c3c8c53a89a9cd1a - languageName: node - linkType: hard - -"@ensdomains/resolver@npm:0.2.4": - version: 0.2.4 - resolution: "@ensdomains/resolver@npm:0.2.4" - checksum: 3972e9df3cd75b0c29415acef12fa9094735984305f974e5156131b928f03f86559c55283207d20f0d489419d3b0b360775b4813671393cb471fbdb4ecf1140e - languageName: node - linkType: hard - "@enzoferey/ethers-error-parser@npm:0.2.3": version: 0.2.3 resolution: "@enzoferey/ethers-error-parser@npm:0.2.3" @@ -4362,6 +6667,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/android-arm64@npm:0.19.5": + version: 0.19.5 + resolution: "@esbuild/android-arm64@npm:0.19.5" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/android-arm@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/android-arm@npm:0.17.19" @@ -4390,6 +6702,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/android-arm@npm:0.19.5": + version: 0.19.5 + resolution: "@esbuild/android-arm@npm:0.19.5" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + "@esbuild/android-x64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/android-x64@npm:0.17.19" @@ -4418,6 +6737,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/android-x64@npm:0.19.5": + version: 0.19.5 + resolution: "@esbuild/android-x64@npm:0.19.5" + conditions: os=android & cpu=x64 + languageName: node + linkType: hard + "@esbuild/darwin-arm64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/darwin-arm64@npm:0.17.19" @@ -4446,6 +6772,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/darwin-arm64@npm:0.19.5": + version: 0.19.5 + resolution: "@esbuild/darwin-arm64@npm:0.19.5" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/darwin-x64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/darwin-x64@npm:0.17.19" @@ -4474,6 +6807,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/darwin-x64@npm:0.19.5": + version: 0.19.5 + resolution: "@esbuild/darwin-x64@npm:0.19.5" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + "@esbuild/freebsd-arm64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/freebsd-arm64@npm:0.17.19" @@ -4502,6 +6842,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/freebsd-arm64@npm:0.19.5": + version: 0.19.5 + resolution: "@esbuild/freebsd-arm64@npm:0.19.5" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/freebsd-x64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/freebsd-x64@npm:0.17.19" @@ -4530,6 +6877,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/freebsd-x64@npm:0.19.5": + version: 0.19.5 + resolution: "@esbuild/freebsd-x64@npm:0.19.5" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + "@esbuild/linux-arm64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/linux-arm64@npm:0.17.19" @@ -4558,6 +6912,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-arm64@npm:0.19.5": + version: 0.19.5 + resolution: "@esbuild/linux-arm64@npm:0.19.5" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/linux-arm@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/linux-arm@npm:0.17.19" @@ -4586,6 +6947,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-arm@npm:0.19.5": + version: 0.19.5 + resolution: "@esbuild/linux-arm@npm:0.19.5" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + "@esbuild/linux-ia32@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/linux-ia32@npm:0.17.19" @@ -4614,6 +6982,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-ia32@npm:0.19.5": + version: 0.19.5 + resolution: "@esbuild/linux-ia32@npm:0.19.5" + conditions: os=linux & cpu=ia32 + languageName: node + linkType: hard + "@esbuild/linux-loong64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/linux-loong64@npm:0.17.19" @@ -4642,6 +7017,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-loong64@npm:0.19.5": + version: 0.19.5 + resolution: "@esbuild/linux-loong64@npm:0.19.5" + conditions: os=linux & cpu=loong64 + languageName: node + linkType: hard + "@esbuild/linux-mips64el@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/linux-mips64el@npm:0.17.19" @@ -4670,6 +7052,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-mips64el@npm:0.19.5": + version: 0.19.5 + resolution: "@esbuild/linux-mips64el@npm:0.19.5" + conditions: os=linux & cpu=mips64el + languageName: node + linkType: hard + "@esbuild/linux-ppc64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/linux-ppc64@npm:0.17.19" @@ -4698,6 +7087,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-ppc64@npm:0.19.5": + version: 0.19.5 + resolution: "@esbuild/linux-ppc64@npm:0.19.5" + conditions: os=linux & cpu=ppc64 + languageName: node + linkType: hard + "@esbuild/linux-riscv64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/linux-riscv64@npm:0.17.19" @@ -4726,6 +7122,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-riscv64@npm:0.19.5": + version: 0.19.5 + resolution: "@esbuild/linux-riscv64@npm:0.19.5" + conditions: os=linux & cpu=riscv64 + languageName: node + linkType: hard + "@esbuild/linux-s390x@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/linux-s390x@npm:0.17.19" @@ -4754,6 +7157,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-s390x@npm:0.19.5": + version: 0.19.5 + resolution: "@esbuild/linux-s390x@npm:0.19.5" + conditions: os=linux & cpu=s390x + languageName: node + linkType: hard + "@esbuild/linux-x64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/linux-x64@npm:0.17.19" @@ -4782,6 +7192,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-x64@npm:0.19.5": + version: 0.19.5 + resolution: "@esbuild/linux-x64@npm:0.19.5" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + "@esbuild/netbsd-x64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/netbsd-x64@npm:0.17.19" @@ -4810,6 +7227,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/netbsd-x64@npm:0.19.5": + version: 0.19.5 + resolution: "@esbuild/netbsd-x64@npm:0.19.5" + conditions: os=netbsd & cpu=x64 + languageName: node + linkType: hard + "@esbuild/openbsd-x64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/openbsd-x64@npm:0.17.19" @@ -4838,6 +7262,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/openbsd-x64@npm:0.19.5": + version: 0.19.5 + resolution: "@esbuild/openbsd-x64@npm:0.19.5" + conditions: os=openbsd & cpu=x64 + languageName: node + linkType: hard + "@esbuild/sunos-x64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/sunos-x64@npm:0.17.19" @@ -4866,6 +7297,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/sunos-x64@npm:0.19.5": + version: 0.19.5 + resolution: "@esbuild/sunos-x64@npm:0.19.5" + conditions: os=sunos & cpu=x64 + languageName: node + linkType: hard + "@esbuild/win32-arm64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/win32-arm64@npm:0.17.19" @@ -4894,6 +7332,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/win32-arm64@npm:0.19.5": + version: 0.19.5 + resolution: "@esbuild/win32-arm64@npm:0.19.5" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/win32-ia32@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/win32-ia32@npm:0.17.19" @@ -4922,6 +7367,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/win32-ia32@npm:0.19.5": + version: 0.19.5 + resolution: "@esbuild/win32-ia32@npm:0.19.5" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + "@esbuild/win32-x64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/win32-x64@npm:0.17.19" @@ -4950,6 +7402,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/win32-x64@npm:0.19.5": + version: 0.19.5 + resolution: "@esbuild/win32-x64@npm:0.19.5" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0": version: 4.4.0 resolution: "@eslint-community/eslint-utils@npm:4.4.0" @@ -4961,14 +7420,21 @@ __metadata: languageName: node linkType: hard -"@eslint-community/regexpp@npm:^4.4.0, @eslint-community/regexpp@npm:^4.5.1, @eslint-community/regexpp@npm:^4.6.1": +"@eslint-community/regexpp@npm:^4.4.0": version: 4.10.0 resolution: "@eslint-community/regexpp@npm:4.10.0" checksum: 8c36169c815fc5d726078e8c71a5b592957ee60d08c6470f9ce0187c8046af1a00afbda0a065cc40ff18d5d83f82aed9793c6818f7304a74a7488dc9f3ecbd42 languageName: node linkType: hard -"@eslint/eslintrc@npm:^2.0.3, @eslint/eslintrc@npm:^2.1.1, @eslint/eslintrc@npm:^2.1.3, @eslint/eslintrc@npm:^2.1.4": +"@eslint-community/regexpp@npm:^4.5.1, @eslint-community/regexpp@npm:^4.6.1": + version: 4.6.2 + resolution: "@eslint-community/regexpp@npm:4.6.2" + checksum: 59ea2fa13a70996a8cebbd5a9f4499c92bceeff872286ef2fb34948fcfb9d3467692371d9cc116e7d613f2c18086a1c8337c9d461ccdf213f0dc47f6f6d2fbb6 + languageName: node + linkType: hard + +"@eslint/eslintrc@npm:^2.0.3, @eslint/eslintrc@npm:^2.1.4": version: 2.1.4 resolution: "@eslint/eslintrc@npm:2.1.4" dependencies: @@ -4985,6 +7451,40 @@ __metadata: languageName: node linkType: hard +"@eslint/eslintrc@npm:^2.1.1": + version: 2.1.1 + resolution: "@eslint/eslintrc@npm:2.1.1" + dependencies: + ajv: "npm:^6.12.4" + debug: "npm:^4.3.2" + espree: "npm:^9.6.0" + globals: "npm:^13.19.0" + ignore: "npm:^5.2.0" + import-fresh: "npm:^3.2.1" + js-yaml: "npm:^4.1.0" + minimatch: "npm:^3.1.2" + strip-json-comments: "npm:^3.1.1" + checksum: d4dda7f9f0c4d3d81f871d0bff4c028fa321fe5f23ead19c8438b9f405747b7bb275d72572e1ec4a55c542723a544ebefe7255e37a1747a355e56286e465806f + languageName: node + linkType: hard + +"@eslint/eslintrc@npm:^2.1.3": + version: 2.1.3 + resolution: "@eslint/eslintrc@npm:2.1.3" + dependencies: + ajv: "npm:^6.12.4" + debug: "npm:^4.3.2" + espree: "npm:^9.6.0" + globals: "npm:^13.19.0" + ignore: "npm:^5.2.0" + import-fresh: "npm:^3.2.1" + js-yaml: "npm:^4.1.0" + minimatch: "npm:^3.1.2" + strip-json-comments: "npm:^3.1.1" + checksum: 77b70a89232fe702c2f765b5b92970f5e4224b55363b923238b996c66fcd991504f40d3663c0543ae17d6c5049ab9b07ab90b65d7601e6f25e8bcd4caf69ac75 + languageName: node + linkType: hard + "@eslint/js@npm:8.41.0": version: 8.41.0 resolution: "@eslint/js@npm:8.41.0" @@ -5013,17 +7513,7 @@ __metadata: languageName: node linkType: hard -"@ethereumjs/common@npm:2.5.0": - version: 2.5.0 - resolution: "@ethereumjs/common@npm:2.5.0" - dependencies: - crc-32: "npm:^1.2.0" - ethereumjs-util: "npm:^7.1.1" - checksum: 8fba3e67b184f040d0f7630be84315d2738e3e322fc3559e00a5083b790e85433d5ea6b98833bc802eb2c8569f97a0166ffb2a592eeb09e942c0de9262a8c346 - languageName: node - linkType: hard - -"@ethereumjs/common@npm:2.6.5, @ethereumjs/common@npm:^2.3.0, @ethereumjs/common@npm:^2.5.0, @ethereumjs/common@npm:^2.6.4": +"@ethereumjs/common@npm:2.6.5, @ethereumjs/common@npm:^2.6.4": version: 2.6.5 resolution: "@ethereumjs/common@npm:2.6.5" dependencies: @@ -5042,17 +7532,7 @@ __metadata: languageName: node linkType: hard -"@ethereumjs/tx@npm:3.3.2": - version: 3.3.2 - resolution: "@ethereumjs/tx@npm:3.3.2" - dependencies: - "@ethereumjs/common": "npm:^2.5.0" - ethereumjs-util: "npm:^7.1.2" - checksum: 9d88b9627b9c6a465b931ddba7a6aa4a124d3662c91f5f6658be1ad11fefd7f7429042feb47f5676854300a8cb3e107184154d1123d7292a92938afc057b58de - languageName: node - linkType: hard - -"@ethereumjs/tx@npm:3.5.2, @ethereumjs/tx@npm:^3.2.1": +"@ethereumjs/tx@npm:3.5.2": version: 3.5.2 resolution: "@ethereumjs/tx@npm:3.5.2" dependencies: @@ -5073,23 +7553,6 @@ __metadata: languageName: node linkType: hard -"@ethersproject/abi@npm:5.0.0-beta.153": - version: 5.0.0-beta.153 - resolution: "@ethersproject/abi@npm:5.0.0-beta.153" - dependencies: - "@ethersproject/address": "npm:>=5.0.0-beta.128" - "@ethersproject/bignumber": "npm:>=5.0.0-beta.130" - "@ethersproject/bytes": "npm:>=5.0.0-beta.129" - "@ethersproject/constants": "npm:>=5.0.0-beta.128" - "@ethersproject/hash": "npm:>=5.0.0-beta.128" - "@ethersproject/keccak256": "npm:>=5.0.0-beta.127" - "@ethersproject/logger": "npm:>=5.0.0-beta.129" - "@ethersproject/properties": "npm:>=5.0.0-beta.131" - "@ethersproject/strings": "npm:>=5.0.0-beta.130" - checksum: bf892a0c78cb6132919889c1e5fa38a2541f5f3dd78778922b45904e0005033159ff322bf9e0d87f676ab151b48cc969c0e52610cc4c3c3eed1661ee9518f5c3 - languageName: node - linkType: hard - "@ethersproject/abi@npm:5.0.7": version: 5.0.7 resolution: "@ethersproject/abi@npm:5.0.7" @@ -5107,7 +7570,7 @@ __metadata: languageName: node linkType: hard -"@ethersproject/abi@npm:5.7.0, @ethersproject/abi@npm:^5.0.12, @ethersproject/abi@npm:^5.0.9, @ethersproject/abi@npm:^5.1.2, @ethersproject/abi@npm:^5.5.0, @ethersproject/abi@npm:^5.6.3, @ethersproject/abi@npm:^5.7.0": +"@ethersproject/abi@npm:5.7.0, @ethersproject/abi@npm:^5.0.0-beta.146, @ethersproject/abi@npm:^5.0.12, @ethersproject/abi@npm:^5.0.9, @ethersproject/abi@npm:^5.1.2, @ethersproject/abi@npm:^5.5.0, @ethersproject/abi@npm:^5.6.3, @ethersproject/abi@npm:^5.7.0": version: 5.7.0 resolution: "@ethersproject/abi@npm:5.7.0" dependencies: @@ -5152,7 +7615,7 @@ __metadata: languageName: node linkType: hard -"@ethersproject/address@npm:5.7.0, @ethersproject/address@npm:>=5.0.0-beta.128, @ethersproject/address@npm:^5.0.0, @ethersproject/address@npm:^5.0.2, @ethersproject/address@npm:^5.0.4, @ethersproject/address@npm:^5.7.0": +"@ethersproject/address@npm:5.7.0, @ethersproject/address@npm:^5.0.0, @ethersproject/address@npm:^5.0.2, @ethersproject/address@npm:^5.0.4, @ethersproject/address@npm:^5.7.0": version: 5.7.0 resolution: "@ethersproject/address@npm:5.7.0" dependencies: @@ -5184,7 +7647,7 @@ __metadata: languageName: node linkType: hard -"@ethersproject/bignumber@npm:5.7.0, @ethersproject/bignumber@npm:>=5.0.0-beta.130, @ethersproject/bignumber@npm:^5.0.7, @ethersproject/bignumber@npm:^5.7.0": +"@ethersproject/bignumber@npm:5.7.0, @ethersproject/bignumber@npm:^5.0.7, @ethersproject/bignumber@npm:^5.7.0": version: 5.7.0 resolution: "@ethersproject/bignumber@npm:5.7.0" dependencies: @@ -5195,7 +7658,7 @@ __metadata: languageName: node linkType: hard -"@ethersproject/bytes@npm:5.7.0, @ethersproject/bytes@npm:>=5.0.0-beta.129, @ethersproject/bytes@npm:^5.0.4, @ethersproject/bytes@npm:^5.7.0": +"@ethersproject/bytes@npm:5.7.0, @ethersproject/bytes@npm:^5.0.4, @ethersproject/bytes@npm:^5.7.0": version: 5.7.0 resolution: "@ethersproject/bytes@npm:5.7.0" dependencies: @@ -5204,7 +7667,7 @@ __metadata: languageName: node linkType: hard -"@ethersproject/constants@npm:5.7.0, @ethersproject/constants@npm:>=5.0.0-beta.128, @ethersproject/constants@npm:^5.0.4, @ethersproject/constants@npm:^5.7.0": +"@ethersproject/constants@npm:5.7.0, @ethersproject/constants@npm:^5.0.4, @ethersproject/constants@npm:^5.7.0": version: 5.7.0 resolution: "@ethersproject/constants@npm:5.7.0" dependencies: @@ -5231,7 +7694,7 @@ __metadata: languageName: node linkType: hard -"@ethersproject/hash@npm:5.7.0, @ethersproject/hash@npm:>=5.0.0-beta.128, @ethersproject/hash@npm:^5.0.4, @ethersproject/hash@npm:^5.7.0": +"@ethersproject/hash@npm:5.7.0, @ethersproject/hash@npm:^5.0.4, @ethersproject/hash@npm:^5.7.0": version: 5.7.0 resolution: "@ethersproject/hash@npm:5.7.0" dependencies: @@ -5289,7 +7752,7 @@ __metadata: languageName: node linkType: hard -"@ethersproject/keccak256@npm:5.7.0, @ethersproject/keccak256@npm:>=5.0.0-beta.127, @ethersproject/keccak256@npm:^5.0.3, @ethersproject/keccak256@npm:^5.7.0": +"@ethersproject/keccak256@npm:5.7.0, @ethersproject/keccak256@npm:^5.0.3, @ethersproject/keccak256@npm:^5.7.0": version: 5.7.0 resolution: "@ethersproject/keccak256@npm:5.7.0" dependencies: @@ -5299,7 +7762,7 @@ __metadata: languageName: node linkType: hard -"@ethersproject/logger@npm:5.7.0, @ethersproject/logger@npm:>=5.0.0-beta.129, @ethersproject/logger@npm:^5.0.5, @ethersproject/logger@npm:^5.7.0": +"@ethersproject/logger@npm:5.7.0, @ethersproject/logger@npm:^5.0.5, @ethersproject/logger@npm:^5.7.0": version: 5.7.0 resolution: "@ethersproject/logger@npm:5.7.0" checksum: 683a939f467ae7510deedc23d7611d0932c3046137f5ffb92ba1e3c8cd9cf2fbbaa676b660c248441a0fa9143783137c46d6e6d17d676188dd5a6ef0b72dd091 @@ -5325,7 +7788,7 @@ __metadata: languageName: node linkType: hard -"@ethersproject/properties@npm:5.7.0, @ethersproject/properties@npm:>=5.0.0-beta.131, @ethersproject/properties@npm:^5.0.3, @ethersproject/properties@npm:^5.7.0": +"@ethersproject/properties@npm:5.7.0, @ethersproject/properties@npm:^5.0.3, @ethersproject/properties@npm:^5.7.0": version: 5.7.0 resolution: "@ethersproject/properties@npm:5.7.0" dependencies: @@ -5334,7 +7797,7 @@ __metadata: languageName: node linkType: hard -"@ethersproject/providers@npm:5.7.2, @ethersproject/providers@npm:^5.7.2": +"@ethersproject/providers@npm:5.7.2, @ethersproject/providers@npm:^5.7.1, @ethersproject/providers@npm:^5.7.2": version: 5.7.2 resolution: "@ethersproject/providers@npm:5.7.2" dependencies: @@ -5421,7 +7884,7 @@ __metadata: languageName: node linkType: hard -"@ethersproject/strings@npm:5.7.0, @ethersproject/strings@npm:>=5.0.0-beta.130, @ethersproject/strings@npm:^5.0.4, @ethersproject/strings@npm:^5.7.0": +"@ethersproject/strings@npm:5.7.0, @ethersproject/strings@npm:^5.0.4, @ethersproject/strings@npm:^5.7.0": version: 5.7.0 resolution: "@ethersproject/strings@npm:5.7.0" dependencies: @@ -5432,7 +7895,7 @@ __metadata: languageName: node linkType: hard -"@ethersproject/transactions@npm:5.7.0, @ethersproject/transactions@npm:^5.0.0-beta.135, @ethersproject/transactions@npm:^5.6.2, @ethersproject/transactions@npm:^5.7.0": +"@ethersproject/transactions@npm:5.7.0, @ethersproject/transactions@npm:^5.6.2, @ethersproject/transactions@npm:^5.7.0": version: 5.7.0 resolution: "@ethersproject/transactions@npm:5.7.0" dependencies: @@ -6421,7 +8884,7 @@ __metadata: languageName: node linkType: hard -"@humanwhocodes/config-array@npm:^0.11.10, @humanwhocodes/config-array@npm:^0.11.13, @humanwhocodes/config-array@npm:^0.11.8": +"@humanwhocodes/config-array@npm:^0.11.10, @humanwhocodes/config-array@npm:^0.11.13": version: 0.11.14 resolution: "@humanwhocodes/config-array@npm:0.11.14" dependencies: @@ -6432,6 +8895,17 @@ __metadata: languageName: node linkType: hard +"@humanwhocodes/config-array@npm:^0.11.8": + version: 0.11.8 + resolution: "@humanwhocodes/config-array@npm:0.11.8" + dependencies: + "@humanwhocodes/object-schema": "npm:^1.2.1" + debug: "npm:^4.1.1" + minimatch: "npm:^3.0.5" + checksum: 2ec8619c751120570f0c822ae015f8c4ac00ddb74e85296805d999b74fcba48ec89af655075e6792588e218ec3e540f725b5bc524af0415cb1cfb62091d0f19f + languageName: node + linkType: hard + "@humanwhocodes/module-importer@npm:^1.0.1": version: 1.0.1 resolution: "@humanwhocodes/module-importer@npm:1.0.1" @@ -6446,6 +8920,13 @@ __metadata: languageName: node linkType: hard +"@humanwhocodes/object-schema@npm:^1.2.1": + version: 1.2.1 + resolution: "@humanwhocodes/object-schema@npm:1.2.1" + checksum: b48a8f87fcd5fdc4ac60a31a8bf710d19cc64556050575e6a35a4a48a8543cf8cde1598a65640ff2cdfbfd165b38f9db4fa3782bea7848eb585cc3db824002e6 + languageName: node + linkType: hard + "@humanwhocodes/object-schema@npm:^2.0.2": version: 2.0.2 resolution: "@humanwhocodes/object-schema@npm:2.0.2" @@ -6684,7 +9165,17 @@ __metadata: languageName: node linkType: hard -"@jridgewell/trace-mapping@npm:^0.3.12, @jridgewell/trace-mapping@npm:^0.3.17, @jridgewell/trace-mapping@npm:^0.3.18, @jridgewell/trace-mapping@npm:^0.3.20, @jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.9": +"@jridgewell/trace-mapping@npm:^0.3.12, @jridgewell/trace-mapping@npm:^0.3.17, @jridgewell/trace-mapping@npm:^0.3.18, @jridgewell/trace-mapping@npm:^0.3.20, @jridgewell/trace-mapping@npm:^0.3.9": + version: 0.3.20 + resolution: "@jridgewell/trace-mapping@npm:0.3.20" + dependencies: + "@jridgewell/resolve-uri": "npm:^3.1.0" + "@jridgewell/sourcemap-codec": "npm:^1.4.14" + checksum: 683117e4e6707ef50c725d6d0ec4234687ff751f36fa46c2b3068931eb6a86b49af374d3030200777666579a992b7470d1bd1c591e9bf64d764dda5295f33093 + languageName: node + linkType: hard + +"@jridgewell/trace-mapping@npm:^0.3.24": version: 0.3.25 resolution: "@jridgewell/trace-mapping@npm:0.3.25" dependencies: @@ -6731,24 +9222,6 @@ __metadata: languageName: node linkType: hard -"@ljharb/resumer@npm:~0.0.1": - version: 0.0.1 - resolution: "@ljharb/resumer@npm:0.0.1" - dependencies: - "@ljharb/through": "npm:^2.3.9" - checksum: fb23e016164614eaf0f7893a27f6f463d9a44c1b91e736adc9520f4f40b721a2f2865af9b8ae7486f632ee8a4291807795c6e38731677bf74e55140a7ed3cd7e - languageName: node - linkType: hard - -"@ljharb/through@npm:^2.3.9, @ljharb/through@npm:~2.3.9": - version: 2.3.12 - resolution: "@ljharb/through@npm:2.3.12" - dependencies: - call-bind: "npm:^1.0.5" - checksum: e1bd9b3a068d6a5886e0116ac34a13ec161d21088f65c5ca17beb141382af2358b46be9e359e6585496e9e61a4390839386dc78f5656e54e89a95c373b9eacfb - languageName: node - linkType: hard - "@logtail/core@npm:^0.4.19": version: 0.4.19 resolution: "@logtail/core@npm:0.4.19" @@ -7936,7 +10409,7 @@ __metadata: languageName: node linkType: hard -"@netlify/serverless-functions-api@npm:^1.14.0, @netlify/serverless-functions-api@npm:^1.5.0": +"@netlify/serverless-functions-api@npm:^1.14.0": version: 1.14.0 resolution: "@netlify/serverless-functions-api@npm:1.14.0" dependencies: @@ -7946,6 +10419,13 @@ __metadata: languageName: node linkType: hard +"@netlify/serverless-functions-api@npm:^1.5.0": + version: 1.5.0 + resolution: "@netlify/serverless-functions-api@npm:1.5.0" + checksum: b018368dffecca1bc0f7a275c92f1d64cdff06c14c5155a0f924a8d02a9765f51db5c7f0558cf430b8fc04d5fc00031a39aefa8aad2794f41e993b89d331192a + languageName: node + linkType: hard + "@netlify/zip-it-and-ship-it@npm:9.29.2": version: 9.29.2 resolution: "@netlify/zip-it-and-ship-it@npm:9.29.2" @@ -8044,13 +10524,6 @@ __metadata: languageName: node linkType: hard -"@next/env@npm:14.1.1": - version: 14.1.1 - resolution: "@next/env@npm:14.1.1" - checksum: af0168783f2eb7ec6eb3475dcc78eb52cb680609111014b3948dfb601193a0aa5536952f90c9e93a823aa23ecb95d9fab71f2cdd436f46703bbeccceebe5e230 - languageName: node - linkType: hard - "@next/eslint-plugin-next@npm:14.0.4": version: 14.0.4 resolution: "@next/eslint-plugin-next@npm:14.0.4" @@ -8074,13 +10547,6 @@ __metadata: languageName: node linkType: hard -"@next/swc-darwin-arm64@npm:14.1.1": - version: 14.1.1 - resolution: "@next/swc-darwin-arm64@npm:14.1.1" - conditions: os=darwin & cpu=arm64 - languageName: node - linkType: hard - "@next/swc-darwin-x64@npm:13.4.19": version: 13.4.19 resolution: "@next/swc-darwin-x64@npm:13.4.19" @@ -8095,13 +10561,6 @@ __metadata: languageName: node linkType: hard -"@next/swc-darwin-x64@npm:14.1.1": - version: 14.1.1 - resolution: "@next/swc-darwin-x64@npm:14.1.1" - conditions: os=darwin & cpu=x64 - languageName: node - linkType: hard - "@next/swc-linux-arm64-gnu@npm:13.4.19": version: 13.4.19 resolution: "@next/swc-linux-arm64-gnu@npm:13.4.19" @@ -8116,13 +10575,6 @@ __metadata: languageName: node linkType: hard -"@next/swc-linux-arm64-gnu@npm:14.1.1": - version: 14.1.1 - resolution: "@next/swc-linux-arm64-gnu@npm:14.1.1" - conditions: os=linux & cpu=arm64 & libc=glibc - languageName: node - linkType: hard - "@next/swc-linux-arm64-musl@npm:13.4.19": version: 13.4.19 resolution: "@next/swc-linux-arm64-musl@npm:13.4.19" @@ -8137,13 +10589,6 @@ __metadata: languageName: node linkType: hard -"@next/swc-linux-arm64-musl@npm:14.1.1": - version: 14.1.1 - resolution: "@next/swc-linux-arm64-musl@npm:14.1.1" - conditions: os=linux & cpu=arm64 & libc=musl - languageName: node - linkType: hard - "@next/swc-linux-x64-gnu@npm:13.4.19": version: 13.4.19 resolution: "@next/swc-linux-x64-gnu@npm:13.4.19" @@ -8158,13 +10603,6 @@ __metadata: languageName: node linkType: hard -"@next/swc-linux-x64-gnu@npm:14.1.1": - version: 14.1.1 - resolution: "@next/swc-linux-x64-gnu@npm:14.1.1" - conditions: os=linux & cpu=x64 & libc=glibc - languageName: node - linkType: hard - "@next/swc-linux-x64-musl@npm:13.4.19": version: 13.4.19 resolution: "@next/swc-linux-x64-musl@npm:13.4.19" @@ -8179,13 +10617,6 @@ __metadata: languageName: node linkType: hard -"@next/swc-linux-x64-musl@npm:14.1.1": - version: 14.1.1 - resolution: "@next/swc-linux-x64-musl@npm:14.1.1" - conditions: os=linux & cpu=x64 & libc=musl - languageName: node - linkType: hard - "@next/swc-win32-arm64-msvc@npm:13.4.19": version: 13.4.19 resolution: "@next/swc-win32-arm64-msvc@npm:13.4.19" @@ -8200,13 +10631,6 @@ __metadata: languageName: node linkType: hard -"@next/swc-win32-arm64-msvc@npm:14.1.1": - version: 14.1.1 - resolution: "@next/swc-win32-arm64-msvc@npm:14.1.1" - conditions: os=win32 & cpu=arm64 - languageName: node - linkType: hard - "@next/swc-win32-ia32-msvc@npm:13.4.19": version: 13.4.19 resolution: "@next/swc-win32-ia32-msvc@npm:13.4.19" @@ -8221,13 +10645,6 @@ __metadata: languageName: node linkType: hard -"@next/swc-win32-ia32-msvc@npm:14.1.1": - version: 14.1.1 - resolution: "@next/swc-win32-ia32-msvc@npm:14.1.1" - conditions: os=win32 & cpu=ia32 - languageName: node - linkType: hard - "@next/swc-win32-x64-msvc@npm:13.4.19": version: 13.4.19 resolution: "@next/swc-win32-x64-msvc@npm:13.4.19" @@ -8242,13 +10659,6 @@ __metadata: languageName: node linkType: hard -"@next/swc-win32-x64-msvc@npm:14.1.1": - version: 14.1.1 - resolution: "@next/swc-win32-x64-msvc@npm:14.1.1" - conditions: os=win32 & cpu=x64 - languageName: node - linkType: hard - "@nicolo-ribaudo/chokidar-2@npm:2.1.8-no-fsevents.3": version: 2.1.8-no-fsevents.3 resolution: "@nicolo-ribaudo/chokidar-2@npm:2.1.8-no-fsevents.3" @@ -8297,13 +10707,20 @@ __metadata: languageName: node linkType: hard -"@noble/hashes@npm:1.3.3, @noble/hashes@npm:^1.1.2, @noble/hashes@npm:^1.3.1, @noble/hashes@npm:^1.3.2, @noble/hashes@npm:~1.3.2": +"@noble/hashes@npm:1.3.3, @noble/hashes@npm:^1.3.1, @noble/hashes@npm:^1.3.2, @noble/hashes@npm:~1.3.2": version: 1.3.3 resolution: "@noble/hashes@npm:1.3.3" checksum: 1025ddde4d24630e95c0818e63d2d54ee131b980fe113312d17ed7468bc18f54486ac86c907685759f8a7e13c2f9b9e83ec7b67d1cc20836f36b5e4a65bb102d languageName: node linkType: hard +"@noble/hashes@npm:^1.1.2": + version: 1.3.0 + resolution: "@noble/hashes@npm:1.3.0" + checksum: 4680a71941c06ac897cc9eab9d229717d5af1147cea5e8cd4942190c817426ad3173ded750d897f58d764b869f9347d4fc3f6b3c16574541ac81906efa9ddc36 + languageName: node + linkType: hard + "@noble/secp256k1@npm:1.7.1, @noble/secp256k1@npm:~1.7.0": version: 1.7.1 resolution: "@noble/secp256k1@npm:1.7.1" @@ -8338,6 +10755,21 @@ __metadata: languageName: node linkType: hard +"@nomicfoundation/ethereumjs-block@npm:5.0.2": + version: 5.0.2 + resolution: "@nomicfoundation/ethereumjs-block@npm:5.0.2" + dependencies: + "@nomicfoundation/ethereumjs-common": "npm:4.0.2" + "@nomicfoundation/ethereumjs-rlp": "npm:5.0.2" + "@nomicfoundation/ethereumjs-trie": "npm:6.0.2" + "@nomicfoundation/ethereumjs-tx": "npm:5.0.2" + "@nomicfoundation/ethereumjs-util": "npm:9.0.2" + ethereum-cryptography: "npm:0.1.3" + ethers: "npm:^5.7.1" + checksum: e3d7c24aa10306ae26389ce464f71e36fe8d331706e942a626594afdd097451d3bda210238b1da843e582b347f4349115b53432076b0f9b37ba36e31818b12cb + languageName: node + linkType: hard + "@nomicfoundation/ethereumjs-block@npm:5.0.4": version: 5.0.4 resolution: "@nomicfoundation/ethereumjs-block@npm:5.0.4" @@ -8352,6 +10784,27 @@ __metadata: languageName: node linkType: hard +"@nomicfoundation/ethereumjs-blockchain@npm:7.0.2": + version: 7.0.2 + resolution: "@nomicfoundation/ethereumjs-blockchain@npm:7.0.2" + dependencies: + "@nomicfoundation/ethereumjs-block": "npm:5.0.2" + "@nomicfoundation/ethereumjs-common": "npm:4.0.2" + "@nomicfoundation/ethereumjs-ethash": "npm:3.0.2" + "@nomicfoundation/ethereumjs-rlp": "npm:5.0.2" + "@nomicfoundation/ethereumjs-trie": "npm:6.0.2" + "@nomicfoundation/ethereumjs-tx": "npm:5.0.2" + "@nomicfoundation/ethereumjs-util": "npm:9.0.2" + abstract-level: "npm:^1.0.3" + debug: "npm:^4.3.3" + ethereum-cryptography: "npm:0.1.3" + level: "npm:^8.0.0" + lru-cache: "npm:^5.1.1" + memory-level: "npm:^1.0.0" + checksum: 4cc27cf1d39175f93ec02b4627f0320258685fc19541c0cb2b9208204e65a924f3fbeb69c23840d7100a75c6d88b7a0c65f552cb44bf1e06b530a39ac6f04e17 + languageName: node + linkType: hard + "@nomicfoundation/ethereumjs-blockchain@npm:7.0.4": version: 7.0.4 resolution: "@nomicfoundation/ethereumjs-blockchain@npm:7.0.4" @@ -8370,6 +10823,16 @@ __metadata: languageName: node linkType: hard +"@nomicfoundation/ethereumjs-common@npm:4.0.2": + version: 4.0.2 + resolution: "@nomicfoundation/ethereumjs-common@npm:4.0.2" + dependencies: + "@nomicfoundation/ethereumjs-util": "npm:9.0.2" + crc-32: "npm:^1.2.0" + checksum: ea0199240a9cfc932450421b00ba390a9d357092fdbb6ceee2b09ee6a8bc7820fb1df076ead94e0b6748158620ec655099e401816d47ad24eb603694f3a787d1 + languageName: node + linkType: hard + "@nomicfoundation/ethereumjs-common@npm:4.0.4": version: 4.0.4 resolution: "@nomicfoundation/ethereumjs-common@npm:4.0.4" @@ -8379,6 +10842,20 @@ __metadata: languageName: node linkType: hard +"@nomicfoundation/ethereumjs-ethash@npm:3.0.2": + version: 3.0.2 + resolution: "@nomicfoundation/ethereumjs-ethash@npm:3.0.2" + dependencies: + "@nomicfoundation/ethereumjs-block": "npm:5.0.2" + "@nomicfoundation/ethereumjs-rlp": "npm:5.0.2" + "@nomicfoundation/ethereumjs-util": "npm:9.0.2" + abstract-level: "npm:^1.0.3" + bigint-crypto-utils: "npm:^3.0.23" + ethereum-cryptography: "npm:0.1.3" + checksum: c7d963a6806e70cb96ff290a9bc461fb6ad4f74144d9f38eb5f190b228d9b0961aa67d398f80da4b59efb8c57957c936b32faab26c17cf07a6145efe0a6d16e9 + languageName: node + linkType: hard + "@nomicfoundation/ethereumjs-ethash@npm:3.0.4": version: 3.0.4 resolution: "@nomicfoundation/ethereumjs-ethash@npm:3.0.4" @@ -8392,6 +10869,22 @@ __metadata: languageName: node linkType: hard +"@nomicfoundation/ethereumjs-evm@npm:2.0.2": + version: 2.0.2 + resolution: "@nomicfoundation/ethereumjs-evm@npm:2.0.2" + dependencies: + "@ethersproject/providers": "npm:^5.7.1" + "@nomicfoundation/ethereumjs-common": "npm:4.0.2" + "@nomicfoundation/ethereumjs-tx": "npm:5.0.2" + "@nomicfoundation/ethereumjs-util": "npm:9.0.2" + debug: "npm:^4.3.3" + ethereum-cryptography: "npm:0.1.3" + mcl-wasm: "npm:^0.7.1" + rustbn.js: "npm:~0.2.0" + checksum: abcc280500d776a214b282d5a66093fdf3b91582e9f69d6f35e0c7000f58af57060cd384acda7d147193f962f17a8c4ed55e5f2453b2d5b43d694d6588306ef9 + languageName: node + linkType: hard + "@nomicfoundation/ethereumjs-evm@npm:2.0.4": version: 2.0.4 resolution: "@nomicfoundation/ethereumjs-evm@npm:2.0.4" @@ -8408,6 +10901,15 @@ __metadata: languageName: node linkType: hard +"@nomicfoundation/ethereumjs-rlp@npm:5.0.2": + version: 5.0.2 + resolution: "@nomicfoundation/ethereumjs-rlp@npm:5.0.2" + bin: + rlp: bin/rlp + checksum: ceb820296624f45fa8f7cd3e2cfa4d229722953e91631e6fb3fbca9d1ebe8eea21a8ef4917fa15295f05bed369db06eb81f44e74382b1bca4ece2bb000c6e6d4 + languageName: node + linkType: hard + "@nomicfoundation/ethereumjs-rlp@npm:5.0.4": version: 5.0.4 resolution: "@nomicfoundation/ethereumjs-rlp@npm:5.0.4" @@ -8417,6 +10919,20 @@ __metadata: languageName: node linkType: hard +"@nomicfoundation/ethereumjs-statemanager@npm:2.0.2": + version: 2.0.2 + resolution: "@nomicfoundation/ethereumjs-statemanager@npm:2.0.2" + dependencies: + "@nomicfoundation/ethereumjs-common": "npm:4.0.2" + "@nomicfoundation/ethereumjs-rlp": "npm:5.0.2" + debug: "npm:^4.3.3" + ethereum-cryptography: "npm:0.1.3" + ethers: "npm:^5.7.1" + js-sdsl: "npm:^4.1.4" + checksum: 0eb939c75aa63517ec8832330c02a71c060fd8424ebe608a072c563a0a9d16621dca9a9c851fa98971316aed80dd9174a0d72ae09633a9698367a3316d773389 + languageName: node + linkType: hard + "@nomicfoundation/ethereumjs-statemanager@npm:2.0.4": version: 2.0.4 resolution: "@nomicfoundation/ethereumjs-statemanager@npm:2.0.4" @@ -8438,6 +10954,19 @@ __metadata: languageName: node linkType: hard +"@nomicfoundation/ethereumjs-trie@npm:6.0.2": + version: 6.0.2 + resolution: "@nomicfoundation/ethereumjs-trie@npm:6.0.2" + dependencies: + "@nomicfoundation/ethereumjs-rlp": "npm:5.0.2" + "@nomicfoundation/ethereumjs-util": "npm:9.0.2" + "@types/readable-stream": "npm:^2.3.13" + ethereum-cryptography: "npm:0.1.3" + readable-stream: "npm:^3.6.0" + checksum: f70b89e7f089a90647ea96babc23427cf4db3bdc027667b93be38a0ff03f3222c5130529778fb210ffa56eb2a53cb1657cafdfe828c6a41825bb7e2b74614060 + languageName: node + linkType: hard + "@nomicfoundation/ethereumjs-trie@npm:6.0.4": version: 6.0.4 resolution: "@nomicfoundation/ethereumjs-trie@npm:6.0.4" @@ -8452,6 +10981,20 @@ __metadata: languageName: node linkType: hard +"@nomicfoundation/ethereumjs-tx@npm:5.0.2": + version: 5.0.2 + resolution: "@nomicfoundation/ethereumjs-tx@npm:5.0.2" + dependencies: + "@chainsafe/ssz": "npm:^0.9.2" + "@ethersproject/providers": "npm:^5.7.2" + "@nomicfoundation/ethereumjs-common": "npm:4.0.2" + "@nomicfoundation/ethereumjs-rlp": "npm:5.0.2" + "@nomicfoundation/ethereumjs-util": "npm:9.0.2" + ethereum-cryptography: "npm:0.1.3" + checksum: 0feb40b602d3b525359f57ad76d64542e192a6f8bb714477b9044b5ba13ab7007a3b5a8a2b2df50e3fdcc9da0c04d07daa3797bc5cc6aad5d29d5633c5616251 + languageName: node + linkType: hard + "@nomicfoundation/ethereumjs-tx@npm:5.0.4": version: 5.0.4 resolution: "@nomicfoundation/ethereumjs-tx@npm:5.0.4" @@ -8469,6 +11012,17 @@ __metadata: languageName: node linkType: hard +"@nomicfoundation/ethereumjs-util@npm:9.0.2": + version: 9.0.2 + resolution: "@nomicfoundation/ethereumjs-util@npm:9.0.2" + dependencies: + "@chainsafe/ssz": "npm:^0.10.0" + "@nomicfoundation/ethereumjs-rlp": "npm:5.0.2" + ethereum-cryptography: "npm:0.1.3" + checksum: ec687ecd964bf624e82b5f0cbbffd0896dfdcff6e7b3eb216d18b79cdb6735f2c8a516d04c5a2b0e36a906bd8f35174a4653634151f35e615a7d24d901a35905 + languageName: node + linkType: hard + "@nomicfoundation/ethereumjs-util@npm:9.0.4": version: 9.0.4 resolution: "@nomicfoundation/ethereumjs-util@npm:9.0.4" @@ -8496,6 +11050,27 @@ __metadata: languageName: node linkType: hard +"@nomicfoundation/ethereumjs-vm@npm:7.0.2": + version: 7.0.2 + resolution: "@nomicfoundation/ethereumjs-vm@npm:7.0.2" + dependencies: + "@nomicfoundation/ethereumjs-block": "npm:5.0.2" + "@nomicfoundation/ethereumjs-blockchain": "npm:7.0.2" + "@nomicfoundation/ethereumjs-common": "npm:4.0.2" + "@nomicfoundation/ethereumjs-evm": "npm:2.0.2" + "@nomicfoundation/ethereumjs-rlp": "npm:5.0.2" + "@nomicfoundation/ethereumjs-statemanager": "npm:2.0.2" + "@nomicfoundation/ethereumjs-trie": "npm:6.0.2" + "@nomicfoundation/ethereumjs-tx": "npm:5.0.2" + "@nomicfoundation/ethereumjs-util": "npm:9.0.2" + debug: "npm:^4.3.3" + ethereum-cryptography: "npm:0.1.3" + mcl-wasm: "npm:^0.7.1" + rustbn.js: "npm:~0.2.0" + checksum: 7ad391bc68e8e755ed0b88012e8857390590b5ba8b11bdb4995b04ba7afed5570a4259b85fff329affb643e87be12972ca44d269e14e5f840a82c315011d0d7a + languageName: node + linkType: hard + "@nomicfoundation/ethereumjs-vm@npm:7.0.4": version: 7.0.4 resolution: "@nomicfoundation/ethereumjs-vm@npm:7.0.4" @@ -8581,7 +11156,7 @@ __metadata: languageName: node linkType: hard -"@nomicfoundation/hardhat-verify@npm:2.0.4, @nomicfoundation/hardhat-verify@npm:^2.0.0": +"@nomicfoundation/hardhat-verify@npm:2.0.4": version: 2.0.4 resolution: "@nomicfoundation/hardhat-verify@npm:2.0.4" dependencies: @@ -8600,6 +11175,25 @@ __metadata: languageName: node linkType: hard +"@nomicfoundation/hardhat-verify@npm:^2.0.0": + version: 2.0.3 + resolution: "@nomicfoundation/hardhat-verify@npm:2.0.3" + dependencies: + "@ethersproject/abi": "npm:^5.1.2" + "@ethersproject/address": "npm:^5.0.2" + cbor: "npm:^8.1.0" + chalk: "npm:^2.4.2" + debug: "npm:^4.1.1" + lodash.clonedeep: "npm:^4.5.0" + semver: "npm:^6.3.0" + table: "npm:^6.8.0" + undici: "npm:^5.14.0" + peerDependencies: + hardhat: ^2.0.4 + checksum: 4b461f9cd242ba570ab98b7f407d8d27fb3cd667ef8268489485e337e7b2d256d3946869b86c7b7285b51adbcbfe2eeff54066737fec139e186e24e6a0c7ec79 + languageName: node + linkType: hard + "@nomicfoundation/solidity-analyzer-darwin-arm64@npm:0.1.1": version: 0.1.1 resolution: "@nomicfoundation/solidity-analyzer-darwin-arm64@npm:0.1.1" @@ -8750,23 +11344,6 @@ __metadata: languageName: node linkType: hard -"@nomiclabs/hardhat-truffle5@npm:2.0.7": - version: 2.0.7 - resolution: "@nomiclabs/hardhat-truffle5@npm:2.0.7" - dependencies: - "@nomiclabs/truffle-contract": "npm:^4.2.23" - "@types/chai": "npm:^4.2.0" - chai: "npm:^4.2.0" - ethereumjs-util: "npm:^7.1.4" - fs-extra: "npm:^7.0.1" - peerDependencies: - "@nomiclabs/hardhat-web3": ^2.0.0 - hardhat: ^2.6.4 - web3: ^1.0.0-beta.36 - checksum: 0779ce6c9e52b4f7ceb6e64a7788a6d5b6746557af3526537e1c1a25f9ac4ebcd320487f4f595846ba78606c35b583e89362541af2230fb6793d6823cf1c8dfe - languageName: node - linkType: hard - "@nomiclabs/hardhat-waffle@npm:2.0.6": version: 2.0.6 resolution: "@nomiclabs/hardhat-waffle@npm:2.0.6" @@ -8780,42 +11357,6 @@ __metadata: languageName: node linkType: hard -"@nomiclabs/hardhat-web3@npm:2.0.0": - version: 2.0.0 - resolution: "@nomiclabs/hardhat-web3@npm:2.0.0" - dependencies: - "@types/bignumber.js": "npm:^5.0.0" - peerDependencies: - hardhat: ^2.0.0 - web3: ^1.0.0-beta.36 - checksum: b777179ba395ec841848dc28bb7c583dc7a3dbf369a1f00d691157594d7cf74fe8ee7ae31ba1fb6424e2c39080ec386bda77cb56ad2517a0d1e55059178e1075 - languageName: node - linkType: hard - -"@nomiclabs/truffle-contract@npm:^4.2.23": - version: 4.5.10 - resolution: "@nomiclabs/truffle-contract@npm:4.5.10" - dependencies: - "@ensdomains/ensjs": "npm:^2.0.1" - "@truffle/blockchain-utils": "npm:^0.1.3" - "@truffle/contract-schema": "npm:^3.4.7" - "@truffle/debug-utils": "npm:^6.0.22" - "@truffle/error": "npm:^0.1.0" - "@truffle/interface-adapter": "npm:^0.5.16" - bignumber.js: "npm:^7.2.1" - ethereum-ens: "npm:^0.8.0" - ethers: "npm:^4.0.0-beta.1" - source-map-support: "npm:^0.5.19" - peerDependencies: - web3: ^1.2.1 - web3-core-helpers: ^1.2.1 - web3-core-promievent: ^1.2.1 - web3-eth-abi: ^1.2.1 - web3-utils: ^1.2.1 - checksum: d3ab6f75138c4656321090716ff01e35331f1f3bfa894437259345d7d7e8bf7da0b04aae86dce112661d787f3cab92698dc6673130cbc4fdcd8b93c9073f289e - languageName: node - linkType: hard - "@npmcli/agent@npm:^2.0.0": version: 2.2.1 resolution: "@npmcli/agent@npm:2.2.1" @@ -8999,6 +11540,13 @@ __metadata: languageName: node linkType: hard +"@octokit/openapi-types@npm:^17.2.0": + version: 17.2.0 + resolution: "@octokit/openapi-types@npm:17.2.0" + checksum: cb5f0a7c8b2dc9a6cd12fc909e487faea7152ac7866d8d38cb3385a554fba2c57bdcc863ee947d7e74f8070af5941d789f187b1c4c0bed1bcee087523d7697f8 + languageName: node + linkType: hard + "@octokit/openapi-types@npm:^18.0.0": version: 18.1.1 resolution: "@octokit/openapi-types@npm:18.1.1" @@ -9091,7 +11639,7 @@ __metadata: languageName: node linkType: hard -"@octokit/types@npm:^9.0.0, @octokit/types@npm:^9.2.3": +"@octokit/types@npm:^9.0.0": version: 9.3.2 resolution: "@octokit/types@npm:9.3.2" dependencies: @@ -9100,6 +11648,15 @@ __metadata: languageName: node linkType: hard +"@octokit/types@npm:^9.2.3": + version: 9.2.3 + resolution: "@octokit/types@npm:9.2.3" + dependencies: + "@octokit/openapi-types": "npm:^17.2.0" + checksum: c6fb96c15af0a00bacd3a26298c25281d715199637867327c5d4717c5ff6279fa8bfdeabc8dc423f7e56e128d46446b1b4dc35b65e4c6040b28b90751c240673 + languageName: node + linkType: hard + "@one-ini/wasm@npm:0.1.1": version: 0.1.1 resolution: "@one-ini/wasm@npm:0.1.1" @@ -9133,36 +11690,6 @@ __metadata: languageName: node linkType: hard -"@openzeppelin/contract-loader@npm:^0.4.0": - version: 0.4.0 - resolution: "@openzeppelin/contract-loader@npm:0.4.0" - dependencies: - find-up: "npm:^4.1.0" - fs-extra: "npm:^8.1.0" - try-require: "npm:^1.2.1" - checksum: 34ca20837f7911ba8a1228098934e3371223ca77b5365967631190461a28d9a468e15f11470e9b01414eebe188c151dba65385838cb2d1a39855c394aedb8217 - languageName: node - linkType: hard - -"@openzeppelin/contract-loader@npm:^0.6.1, @openzeppelin/contract-loader@npm:^0.6.2": - version: 0.6.3 - resolution: "@openzeppelin/contract-loader@npm:0.6.3" - dependencies: - find-up: "npm:^4.1.0" - fs-extra: "npm:^8.1.0" - checksum: 00d5942c6b17ca4c324f48019490c962eefab0f871f6b90472117fe64b16c580ae591bb789e7fbfc4ffc699ef40485167ff25593a02c550e02c880583ff7786a - languageName: node - linkType: hard - -"@openzeppelin/contracts-ethereum-package@npm:2.5.0": - version: 2.5.0 - resolution: "@openzeppelin/contracts-ethereum-package@npm:2.5.0" - peerDependencies: - "@openzeppelin/upgrades": ^2.5.0 - checksum: aa23adc053d698b17c482f883a89a5ff4441e949a9c372b4433780d0b5a99cdab1d7265f60f365a0279b92f63a07b0a9730f9e16afc3d5bc53519ab4f523f0fe - languageName: node - linkType: hard - "@openzeppelin/contracts-upgradeable@npm:4.9.5": version: 4.9.5 resolution: "@openzeppelin/contracts-upgradeable@npm:4.9.5" @@ -9170,20 +11697,6 @@ __metadata: languageName: node linkType: hard -"@openzeppelin/contracts@npm:2.5.0": - version: 2.5.0 - resolution: "@openzeppelin/contracts@npm:2.5.0" - checksum: e9e21da5769c77edbe47188c035cc4ad016bbe5e97f3a3a283dbb06f52c86dd8f3de655471aca35ca657e5e51ad93afbcb55f13c3c3b741b66223e3b31c202b7 - languageName: node - linkType: hard - -"@openzeppelin/contracts@npm:3.4.1": - version: 3.4.1 - resolution: "@openzeppelin/contracts@npm:3.4.1" - checksum: f06794ab90e574c4db023954d647c454ab0c3c4f89543d846f9b87fc61c15858f70320ca3c661a93390761b555396b5e129d84b4cf3316a11f63b363f09289a2 - languageName: node - linkType: hard - "@openzeppelin/contracts@npm:3.4.1-solc-0.7-2": version: 3.4.1-solc-0.7-2 resolution: "@openzeppelin/contracts@npm:3.4.1-solc-0.7-2" @@ -9232,7 +11745,7 @@ __metadata: languageName: node linkType: hard -"@openzeppelin/defender-base-client@npm:1.54.1, @openzeppelin/defender-base-client@npm:^1.46.0, @openzeppelin/defender-base-client@npm:^1.52.0": +"@openzeppelin/defender-base-client@npm:1.54.1, @openzeppelin/defender-base-client@npm:^1.52.0": version: 1.54.1 resolution: "@openzeppelin/defender-base-client@npm:1.54.1" dependencies: @@ -9245,6 +11758,19 @@ __metadata: languageName: node linkType: hard +"@openzeppelin/defender-base-client@npm:^1.46.0": + version: 1.46.0 + resolution: "@openzeppelin/defender-base-client@npm:1.46.0" + dependencies: + amazon-cognito-identity-js: "npm:^6.0.1" + async-retry: "npm:^1.3.3" + axios: "npm:^0.21.2" + lodash: "npm:^4.17.19" + node-fetch: "npm:^2.6.0" + checksum: 4c46e5bb99523470800aa09985ccc95dbdd4ce52f858fbbebbd36135789bc2d8fb2a462575df253b293cf544b51f0db190d9c78124fd579a7899e4a8648a3e17 + languageName: node + linkType: hard + "@openzeppelin/defender-relay-client@npm:1.54.1": version: 1.54.1 resolution: "@openzeppelin/defender-relay-client@npm:1.54.1" @@ -9266,7 +11792,7 @@ __metadata: languageName: node linkType: hard -"@openzeppelin/defender-sdk-base-client@npm:^1.10.0, @openzeppelin/defender-sdk-base-client@npm:^1.8.0": +"@openzeppelin/defender-sdk-base-client@npm:^1.10.0": version: 1.10.0 resolution: "@openzeppelin/defender-sdk-base-client@npm:1.10.0" dependencies: @@ -9276,6 +11802,16 @@ __metadata: languageName: node linkType: hard +"@openzeppelin/defender-sdk-base-client@npm:^1.8.0": + version: 1.8.0 + resolution: "@openzeppelin/defender-sdk-base-client@npm:1.8.0" + dependencies: + amazon-cognito-identity-js: "npm:^6.3.6" + async-retry: "npm:^1.3.3" + checksum: ea48c7b9f94e06471228e6eb58ef9506fbf198357d526c3a9c49f92afefab01f0065a4c9d5e8c99729fc45425699ade9f821d5de1805c624f033f12f74e73575 + languageName: node + linkType: hard + "@openzeppelin/defender-sdk-deploy-client@npm:^1.8.0": version: 1.10.0 resolution: "@openzeppelin/defender-sdk-deploy-client@npm:1.10.0" @@ -9353,62 +11889,6 @@ __metadata: languageName: node linkType: hard -"@openzeppelin/test-environment@npm:0.1.3": - version: 0.1.3 - resolution: "@openzeppelin/test-environment@npm:0.1.3" - dependencies: - "@openzeppelin/contract-loader": "npm:^0.6.1" - "@truffle/contract": "npm:^4.0.38" - "@types/web3": "npm:1.0.19" - ansi-colors: "npm:^4.1.1" - ethereumjs-wallet: "npm:^0.6.3" - find-up: "npm:^4.1.0" - ganache-core: "npm:^2.8.0" - lodash.merge: "npm:^4.6.2" - p-queue: "npm:^6.2.0" - semver: "npm:^6.3.0" - try-require: "npm:^1.2.1" - web3: "npm:1.2.2" - checksum: 2e1aaf2be5d7615d8b6f50e0d820472352cdf40f9e0339d544e28f5498f964ea2bc41235a2f3a7a59f0da6af8ed48b276596ac20d0c87fcb269169ffe428a651 - languageName: node - linkType: hard - -"@openzeppelin/test-helpers@npm:0.5.16": - version: 0.5.16 - resolution: "@openzeppelin/test-helpers@npm:0.5.16" - dependencies: - "@openzeppelin/contract-loader": "npm:^0.6.2" - "@truffle/contract": "npm:^4.0.35" - ansi-colors: "npm:^3.2.3" - chai: "npm:^4.2.0" - chai-bn: "npm:^0.2.1" - ethjs-abi: "npm:^0.2.1" - lodash.flatten: "npm:^4.4.0" - semver: "npm:^5.6.0" - web3: "npm:^1.2.5" - web3-utils: "npm:^1.2.5" - checksum: 5d23e821101f19fe5fe6b606d26f62c05523796c14eab13ba39305ae913ec06523a95778b335ae88d5824ece6001b39a758f7b8002eb2374c9b492b576e37717 - languageName: node - linkType: hard - -"@openzeppelin/test-helpers@npm:0.5.5": - version: 0.5.5 - resolution: "@openzeppelin/test-helpers@npm:0.5.5" - dependencies: - "@openzeppelin/contract-loader": "npm:^0.4.0" - "@truffle/contract": "npm:^4.0.35" - ansi-colors: "npm:^3.2.3" - chai: "npm:^4.2.0" - chai-bn: "npm:^0.2.1" - ethjs-abi: "npm:^0.2.1" - lodash.flatten: "npm:^4.4.0" - semver: "npm:^5.6.0" - web3: "npm:^1.2.1" - web3-utils: "npm:^1.2.1" - checksum: 80206c96558f4ca6447b70078512a7a7b07e1ca2ab8f0dffb75e55970cdc02851dd640976c731db8d2a447a6bf5dbd77969ed1463942c211061e8359596b7db3 - languageName: node - linkType: hard - "@openzeppelin/upgrades-core@npm:1.27.3": version: 1.27.3 resolution: "@openzeppelin/upgrades-core@npm:1.27.3" @@ -9427,7 +11907,7 @@ __metadata: languageName: node linkType: hard -"@openzeppelin/upgrades-core@npm:1.32.5, @openzeppelin/upgrades-core@npm:^1.27.0, @openzeppelin/upgrades-core@npm:^1.31.0, @openzeppelin/upgrades-core@npm:^1.31.3, @openzeppelin/upgrades-core@npm:^1.32.0": +"@openzeppelin/upgrades-core@npm:1.32.5, @openzeppelin/upgrades-core@npm:^1.27.0": version: 1.32.5 resolution: "@openzeppelin/upgrades-core@npm:1.32.5" dependencies: @@ -9445,26 +11925,39 @@ __metadata: languageName: node linkType: hard -"@openzeppelin/upgrades@npm:2.8.0": - version: 2.8.0 - resolution: "@openzeppelin/upgrades@npm:2.8.0" +"@openzeppelin/upgrades-core@npm:^1.31.0, @openzeppelin/upgrades-core@npm:^1.32.0": + version: 1.32.3 + resolution: "@openzeppelin/upgrades-core@npm:1.32.3" dependencies: - "@types/cbor": "npm:^2.0.0" - axios: "npm:^0.18.0" - bignumber.js: "npm:^7.2.0" - cbor: "npm:^4.1.5" - chalk: "npm:^2.4.1" - ethers: "npm:^4.0.20" - glob: "npm:^7.1.3" - lodash: "npm:^4.17.15" - semver: "npm:^5.5.1" - spinnies: "npm:^0.4.2" - truffle-flattener: "npm:^1.4.0" - web3: "npm:1.2.2" - web3-eth: "npm:1.2.2" - web3-eth-contract: "npm:1.2.2" - web3-utils: "npm:1.2.2" - checksum: b4accfc695fa445753e91be7da55e1cb60a28d3999a3ad36fb35a2f68a2b3a22f15e8c56346435d83f50ab5eca7ecd3fa74a39bc6be203ca9428d48b4fdb9b31 + cbor: "npm:^9.0.0" + chalk: "npm:^4.1.0" + compare-versions: "npm:^6.0.0" + debug: "npm:^4.1.1" + ethereumjs-util: "npm:^7.0.3" + minimist: "npm:^1.2.7" + proper-lockfile: "npm:^4.1.1" + solidity-ast: "npm:^0.4.51" + bin: + openzeppelin-upgrades-core: dist/cli/cli.js + checksum: aaffecac931e79abf546dec47d937c8a4d39e6459b4ead464ce87572e3d9c89b7b1aac075cd582e56e7d6299976fdeefac012e5f42a200e8350b82cba3697383 + languageName: node + linkType: hard + +"@openzeppelin/upgrades-core@npm:^1.31.3": + version: 1.32.4 + resolution: "@openzeppelin/upgrades-core@npm:1.32.4" + dependencies: + cbor: "npm:^9.0.0" + chalk: "npm:^4.1.0" + compare-versions: "npm:^6.0.0" + debug: "npm:^4.1.1" + ethereumjs-util: "npm:^7.0.3" + minimist: "npm:^1.2.7" + proper-lockfile: "npm:^4.1.1" + solidity-ast: "npm:^0.4.51" + bin: + openzeppelin-upgrades-core: dist/cli/cli.js + checksum: 8611ec5c5a22cdaa31154ee698cabd1158a7a3c819dbe3a063846cf7c29196fc3b704cbd73b0331a3ed148d83091c6be55f3d242454bc4f31bbc171b2cf30722 languageName: node linkType: hard @@ -10538,48 +13031,6 @@ __metadata: languageName: node linkType: hard -"@resolver-engine/core@npm:^0.2.1": - version: 0.2.1 - resolution: "@resolver-engine/core@npm:0.2.1" - dependencies: - debug: "npm:^3.1.0" - request: "npm:^2.85.0" - checksum: d1f1af820db44a91dd691ef8c9b88490eda3cde102ebdc4b7edbf3f8b18efa33aab398175c90523363cb67514852bbd6b7d82aa116e5b7416e36684db1e0e45c - languageName: node - linkType: hard - -"@resolver-engine/fs@npm:^0.2.1": - version: 0.2.1 - resolution: "@resolver-engine/fs@npm:0.2.1" - dependencies: - "@resolver-engine/core": "npm:^0.2.1" - debug: "npm:^3.1.0" - checksum: 1a2a96b369270dd13788368ca95e85fa9d5af1ecd6d10ebc5bbc0fbda57b58cbe75bb14bdf668854fcb4d3c44369f1b647c2ceb64b09a843d539be2569ef30e1 - languageName: node - linkType: hard - -"@resolver-engine/imports-fs@npm:^0.2.2": - version: 0.2.2 - resolution: "@resolver-engine/imports-fs@npm:0.2.2" - dependencies: - "@resolver-engine/fs": "npm:^0.2.1" - "@resolver-engine/imports": "npm:^0.2.2" - debug: "npm:^3.1.0" - checksum: dfa76ff9a67ae7dfd7aa3939b3613ed99e94d5bde71c155b3b23197d92a73d5bad144883865982a22a8214b99d251899924a5e0b7cbbc71e4eb15a72e729d968 - languageName: node - linkType: hard - -"@resolver-engine/imports@npm:^0.2.2": - version: 0.2.2 - resolution: "@resolver-engine/imports@npm:0.2.2" - dependencies: - "@resolver-engine/core": "npm:^0.2.1" - debug: "npm:^3.1.0" - hosted-git-info: "npm:^2.6.0" - checksum: 908d3817997a27ea3e5b6b10929d5eba213666b2f5a452f4eb741473f63f05ea82f06fd08b2b290aadca7ff23e029823226f17efe3d79748b52da7dd3788288c - languageName: node - linkType: hard - "@resvg/resvg-js-android-arm-eabi@npm:2.4.1": version: 2.4.1 resolution: "@resvg/resvg-js-android-arm-eabi@npm:2.4.1" @@ -10955,7 +13406,7 @@ __metadata: languageName: node linkType: hard -"@safe-global/safe-deployments@npm:^1.20.2, @safe-global/safe-deployments@npm:^1.25.0, @safe-global/safe-deployments@npm:^1.28.0": +"@safe-global/safe-deployments@npm:^1.20.2": version: 1.33.0 resolution: "@safe-global/safe-deployments@npm:1.33.0" dependencies: @@ -10964,6 +13415,24 @@ __metadata: languageName: node linkType: hard +"@safe-global/safe-deployments@npm:^1.25.0": + version: 1.26.0 + resolution: "@safe-global/safe-deployments@npm:1.26.0" + dependencies: + semver: "npm:^7.3.7" + checksum: 8aa697eeed760ce710c717e0b116278c10493100df590e9f1f7b2e8b3bfc6a9f10e6ee8a9f3325d8c7b40887c2b36deb5e72d9f03d33833bde37395cb9f60124 + languageName: node + linkType: hard + +"@safe-global/safe-deployments@npm:^1.28.0": + version: 1.30.0 + resolution: "@safe-global/safe-deployments@npm:1.30.0" + dependencies: + semver: "npm:^7.3.7" + checksum: 0d8eca465d9e9b2ecf4f0d1cb95fd8d4ae0c0104b5f9f0cba71e07a0268122badc40ab23863d867368a9e0f5d81f284de61359c306ad3f88b63d7e5771efd46a + languageName: node + linkType: hard + "@safe-global/safe-ethers-lib@npm:1.9.3": version: 1.9.3 resolution: "@safe-global/safe-ethers-lib@npm:1.9.3" @@ -11442,13 +13911,6 @@ __metadata: languageName: node linkType: hard -"@sindresorhus/is@npm:^0.14.0": - version: 0.14.0 - resolution: "@sindresorhus/is@npm:0.14.0" - checksum: 789cd128f0b43e158e657c4505539c8997905fcb5c06d750b7df778cab2b6887bc1eb8878026a20d84524528786ef69fc3d12a964ae56a478a87bcfc7f8272f3 - languageName: node - linkType: hard - "@sindresorhus/is@npm:^4.0.0, @sindresorhus/is@npm:^4.6.0": version: 4.6.0 resolution: "@sindresorhus/is@npm:4.6.0" @@ -11571,6 +14033,16 @@ __metadata: languageName: node linkType: hard +"@smithy/abort-controller@npm:^2.0.16": + version: 2.0.16 + resolution: "@smithy/abort-controller@npm:2.0.16" + dependencies: + "@smithy/types": "npm:^2.8.0" + tslib: "npm:^2.5.0" + checksum: 3fa2db15cb247d63649ff95f676b4caf5ad311fc5103c432a9eb80ef3bafd1eaed688f926ae00f94e6965e959b6f52885eea29da367bc94b2d08df0f5cf5f778 + languageName: node + linkType: hard + "@smithy/abort-controller@npm:^2.1.3": version: 2.1.3 resolution: "@smithy/abort-controller@npm:2.1.3" @@ -11581,6 +14053,16 @@ __metadata: languageName: node linkType: hard +"@smithy/chunked-blob-reader-native@npm:^2.0.1": + version: 2.0.1 + resolution: "@smithy/chunked-blob-reader-native@npm:2.0.1" + dependencies: + "@smithy/util-base64": "npm:^2.0.1" + tslib: "npm:^2.5.0" + checksum: 3e3e1a9004336ab6853efe024aee053ee63e833b5f5e812d877fd4c7be74d7f8123c0352d749de77713d1152cf390991814c01e42d1ee5e349cf6816789a3109 + languageName: node + linkType: hard + "@smithy/chunked-blob-reader-native@npm:^2.1.1": version: 2.1.1 resolution: "@smithy/chunked-blob-reader-native@npm:2.1.1" @@ -11591,6 +14073,15 @@ __metadata: languageName: node linkType: hard +"@smithy/chunked-blob-reader@npm:^2.0.0": + version: 2.0.0 + resolution: "@smithy/chunked-blob-reader@npm:2.0.0" + dependencies: + tslib: "npm:^2.5.0" + checksum: 3e35ce2bb2d8338f44b408958fd4b77054cb286b27730674a213d10b6ed84734889441d13dbdffb5f1971c61fe47c5f05703e5a93596ca0a6285937cd8b061cf + languageName: node + linkType: hard + "@smithy/chunked-blob-reader@npm:^2.1.1": version: 2.1.1 resolution: "@smithy/chunked-blob-reader@npm:2.1.1" @@ -11600,6 +14091,19 @@ __metadata: languageName: node linkType: hard +"@smithy/config-resolver@npm:^2.0.23": + version: 2.0.23 + resolution: "@smithy/config-resolver@npm:2.0.23" + dependencies: + "@smithy/node-config-provider": "npm:^2.1.9" + "@smithy/types": "npm:^2.8.0" + "@smithy/util-config-provider": "npm:^2.1.0" + "@smithy/util-middleware": "npm:^2.0.9" + tslib: "npm:^2.5.0" + checksum: a590108883d6c56846e54b1e083484e7fb889d791121945b6508760d224c7f47fb78e6ae4cb927e73945d2854181bb33df7775fac95c3c0cb9ea9d3f27d95ed0 + languageName: node + linkType: hard + "@smithy/config-resolver@npm:^2.1.4": version: 2.1.4 resolution: "@smithy/config-resolver@npm:2.1.4" @@ -11613,6 +14117,22 @@ __metadata: languageName: node linkType: hard +"@smithy/core@npm:^1.2.2": + version: 1.2.2 + resolution: "@smithy/core@npm:1.2.2" + dependencies: + "@smithy/middleware-endpoint": "npm:^2.3.0" + "@smithy/middleware-retry": "npm:^2.0.26" + "@smithy/middleware-serde": "npm:^2.0.16" + "@smithy/protocol-http": "npm:^3.0.12" + "@smithy/smithy-client": "npm:^2.2.1" + "@smithy/types": "npm:^2.8.0" + "@smithy/util-middleware": "npm:^2.0.9" + tslib: "npm:^2.5.0" + checksum: 4a6ff42aa0951f3e877b396dfd9d7f9c8bf28aa389bc7d19cc99fa6b9fab2edac069fc3c89beefa933f760362e5772d01ee46b7eaa79748f388e7d570403f40c + languageName: node + linkType: hard + "@smithy/core@npm:^1.3.5": version: 1.3.5 resolution: "@smithy/core@npm:1.3.5" @@ -11629,6 +14149,19 @@ __metadata: languageName: node linkType: hard +"@smithy/credential-provider-imds@npm:^2.0.0, @smithy/credential-provider-imds@npm:^2.1.5": + version: 2.1.5 + resolution: "@smithy/credential-provider-imds@npm:2.1.5" + dependencies: + "@smithy/node-config-provider": "npm:^2.1.9" + "@smithy/property-provider": "npm:^2.0.17" + "@smithy/types": "npm:^2.8.0" + "@smithy/url-parser": "npm:^2.0.16" + tslib: "npm:^2.5.0" + checksum: 829d1c1c37fa68aa4e1802e95f3ebd7f6ed9a30334890dd1a34225503afcb8a20723540a6bf1e763840bdf170c183677160436458083bb1c9ecd55562f007868 + languageName: node + linkType: hard + "@smithy/credential-provider-imds@npm:^2.2.3, @smithy/credential-provider-imds@npm:^2.2.4": version: 2.2.4 resolution: "@smithy/credential-provider-imds@npm:2.2.4" @@ -11642,6 +14175,18 @@ __metadata: languageName: node linkType: hard +"@smithy/eventstream-codec@npm:^2.0.16": + version: 2.0.16 + resolution: "@smithy/eventstream-codec@npm:2.0.16" + dependencies: + "@aws-crypto/crc32": "npm:3.0.0" + "@smithy/types": "npm:^2.8.0" + "@smithy/util-hex-encoding": "npm:^2.0.0" + tslib: "npm:^2.5.0" + checksum: c0fe19690bcb5f14b869841a2bde859894286d7eb2538146a3d12e6d957f36394bb90f38642ed5d35a88c66a4766a384c5d9b0ed3f22ead1c8fef1ec1531989b + languageName: node + linkType: hard + "@smithy/eventstream-codec@npm:^2.1.3": version: 2.1.3 resolution: "@smithy/eventstream-codec@npm:2.1.3" @@ -11654,6 +14199,17 @@ __metadata: languageName: node linkType: hard +"@smithy/eventstream-serde-browser@npm:^2.0.16": + version: 2.0.16 + resolution: "@smithy/eventstream-serde-browser@npm:2.0.16" + dependencies: + "@smithy/eventstream-serde-universal": "npm:^2.0.16" + "@smithy/types": "npm:^2.8.0" + tslib: "npm:^2.5.0" + checksum: 7a8e5314a537e93f6a88df323d68ea5806cf659b07a586c86f359bf1b585f055de6d4d3f0c37d2e032d2aaa79015768c3f9d12a200ed49535d7134c72eed4cd2 + languageName: node + linkType: hard + "@smithy/eventstream-serde-browser@npm:^2.1.3": version: 2.1.3 resolution: "@smithy/eventstream-serde-browser@npm:2.1.3" @@ -11665,6 +14221,16 @@ __metadata: languageName: node linkType: hard +"@smithy/eventstream-serde-config-resolver@npm:^2.0.16": + version: 2.0.16 + resolution: "@smithy/eventstream-serde-config-resolver@npm:2.0.16" + dependencies: + "@smithy/types": "npm:^2.8.0" + tslib: "npm:^2.5.0" + checksum: 4ed2af1665f7e2238d644e5c0e085def68915d9ca7f76a825cecc084fb242486c07b9fca3b1c5c1138beeba64090ef95d2b1c7f038dacd0eb80a87a1c81a752c + languageName: node + linkType: hard + "@smithy/eventstream-serde-config-resolver@npm:^2.1.3": version: 2.1.3 resolution: "@smithy/eventstream-serde-config-resolver@npm:2.1.3" @@ -11675,6 +14241,17 @@ __metadata: languageName: node linkType: hard +"@smithy/eventstream-serde-node@npm:^2.0.16": + version: 2.0.16 + resolution: "@smithy/eventstream-serde-node@npm:2.0.16" + dependencies: + "@smithy/eventstream-serde-universal": "npm:^2.0.16" + "@smithy/types": "npm:^2.8.0" + tslib: "npm:^2.5.0" + checksum: 83c21f0d38a70b5b76032341b04e62f1094d1f25cbcacc9c0875b3aa34e99d084ae6fd12ded0551bd040612be62b44ab2e5b1abc51e786319eb22c1c07f9d5a0 + languageName: node + linkType: hard + "@smithy/eventstream-serde-node@npm:^2.1.3": version: 2.1.3 resolution: "@smithy/eventstream-serde-node@npm:2.1.3" @@ -11686,6 +14263,17 @@ __metadata: languageName: node linkType: hard +"@smithy/eventstream-serde-universal@npm:^2.0.16": + version: 2.0.16 + resolution: "@smithy/eventstream-serde-universal@npm:2.0.16" + dependencies: + "@smithy/eventstream-codec": "npm:^2.0.16" + "@smithy/types": "npm:^2.8.0" + tslib: "npm:^2.5.0" + checksum: fa35f3074547dac19476432c1abfb62b0b6432fc8c733aa5d8fb032c603fc35cf06bcf8b0559826e3108a0b67ec7986948f512efd4974e154cdbf88fbe1ae6a5 + languageName: node + linkType: hard + "@smithy/eventstream-serde-universal@npm:^2.1.3": version: 2.1.3 resolution: "@smithy/eventstream-serde-universal@npm:2.1.3" @@ -11697,6 +14285,19 @@ __metadata: languageName: node linkType: hard +"@smithy/fetch-http-handler@npm:^2.3.2": + version: 2.3.2 + resolution: "@smithy/fetch-http-handler@npm:2.3.2" + dependencies: + "@smithy/protocol-http": "npm:^3.0.12" + "@smithy/querystring-builder": "npm:^2.0.16" + "@smithy/types": "npm:^2.8.0" + "@smithy/util-base64": "npm:^2.0.1" + tslib: "npm:^2.5.0" + checksum: 0f64f8398f7e583390fc2fb967e55df4bc404a0d961353723095b18a2d64e65c72e58c20c6b33e42b1a62085ad39d67e804a6a4920b62ca9591c14bfe2803d65 + languageName: node + linkType: hard + "@smithy/fetch-http-handler@npm:^2.4.3": version: 2.4.3 resolution: "@smithy/fetch-http-handler@npm:2.4.3" @@ -11710,6 +14311,18 @@ __metadata: languageName: node linkType: hard +"@smithy/hash-blob-browser@npm:^2.0.17": + version: 2.0.17 + resolution: "@smithy/hash-blob-browser@npm:2.0.17" + dependencies: + "@smithy/chunked-blob-reader": "npm:^2.0.0" + "@smithy/chunked-blob-reader-native": "npm:^2.0.1" + "@smithy/types": "npm:^2.8.0" + tslib: "npm:^2.5.0" + checksum: a277c4c51ba05e78247f4979d1dccea1138c8fad85a59b4f25373737c607876e2b5f2af8d6b88b71a199ef73467e29a7305fe585da324a3d91e76d47a58c51bc + languageName: node + linkType: hard + "@smithy/hash-blob-browser@npm:^2.1.3": version: 2.1.3 resolution: "@smithy/hash-blob-browser@npm:2.1.3" @@ -11722,6 +14335,18 @@ __metadata: languageName: node linkType: hard +"@smithy/hash-node@npm:^2.0.18": + version: 2.0.18 + resolution: "@smithy/hash-node@npm:2.0.18" + dependencies: + "@smithy/types": "npm:^2.8.0" + "@smithy/util-buffer-from": "npm:^2.0.0" + "@smithy/util-utf8": "npm:^2.0.2" + tslib: "npm:^2.5.0" + checksum: ca85ebafafe6719f57a9dd784209aaef60295de6167f07dfbd764072d2e36327dcca088551180175faf528b9e3045ab600696934170d3ea256a5967383a1c53f + languageName: node + linkType: hard + "@smithy/hash-node@npm:^2.1.3": version: 2.1.3 resolution: "@smithy/hash-node@npm:2.1.3" @@ -11734,6 +14359,17 @@ __metadata: languageName: node linkType: hard +"@smithy/hash-stream-node@npm:^2.0.18": + version: 2.0.18 + resolution: "@smithy/hash-stream-node@npm:2.0.18" + dependencies: + "@smithy/types": "npm:^2.8.0" + "@smithy/util-utf8": "npm:^2.0.2" + tslib: "npm:^2.5.0" + checksum: 7b6c2caeaf8fa6f1910a2b4c3aef7472073c9e1ec4446e8a4af16ff58f7cd8838e7c81ddf6f206c2a339988c9120f6cba4728fd008b6f47d00befd8f54e08751 + languageName: node + linkType: hard + "@smithy/hash-stream-node@npm:^2.1.3": version: 2.1.3 resolution: "@smithy/hash-stream-node@npm:2.1.3" @@ -11745,6 +14381,16 @@ __metadata: languageName: node linkType: hard +"@smithy/invalid-dependency@npm:^2.0.16": + version: 2.0.16 + resolution: "@smithy/invalid-dependency@npm:2.0.16" + dependencies: + "@smithy/types": "npm:^2.8.0" + tslib: "npm:^2.5.0" + checksum: 0055d593c20bc0e5d86836fee62c1fc41d236115c80b61d088186192c4438412136e7be5b1e8ab4207108882a51d337c7017574622e0f4837f538be4d1f8a74c + languageName: node + linkType: hard + "@smithy/invalid-dependency@npm:^2.1.3": version: 2.1.3 resolution: "@smithy/invalid-dependency@npm:2.1.3" @@ -11755,6 +14401,15 @@ __metadata: languageName: node linkType: hard +"@smithy/is-array-buffer@npm:^2.0.0": + version: 2.0.0 + resolution: "@smithy/is-array-buffer@npm:2.0.0" + dependencies: + tslib: "npm:^2.5.0" + checksum: 30f8e51403c52f27b5a6777e565128f2c8523d6e9a99f2005cdcaa31b7401376de77fa4a245de4a397d605af1cead8bea3189f3e7450386888e1656fe728030d + languageName: node + linkType: hard + "@smithy/is-array-buffer@npm:^2.1.1": version: 2.1.1 resolution: "@smithy/is-array-buffer@npm:2.1.1" @@ -11764,6 +14419,17 @@ __metadata: languageName: node linkType: hard +"@smithy/md5-js@npm:^2.0.18": + version: 2.0.18 + resolution: "@smithy/md5-js@npm:2.0.18" + dependencies: + "@smithy/types": "npm:^2.8.0" + "@smithy/util-utf8": "npm:^2.0.2" + tslib: "npm:^2.5.0" + checksum: 471e7b3d4da5a72fd3632120df82feab20daecf5a67330b5e376bf5bbdd904c0d83768c8aea183e3287c1eea18de24ab9d145f6daf2b753139247a1b98c7fcd1 + languageName: node + linkType: hard + "@smithy/md5-js@npm:^2.1.3": version: 2.1.3 resolution: "@smithy/md5-js@npm:2.1.3" @@ -11775,6 +14441,17 @@ __metadata: languageName: node linkType: hard +"@smithy/middleware-content-length@npm:^2.0.18": + version: 2.0.18 + resolution: "@smithy/middleware-content-length@npm:2.0.18" + dependencies: + "@smithy/protocol-http": "npm:^3.0.12" + "@smithy/types": "npm:^2.8.0" + tslib: "npm:^2.5.0" + checksum: 84414174ecadcfeba5236bc9ab5d69c0b85b25b2356a6fc20472b9e1aba6c33750cdc3bd0fa508609a0616a69b88c2591515cf22ad499e33a3b10bf37e590f68 + languageName: node + linkType: hard + "@smithy/middleware-content-length@npm:^2.1.3": version: 2.1.3 resolution: "@smithy/middleware-content-length@npm:2.1.3" @@ -11786,6 +14463,21 @@ __metadata: languageName: node linkType: hard +"@smithy/middleware-endpoint@npm:^2.3.0": + version: 2.3.0 + resolution: "@smithy/middleware-endpoint@npm:2.3.0" + dependencies: + "@smithy/middleware-serde": "npm:^2.0.16" + "@smithy/node-config-provider": "npm:^2.1.9" + "@smithy/shared-ini-file-loader": "npm:^2.2.8" + "@smithy/types": "npm:^2.8.0" + "@smithy/url-parser": "npm:^2.0.16" + "@smithy/util-middleware": "npm:^2.0.9" + tslib: "npm:^2.5.0" + checksum: 6a4a40755647afa24334de39faac340541bbcef60ef51ef65e6912b81cc44a45aefe8c189dabc8df80fab7288503fcb90eeed456a7aa8e33abc081c290beb057 + languageName: node + linkType: hard + "@smithy/middleware-endpoint@npm:^2.4.4": version: 2.4.4 resolution: "@smithy/middleware-endpoint@npm:2.4.4" @@ -11801,6 +14493,23 @@ __metadata: languageName: node linkType: hard +"@smithy/middleware-retry@npm:^2.0.26": + version: 2.0.26 + resolution: "@smithy/middleware-retry@npm:2.0.26" + dependencies: + "@smithy/node-config-provider": "npm:^2.1.9" + "@smithy/protocol-http": "npm:^3.0.12" + "@smithy/service-error-classification": "npm:^2.0.9" + "@smithy/smithy-client": "npm:^2.2.1" + "@smithy/types": "npm:^2.8.0" + "@smithy/util-middleware": "npm:^2.0.9" + "@smithy/util-retry": "npm:^2.0.9" + tslib: "npm:^2.5.0" + uuid: "npm:^8.3.2" + checksum: a615088a66392031cd6eac152bb7550232e5ec3bac53a7b19ac804a4e4fae128bcc3fbfc125bc3686585036056f5fee7520c986fa32b35071cfe69b786bec7a8 + languageName: node + linkType: hard + "@smithy/middleware-retry@npm:^2.1.4": version: 2.1.4 resolution: "@smithy/middleware-retry@npm:2.1.4" @@ -11818,6 +14527,16 @@ __metadata: languageName: node linkType: hard +"@smithy/middleware-serde@npm:^2.0.16": + version: 2.0.16 + resolution: "@smithy/middleware-serde@npm:2.0.16" + dependencies: + "@smithy/types": "npm:^2.8.0" + tslib: "npm:^2.5.0" + checksum: d3b2ffafd106d2c4d9f5166411f70c9691c05a56d599c0a7d53d879d3d083f1940523c7fb8db509e65b79d11f4056e37ce8e776b607d6b479ef7ea8bacbd648c + languageName: node + linkType: hard + "@smithy/middleware-serde@npm:^2.1.3": version: 2.1.3 resolution: "@smithy/middleware-serde@npm:2.1.3" @@ -11828,6 +14547,16 @@ __metadata: languageName: node linkType: hard +"@smithy/middleware-stack@npm:^2.0.10": + version: 2.0.10 + resolution: "@smithy/middleware-stack@npm:2.0.10" + dependencies: + "@smithy/types": "npm:^2.8.0" + tslib: "npm:^2.5.0" + checksum: fcd8236988295b39f03f93c083a449202b28f5b7d7cd3992e6c4cdad429b5e8fbb4fe31d6d749d7524c3780d521a6df2ae7157ee904174b423af39b74ef2d5c5 + languageName: node + linkType: hard + "@smithy/middleware-stack@npm:^2.1.3": version: 2.1.3 resolution: "@smithy/middleware-stack@npm:2.1.3" @@ -11838,6 +14567,18 @@ __metadata: languageName: node linkType: hard +"@smithy/node-config-provider@npm:^2.1.9": + version: 2.1.9 + resolution: "@smithy/node-config-provider@npm:2.1.9" + dependencies: + "@smithy/property-provider": "npm:^2.0.17" + "@smithy/shared-ini-file-loader": "npm:^2.2.8" + "@smithy/types": "npm:^2.8.0" + tslib: "npm:^2.5.0" + checksum: 32ef8d315096ddd728f00c3137a69c33438e27ea600ab9f0c720ad5535436357274399f0b5f6bc95fda02a0f30e77b6f8ef4ab7a5561b1723fcd1b422f88defa + languageName: node + linkType: hard + "@smithy/node-config-provider@npm:^2.2.4": version: 2.2.4 resolution: "@smithy/node-config-provider@npm:2.2.4" @@ -11850,6 +14591,19 @@ __metadata: languageName: node linkType: hard +"@smithy/node-http-handler@npm:^2.2.2": + version: 2.2.2 + resolution: "@smithy/node-http-handler@npm:2.2.2" + dependencies: + "@smithy/abort-controller": "npm:^2.0.16" + "@smithy/protocol-http": "npm:^3.0.12" + "@smithy/querystring-builder": "npm:^2.0.16" + "@smithy/types": "npm:^2.8.0" + tslib: "npm:^2.5.0" + checksum: 545e306c879062753178d3671e4b68f5fe5384f14cab90a60567c680eecfbc8f2615966bf89d6d464f68b1d8d1606aaf7d548f03bfe8ef0d52869337afd30db2 + languageName: node + linkType: hard + "@smithy/node-http-handler@npm:^2.4.1": version: 2.4.1 resolution: "@smithy/node-http-handler@npm:2.4.1" @@ -11863,6 +14617,16 @@ __metadata: languageName: node linkType: hard +"@smithy/property-provider@npm:^2.0.0, @smithy/property-provider@npm:^2.0.17": + version: 2.0.17 + resolution: "@smithy/property-provider@npm:2.0.17" + dependencies: + "@smithy/types": "npm:^2.8.0" + tslib: "npm:^2.5.0" + checksum: f25ec4888b335c4a8ac38a78ee2ac12119ba1b717c8905856faf4041d003173dfaf3a484c651c17454705a61059abff7873fba5618ae2e5adab9234da9079233 + languageName: node + linkType: hard + "@smithy/property-provider@npm:^2.1.3": version: 2.1.3 resolution: "@smithy/property-provider@npm:2.1.3" @@ -11873,6 +14637,16 @@ __metadata: languageName: node linkType: hard +"@smithy/protocol-http@npm:^3.0.12": + version: 3.0.12 + resolution: "@smithy/protocol-http@npm:3.0.12" + dependencies: + "@smithy/types": "npm:^2.8.0" + tslib: "npm:^2.5.0" + checksum: 4fd205f54c9b17900a5b5135fc14d4b692ace53aba7d37cda18c42620d4380c46c93702d573debb2716207588295cee86640e9760cb8ca64dfb58a69898d2959 + languageName: node + linkType: hard + "@smithy/protocol-http@npm:^3.2.1": version: 3.2.1 resolution: "@smithy/protocol-http@npm:3.2.1" @@ -11883,6 +14657,17 @@ __metadata: languageName: node linkType: hard +"@smithy/querystring-builder@npm:^2.0.16": + version: 2.0.16 + resolution: "@smithy/querystring-builder@npm:2.0.16" + dependencies: + "@smithy/types": "npm:^2.8.0" + "@smithy/util-uri-escape": "npm:^2.0.0" + tslib: "npm:^2.5.0" + checksum: 8dc67e8e3e933fe2dfe3846b42ceba8c445a9054087ca37ec5b3cacd4c108dffcf17b87a89b5248528e8662603a719dcdac5c5951db8a02115a3eefa40ab0b89 + languageName: node + linkType: hard + "@smithy/querystring-builder@npm:^2.1.3": version: 2.1.3 resolution: "@smithy/querystring-builder@npm:2.1.3" @@ -11894,6 +14679,16 @@ __metadata: languageName: node linkType: hard +"@smithy/querystring-parser@npm:^2.0.16": + version: 2.0.16 + resolution: "@smithy/querystring-parser@npm:2.0.16" + dependencies: + "@smithy/types": "npm:^2.8.0" + tslib: "npm:^2.5.0" + checksum: 0c0f34fcdea223f2b96dba9cbae083b785d4518407ebfe0491a2932318c21cae52c210ce9727848a6f2b58817bef3186baebc5aab5845a2e7edf2a7981843789 + languageName: node + linkType: hard + "@smithy/querystring-parser@npm:^2.1.3": version: 2.1.3 resolution: "@smithy/querystring-parser@npm:2.1.3" @@ -11904,6 +14699,15 @@ __metadata: languageName: node linkType: hard +"@smithy/service-error-classification@npm:^2.0.9": + version: 2.0.9 + resolution: "@smithy/service-error-classification@npm:2.0.9" + dependencies: + "@smithy/types": "npm:^2.8.0" + checksum: 5eaa401dbb1ebf6e7f27c0f05d2720ce65f4520d14085f43ebfe3b6ae145ff04a3424fee11669e485cd221eb12b8c3f6a2dbf8dff804581d9705f767f1fd52d5 + languageName: node + linkType: hard + "@smithy/service-error-classification@npm:^2.1.3": version: 2.1.3 resolution: "@smithy/service-error-classification@npm:2.1.3" @@ -11913,6 +14717,16 @@ __metadata: languageName: node linkType: hard +"@smithy/shared-ini-file-loader@npm:^2.0.6, @smithy/shared-ini-file-loader@npm:^2.2.8": + version: 2.2.8 + resolution: "@smithy/shared-ini-file-loader@npm:2.2.8" + dependencies: + "@smithy/types": "npm:^2.8.0" + tslib: "npm:^2.5.0" + checksum: a6d9ee4e5929ce18447f9a852a83e86e73d5e119e059b47db1219753c54240130f0326ab11ef0fcf0b1c4c1cca6fdba0e9c8f28cb2dc2c9f55823fcd2621118e + languageName: node + linkType: hard + "@smithy/shared-ini-file-loader@npm:^2.3.3, @smithy/shared-ini-file-loader@npm:^2.3.4": version: 2.3.4 resolution: "@smithy/shared-ini-file-loader@npm:2.3.4" @@ -11923,6 +14737,22 @@ __metadata: languageName: node linkType: hard +"@smithy/signature-v4@npm:^2.0.0": + version: 2.0.19 + resolution: "@smithy/signature-v4@npm:2.0.19" + dependencies: + "@smithy/eventstream-codec": "npm:^2.0.16" + "@smithy/is-array-buffer": "npm:^2.0.0" + "@smithy/types": "npm:^2.8.0" + "@smithy/util-hex-encoding": "npm:^2.0.0" + "@smithy/util-middleware": "npm:^2.0.9" + "@smithy/util-uri-escape": "npm:^2.0.0" + "@smithy/util-utf8": "npm:^2.0.2" + tslib: "npm:^2.5.0" + checksum: 58eff5c6fd7d2353e64df9cb01fc1fdf7078df052cf91c856fa1a2f8df9edfc4a35c751ee7c377d4c45e0dc4a940a94659e1e5ddd4f1ffdb11627da700499090 + languageName: node + linkType: hard + "@smithy/signature-v4@npm:^2.1.3": version: 2.1.3 resolution: "@smithy/signature-v4@npm:2.1.3" @@ -11939,6 +14769,20 @@ __metadata: languageName: node linkType: hard +"@smithy/smithy-client@npm:^2.2.1": + version: 2.2.1 + resolution: "@smithy/smithy-client@npm:2.2.1" + dependencies: + "@smithy/middleware-endpoint": "npm:^2.3.0" + "@smithy/middleware-stack": "npm:^2.0.10" + "@smithy/protocol-http": "npm:^3.0.12" + "@smithy/types": "npm:^2.8.0" + "@smithy/util-stream": "npm:^2.0.24" + tslib: "npm:^2.5.0" + checksum: 6e5d67d11e7c10db35604caf2dc4daa841f0b55b9f97092b34d819250737af8ca7a84a98870cbd249067c2aff478901b39dd16d9cecdaa9a53c1b2c58f8eb4f7 + languageName: node + linkType: hard + "@smithy/smithy-client@npm:^2.4.2": version: 2.4.2 resolution: "@smithy/smithy-client@npm:2.4.2" @@ -11962,6 +14806,26 @@ __metadata: languageName: node linkType: hard +"@smithy/types@npm:^2.8.0": + version: 2.8.0 + resolution: "@smithy/types@npm:2.8.0" + dependencies: + tslib: "npm:^2.5.0" + checksum: 802ab14632d2e6a646d4d5e3edafde1dc0a066047140367176477e35645aebb568e4086080fe2758fcf713c102eebbc3e5d7097c0f6cb5b58e7da7da3e8d714f + languageName: node + linkType: hard + +"@smithy/url-parser@npm:^2.0.16": + version: 2.0.16 + resolution: "@smithy/url-parser@npm:2.0.16" + dependencies: + "@smithy/querystring-parser": "npm:^2.0.16" + "@smithy/types": "npm:^2.8.0" + tslib: "npm:^2.5.0" + checksum: f9d6e65ee1cdcfa0f816c1c2c71988fd07d6abcc8d04e10cc05a8bf2c848656befb983a0c8118020e08e60e9704ba45436f7061a8717da8ac1f640e79aef9f95 + languageName: node + linkType: hard + "@smithy/url-parser@npm:^2.1.3": version: 2.1.3 resolution: "@smithy/url-parser@npm:2.1.3" @@ -11973,6 +14837,16 @@ __metadata: languageName: node linkType: hard +"@smithy/util-base64@npm:^2.0.1": + version: 2.0.1 + resolution: "@smithy/util-base64@npm:2.0.1" + dependencies: + "@smithy/util-buffer-from": "npm:^2.0.0" + tslib: "npm:^2.5.0" + checksum: 6c71765396e7c36229f78b3ab7404d86390b4191350955b3af3ca6e3e42f67428801722706153f5593571be51f3b418843c49326d894cd4445eb9ed9a04844a7 + languageName: node + linkType: hard + "@smithy/util-base64@npm:^2.1.1": version: 2.1.1 resolution: "@smithy/util-base64@npm:2.1.1" @@ -11983,6 +14857,15 @@ __metadata: languageName: node linkType: hard +"@smithy/util-body-length-browser@npm:^2.0.1": + version: 2.0.1 + resolution: "@smithy/util-body-length-browser@npm:2.0.1" + dependencies: + tslib: "npm:^2.5.0" + checksum: fdeea18772d7d4542d0192a5cf9b145f7626b8ab76be57bd7453cb73d84480bb12f83b982467b7e4dc015434e16c9e3f7ffdffa0e4ba1c4f6e570c0425bee3d1 + languageName: node + linkType: hard + "@smithy/util-body-length-browser@npm:^2.1.1": version: 2.1.1 resolution: "@smithy/util-body-length-browser@npm:2.1.1" @@ -11992,6 +14875,15 @@ __metadata: languageName: node linkType: hard +"@smithy/util-body-length-node@npm:^2.1.0": + version: 2.1.0 + resolution: "@smithy/util-body-length-node@npm:2.1.0" + dependencies: + tslib: "npm:^2.5.0" + checksum: 1b2e3a99811b623d68e800a4c400a0a55eb9ce12f5cfa5b8509a0fdd805a279a931759ff55472983b37dcbcc58221a3bbfef86e5e4304af973a1e2c5f8651078 + languageName: node + linkType: hard + "@smithy/util-body-length-node@npm:^2.2.1": version: 2.2.1 resolution: "@smithy/util-body-length-node@npm:2.2.1" @@ -12001,6 +14893,16 @@ __metadata: languageName: node linkType: hard +"@smithy/util-buffer-from@npm:^2.0.0": + version: 2.0.0 + resolution: "@smithy/util-buffer-from@npm:2.0.0" + dependencies: + "@smithy/is-array-buffer": "npm:^2.0.0" + tslib: "npm:^2.5.0" + checksum: 15326acdb8666ff8c342bfa23ace07ea6a1b7e849b118f5b28f0b93cd775e83c77fa53ab5b04b8f795798d316991042296c3c5522fb68c91df9e921d4c83e398 + languageName: node + linkType: hard + "@smithy/util-buffer-from@npm:^2.1.1": version: 2.1.1 resolution: "@smithy/util-buffer-from@npm:2.1.1" @@ -12011,6 +14913,15 @@ __metadata: languageName: node linkType: hard +"@smithy/util-config-provider@npm:^2.1.0": + version: 2.1.0 + resolution: "@smithy/util-config-provider@npm:2.1.0" + dependencies: + tslib: "npm:^2.5.0" + checksum: 42f02104e24ae9deadf69b45c2ebee4b7a65a908b7ccfeb85bb6d1036032d36d1c044ff1eab25f43147dc02a15adb8a9f6517ed586a545d4a757985a1530d2ac + languageName: node + linkType: hard + "@smithy/util-config-provider@npm:^2.2.1": version: 2.2.1 resolution: "@smithy/util-config-provider@npm:2.2.1" @@ -12020,6 +14931,19 @@ __metadata: languageName: node linkType: hard +"@smithy/util-defaults-mode-browser@npm:^2.0.24": + version: 2.0.24 + resolution: "@smithy/util-defaults-mode-browser@npm:2.0.24" + dependencies: + "@smithy/property-provider": "npm:^2.0.17" + "@smithy/smithy-client": "npm:^2.2.1" + "@smithy/types": "npm:^2.8.0" + bowser: "npm:^2.11.0" + tslib: "npm:^2.5.0" + checksum: b8cf6f1fecd5765d55557b7656b12a12e8468b9f343ef04dfdededba9d8894172933201ee922547ee5025ba1ca979db2071e6588f9b6df16797087ab065b5690 + languageName: node + linkType: hard + "@smithy/util-defaults-mode-browser@npm:^2.1.4": version: 2.1.4 resolution: "@smithy/util-defaults-mode-browser@npm:2.1.4" @@ -12033,6 +14957,21 @@ __metadata: languageName: node linkType: hard +"@smithy/util-defaults-mode-node@npm:^2.0.32": + version: 2.0.32 + resolution: "@smithy/util-defaults-mode-node@npm:2.0.32" + dependencies: + "@smithy/config-resolver": "npm:^2.0.23" + "@smithy/credential-provider-imds": "npm:^2.1.5" + "@smithy/node-config-provider": "npm:^2.1.9" + "@smithy/property-provider": "npm:^2.0.17" + "@smithy/smithy-client": "npm:^2.2.1" + "@smithy/types": "npm:^2.8.0" + tslib: "npm:^2.5.0" + checksum: d25372e50f91f593ca38c6d2cb722b0d87d6a0334de57d90fdd7364ef91fff227f19579a1734d6fcbd19a60563757ed9ff1afce4eeaf257d915876f832bed2fc + languageName: node + linkType: hard + "@smithy/util-defaults-mode-node@npm:^2.2.3": version: 2.2.3 resolution: "@smithy/util-defaults-mode-node@npm:2.2.3" @@ -12048,6 +14987,17 @@ __metadata: languageName: node linkType: hard +"@smithy/util-endpoints@npm:^1.0.8": + version: 1.0.8 + resolution: "@smithy/util-endpoints@npm:1.0.8" + dependencies: + "@smithy/node-config-provider": "npm:^2.1.9" + "@smithy/types": "npm:^2.8.0" + tslib: "npm:^2.5.0" + checksum: 09cdf2178131c323bd69000af9c5ea93654036ccaa04d963f67d86c87bb84875b070b71a6e07e809c30fb7cf1629c9e538516a00cb103f55ba22f2b58ebe0e07 + languageName: node + linkType: hard + "@smithy/util-endpoints@npm:^1.1.4": version: 1.1.4 resolution: "@smithy/util-endpoints@npm:1.1.4" @@ -12059,6 +15009,15 @@ __metadata: languageName: node linkType: hard +"@smithy/util-hex-encoding@npm:^2.0.0": + version: 2.0.0 + resolution: "@smithy/util-hex-encoding@npm:2.0.0" + dependencies: + tslib: "npm:^2.5.0" + checksum: 196b594d5e4a31fbc6a6ada8e1af307e0af55721685df70e20415733f46d6d2d6f7c52f9d2bf4512f0033cc1adb74f115c68025d9b7d7023342ef6f0514cee2a + languageName: node + linkType: hard + "@smithy/util-hex-encoding@npm:^2.1.1": version: 2.1.1 resolution: "@smithy/util-hex-encoding@npm:2.1.1" @@ -12068,6 +15027,16 @@ __metadata: languageName: node linkType: hard +"@smithy/util-middleware@npm:^2.0.9": + version: 2.0.9 + resolution: "@smithy/util-middleware@npm:2.0.9" + dependencies: + "@smithy/types": "npm:^2.8.0" + tslib: "npm:^2.5.0" + checksum: 1d379da341488d8d9af31d2b589b2875afa6c12a977934b135fdada30e75eace64fea3b673d090aeb8976d21a836cb146603e88c84b44b39a0547ea7eaa10c94 + languageName: node + linkType: hard + "@smithy/util-middleware@npm:^2.1.3": version: 2.1.3 resolution: "@smithy/util-middleware@npm:2.1.3" @@ -12078,6 +15047,17 @@ __metadata: languageName: node linkType: hard +"@smithy/util-retry@npm:^2.0.9": + version: 2.0.9 + resolution: "@smithy/util-retry@npm:2.0.9" + dependencies: + "@smithy/service-error-classification": "npm:^2.0.9" + "@smithy/types": "npm:^2.8.0" + tslib: "npm:^2.5.0" + checksum: f28f1215cbe2c0eab5de65db21d13092b6b81ac807c08c491c36db9f68e8b1598e4f53f9536299aa770c115cd67bae8d10b1151ff7e253563bc1323ae9a9276e + languageName: node + linkType: hard + "@smithy/util-retry@npm:^2.1.3": version: 2.1.3 resolution: "@smithy/util-retry@npm:2.1.3" @@ -12089,6 +15069,22 @@ __metadata: languageName: node linkType: hard +"@smithy/util-stream@npm:^2.0.24": + version: 2.0.24 + resolution: "@smithy/util-stream@npm:2.0.24" + dependencies: + "@smithy/fetch-http-handler": "npm:^2.3.2" + "@smithy/node-http-handler": "npm:^2.2.2" + "@smithy/types": "npm:^2.8.0" + "@smithy/util-base64": "npm:^2.0.1" + "@smithy/util-buffer-from": "npm:^2.0.0" + "@smithy/util-hex-encoding": "npm:^2.0.0" + "@smithy/util-utf8": "npm:^2.0.2" + tslib: "npm:^2.5.0" + checksum: fa22edcd38385a5b261a678cef976eb24652f0a29f566e79a7503b04a44b698422ba975a27808e11e28f5a61d9d276dae3141cd9bb201ca7e618b74e15ae6a83 + languageName: node + linkType: hard + "@smithy/util-stream@npm:^2.1.3": version: 2.1.3 resolution: "@smithy/util-stream@npm:2.1.3" @@ -12105,6 +15101,15 @@ __metadata: languageName: node linkType: hard +"@smithy/util-uri-escape@npm:^2.0.0": + version: 2.0.0 + resolution: "@smithy/util-uri-escape@npm:2.0.0" + dependencies: + tslib: "npm:^2.5.0" + checksum: 2f121d1fce9878e22fc5eaa0f8f4e47e967fce6d727b4283902d842842c7835b47de08e16b2c6fef389457a6edf2523274019fe511ede98ce0f38a11aea63bc2 + languageName: node + linkType: hard + "@smithy/util-uri-escape@npm:^2.1.1": version: 2.1.1 resolution: "@smithy/util-uri-escape@npm:2.1.1" @@ -12114,6 +15119,16 @@ __metadata: languageName: node linkType: hard +"@smithy/util-utf8@npm:^2.0.2": + version: 2.0.2 + resolution: "@smithy/util-utf8@npm:2.0.2" + dependencies: + "@smithy/util-buffer-from": "npm:^2.0.0" + tslib: "npm:^2.5.0" + checksum: 9356200ac7ccef414cd924b4fd2bfeb1d0a2e7992b4c924f0328205ab9bb8c688bc4b5c271c237db90ea75fb448f32c1f76c6e8883c2f088ea0559737ea99d9d + languageName: node + linkType: hard + "@smithy/util-utf8@npm:^2.1.1": version: 2.1.1 resolution: "@smithy/util-utf8@npm:2.1.1" @@ -12124,6 +15139,17 @@ __metadata: languageName: node linkType: hard +"@smithy/util-waiter@npm:^2.0.16": + version: 2.0.16 + resolution: "@smithy/util-waiter@npm:2.0.16" + dependencies: + "@smithy/abort-controller": "npm:^2.0.16" + "@smithy/types": "npm:^2.8.0" + tslib: "npm:^2.5.0" + checksum: 91cff83f1450cc761ec8a7b77c09af5ffa10619f40d560fd3f14633b63486dad2c274df7fc44fbd80c6e2ea4ec8b0514990ff8b989afa50467296e8cdada611b + languageName: node + linkType: hard + "@smithy/util-waiter@npm:^2.1.3": version: 2.1.3 resolution: "@smithy/util-waiter@npm:2.1.3" @@ -14281,15 +17307,6 @@ __metadata: languageName: node linkType: hard -"@szmarczak/http-timer@npm:^1.1.2": - version: 1.1.2 - resolution: "@szmarczak/http-timer@npm:1.1.2" - dependencies: - defer-to-connect: "npm:^1.0.1" - checksum: 9b63853bd53bff72c4990ebc9cd3f625bbab757247099af172564da6649a27a1d41b1a70cd849dd65b2a078300029c1c80bf3079e6a91e285da7b259eb147146 - languageName: node - linkType: hard - "@szmarczak/http-timer@npm:^4.0.5": version: 4.0.6 resolution: "@szmarczak/http-timer@npm:4.0.6" @@ -14509,300 +17526,6 @@ __metadata: languageName: node linkType: hard -"@truffle/abi-utils@npm:^0.2.9": - version: 0.2.17 - resolution: "@truffle/abi-utils@npm:0.2.17" - dependencies: - change-case: "npm:3.0.2" - faker: "npm:5.5.3" - fast-check: "npm:3.1.1" - checksum: 8e3d112d115439a405324fec40e7cb73b898c344881a4b033da76e62cfe6bf59385c00007e10f10fcb965efff810c7182f12ed68a17ebb406870c7903a07a012 - languageName: node - linkType: hard - -"@truffle/abi-utils@npm:^1.0.3": - version: 1.0.3 - resolution: "@truffle/abi-utils@npm:1.0.3" - dependencies: - change-case: "npm:3.0.2" - fast-check: "npm:3.1.1" - web3-utils: "npm:1.10.0" - checksum: 9e1ee820f9654e85a8a4a39e714d9b8dc9bffb6b5a035b5d869b4264eaf96b8e260fd43f378e704b962794235f534fca155dc4512e19266a0184debad2e0ddc5 - languageName: node - linkType: hard - -"@truffle/blockchain-utils@npm:^0.0.18": - version: 0.0.18 - resolution: "@truffle/blockchain-utils@npm:0.0.18" - dependencies: - source-map-support: "npm:^0.5.16" - checksum: 6d350429e8c647c5d568b58f423a895146c30a1f92761cb5dfbdeca58624b44ccf36431f64f439a7affc7bdd320170f5ae0100f2481bc164b7848de76fb82e63 - languageName: node - linkType: hard - -"@truffle/blockchain-utils@npm:^0.0.31": - version: 0.0.31 - resolution: "@truffle/blockchain-utils@npm:0.0.31" - checksum: 392aacb8c027b0db3b5482bfd4babbabdbe5011d219f68a497dc7f0635adec6fb7b2f239258c3273b6802856c07ae082072d4507805d8ba70709c0a4f4852baa - languageName: node - linkType: hard - -"@truffle/blockchain-utils@npm:^0.1.3, @truffle/blockchain-utils@npm:^0.1.9": - version: 0.1.9 - resolution: "@truffle/blockchain-utils@npm:0.1.9" - checksum: 4f7acfc00b29ae6830eb60563e58e1fef3d2480fc4bf426781b3cf40e1a6387bf05fef15e0ac851f7c10e586515db0fa370ac2dbeffa396e735d665738831663 - languageName: node - linkType: hard - -"@truffle/codec@npm:^0.11.19": - version: 0.11.27 - resolution: "@truffle/codec@npm:0.11.27" - dependencies: - "@truffle/abi-utils": "npm:^0.2.9" - "@truffle/compile-common": "npm:^0.7.28" - big.js: "npm:^5.2.2" - bn.js: "npm:^5.1.3" - cbor: "npm:^5.1.0" - debug: "npm:^4.3.1" - lodash.clonedeep: "npm:^4.5.0" - lodash.escaperegexp: "npm:^4.1.2" - lodash.partition: "npm:^4.6.0" - lodash.sum: "npm:^4.0.2" - semver: "npm:^7.3.4" - utf8: "npm:^3.0.0" - web3-utils: "npm:1.5.3" - checksum: 8d906cf0ab67e2bc52e255d9565c7abf8d579a5c251e94f02063e215c73cbab7c7df3e941bea14a550bc754e36579c47d1ae40b2366927b741f4c7e31be80d23 - languageName: node - linkType: hard - -"@truffle/codec@npm:^0.17.3": - version: 0.17.3 - resolution: "@truffle/codec@npm:0.17.3" - dependencies: - "@truffle/abi-utils": "npm:^1.0.3" - "@truffle/compile-common": "npm:^0.9.8" - big.js: "npm:^6.0.3" - bn.js: "npm:^5.1.3" - cbor: "npm:^5.2.0" - debug: "npm:^4.3.1" - lodash: "npm:^4.17.21" - semver: "npm:^7.5.4" - utf8: "npm:^3.0.0" - web3-utils: "npm:1.10.0" - checksum: 72c947458ce49b564bd7ed355fb9083dbcb1812c5efc30570b67e61ed40a8d8b7250021bbae29d2806d8c1ac2c334470b8170869803b137b1eca49b28f2689ee - languageName: node - linkType: hard - -"@truffle/compile-common@npm:^0.7.28": - version: 0.7.34 - resolution: "@truffle/compile-common@npm:0.7.34" - dependencies: - "@truffle/error": "npm:^0.1.1" - colors: "npm:1.4.0" - checksum: b002746a14dda18b40b432600727f8e56260f199512cd05f81263c9d72e20f4da6467009b854f9868e4364762bda268695d5a53a54469070ea379a0f5fbe2dda - languageName: node - linkType: hard - -"@truffle/compile-common@npm:^0.9.8": - version: 0.9.8 - resolution: "@truffle/compile-common@npm:0.9.8" - dependencies: - "@truffle/error": "npm:^0.2.2" - colors: "npm:1.4.0" - checksum: ef35664ad1dd09463934c9dd980f04cbd0ac3076355a5c3cbfdeecacd8d9a81443edeede54329834022cd75ee241e954a93eef4f3a6935ad404a361889f89672 - languageName: node - linkType: hard - -"@truffle/contract-schema@npm:^3.0.23, @truffle/contract-schema@npm:^3.4.1, @truffle/contract-schema@npm:^3.4.16, @truffle/contract-schema@npm:^3.4.7": - version: 3.4.16 - resolution: "@truffle/contract-schema@npm:3.4.16" - dependencies: - ajv: "npm:^6.10.0" - debug: "npm:^4.3.1" - checksum: 61f696ea7cfb05f64f8991039f7ec505523999dfc118e27ed18679f55e2da860e7fc9b1bf6763925d14f66c1aa6c05ef0ace966bdb192519adfe288a9d7a13d1 - languageName: node - linkType: hard - -"@truffle/contract@npm:4.1.15": - version: 4.1.15 - resolution: "@truffle/contract@npm:4.1.15" - dependencies: - "@truffle/blockchain-utils": "npm:^0.0.18" - "@truffle/contract-schema": "npm:^3.0.23" - "@truffle/error": "npm:^0.0.8" - "@truffle/interface-adapter": "npm:^0.4.6" - bignumber.js: "npm:^7.2.1" - ethereum-ens: "npm:^0.8.0" - ethers: "npm:^4.0.0-beta.1" - exorcist: "npm:^1.0.1" - source-map-support: "npm:^0.5.16" - web3: "npm:1.2.1" - web3-core-promievent: "npm:1.2.1" - web3-eth-abi: "npm:1.2.1" - web3-utils: "npm:1.2.1" - checksum: b11dd5082c19174390ce684733b5ac8580662bedb0bcdf7419509ede42bc3c9d9116bcc0e1152ea51abe685c9d263f39f0e89c8c9647337a8541e8e205b238c3 - languageName: node - linkType: hard - -"@truffle/contract@npm:4.3.23": - version: 4.3.23 - resolution: "@truffle/contract@npm:4.3.23" - dependencies: - "@ensdomains/ensjs": "npm:^2.0.1" - "@truffle/blockchain-utils": "npm:^0.0.31" - "@truffle/contract-schema": "npm:^3.4.1" - "@truffle/debug-utils": "npm:^5.1.3" - "@truffle/error": "npm:^0.0.14" - "@truffle/interface-adapter": "npm:^0.5.2" - bignumber.js: "npm:^7.2.1" - ethers: "npm:^4.0.32" - web3: "npm:1.4.0" - web3-core-helpers: "npm:1.4.0" - web3-core-promievent: "npm:1.4.0" - web3-eth-abi: "npm:1.4.0" - web3-utils: "npm:1.4.0" - checksum: a18f9abf6bc4a11a4934d4470f02319ea96ee7a293c05c998d38f471554a0fcb7899daee6423464ea8d9d4549552dbfa6b771bea80c8fd30eacbd22af267d4bb - languageName: node - linkType: hard - -"@truffle/contract@npm:^4.0.35, @truffle/contract@npm:^4.0.38": - version: 4.6.31 - resolution: "@truffle/contract@npm:4.6.31" - dependencies: - "@ensdomains/ensjs": "npm:^2.1.0" - "@truffle/blockchain-utils": "npm:^0.1.9" - "@truffle/contract-schema": "npm:^3.4.16" - "@truffle/debug-utils": "npm:^6.0.57" - "@truffle/error": "npm:^0.2.2" - "@truffle/interface-adapter": "npm:^0.5.37" - bignumber.js: "npm:^7.2.1" - debug: "npm:^4.3.1" - ethers: "npm:^4.0.32" - web3: "npm:1.10.0" - web3-core-helpers: "npm:1.10.0" - web3-core-promievent: "npm:1.10.0" - web3-eth-abi: "npm:1.10.0" - web3-utils: "npm:1.10.0" - checksum: 3c9ea93f70a1d7c80dfda74b4061b81d12920cd593eeab643dc41164a169ca9bd867250dd9b60ec8bd32f0ead425b7e884c8ef501f2bbb7a3e82939a3358b5a4 - languageName: node - linkType: hard - -"@truffle/debug-utils@npm:^5.1.3": - version: 5.1.21 - resolution: "@truffle/debug-utils@npm:5.1.21" - dependencies: - "@truffle/codec": "npm:^0.11.19" - "@trufflesuite/chromafi": "npm:^2.2.2" - bn.js: "npm:^5.1.3" - chalk: "npm:^2.4.2" - debug: "npm:^4.3.1" - highlightjs-solidity: "npm:^2.0.2" - checksum: 3046e77faf3d7af25c2e64455fa37b52b413bf5a7d7c5b9c01804e66ea638b58a1ccb5a911881ee6b7607efc245ff0929f19a4d1c40840ffc32f020a6bd45d66 - languageName: node - linkType: hard - -"@truffle/debug-utils@npm:^6.0.22, @truffle/debug-utils@npm:^6.0.57": - version: 6.0.57 - resolution: "@truffle/debug-utils@npm:6.0.57" - dependencies: - "@truffle/codec": "npm:^0.17.3" - "@trufflesuite/chromafi": "npm:^3.0.0" - bn.js: "npm:^5.1.3" - chalk: "npm:^2.4.2" - debug: "npm:^4.3.1" - highlightjs-solidity: "npm:^2.0.6" - checksum: 83e9b039b1ee700bd84e0dcffb978dc12ec93e632663343ca8ca36b09d692b576b6060583c6a241dcb88d9df5bbd11f26e3e0ecc968baaec375ecda028ed8645 - languageName: node - linkType: hard - -"@truffle/error@npm:^0.0.14": - version: 0.0.14 - resolution: "@truffle/error@npm:0.0.14" - checksum: 48215edba4da253fe56eb81adca850d1bbd18ff4342ab8ad16328f71590fcf314e1a5a229e2081e6ed4c76562fadef55ec69e63e07cdf05c82c78045cbf0d89d - languageName: node - linkType: hard - -"@truffle/error@npm:^0.0.8": - version: 0.0.8 - resolution: "@truffle/error@npm:0.0.8" - checksum: 9581062a457ce5586e0dd250c516d092aefbece30a719194c8cf448c61be52f0ff61d33c2f55da9556bba411f7bc051cef631ff67bc4ced70f3a27788fb98d7f - languageName: node - linkType: hard - -"@truffle/error@npm:^0.1.0, @truffle/error@npm:^0.1.1": - version: 0.1.1 - resolution: "@truffle/error@npm:0.1.1" - checksum: 32c6faca2d221560456e54709b344533bacdbd575506c9feaeffe27ffb8720839a36fd2c0318da2be5bb824c7aa253d2697e4f5ff5d5b0674e937fdd6f024e07 - languageName: node - linkType: hard - -"@truffle/error@npm:^0.2.2": - version: 0.2.2 - resolution: "@truffle/error@npm:0.2.2" - checksum: 1f2b982e58ee84510b59dd5bba8cbb21a42cb24a58ef46334f43433f3c3586ade5575846965f6fe069b0bf59f3a36134f8792f3b78eb0f4e72b8cb2ad8e323e2 - languageName: node - linkType: hard - -"@truffle/interface-adapter@npm:^0.4.6": - version: 0.4.24 - resolution: "@truffle/interface-adapter@npm:0.4.24" - dependencies: - bn.js: "npm:^5.1.3" - ethers: "npm:^4.0.32" - web3: "npm:1.3.6" - checksum: 42ee0f354d192dcab99c843f4304a816931827402e5fcc186075c32ac451bf94f4585e0a699bf56c8eb829bb40b9dd14a3a91a92dfd4e58d4bd35d056d2a88cf - languageName: node - linkType: hard - -"@truffle/interface-adapter@npm:^0.5.16, @truffle/interface-adapter@npm:^0.5.2, @truffle/interface-adapter@npm:^0.5.37": - version: 0.5.37 - resolution: "@truffle/interface-adapter@npm:0.5.37" - dependencies: - bn.js: "npm:^5.1.3" - ethers: "npm:^4.0.32" - web3: "npm:1.10.0" - checksum: 72489204a2ed6dd6add1926684bb0de9ac5afe7aeea772c161926b8f46634f1f95fd51d8ee8d021f9a50721a0ba2993a6c1b8c37fcd1f07f071a29706bf56a06 - languageName: node - linkType: hard - -"@trufflesuite/chromafi@npm:^2.2.2": - version: 2.2.2 - resolution: "@trufflesuite/chromafi@npm:2.2.2" - dependencies: - ansi-mark: "npm:^1.0.0" - ansi-regex: "npm:^3.0.0" - array-uniq: "npm:^1.0.3" - camelcase: "npm:^4.1.0" - chalk: "npm:^2.3.2" - cheerio: "npm:^1.0.0-rc.2" - detect-indent: "npm:^5.0.0" - he: "npm:^1.1.1" - highlight.js: "npm:^10.4.1" - lodash.merge: "npm:^4.6.2" - min-indent: "npm:^1.0.0" - strip-ansi: "npm:^4.0.0" - strip-indent: "npm:^2.0.0" - super-split: "npm:^1.1.0" - checksum: 9f4e84f31495f8471cafe9d83c286ae2328c74262955017c55ebca70c51aff193aa5f6f28afa3da73c4ae8fae5218776c8bf66629347db4c7beaf78f32e0064c - languageName: node - linkType: hard - -"@trufflesuite/chromafi@npm:^3.0.0": - version: 3.0.0 - resolution: "@trufflesuite/chromafi@npm:3.0.0" - dependencies: - camelcase: "npm:^4.1.0" - chalk: "npm:^2.3.2" - cheerio: "npm:^1.0.0-rc.2" - detect-indent: "npm:^5.0.0" - highlight.js: "npm:^10.4.1" - lodash.merge: "npm:^4.6.2" - strip-ansi: "npm:^4.0.0" - strip-indent: "npm:^2.0.0" - checksum: 1d5d5f0e23b413ebabf6ae6d9148e9f7e7185416e79666ebd92f17901304f7455b12072c36eb5f71861dae12a0505a399d68c0ad43620ac81ef7eeaca4832d14 - languageName: node - linkType: hard - "@trysound/sax@npm:0.2.0": version: 0.2.0 resolution: "@trysound/sax@npm:0.2.0" @@ -14950,7 +17673,7 @@ __metadata: languageName: node linkType: hard -"@types/babel__core@npm:^7.0.0, @types/babel__core@npm:^7.18.0, @types/babel__core@npm:^7.20.4, @types/babel__core@npm:^7.20.5": +"@types/babel__core@npm:^7.0.0, @types/babel__core@npm:^7.20.4, @types/babel__core@npm:^7.20.5": version: 7.20.5 resolution: "@types/babel__core@npm:7.20.5" dependencies: @@ -14963,6 +17686,19 @@ __metadata: languageName: node linkType: hard +"@types/babel__core@npm:^7.18.0": + version: 7.20.3 + resolution: "@types/babel__core@npm:7.20.3" + dependencies: + "@babel/parser": "npm:^7.20.7" + "@babel/types": "npm:^7.20.7" + "@types/babel__generator": "npm:*" + "@types/babel__template": "npm:*" + "@types/babel__traverse": "npm:*" + checksum: 063dbb8ba75fc503b2adf7845b1c188570f439ca4f3bc5cd8be508b4a74c919e6a4682a751ea9acd569ceee78ca946fd2f734d1a11c522aa570b82355de15e7d + languageName: node + linkType: hard + "@types/babel__generator@npm:*": version: 7.6.8 resolution: "@types/babel__generator@npm:7.6.8" @@ -14982,7 +17718,7 @@ __metadata: languageName: node linkType: hard -"@types/babel__traverse@npm:*, @types/babel__traverse@npm:^7.18.0": +"@types/babel__traverse@npm:*": version: 7.20.5 resolution: "@types/babel__traverse@npm:7.20.5" dependencies: @@ -14991,30 +17727,30 @@ __metadata: languageName: node linkType: hard -"@types/bignumber.js@npm:^5.0.0": - version: 5.0.0 - resolution: "@types/bignumber.js@npm:5.0.0" +"@types/babel__traverse@npm:^7.18.0": + version: 7.20.3 + resolution: "@types/babel__traverse@npm:7.20.3" dependencies: - bignumber.js: "npm:*" - checksum: f31a196da8b93d35c30879f4cc449e1099057ef27514554d2a5c80e2b1ba8cb8925919a2d92700d723ea959cb8b9d66f2917eea4f98a36f9f5d9e24c10c9c36f + "@babel/types": "npm:^7.20.7" + checksum: ccf85b0f1ed4931074d6efe34f79d9e8d54de2ce8109ddf8b8b4955094d30af4ef12dca9f64963c38a7b63d85583557d935bece1d9ad1fd5c925f1c62ffb0e10 languageName: node linkType: hard -"@types/bn.js@npm:*, @types/bn.js@npm:^5.1.0, @types/bn.js@npm:^5.1.1": - version: 5.1.5 - resolution: "@types/bn.js@npm:5.1.5" +"@types/bn.js@npm:^4.11.3": + version: 4.11.6 + resolution: "@types/bn.js@npm:4.11.6" dependencies: "@types/node": "npm:*" - checksum: 9719330c86aeae0a6a447c974cf0f853ba3660ede20de61f435b03d699e30e6d8b35bf71a8dc9fdc8317784438e83177644ba068ed653d0ae0106e1ecbfe289e + checksum: 9ff3e7a1539a953c381c0d30ea2049162e3cab894cda91ee10f3a84d603f9afa2b2bc2a38fe9b427de94b6e2b7b77aefd217c1c7b07a10ae8d7499f9d6697a41 languageName: node linkType: hard -"@types/bn.js@npm:^4.11.3, @types/bn.js@npm:^4.11.4, @types/bn.js@npm:^4.11.5": - version: 4.11.6 - resolution: "@types/bn.js@npm:4.11.6" +"@types/bn.js@npm:^5.1.0, @types/bn.js@npm:^5.1.1": + version: 5.1.5 + resolution: "@types/bn.js@npm:5.1.5" dependencies: "@types/node": "npm:*" - checksum: 9ff3e7a1539a953c381c0d30ea2049162e3cab894cda91ee10f3a84d603f9afa2b2bc2a38fe9b427de94b6e2b7b77aefd217c1c7b07a10ae8d7499f9d6697a41 + checksum: 9719330c86aeae0a6a447c974cf0f853ba3660ede20de61f435b03d699e30e6d8b35bf71a8dc9fdc8317784438e83177644ba068ed653d0ae0106e1ecbfe289e languageName: node linkType: hard @@ -15056,15 +17792,6 @@ __metadata: languageName: node linkType: hard -"@types/cbor@npm:^2.0.0": - version: 2.0.0 - resolution: "@types/cbor@npm:2.0.0" - dependencies: - "@types/node": "npm:*" - checksum: 299b3884845dc451506c30e877d4b657b034e55112202f0e3c95f151faa90dc0a30bae434f7c96b2c7836d179393e1d9455140dccdfae2356d106f4e8c02cd32 - languageName: node - linkType: hard - "@types/chai-as-promised@npm:^7.1.3": version: 7.1.8 resolution: "@types/chai-as-promised@npm:7.1.8" @@ -15083,10 +17810,10 @@ __metadata: languageName: node linkType: hard -"@types/chai@npm:*, @types/chai@npm:4.3.12, @types/chai@npm:^4.2.0, @types/chai@npm:^4.3.5": - version: 4.3.12 - resolution: "@types/chai@npm:4.3.12" - checksum: cf465151048f438b11e562ac431842f440b50817e74516f1fb349860a0db4fcdd665197f9fbee4387250d8d077496a1167fe2c75af88372bac6d8f093ee07b3a +"@types/chai@npm:*, @types/chai@npm:^4.3.5": + version: 4.3.5 + resolution: "@types/chai@npm:4.3.5" + checksum: 35d96db335724b6a05dd9113722f9cceb2069b5b0905b160f36132585482558fc5261a29b30290140dea7e5068be2f2585a4f4fba55b569222a95eb313e83b1b languageName: node linkType: hard @@ -15097,6 +17824,13 @@ __metadata: languageName: node linkType: hard +"@types/chai@npm:4.3.12": + version: 4.3.12 + resolution: "@types/chai@npm:4.3.12" + checksum: cf465151048f438b11e562ac431842f440b50817e74516f1fb349860a0db4fcdd665197f9fbee4387250d8d077496a1167fe2c75af88372bac6d8f093ee07b3a + languageName: node + linkType: hard + "@types/cli-progress@npm:^3.11.0": version: 3.11.5 resolution: "@types/cli-progress@npm:3.11.5" @@ -15177,7 +17911,7 @@ __metadata: languageName: node linkType: hard -"@types/debug@npm:^4.0.0, @types/debug@npm:^4.1.2, @types/debug@npm:^4.1.8, @types/debug@npm:^4.1.9": +"@types/debug@npm:^4.0.0, @types/debug@npm:^4.1.9": version: 4.1.12 resolution: "@types/debug@npm:4.1.12" dependencies: @@ -15186,6 +17920,15 @@ __metadata: languageName: node linkType: hard +"@types/debug@npm:^4.1.2, @types/debug@npm:^4.1.8": + version: 4.1.8 + resolution: "@types/debug@npm:4.1.8" + dependencies: + "@types/ms": "npm:*" + checksum: a9a9bb40a199e9724aa944e139a7659173a9b274798ea7efbc277cb084bc37d32fc4c00877c3496fac4fed70a23243d284adb75c00b5fdabb38a22154d18e5df + languageName: node + linkType: hard + "@types/detect-port@npm:^1.3.0": version: 1.3.5 resolution: "@types/detect-port@npm:1.3.5" @@ -15257,7 +18000,14 @@ __metadata: languageName: node linkType: hard -"@types/estree@npm:*, @types/estree@npm:1.0.5, @types/estree@npm:^1.0.0, @types/estree@npm:^1.0.5": +"@types/estree@npm:*, @types/estree@npm:^1.0.0": + version: 1.0.1 + resolution: "@types/estree@npm:1.0.1" + checksum: f252569c002506c61ad913e778aa69415908078c46c78c901ccad77bc66cd34f1e1b9babefb8ff0d27c07a15fb0824755edd7bb3fa7ea828f32ae0fe5faa9962 + languageName: node + linkType: hard + +"@types/estree@npm:1.0.5, @types/estree@npm:^1.0.5": version: 1.0.5 resolution: "@types/estree@npm:1.0.5" checksum: 7de6d928dd4010b0e20c6919e1a6c27b61f8d4567befa89252055fad503d587ecb9a1e3eab1b1901f923964d7019796db810b7fd6430acb26c32866d126fd408 @@ -15492,13 +18242,20 @@ __metadata: languageName: node linkType: hard -"@types/json-schema@npm:*, @types/json-schema@npm:^7.0.12, @types/json-schema@npm:^7.0.4, @types/json-schema@npm:^7.0.5, @types/json-schema@npm:^7.0.8, @types/json-schema@npm:^7.0.9": +"@types/json-schema@npm:*, @types/json-schema@npm:^7.0.12, @types/json-schema@npm:^7.0.4": version: 7.0.15 resolution: "@types/json-schema@npm:7.0.15" checksum: 1a3c3e06236e4c4aab89499c428d585527ce50c24fe8259e8b3926d3df4cfbbbcf306cfc73ddfb66cbafc973116efd15967020b0f738f63e09e64c7d260519e7 languageName: node linkType: hard +"@types/json-schema@npm:^7.0.5, @types/json-schema@npm:^7.0.8, @types/json-schema@npm:^7.0.9": + version: 7.0.11 + resolution: "@types/json-schema@npm:7.0.11" + checksum: e50864a93f4dcb9de64c0c605d836f5416341c824d7a8cde1aa15a5fc68bed44b33cdcb2e04e5098339e9121848378f2d0cc5b124dec41c89203c6f67d6f344a + languageName: node + linkType: hard + "@types/json-stable-stringify@npm:^1.0.32": version: 1.0.36 resolution: "@types/json-stable-stringify@npm:1.0.36" @@ -15522,7 +18279,7 @@ __metadata: languageName: node linkType: hard -"@types/keyv@npm:^3.1.1, @types/keyv@npm:^3.1.4": +"@types/keyv@npm:^3.1.4": version: 3.1.4 resolution: "@types/keyv@npm:3.1.4" dependencies: @@ -15745,14 +18502,14 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:^10.0.3, @types/node@npm:^10.12.18, @types/node@npm:^10.3.2": +"@types/node@npm:^10.0.3": version: 10.17.60 resolution: "@types/node@npm:10.17.60" checksum: f9161493b3284b1d41d5d594c2768625acdd9e33f992f71ccde47861916e662e2ae438d2cc5f1b285053391a31b52a7564ecedc22d485610d236bfad9c7e6a1c languageName: node linkType: hard -"@types/node@npm:^12.12.54, @types/node@npm:^12.12.6, @types/node@npm:^12.6.1": +"@types/node@npm:^12.12.54, @types/node@npm:^12.12.6": version: 12.20.55 resolution: "@types/node@npm:12.20.55" checksum: 1f916a06fff02faadb09a16ed6e31820ce170798b202ef0b14fc244bfbd721938c54a3a99836e185e4414ca461fe96c5bb5c67c3d248f153555b7e6347f061dd @@ -15867,13 +18624,20 @@ __metadata: languageName: node linkType: hard -"@types/prismjs@npm:^1.0.0, @types/prismjs@npm:^1.26.0": +"@types/prismjs@npm:^1.0.0": version: 1.26.3 resolution: "@types/prismjs@npm:1.26.3" checksum: 4bd55230ffc0b2b16f4008be3a7f1d7c6b32dd3bed8006e64d24fb22c44fc7e300dac77b856f732803ccdc9a3472b2c0ee7776cad048843c47d608c41a89b6a6 languageName: node linkType: hard +"@types/prismjs@npm:^1.26.0": + version: 1.26.0 + resolution: "@types/prismjs@npm:1.26.0" + checksum: 61b46e490acd46abba6c7c8c491247ba0c94f65f36f2eb1b8a80b0afc7961c7f9f2b386bd51daf114d61758e59957fe196a285f5e34bd88e46b4794b3e2a597d + languageName: node + linkType: hard + "@types/prop-types@npm:*, @types/prop-types@npm:^15.0.0": version: 15.7.11 resolution: "@types/prop-types@npm:15.7.11" @@ -16150,7 +18914,7 @@ __metadata: languageName: node linkType: hard -"@types/serve-static@npm:*, @types/serve-static@npm:^1.13.10": +"@types/serve-static@npm:*": version: 1.15.5 resolution: "@types/serve-static@npm:1.15.5" dependencies: @@ -16161,6 +18925,17 @@ __metadata: languageName: node linkType: hard +"@types/serve-static@npm:^1.13.10": + version: 1.15.2 + resolution: "@types/serve-static@npm:1.15.2" + dependencies: + "@types/http-errors": "npm:*" + "@types/mime": "npm:*" + "@types/node": "npm:*" + checksum: d5f8f5aaa765be6417aa3f2ebe36591f4e9d2d8a7480edf7d3db041427420fd565cb921fc021271098dd2afafce2b443fc0d978faa3ae21a2a58ebde7d525e9e + languageName: node + linkType: hard + "@types/sockjs@npm:^0.3.33": version: 0.3.36 resolution: "@types/sockjs@npm:0.3.36" @@ -16228,13 +19003,6 @@ __metadata: languageName: node linkType: hard -"@types/underscore@npm:*": - version: 1.11.15 - resolution: "@types/underscore@npm:1.11.15" - checksum: 5a9c262566551f61744e066d33578c0fad1139c2d5314ed77a8f867487a6d7dd18616f32df4c605070fbd569b942c6d2c083be9f9ae649f41a562b52812b06be - languageName: node - linkType: hard - "@types/unist@npm:*, @types/unist@npm:^3.0.0": version: 3.0.2 resolution: "@types/unist@npm:3.0.2" @@ -16263,16 +19031,6 @@ __metadata: languageName: node linkType: hard -"@types/web3@npm:1.0.19": - version: 1.0.19 - resolution: "@types/web3@npm:1.0.19" - dependencies: - "@types/bn.js": "npm:*" - "@types/underscore": "npm:*" - checksum: bf61a77d63cafed92a431df32505ea7e5d91f044f50ecd57e22efa10c76ec1093367403c060b8e72021f4e52513aceebb9c3edfb801b90dee09dc16dc0339d25 - languageName: node - linkType: hard - "@types/ws@npm:^7.4.4": version: 7.4.7 resolution: "@types/ws@npm:7.4.7" @@ -16282,7 +19040,7 @@ __metadata: languageName: node linkType: hard -"@types/ws@npm:^8.0.0, @types/ws@npm:^8.5.5": +"@types/ws@npm:^8.0.0": version: 8.5.10 resolution: "@types/ws@npm:8.5.10" dependencies: @@ -16291,6 +19049,15 @@ __metadata: languageName: node linkType: hard +"@types/ws@npm:^8.5.5": + version: 8.5.5 + resolution: "@types/ws@npm:8.5.5" + dependencies: + "@types/node": "npm:*" + checksum: b2d7da5bd469c2ff1ddcfba1da33a556dc02c539e727001e7dc7b4182935154143e96a101cc091686acefb4e115c8ee38111c6634934748b8dd2db0c851c50ab + languageName: node + linkType: hard + "@types/yargs-parser@npm:*": version: 21.0.3 resolution: "@types/yargs-parser@npm:21.0.3" @@ -16585,13 +19352,6 @@ __metadata: languageName: node linkType: hard -"@uniswap/lib@npm:2.1.0": - version: 2.1.0 - resolution: "@uniswap/lib@npm:2.1.0" - checksum: 0fcc3642c0535645f8edf9aab0b47386f4466fea7aa9f3c2a1357dfe2274502f1932e055f603ed92d737a529ebbe844f48f68e3f102704f195ea9dc6aff52fbe - languageName: node - linkType: hard - "@uniswap/lib@npm:^4.0.1-alpha": version: 4.0.1-alpha resolution: "@uniswap/lib@npm:4.0.1-alpha" @@ -16751,7 +19511,7 @@ __metadata: languageName: node linkType: hard -"@uniswap/universal-router@npm:1.6.0, @uniswap/universal-router@npm:^1.0.1": +"@uniswap/universal-router@npm:1.6.0": version: 1.6.0 resolution: "@uniswap/universal-router@npm:1.6.0" dependencies: @@ -16762,6 +19522,17 @@ __metadata: languageName: node linkType: hard +"@uniswap/universal-router@npm:^1.0.1": + version: 1.5.1 + resolution: "@uniswap/universal-router@npm:1.5.1" + dependencies: + "@openzeppelin/contracts": "npm:4.7.0" + "@uniswap/v2-core": "npm:1.0.1" + "@uniswap/v3-core": "npm:1.0.0" + checksum: 2a79e04677ffca14df801e706648c50097a2d7692f0f504a3d46c64897daf3fb980f2d65978efb4bf3d188bc65ebb02f866dec7077adb6fea4b0098b951386a5 + languageName: node + linkType: hard + "@uniswap/v2-core@npm:1.0.0": version: 1.0.0 resolution: "@uniswap/v2-core@npm:1.0.0" @@ -17221,13 +19992,10 @@ __metadata: "@connext/interfaces": "npm:2.0.5" "@nomiclabs/hardhat-ethers": "npm:2.2.3" "@nomiclabs/hardhat-etherscan": "npm:3.1.8" - "@nomiclabs/hardhat-truffle5": "npm:2.0.7" "@nomiclabs/hardhat-waffle": "npm:2.0.6" - "@nomiclabs/hardhat-web3": "npm:2.0.0" "@openzeppelin/contracts": "npm:4.9.5" "@openzeppelin/contracts-upgradeable": "npm:4.9.5" "@openzeppelin/hardhat-upgrades": "npm:1.28.0" - "@openzeppelin/test-helpers": "npm:0.5.16" "@openzeppelin/upgrades-core": "npm:1.27.3" "@safe-global/safe-core-sdk": "npm:3.3.5" "@safe-global/safe-ethers-lib": "npm:1.9.3" @@ -17243,12 +20011,9 @@ __metadata: "@unlock-protocol/networks": "workspace:./packages/networks" babel-polyfill: "npm:6.26.0" babel-register: "npm:6.26.0" - bignumber.js: "npm:9.1.2" chai: "npm:4.3.10" - debug: "npm:4.3.4" eslint: "npm:8.46.0" eth-gas-reporter: "npm:0.2.27" - eth-sig-util: "npm:3.0.1" ethers: "npm:5.7.2" fs-extra: "npm:11.1.1" hardhat: "npm:2.20.1" @@ -17257,11 +20022,8 @@ __metadata: hardhat-gas-reporter: "npm:1.0.10" hardhat-storage-layout: "npm:0.1.7" hardhat-tracer: "npm:2.8.0" - hardlydifficult-eth: "npm:1.1.4" - hardlydifficult-ethereum-contracts: "npm:0.11.1" prettier: "npm:3.0.0" prettier-plugin-solidity: "npm:1.1.3" - prompt: "npm:1.3.0" solhint: "npm:4.0.0" solidity-coverage: "npm:0.8.6" yesno: "npm:0.4.0" @@ -18106,7 +20868,7 @@ __metadata: languageName: node linkType: hard -"@walletconnect/jsonrpc-types@npm:1.0.3, @walletconnect/jsonrpc-types@npm:^1.0.2, @walletconnect/jsonrpc-types@npm:^1.0.3": +"@walletconnect/jsonrpc-types@npm:1.0.3, @walletconnect/jsonrpc-types@npm:^1.0.3": version: 1.0.3 resolution: "@walletconnect/jsonrpc-types@npm:1.0.3" dependencies: @@ -18116,7 +20878,17 @@ __metadata: languageName: node linkType: hard -"@walletconnect/jsonrpc-utils@npm:1.0.8, @walletconnect/jsonrpc-utils@npm:^1.0.3, @walletconnect/jsonrpc-utils@npm:^1.0.6, @walletconnect/jsonrpc-utils@npm:^1.0.7, @walletconnect/jsonrpc-utils@npm:^1.0.8": +"@walletconnect/jsonrpc-types@npm:^1.0.2": + version: 1.0.2 + resolution: "@walletconnect/jsonrpc-types@npm:1.0.2" + dependencies: + keyvaluestorage-interface: "npm:^1.0.0" + tslib: "npm:1.14.1" + checksum: cea07cbc4bcbcc6a28c38c363e602e7b1e3c1dc04927caaed5339749d403d724423e1ad6489bac88a34faf519560c2f7f0fb9164d6edafdf2a593890dace5e36 + languageName: node + linkType: hard + +"@walletconnect/jsonrpc-utils@npm:1.0.8, @walletconnect/jsonrpc-utils@npm:^1.0.6, @walletconnect/jsonrpc-utils@npm:^1.0.7, @walletconnect/jsonrpc-utils@npm:^1.0.8": version: 1.0.8 resolution: "@walletconnect/jsonrpc-utils@npm:1.0.8" dependencies: @@ -18127,6 +20899,17 @@ __metadata: languageName: node linkType: hard +"@walletconnect/jsonrpc-utils@npm:^1.0.3": + version: 1.0.7 + resolution: "@walletconnect/jsonrpc-utils@npm:1.0.7" + dependencies: + "@walletconnect/environment": "npm:^1.0.1" + "@walletconnect/jsonrpc-types": "npm:^1.0.2" + tslib: "npm:1.14.1" + checksum: 5fbb5877cd1d238b8d33fc6f53aab2fde94205b0cdbb3674aa374454c4cd40eb7a28cc29dcdf908482c316f45cb8f4efeef24bbfa9f775cf2bde2e6368405f69 + languageName: node + linkType: hard + "@walletconnect/jsonrpc-ws-connection@npm:1.0.14": version: 1.0.14 resolution: "@walletconnect/jsonrpc-ws-connection@npm:1.0.14" @@ -18812,13 +21595,6 @@ __metadata: languageName: node linkType: hard -"@yarnpkg/lockfile@npm:^1.1.0": - version: 1.1.0 - resolution: "@yarnpkg/lockfile@npm:1.1.0" - checksum: cd19e1114aaf10a05126aeea8833ef4ca8af8a46e88e12884f8359d19333fd19711036dbc2698dbe937f81f037070cf9a8da45c2e8c6ca19cafd7d15659094ed - languageName: node - linkType: hard - "@yr/monotone-cubic-spline@npm:^1.0.3": version: 1.0.3 resolution: "@yr/monotone-cubic-spline@npm:1.0.3" @@ -18887,46 +21663,25 @@ __metadata: languageName: node linkType: hard -"abortcontroller-polyfill@npm:^1.7.3, abortcontroller-polyfill@npm:^1.7.5": +"abortcontroller-polyfill@npm:^1.7.5": version: 1.7.5 resolution: "abortcontroller-polyfill@npm:1.7.5" checksum: aac398f7fc076235fe731adaffd2c319fe6c1527af8ca561890242d5396351350e0705726478778dc90326a69a4c044890c156fe867cba7f3ffeb670f8665a51 languageName: node linkType: hard -"abstract-leveldown@npm:3.0.0": - version: 3.0.0 - resolution: "abstract-leveldown@npm:3.0.0" - dependencies: - xtend: "npm:~4.0.0" - checksum: d9c52913566e44e30249551cb31610362721ac5b234bccb52134e15160cb5d9ff083b83011910e0fda78f99767d23d71452f6b1ec69abbaae5dc5ef1f301dba4 - languageName: node - linkType: hard - -"abstract-leveldown@npm:^2.4.1, abstract-leveldown@npm:~2.7.1": - version: 2.7.2 - resolution: "abstract-leveldown@npm:2.7.2" - dependencies: - xtend: "npm:~4.0.0" - checksum: cac79f5e24b91259706501d5e9881b63418623d3d192a42c7aa8ab427c5403142f81c6ce3649169bdf16514aea06b5ae7e2d6f4d22740ad967b48f2fa319e3f0 - languageName: node - linkType: hard - -"abstract-leveldown@npm:^5.0.0, abstract-leveldown@npm:~5.0.0": - version: 5.0.0 - resolution: "abstract-leveldown@npm:5.0.0" - dependencies: - xtend: "npm:~4.0.0" - checksum: bce08839fc5a9be06308c3c9669c5b5b31932b8994fb44599c9190a02592fd4eee7441bfc1de780ce7c2cadfa23e865e57a80f34f0005c8b4218a905518ad21f - languageName: node - linkType: hard - -"abstract-leveldown@npm:~2.6.0": - version: 2.6.3 - resolution: "abstract-leveldown@npm:2.6.3" +"abstract-level@npm:^1.0.0, abstract-level@npm:^1.0.2, abstract-level@npm:^1.0.3": + version: 1.0.3 + resolution: "abstract-level@npm:1.0.3" dependencies: - xtend: "npm:~4.0.0" - checksum: 3f9db6c3c77991018adcad133acb2e084446d7583753c46343ec3ba6ff60ab89cd1aa3813b2131ccc92191863802cacbca3240490fadde20118845267643c543 + buffer: "npm:^6.0.3" + catering: "npm:^2.1.0" + is-buffer: "npm:^2.0.5" + level-supports: "npm:^4.0.0" + level-transcoder: "npm:^1.0.1" + module-error: "npm:^1.0.1" + queue-microtask: "npm:^1.2.3" + checksum: a6872010a7be78240e1e5bf24b202950adbbd2a382970e17cc661ac8a73663327c241dc25f2863e599f3f5b24d0c3c357b5af4092c4ce34511bae1c09283a278 languageName: node linkType: hard @@ -18988,7 +21743,7 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.0.0, acorn@npm:^8.0.4, acorn@npm:^8.10.0, acorn@npm:^8.11.3, acorn@npm:^8.4.1, acorn@npm:^8.6.0, acorn@npm:^8.7.1, acorn@npm:^8.8.0, acorn@npm:^8.8.2, acorn@npm:^8.9.0": +"acorn@npm:^8.0.0, acorn@npm:^8.10.0, acorn@npm:^8.11.3": version: 8.11.3 resolution: "acorn@npm:8.11.3" bin: @@ -18997,6 +21752,33 @@ __metadata: languageName: node linkType: hard +"acorn@npm:^8.0.4, acorn@npm:^8.7.1": + version: 8.10.0 + resolution: "acorn@npm:8.10.0" + bin: + acorn: bin/acorn + checksum: 522310c20fdc3c271caed3caf0f06c51d61cb42267279566edd1d58e83dbc12eebdafaab666a0f0be1b7ad04af9c6bc2a6f478690a9e6391c3c8b165ada917dd + languageName: node + linkType: hard + +"acorn@npm:^8.4.1, acorn@npm:^8.6.0, acorn@npm:^8.8.0, acorn@npm:^8.8.2": + version: 8.8.2 + resolution: "acorn@npm:8.8.2" + bin: + acorn: bin/acorn + checksum: b4e77d56d24d3e11a45d9ac8ae661b4e14a4af04ae33edbf1e6bf910887e5bb352cc60e9ea06a0944880e6b658f58c095d3b54e88e1921cb9319608b51085dd7 + languageName: node + linkType: hard + +"acorn@npm:^8.9.0": + version: 8.9.0 + resolution: "acorn@npm:8.9.0" + bin: + acorn: bin/acorn + checksum: 243af601b8dfe859008c49ebf75a5bf3ad55d243aed7fdd16966ffb3e0276d070381dce95813b77796b87b1997c01946103744e3fcddaefc40b96bda4d94c075 + languageName: node + linkType: hard + "address@npm:^1.0.1, address@npm:^1.1.2": version: 1.2.2 resolution: "address@npm:1.2.2" @@ -19025,7 +21807,7 @@ __metadata: languageName: node linkType: hard -"aes-js@npm:^3.1.1, aes-js@npm:^3.1.2": +"aes-js@npm:^3.1.2": version: 3.1.2 resolution: "aes-js@npm:3.1.2" checksum: b65916767034a51375a3ac5aad62af452d89a386c1ae7b607bb9145d0bb8b8823bf2f3eba85bdfa52d61c65d5aed90ba90f677b8c826bfa1a8b7ae2fa3b54d91 @@ -19214,7 +21996,7 @@ __metadata: languageName: node linkType: hard -"amazon-cognito-identity-js@npm:^6.0.1, amazon-cognito-identity-js@npm:^6.3.6": +"amazon-cognito-identity-js@npm:^6.0.1": version: 6.3.11 resolution: "amazon-cognito-identity-js@npm:6.3.11" dependencies: @@ -19227,6 +22009,19 @@ __metadata: languageName: node linkType: hard +"amazon-cognito-identity-js@npm:^6.3.6": + version: 6.3.10 + resolution: "amazon-cognito-identity-js@npm:6.3.10" + dependencies: + "@aws-crypto/sha256-js": "npm:1.2.2" + buffer: "npm:4.9.2" + fast-base64-decode: "npm:^1.0.0" + isomorphic-unfetch: "npm:^3.0.0" + js-cookie: "npm:^2.2.1" + checksum: dbfadd3708c7068e7032d2dccf53bb6d5c7543e39fc30ccf306ddf155d9ec2f8d2821b4354c31aed8955cdae9da3bd1977fec152b1cbfc0c2f69b449f8982ff8 + languageName: node + linkType: hard + "amdefine@npm:>=0.0.4": version: 1.0.1 resolution: "amdefine@npm:1.0.1" @@ -19257,13 +22052,6 @@ __metadata: languageName: node linkType: hard -"ansi-colors@npm:^3.2.3": - version: 3.2.4 - resolution: "ansi-colors@npm:3.2.4" - checksum: b8b87c827a5ac411554d159a0487d58c12cb74f71b5ec5d7dfdc46aa19ad5cd1254aed83810b3b880a1bc9cd1a7061914905e63f2def6cdd655d05e30cca12cd - languageName: node - linkType: hard - "ansi-colors@npm:^4.1.1": version: 4.1.3 resolution: "ansi-colors@npm:4.1.3" @@ -19314,19 +22102,6 @@ __metadata: languageName: node linkType: hard -"ansi-mark@npm:^1.0.0": - version: 1.0.4 - resolution: "ansi-mark@npm:1.0.4" - dependencies: - ansi-regex: "npm:^3.0.0" - array-uniq: "npm:^1.0.3" - chalk: "npm:^2.3.2" - strip-ansi: "npm:^4.0.0" - super-split: "npm:^1.1.0" - checksum: 911e97b2cde0b198bc2c221697d5c698329f1b1666ebb642c36357f1f148366e42aa3d710fbbfaed8cca62cd9e1a8e881adcacc0973bb24c83556033678387f0 - languageName: node - linkType: hard - "ansi-regex@npm:^2.0.0": version: 2.1.1 resolution: "ansi-regex@npm:2.1.1" @@ -19442,7 +22217,7 @@ __metadata: languageName: node linkType: hard -"any-promise@npm:1.3.0, any-promise@npm:^1.0.0": +"any-promise@npm:^1.0.0": version: 1.3.0 resolution: "any-promise@npm:1.3.0" checksum: 6737469ba353b5becf29e4dc3680736b9caa06d300bda6548812a8fee63ae7d336d756f88572fa6b5219aed36698d808fa55f62af3e7e6845c7a1dc77d240edb @@ -19829,7 +22604,7 @@ __metadata: languageName: node linkType: hard -"array-uniq@npm:1.0.3, array-uniq@npm:^1.0.2, array-uniq@npm:^1.0.3": +"array-uniq@npm:1.0.3, array-uniq@npm:^1.0.2": version: 1.0.3 resolution: "array-uniq@npm:1.0.3" checksum: 1625f06b093d8bf279b81adfec6e72951c0857d65b5e3f65f053fffe9f9dd61c2fc52cff57e38a4700817e7e3f01a4faa433d505ea9e33cdae4514c334e0bf9e @@ -20142,15 +22917,6 @@ __metadata: languageName: node linkType: hard -"async-eventemitter@npm:^0.2.2": - version: 0.2.4 - resolution: "async-eventemitter@npm:0.2.4" - dependencies: - async: "npm:^2.4.0" - checksum: 4f927de88add821cb11640dcbbc8bad561dace016b661ad8d597b60641d57cee740477a34ba9832b60f89a93cad43e78a3eb881f00fe0da49a85844a7b9de026 - languageName: node - linkType: hard - "async-limiter@npm:~1.0.0": version: 1.0.1 resolution: "async-limiter@npm:1.0.1" @@ -20183,22 +22949,13 @@ __metadata: languageName: node linkType: hard -"async@npm:1.x, async@npm:^1.4.2, async@npm:~1.5": +"async@npm:1.x, async@npm:~1.5": version: 1.5.2 resolution: "async@npm:1.5.2" checksum: 8afcdcee05168250926a3e7bd4dfaa74b681a74f634bae2af424fb716042461cbd20a375d9bc2534daa50a2d45286c9b174952fb239cee4ab8d6351a40c65327 languageName: node linkType: hard -"async@npm:2.6.2": - version: 2.6.2 - resolution: "async@npm:2.6.2" - dependencies: - lodash: "npm:^4.17.11" - checksum: a62c111cfb88b8b93a7ee3f7004889d7d9bf6350be355d948f8adbae0b844a7dd26024b3d722946cf510e162da9b6c97dc1be39724e70bbf5b58cc9296e80c97 - languageName: node - linkType: hard - "async@npm:3.2.0": version: 3.2.0 resolution: "async@npm:3.2.0" @@ -20213,14 +22970,7 @@ __metadata: languageName: node linkType: hard -"async@npm:3.2.3": - version: 3.2.3 - resolution: "async@npm:3.2.3" - checksum: 1265841be4f461fb17a8ed1c6ac1d427c57b33fea999cefdcee588f08f218886fd41d48da6943e4dca6a8ccd76d4536b6901a28927588ff671ce0ed61ac415a2 - languageName: node - linkType: hard - -"async@npm:^2.0.1, async@npm:^2.1.2, async@npm:^2.4.0, async@npm:^2.5.0, async@npm:^2.6.1, async@npm:^2.6.4": +"async@npm:^2.6.4": version: 2.6.4 resolution: "async@npm:2.6.4" dependencies: @@ -20289,7 +23039,7 @@ __metadata: languageName: node linkType: hard -"autoprefixer@npm:10.4.18, autoprefixer@npm:^10.4.12, autoprefixer@npm:^10.4.14": +"autoprefixer@npm:10.4.18": version: 10.4.18 resolution: "autoprefixer@npm:10.4.18" dependencies: @@ -20307,6 +23057,31 @@ __metadata: languageName: node linkType: hard +"autoprefixer@npm:^10.4.12, autoprefixer@npm:^10.4.14": + version: 10.4.16 + resolution: "autoprefixer@npm:10.4.16" + dependencies: + browserslist: "npm:^4.21.10" + caniuse-lite: "npm:^1.0.30001538" + fraction.js: "npm:^4.3.6" + normalize-range: "npm:^0.1.2" + picocolors: "npm:^1.0.0" + postcss-value-parser: "npm:^4.2.0" + peerDependencies: + postcss: ^8.1.0 + bin: + autoprefixer: bin/autoprefixer + checksum: 3514a4ae63f1f55006c96eb93acef4a0284d78b640d8f27d3178d40b302576e346619001ca139b4ddc5e7b0c5e66921aa45d8e3752d8d521598119aab8ff4997 + languageName: node + linkType: hard + +"available-typed-arrays@npm:^1.0.5": + version: 1.0.5 + resolution: "available-typed-arrays@npm:1.0.5" + checksum: 4d4d5e86ea0425696f40717882f66a570647b94ac8d273ddc7549a9b61e5da099e149bf431530ccbd776bd74e02039eb8b5edf426e3e2211ee61af16698a9064 + languageName: node + linkType: hard + "available-typed-arrays@npm:^1.0.6, available-typed-arrays@npm:^1.0.7": version: 1.0.7 resolution: "available-typed-arrays@npm:1.0.7" @@ -20366,7 +23141,7 @@ __metadata: languageName: node linkType: hard -"axios@npm:1.6.7, axios@npm:^1.4.0, axios@npm:^1.5.1, axios@npm:^1.6.2, axios@npm:^1.6.7": +"axios@npm:1.6.7, axios@npm:^1.6.7": version: 1.6.7 resolution: "axios@npm:1.6.7" dependencies: @@ -20377,16 +23152,6 @@ __metadata: languageName: node linkType: hard -"axios@npm:^0.18.0": - version: 0.18.1 - resolution: "axios@npm:0.18.1" - dependencies: - follow-redirects: "npm:1.5.10" - is-buffer: "npm:^2.0.2" - checksum: e89e662c4998a2617bd7c34b9444a5d0b2029e3df952e5aa8756c5882e3f1d5a7143d10b5d6435d9276a71a199a3494672d7f1cc72cc8e598224feaf99793ef7 - languageName: node - linkType: hard - "axios@npm:^0.21.1, axios@npm:^0.21.2, axios@npm:^0.21.4": version: 0.21.4 resolution: "axios@npm:0.21.4" @@ -20405,6 +23170,39 @@ __metadata: languageName: node linkType: hard +"axios@npm:^1.4.0": + version: 1.6.4 + resolution: "axios@npm:1.6.4" + dependencies: + follow-redirects: "npm:^1.15.4" + form-data: "npm:^4.0.0" + proxy-from-env: "npm:^1.1.0" + checksum: ed15229f447dd81a5a9e3dac5c84d64f8598145b1102fb6f8c5feb0d02d0dafaef7bf071d2575a7687dd0c014b9da2edbcff59ee9a57b59da941ae673b938919 + languageName: node + linkType: hard + +"axios@npm:^1.5.1": + version: 1.5.1 + resolution: "axios@npm:1.5.1" + dependencies: + follow-redirects: "npm:^1.15.0" + form-data: "npm:^4.0.0" + proxy-from-env: "npm:^1.1.0" + checksum: 67633db5867c789a6edb6e5229884501bef89584a6718220c243fd5a64de4ea7dcdfdf4f8368a672d582db78aaa9f8d7b619d39403b669f451e1242bbd4c7ee2 + languageName: node + linkType: hard + +"axios@npm:^1.6.2": + version: 1.6.6 + resolution: "axios@npm:1.6.6" + dependencies: + follow-redirects: "npm:^1.15.4" + form-data: "npm:^4.0.0" + proxy-from-env: "npm:^1.1.0" + checksum: 499401107e237e6fe91db3f68122a4d83496bc8da325aefc97f1fa4a0624333423262eb55b9e1f9a2ec50804a74bc47377fe15bf689f435e68ade9b0bff5399b + languageName: node + linkType: hard + "axobject-query@npm:^3.2.1": version: 3.2.1 resolution: "axobject-query@npm:3.2.1" @@ -20432,7 +23230,7 @@ __metadata: languageName: node linkType: hard -"babel-core@npm:^6.0.14, babel-core@npm:^6.26.0": +"babel-core@npm:^6.26.0": version: 6.26.3 resolution: "babel-core@npm:6.26.3" dependencies: @@ -20484,133 +23282,6 @@ __metadata: languageName: node linkType: hard -"babel-helper-builder-binary-assignment-operator-visitor@npm:^6.24.1": - version: 6.24.1 - resolution: "babel-helper-builder-binary-assignment-operator-visitor@npm:6.24.1" - dependencies: - babel-helper-explode-assignable-expression: "npm:^6.24.1" - babel-runtime: "npm:^6.22.0" - babel-types: "npm:^6.24.1" - checksum: 6ef49597837d042980e78284df014972daac7f1f1f2635d978bb2d13990304322f5135f27b8f2d6eb8c4c2459b496ec76e21544e26afbb5dec88f53089e17476 - languageName: node - linkType: hard - -"babel-helper-call-delegate@npm:^6.24.1": - version: 6.24.1 - resolution: "babel-helper-call-delegate@npm:6.24.1" - dependencies: - babel-helper-hoist-variables: "npm:^6.24.1" - babel-runtime: "npm:^6.22.0" - babel-traverse: "npm:^6.24.1" - babel-types: "npm:^6.24.1" - checksum: b6277d6e48c10cf416632f6dfbac77bdf6ba8ec4ac2f6359a77d6b731dae941c2a3ec7f35e1eba78aad2a7e0838197731d1ef75af529055096c4cb7d96432c88 - languageName: node - linkType: hard - -"babel-helper-define-map@npm:^6.24.1": - version: 6.26.0 - resolution: "babel-helper-define-map@npm:6.26.0" - dependencies: - babel-helper-function-name: "npm:^6.24.1" - babel-runtime: "npm:^6.26.0" - babel-types: "npm:^6.26.0" - lodash: "npm:^4.17.4" - checksum: b31150f1b41aea68e280fa3d61361b2f8f7cf7386cc175c576b6b81a086f8d5b0d2aa97da1edd785cf8220b57279f19ad7403b6112c1ff237e790bc0ebdd0657 - languageName: node - linkType: hard - -"babel-helper-explode-assignable-expression@npm:^6.24.1": - version: 6.24.1 - resolution: "babel-helper-explode-assignable-expression@npm:6.24.1" - dependencies: - babel-runtime: "npm:^6.22.0" - babel-traverse: "npm:^6.24.1" - babel-types: "npm:^6.24.1" - checksum: 1bafdb51ce3dd95cf25d712d24a0c3c2ae02ff58118c77462f14ede4d8161aaee42c5c759c3d3a3344a5851b8b0f8d16b395713413b8194e1c3264fc5b12b754 - languageName: node - linkType: hard - -"babel-helper-function-name@npm:^6.24.1": - version: 6.24.1 - resolution: "babel-helper-function-name@npm:6.24.1" - dependencies: - babel-helper-get-function-arity: "npm:^6.24.1" - babel-runtime: "npm:^6.22.0" - babel-template: "npm:^6.24.1" - babel-traverse: "npm:^6.24.1" - babel-types: "npm:^6.24.1" - checksum: d651db9e0b29e135877e90e7858405750a684220d22a6f7c78bb163305a1b322cc1c8bea1bc617625c34d92d0927fdbaa49ee46822e2f86b524eced4c88c7ff0 - languageName: node - linkType: hard - -"babel-helper-get-function-arity@npm:^6.24.1": - version: 6.24.1 - resolution: "babel-helper-get-function-arity@npm:6.24.1" - dependencies: - babel-runtime: "npm:^6.22.0" - babel-types: "npm:^6.24.1" - checksum: 37e344d6c5c00b67a3b378490a5d7ba924bab1c2ccd6ecf1b7da96ca679be12d75fbec6279366ae9772e482fb06a7b48293954dd79cbeba9b947e2db67252fbd - languageName: node - linkType: hard - -"babel-helper-hoist-variables@npm:^6.24.1": - version: 6.24.1 - resolution: "babel-helper-hoist-variables@npm:6.24.1" - dependencies: - babel-runtime: "npm:^6.22.0" - babel-types: "npm:^6.24.1" - checksum: 6af1c165d5f0ad192df07daa194d13de77572bd914d2fc9a270d56b93b2705d98eebabf412b1211505535af131fbe95886fcfad8b3a07b4d501c24b9cb8e57fe - languageName: node - linkType: hard - -"babel-helper-optimise-call-expression@npm:^6.24.1": - version: 6.24.1 - resolution: "babel-helper-optimise-call-expression@npm:6.24.1" - dependencies: - babel-runtime: "npm:^6.22.0" - babel-types: "npm:^6.24.1" - checksum: 16e6aba819b473dbf013391f759497df9f57bc7060bc4e5f7f6b60fb03670eb1dec65dd2227601d58f151e9d647e1f676a12466f5e6674379978820fa02c0fbb - languageName: node - linkType: hard - -"babel-helper-regex@npm:^6.24.1": - version: 6.26.0 - resolution: "babel-helper-regex@npm:6.26.0" - dependencies: - babel-runtime: "npm:^6.26.0" - babel-types: "npm:^6.26.0" - lodash: "npm:^4.17.4" - checksum: ab949a4c90ab255abaafd9ec11a4a6dc77dba360875af2bb0822b699c058858773792c1e969c425c396837f61009f30c9ee5ba4b9a8ca87b0779ae1622f89fb3 - languageName: node - linkType: hard - -"babel-helper-remap-async-to-generator@npm:^6.24.1": - version: 6.24.1 - resolution: "babel-helper-remap-async-to-generator@npm:6.24.1" - dependencies: - babel-helper-function-name: "npm:^6.24.1" - babel-runtime: "npm:^6.22.0" - babel-template: "npm:^6.24.1" - babel-traverse: "npm:^6.24.1" - babel-types: "npm:^6.24.1" - checksum: f330943104b61e7f9248d222bd5fe5d3238904ee20643b76197571e14a724723d64a8096b292a60f64788f0efe30176882c376eeebde00657925678e304324f0 - languageName: node - linkType: hard - -"babel-helper-replace-supers@npm:^6.24.1": - version: 6.24.1 - resolution: "babel-helper-replace-supers@npm:6.24.1" - dependencies: - babel-helper-optimise-call-expression: "npm:^6.24.1" - babel-messages: "npm:^6.23.0" - babel-runtime: "npm:^6.22.0" - babel-template: "npm:^6.24.1" - babel-traverse: "npm:^6.24.1" - babel-types: "npm:^6.24.1" - checksum: 793cd3640b8d1c2cd49e76d8692f7679c95bdc099f0a3159cb4f202f404ad8b56805c124786fc6d2134275cd9dbfd3bf33e973b05938c715861226c8beccde97 - languageName: node - linkType: hard - "babel-helpers@npm:^6.24.1": version: 6.24.1 resolution: "babel-helpers@npm:6.24.1" @@ -20643,15 +23314,6 @@ __metadata: languageName: node linkType: hard -"babel-plugin-check-es2015-constants@npm:^6.22.0": - version: 6.22.0 - resolution: "babel-plugin-check-es2015-constants@npm:6.22.0" - dependencies: - babel-runtime: "npm:^6.22.0" - checksum: b78bd5d056460940e87201c0a1fcb8149c432d133f57629a48dc6c781e82e3f13694c6149ec8681206d9c55c7684df176b461f21bd6578f5f4efcf3d90bf77a1 - languageName: node - linkType: hard - "babel-plugin-dynamic-import-node@npm:^2.3.3": version: 2.3.3 resolution: "babel-plugin-dynamic-import-node@npm:2.3.3" @@ -20685,7 +23347,7 @@ __metadata: languageName: node linkType: hard -"babel-plugin-polyfill-corejs2@npm:0.4.8, babel-plugin-polyfill-corejs2@npm:^0.4.3, babel-plugin-polyfill-corejs2@npm:^0.4.4, babel-plugin-polyfill-corejs2@npm:^0.4.8": +"babel-plugin-polyfill-corejs2@npm:0.4.8": version: 0.4.8 resolution: "babel-plugin-polyfill-corejs2@npm:0.4.8" dependencies: @@ -20711,6 +23373,45 @@ __metadata: languageName: node linkType: hard +"babel-plugin-polyfill-corejs2@npm:^0.4.3, babel-plugin-polyfill-corejs2@npm:^0.4.7": + version: 0.4.7 + resolution: "babel-plugin-polyfill-corejs2@npm:0.4.7" + dependencies: + "@babel/compat-data": "npm:^7.22.6" + "@babel/helper-define-polyfill-provider": "npm:^0.4.4" + semver: "npm:^6.3.1" + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: 3b61cdb275592f61b29d582ee8c738a13d9897c5dd201cddb0610b381f3ae139ebc988ac96f72978fc143c3d50c15d46618df865822e282c8e76c236e7378b63 + languageName: node + linkType: hard + +"babel-plugin-polyfill-corejs2@npm:^0.4.4": + version: 0.4.5 + resolution: "babel-plugin-polyfill-corejs2@npm:0.4.5" + dependencies: + "@babel/compat-data": "npm:^7.22.6" + "@babel/helper-define-polyfill-provider": "npm:^0.4.2" + semver: "npm:^6.3.1" + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: 75552d49f7d874e2e9a082d19e3ce9cc95998abadbdc589e5af7de64f5088059863eb194989cfcfefc99623925c46e273bd49333f6aae58f6fff59696279132b + languageName: node + linkType: hard + +"babel-plugin-polyfill-corejs2@npm:^0.4.6": + version: 0.4.6 + resolution: "babel-plugin-polyfill-corejs2@npm:0.4.6" + dependencies: + "@babel/compat-data": "npm:^7.22.6" + "@babel/helper-define-polyfill-provider": "npm:^0.4.3" + semver: "npm:^6.3.1" + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: 736b1bb8e570be029f941a374c769972af870c96b5c324a5387c6b6994aabdad045ce560c530038c8626f02ec70f711ad7445f2572c32ba81fa0e13402cc23f8 + languageName: node + linkType: hard + "babel-plugin-polyfill-corejs3@npm:^0.6.0": version: 0.6.0 resolution: "babel-plugin-polyfill-corejs3@npm:0.6.0" @@ -20723,7 +23424,7 @@ __metadata: languageName: node linkType: hard -"babel-plugin-polyfill-corejs3@npm:^0.8.1, babel-plugin-polyfill-corejs3@npm:^0.8.2": +"babel-plugin-polyfill-corejs3@npm:^0.8.1, babel-plugin-polyfill-corejs3@npm:^0.8.7": version: 0.8.7 resolution: "babel-plugin-polyfill-corejs3@npm:0.8.7" dependencies: @@ -20735,15 +23436,27 @@ __metadata: languageName: node linkType: hard -"babel-plugin-polyfill-corejs3@npm:^0.9.0": - version: 0.9.0 - resolution: "babel-plugin-polyfill-corejs3@npm:0.9.0" +"babel-plugin-polyfill-corejs3@npm:^0.8.2": + version: 0.8.3 + resolution: "babel-plugin-polyfill-corejs3@npm:0.8.3" dependencies: - "@babel/helper-define-polyfill-provider": "npm:^0.5.0" - core-js-compat: "npm:^3.34.0" + "@babel/helper-define-polyfill-provider": "npm:^0.4.2" + core-js-compat: "npm:^3.31.0" + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: 95e57300341c52b4954b8c8d9d7dd6f9a5bd26f3ac6f67180f146398e5ea5ec5a8496a79d222e147a3e61b698ce4176677a194397ac9887bfa8072d2d7e4e29c + languageName: node + linkType: hard + +"babel-plugin-polyfill-corejs3@npm:^0.8.5": + version: 0.8.6 + resolution: "babel-plugin-polyfill-corejs3@npm:0.8.6" + dependencies: + "@babel/helper-define-polyfill-provider": "npm:^0.4.3" + core-js-compat: "npm:^3.33.1" peerDependencies: "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: efdf9ba82e7848a2c66e0522adf10ac1646b16f271a9006b61a22f976b849de22a07c54c8826887114842ccd20cc9a4617b61e8e0789227a74378ab508e715cd + checksum: 2d9c926fda31d800dea7843d82a41b8914a8aaa67d7fb293dd2594e82cd6ce4c9fc67c9d469587b7c14ba38f5ab5689bdc9c21c268888598f464fe77a5f4c964 languageName: node linkType: hard @@ -20758,42 +23471,43 @@ __metadata: languageName: node linkType: hard -"babel-plugin-polyfill-regenerator@npm:^0.5.0, babel-plugin-polyfill-regenerator@npm:^0.5.1, babel-plugin-polyfill-regenerator@npm:^0.5.5": - version: 0.5.5 - resolution: "babel-plugin-polyfill-regenerator@npm:0.5.5" +"babel-plugin-polyfill-regenerator@npm:^0.5.0, babel-plugin-polyfill-regenerator@npm:^0.5.4": + version: 0.5.4 + resolution: "babel-plugin-polyfill-regenerator@npm:0.5.4" dependencies: - "@babel/helper-define-polyfill-provider": "npm:^0.5.0" + "@babel/helper-define-polyfill-provider": "npm:^0.4.4" peerDependencies: "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: 3a9b4828673b23cd648dcfb571eadcd9d3fadfca0361d0a7c6feeb5a30474e92faaa49f067a6e1c05e49b6a09812879992028ff3ef3446229ff132d6e1de7eb6 + checksum: 461b735c6c0eca3c7b4434d14bfa98c2ab80f00e2bdc1c69eb46d1d300092a9786d76bbd3ee55e26d2d1a2380c14592d8d638e271dfd2a2b78a9eacffa3645d1 languageName: node linkType: hard -"babel-plugin-require-context-hook@npm:1.0.0": - version: 1.0.0 - resolution: "babel-plugin-require-context-hook@npm:1.0.0" - checksum: ae5d2a5c6e96a9e868c2de322adfe5d9274b87edf4a4a411d6b3c52dec7923b120efd3385908a49477cabbc9ce490667efb68c3220fcc33f405bd0827e2b3be4 - languageName: node - linkType: hard - -"babel-plugin-syntax-async-functions@npm:^6.8.0": - version: 6.13.0 - resolution: "babel-plugin-syntax-async-functions@npm:6.13.0" - checksum: e982d9756869fa83eb6a4502490a90b0d31e8a41e2ee582045934f022ac8ff5fa6a3386366976fab3a391d5a7ab8ea5f9da623f35ed8ab328b8ab6d9b2feb1d3 +"babel-plugin-polyfill-regenerator@npm:^0.5.1": + version: 0.5.2 + resolution: "babel-plugin-polyfill-regenerator@npm:0.5.2" + dependencies: + "@babel/helper-define-polyfill-provider": "npm:^0.4.2" + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: d962200f604016a9a09bc9b4aaf60a3db7af876bb65bcefaeac04d44ac9d9ec4037cf24ce117760cc141d7046b6394c7eb0320ba9665cb4a2ee64df2be187c93 languageName: node linkType: hard -"babel-plugin-syntax-exponentiation-operator@npm:^6.8.0": - version: 6.13.0 - resolution: "babel-plugin-syntax-exponentiation-operator@npm:6.13.0" - checksum: cbcb3aeae7005240325f72d55c3c90575033123e8a1ddfa6bf9eac4ee7e246c2a23f5b5ab1144879590d947a3ed1d88838169d125e5d7c4f53678526482b020e +"babel-plugin-polyfill-regenerator@npm:^0.5.3": + version: 0.5.3 + resolution: "babel-plugin-polyfill-regenerator@npm:0.5.3" + dependencies: + "@babel/helper-define-polyfill-provider": "npm:^0.4.3" + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: 2bb546582cda1870d19e646a7183baeb2cccd56e0ef3e4eaeabd28e120daf17cb87399194a9ccdcf32506bcaa68d23e73440fc8ab990a7a0f8c5a77c12d5d4bc languageName: node linkType: hard -"babel-plugin-syntax-trailing-function-commas@npm:^6.22.0": - version: 6.22.0 - resolution: "babel-plugin-syntax-trailing-function-commas@npm:6.22.0" - checksum: d8b9039ded835bb128e8e14eeeb6e0ac2a876b85250924bdc3a8dc2a6984d3bfade4de04d40fb15ea04a86d561ac280ae0d7306d7d4ef7a8c52c43b6a23909c6 +"babel-plugin-require-context-hook@npm:1.0.0": + version: 1.0.0 + resolution: "babel-plugin-require-context-hook@npm:1.0.0" + checksum: ae5d2a5c6e96a9e868c2de322adfe5d9274b87edf4a4a411d6b3c52dec7923b120efd3385908a49477cabbc9ce490667efb68c3220fcc33f405bd0827e2b3be4 languageName: node linkType: hard @@ -20804,262 +23518,6 @@ __metadata: languageName: node linkType: hard -"babel-plugin-transform-async-to-generator@npm:^6.22.0": - version: 6.24.1 - resolution: "babel-plugin-transform-async-to-generator@npm:6.24.1" - dependencies: - babel-helper-remap-async-to-generator: "npm:^6.24.1" - babel-plugin-syntax-async-functions: "npm:^6.8.0" - babel-runtime: "npm:^6.22.0" - checksum: ffe8b4b2ed6db1f413ede385bd1a36f39e02a64ed79ce02779440049af75215c98f8debdc70eb01430bfd889f792682b0136576fe966f7f9e1b30e2a54695a8d - languageName: node - linkType: hard - -"babel-plugin-transform-es2015-arrow-functions@npm:^6.22.0": - version: 6.22.0 - resolution: "babel-plugin-transform-es2015-arrow-functions@npm:6.22.0" - dependencies: - babel-runtime: "npm:^6.22.0" - checksum: 746e2be0fed20771c07f0984ba79ef0bab37d6e98434267ec96cef57272014fe53a180bfb9047bf69ed149d367a2c97baad54d6057531cd037684f371aab2333 - languageName: node - linkType: hard - -"babel-plugin-transform-es2015-block-scoped-functions@npm:^6.22.0": - version: 6.22.0 - resolution: "babel-plugin-transform-es2015-block-scoped-functions@npm:6.22.0" - dependencies: - babel-runtime: "npm:^6.22.0" - checksum: f251611f723d94b4068d2a873a2783e019bd81bd7144cfdbcfc31ef166f4d82fa2f1efba64342ba2630dab93a2b12284067725c0aa08315712419a2bc3b92a75 - languageName: node - linkType: hard - -"babel-plugin-transform-es2015-block-scoping@npm:^6.23.0": - version: 6.26.0 - resolution: "babel-plugin-transform-es2015-block-scoping@npm:6.26.0" - dependencies: - babel-runtime: "npm:^6.26.0" - babel-template: "npm:^6.26.0" - babel-traverse: "npm:^6.26.0" - babel-types: "npm:^6.26.0" - lodash: "npm:^4.17.4" - checksum: 9985e90e71b42d8d343a34c277f73fd990e2b39cee1181bdb6593adafff376ebd207c9814031dcb0068decda2a4aead8bb46f81dbd69164397de445ce25960c9 - languageName: node - linkType: hard - -"babel-plugin-transform-es2015-classes@npm:^6.23.0": - version: 6.24.1 - resolution: "babel-plugin-transform-es2015-classes@npm:6.24.1" - dependencies: - babel-helper-define-map: "npm:^6.24.1" - babel-helper-function-name: "npm:^6.24.1" - babel-helper-optimise-call-expression: "npm:^6.24.1" - babel-helper-replace-supers: "npm:^6.24.1" - babel-messages: "npm:^6.23.0" - babel-runtime: "npm:^6.22.0" - babel-template: "npm:^6.24.1" - babel-traverse: "npm:^6.24.1" - babel-types: "npm:^6.24.1" - checksum: 38c17bfd76cf1ff1981d2b4343fd80de3d8bea12d81fc97d909a9d3a6e09dc09d198224f0cd9e5b0aefef83014ecec219098cab8e3a162f025d44c38931ad2a8 - languageName: node - linkType: hard - -"babel-plugin-transform-es2015-computed-properties@npm:^6.22.0": - version: 6.24.1 - resolution: "babel-plugin-transform-es2015-computed-properties@npm:6.24.1" - dependencies: - babel-runtime: "npm:^6.22.0" - babel-template: "npm:^6.24.1" - checksum: e07870775e569990fbf1d09d3149f4c76ca004fff39dfc003134522557ab0411f1b80d32f5af873f174c534dab4d0e84a58d820af27149a88d3850068041875b - languageName: node - linkType: hard - -"babel-plugin-transform-es2015-destructuring@npm:^6.23.0": - version: 6.23.0 - resolution: "babel-plugin-transform-es2015-destructuring@npm:6.23.0" - dependencies: - babel-runtime: "npm:^6.22.0" - checksum: e8b0f9a9640e4da6e65227fa98476cb608bd536e182d0abd2a47ca43f984a4ec433c0e7e6973b6f0678002a0cf159a9b89bdde43e67d76a48c0ad65f1f15894f - languageName: node - linkType: hard - -"babel-plugin-transform-es2015-duplicate-keys@npm:^6.22.0": - version: 6.24.1 - resolution: "babel-plugin-transform-es2015-duplicate-keys@npm:6.24.1" - dependencies: - babel-runtime: "npm:^6.22.0" - babel-types: "npm:^6.24.1" - checksum: 756a7a13517c3e80c8312137b9872b9bc32fbfbb905e9f1e45bf321e2b464d0e6a6e6deca22c61b62377225bd8136b73580897cccb394995d6e00bc8ce882ba4 - languageName: node - linkType: hard - -"babel-plugin-transform-es2015-for-of@npm:^6.23.0": - version: 6.23.0 - resolution: "babel-plugin-transform-es2015-for-of@npm:6.23.0" - dependencies: - babel-runtime: "npm:^6.22.0" - checksum: 0124e320c32b25de84ddaba951a6f0ad031fa5019de54de32bd317d2a97b3f967026008f32e8c88728330c1cce7c4f1d0ecb15007020d50bd5ca1438a882e205 - languageName: node - linkType: hard - -"babel-plugin-transform-es2015-function-name@npm:^6.22.0": - version: 6.24.1 - resolution: "babel-plugin-transform-es2015-function-name@npm:6.24.1" - dependencies: - babel-helper-function-name: "npm:^6.24.1" - babel-runtime: "npm:^6.22.0" - babel-types: "npm:^6.24.1" - checksum: 629ecd824d53ec973a3ef85e74d9fd8c710203084ca2f7ac833879ddfa3b83a28f0270fe2ee5f3b8c078bb4b3e4b843173a646a7cd4abc49e8c1c563d31fb711 - languageName: node - linkType: hard - -"babel-plugin-transform-es2015-literals@npm:^6.22.0": - version: 6.22.0 - resolution: "babel-plugin-transform-es2015-literals@npm:6.22.0" - dependencies: - babel-runtime: "npm:^6.22.0" - checksum: 40e270580a0236990f2555f5dc7ae24b4db9f4709ca455ed1a6724b0078592482274be7448579b14122bd06481641a38e7b2e48d0b49b8c81c88e154a26865b4 - languageName: node - linkType: hard - -"babel-plugin-transform-es2015-modules-amd@npm:^6.22.0, babel-plugin-transform-es2015-modules-amd@npm:^6.24.1": - version: 6.24.1 - resolution: "babel-plugin-transform-es2015-modules-amd@npm:6.24.1" - dependencies: - babel-plugin-transform-es2015-modules-commonjs: "npm:^6.24.1" - babel-runtime: "npm:^6.22.0" - babel-template: "npm:^6.24.1" - checksum: 084c7a1ef3bd0b2b9f4851b27cfb65f8ea1408349af05b4d88f994c23844a0754abfa4799bbc5f3f0ec94232b3a54a2e46d7f1dff1bdd40fa66a46f645197dfa - languageName: node - linkType: hard - -"babel-plugin-transform-es2015-modules-commonjs@npm:^6.23.0, babel-plugin-transform-es2015-modules-commonjs@npm:^6.24.1": - version: 6.26.2 - resolution: "babel-plugin-transform-es2015-modules-commonjs@npm:6.26.2" - dependencies: - babel-plugin-transform-strict-mode: "npm:^6.24.1" - babel-runtime: "npm:^6.26.0" - babel-template: "npm:^6.26.0" - babel-types: "npm:^6.26.0" - checksum: 9aa6926507d64da83083c7727c24646f13170f9f26a18edccae517792dd815c583910032600fb02cf7b11ab508a69ccafa6c9d67b8dae250670dfa78393e04f8 - languageName: node - linkType: hard - -"babel-plugin-transform-es2015-modules-systemjs@npm:^6.23.0": - version: 6.24.1 - resolution: "babel-plugin-transform-es2015-modules-systemjs@npm:6.24.1" - dependencies: - babel-helper-hoist-variables: "npm:^6.24.1" - babel-runtime: "npm:^6.22.0" - babel-template: "npm:^6.24.1" - checksum: b98ec9b84904fbc11f0530b674dcd51268028e871f5eccc2103d2d92625d76925a79446066dfd091005a384bf9217b9440d06d85d0a9085a85de155305d4e85c - languageName: node - linkType: hard - -"babel-plugin-transform-es2015-modules-umd@npm:^6.23.0": - version: 6.24.1 - resolution: "babel-plugin-transform-es2015-modules-umd@npm:6.24.1" - dependencies: - babel-plugin-transform-es2015-modules-amd: "npm:^6.24.1" - babel-runtime: "npm:^6.22.0" - babel-template: "npm:^6.24.1" - checksum: 735857b9f2ad0c41ceda31a1594fe2a063025f4428f9e243885a437b5bd415aca445a5e8495ff34b7120617735b1c3a2158033f0be23f1f5a90e655fff742a01 - languageName: node - linkType: hard - -"babel-plugin-transform-es2015-object-super@npm:^6.22.0": - version: 6.24.1 - resolution: "babel-plugin-transform-es2015-object-super@npm:6.24.1" - dependencies: - babel-helper-replace-supers: "npm:^6.24.1" - babel-runtime: "npm:^6.22.0" - checksum: 97b2968f699ac94cb55f4f1e7ea53dc9e4264ec99cab826f40f181da9f6db5980cd8b4985f05c7b6f1e19fbc31681e6e63894dfc5ecf4b3a673d736c4ef0f9db - languageName: node - linkType: hard - -"babel-plugin-transform-es2015-parameters@npm:^6.23.0": - version: 6.24.1 - resolution: "babel-plugin-transform-es2015-parameters@npm:6.24.1" - dependencies: - babel-helper-call-delegate: "npm:^6.24.1" - babel-helper-get-function-arity: "npm:^6.24.1" - babel-runtime: "npm:^6.22.0" - babel-template: "npm:^6.24.1" - babel-traverse: "npm:^6.24.1" - babel-types: "npm:^6.24.1" - checksum: e88c38c51865b3d842c142ca247dfac601a224495e48c813d26e58cb6dc44e2530d54e5d7a179a38f8032979500b538b82c4f3e6c646440c49711c5e351f35ea - languageName: node - linkType: hard - -"babel-plugin-transform-es2015-shorthand-properties@npm:^6.22.0": - version: 6.24.1 - resolution: "babel-plugin-transform-es2015-shorthand-properties@npm:6.24.1" - dependencies: - babel-runtime: "npm:^6.22.0" - babel-types: "npm:^6.24.1" - checksum: 9302c5de158a28432e932501a783560094c624c3659f4e0a472b6b2e9d6e8ab2634f82ef74d3e75363d46ccff6aad119267dbc34f67464c70625e24a651ad9e5 - languageName: node - linkType: hard - -"babel-plugin-transform-es2015-spread@npm:^6.22.0": - version: 6.22.0 - resolution: "babel-plugin-transform-es2015-spread@npm:6.22.0" - dependencies: - babel-runtime: "npm:^6.22.0" - checksum: 8694a8a7802d905503194ab81c155354b36d39fc819ad2148f83146518dd37d2c6926c8568712f5aa890169afc9353fd4bcc49397959c6dc9da3480b449c0ae9 - languageName: node - linkType: hard - -"babel-plugin-transform-es2015-sticky-regex@npm:^6.22.0": - version: 6.24.1 - resolution: "babel-plugin-transform-es2015-sticky-regex@npm:6.24.1" - dependencies: - babel-helper-regex: "npm:^6.24.1" - babel-runtime: "npm:^6.22.0" - babel-types: "npm:^6.24.1" - checksum: d9c45401caf0d74779a1170e886976d4c865b7de2e90dfffc7557481b9e73b6e37e9f1028aa07b813896c4df88f4d7e89968249a74547c7875e6c499c90c801d - languageName: node - linkType: hard - -"babel-plugin-transform-es2015-template-literals@npm:^6.22.0": - version: 6.22.0 - resolution: "babel-plugin-transform-es2015-template-literals@npm:6.22.0" - dependencies: - babel-runtime: "npm:^6.22.0" - checksum: 4fad2b7b383a2e784858ee7bf837419ee8ff9602afe218e1472f8c33a0c008f01d06f23ff2f2322fb23e1ed17e37237a818575fe88ecc5417d85331973b0ea4d - languageName: node - linkType: hard - -"babel-plugin-transform-es2015-typeof-symbol@npm:^6.23.0": - version: 6.23.0 - resolution: "babel-plugin-transform-es2015-typeof-symbol@npm:6.23.0" - dependencies: - babel-runtime: "npm:^6.22.0" - checksum: 68a1609c6abcddf5f138c56bafcd9fad7c6b3b404fe40910148ab70eb21d6c7807a343a64eb81ce45daf4b70c384c528c55fad45e0d581e4b09efa4d574a6a1b - languageName: node - linkType: hard - -"babel-plugin-transform-es2015-unicode-regex@npm:^6.22.0": - version: 6.24.1 - resolution: "babel-plugin-transform-es2015-unicode-regex@npm:6.24.1" - dependencies: - babel-helper-regex: "npm:^6.24.1" - babel-runtime: "npm:^6.22.0" - regexpu-core: "npm:^2.0.0" - checksum: 739ddb02e5f77904f83ea45323c9a636e3aed34b2a49c7c68208b5f2834eecb6b655e772f870f16a7aaf09ac8219f754ad69d61741d088f5b681d13cda69265d - languageName: node - linkType: hard - -"babel-plugin-transform-exponentiation-operator@npm:^6.22.0": - version: 6.24.1 - resolution: "babel-plugin-transform-exponentiation-operator@npm:6.24.1" - dependencies: - babel-helper-builder-binary-assignment-operator-visitor: "npm:^6.24.1" - babel-plugin-syntax-exponentiation-operator: "npm:^6.8.0" - babel-runtime: "npm:^6.22.0" - checksum: 533ad53ba2cd6ff3c0f751563e1beea429c620038dc2efeeb8348ab4752ebcc95d1521857abfd08047400f1921b2d4df5e0cd266e65ddbe4c3edc58b9ad6fd3c - languageName: node - linkType: hard - "babel-plugin-transform-react-remove-prop-types@npm:^0.4.24": version: 0.4.24 resolution: "babel-plugin-transform-react-remove-prop-types@npm:0.4.24" @@ -21067,25 +23525,6 @@ __metadata: languageName: node linkType: hard -"babel-plugin-transform-regenerator@npm:^6.22.0": - version: 6.26.0 - resolution: "babel-plugin-transform-regenerator@npm:6.26.0" - dependencies: - regenerator-transform: "npm:^0.10.0" - checksum: 41a51d8f692bf4a5cbd705fa70f3cb6abebae66d9ba3dccfb5921da262f8c30f630e1fe9f7b132e29b96fe0d99385a801f6aa204278c5bd0af4284f7f93a665a - languageName: node - linkType: hard - -"babel-plugin-transform-strict-mode@npm:^6.24.1": - version: 6.24.1 - resolution: "babel-plugin-transform-strict-mode@npm:6.24.1" - dependencies: - babel-runtime: "npm:^6.22.0" - babel-types: "npm:^6.24.1" - checksum: 32d70ce9d8c8918a6a840e46df03dfe1e265eb9b25df5a800fedb5065ef1b4b5f24d7c62d92fca0e374db8b0b9b6f84e68edd02ad21883d48f608583ec29f638 - languageName: node - linkType: hard - "babel-plugin-wildcard@npm:7.0.0": version: 7.0.0 resolution: "babel-plugin-wildcard@npm:7.0.0" @@ -21108,44 +23547,6 @@ __metadata: languageName: node linkType: hard -"babel-preset-env@npm:^1.7.0": - version: 1.7.0 - resolution: "babel-preset-env@npm:1.7.0" - dependencies: - babel-plugin-check-es2015-constants: "npm:^6.22.0" - babel-plugin-syntax-trailing-function-commas: "npm:^6.22.0" - babel-plugin-transform-async-to-generator: "npm:^6.22.0" - babel-plugin-transform-es2015-arrow-functions: "npm:^6.22.0" - babel-plugin-transform-es2015-block-scoped-functions: "npm:^6.22.0" - babel-plugin-transform-es2015-block-scoping: "npm:^6.23.0" - babel-plugin-transform-es2015-classes: "npm:^6.23.0" - babel-plugin-transform-es2015-computed-properties: "npm:^6.22.0" - babel-plugin-transform-es2015-destructuring: "npm:^6.23.0" - babel-plugin-transform-es2015-duplicate-keys: "npm:^6.22.0" - babel-plugin-transform-es2015-for-of: "npm:^6.23.0" - babel-plugin-transform-es2015-function-name: "npm:^6.22.0" - babel-plugin-transform-es2015-literals: "npm:^6.22.0" - babel-plugin-transform-es2015-modules-amd: "npm:^6.22.0" - babel-plugin-transform-es2015-modules-commonjs: "npm:^6.23.0" - babel-plugin-transform-es2015-modules-systemjs: "npm:^6.23.0" - babel-plugin-transform-es2015-modules-umd: "npm:^6.23.0" - babel-plugin-transform-es2015-object-super: "npm:^6.22.0" - babel-plugin-transform-es2015-parameters: "npm:^6.23.0" - babel-plugin-transform-es2015-shorthand-properties: "npm:^6.22.0" - babel-plugin-transform-es2015-spread: "npm:^6.22.0" - babel-plugin-transform-es2015-sticky-regex: "npm:^6.22.0" - babel-plugin-transform-es2015-template-literals: "npm:^6.22.0" - babel-plugin-transform-es2015-typeof-symbol: "npm:^6.23.0" - babel-plugin-transform-es2015-unicode-regex: "npm:^6.22.0" - babel-plugin-transform-exponentiation-operator: "npm:^6.22.0" - babel-plugin-transform-regenerator: "npm:^6.22.0" - browserslist: "npm:^3.2.6" - invariant: "npm:^2.2.2" - semver: "npm:^5.3.0" - checksum: 49428e17e085c7e357a6410c9b091988d67edc67ff7d653d90e6d1ea60362b5ef3ed14e1a8b09125392ff10d89f13e6ea01c9287674ffbca1783be645f452547 - languageName: node - linkType: hard - "babel-preset-fbjs@npm:^3.4.0": version: 3.4.0 resolution: "babel-preset-fbjs@npm:3.4.0" @@ -21222,7 +23623,7 @@ __metadata: languageName: node linkType: hard -"babel-runtime@npm:^6.18.0, babel-runtime@npm:^6.22.0, babel-runtime@npm:^6.26.0": +"babel-runtime@npm:^6.22.0, babel-runtime@npm:^6.26.0": version: 6.26.0 resolution: "babel-runtime@npm:6.26.0" dependencies: @@ -21245,7 +23646,7 @@ __metadata: languageName: node linkType: hard -"babel-traverse@npm:^6.24.1, babel-traverse@npm:^6.26.0": +"babel-traverse@npm:^6.26.0": version: 6.26.0 resolution: "babel-traverse@npm:6.26.0" dependencies: @@ -21262,7 +23663,7 @@ __metadata: languageName: node linkType: hard -"babel-types@npm:^6.19.0, babel-types@npm:^6.24.1, babel-types@npm:^6.26.0": +"babel-types@npm:^6.26.0": version: 6.26.0 resolution: "babel-types@npm:6.26.0" dependencies: @@ -21274,16 +23675,6 @@ __metadata: languageName: node linkType: hard -"babelify@npm:^7.3.0": - version: 7.3.0 - resolution: "babelify@npm:7.3.0" - dependencies: - babel-core: "npm:^6.0.14" - object-assign: "npm:^4.0.0" - checksum: bbff17f8809f81a6feb1c2a1872f5564d63561513c13712247b9784590ef9f285f7fa0fcca0c58d875f2470ec50404e25c5db5f1d1d9642723e8727233c2845a - languageName: node - linkType: hard - "babylon@npm:^6.18.0": version: 6.18.0 resolution: "babylon@npm:6.18.0" @@ -21293,7 +23684,7 @@ __metadata: languageName: node linkType: hard -"backoff@npm:2.5.0, backoff@npm:^2.5.0": +"backoff@npm:2.5.0": version: 2.5.0 resolution: "backoff@npm:2.5.0" dependencies: @@ -21391,7 +23782,7 @@ __metadata: languageName: node linkType: hard -"bech32@npm:1.1.4, bech32@npm:^1.1.3": +"bech32@npm:1.1.4": version: 1.1.4 resolution: "bech32@npm:1.1.4" checksum: 63ff37c0ce43be914c685ce89700bba1589c319af0dac1ea04f51b33d0e5ecfd40d14c24f527350b94f0a4e236385373bb9122ec276410f354ddcdbf29ca13f4 @@ -21438,13 +23829,6 @@ __metadata: languageName: node linkType: hard -"big-integer@npm:1.6.36": - version: 1.6.36 - resolution: "big-integer@npm:1.6.36" - checksum: 961fdd96c847765907e38759053ef4f9e66646739f2e6561087639dce7d1707db180dcb878761bb812a265af600f2d57cc31f5a57645dd790e4bd52c5d28382a - languageName: node - linkType: hard - "big-integer@npm:^1.6.44": version: 1.6.52 resolution: "big-integer@npm:1.6.52" @@ -21459,13 +23843,6 @@ __metadata: languageName: node linkType: hard -"big.js@npm:^6.0.3": - version: 6.2.1 - resolution: "big.js@npm:6.2.1" - checksum: 1d4b621451de712cab20464a26f22b2eee5e7daf0ee88c49dfbfa76061ec37cff2257751e8c3fc183c231bcffac2f006e33af930d8f49b03c758890080b76ada - languageName: node - linkType: hard - "bigint-buffer@npm:^1.1.5": version: 1.1.5 resolution: "bigint-buffer@npm:1.1.5" @@ -21476,38 +23853,24 @@ __metadata: languageName: node linkType: hard -"bigint-crypto-utils@npm:^3.2.2": +"bigint-crypto-utils@npm:^3.0.23, bigint-crypto-utils@npm:^3.2.2": version: 3.3.0 resolution: "bigint-crypto-utils@npm:3.3.0" checksum: 94d10ac9db66b093c7c2beace833ac167b57188c8ac784a7e207ea4f585cf9c2066e5d1f5a1b26cb6ccb7f7be8e38687c79f049b87df07cfdc7bd484aee2390d languageName: node linkType: hard -"bignumber.js@npm:*, bignumber.js@npm:9.1.2, bignumber.js@npm:^9.0.0, bignumber.js@npm:^9.0.1, bignumber.js@npm:^9.0.2": - version: 9.1.2 - resolution: "bignumber.js@npm:9.1.2" - checksum: d89b8800a987225d2c00dcbf8a69dc08e92aa0880157c851c287b307d31ceb2fc2acb0c62c3e3a3d42b6c5fcae9b004035f13eb4386e56d529d7edac18d5c9d8 - languageName: node - linkType: hard - -"bignumber.js@npm:9.0.0": - version: 9.0.0 - resolution: "bignumber.js@npm:9.0.0" - checksum: 7406d0d11dfdd2183e19be745f0d5913e3773ded5fbca2a310221e719f15fd8ec6b8d7991031a6081a6276a8e12e27d58ead60f73dcbb9d697ebe9e2dd0ad7e0 - languageName: node - linkType: hard - -"bignumber.js@npm:9.0.1": - version: 9.0.1 - resolution: "bignumber.js@npm:9.0.1" - checksum: d3256ebf9ebc1b45bc61436d8cc3ad68272ff3e0dd289f8fcf375dd6d0cbe2ff0b5afd787e2d0f3f0bb7ac975ac8b223bd86f24b85d44a0a9744d4706fb3eb3b +"bignumber.js@npm:^9.0.0": + version: 9.1.1 + resolution: "bignumber.js@npm:9.1.1" + checksum: 1f771bfa883a5863626e1e4274042065d5f975651eda556ecd28560f287c065004681226f826380792a22be116d7666499c3e3300b1a48b2a7bff66e8dde7aa8 languageName: node linkType: hard -"bignumber.js@npm:^7.2.0, bignumber.js@npm:^7.2.1": - version: 7.2.1 - resolution: "bignumber.js@npm:7.2.1" - checksum: 9bfd02d93cba7d61607b9d52ffb3176844af5712f7f6a0530350daf7852894215fbaa8e6090a9fc841b297b39d475abb90451d3533bc939d1e96a4bfe293e226 +"bignumber.js@npm:^9.0.2": + version: 9.1.2 + resolution: "bignumber.js@npm:9.1.2" + checksum: d89b8800a987225d2c00dcbf8a69dc08e92aa0880157c851c287b307d31ceb2fc2acb0c62c3e3a3d42b6c5fcae9b004035f13eb4386e56d529d7edac18d5c9d8 languageName: node linkType: hard @@ -21563,19 +23926,6 @@ __metadata: languageName: node linkType: hard -"bip39@npm:2.5.0": - version: 2.5.0 - resolution: "bip39@npm:2.5.0" - dependencies: - create-hash: "npm:^1.1.0" - pbkdf2: "npm:^3.0.9" - randombytes: "npm:^2.0.1" - safe-buffer: "npm:^5.0.1" - unorm: "npm:^1.3.3" - checksum: 8c9f4280689492309607384a6f9799c81f0590f3a89cfd20bb4fb7653db141d4e63acdd01ae88c772c528249460fb70b7c777f45df5aa72bca7a9df890e08234 - languageName: node - linkType: hard - "bl@npm:^1.0.0": version: 1.2.3 resolution: "bl@npm:1.2.3" @@ -21640,7 +23990,7 @@ __metadata: languageName: node linkType: hard -"bluebird@npm:^3.4.7, bluebird@npm:^3.5.0, bluebird@npm:^3.5.2, bluebird@npm:^3.7.2": +"bluebird@npm:^3.5.0, bluebird@npm:^3.7.2": version: 3.7.2 resolution: "bluebird@npm:3.7.2" checksum: 007c7bad22c5d799c8dd49c85b47d012a1fe3045be57447721e6afbd1d5be43237af1db62e26cb9b0d9ba812d2e4ca3bac82f6d7e016b6b88de06ee25ceb96e7 @@ -21668,14 +24018,14 @@ __metadata: languageName: node linkType: hard -"bn.js@npm:^4.0.0, bn.js@npm:^4.1.0, bn.js@npm:^4.10.0, bn.js@npm:^4.11.0, bn.js@npm:^4.11.6, bn.js@npm:^4.11.8, bn.js@npm:^4.11.9, bn.js@npm:^4.4.0, bn.js@npm:^4.8.0": +"bn.js@npm:^4.0.0, bn.js@npm:^4.1.0, bn.js@npm:^4.11.0, bn.js@npm:^4.11.6, bn.js@npm:^4.11.8, bn.js@npm:^4.11.9": version: 4.12.0 resolution: "bn.js@npm:4.12.0" checksum: 10f8db196d3da5adfc3207d35d0a42aa29033eb33685f20ba2c36cadfe2de63dad05df0a20ab5aae01b418d1c4b3d4d205273085262fa020d17e93ff32b67527 languageName: node linkType: hard -"bn.js@npm:^5.0.0, bn.js@npm:^5.1.1, bn.js@npm:^5.1.2, bn.js@npm:^5.1.3, bn.js@npm:^5.2.0, bn.js@npm:^5.2.1": +"bn.js@npm:^5.0.0, bn.js@npm:^5.1.1, bn.js@npm:^5.1.2, bn.js@npm:^5.2.0, bn.js@npm:^5.2.1": version: 5.2.1 resolution: "bn.js@npm:5.2.1" checksum: 7a7e8764d7a6e9708b8b9841b2b3d6019cc154d2fc23716d0efecfe1e16921b7533c6f7361fb05471eab47986c4aa310c270f88e3507172104632ac8df2cfd84 @@ -21908,6 +24258,18 @@ __metadata: languageName: node linkType: hard +"browser-level@npm:^1.0.1": + version: 1.0.1 + resolution: "browser-level@npm:1.0.1" + dependencies: + abstract-level: "npm:^1.0.2" + catering: "npm:^2.1.1" + module-error: "npm:^1.0.2" + run-parallel-limit: "npm:^1.1.0" + checksum: e712569111782da76853fecf648b43ff878ff2301c2830a9e7399685b646824a85f304dea5f023e02ee41a63a972f9aad734bd411069095adc9c79784fc649a5 + languageName: node + linkType: hard + "browser-readablestream-to-it@npm:^1.0.0, browser-readablestream-to-it@npm:^1.0.1, browser-readablestream-to-it@npm:^1.0.3": version: 1.0.3 resolution: "browser-readablestream-to-it@npm:1.0.3" @@ -22013,19 +24375,7 @@ __metadata: languageName: node linkType: hard -"browserslist@npm:^3.2.6": - version: 3.2.8 - resolution: "browserslist@npm:3.2.8" - dependencies: - caniuse-lite: "npm:^1.0.30000844" - electron-to-chromium: "npm:^1.3.47" - bin: - browserslist: ./cli.js - checksum: 98e1f3db6bc6c6327235714bd9dcaabaf0f917d54bbe833872cd758436c21c2ea539bc0d9b9fa52016a95445f7cc50d919ad09509d25f3b2e22910646e2c3c10 - languageName: node - linkType: hard - -"browserslist@npm:^4.0.0, browserslist@npm:^4.18.1, browserslist@npm:^4.21.10, browserslist@npm:^4.21.4, browserslist@npm:^4.22.2, browserslist@npm:^4.22.3, browserslist@npm:^4.23.0": +"browserslist@npm:^4.0.0, browserslist@npm:^4.18.1, browserslist@npm:^4.21.4, browserslist@npm:^4.22.3, browserslist@npm:^4.23.0": version: 4.23.0 resolution: "browserslist@npm:4.23.0" dependencies: @@ -22039,6 +24389,62 @@ __metadata: languageName: node linkType: hard +"browserslist@npm:^4.21.10": + version: 4.21.10 + resolution: "browserslist@npm:4.21.10" + dependencies: + caniuse-lite: "npm:^1.0.30001517" + electron-to-chromium: "npm:^1.4.477" + node-releases: "npm:^2.0.13" + update-browserslist-db: "npm:^1.0.11" + bin: + browserslist: cli.js + checksum: cdb9272433994393a995235720c304e8c7123b4994b02fc0b24ca0f483db482c4f85fe8b40995aa6193d47d781e5535cf5d0efe96e465d2af42058fb3251b13a + languageName: node + linkType: hard + +"browserslist@npm:^4.21.3": + version: 4.21.5 + resolution: "browserslist@npm:4.21.5" + dependencies: + caniuse-lite: "npm:^1.0.30001449" + electron-to-chromium: "npm:^1.4.284" + node-releases: "npm:^2.0.8" + update-browserslist-db: "npm:^1.0.10" + bin: + browserslist: cli.js + checksum: 560ec095ab4fa878f611ddf29038193d3a40ce69282dd15e633bcb9523fa25122e566d34192ab45e261a637d768884e7318cb3545533720469ee8f10d10c3298 + languageName: node + linkType: hard + +"browserslist@npm:^4.21.9": + version: 4.21.9 + resolution: "browserslist@npm:4.21.9" + dependencies: + caniuse-lite: "npm:^1.0.30001503" + electron-to-chromium: "npm:^1.4.431" + node-releases: "npm:^2.0.12" + update-browserslist-db: "npm:^1.0.11" + bin: + browserslist: cli.js + checksum: f015dd3d97e9eadcc13aaaf03b4a78a071874eee1cf756a2361191c0888f238dd0ddf1b92c20d072ecd1834d9a51e5a6361f5efaf966728da6a5daaf95b37eb3 + languageName: node + linkType: hard + +"browserslist@npm:^4.22.2": + version: 4.22.2 + resolution: "browserslist@npm:4.22.2" + dependencies: + caniuse-lite: "npm:^1.0.30001565" + electron-to-chromium: "npm:^1.4.601" + node-releases: "npm:^2.0.14" + update-browserslist-db: "npm:^1.0.13" + bin: + browserslist: cli.js + checksum: e3590793db7f66ad3a50817e7b7f195ce61e029bd7187200244db664bfbe0ac832f784e4f6b9c958aef8ea4abe001ae7880b7522682df521f4bc0a5b67660b5e + languageName: node + linkType: hard + "bs58@npm:5.0.0": version: 5.0.0 resolution: "bs58@npm:5.0.0" @@ -22152,15 +24558,6 @@ __metadata: languageName: node linkType: hard -"buffer-xor@npm:^2.0.1": - version: 2.0.2 - resolution: "buffer-xor@npm:2.0.2" - dependencies: - safe-buffer: "npm:^5.1.1" - checksum: 78226fcae9f4a0b4adec69dffc049f26f6bab240dfdd1b3f6fe07c4eb6b90da202ea5c363f98af676156ee39450a06405fddd9e8965f68a5327edcc89dcbe5d0 - languageName: node - linkType: hard - "buffer@npm:4.9.2": version: 4.9.2 resolution: "buffer@npm:4.9.2" @@ -22331,26 +24728,29 @@ __metadata: languageName: node linkType: hard -"bytewise-core@npm:^1.2.2": - version: 1.2.3 - resolution: "bytewise-core@npm:1.2.3" +"c8@npm:^7.13.0, c8@npm:^7.6.0": + version: 7.13.0 + resolution: "c8@npm:7.13.0" dependencies: - typewise-core: "npm:^1.2" - checksum: 8513f50764abe9430b3b69cabede7bf70f61ca5e6cf61b1deea7344441d4c4666bcfdd2cb52d97f8f7365f20ce4aa5f592c36617ffaaa3a38ec2d3deeefc9423 - languageName: node - linkType: hard - -"bytewise@npm:~1.1.0": - version: 1.1.0 - resolution: "bytewise@npm:1.1.0" - dependencies: - bytewise-core: "npm:^1.2.2" - typewise: "npm:^1.0.3" - checksum: 73f09d4257c3cdf1eede4a51ff14c20b3907e639e1e554ecf48e4c5d57f292318b10f520d19f88bae5cce0d5eb01b3dd9129b0e06ff571eacec378e91d6b751d + "@bcoe/v8-coverage": "npm:^0.2.3" + "@istanbuljs/schema": "npm:^0.1.3" + find-up: "npm:^5.0.0" + foreground-child: "npm:^2.0.0" + istanbul-lib-coverage: "npm:^3.2.0" + istanbul-lib-report: "npm:^3.0.0" + istanbul-reports: "npm:^3.1.4" + rimraf: "npm:^3.0.2" + test-exclude: "npm:^6.0.0" + v8-to-istanbul: "npm:^9.0.0" + yargs: "npm:^16.2.0" + yargs-parser: "npm:^20.2.9" + bin: + c8: bin/c8.js + checksum: 0e61506fdc3062334b58febc8d1e4b409d1ec8a26f7c54b6b3a33408c1a36e7f576dd379d6d0100413e0358f8b917e3c909c7768fc0676d24d95aa6a79f89574 languageName: node linkType: hard -"c8@npm:^7.13.0, c8@npm:^7.14.0, c8@npm:^7.6.0": +"c8@npm:^7.14.0": version: 7.14.0 resolution: "c8@npm:7.14.0" dependencies: @@ -22452,21 +24852,6 @@ __metadata: languageName: node linkType: hard -"cacheable-request@npm:^6.0.0": - version: 6.1.0 - resolution: "cacheable-request@npm:6.1.0" - dependencies: - clone-response: "npm:^1.0.2" - get-stream: "npm:^5.1.0" - http-cache-semantics: "npm:^4.0.0" - keyv: "npm:^3.0.0" - lowercase-keys: "npm:^2.0.0" - normalize-url: "npm:^4.1.0" - responselike: "npm:^1.0.2" - checksum: 804f6c377ce6fef31c584babde31d55c69305569058ad95c24a41bb7b33d0ea188d388467a9da6cb340e95a3a1f8a94e1f3a709fef5eaf9c6b88e62448fa29be - languageName: node - linkType: hard - "cacheable-request@npm:^7.0.2": version: 7.0.4 resolution: "cacheable-request@npm:7.0.4" @@ -22489,16 +24874,6 @@ __metadata: languageName: node linkType: hard -"cachedown@npm:1.0.0": - version: 1.0.0 - resolution: "cachedown@npm:1.0.0" - dependencies: - abstract-leveldown: "npm:^2.4.1" - lru-cache: "npm:^3.2.0" - checksum: 0c96cb42c44ec150854b92728d9addfce2d68b5fdeb596da57420717f59943defa53f74700226e67b3bc0606c6e70e8f90f0ba19c3505ca71d7a8cabeaeebee8 - languageName: node - linkType: hard - "calendar-link@npm:2.5.1": version: 2.5.1 resolution: "calendar-link@npm:2.5.1" @@ -22519,7 +24894,28 @@ __metadata: languageName: node linkType: hard -"call-bind@npm:^1.0.0, call-bind@npm:^1.0.2, call-bind@npm:^1.0.5, call-bind@npm:^1.0.6, call-bind@npm:^1.0.7, call-bind@npm:~1.0.2": +"call-bind@npm:^1.0.0, call-bind@npm:^1.0.2": + version: 1.0.2 + resolution: "call-bind@npm:1.0.2" + dependencies: + function-bind: "npm:^1.1.1" + get-intrinsic: "npm:^1.0.2" + checksum: ca787179c1cbe09e1697b56ad499fd05dc0ae6febe5081d728176ade699ea6b1589240cb1ff1fe11fcf9f61538c1af60ad37e8eb2ceb4ef21cd6085dfd3ccedd + languageName: node + linkType: hard + +"call-bind@npm:^1.0.5": + version: 1.0.5 + resolution: "call-bind@npm:1.0.5" + dependencies: + function-bind: "npm:^1.1.2" + get-intrinsic: "npm:^1.2.1" + set-function-length: "npm:^1.1.1" + checksum: 246d44db6ef9bbd418828dbd5337f80b46be4398d522eded015f31554cbb2ea33025b0203b75c7ab05a1a255b56ef218880cca1743e4121e306729f9e414da39 + languageName: node + linkType: hard + +"call-bind@npm:^1.0.6, call-bind@npm:^1.0.7": version: 1.0.7 resolution: "call-bind@npm:1.0.7" dependencies: @@ -22546,16 +24942,6 @@ __metadata: languageName: node linkType: hard -"camel-case@npm:^3.0.0": - version: 3.0.0 - resolution: "camel-case@npm:3.0.0" - dependencies: - no-case: "npm:^2.2.0" - upper-case: "npm:^1.1.1" - checksum: 4190ed6ab8acf4f3f6e1a78ad4d0f3f15ce717b6bfa1b5686d58e4bcd29960f6e312dd746b5fa259c6d452f1413caef25aee2e10c9b9a580ac83e516533a961a - languageName: node - linkType: hard - "camel-case@npm:^4.1.2": version: 4.1.2 resolution: "camel-case@npm:4.1.2" @@ -22573,20 +24959,6 @@ __metadata: languageName: node linkType: hard -"camelcase@npm:^3.0.0": - version: 3.0.0 - resolution: "camelcase@npm:3.0.0" - checksum: ae4fe1c17c8442a3a345a6b7d2393f028ab7a7601af0c352ad15d1ab97ca75112e19e29c942b2a214898e160194829b68923bce30e018d62149c6d84187f1673 - languageName: node - linkType: hard - -"camelcase@npm:^4.1.0": - version: 4.1.0 - resolution: "camelcase@npm:4.1.0" - checksum: 9683356daf9b64fae4b30c91f8ceb1f34f22746e03d1804efdbe738357d38b47f206cdd71efcf2ed72018b2e88eeb8ec3f79adb09c02f1253a4b6d5d405ff2ae - languageName: node - linkType: hard - "camelcase@npm:^5.0.0, camelcase@npm:^5.3.1": version: 5.3.1 resolution: "camelcase@npm:5.3.1" @@ -22627,7 +24999,42 @@ __metadata: languageName: node linkType: hard -"caniuse-lite@npm:^1.0.0, caniuse-lite@npm:^1.0.30000844, caniuse-lite@npm:^1.0.30001406, caniuse-lite@npm:^1.0.30001579, caniuse-lite@npm:^1.0.30001587, caniuse-lite@npm:^1.0.30001591": +"caniuse-lite@npm:^1.0.0, caniuse-lite@npm:^1.0.30001503": + version: 1.0.30001517 + resolution: "caniuse-lite@npm:1.0.30001517" + checksum: 3b9aa01e5e1c112bbe15d653cf4f909748b3ede87613b4381306c3510dab1adb0b09594febdacdf0eb963d8f0d37dcb3b88cea12c579ed14a9ede4581544c7c4 + languageName: node + linkType: hard + +"caniuse-lite@npm:^1.0.30001406, caniuse-lite@npm:^1.0.30001449": + version: 1.0.30001487 + resolution: "caniuse-lite@npm:1.0.30001487" + checksum: b64a706fe7b58b9b58e2104c43a0ac659c73220d3d9182fef177e0c8bc61228982a15e28007737b18ea5b619b593802db4b8b367b5a1ee8c23bc252004066576 + languageName: node + linkType: hard + +"caniuse-lite@npm:^1.0.30001517": + version: 1.0.30001527 + resolution: "caniuse-lite@npm:1.0.30001527" + checksum: fd92100c771efdecd77a1be45551ef47091adea7291fe524a6d882b74b0e1d81b59abbbbaac84c835ed96392913a55791d01a9b868f2501fb1f1d4e6b1161c0b + languageName: node + linkType: hard + +"caniuse-lite@npm:^1.0.30001538": + version: 1.0.30001546 + resolution: "caniuse-lite@npm:1.0.30001546" + checksum: efa765c9891beb187715dc794b6b21cd30c23cdaea5788b736b58dbea7a568d73577fd9e97202874ee19fea5e783a55a20296606d473153250b4f9a36aba58de + languageName: node + linkType: hard + +"caniuse-lite@npm:^1.0.30001565": + version: 1.0.30001566 + resolution: "caniuse-lite@npm:1.0.30001566" + checksum: fdff43ed498201bf4f6074bd1112bd853e91973b6ccb016049b030948a7d197cba235ac4d93e712d1862b33a3c947bf4e62bad7011ccdac78e5179501b28d04a + languageName: node + linkType: hard + +"caniuse-lite@npm:^1.0.30001587, caniuse-lite@npm:^1.0.30001591": version: 1.0.30001591 resolution: "caniuse-lite@npm:1.0.30001591" checksum: 3891fad30a99b984a3a20570c0440d35dda933c79ea190cdb78a1f1743866506a4b41b4389b53a7c0351f2228125f9dc49308463f57e61503e5689b444add1a8 @@ -22667,6 +25074,13 @@ __metadata: languageName: node linkType: hard +"case@npm:^1.6.3": + version: 1.6.3 + resolution: "case@npm:1.6.3" + checksum: 2fc1df75bbb4118339e06141b9a54aba95cc62460ac92730290144fbec6b6a04f5bf7abf6a6486a1338f5821bd184402f216cec8cea0472451759c27e20fc332 + languageName: node + linkType: hard + "caseless@npm:^0.12.0, caseless@npm:~0.12.0": version: 0.12.0 resolution: "caseless@npm:0.12.0" @@ -22674,30 +25088,10 @@ __metadata: languageName: node linkType: hard -"cbor@npm:^4.1.5": - version: 4.3.0 - resolution: "cbor@npm:4.3.0" - dependencies: - bignumber.js: "npm:^9.0.0" - commander: "npm:^3.0.0" - json-text-sequence: "npm:^0.1" - nofilter: "npm:^1.0.3" - bin: - cbor2comment: ./bin/cbor2comment - cbor2diag: ./bin/cbor2diag - cbor2json: ./bin/cbor2json - json2cbor: ./bin/json2cbor - checksum: ac06601a1e8aa08bfaa71dadf044500a2c953cac7d223b1edfeee7dcf3d8d4dfde141279ff89d60574b02bf0bdfb928e7ab86a36900d6cdbb35f2b6a7df15477 - languageName: node - linkType: hard - -"cbor@npm:^5.1.0, cbor@npm:^5.2.0": - version: 5.2.0 - resolution: "cbor@npm:5.2.0" - dependencies: - bignumber.js: "npm:^9.0.1" - nofilter: "npm:^1.0.4" - checksum: e7c4467536dc6693b5993c71f83a76c18d3c5e898011dc1a0c89dcb27ae1ad4b8d13f1ec338d47623f8f1a6ed5440db769df38c2c70378573766ce89436c5122 +"catering@npm:^2.1.0, catering@npm:^2.1.1": + version: 2.1.1 + resolution: "catering@npm:2.1.1" + checksum: 4669c9fa5f3a73273535fb458a964d8aba12dc5102d8487049cf03623bef3cdff4b5d9f92ff04c00f1001057a7cc7df6e700752ac622c2a7baf7bcff34166683 languageName: node linkType: hard @@ -22746,16 +25140,6 @@ __metadata: languageName: node linkType: hard -"chai-bn@npm:^0.2.1": - version: 0.2.2 - resolution: "chai-bn@npm:0.2.2" - peerDependencies: - bn.js: ^4.11.0 - chai: ^4.0.0 - checksum: 926b5e903adfc504b4fb5603f4af4ed6078a04a7432664d665304779a919e56fe359a6d492e28a2d3071e6c698793845e3049b5b941c4c257785d4abc03270c4 - languageName: node - linkType: hard - "chai@npm:4.2.0": version: 4.2.0 resolution: "chai@npm:4.2.0" @@ -22785,7 +25169,7 @@ __metadata: languageName: node linkType: hard -"chai@npm:^4.2.0, chai@npm:^4.3.10, chai@npm:^4.3.6, chai@npm:^4.3.7": +"chai@npm:^4.3.10, chai@npm:^4.3.6": version: 4.4.1 resolution: "chai@npm:4.4.1" dependencies: @@ -22800,6 +25184,21 @@ __metadata: languageName: node linkType: hard +"chai@npm:^4.3.7": + version: 4.3.7 + resolution: "chai@npm:4.3.7" + dependencies: + assertion-error: "npm:^1.1.0" + check-error: "npm:^1.0.2" + deep-eql: "npm:^4.1.2" + get-func-name: "npm:^2.0.0" + loupe: "npm:^2.3.1" + pathval: "npm:^1.1.1" + type-detect: "npm:^4.0.5" + checksum: 615eabfeb9032315fb2d287fb03c29b7996f943024c7d4482b1b5370b6c22807fd4da329244dc5ac0c8802408d741dfb9b86245ffeddc83ce18898dda8d7aed4 + languageName: node + linkType: hard + "chalk@npm:3.0.0": version: 3.0.0 resolution: "chalk@npm:3.0.0" @@ -22847,7 +25246,7 @@ __metadata: languageName: node linkType: hard -"chalk@npm:^2.3.0, chalk@npm:^2.3.2, chalk@npm:^2.4.1, chalk@npm:^2.4.2": +"chalk@npm:^2.0.0, chalk@npm:^2.3.0, chalk@npm:^2.4.1, chalk@npm:^2.4.2": version: 2.4.2 resolution: "chalk@npm:2.4.2" dependencies: @@ -22894,32 +25293,6 @@ __metadata: languageName: node linkType: hard -"change-case@npm:3.0.2": - version: 3.0.2 - resolution: "change-case@npm:3.0.2" - dependencies: - camel-case: "npm:^3.0.0" - constant-case: "npm:^2.0.0" - dot-case: "npm:^2.1.0" - header-case: "npm:^1.0.0" - is-lower-case: "npm:^1.1.0" - is-upper-case: "npm:^1.1.0" - lower-case: "npm:^1.1.1" - lower-case-first: "npm:^1.0.0" - no-case: "npm:^2.3.2" - param-case: "npm:^2.1.0" - pascal-case: "npm:^2.0.0" - path-case: "npm:^2.1.0" - sentence-case: "npm:^2.1.0" - snake-case: "npm:^2.1.0" - swap-case: "npm:^1.1.0" - title-case: "npm:^2.1.0" - upper-case: "npm:^1.1.1" - upper-case-first: "npm:^1.1.0" - checksum: 32caa824380cca8775e3b22210821cfbbad02833f1d9cba146468848f49240096f41cbae596215961d6b6090791db66efc0edbb14511b014667d5fb0bc7bc523 - languageName: node - linkType: hard - "change-case@npm:^4.1.2": version: 4.1.2 resolution: "change-case@npm:4.1.2" @@ -23005,15 +25378,6 @@ __metadata: languageName: node linkType: hard -"checkpoint-store@npm:^1.1.0": - version: 1.1.0 - resolution: "checkpoint-store@npm:1.1.0" - dependencies: - functional-red-black-tree: "npm:^1.0.1" - checksum: 94e921ccb222c7970615e8b2bcd956dbd52f15a1c397af0447dbdef8ecd32ffe342e394d39e55f2912278a460f3736de777b5b57a5baf229c0a6bd04d2465511 - languageName: node - linkType: hard - "cheerio-select@npm:^2.1.0": version: 2.1.0 resolution: "cheerio-select@npm:2.1.0" @@ -23028,7 +25392,7 @@ __metadata: languageName: node linkType: hard -"cheerio@npm:^1.0.0-rc.12, cheerio@npm:^1.0.0-rc.2": +"cheerio@npm:^1.0.0-rc.12": version: 1.0.0-rc.12 resolution: "cheerio@npm:1.0.0-rc.12" dependencies: @@ -23193,6 +25557,20 @@ __metadata: languageName: node linkType: hard +"classic-level@npm:^1.2.0": + version: 1.3.0 + resolution: "classic-level@npm:1.3.0" + dependencies: + abstract-level: "npm:^1.0.2" + catering: "npm:^2.1.0" + module-error: "npm:^1.0.1" + napi-macros: "npm:^2.2.2" + node-gyp: "npm:latest" + node-gyp-build: "npm:^4.3.0" + checksum: b2d07a5932a09bdf0a5b27e662154888c85edd59d75816c7e60960dacadbc7553daa9f5efb58d2575b3eae0540d504ef71d49f438744366626762a0ddefe5cc5 + languageName: node + linkType: hard + "clean-css@npm:^5.2.2, clean-css@npm:^5.3.2, clean-css@npm:~5.3.2": version: 5.3.3 resolution: "clean-css@npm:5.3.3" @@ -23274,7 +25652,7 @@ __metadata: languageName: node linkType: hard -"cli-cursor@npm:^3.0.0, cli-cursor@npm:^3.1.0": +"cli-cursor@npm:^3.1.0": version: 3.1.0 resolution: "cli-cursor@npm:3.1.0" dependencies: @@ -23411,17 +25789,6 @@ __metadata: languageName: node linkType: hard -"cliui@npm:^3.2.0": - version: 3.2.0 - resolution: "cliui@npm:3.2.0" - dependencies: - string-width: "npm:^1.0.1" - strip-ansi: "npm:^3.0.1" - wrap-ansi: "npm:^2.0.0" - checksum: a8acc1a2e5f6307bb3200738a55b353ae5ca13d7a9a8001e40bdf2449c228104daf245e29cdfe60652ffafc3e70096fc1624cd9cf8651bb322903dbbb22a4ac3 - languageName: node - linkType: hard - "cliui@npm:^5.0.0": version: 5.0.0 resolution: "cliui@npm:5.0.0" @@ -23486,7 +25853,7 @@ __metadata: languageName: node linkType: hard -"clone@npm:2.1.2, clone@npm:2.x, clone@npm:^2.0.0, clone@npm:^2.1.1": +"clone@npm:2.x, clone@npm:^2.1.1": version: 2.1.2 resolution: "clone@npm:2.1.2" checksum: d9c79efba655f0bf601ab299c57eb54cbaa9860fb011aee9d89ed5ac0d12df1660ab7642fddaabb9a26b7eff0e117d4520512cb70798319ff5d30a111b5310c2 @@ -23656,13 +26023,6 @@ __metadata: languageName: node linkType: hard -"colors@npm:1.0.x": - version: 1.0.3 - resolution: "colors@npm:1.0.3" - checksum: 8d81835f217ffca6de6665c8dd9ed132c562d108d4ba842d638c7cb5f8127cff47cb1b54c6bbea49e22eaa7b56caee6b85278dde9c2564f8a0eaef161e028ae0 - languageName: node - linkType: hard - "colors@npm:1.4.0, colors@npm:^1.1.2, colors@npm:^1.4.0": version: 1.4.0 resolution: "colors@npm:1.4.0" @@ -23755,7 +26115,7 @@ __metadata: languageName: node linkType: hard -"commander@npm:3.0.2, commander@npm:^3.0.0": +"commander@npm:3.0.2": version: 3.0.2 resolution: "commander@npm:3.0.2" checksum: f42053569f5954498246783465b39139917a51284bf3361574c9f731fea27a4bd6452dbb1755cc2d923c7b47dfea67930037c7b7e862288f2c397cec9a74da87 @@ -23923,7 +26283,7 @@ __metadata: languageName: node linkType: hard -"concat-stream@npm:^1.5.1, concat-stream@npm:^1.5.2, concat-stream@npm:^1.6.0, concat-stream@npm:^1.6.2, concat-stream@npm:~1.6.2": +"concat-stream@npm:^1.5.2, concat-stream@npm:^1.6.0, concat-stream@npm:^1.6.2, concat-stream@npm:~1.6.2": version: 1.6.2 resolution: "concat-stream@npm:1.6.2" dependencies: @@ -24057,16 +26417,6 @@ __metadata: languageName: node linkType: hard -"constant-case@npm:^2.0.0": - version: 2.0.0 - resolution: "constant-case@npm:2.0.0" - dependencies: - snake-case: "npm:^2.1.0" - upper-case: "npm:^1.1.1" - checksum: 893c793a425ebcd0744061c7f12650c655aae259b89d5654fb8eda42d22c3690716a4988ed03f2abe370b1ee7bfec44f8e4395e76e2f1458a8921982b15410ba - languageName: node - linkType: hard - "constant-case@npm:^3.0.4": version: 3.0.4 resolution: "constant-case@npm:3.0.4" @@ -24192,7 +26542,7 @@ __metadata: languageName: node linkType: hard -"cookiejar@npm:^2.1.1, cookiejar@npm:^2.1.3, cookiejar@npm:^2.1.4": +"cookiejar@npm:^2.1.3, cookiejar@npm:^2.1.4": version: 2.1.4 resolution: "cookiejar@npm:2.1.4" checksum: 4a184f5a0591df8b07d22a43ea5d020eacb4572c383e853a33361a99710437eaa0971716c688684075bbf695b484f5872e9e3f562382e46858716cb7fc8ce3f4 @@ -24273,7 +26623,7 @@ __metadata: languageName: node linkType: hard -"core-js-compat@npm:^3.25.1, core-js-compat@npm:^3.30.2, core-js-compat@npm:^3.31.0, core-js-compat@npm:^3.33.1, core-js-compat@npm:^3.34.0": +"core-js-compat@npm:^3.25.1, core-js-compat@npm:^3.30.2": version: 3.36.0 resolution: "core-js-compat@npm:3.36.0" dependencies: @@ -24282,10 +26632,28 @@ __metadata: languageName: node linkType: hard -"core-js-pure@npm:^3.0.1, core-js-pure@npm:^3.30.2": - version: 3.36.0 - resolution: "core-js-pure@npm:3.36.0" - checksum: 64e8f4f8118e9ea0fcacafbf82b7c0a448375ec2e8e989af12a68e0fa3ad9825d68a6550a07ea15c119044457ad3b16a20cd17599ae2dcdde6836b3d614d7ae3 +"core-js-compat@npm:^3.31.0": + version: 3.32.0 + resolution: "core-js-compat@npm:3.32.0" + dependencies: + browserslist: "npm:^4.21.9" + checksum: a4601192319b67a575abfb175a9822ae266bfa88cd0dc6be5bce3d6ce6d4674bd675a052c48a48520d956b193ccd5c8458c1b0901bf0f71d59edaad2a56ef667 + languageName: node + linkType: hard + +"core-js-compat@npm:^3.33.1": + version: 3.34.0 + resolution: "core-js-compat@npm:3.34.0" + dependencies: + browserslist: "npm:^4.22.2" + checksum: e29571cc524b4966e331b5876567f13c2b82ed48ac9b02784f3156b29ee1cd82fe3e60052d78b017c429eb61969fd238c22684bb29180908d335266179a29155 + languageName: node + linkType: hard + +"core-js-pure@npm:^3.30.2": + version: 3.32.0 + resolution: "core-js-pure@npm:3.32.0" + checksum: f98fc9610fedffd5587266cabddc880a8259bb0c99e81c5630e2076a4cd39b618f8db54137a6fdc578a8bb12a7fef2f341175085d89a16683a36aa89bc0ee137 languageName: node linkType: hard @@ -24296,10 +26664,17 @@ __metadata: languageName: node linkType: hard -"core-js@npm:^3.30.2, core-js@npm:^3.31.1, core-js@npm:^3.8.2": - version: 3.36.0 - resolution: "core-js@npm:3.36.0" - checksum: 896326c6391c1607dc645293c214cd31c6c535d4a77a88b15fc29e787199f9b06dc15986ddfbc798335bf7a7afd1e92152c94aa5a974790a7f97a98121774302 +"core-js@npm:^3.30.2, core-js@npm:^3.8.2": + version: 3.30.2 + resolution: "core-js@npm:3.30.2" + checksum: 7476995aad7b01e51240fa1b19a26ec064825feece47290903d392e8b624749d06e8d72ce4c2ede9ab02afe34c6c08c001fd288bc1cfa3f5593ab03f2778719e + languageName: node + linkType: hard + +"core-js@npm:^3.31.1": + version: 3.35.0 + resolution: "core-js@npm:3.35.0" + checksum: 0815fce6bcc91d79d4b28885975453b0faa4d17fc2230635102b4f3832cd621035e4032aa3307e1dbe0ee14d5e34bcb64b507fd89bd8f567aedaf29538522e6a languageName: node linkType: hard @@ -24366,7 +26741,31 @@ __metadata: languageName: node linkType: hard -"cosmiconfig@npm:^8.0.0, cosmiconfig@npm:^8.1.0, cosmiconfig@npm:^8.1.3, cosmiconfig@npm:^8.3.5": +"cosmiconfig@npm:^8.0.0, cosmiconfig@npm:^8.1.3": + version: 8.1.3 + resolution: "cosmiconfig@npm:8.1.3" + dependencies: + import-fresh: "npm:^3.2.1" + js-yaml: "npm:^4.1.0" + parse-json: "npm:^5.0.0" + path-type: "npm:^4.0.0" + checksum: 7a9f514c84a75d2ee1fbbe565381d2508dfccebd1018a9097bd55647718e2a4003afc96be86cbbdd855461d01fd71a84d46991b1d8988006763a5fa8f1140ae7 + languageName: node + linkType: hard + +"cosmiconfig@npm:^8.1.0": + version: 8.2.0 + resolution: "cosmiconfig@npm:8.2.0" + dependencies: + import-fresh: "npm:^3.2.1" + js-yaml: "npm:^4.1.0" + parse-json: "npm:^5.0.0" + path-type: "npm:^4.0.0" + checksum: e0b188f9a672ee7135851bf9d9fc8f0ba00f9769c95fda5af0ebc274804f6aeb713b753e04e706f595e1fbd0fa67c5073840666019068c0296a06057560ab39d + languageName: node + linkType: hard + +"cosmiconfig@npm:^8.3.5": version: 8.3.6 resolution: "cosmiconfig@npm:8.3.6" dependencies: @@ -24524,16 +26923,6 @@ __metadata: languageName: node linkType: hard -"cross-fetch@npm:^2.1.0, cross-fetch@npm:^2.1.1": - version: 2.2.6 - resolution: "cross-fetch@npm:2.2.6" - dependencies: - node-fetch: "npm:^2.6.7" - whatwg-fetch: "npm:^2.0.4" - checksum: ebddaf11bc2dd267650b8a803c98422097de436a366abd498d9a21832fcb0edca59610ee6e30eff65e004fe3689e8b418ce6d52fe503824b59909df8cbe27e10 - languageName: node - linkType: hard - "cross-fetch@npm:^3.0.4, cross-fetch@npm:^3.0.6, cross-fetch@npm:^3.1.4, cross-fetch@npm:^3.1.5": version: 3.1.8 resolution: "cross-fetch@npm:3.1.8" @@ -24572,19 +26961,6 @@ __metadata: languageName: node linkType: hard -"cross-spawn@npm:^6.0.5": - version: 6.0.5 - resolution: "cross-spawn@npm:6.0.5" - dependencies: - nice-try: "npm:^1.0.4" - path-key: "npm:^2.0.1" - semver: "npm:^5.5.0" - shebang-command: "npm:^1.2.0" - which: "npm:^1.2.9" - checksum: f07e643b4875f26adffcd7f13bc68d9dff20cf395f8ed6f43a23f3ee24fc3a80a870a32b246fd074e514c8fd7da5f978ac6a7668346eec57aa87bac89c1ed3a1 - languageName: node - linkType: hard - "crossws@npm:^0.2.0, crossws@npm:^0.2.2": version: 0.2.4 resolution: "crossws@npm:0.2.4" @@ -24604,22 +26980,7 @@ __metadata: languageName: node linkType: hard -"crypto-addr-codec@npm:^0.1.7": - version: 0.1.8 - resolution: "crypto-addr-codec@npm:0.1.8" - dependencies: - base-x: "npm:^3.0.8" - big-integer: "npm:1.6.36" - blakejs: "npm:^1.1.0" - bs58: "npm:^4.0.1" - ripemd160-min: "npm:0.0.6" - safe-buffer: "npm:^5.2.0" - sha3: "npm:^2.1.1" - checksum: cb086919331ae0acb2f1ace78ea81c1f400ecea8b9f2fc680f8e2be1475b62a90ec09643ca07c90a37097c1c9eaf0705c5cadfb5010ec96dc7d6bb1b2b80188a - languageName: node - linkType: hard - -"crypto-browserify@npm:3.12.0, crypto-browserify@npm:^3.11.0, crypto-browserify@npm:^3.12.0": +"crypto-browserify@npm:^3.11.0, crypto-browserify@npm:^3.12.0": version: 3.12.0 resolution: "crypto-browserify@npm:3.12.0" dependencies: @@ -24995,13 +27356,6 @@ __metadata: languageName: node linkType: hard -"cycle@npm:1.0.x": - version: 1.0.3 - resolution: "cycle@npm:1.0.3" - checksum: b9f131094fb832a8c4ba18c6d2dc9c87fc80d3242847a45f0a5f70911b2acab68abc1c25eb23e5155fcf2135a27d8fcc3635556745b03b488c4f360cfbc352df - languageName: node - linkType: hard - "cyclist@npm:^1.0.1": version: 1.0.2 resolution: "cyclist@npm:1.0.2" @@ -25098,13 +27452,20 @@ __metadata: languageName: node linkType: hard -"dayjs@npm:1.11.10, dayjs@npm:^1.9.3": +"dayjs@npm:1.11.10": version: 1.11.10 resolution: "dayjs@npm:1.11.10" checksum: 27e8f5bc01c0a76f36c656e62ab7f08c2e7b040b09e613cd4844abf03fb258e0350f0a83b02c887b84d771c1f11e092deda0beef8c6df2a1afbc3f6c1fade279 languageName: node linkType: hard +"dayjs@npm:^1.9.3": + version: 1.11.7 + resolution: "dayjs@npm:1.11.7" + checksum: 341d7dc917a4ddc79c836684f7632a769ad8ae3c56506e62b97c27d7bb8a379b52b5589180b80f514eca9beb0b8789303bd32ce3107ba62055078800f9871e38 + languageName: node + linkType: hard + "death@npm:^1.1.0": version: 1.1.0 resolution: "death@npm:1.1.0" @@ -25128,7 +27489,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:3.1.0, debug@npm:=3.1.0": +"debug@npm:3.1.0": version: 3.1.0 resolution: "debug@npm:3.1.0" dependencies: @@ -25158,7 +27519,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:^3.1.0, debug@npm:^3.2.6, debug@npm:^3.2.7": +"debug@npm:^3.2.6, debug@npm:^3.2.7": version: 3.2.7 resolution: "debug@npm:3.2.7" dependencies: @@ -25176,7 +27537,7 @@ __metadata: languageName: node linkType: hard -"decamelize@npm:^1.1.1, decamelize@npm:^1.2.0": +"decamelize@npm:^1.2.0": version: 1.2.0 resolution: "decamelize@npm:1.2.0" checksum: ad8c51a7e7e0720c70ec2eeb1163b66da03e7616d7b98c9ef43cce2416395e84c1e9548dd94f5f6ffecfee9f8b94251fc57121a8b021f2ff2469b2bae247b8aa @@ -25220,7 +27581,7 @@ __metadata: languageName: node linkType: hard -"decompress-response@npm:^3.2.0, decompress-response@npm:^3.3.0": +"decompress-response@npm:^3.3.0": version: 3.3.0 resolution: "decompress-response@npm:3.3.0" dependencies: @@ -25238,69 +27599,6 @@ __metadata: languageName: node linkType: hard -"decompress-tar@npm:^4.0.0, decompress-tar@npm:^4.1.0, decompress-tar@npm:^4.1.1": - version: 4.1.1 - resolution: "decompress-tar@npm:4.1.1" - dependencies: - file-type: "npm:^5.2.0" - is-stream: "npm:^1.1.0" - tar-stream: "npm:^1.5.2" - checksum: 820c645dfa9a0722c4c817363431d07687374338e2af337cc20c9a44b285fdd89296837a1d1281ee9fa85c6f03d7c0f50670aec9abbd4eb198a714bb179ea0bd - languageName: node - linkType: hard - -"decompress-tarbz2@npm:^4.0.0": - version: 4.1.1 - resolution: "decompress-tarbz2@npm:4.1.1" - dependencies: - decompress-tar: "npm:^4.1.0" - file-type: "npm:^6.1.0" - is-stream: "npm:^1.1.0" - seek-bzip: "npm:^1.0.5" - unbzip2-stream: "npm:^1.0.9" - checksum: 519c81337730159a1f2d7072a6ee8523ffd76df48d34f14c27cb0a27f89b4e2acf75dad2f761838e5bc63230cea1ac154b092ecb7504be4e93f7d0e32ddd6aff - languageName: node - linkType: hard - -"decompress-targz@npm:^4.0.0": - version: 4.1.1 - resolution: "decompress-targz@npm:4.1.1" - dependencies: - decompress-tar: "npm:^4.1.1" - file-type: "npm:^5.2.0" - is-stream: "npm:^1.1.0" - checksum: 22738f58eb034568dc50d370c03b346c428bfe8292fe56165847376b5af17d3c028fefca82db642d79cb094df4c0a599d40a8f294b02aad1d3ddec82f3fd45d4 - languageName: node - linkType: hard - -"decompress-unzip@npm:^4.0.1": - version: 4.0.1 - resolution: "decompress-unzip@npm:4.0.1" - dependencies: - file-type: "npm:^3.8.0" - get-stream: "npm:^2.2.0" - pify: "npm:^2.3.0" - yauzl: "npm:^2.4.2" - checksum: ba9f3204ab2415bedb18d796244928a18148ef40dbb15174d0d01e5991b39536b03d02800a8a389515a1523f8fb13efc7cd44697df758cd06c674879caefd62b - languageName: node - linkType: hard - -"decompress@npm:^4.0.0": - version: 4.2.1 - resolution: "decompress@npm:4.2.1" - dependencies: - decompress-tar: "npm:^4.0.0" - decompress-tarbz2: "npm:^4.0.0" - decompress-targz: "npm:^4.0.0" - decompress-unzip: "npm:^4.0.1" - graceful-fs: "npm:^4.1.10" - make-dir: "npm:^1.0.0" - pify: "npm:^2.3.0" - strip-dirs: "npm:^2.0.0" - checksum: 8247a31c6db7178413715fdfb35a482f019c81dfcd6e8e623d9f0382c9889ce797ce0144de016b256ed03298907a620ce81387cca0e69067a933470081436cb8 - languageName: node - linkType: hard - "deep-eql@npm:^3.0.1": version: 3.0.1 resolution: "deep-eql@npm:3.0.1" @@ -25310,7 +27608,7 @@ __metadata: languageName: node linkType: hard -"deep-eql@npm:^4.0.1, deep-eql@npm:^4.1.3": +"deep-eql@npm:^4.0.1, deep-eql@npm:^4.1.2, deep-eql@npm:^4.1.3": version: 4.1.3 resolution: "deep-eql@npm:4.1.3" dependencies: @@ -25345,20 +27643,6 @@ __metadata: languageName: node linkType: hard -"deep-equal@npm:~1.1.1": - version: 1.1.2 - resolution: "deep-equal@npm:1.1.2" - dependencies: - is-arguments: "npm:^1.1.1" - is-date-object: "npm:^1.0.5" - is-regex: "npm:^1.1.4" - object-is: "npm:^1.1.5" - object-keys: "npm:^1.1.1" - regexp.prototype.flags: "npm:^1.5.1" - checksum: c9d2ed2a0d93a2ee286bdb320cd51c78cd4c310b2161d1ede6476b67ca1d73860e7ff63b10927830aa4b9eca2a48073cfa54c8c4a1b2246397bda618c2138e97 - languageName: node - linkType: hard - "deep-extend@npm:^0.6.0, deep-extend@npm:~0.6.0": version: 0.6.0 resolution: "deep-extend@npm:0.6.0" @@ -25415,13 +27699,6 @@ __metadata: languageName: node linkType: hard -"defer-to-connect@npm:^1.0.1": - version: 1.1.3 - resolution: "defer-to-connect@npm:1.1.3" - checksum: 9491b301dcfa04956f989481ba7a43c2231044206269eb4ab64a52d6639ee15b1252262a789eb4239fb46ab63e44d4e408641bae8e0793d640aee55398cb3930 - languageName: node - linkType: hard - "defer-to-connect@npm:^2.0.0, defer-to-connect@npm:^2.0.1": version: 2.0.1 resolution: "defer-to-connect@npm:2.0.1" @@ -25429,25 +27706,6 @@ __metadata: languageName: node linkType: hard -"deferred-leveldown@npm:~1.2.1": - version: 1.2.2 - resolution: "deferred-leveldown@npm:1.2.2" - dependencies: - abstract-leveldown: "npm:~2.6.0" - checksum: 17a79955e8191264c79422235dc5eea46fa1b5be43c06d50bfb149679721ec389168198ac2edf6635bd02372db19c1b0db5154d502b2ee93c33f0ad9644597be - languageName: node - linkType: hard - -"deferred-leveldown@npm:~4.0.0": - version: 4.0.2 - resolution: "deferred-leveldown@npm:4.0.2" - dependencies: - abstract-leveldown: "npm:~5.0.0" - inherits: "npm:^2.0.3" - checksum: 124de023a7f6d4b7109a2a8cdb361e533702035386718ab047960a763e993532854a027b7712caeb68d22e5c4358074fb5c3f7e7d7860dae16f3e482759d2cd6 - languageName: node - linkType: hard - "define-data-property@npm:^1.0.1, define-data-property@npm:^1.1.1, define-data-property@npm:^1.1.2, define-data-property@npm:^1.1.4": version: 1.1.4 resolution: "define-data-property@npm:1.1.4" @@ -25505,13 +27763,6 @@ __metadata: languageName: node linkType: hard -"defined@npm:~1.0.1": - version: 1.0.1 - resolution: "defined@npm:1.0.1" - checksum: c4c3c41819721ddc07f689a53cfdf5edb085d8d762e410e9e7705fdbcccb41ff34a7331e795cdc2c416f5e524215413815b47051507c0cd4d3c8a8d74baf8ccb - languageName: node - linkType: hard - "defu@npm:^6.1.3, defu@npm:^6.1.4": version: 6.1.4 resolution: "defu@npm:6.1.4" @@ -25556,13 +27807,6 @@ __metadata: languageName: node linkType: hard -"delimit-stream@npm:0.1.0": - version: 0.1.0 - resolution: "delimit-stream@npm:0.1.0" - checksum: 9d179cfb91dfbb0702909dfab33bd837fec67c49f0c81495215af578fb08f262d509d76de7431eb11e64e6e71794b9bfe642e372fd33fabbfaf7e060cf5c044f - languageName: node - linkType: hard - "denque@npm:^2.1.0": version: 2.1.0 resolution: "denque@npm:2.1.0" @@ -25659,13 +27903,6 @@ __metadata: languageName: node linkType: hard -"detect-indent@npm:^5.0.0": - version: 5.0.0 - resolution: "detect-indent@npm:5.0.0" - checksum: 61763211daa498e00eec073aba95d544ae5baed19286a0a655697fa4fffc9f4539c8376e2c7df8fa11d6f8eaa16c1e6a689f403ac41ee78a060278cdadefe2ff - languageName: node - linkType: hard - "detect-indent@npm:^6.0.0, detect-indent@npm:^6.1.0": version: 6.1.0 resolution: "detect-indent@npm:6.1.0" @@ -26253,15 +28490,6 @@ __metadata: languageName: node linkType: hard -"dot-case@npm:^2.1.0": - version: 2.1.1 - resolution: "dot-case@npm:2.1.1" - dependencies: - no-case: "npm:^2.2.0" - checksum: 5c9d937245ff810a7ae788602e40c62e38cb515146ddf9b11c7f60cb02aae84859588761f1e8769d9e713609fae3c78dc99c8da9e0ee8e4d8b5c09a2fdf70328 - languageName: node - linkType: hard - "dot-case@npm:^3.0.4": version: 3.0.4 resolution: "dot-case@npm:3.0.4" @@ -26332,17 +28560,6 @@ __metadata: languageName: node linkType: hard -"dotignore@npm:~0.1.2": - version: 0.1.2 - resolution: "dotignore@npm:0.1.2" - dependencies: - minimatch: "npm:^3.0.4" - bin: - ignored: bin/ignored - checksum: 06bab15e2a2400c6f823a0edbcd73661180f6245a4041a3fe3b9fde4b22ae74b896604df4520a877093f05c656bd080087376c9f605bccdea847664c59910f37 - languageName: node - linkType: hard - "dottie@npm:^2.0.4": version: 2.0.6 resolution: "dottie@npm:2.0.6" @@ -26367,13 +28584,6 @@ __metadata: languageName: node linkType: hard -"duplexer3@npm:^0.1.4": - version: 0.1.5 - resolution: "duplexer3@npm:0.1.5" - checksum: e677cb4c48f031ca728601d6a20bf6aed4c629d69ef9643cb89c67583d673c4ec9317cc6427501f38bd8c368d3a18f173987cc02bd99d8cf8fe3d94259a22a20 - languageName: node - linkType: hard - "duplexer@npm:^0.1.2": version: 0.1.2 resolution: "duplexer@npm:0.1.2" @@ -26495,7 +28705,35 @@ __metadata: languageName: node linkType: hard -"electron-to-chromium@npm:^1.3.47, electron-to-chromium@npm:^1.4.668": +"electron-to-chromium@npm:^1.4.284": + version: 1.4.397 + resolution: "electron-to-chromium@npm:1.4.397" + checksum: 4a1c8753dfc47eb7a1a9e425b76ebc7a38f437e3c6f0212c1882ae0dab4f741063a77ceab8bb74d0b596791d0bd6483bdd99cfe22d48c96da782860da40eac5b + languageName: node + linkType: hard + +"electron-to-chromium@npm:^1.4.431": + version: 1.4.474 + resolution: "electron-to-chromium@npm:1.4.474" + checksum: 8f2287a5288501801f776908f3fe62c177b5710d4a0d397d40e5b15780e097df6de90306a334d42c93af8511fd492abde77acbea025552c9e4ea573883767b3b + languageName: node + linkType: hard + +"electron-to-chromium@npm:^1.4.477": + version: 1.4.508 + resolution: "electron-to-chromium@npm:1.4.508" + checksum: 6d35069c60d16b6d9ad204cbd35ea0cdc78df88c04ccff21b2fc5c471f7cf56b8fbd19f4ff9c5b04bc54945f98f54b7cfbf9997adaa0aba747da12e4286a76e3 + languageName: node + linkType: hard + +"electron-to-chromium@npm:^1.4.601": + version: 1.4.605 + resolution: "electron-to-chromium@npm:1.4.605" + checksum: cf9b462320ff7e37779c5d9d76db5eb1c933bf86416f3dcbf9c0eee61b35d6c7685386ba59be77c28f9c819a0ffbf9bbbd939a3f08b71055bd27da5d789c286c + languageName: node + linkType: hard + +"electron-to-chromium@npm:^1.4.668": version: 1.4.690 resolution: "electron-to-chromium@npm:1.4.690" checksum: 3a8e43623b8b5d39783e369b28fe3ebcf5d26157793b27286c24a2a1536b10bb94b22468d1403c2f1a7beb2537a029e032bc320661ddc438f8a7e0e57dfd1efa @@ -26509,18 +28747,6 @@ __metadata: languageName: node linkType: hard -"elliptic@npm:6.3.3": - version: 6.3.3 - resolution: "elliptic@npm:6.3.3" - dependencies: - bn.js: "npm:^4.4.0" - brorand: "npm:^1.0.1" - hash.js: "npm:^1.0.0" - inherits: "npm:^2.0.1" - checksum: 005cbe051de6c4dd0f6be6a4092413da4a4b9b8bad28296c393aea316ee69b943fa5f85b9de8f033bba7e7c561b62b68b22e551ebc84070019cf98895ae75005 - languageName: node - linkType: hard - "elliptic@npm:6.5.4, elliptic@npm:^6.4.0, elliptic@npm:^6.5.2, elliptic@npm:^6.5.3, elliptic@npm:^6.5.4": version: 6.5.4 resolution: "elliptic@npm:6.5.4" @@ -26633,20 +28859,7 @@ __metadata: languageName: node linkType: hard -"encoding-down@npm:5.0.4, encoding-down@npm:~5.0.0": - version: 5.0.4 - resolution: "encoding-down@npm:5.0.4" - dependencies: - abstract-leveldown: "npm:^5.0.0" - inherits: "npm:^2.0.3" - level-codec: "npm:^9.0.0" - level-errors: "npm:^2.0.0" - xtend: "npm:^4.0.1" - checksum: aed668bb68e0db1f93979eb784f88d2350b268b1d4e2096a3421e4d0a4232fa928ff1af8b0131d4553f6189254bc9668053dc5e5d00b7230b5590e9e2c5bba22 - languageName: node - linkType: hard - -"encoding@npm:^0.1.11, encoding@npm:^0.1.13": +"encoding@npm:^0.1.13": version: 0.1.13 resolution: "encoding@npm:0.1.13" dependencies: @@ -26760,18 +28973,7 @@ __metadata: languageName: node linkType: hard -"errno@npm:~0.1.1": - version: 0.1.8 - resolution: "errno@npm:0.1.8" - dependencies: - prr: "npm:~1.0.1" - bin: - errno: cli.js - checksum: 93076ed11bedb8f0389cbefcbdd3445f66443159439dccbaac89a053428ad92147676736235d275612dc0296d3f9a7e6b7177ed78a566b6cd15dacd4fa0d5888 - languageName: node - linkType: hard - -"error-ex@npm:^1.2.0, error-ex@npm:^1.3.1": +"error-ex@npm:^1.3.1": version: 1.3.2 resolution: "error-ex@npm:1.3.2" dependencies: @@ -26908,13 +29110,20 @@ __metadata: languageName: node linkType: hard -"es-module-lexer@npm:^1.0.0, es-module-lexer@npm:^1.2.1": +"es-module-lexer@npm:^1.0.0": version: 1.4.1 resolution: "es-module-lexer@npm:1.4.1" checksum: cf453613468c417af6e189b03d9521804033fdd5a229a36fedec28d37ea929fccf6822d42abff1126eb01ba1d2aa2845a48d5d1772c0724f8204464d9d3855f6 languageName: node linkType: hard +"es-module-lexer@npm:^1.2.1": + version: 1.3.0 + resolution: "es-module-lexer@npm:1.3.0" + checksum: dee2af09669d05282db987839681ea1917ce31ce4a2364cc9eb598675344c5c709895e7e782db87794065a6f3af054552e2cf42ccadcaec4c9fc0cbc4898f193 + languageName: node + linkType: hard + "es-set-tostringtag@npm:^2.0.2, es-set-tostringtag@npm:^2.0.3": version: 2.0.3 resolution: "es-set-tostringtag@npm:2.0.3" @@ -27266,7 +29475,7 @@ __metadata: languageName: node linkType: hard -"esbuild@npm:^0.19.2, esbuild@npm:^0.19.3, esbuild@npm:~0.19.10": +"esbuild@npm:^0.19.2, esbuild@npm:~0.19.10": version: 0.19.12 resolution: "esbuild@npm:0.19.12" dependencies: @@ -27346,6 +29555,83 @@ __metadata: languageName: node linkType: hard +"esbuild@npm:^0.19.3": + version: 0.19.5 + resolution: "esbuild@npm:0.19.5" + dependencies: + "@esbuild/android-arm": "npm:0.19.5" + "@esbuild/android-arm64": "npm:0.19.5" + "@esbuild/android-x64": "npm:0.19.5" + "@esbuild/darwin-arm64": "npm:0.19.5" + "@esbuild/darwin-x64": "npm:0.19.5" + "@esbuild/freebsd-arm64": "npm:0.19.5" + "@esbuild/freebsd-x64": "npm:0.19.5" + "@esbuild/linux-arm": "npm:0.19.5" + "@esbuild/linux-arm64": "npm:0.19.5" + "@esbuild/linux-ia32": "npm:0.19.5" + "@esbuild/linux-loong64": "npm:0.19.5" + "@esbuild/linux-mips64el": "npm:0.19.5" + "@esbuild/linux-ppc64": "npm:0.19.5" + "@esbuild/linux-riscv64": "npm:0.19.5" + "@esbuild/linux-s390x": "npm:0.19.5" + "@esbuild/linux-x64": "npm:0.19.5" + "@esbuild/netbsd-x64": "npm:0.19.5" + "@esbuild/openbsd-x64": "npm:0.19.5" + "@esbuild/sunos-x64": "npm:0.19.5" + "@esbuild/win32-arm64": "npm:0.19.5" + "@esbuild/win32-ia32": "npm:0.19.5" + "@esbuild/win32-x64": "npm:0.19.5" + dependenciesMeta: + "@esbuild/android-arm": + optional: true + "@esbuild/android-arm64": + optional: true + "@esbuild/android-x64": + optional: true + "@esbuild/darwin-arm64": + optional: true + "@esbuild/darwin-x64": + optional: true + "@esbuild/freebsd-arm64": + optional: true + "@esbuild/freebsd-x64": + optional: true + "@esbuild/linux-arm": + optional: true + "@esbuild/linux-arm64": + optional: true + "@esbuild/linux-ia32": + optional: true + "@esbuild/linux-loong64": + optional: true + "@esbuild/linux-mips64el": + optional: true + "@esbuild/linux-ppc64": + optional: true + "@esbuild/linux-riscv64": + optional: true + "@esbuild/linux-s390x": + optional: true + "@esbuild/linux-x64": + optional: true + "@esbuild/netbsd-x64": + optional: true + "@esbuild/openbsd-x64": + optional: true + "@esbuild/sunos-x64": + optional: true + "@esbuild/win32-arm64": + optional: true + "@esbuild/win32-ia32": + optional: true + "@esbuild/win32-x64": + optional: true + bin: + esbuild: bin/esbuild + checksum: f8ffe0cbab8a80ec63b6962b7d722da9e3dbe79a57d3cd998e107e35792068facd6f63e58ae19e919891456ed6cb73114a9777f0e7353ec8613b4fc75571d56d + languageName: node + linkType: hard + "escalade@npm:^3.1.1": version: 3.1.2 resolution: "escalade@npm:3.1.2" @@ -27752,13 +30038,20 @@ __metadata: languageName: node linkType: hard -"eslint-visitor-keys@npm:^3.3.0, eslint-visitor-keys@npm:^3.4.1, eslint-visitor-keys@npm:^3.4.2, eslint-visitor-keys@npm:^3.4.3": +"eslint-visitor-keys@npm:^3.3.0, eslint-visitor-keys@npm:^3.4.1, eslint-visitor-keys@npm:^3.4.3": version: 3.4.3 resolution: "eslint-visitor-keys@npm:3.4.3" checksum: 3f357c554a9ea794b094a09bd4187e5eacd1bc0d0653c3adeb87962c548e6a1ab8f982b86963ae1337f5d976004146536dcee5d0e2806665b193fbfbf1a9231b languageName: node linkType: hard +"eslint-visitor-keys@npm:^3.4.2": + version: 3.4.2 + resolution: "eslint-visitor-keys@npm:3.4.2" + checksum: 04e7e9d546ba01611fb7dc9dc3484b088cb3fd7bad90312a8eb8b28bc8bf23aa191b0d45cdabc7ab67a7aaa8966e505aef7ff1571397a045857836a3e107fe6a + languageName: node + linkType: hard + "eslint@npm:8.41.0": version: 8.41.0 resolution: "eslint@npm:8.41.0" @@ -27974,7 +30267,7 @@ __metadata: languageName: node linkType: hard -"espree@npm:^9.5.2, espree@npm:^9.6.0, espree@npm:^9.6.1": +"espree@npm:^9.5.2, espree@npm:^9.6.1": version: 9.6.1 resolution: "espree@npm:9.6.1" dependencies: @@ -27985,6 +30278,17 @@ __metadata: languageName: node linkType: hard +"espree@npm:^9.6.0": + version: 9.6.0 + resolution: "espree@npm:9.6.0" + dependencies: + acorn: "npm:^8.9.0" + acorn-jsx: "npm:^5.3.2" + eslint-visitor-keys: "npm:^3.4.1" + checksum: 870834c0ab188213ba56fae7003ff9fadbad2b9285dae941840c3d425cedbb2221ad3cffaabd217bc36b96eb80d651c2a2d9b0b1f3b9394b2358b27052c942e2 + languageName: node + linkType: hard + "esprima@npm:2.7.x, esprima@npm:^2.7.1": version: 2.7.3 resolution: "esprima@npm:2.7.3" @@ -28172,22 +30476,7 @@ __metadata: languageName: node linkType: hard -"eth-block-tracker@npm:^3.0.0": - version: 3.0.1 - resolution: "eth-block-tracker@npm:3.0.1" - dependencies: - eth-query: "npm:^2.1.0" - ethereumjs-tx: "npm:^1.3.3" - ethereumjs-util: "npm:^5.1.3" - ethjs-util: "npm:^0.1.3" - json-rpc-engine: "npm:^3.6.0" - pify: "npm:^2.3.0" - tape: "npm:^4.6.3" - checksum: 9276de4f93c853c50c0561d3538a6dbb3c082773936dce28a6e786f7f4ac2ca7f8cf41a2a1350b08481f102f19f5688c0f619ff052ff8b5004d95dd234247036 - languageName: node - linkType: hard - -"eth-ens-namehash@npm:2.0.8, eth-ens-namehash@npm:^2.0.0, eth-ens-namehash@npm:^2.0.8": +"eth-ens-namehash@npm:2.0.8": version: 2.0.8 resolution: "eth-ens-namehash@npm:2.0.8" dependencies: @@ -28197,7 +30486,7 @@ __metadata: languageName: node linkType: hard -"eth-gas-reporter@npm:0.2.27, eth-gas-reporter@npm:^0.2.24, eth-gas-reporter@npm:^0.2.25": +"eth-gas-reporter@npm:0.2.27, eth-gas-reporter@npm:^0.2.24": version: 0.2.27 resolution: "eth-gas-reporter@npm:0.2.27" dependencies: @@ -28223,6 +30512,34 @@ __metadata: languageName: node linkType: hard +"eth-gas-reporter@npm:^0.2.25": + version: 0.2.25 + resolution: "eth-gas-reporter@npm:0.2.25" + dependencies: + "@ethersproject/abi": "npm:^5.0.0-beta.146" + "@solidity-parser/parser": "npm:^0.14.0" + cli-table3: "npm:^0.5.0" + colors: "npm:1.4.0" + ethereum-cryptography: "npm:^1.0.3" + ethers: "npm:^4.0.40" + fs-readdir-recursive: "npm:^1.1.0" + lodash: "npm:^4.17.14" + markdown-table: "npm:^1.1.3" + mocha: "npm:^7.1.1" + req-cwd: "npm:^2.0.0" + request: "npm:^2.88.0" + request-promise-native: "npm:^1.0.5" + sha1: "npm:^1.1.1" + sync-request: "npm:^6.0.0" + peerDependencies: + "@codechecks/client": ^0.1.0 + peerDependenciesMeta: + "@codechecks/client": + optional: true + checksum: 96c85f6bb684f79a6099383ba927bcc2756360dcb2e5635cf5dd2d97029e7620ab4349c7b5f3171b5da212ce747ec017552cb98676e6fd8511cceae1e1a8856e + languageName: node + linkType: hard + "eth-json-rpc-filters@npm:4.2.2": version: 4.2.2 resolution: "eth-json-rpc-filters@npm:4.2.2" @@ -28237,39 +30554,6 @@ __metadata: languageName: node linkType: hard -"eth-json-rpc-infura@npm:^3.1.0": - version: 3.2.1 - resolution: "eth-json-rpc-infura@npm:3.2.1" - dependencies: - cross-fetch: "npm:^2.1.1" - eth-json-rpc-middleware: "npm:^1.5.0" - json-rpc-engine: "npm:^3.4.0" - json-rpc-error: "npm:^2.0.0" - checksum: dead927d47bda3cf98f9cc534113dea3f830bf3c3ef76be8f216a20ba95583340c1bf9365578e5308b7f2b93b9a4da6a540d7c0a0ef81b29796c8284dc3c0a78 - languageName: node - linkType: hard - -"eth-json-rpc-middleware@npm:^1.5.0": - version: 1.6.0 - resolution: "eth-json-rpc-middleware@npm:1.6.0" - dependencies: - async: "npm:^2.5.0" - eth-query: "npm:^2.1.2" - eth-tx-summary: "npm:^3.1.2" - ethereumjs-block: "npm:^1.6.0" - ethereumjs-tx: "npm:^1.3.3" - ethereumjs-util: "npm:^5.1.2" - ethereumjs-vm: "npm:^2.1.0" - fetch-ponyfill: "npm:^4.0.0" - json-rpc-engine: "npm:^3.6.0" - json-rpc-error: "npm:^2.0.0" - json-stable-stringify: "npm:^1.0.1" - promise-to-callback: "npm:^1.0.0" - tape: "npm:^4.6.3" - checksum: 6eadaf0a9a53098b6e488e4e742df1414be2ef0bfc683ed2258c5967c71b449122a39e86bfdc8f3cbcf0f15ac66cbda0f05af2489e3509535122e57e8954177c - languageName: node - linkType: hard - "eth-json-rpc-middleware@npm:^6.0.0": version: 6.0.0 resolution: "eth-json-rpc-middleware@npm:6.0.0" @@ -28289,17 +30573,6 @@ __metadata: languageName: node linkType: hard -"eth-lib@npm:0.2.7": - version: 0.2.7 - resolution: "eth-lib@npm:0.2.7" - dependencies: - bn.js: "npm:^4.11.6" - elliptic: "npm:^6.4.0" - xhr-request-promise: "npm:^0.1.2" - checksum: 36dca25fabab69f9efff78c1acbb960802ecf1138713d38288a1f64fb1e5f33b90a40b719b1235b70409e4161ca704cf38145ddbccb27d95a4b42ea99fca24a9 - languageName: node - linkType: hard - "eth-lib@npm:0.2.8": version: 0.2.8 resolution: "eth-lib@npm:0.2.8" @@ -28325,7 +30598,7 @@ __metadata: languageName: node linkType: hard -"eth-query@npm:^2.0.2, eth-query@npm:^2.1.0, eth-query@npm:^2.1.2": +"eth-query@npm:^2.1.0, eth-query@npm:^2.1.2": version: 2.1.2 resolution: "eth-query@npm:2.1.2" dependencies: @@ -28362,32 +30635,6 @@ __metadata: languageName: node linkType: hard -"eth-sig-util@npm:3.0.0": - version: 3.0.0 - resolution: "eth-sig-util@npm:3.0.0" - dependencies: - buffer: "npm:^5.2.1" - elliptic: "npm:^6.4.0" - ethereumjs-abi: "npm:0.6.5" - ethereumjs-util: "npm:^5.1.1" - tweetnacl: "npm:^1.0.0" - tweetnacl-util: "npm:^0.15.0" - checksum: c3cbcbc25991c59d94411c585333c56d3c8ec7ce18409a49bc6dad0a45af3b57b3a366b686117f39812a7169543019ee922b5622b748aecd34c951d1473c6c16 - languageName: node - linkType: hard - -"eth-sig-util@npm:3.0.1": - version: 3.0.1 - resolution: "eth-sig-util@npm:3.0.1" - dependencies: - ethereumjs-abi: "npm:^0.6.8" - ethereumjs-util: "npm:^5.1.1" - tweetnacl: "npm:^1.0.3" - tweetnacl-util: "npm:^0.15.0" - checksum: 2f6a68b72569528c310f429136284596e28aac9de4874ef62af6ae76340193991c02cc88b50388ac8c5d3dc120c635d62e59eb7d6e49df51e75d20d9e45c70dc - languageName: node - linkType: hard - "eth-sig-util@npm:^1.4.2": version: 1.4.2 resolution: "eth-sig-util@npm:1.4.2" @@ -28398,36 +30645,6 @@ __metadata: languageName: node linkType: hard -"eth-tx-summary@npm:^3.1.2": - version: 3.2.4 - resolution: "eth-tx-summary@npm:3.2.4" - dependencies: - async: "npm:^2.1.2" - clone: "npm:^2.0.0" - concat-stream: "npm:^1.5.1" - end-of-stream: "npm:^1.1.0" - eth-query: "npm:^2.0.2" - ethereumjs-block: "npm:^1.4.1" - ethereumjs-tx: "npm:^1.1.1" - ethereumjs-util: "npm:^5.0.1" - ethereumjs-vm: "npm:^2.6.0" - through2: "npm:^2.0.3" - checksum: 868cfc7575949634b7413a2fe586c654691646967eaa6cccf3c10f2e54ef3c978b5c64b7ab4562e9e572d5aa18bcd6b461ac0e0223a94083b72eee04a306017d - languageName: node - linkType: hard - -"ethashjs@npm:~0.0.7": - version: 0.0.8 - resolution: "ethashjs@npm:0.0.8" - dependencies: - async: "npm:^2.1.2" - buffer-xor: "npm:^2.0.1" - ethereumjs-util: "npm:^7.0.2" - miller-rabin: "npm:^4.0.0" - checksum: 5364b2603df6cd0462d0408063fdf716ae6ed96b4dbc09278dde79132f94a92b458021446aa7db83568338d1cf3be180e140eda4c727e89261a01adf10574488 - languageName: node - linkType: hard - "ethereum-bloom-filters@npm:^1.0.6": version: 1.0.10 resolution: "ethereum-bloom-filters@npm:1.0.10" @@ -28437,20 +30654,6 @@ __metadata: languageName: node linkType: hard -"ethereum-common@npm:0.2.0": - version: 0.2.0 - resolution: "ethereum-common@npm:0.2.0" - checksum: a5dad354bcfd01651b4b0f7a2cd7a8165154b19d3daa8023c3328bcebe209be0311f552cf100e394d8a36869485ed90064047728f60c7eef7689c939b5c40681 - languageName: node - linkType: hard - -"ethereum-common@npm:^0.0.18": - version: 0.0.18 - resolution: "ethereum-common@npm:0.0.18" - checksum: 8348d686e7aea9b1a3aef6200a38f46873636130ed99dd0220585f27bca1a5f51b47b7a735eb532471277ab20aedd1f0129530811af61d88dc8379ef650d20b3 - languageName: node - linkType: hard - "ethereum-cryptography@npm:0.1.3, ethereum-cryptography@npm:^0.1.3": version: 0.1.3 resolution: "ethereum-cryptography@npm:0.1.3" @@ -28498,20 +30701,6 @@ __metadata: languageName: node linkType: hard -"ethereum-ens@npm:^0.8.0": - version: 0.8.0 - resolution: "ethereum-ens@npm:0.8.0" - dependencies: - bluebird: "npm:^3.4.7" - eth-ens-namehash: "npm:^2.0.0" - js-sha3: "npm:^0.5.7" - pako: "npm:^1.0.4" - underscore: "npm:^1.8.3" - web3: "npm:^1.0.0-beta.34" - checksum: dad6f238c21bc5dc0fe0e63c60e88885d4a6de87261d3bb00949ccb7150b5bf43818ff48270b9ce27bee2aeed83c1bdea7ca7ee5ee1d75cb109347c7b586f1c7 - languageName: node - linkType: hard - "ethereumjs-abi@git+https://github.com/ethereumjs/ethereumjs-abi.git": version: 0.6.8 resolution: "ethereumjs-abi@https://github.com/ethereumjs/ethereumjs-abi.git#commit=ee3994657fa7a427238e6ba92a84d0b529bbcde0" @@ -28522,17 +30711,7 @@ __metadata: languageName: node linkType: hard -"ethereumjs-abi@npm:0.6.5": - version: 0.6.5 - resolution: "ethereumjs-abi@npm:0.6.5" - dependencies: - bn.js: "npm:^4.10.0" - ethereumjs-util: "npm:^4.3.0" - checksum: 34a8fd808f14821ad0ef38df438db794baca32b93957f1c1c902737685fc8945a672b3fee0d33ee3f0ac1fb73cbad3f36240293040e27ccc0d8d0f1d95fd7231 - languageName: node - linkType: hard - -"ethereumjs-abi@npm:0.6.8, ethereumjs-abi@npm:^0.6.8": +"ethereumjs-abi@npm:^0.6.8": version: 0.6.8 resolution: "ethereumjs-abi@npm:0.6.8" dependencies: @@ -28542,107 +30721,22 @@ __metadata: languageName: node linkType: hard -"ethereumjs-account@npm:3.0.0, ethereumjs-account@npm:^3.0.0": - version: 3.0.0 - resolution: "ethereumjs-account@npm:3.0.0" - dependencies: - ethereumjs-util: "npm:^6.0.0" - rlp: "npm:^2.2.1" - safe-buffer: "npm:^5.1.1" - checksum: 64dbe026d29aca12c79596cf4085fb27e209988f11b7d5bf3a1f2aadaaa517d90d722680c8b525144c26a2d9cd8494aa26ac088fa80b358cc3e28024f7ddbe81 - languageName: node - linkType: hard - -"ethereumjs-account@npm:^2.0.3": - version: 2.0.5 - resolution: "ethereumjs-account@npm:2.0.5" +"ethereumjs-util@npm:^5.1.1, ethereumjs-util@npm:^5.1.2": + version: 5.2.1 + resolution: "ethereumjs-util@npm:5.2.1" dependencies: - ethereumjs-util: "npm:^5.0.0" + bn.js: "npm:^4.11.0" + create-hash: "npm:^1.1.2" + elliptic: "npm:^6.5.2" + ethereum-cryptography: "npm:^0.1.3" + ethjs-util: "npm:^0.1.3" rlp: "npm:^2.0.0" safe-buffer: "npm:^5.1.1" - checksum: 1f734e67378dd55203d6d7e2b307ddeb39fa9a150297636c5e2807aafaa94bc0cd3dfedcb0b964e7e5473d83a35d62dd0475e2b24598fb69d6a92fb57c2a7488 - languageName: node - linkType: hard - -"ethereumjs-block@npm:2.2.2, ethereumjs-block@npm:^2.2.2, ethereumjs-block@npm:~2.2.0, ethereumjs-block@npm:~2.2.2": - version: 2.2.2 - resolution: "ethereumjs-block@npm:2.2.2" - dependencies: - async: "npm:^2.0.1" - ethereumjs-common: "npm:^1.5.0" - ethereumjs-tx: "npm:^2.1.1" - ethereumjs-util: "npm:^5.0.0" - merkle-patricia-tree: "npm:^2.1.2" - checksum: 5179e91d27acc3614199d8098449f16de7927e14239a996c8e7af6e2f65867048a3125ab79af4bac4f828228d332a0ae5837997b5bb259bd2dab2fe6dde455ac - languageName: node - linkType: hard - -"ethereumjs-block@npm:^1.2.2, ethereumjs-block@npm:^1.4.1, ethereumjs-block@npm:^1.6.0": - version: 1.7.1 - resolution: "ethereumjs-block@npm:1.7.1" - dependencies: - async: "npm:^2.0.1" - ethereum-common: "npm:0.2.0" - ethereumjs-tx: "npm:^1.2.2" - ethereumjs-util: "npm:^5.0.0" - merkle-patricia-tree: "npm:^2.1.2" - checksum: 732423cd2c9f30b0c009783f130f994e104c4f6a88246a417b0d3da80d8e11db58e6692940afe290c02318004945d7396aaff6fba2b959ef800d4e31e3646e77 - languageName: node - linkType: hard - -"ethereumjs-blockchain@npm:^4.0.3": - version: 4.0.4 - resolution: "ethereumjs-blockchain@npm:4.0.4" - dependencies: - async: "npm:^2.6.1" - ethashjs: "npm:~0.0.7" - ethereumjs-block: "npm:~2.2.2" - ethereumjs-common: "npm:^1.5.0" - ethereumjs-util: "npm:^6.1.0" - flow-stoplight: "npm:^1.0.0" - level-mem: "npm:^3.0.1" - lru-cache: "npm:^5.1.1" - rlp: "npm:^2.2.2" - semaphore: "npm:^1.1.0" - checksum: 70041abc21eece9401d47b984608ae11dd55b1ae2c30551fc7c9387d1215ba5ae595641bcfe4fdff01da001707af3887611fcb6f2d027bcf7db6befa3bff2f0f - languageName: node - linkType: hard - -"ethereumjs-common@npm:1.5.0": - version: 1.5.0 - resolution: "ethereumjs-common@npm:1.5.0" - checksum: 10496f2cf7ceb2f5c7c51d6d706677ed419eb352f45e45cb191a02038e132cb8e8e94bdabbcf43c46ad29d491e02dba6c597d24c3dd8aafa28f1dd51acab7731 - languageName: node - linkType: hard - -"ethereumjs-common@npm:^1.1.0, ethereumjs-common@npm:^1.3.2, ethereumjs-common@npm:^1.5.0": - version: 1.5.2 - resolution: "ethereumjs-common@npm:1.5.2" - checksum: ae24d814ff25a15aaef2ca03d526ce6fe60a5edd17bacb66f7af4ca57910b91e70507f8611a4aac640f92ddcccd2ee7c38e354024c53f5705bc1d489a70f8298 - languageName: node - linkType: hard - -"ethereumjs-tx@npm:2.1.2, ethereumjs-tx@npm:^2.1.1, ethereumjs-tx@npm:^2.1.2": - version: 2.1.2 - resolution: "ethereumjs-tx@npm:2.1.2" - dependencies: - ethereumjs-common: "npm:^1.5.0" - ethereumjs-util: "npm:^6.0.0" - checksum: 8a9fcbafe1ec9fdc66248238987f83a78de853f9c1735897741d2bd151f463829a04b351eeb23f2723bf41cf57b35d0761b1424a11aa6cf62a63833aa7181f17 - languageName: node - linkType: hard - -"ethereumjs-tx@npm:^1.1.1, ethereumjs-tx@npm:^1.2.0, ethereumjs-tx@npm:^1.2.2, ethereumjs-tx@npm:^1.3.3": - version: 1.3.7 - resolution: "ethereumjs-tx@npm:1.3.7" - dependencies: - ethereum-common: "npm:^0.0.18" - ethereumjs-util: "npm:^5.0.0" - checksum: 967e1047fd0f70ae7f87a4fff41fc7226ff89c6b0a9b925e148deec2dfdccdac1e120d2dc64cf74c9639ae5ac7c51845558eb1d6809146776c8bd39a1065a319 + checksum: f3957c7ccb4abe55c894ab1d039ecfbac1ce3025f4adfee61722760440b704f13dd056fdd9eaaa2be1154c17bba152e1c7f93ce91da3d3d1314de9c479003f9b languageName: node linkType: hard -"ethereumjs-util@npm:6.2.1, ethereumjs-util@npm:^6.0.0, ethereumjs-util@npm:^6.1.0, ethereumjs-util@npm:^6.2.0, ethereumjs-util@npm:^6.2.1": +"ethereumjs-util@npm:^6.0.0, ethereumjs-util@npm:^6.2.1": version: 6.2.1 resolution: "ethereumjs-util@npm:6.2.1" dependencies: @@ -28657,35 +30751,7 @@ __metadata: languageName: node linkType: hard -"ethereumjs-util@npm:^4.3.0": - version: 4.5.1 - resolution: "ethereumjs-util@npm:4.5.1" - dependencies: - bn.js: "npm:^4.8.0" - create-hash: "npm:^1.1.2" - elliptic: "npm:^6.5.2" - ethereum-cryptography: "npm:^0.1.3" - rlp: "npm:^2.0.0" - checksum: cb51c2ce85d77e93796607503ac4b07ab19fa3de4ee9a77b6fdd9e4df499c8f16a5e2cc410a627009f8a4a9ec39b5dc6eec1b9034ae20c25a080d1cf9e8586e7 - languageName: node - linkType: hard - -"ethereumjs-util@npm:^5.0.0, ethereumjs-util@npm:^5.0.1, ethereumjs-util@npm:^5.1.1, ethereumjs-util@npm:^5.1.2, ethereumjs-util@npm:^5.1.3, ethereumjs-util@npm:^5.1.5, ethereumjs-util@npm:^5.2.0": - version: 5.2.1 - resolution: "ethereumjs-util@npm:5.2.1" - dependencies: - bn.js: "npm:^4.11.0" - create-hash: "npm:^1.1.2" - elliptic: "npm:^6.5.2" - ethereum-cryptography: "npm:^0.1.3" - ethjs-util: "npm:^0.1.3" - rlp: "npm:^2.0.0" - safe-buffer: "npm:^5.1.1" - checksum: f3957c7ccb4abe55c894ab1d039ecfbac1ce3025f4adfee61722760440b704f13dd056fdd9eaaa2be1154c17bba152e1c7f93ce91da3d3d1314de9c479003f9b - languageName: node - linkType: hard - -"ethereumjs-util@npm:^7.0.10, ethereumjs-util@npm:^7.0.2, ethereumjs-util@npm:^7.0.3, ethereumjs-util@npm:^7.1.0, ethereumjs-util@npm:^7.1.1, ethereumjs-util@npm:^7.1.2, ethereumjs-util@npm:^7.1.4, ethereumjs-util@npm:^7.1.5": +"ethereumjs-util@npm:^7.0.3, ethereumjs-util@npm:^7.1.0, ethereumjs-util@npm:^7.1.4, ethereumjs-util@npm:^7.1.5": version: 7.1.5 resolution: "ethereumjs-util@npm:7.1.5" dependencies: @@ -28698,84 +30764,7 @@ __metadata: languageName: node linkType: hard -"ethereumjs-vm@npm:4.2.0": - version: 4.2.0 - resolution: "ethereumjs-vm@npm:4.2.0" - dependencies: - async: "npm:^2.1.2" - async-eventemitter: "npm:^0.2.2" - core-js-pure: "npm:^3.0.1" - ethereumjs-account: "npm:^3.0.0" - ethereumjs-block: "npm:^2.2.2" - ethereumjs-blockchain: "npm:^4.0.3" - ethereumjs-common: "npm:^1.5.0" - ethereumjs-tx: "npm:^2.1.2" - ethereumjs-util: "npm:^6.2.0" - fake-merkle-patricia-tree: "npm:^1.0.1" - functional-red-black-tree: "npm:^1.0.1" - merkle-patricia-tree: "npm:^2.3.2" - rustbn.js: "npm:~0.2.0" - safe-buffer: "npm:^5.1.1" - util.promisify: "npm:^1.0.0" - checksum: 1e7f763db00ef45dcadeee46fef69f3cfb2cd68d498efb220a915da85e4db315a4234150c2a535828c3e7e1106a76f854a43aa92a6a6eaffa403cd9217a60268 - languageName: node - linkType: hard - -"ethereumjs-vm@npm:^2.1.0, ethereumjs-vm@npm:^2.3.4, ethereumjs-vm@npm:^2.6.0": - version: 2.6.0 - resolution: "ethereumjs-vm@npm:2.6.0" - dependencies: - async: "npm:^2.1.2" - async-eventemitter: "npm:^0.2.2" - ethereumjs-account: "npm:^2.0.3" - ethereumjs-block: "npm:~2.2.0" - ethereumjs-common: "npm:^1.1.0" - ethereumjs-util: "npm:^6.0.0" - fake-merkle-patricia-tree: "npm:^1.0.1" - functional-red-black-tree: "npm:^1.0.1" - merkle-patricia-tree: "npm:^2.3.2" - rustbn.js: "npm:~0.2.0" - safe-buffer: "npm:^5.1.1" - checksum: ddf84ce284bf54ec0acb7fa037f0b07fbe4f9c5314a3df5dd9acca9542cbc86107ad9b1614e0061172f38c25ee0ef8ea5d68accf268a4280dbaf68386b4b6fae - languageName: node - linkType: hard - -"ethereumjs-wallet@npm:0.6.5, ethereumjs-wallet@npm:^0.6.3": - version: 0.6.5 - resolution: "ethereumjs-wallet@npm:0.6.5" - dependencies: - aes-js: "npm:^3.1.1" - bs58check: "npm:^2.1.2" - ethereum-cryptography: "npm:^0.1.3" - ethereumjs-util: "npm:^6.0.0" - randombytes: "npm:^2.0.6" - safe-buffer: "npm:^5.1.2" - scryptsy: "npm:^1.2.1" - utf8: "npm:^3.0.0" - uuid: "npm:^3.3.2" - checksum: 011d4205dfbf4c405b02fe77b7d4924ed39ab3124bc2d982cc436fd052ccf7392a1a408c704bf159d7fc5b000dfce254b313f7d5a224e6e950f2444de4904953 - languageName: node - linkType: hard - -"ethers@npm:4.0.0-beta.3": - version: 4.0.0-beta.3 - resolution: "ethers@npm:4.0.0-beta.3" - dependencies: - "@types/node": "npm:^10.3.2" - aes-js: "npm:3.0.0" - bn.js: "npm:^4.4.0" - elliptic: "npm:6.3.3" - hash.js: "npm:1.1.3" - js-sha3: "npm:0.5.7" - scrypt-js: "npm:2.0.3" - setimmediate: "npm:1.0.4" - uuid: "npm:2.0.1" - xmlhttprequest: "npm:1.8.0" - checksum: ffa26880f70e34908b61862bb4ddf442039a69b63966c59e12377e04d95cdfceca4b2e523c6c218de7f4f82c63d803bedd5cc4e60b9353dec12e03531ae3ff8e - languageName: node - linkType: hard - -"ethers@npm:5.7.2, ethers@npm:^5.0.13, ethers@npm:^5.3.1, ethers@npm:^5.5.4, ethers@npm:^5.6.1, ethers@npm:^5.7.0, ethers@npm:^5.7.2": +"ethers@npm:5.7.2, ethers@npm:^5.3.1, ethers@npm:^5.5.4, ethers@npm:^5.6.1, ethers@npm:^5.7.0, ethers@npm:^5.7.1, ethers@npm:^5.7.2": version: 5.7.2 resolution: "ethers@npm:5.7.2" dependencies: @@ -28828,7 +30817,7 @@ __metadata: languageName: node linkType: hard -"ethers@npm:^4.0.0-beta.1, ethers@npm:^4.0.20, ethers@npm:^4.0.32": +"ethers@npm:^4.0.40": version: 4.0.49 resolution: "ethers@npm:4.0.49" dependencies: @@ -28860,17 +30849,6 @@ __metadata: languageName: node linkType: hard -"ethjs-abi@npm:^0.2.1": - version: 0.2.1 - resolution: "ethjs-abi@npm:0.2.1" - dependencies: - bn.js: "npm:4.11.6" - js-sha3: "npm:0.5.5" - number-to-bn: "npm:1.7.0" - checksum: 733b2b95ae102f0813ad70848d42424b4b6204598892bee0e0fb435aafc7d356e479e489ee2d6b81fb2bd6e5ae6a9cdc0479bc35244b2efbe1a00a8da6735fbb - languageName: node - linkType: hard - "ethjs-unit@npm:0.1.6": version: 0.1.6 resolution: "ethjs-unit@npm:0.1.6" @@ -28918,13 +30896,6 @@ __metadata: languageName: node linkType: hard -"eventemitter3@npm:3.1.2": - version: 3.1.2 - resolution: "eventemitter3@npm:3.1.2" - checksum: e2886001beb52cd2fe47d2470fd6266b7c70bd3ac356c0041a7e64336ed57bb1fc9b07bc9043d34b39913488a8d81bfcde62d3af597974980aa01b50844d869b - languageName: node - linkType: hard - "eventemitter3@npm:4.0.4": version: 4.0.4 resolution: "eventemitter3@npm:4.0.4" @@ -28932,7 +30903,7 @@ __metadata: languageName: node linkType: hard -"eventemitter3@npm:^4.0.0, eventemitter3@npm:^4.0.4, eventemitter3@npm:^4.0.7": +"eventemitter3@npm:^4.0.0, eventemitter3@npm:^4.0.7": version: 4.0.7 resolution: "eventemitter3@npm:4.0.7" checksum: 8030029382404942c01d0037079f1b1bc8fed524b5849c237b80549b01e2fc49709e1d0c557fa65ca4498fc9e24cff1475ef7b855121fcc15f9d61f93e282346 @@ -29022,20 +30993,6 @@ __metadata: languageName: node linkType: hard -"exorcist@npm:^1.0.1": - version: 1.0.1 - resolution: "exorcist@npm:1.0.1" - dependencies: - is-stream: "npm:~1.1.0" - minimist: "npm:0.0.5" - mkdirp: "npm:~0.5.1" - mold-source-map: "npm:~0.4.0" - bin: - exorcist: ./bin/exorcist.js - checksum: 98864cd6bc2fb46012b10a12a8ce9be07ace507392379bb9fc1f084b94119c21ed6e7c9243edd962ef07f81b853b4fb7e6d1c510c2bcacaad47649b791881836 - languageName: node - linkType: hard - "expand-brackets@npm:^2.1.4": version: 2.1.4 resolution: "expand-brackets@npm:2.1.4" @@ -29353,22 +31310,13 @@ __metadata: languageName: node linkType: hard -"eyes@npm:0.1.x, eyes@npm:^0.1.8": +"eyes@npm:^0.1.8": version: 0.1.8 resolution: "eyes@npm:0.1.8" checksum: 58480c1f4c8e80ae9d4147afa0e0cc3403e5a3d1fa9e0c17dd8418f87273762c40ab035919ed407f6ed0992086495b93ff7163eb2a1027f58ae70e3c847d6c08 languageName: node linkType: hard -"fake-merkle-patricia-tree@npm:^1.0.1": - version: 1.0.1 - resolution: "fake-merkle-patricia-tree@npm:1.0.1" - dependencies: - checkpoint-store: "npm:^1.1.0" - checksum: db445809b41a3b99db604cfd943a894a1a10d6e0fe50d4192331fc9b411ef88f544c33c40cdbf5b04d57633799d13eaf2a690c501b026863539acb941880321c - languageName: node - linkType: hard - "faker@npm:5.1.0": version: 5.1.0 resolution: "faker@npm:5.1.0" @@ -29390,15 +31338,6 @@ __metadata: languageName: node linkType: hard -"fast-check@npm:3.1.1": - version: 3.1.1 - resolution: "fast-check@npm:3.1.1" - dependencies: - pure-rand: "npm:^5.0.1" - checksum: 54b89e554c86a900534aa342638d7258120d243104e67e51894b091c5c0a297e96f772564e8a88d6486aa802858db90ff4bc7f9501198b7fcaedd48fc081f5bc - languageName: node - linkType: hard - "fast-content-type-parse@npm:^1.0.0": version: 1.1.0 resolution: "fast-content-type-parse@npm:1.1.0" @@ -29441,7 +31380,7 @@ __metadata: languageName: node linkType: hard -"fast-glob@npm:^3.0.3, fast-glob@npm:^3.2.11, fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.0, fast-glob@npm:^3.3.1, fast-glob@npm:^3.3.2": +"fast-glob@npm:^3.0.3, fast-glob@npm:^3.2.11, fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.1, fast-glob@npm:^3.3.2": version: 3.3.2 resolution: "fast-glob@npm:3.3.2" dependencies: @@ -29454,6 +31393,19 @@ __metadata: languageName: node linkType: hard +"fast-glob@npm:^3.3.0": + version: 3.3.1 + resolution: "fast-glob@npm:3.3.1" + dependencies: + "@nodelib/fs.stat": "npm:^2.0.2" + "@nodelib/fs.walk": "npm:^1.2.3" + glob-parent: "npm:^5.1.2" + merge2: "npm:^1.3.0" + micromatch: "npm:^4.0.4" + checksum: 51bcd15472879dfe51d4b01c5b70bbc7652724d39cdd082ba11276dbd7d84db0f6b33757e1938af8b2768a4bf485d9be0c89153beae24ee8331d6dcc7550379f + languageName: node + linkType: hard + "fast-json-stable-stringify@npm:^2.0.0, fast-json-stable-stringify@npm:^2.1.0": version: 2.1.0 resolution: "fast-json-stable-stringify@npm:2.1.0" @@ -29608,7 +31560,7 @@ __metadata: languageName: node linkType: hard -"fastq@npm:^1.17.1, fastq@npm:^1.6.0": +"fastq@npm:^1.17.1": version: 1.17.1 resolution: "fastq@npm:1.17.1" dependencies: @@ -29617,6 +31569,15 @@ __metadata: languageName: node linkType: hard +"fastq@npm:^1.6.0": + version: 1.16.0 + resolution: "fastq@npm:1.16.0" + dependencies: + reusify: "npm:^1.0.4" + checksum: de151543aab9d91900ed5da88860c46987ece925c628df586fac664235f25e020ec20729e1c032edb5fd2520fd4aa5b537d69e39b689e65e82112cfbecb4479e + languageName: node + linkType: hard + "fault@npm:^2.0.0": version: 2.0.1 resolution: "fault@npm:2.0.1" @@ -29714,15 +31675,6 @@ __metadata: languageName: node linkType: hard -"fetch-ponyfill@npm:^4.0.0": - version: 4.1.0 - resolution: "fetch-ponyfill@npm:4.1.0" - dependencies: - node-fetch: "npm:~1.7.1" - checksum: 6e6171209c70ca8c598a5a3204373d045a0a7f271600214475e42a821d3b6071d599a37bac67439a167fc66d6e7a472f2bc418b9508f795ffa4d1fbcdbbec90c - languageName: node - linkType: hard - "fetch-retry@npm:^5.0.2": version: 5.0.6 resolution: "fetch-retry@npm:5.0.6" @@ -29844,7 +31796,7 @@ __metadata: languageName: node linkType: hard -"file-type@npm:3.9.0, file-type@npm:^3.3.0, file-type@npm:^3.8.0": +"file-type@npm:3.9.0, file-type@npm:^3.3.0": version: 3.9.0 resolution: "file-type@npm:3.9.0" checksum: 1c8bc99bbb9cfcf13d3489e0c0250188dde622658b5a990f2ba09e6c784f183556b37b7de22104b4b0fd87f478ce12f8dc199b988616ce7cdcb41248dc0a79f9 @@ -29858,20 +31810,6 @@ __metadata: languageName: node linkType: hard -"file-type@npm:^5.2.0": - version: 5.2.0 - resolution: "file-type@npm:5.2.0" - checksum: 73b44eaba7a3e0684d35f24bb3f98ea8a943bf897e103768371b747b0714618301411e66ceff717c866db780af6f5bb1a3da15b744c2e04fa83d605a0682b72b - languageName: node - linkType: hard - -"file-type@npm:^6.1.0": - version: 6.2.0 - resolution: "file-type@npm:6.2.0" - checksum: c7214c3cf6c72a4ed02b473a792841b4bf626a8e95bb010bd8679016b86e5bf52117264c3133735a8424bfde378c3a39b90e1f4902f5f294c41de4e81ec85fdc - languageName: node - linkType: hard - "file-uri-to-path@npm:1.0.0": version: 1.0.0 resolution: "file-uri-to-path@npm:1.0.0" @@ -30073,16 +32011,6 @@ __metadata: languageName: node linkType: hard -"find-up@npm:^1.0.0": - version: 1.1.2 - resolution: "find-up@npm:1.1.2" - dependencies: - path-exists: "npm:^2.0.0" - pinkie-promise: "npm:^2.0.0" - checksum: a2cb9f4c9f06ee3a1e92ed71d5aed41ac8ae30aefa568132f6c556fac7678a5035126153b59eaec68da78ac409eef02503b2b059706bdbf232668d7245e3240a - languageName: node - linkType: hard - "find-up@npm:^2.1.0": version: 2.1.0 resolution: "find-up@npm:2.1.0" @@ -30102,16 +32030,6 @@ __metadata: languageName: node linkType: hard -"find-yarn-workspace-root@npm:^1.2.1": - version: 1.2.1 - resolution: "find-yarn-workspace-root@npm:1.2.1" - dependencies: - fs-extra: "npm:^4.0.3" - micromatch: "npm:^3.1.4" - checksum: 4a387393b77f546fa88232c2b8edee0881ee37d5d66e24600f68b2d54e78467ad607aadfcb4a467a244e2d28604c51062b27d4dabe66ff59d1484afc27659e70 - languageName: node - linkType: hard - "flat-cache@npm:^3.0.4": version: 3.2.0 resolution: "flat-cache@npm:3.2.0" @@ -30157,13 +32075,6 @@ __metadata: languageName: node linkType: hard -"flow-stoplight@npm:^1.0.0": - version: 1.0.0 - resolution: "flow-stoplight@npm:1.0.0" - checksum: e5bfbbb7274f444a926392243eb286292d0da1c8af3ca21d9f2e71a00631b8c0e29b5aba9cc9039c2d2ffc8b80714bb8f48ed6c93b01ca856304b38224e44192 - languageName: node - linkType: hard - "flush-write-stream@npm:2.0.0": version: 2.0.0 resolution: "flush-write-stream@npm:2.0.0" @@ -30199,15 +32110,6 @@ __metadata: languageName: node linkType: hard -"follow-redirects@npm:1.5.10": - version: 1.5.10 - resolution: "follow-redirects@npm:1.5.10" - dependencies: - debug: "npm:=3.1.0" - checksum: 7cf3bb10dbffabce317d1de3e3f85ea8c47fea388c4bc3da1052fd6bbb7b036772f48eed2f154d63ac39c49ab5fe4df0dda94b8e0c54eda8ca2edb001b2550b7 - languageName: node - linkType: hard - "follow-redirects@npm:^1.0.0, follow-redirects@npm:^1.12.1, follow-redirects@npm:^1.14.0, follow-redirects@npm:^1.14.8, follow-redirects@npm:^1.14.9, follow-redirects@npm:^1.15.4": version: 1.15.5 resolution: "follow-redirects@npm:1.15.5" @@ -30218,7 +32120,17 @@ __metadata: languageName: node linkType: hard -"for-each@npm:^0.3.3, for-each@npm:~0.3.3": +"follow-redirects@npm:^1.15.0": + version: 1.15.4 + resolution: "follow-redirects@npm:1.15.4" + peerDependenciesMeta: + debug: + optional: true + checksum: 2e8f5f259a6b02dfa8dc199e08431848a7c3beed32eb4c19945966164a52c89f07b86c3afcc32ebe4279cf0a960520e45a63013d6350309c5ec90133c5d9351a + languageName: node + linkType: hard + +"for-each@npm:^0.3.3": version: 0.3.3 resolution: "for-each@npm:0.3.3" dependencies: @@ -30399,7 +32311,7 @@ __metadata: languageName: node linkType: hard -"fraction.js@npm:^4.3.7": +"fraction.js@npm:^4.3.6, fraction.js@npm:^4.3.7": version: 4.3.7 resolution: "fraction.js@npm:4.3.7" checksum: bb5ebcdeeffcdc37b68ead3bdfc244e68de188e0c64e9702197333c72963b95cc798883ad16adc21588088b942bca5b6a6ff4aeb1362d19f6f3b629035dc15f5 @@ -30513,7 +32425,7 @@ __metadata: languageName: node linkType: hard -"fs-extra@npm:^4.0.2, fs-extra@npm:^4.0.3": +"fs-extra@npm:^4.0.2": version: 4.0.3 resolution: "fs-extra@npm:4.0.3" dependencies: @@ -30661,7 +32573,7 @@ __metadata: languageName: node linkType: hard -"functional-red-black-tree@npm:^1.0.1, functional-red-black-tree@npm:~1.0.1": +"functional-red-black-tree@npm:^1.0.1": version: 1.0.1 resolution: "functional-red-black-tree@npm:1.0.1" checksum: debe73e92204341d1fa5f89614e44284d3add26dee660722978d8c50829170f87d1c74768f68c251d215ae461c11db7bac13101c77f4146ff051da75466f7a12 @@ -30689,49 +32601,6 @@ __metadata: languageName: node linkType: hard -"ganache-core@npm:^2.8.0": - version: 2.13.2 - resolution: "ganache-core@npm:2.13.2" - dependencies: - abstract-leveldown: "npm:3.0.0" - async: "npm:2.6.2" - bip39: "npm:2.5.0" - cachedown: "npm:1.0.0" - clone: "npm:2.1.2" - debug: "npm:3.2.6" - encoding-down: "npm:5.0.4" - eth-sig-util: "npm:3.0.0" - ethereumjs-abi: "npm:0.6.8" - ethereumjs-account: "npm:3.0.0" - ethereumjs-block: "npm:2.2.2" - ethereumjs-common: "npm:1.5.0" - ethereumjs-tx: "npm:2.1.2" - ethereumjs-util: "npm:6.2.1" - ethereumjs-vm: "npm:4.2.0" - ethereumjs-wallet: "npm:0.6.5" - heap: "npm:0.2.6" - keccak: "npm:3.0.1" - level-sublevel: "npm:6.6.4" - levelup: "npm:3.1.1" - lodash: "npm:4.17.20" - lru-cache: "npm:5.1.1" - merkle-patricia-tree: "npm:3.0.0" - patch-package: "npm:6.2.2" - seedrandom: "npm:3.0.1" - source-map-support: "npm:0.5.12" - tmp: "npm:0.1.0" - web3: "npm:1.2.11" - web3-provider-engine: "npm:14.2.1" - websocket: "npm:1.0.32" - dependenciesMeta: - ethereumjs-wallet: - optional: true - web3: - optional: true - checksum: 230ff0c4ba2d490a1aa414171f257c48a97f44f751d7e92f12fd2f9956713da4619339f50cdaf63d3766c9e783b25723404d9a033fb64fac1548f5120447b057 - languageName: node - linkType: hard - "gauge@npm:^3.0.0": version: 3.0.2 resolution: "gauge@npm:3.0.2" @@ -30781,13 +32650,6 @@ __metadata: languageName: node linkType: hard -"get-caller-file@npm:^1.0.1": - version: 1.0.3 - resolution: "get-caller-file@npm:1.0.3" - checksum: 0b776558c1d94ac131ec0d47bf9da4e00a38e7d3a6cbde534e0e4656c13ead344e69ef7ed2c0bca16620cc2e1e26529f90e2336c8962736517b64890d583a2a0 - languageName: node - linkType: hard - "get-caller-file@npm:^2.0.1, get-caller-file@npm:^2.0.5": version: 2.0.5 resolution: "get-caller-file@npm:2.0.5" @@ -30802,6 +32664,18 @@ __metadata: languageName: node linkType: hard +"get-intrinsic@npm:^1.0.2": + version: 1.2.2 + resolution: "get-intrinsic@npm:1.2.2" + dependencies: + function-bind: "npm:^1.1.2" + has-proto: "npm:^1.0.1" + has-symbols: "npm:^1.0.3" + hasown: "npm:^2.0.0" + checksum: aa96db4f809734d26d49b59bc8669d73a0ae792da561514e987735573a1dfaede516cd102f217a078ea2b42d4c4fb1f83d487932cb15d49826b726cc9cd4470b + languageName: node + linkType: hard + "get-intrinsic@npm:^1.1.1, get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.1, get-intrinsic@npm:^1.2.2, get-intrinsic@npm:^1.2.3, get-intrinsic@npm:^1.2.4": version: 1.2.4 resolution: "get-intrinsic@npm:1.2.4" @@ -30895,32 +32769,6 @@ __metadata: languageName: node linkType: hard -"get-stream@npm:^2.2.0": - version: 2.3.1 - resolution: "get-stream@npm:2.3.1" - dependencies: - object-assign: "npm:^4.0.1" - pinkie-promise: "npm:^2.0.0" - checksum: 712738e6a39b06da774aea5d35efa16a8f067a0d93b1b564e8d0e733fafddcf021e03098895735bc45d6594d3094369d700daa0d33891f980595cf6495e33294 - languageName: node - linkType: hard - -"get-stream@npm:^3.0.0": - version: 3.0.0 - resolution: "get-stream@npm:3.0.0" - checksum: de14fbb3b4548ace9ab6376be852eef9898c491282e29595bc908a1814a126d3961b11cd4b7be5220019fe3b2abb84568da7793ad308fc139925a217063fa159 - languageName: node - linkType: hard - -"get-stream@npm:^4.1.0": - version: 4.1.0 - resolution: "get-stream@npm:4.1.0" - dependencies: - pump: "npm:^3.0.0" - checksum: 12673e8aebc79767d187b203e5bfabb8266304037815d3bcc63b6f8c67c6d4ad0d98d4d4528bcdc1cbea68f1dd91bcbd87827aa3cdcfa9c5fa4a4644716d72c2 - languageName: node - linkType: hard - "get-stream@npm:^5.1.0": version: 5.2.0 resolution: "get-stream@npm:5.2.0" @@ -31213,7 +33061,7 @@ __metadata: languageName: node linkType: hard -"glob@npm:^7.0.0, glob@npm:^7.0.5, glob@npm:^7.1.1, glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.1.6, glob@npm:^7.2.0, glob@npm:^7.2.3, glob@npm:~7.2.3": +"glob@npm:^7.0.0, glob@npm:^7.0.5, glob@npm:^7.1.1, glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.1.6, glob@npm:^7.2.0, glob@npm:^7.2.3": version: 7.2.3 resolution: "glob@npm:7.2.3" dependencies: @@ -31448,25 +33296,6 @@ __metadata: languageName: node linkType: hard -"got@npm:9.6.0": - version: 9.6.0 - resolution: "got@npm:9.6.0" - dependencies: - "@sindresorhus/is": "npm:^0.14.0" - "@szmarczak/http-timer": "npm:^1.1.2" - cacheable-request: "npm:^6.0.0" - decompress-response: "npm:^3.3.0" - duplexer3: "npm:^0.1.4" - get-stream: "npm:^4.1.0" - lowercase-keys: "npm:^1.0.1" - mimic-response: "npm:^1.0.1" - p-cancelable: "npm:^1.0.0" - to-readable-stream: "npm:^1.0.0" - url-parse-lax: "npm:^3.0.0" - checksum: fae3273b44392b6b1d88071d04ea984784e63dbf8ba3f70b04cb7edda53c7668ee17288ac46af507a9f2aa60c183c5ea1732339141d253dda3eb19f92985c771 - languageName: node - linkType: hard - "got@npm:^11.8.5, got@npm:^11.8.6": version: 11.8.6 resolution: "got@npm:11.8.6" @@ -31505,28 +33334,6 @@ __metadata: languageName: node linkType: hard -"got@npm:^7.1.0": - version: 7.1.0 - resolution: "got@npm:7.1.0" - dependencies: - decompress-response: "npm:^3.2.0" - duplexer3: "npm:^0.1.4" - get-stream: "npm:^3.0.0" - is-plain-obj: "npm:^1.1.0" - is-retry-allowed: "npm:^1.0.0" - is-stream: "npm:^1.0.0" - isurl: "npm:^1.0.0-alpha5" - lowercase-keys: "npm:^1.0.0" - p-cancelable: "npm:^0.3.0" - p-timeout: "npm:^1.1.1" - safe-buffer: "npm:^5.0.1" - timed-out: "npm:^4.0.0" - url-parse-lax: "npm:^1.0.0" - url-to-options: "npm:^1.0.1" - checksum: b72514add3b716cbc9e4c0ff16c10e093c08167e1b91caca177c3a967b8a397ac2a6c12665fd0150ef56d1c746bc466b04469714f125a4f5eea1e77435d6704a - languageName: node - linkType: hard - "graceful-fs@npm:4.2.10": version: 4.2.10 resolution: "graceful-fs@npm:4.2.10" @@ -31534,7 +33341,7 @@ __metadata: languageName: node linkType: hard -"graceful-fs@npm:^4.1.10, graceful-fs@npm:^4.1.11, graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.3, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.1.9, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.10, graceful-fs@npm:^4.2.11, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9": +"graceful-fs@npm:^4.1.11, graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.3, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.1.9, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.10, graceful-fs@npm:^4.2.11, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9": version: 4.2.11 resolution: "graceful-fs@npm:4.2.11" checksum: bf152d0ed1dc159239db1ba1f74fdbc40cb02f626770dcd5815c427ce0688c2635a06ed69af364396da4636d0408fcf7d4afdf7881724c3307e46aff30ca49e2 @@ -31610,7 +33417,7 @@ __metadata: languageName: node linkType: hard -"graphql-request@npm:6.1.0, graphql-request@npm:^6.0.0": +"graphql-request@npm:6.1.0": version: 6.1.0 resolution: "graphql-request@npm:6.1.0" dependencies: @@ -31635,6 +33442,18 @@ __metadata: languageName: node linkType: hard +"graphql-request@npm:^6.0.0": + version: 6.0.0 + resolution: "graphql-request@npm:6.0.0" + dependencies: + "@graphql-typed-document-node/core": "npm:^3.2.0" + cross-fetch: "npm:^3.1.5" + peerDependencies: + graphql: 14 - 16 + checksum: d4b0831825c0a5732421cc0e9a15baef8772d1cb4371cba76aa265f247cbc602009ec4959ecb7ef087588c43277897e4f89ff9b6a97487f1525bb41de2f888f0 + languageName: node + linkType: hard + "graphql-tag@npm:2.12.6, graphql-tag@npm:^2.11.0, graphql-tag@npm:^2.12.6": version: 2.12.6 resolution: "graphql-tag@npm:2.12.6" @@ -31727,7 +33546,7 @@ __metadata: languageName: node linkType: hard -"h3@npm:^1.10.2, h3@npm:^1.8.2": +"h3@npm:^1.10.2": version: 1.11.1 resolution: "h3@npm:1.11.1" dependencies: @@ -31745,6 +33564,22 @@ __metadata: languageName: node linkType: hard +"h3@npm:^1.8.2": + version: 1.10.0 + resolution: "h3@npm:1.10.0" + dependencies: + cookie-es: "npm:^1.0.0" + defu: "npm:^6.1.3" + destr: "npm:^2.0.2" + iron-webcrypto: "npm:^1.0.0" + radix3: "npm:^1.1.0" + ufo: "npm:^1.3.2" + uncrypto: "npm:^0.1.3" + unenv: "npm:^1.8.0" + checksum: 33c84658ade5ee75d84c46a1429db92c3965a08658ee79ede88a1ab7826e4a1a66c59a77d8d4766d6c4d270c39290b0133e5aaaac74a6aed66c99d3852f2af69 + languageName: node + linkType: hard + "handle-thing@npm:^2.0.0": version: 2.0.1 resolution: "handle-thing@npm:2.0.1" @@ -31752,7 +33587,7 @@ __metadata: languageName: node linkType: hard -"handlebars@npm:4.7.8, handlebars@npm:^4.0.1, handlebars@npm:^4.7.7": +"handlebars@npm:4.7.8": version: 4.7.8 resolution: "handlebars@npm:4.7.8" dependencies: @@ -31770,6 +33605,24 @@ __metadata: languageName: node linkType: hard +"handlebars@npm:^4.0.1, handlebars@npm:^4.7.7": + version: 4.7.7 + resolution: "handlebars@npm:4.7.7" + dependencies: + minimist: "npm:^1.2.5" + neo-async: "npm:^2.6.0" + source-map: "npm:^0.6.1" + uglify-js: "npm:^3.1.4" + wordwrap: "npm:^1.0.0" + dependenciesMeta: + uglify-js: + optional: true + bin: + handlebars: bin/handlebars + checksum: 617b1e689b7577734abc74564bdb8cdaddf8fd48ce72afdb489f426e9c60a7d6ee2a2707c023720c4059070128243c948bded8f2716e4543378033e3971b85ea + languageName: node + linkType: hard + "har-schema@npm:^2.0.0": version: 2.0.0 resolution: "har-schema@npm:2.0.0" @@ -31903,7 +33756,7 @@ __metadata: languageName: node linkType: hard -"hardhat@npm:2.20.1, hardhat@npm:^2.19.4": +"hardhat@npm:2.20.1": version: 2.20.1 resolution: "hardhat@npm:2.20.1" dependencies: @@ -31971,36 +33824,69 @@ __metadata: languageName: node linkType: hard -"hardlydifficult-eth@npm:1.1.4": - version: 1.1.4 - resolution: "hardlydifficult-eth@npm:1.1.4" - dependencies: - "@openzeppelin/contracts": "npm:3.4.1" - "@truffle/contract": "npm:4.3.23" - "@uniswap/lib": "npm:2.1.0" - "@uniswap/v2-core": "npm:1.0.1" - "@uniswap/v2-periphery": "npm:1.1.0-beta.0" - bignumber.js: "npm:9.0.1" - unlock-abi-7: "npm:1.0.3" - web3-utils: "npm:1.4.0" - checksum: 828509d6f31acf259f0804006ad7d1954ffd32b1ad865c3530372871d251de7989a4e8294cf91dc56b1df80274c1a1590d71ce849cbf1e24abb1b818e1a019a9 - languageName: node - linkType: hard - -"hardlydifficult-ethereum-contracts@npm:0.11.1": - version: 0.11.1 - resolution: "hardlydifficult-ethereum-contracts@npm:0.11.1" +"hardhat@npm:^2.19.4": + version: 2.19.4 + resolution: "hardhat@npm:2.19.4" dependencies: - "@openzeppelin/contracts": "npm:2.5.0" - "@openzeppelin/contracts-ethereum-package": "npm:2.5.0" - "@openzeppelin/test-environment": "npm:0.1.3" - "@openzeppelin/test-helpers": "npm:0.5.5" - "@openzeppelin/upgrades": "npm:2.8.0" - "@truffle/contract": "npm:4.1.15" - bignumber.js: "npm:9.0.0" - unlock-abi-7: "npm:1.0.2" - web3-utils: "npm:1.2.6" - checksum: 60c56e7aa3d9488957febe8b583c2aa295ba767c60cf45b1b730da9f06668cd1c2f91f82663b36cad7c6ed55681d9eb074f1cf5348103e0990568a0a8d9557e7 + "@ethersproject/abi": "npm:^5.1.2" + "@metamask/eth-sig-util": "npm:^4.0.0" + "@nomicfoundation/ethereumjs-block": "npm:5.0.2" + "@nomicfoundation/ethereumjs-blockchain": "npm:7.0.2" + "@nomicfoundation/ethereumjs-common": "npm:4.0.2" + "@nomicfoundation/ethereumjs-evm": "npm:2.0.2" + "@nomicfoundation/ethereumjs-rlp": "npm:5.0.2" + "@nomicfoundation/ethereumjs-statemanager": "npm:2.0.2" + "@nomicfoundation/ethereumjs-trie": "npm:6.0.2" + "@nomicfoundation/ethereumjs-tx": "npm:5.0.2" + "@nomicfoundation/ethereumjs-util": "npm:9.0.2" + "@nomicfoundation/ethereumjs-vm": "npm:7.0.2" + "@nomicfoundation/solidity-analyzer": "npm:^0.1.0" + "@sentry/node": "npm:^5.18.1" + "@types/bn.js": "npm:^5.1.0" + "@types/lru-cache": "npm:^5.1.0" + adm-zip: "npm:^0.4.16" + aggregate-error: "npm:^3.0.0" + ansi-escapes: "npm:^4.3.0" + chalk: "npm:^2.4.2" + chokidar: "npm:^3.4.0" + ci-info: "npm:^2.0.0" + debug: "npm:^4.1.1" + enquirer: "npm:^2.3.0" + env-paths: "npm:^2.2.0" + ethereum-cryptography: "npm:^1.0.3" + ethereumjs-abi: "npm:^0.6.8" + find-up: "npm:^2.1.0" + fp-ts: "npm:1.19.3" + fs-extra: "npm:^7.0.1" + glob: "npm:7.2.0" + immutable: "npm:^4.0.0-rc.12" + io-ts: "npm:1.10.4" + keccak: "npm:^3.0.2" + lodash: "npm:^4.17.11" + mnemonist: "npm:^0.38.0" + mocha: "npm:^10.0.0" + p-map: "npm:^4.0.0" + raw-body: "npm:^2.4.1" + resolve: "npm:1.17.0" + semver: "npm:^6.3.0" + solc: "npm:0.7.3" + source-map-support: "npm:^0.5.13" + stacktrace-parser: "npm:^0.1.10" + tsort: "npm:0.0.1" + undici: "npm:^5.14.0" + uuid: "npm:^8.3.2" + ws: "npm:^7.4.6" + peerDependencies: + ts-node: "*" + typescript: "*" + peerDependenciesMeta: + ts-node: + optional: true + typescript: + optional: true + bin: + hardhat: internal/cli/bootstrap.js + checksum: f8548a32c6d81af40a0377d4e7cfffbdae22c1c5ac1d8f106ec14d98d219ce8c8d67799abbd609f69e9593a43820c98c4fc8bc1273d995d43692f272b54da58c languageName: node linkType: hard @@ -32064,13 +33950,6 @@ __metadata: languageName: node linkType: hard -"has-symbol-support-x@npm:^1.4.1": - version: 1.4.2 - resolution: "has-symbol-support-x@npm:1.4.2" - checksum: c6ea5f3a8114e70f5b1ee260c2140ebc2146253aa955d35100d5525a8e841680f5fbbaaaf03f45a3c28082f7037860e6f240af9e9f891a66f20e2115222fbba6 - languageName: node - linkType: hard - "has-symbols@npm:^1.0.0, has-symbols@npm:^1.0.2, has-symbols@npm:^1.0.3": version: 1.0.3 resolution: "has-symbols@npm:1.0.3" @@ -32078,15 +33957,6 @@ __metadata: languageName: node linkType: hard -"has-to-string-tag-x@npm:^1.2.0": - version: 1.4.1 - resolution: "has-to-string-tag-x@npm:1.4.1" - dependencies: - has-symbol-support-x: "npm:^1.4.1" - checksum: 9ef3fe5e79a7265aaff14f117417a67f46edfcb7c93af8a897613941a669009062cf8eae15496e531c688227dd46524e6b51c5c2f88ed578276a7f9b4242781e - languageName: node - linkType: hard - "has-tostringtag@npm:^1.0.0, has-tostringtag@npm:^1.0.1, has-tostringtag@npm:^1.0.2": version: 1.0.2 resolution: "has-tostringtag@npm:1.0.2" @@ -32149,10 +34019,12 @@ __metadata: languageName: node linkType: hard -"has@npm:~1.0.3": - version: 1.0.4 - resolution: "has@npm:1.0.4" - checksum: c245f332fe78c7b6b8753857240ac12b3286f995f656a33c77e0f5baab7d0157e6ddb1c34940ffd2bffc51f75ede50cd8b29ff65c13e336376aca8cf3df58043 +"has@npm:^1.0.3": + version: 1.0.3 + resolution: "has@npm:1.0.3" + dependencies: + function-bind: "npm:^1.1.1" + checksum: a449f3185b1d165026e8d25f6a8c3390bd25c201ff4b8c1aaf948fc6a5fcfd6507310b8c00c13a3325795ea9791fcc3d79d61eafa313b5750438fc19183df57b languageName: node linkType: hard @@ -32450,7 +34322,7 @@ __metadata: languageName: node linkType: hard -"he@npm:1.2.0, he@npm:^1.1.0, he@npm:^1.1.1, he@npm:^1.2.0": +"he@npm:1.2.0, he@npm:^1.1.0, he@npm:^1.2.0": version: 1.2.0 resolution: "he@npm:1.2.0" bin: @@ -32459,16 +34331,6 @@ __metadata: languageName: node linkType: hard -"header-case@npm:^1.0.0": - version: 1.0.1 - resolution: "header-case@npm:1.0.1" - dependencies: - no-case: "npm:^2.2.0" - upper-case: "npm:^1.1.3" - checksum: fe1cc9a555ec9aabc2de80f4dd961a81c534fc23951694fef34297e59b0dd60f26647148731bf0dd3fdb3a1c688089d3cd147d7038db850e25be7c0a5fabb022 - languageName: node - linkType: hard - "header-case@npm:^2.0.4": version: 2.0.4 resolution: "header-case@npm:2.0.4" @@ -32479,13 +34341,6 @@ __metadata: languageName: node linkType: hard -"heap@npm:0.2.6": - version: 0.2.6 - resolution: "heap@npm:0.2.6" - checksum: 7ccfce00d8e22d08f53ef82d30bb108af8a132ba32ca190fd3a545a8339df8bf248077713f97ff251472a0a91df23d77736acf0cf235c72dd2e5ab73d7a713e7 - languageName: node - linkType: hard - "heap@npm:>= 0.2.0": version: 0.2.7 resolution: "heap@npm:0.2.7" @@ -32514,13 +34369,6 @@ __metadata: languageName: node linkType: hard -"highlight.js@npm:^10.4.1": - version: 10.7.3 - resolution: "highlight.js@npm:10.7.3" - checksum: db8d10a541936b058e221dbde77869664b2b45bca75d660aa98065be2cd29f3924755fbc7348213f17fd931aefb6e6597448ba6fe82afba6d8313747a91983ee - languageName: node - linkType: hard - "highlight.js@npm:^11.5.0": version: 11.9.0 resolution: "highlight.js@npm:11.9.0" @@ -32528,13 +34376,6 @@ __metadata: languageName: node linkType: hard -"highlightjs-solidity@npm:^2.0.2, highlightjs-solidity@npm:^2.0.6": - version: 2.0.6 - resolution: "highlightjs-solidity@npm:2.0.6" - checksum: c3f936c6cfc09e5cf7d03c18d911ff48a796ed0ef841b2517712d36a46d43a79715d6d08f5ba4807d1e53346c7372d13ef2d60a026e5d18587611052a53d7424 - languageName: node - linkType: hard - "history@npm:^4.9.0": version: 4.10.1 resolution: "history@npm:4.10.1" @@ -32588,7 +34429,7 @@ __metadata: languageName: node linkType: hard -"hosted-git-info@npm:^2.1.4, hosted-git-info@npm:^2.6.0": +"hosted-git-info@npm:^2.1.4": version: 2.8.9 resolution: "hosted-git-info@npm:2.8.9" checksum: 96da7d412303704af41c3819207a09ea2cab2de97951db4cf336bb8bce8d8e36b9a6821036ad2e55e67d3be0af8f967a7b57981203fbfb88bc05cd803407b8c3 @@ -33182,13 +35023,6 @@ __metadata: languageName: node linkType: hard -"immediate@npm:^3.2.3": - version: 3.3.0 - resolution: "immediate@npm:3.3.0" - checksum: 39aefd16e7d423a0435f12ed47e45cc18fbb5825fea56d573805f68a056ab5727a16ea79893d35db565f9de14a224bfabffa5e5e2c422117c5fa24428ac0aa69 - languageName: node - linkType: hard - "immediate@npm:~3.0.5": version: 3.0.6 resolution: "immediate@npm:3.0.6" @@ -33196,13 +35030,6 @@ __metadata: languageName: node linkType: hard -"immediate@npm:~3.2.3": - version: 3.2.3 - resolution: "immediate@npm:3.2.3" - checksum: fcc2223bdaeac9ba378543658c4c6420a61b6eef2e8447f4b274a2964721d1c707b37725768af20226c8ea66b5b9e7ca982e28c36fc4c2d1af318c1fd4a9e687 - languageName: node - linkType: hard - "immer@npm:^9.0.21, immer@npm:^9.0.7": version: 9.0.21 resolution: "immer@npm:9.0.21" @@ -33509,13 +35336,6 @@ __metadata: languageName: node linkType: hard -"invert-kv@npm:^1.0.0": - version: 1.0.0 - resolution: "invert-kv@npm:1.0.0" - checksum: 0820af99ca21818fa4a78815a8d06cf621a831306a5db57d7558234624b4891a89bb19a95fc3a868db4e754384c0ee38b70a00b75d81a0a46ee3937184a7cf6d - languageName: node - linkType: hard - "io-ts@npm:1.10.4": version: 1.10.4 resolution: "io-ts@npm:1.10.4" @@ -33823,7 +35643,7 @@ __metadata: languageName: node linkType: hard -"is-buffer@npm:^2.0.0, is-buffer@npm:^2.0.2, is-buffer@npm:~2.0.3": +"is-buffer@npm:^2.0.0, is-buffer@npm:^2.0.5, is-buffer@npm:~2.0.3": version: 2.0.5 resolution: "is-buffer@npm:2.0.5" checksum: 3261a8b858edcc6c9566ba1694bf829e126faa88911d1c0a747ea658c5d81b14b6955e3a702d59dabadd58fdd440c01f321aa71d6547105fd21d03f94d0597e7 @@ -33846,17 +35666,6 @@ __metadata: languageName: node linkType: hard -"is-ci@npm:^2.0.0": - version: 2.0.0 - resolution: "is-ci@npm:2.0.0" - dependencies: - ci-info: "npm:^2.0.0" - bin: - is-ci: bin.js - checksum: 77b869057510f3efa439bbb36e9be429d53b3f51abd4776eeea79ab3b221337fe1753d1e50058a9e2c650d38246108beffb15ccfd443929d77748d8c0cc90144 - languageName: node - linkType: hard - "is-ci@npm:^3.0.1": version: 3.0.1 resolution: "is-ci@npm:3.0.1" @@ -33868,7 +35677,7 @@ __metadata: languageName: node linkType: hard -"is-core-module@npm:^2.11.0, is-core-module@npm:^2.13.0, is-core-module@npm:^2.13.1, is-core-module@npm:^2.5.0": +"is-core-module@npm:^2.11.0, is-core-module@npm:^2.13.1, is-core-module@npm:^2.5.0": version: 2.13.1 resolution: "is-core-module@npm:2.13.1" dependencies: @@ -33877,6 +35686,24 @@ __metadata: languageName: node linkType: hard +"is-core-module@npm:^2.12.0": + version: 2.12.1 + resolution: "is-core-module@npm:2.12.1" + dependencies: + has: "npm:^1.0.3" + checksum: 35d5f90c95f7c737d287121e924bdfcad0a47b33efd7f89c58e9ab3810b43b1f1d377b641797326bde500e47edf5a7bf74a464e0c336a5c7e827b13fa41b57af + languageName: node + linkType: hard + +"is-core-module@npm:^2.13.0": + version: 2.13.0 + resolution: "is-core-module@npm:2.13.0" + dependencies: + has: "npm:^1.0.3" + checksum: 55ccb5ccd208a1e088027065ee6438a99367e4c31c366b52fbaeac8fa23111cd17852111836d904da604801b3286d38d3d1ffa6cd7400231af8587f021099dc6 + languageName: node + linkType: hard + "is-data-descriptor@npm:^1.0.1": version: 1.0.1 resolution: "is-data-descriptor@npm:1.0.1" @@ -33993,13 +35820,6 @@ __metadata: languageName: node linkType: hard -"is-fn@npm:^1.0.0": - version: 1.0.0 - resolution: "is-fn@npm:1.0.0" - checksum: eeea1e536716f93a92dc1a8550b2c0909fe74bb5144d0fb6d65e0d31eb9c06c30559f69d83a9351d2288cc7293b43bc074e0fab5fae19e312ff38aa0c7672827 - languageName: node - linkType: hard - "is-fullwidth-code-point@npm:^1.0.0": version: 1.0.0 resolution: "is-fullwidth-code-point@npm:1.0.0" @@ -34134,15 +35954,6 @@ __metadata: languageName: node linkType: hard -"is-lower-case@npm:^1.1.0": - version: 1.1.3 - resolution: "is-lower-case@npm:1.1.3" - dependencies: - lower-case: "npm:^1.1.0" - checksum: 55a2a9fe384f669ab349985bb3d1b2ab99dff4ca6d898255786ed97722680ee407a2b2c9977e05157043fd48727d71a1ca15493b58710ab076b13820ee84eed0 - languageName: node - linkType: hard - "is-lower-case@npm:^2.0.2": version: 2.0.2 resolution: "is-lower-case@npm:2.0.2" @@ -34169,13 +35980,6 @@ __metadata: languageName: node linkType: hard -"is-natural-number@npm:^4.0.1": - version: 4.0.1 - resolution: "is-natural-number@npm:4.0.1" - checksum: 3e5e3d52e0dfa4fea923b5d2b8a5cdbd9bf110c4598d30304b98528b02f40c9058a2abf1bae10bcbaf2bac18ace41cff7bc9673aff339f8c8297fae74ae0e75d - languageName: node - linkType: hard - "is-negative-zero@npm:^2.0.3": version: 2.0.3 resolution: "is-negative-zero@npm:2.0.3" @@ -34229,13 +36033,6 @@ __metadata: languageName: node linkType: hard -"is-object@npm:^1.0.1": - version: 1.0.2 - resolution: "is-object@npm:1.0.2" - checksum: db53971751c50277f0ed31d065d93038d23cb9785090ab5c8070a903cf5bab16cdb18f05b8855599ad87ec19eb4c85afa05980bcda77dd4a8482120b6348c73c - languageName: node - linkType: hard - "is-observable@npm:^1.1.0": version: 1.1.0 resolution: "is-observable@npm:1.1.0" @@ -34342,7 +36139,7 @@ __metadata: languageName: node linkType: hard -"is-regex@npm:^1.1.4, is-regex@npm:~1.1.4": +"is-regex@npm:^1.1.4": version: 1.1.4 resolution: "is-regex@npm:1.1.4" dependencies: @@ -34368,13 +36165,6 @@ __metadata: languageName: node linkType: hard -"is-retry-allowed@npm:^1.0.0": - version: 1.2.0 - resolution: "is-retry-allowed@npm:1.2.0" - checksum: 50d700a89ae31926b1c91b3eb0104dbceeac8790d8b80d02f5c76d9a75c2056f1bb24b5268a8a018dead606bddf116b2262e5ac07401eb8b8783b266ed22558d - languageName: node - linkType: hard - "is-root@npm:^2.1.0": version: 2.1.0 resolution: "is-root@npm:2.1.0" @@ -34405,7 +36195,7 @@ __metadata: languageName: node linkType: hard -"is-stream@npm:^1.0.0, is-stream@npm:^1.0.1, is-stream@npm:^1.1.0, is-stream@npm:~1.1.0": +"is-stream@npm:^1.1.0": version: 1.1.0 resolution: "is-stream@npm:1.1.0" checksum: 351aa77c543323c4e111204482808cfad68d2e940515949e31ccd0b010fc13d5fba4b9c230e4887fd24284713040f43e542332fbf172f6b9944b7d62e389c0ec @@ -34437,6 +36227,19 @@ __metadata: languageName: node linkType: hard +"is-typed-array@npm:^1.1.10": + version: 1.1.10 + resolution: "is-typed-array@npm:1.1.10" + dependencies: + available-typed-arrays: "npm:^1.0.5" + call-bind: "npm:^1.0.2" + for-each: "npm:^0.3.3" + gopd: "npm:^1.0.1" + has-tostringtag: "npm:^1.0.0" + checksum: 2392b2473bbc994f5c30d6848e32bab3cab6c80b795aaec3020baf5419ff7df38fc11b3a043eb56d50f842394c578dbb204a7a29398099f895cf111c5b27f327 + languageName: node + linkType: hard + "is-typed-array@npm:^1.1.13, is-typed-array@npm:^1.1.3": version: 1.1.13 resolution: "is-typed-array@npm:1.1.13" @@ -34476,15 +36279,6 @@ __metadata: languageName: node linkType: hard -"is-upper-case@npm:^1.1.0": - version: 1.1.2 - resolution: "is-upper-case@npm:1.1.2" - dependencies: - upper-case: "npm:^1.1.0" - checksum: c85805dfb9c5465f1db2492ce0feddd9273398a6dc0250b4d866f9bd23dbd92d0e2b57f4560ab195b2695b8403ff989265cf637f34b7443b706e0cd4d482b5ee - languageName: node - linkType: hard - "is-upper-case@npm:^2.0.2": version: 2.0.2 resolution: "is-upper-case@npm:2.0.2" @@ -34508,13 +36302,6 @@ __metadata: languageName: node linkType: hard -"is-utf8@npm:^0.2.0": - version: 0.2.1 - resolution: "is-utf8@npm:0.2.1" - checksum: 167ccd2be869fc228cc62c1a28df4b78c6b5485d15a29027d3b5dceb09b383e86a3522008b56dcac14b592b22f0a224388718c2505027a994fd8471465de54b3 - languageName: node - linkType: hard - "is-weakmap@npm:^2.0.1": version: 2.0.1 resolution: "is-weakmap@npm:2.0.1" @@ -34699,7 +36486,7 @@ __metadata: languageName: node linkType: hard -"isstream@npm:0.1.x, isstream@npm:~0.1.2": +"isstream@npm:~0.1.2": version: 0.1.2 resolution: "isstream@npm:0.1.2" checksum: 22d9c181015226d4534a227539256897bbbcb7edd1066ca4fc4d3a06dbd976325dfdd16b3983c7d236a89f256805c1a685a772e0364e98873d3819b064ad35a1 @@ -34758,16 +36545,6 @@ __metadata: languageName: node linkType: hard -"isurl@npm:^1.0.0-alpha5": - version: 1.0.0 - resolution: "isurl@npm:1.0.0" - dependencies: - has-to-string-tag-x: "npm:^1.2.0" - is-object: "npm:^1.0.1" - checksum: 28a96e019269d57015fa5869f19dda5a3ed1f7b21e3e0c4ff695419bd0541547db352aa32ee4a3659e811a177b0e37a5bc1a036731e71939dd16b59808ab92bd - languageName: node - linkType: hard - "it-all@npm:^1.0.4": version: 1.0.6 resolution: "it-all@npm:1.0.6" @@ -35101,13 +36878,6 @@ __metadata: languageName: node linkType: hard -"js-sha3@npm:0.5.5": - version: 0.5.5 - resolution: "js-sha3@npm:0.5.5" - checksum: 9ce8bfabdba2cfb94b911125fc278e2f46cc01b6590c98833d9361199e2c2b4bca0427d04da6aa083f05c2c3982029200964a3d6e417b0c126c80f2e32c2d5eb - languageName: node - linkType: hard - "js-sha3@npm:0.5.7, js-sha3@npm:^0.5.7": version: 0.5.7 resolution: "js-sha3@npm:0.5.7" @@ -35337,13 +37107,6 @@ __metadata: languageName: node linkType: hard -"json-buffer@npm:3.0.0": - version: 3.0.0 - resolution: "json-buffer@npm:3.0.0" - checksum: 6e364585600598c42f1cc85d1305569aeb1a6a13e7c67960f17b403f087e2700104ec8e49fc681ab6d6278ee4d132ac033f2625c22a9777ed9b83b403b40f23e - languageName: node - linkType: hard - "json-buffer@npm:3.0.1": version: 3.0.1 resolution: "json-buffer@npm:3.0.1" @@ -35386,20 +37149,6 @@ __metadata: languageName: node linkType: hard -"json-rpc-engine@npm:^3.4.0, json-rpc-engine@npm:^3.6.0": - version: 3.8.0 - resolution: "json-rpc-engine@npm:3.8.0" - dependencies: - async: "npm:^2.0.1" - babel-preset-env: "npm:^1.7.0" - babelify: "npm:^7.3.0" - json-rpc-error: "npm:^2.0.0" - promise-to-callback: "npm:^1.0.0" - safe-event-emitter: "npm:^1.0.1" - checksum: 7f3aad0cef8889ca599ae1833e700657df0514da750098478f526782f90bb78bd2716a2e9bbc5ddb94d7acb907a740447114a65c0beea8444b33ebc772080747 - languageName: node - linkType: hard - "json-rpc-engine@npm:^5.3.0": version: 5.4.0 resolution: "json-rpc-engine@npm:5.4.0" @@ -35410,15 +37159,6 @@ __metadata: languageName: node linkType: hard -"json-rpc-error@npm:^2.0.0": - version: 2.0.0 - resolution: "json-rpc-error@npm:2.0.0" - dependencies: - inherits: "npm:^2.0.1" - checksum: bbfb1ff82d0605b4dfd4ac6d093e863a8f623e0e83a098ccab5711a08d2ae09ea603260d4573a524e596701e64733690a5c31901e99daebe05b09053d8702d0c - languageName: node - linkType: hard - "json-rpc-random-id@npm:^1.0.0, json-rpc-random-id@npm:^1.0.1": version: 1.0.1 resolution: "json-rpc-random-id@npm:1.0.1" @@ -35494,15 +37234,6 @@ __metadata: languageName: node linkType: hard -"json-text-sequence@npm:^0.1": - version: 0.1.1 - resolution: "json-text-sequence@npm:0.1.1" - dependencies: - delimit-stream: "npm:0.1.0" - checksum: 540973055e03e3caf55e5e06adf88a5d1a4fbefdee44e4c67bbeb614f0d1edd6ea9207f8f9027b6aa86eb6ed4fca3f0dd1f40c4be13f7396efbc0d2f5c5f1e73 - languageName: node - linkType: hard - "json-to-pretty-yaml@npm:^1.2.2": version: 1.2.2 resolution: "json-to-pretty-yaml@npm:1.2.2" @@ -35854,17 +37585,6 @@ __metadata: languageName: node linkType: hard -"keccak@npm:3.0.1": - version: 3.0.1 - resolution: "keccak@npm:3.0.1" - dependencies: - node-addon-api: "npm:^2.0.0" - node-gyp: "npm:latest" - node-gyp-build: "npm:^4.2.0" - checksum: 722f2eb31de9fe4bc9b65f2a375294a403e4360befa3c940d4ddf9572abea0a4a8e42418cfc58a4829a6397a7334a3b0f80dd908918fbe5d5e14b3e7dcce40dd - languageName: node - linkType: hard - "keccak@npm:^3.0.0, keccak@npm:^3.0.1, keccak@npm:^3.0.2, keccak@npm:^3.0.4": version: 3.0.4 resolution: "keccak@npm:3.0.4" @@ -35893,15 +37613,6 @@ __metadata: languageName: node linkType: hard -"keyv@npm:^3.0.0": - version: 3.1.0 - resolution: "keyv@npm:3.1.0" - dependencies: - json-buffer: "npm:3.0.0" - checksum: 6de272b3f78975a9a0b12259953c09d5bbe9de9acfd845471ebd758928b523f70563462f0c16a866fe9b447ff5bdebda72c62bc23734eb72cd1fb8f1d7076843 - languageName: node - linkType: hard - "keyv@npm:^4.0.0, keyv@npm:^4.5.3": version: 4.5.4 resolution: "keyv@npm:4.5.4" @@ -35943,15 +37654,6 @@ __metadata: languageName: node linkType: hard -"klaw-sync@npm:^6.0.0": - version: 6.0.0 - resolution: "klaw-sync@npm:6.0.0" - dependencies: - graceful-fs: "npm:^4.1.11" - checksum: 0da397f8961313c3ef8f79fb63af9002cde5a8fb2aeb1a37351feff0dd6006129c790400c3f5c3b4e757bedcabb13d21ec0a5eaef5a593d59515d4f2c291e475 - languageName: node - linkType: hard - "klaw@npm:^1.0.0": version: 1.3.1 resolution: "klaw@npm:1.3.1" @@ -36054,184 +37756,30 @@ __metadata: languageName: node linkType: hard -"lcid@npm:^1.0.0": - version: 1.0.0 - resolution: "lcid@npm:1.0.0" - dependencies: - invert-kv: "npm:^1.0.0" - checksum: e8c7a4db07663068c5c44b650938a2bc41aa992037eebb69376214320f202c1250e70b50c32f939e28345fd30c2d35b8e8cd9a19d5932c398246a864ce54843d - languageName: node - linkType: hard - -"level-codec@npm:^9.0.0": - version: 9.0.2 - resolution: "level-codec@npm:9.0.2" - dependencies: - buffer: "npm:^5.6.0" - checksum: de74b43f68f74211a12d4772f20e3bf7207eb2d400613c7f5835bf8f1f29b4e1f0a1375ebaa5516016734622f17a65e6aaa72432895c18012b101bc9c8361f72 - languageName: node - linkType: hard - -"level-codec@npm:~7.0.0": - version: 7.0.1 - resolution: "level-codec@npm:7.0.1" - checksum: 76a8a814cab0bdd45d10ee17f5a642c28996500de6684a08611925c4c342ace0587e028903afd35cc2991749c22196a735976743385f4a9dadd1273c97902420 - languageName: node - linkType: hard - -"level-errors@npm:^1.0.3": - version: 1.1.2 - resolution: "level-errors@npm:1.1.2" - dependencies: - errno: "npm:~0.1.1" - checksum: 18c22fd574ff31567642a85d9a306604a32cbe969b8469fee29620c10488214a6b5e6bbf19e3b5e2042859e4b81041af537319c18132a1aaa56d4ed5981157b7 - languageName: node - linkType: hard - -"level-errors@npm:^2.0.0, level-errors@npm:~2.0.0": - version: 2.0.1 - resolution: "level-errors@npm:2.0.1" - dependencies: - errno: "npm:~0.1.1" - checksum: 3f800be6a30637ff4ae907b100512fc36d077b237dc407f976f283122984059002a67cc89c8f9c0f74a49cc84c7e519d09fcc0ece53af64360bcd5ecc762e3a3 - languageName: node - linkType: hard - -"level-errors@npm:~1.0.3": - version: 1.0.5 - resolution: "level-errors@npm:1.0.5" - dependencies: - errno: "npm:~0.1.1" - checksum: ae5d5c042c52975aa1543120fe5e1bf3d382c3f64aa9f036a616c6bf4b2de841eea4fc26107e96fe70ba34a21565e7902f9cafcf9ec699de0d98b02d53b42467 - languageName: node - linkType: hard - -"level-iterator-stream@npm:^2.0.3": - version: 2.0.3 - resolution: "level-iterator-stream@npm:2.0.3" - dependencies: - inherits: "npm:^2.0.1" - readable-stream: "npm:^2.0.5" - xtend: "npm:^4.0.0" - checksum: 71b07164076417600bdf56c30e96b6daa712999645c60a0ac98c67df410525a340853c008f39bb35b087ebc1d41e4744e55391796cccc1b95da2be9bc9cf1819 - languageName: node - linkType: hard - -"level-iterator-stream@npm:~1.3.0": - version: 1.3.1 - resolution: "level-iterator-stream@npm:1.3.1" - dependencies: - inherits: "npm:^2.0.1" - level-errors: "npm:^1.0.3" - readable-stream: "npm:^1.0.33" - xtend: "npm:^4.0.0" - checksum: ed9a865cc02ff2edfbc231ab8bf911f4645c0571bfadc5c55a1893435a0c9990bbf8b0176c5f5838cf4117937c6b196e09d24a14da007c25c6c00c989e92fe72 - languageName: node - linkType: hard - -"level-iterator-stream@npm:~3.0.0": - version: 3.0.1 - resolution: "level-iterator-stream@npm:3.0.1" - dependencies: - inherits: "npm:^2.0.1" - readable-stream: "npm:^2.3.6" - xtend: "npm:^4.0.0" - checksum: 53ff9825fcdf44f73210d3d3979add8f2ba1a928ce6313928adc6258ae58107b112b43e4632f6fedf9e0455b6ccd24969338b633f63846c0d4a8fe516495e5f2 - languageName: node - linkType: hard - -"level-mem@npm:^3.0.1": - version: 3.0.1 - resolution: "level-mem@npm:3.0.1" - dependencies: - level-packager: "npm:~4.0.0" - memdown: "npm:~3.0.0" - checksum: e4c680922afc3c8cd4502d761ab610c8aa7bcacde2550a0a463e1db069eeb55b6b7bec0bb7fda564cec82422944776f9909fe101b0d7746ad8f4f7446ec2a5cd - languageName: node - linkType: hard - -"level-packager@npm:~4.0.0": +"level-supports@npm:^4.0.0": version: 4.0.1 - resolution: "level-packager@npm:4.0.1" - dependencies: - encoding-down: "npm:~5.0.0" - levelup: "npm:^3.0.0" - checksum: 7521845db87475daaa001bf80748c6e1c53a3a14dd1d14daaffe168c02a0d559b88b86e565ff30fef5a00368ba47a16aea3b96588831423fdc6e0252155371b3 - languageName: node - linkType: hard - -"level-post@npm:^1.0.7": - version: 1.0.7 - resolution: "level-post@npm:1.0.7" - dependencies: - ltgt: "npm:^2.1.2" - checksum: 3c19c2292341e8496800d5c9c104dfb8d1fe6d5342f8872154c07d4baed9c747031350d2fc517bc967752ba0c6781ca5ba477816b481d6eda7853f75020ee53b - languageName: node - linkType: hard - -"level-sublevel@npm:6.6.4": - version: 6.6.4 - resolution: "level-sublevel@npm:6.6.4" - dependencies: - bytewise: "npm:~1.1.0" - level-codec: "npm:^9.0.0" - level-errors: "npm:^2.0.0" - level-iterator-stream: "npm:^2.0.3" - ltgt: "npm:~2.1.1" - pull-defer: "npm:^0.2.2" - pull-level: "npm:^2.0.3" - pull-stream: "npm:^3.6.8" - typewiselite: "npm:~1.0.0" - xtend: "npm:~4.0.0" - checksum: ec393accda6a40e5f4c6c4af7bd058b09eea0c998201992b160891f3b358a43c706d69e856f8dd51c4772556ec6dde064d4c0e3cc1a17e496a01fdd78b4321a9 - languageName: node - linkType: hard - -"level-ws@npm:0.0.0": - version: 0.0.0 - resolution: "level-ws@npm:0.0.0" - dependencies: - readable-stream: "npm:~1.0.15" - xtend: "npm:~2.1.1" - checksum: ee85b24c8fac8c48185af0dce6b87228c3ef941b2241793fe7201f7676a1588beb1cad5db1fbad75532628a28aaee50a4fbfd510c8da35faffc348a9fd05c272 - languageName: node - linkType: hard - -"level-ws@npm:^1.0.0": - version: 1.0.0 - resolution: "level-ws@npm:1.0.0" - dependencies: - inherits: "npm:^2.0.3" - readable-stream: "npm:^2.2.8" - xtend: "npm:^4.0.1" - checksum: 2657ecab6f19b12da2f34520f31b02b2a7bf611b1de44d3a8e519819a5d60a254c0af9e39cafffeb9c1559e7f34c292da8efacbcc4fa653a2f7e5f3e2a5a550c + resolution: "level-supports@npm:4.0.1" + checksum: e2f177af813a25af29d15406a14240e2e10e5efb1c35b03643c885ac5931af760b9337826506b6395f98cf6b1e68ba294bfc345a248a1ae3f9c69e08e81824b2 languageName: node linkType: hard -"levelup@npm:3.1.1, levelup@npm:^3.0.0": - version: 3.1.1 - resolution: "levelup@npm:3.1.1" +"level-transcoder@npm:^1.0.1": + version: 1.0.1 + resolution: "level-transcoder@npm:1.0.1" dependencies: - deferred-leveldown: "npm:~4.0.0" - level-errors: "npm:~2.0.0" - level-iterator-stream: "npm:~3.0.0" - xtend: "npm:~4.0.0" - checksum: df3ecd82b21261c21a6e07bd780f7fc212d0988e02c0a3801e4f49fcfb6f4f277ed803c839bc8334cf21316835d43bcc33839c7d660da7d60e0728996bf78698 + buffer: "npm:^6.0.3" + module-error: "npm:^1.0.1" + checksum: 2fb41a1d8037fc279f851ead8cdc3852b738f1f935ac2895183cd606aae3e57008e085c7c2bd2b2d43cfd057333108cfaed604092e173ac2abdf5ab1b8333f9e languageName: node linkType: hard -"levelup@npm:^1.2.1": - version: 1.3.9 - resolution: "levelup@npm:1.3.9" +"level@npm:^8.0.0": + version: 8.0.0 + resolution: "level@npm:8.0.0" dependencies: - deferred-leveldown: "npm:~1.2.1" - level-codec: "npm:~7.0.0" - level-errors: "npm:~1.0.3" - level-iterator-stream: "npm:~1.3.0" - prr: "npm:~1.0.1" - semver: "npm:~5.4.1" - xtend: "npm:~4.0.0" - checksum: 2d7ce905a08b8073f3d012d66fdf7582111cc699da64772f0ebbb0dc225566674ef528d7167f6a7be9a0686a883623f638a9583c7b1a3e8cdcea40018666f2ca + browser-level: "npm:^1.0.1" + classic-level: "npm:^1.2.0" + checksum: 1e7df97fe80fb158c8c1d6feeb651ee1381fd8e45af773b2bb02d3dd020fefd4f48a69d260b2d0ce9c4245ee9d8d40b8a9c49275b0b1ef6e1d4158feb5c39081 languageName: node linkType: hard @@ -36489,19 +38037,6 @@ __metadata: languageName: node linkType: hard -"load-json-file@npm:^1.0.0": - version: 1.1.0 - resolution: "load-json-file@npm:1.1.0" - dependencies: - graceful-fs: "npm:^4.1.2" - parse-json: "npm:^2.2.0" - pify: "npm:^2.0.0" - pinkie-promise: "npm:^2.0.0" - strip-bom: "npm:^2.0.0" - checksum: bb16e169d87df38806f5ffa7efa3287921839fdfee2c20c8525f53b53ba43d14b56b6881901c04190f7da4a4ba6e0c9784d212e83ee3a32d49bb986b5a6094cb - languageName: node - linkType: hard - "load-tsconfig@npm:^0.2.3": version: 0.2.5 resolution: "load-tsconfig@npm:0.2.5" @@ -36615,13 +38150,6 @@ __metadata: languageName: node linkType: hard -"lodash.assign@npm:^4.0.3, lodash.assign@npm:^4.0.6": - version: 4.2.0 - resolution: "lodash.assign@npm:4.2.0" - checksum: 2571d0d487375d5882ece0d94bf18807b6d9d1722ad77a84c220f27fabb6cf3e4f9109183317c95b0cb0d42dae6c2cad453a31d50c9cdcd102b3bbf1b78b1ea7 - languageName: node - linkType: hard - "lodash.camelcase@npm:^4.3.0": version: 4.3.0 resolution: "lodash.camelcase@npm:4.3.0" @@ -36797,13 +38325,6 @@ __metadata: languageName: node linkType: hard -"lodash.partition@npm:^4.6.0": - version: 4.6.0 - resolution: "lodash.partition@npm:4.6.0" - checksum: 6912bdf8006e1389242d35dc670570c470c93822c6859f5e0c18426be519e9ebba576969443fca256ef5913d12319ffa1a1eb870ac403978089cc1c703d705c2 - languageName: node - linkType: hard - "lodash.repeat@npm:4.1.0, lodash.repeat@npm:^4.1.0": version: 4.1.0 resolution: "lodash.repeat@npm:4.1.0" @@ -36832,13 +38353,6 @@ __metadata: languageName: node linkType: hard -"lodash.sum@npm:^4.0.2": - version: 4.0.2 - resolution: "lodash.sum@npm:4.0.2" - checksum: b33518c8bdb9b0f81a32e03afbc7577cfe6b7505daeedba73de9301fd1c6a268ec97d8d43bf03956a89a76db8fe24ffa04f977be278d1c3e679028d0e114ad33 - languageName: node - linkType: hard - "lodash.transform@npm:^4.6.0": version: 4.6.0 resolution: "lodash.transform@npm:4.6.0" @@ -37040,20 +38554,6 @@ __metadata: languageName: node linkType: hard -"looper@npm:^2.0.0": - version: 2.0.0 - resolution: "looper@npm:2.0.0" - checksum: ee5124d54c97cd9e778e602e297ed37dd6405b7c36830f90bb1aaa6adb8d64f2a228aa341459e6bf2db9a8d7dc9eb8c16ec9c6bffeab1c47f91efe213858ce36 - languageName: node - linkType: hard - -"looper@npm:^3.0.0": - version: 3.0.0 - resolution: "looper@npm:3.0.0" - checksum: 2ec29b4161e95d33f2257867b0b9ab7f2fef5425582362c966f8f9041a2a6032466b8be159af99323655aca9e6fe1c9da086cf208f6346bd97c9f83ab77ccce0 - languageName: node - linkType: hard - "loose-envify@npm:^1.0.0, loose-envify@npm:^1.1.0, loose-envify@npm:^1.2.0, loose-envify@npm:^1.3.1, loose-envify@npm:^1.4.0": version: 1.4.0 resolution: "loose-envify@npm:1.4.0" @@ -37084,6 +38584,15 @@ __metadata: languageName: node linkType: hard +"loupe@npm:^2.3.1": + version: 2.3.6 + resolution: "loupe@npm:2.3.6" + dependencies: + get-func-name: "npm:^2.0.0" + checksum: 8e695f3c99d9670d524767bc2bcbf799444b865d1d05e974d6dc53d72863c2ce9990103f311f89f04019f064e5ae7bbe70f3fba030a57d65aacfb951aad34d9f + languageName: node + linkType: hard + "loupe@npm:^2.3.6": version: 2.3.7 resolution: "loupe@npm:2.3.7" @@ -37093,15 +38602,6 @@ __metadata: languageName: node linkType: hard -"lower-case-first@npm:^1.0.0": - version: 1.0.2 - resolution: "lower-case-first@npm:1.0.2" - dependencies: - lower-case: "npm:^1.1.2" - checksum: 97eb5ce68998153552f3627d405f6821299a45dac90423f712ccd696f77fa96e9d707a5509970c8b61b99c08947eb1e70e35cddb67bc40ea64069c574edd4f78 - languageName: node - linkType: hard - "lower-case-first@npm:^2.0.2": version: 2.0.2 resolution: "lower-case-first@npm:2.0.2" @@ -37111,13 +38611,6 @@ __metadata: languageName: node linkType: hard -"lower-case@npm:^1.1.0, lower-case@npm:^1.1.1, lower-case@npm:^1.1.2": - version: 1.1.4 - resolution: "lower-case@npm:1.1.4" - checksum: 0c4aebc459ba330bcc38d20cad26ee33111155ed09c09e7d7ec395997277feee3a4d8db541ed5ca555f20ddc5c65a3b23648d18fcd2a950376da6d0c2e01416e - languageName: node - linkType: hard - "lower-case@npm:^2.0.2": version: 2.0.2 resolution: "lower-case@npm:2.0.2" @@ -37127,13 +38620,6 @@ __metadata: languageName: node linkType: hard -"lowercase-keys@npm:^1.0.0, lowercase-keys@npm:^1.0.1": - version: 1.0.1 - resolution: "lowercase-keys@npm:1.0.1" - checksum: 12ba64572dc25ae9ee30d37a11f3a91aea046c1b6b905fdf8ac77e2f268f153ed36e60d39cb3bfa47a89f31d981dae9a8cc9915124a56fe51ff01ed6e8bb68fa - languageName: node - linkType: hard - "lowercase-keys@npm:^2.0.0": version: 2.0.0 resolution: "lowercase-keys@npm:2.0.0" @@ -37148,28 +38634,26 @@ __metadata: languageName: node linkType: hard -"lru-cache@npm:5.1.1, lru-cache@npm:^5.1.1": - version: 5.1.1 - resolution: "lru-cache@npm:5.1.1" - dependencies: - yallist: "npm:^3.0.2" - checksum: 951d2673dcc64a7fb888bf3d13bc2fdf923faca97d89cdb405ba3dfff77e2b26e5798d405e78fcd7094c9e7b8b4dab2ddc5a4f8a11928af24a207b7c738ca3f8 - languageName: node - linkType: hard - -"lru-cache@npm:^10.0.0, lru-cache@npm:^10.0.1, lru-cache@npm:^10.0.2, lru-cache@npm:^9.1.1 || ^10.0.0": +"lru-cache@npm:^10.0.0": version: 10.2.0 resolution: "lru-cache@npm:10.2.0" checksum: 502ec42c3309c0eae1ce41afca471f831c278566d45a5273a0c51102dee31e0e250a62fa9029c3370988df33a14188a38e682c16143b794de78668de3643e302 languageName: node linkType: hard -"lru-cache@npm:^3.2.0": - version: 3.2.0 - resolution: "lru-cache@npm:3.2.0" +"lru-cache@npm:^10.0.1, lru-cache@npm:^10.0.2": + version: 10.1.0 + resolution: "lru-cache@npm:10.1.0" + checksum: 207278d6fa711fb1f94a0835d4d4737441d2475302482a14785b10515e4c906a57ebf9f35bf060740c9560e91c7c1ad5a04fd7ed030972a9ba18bce2a228e95b + languageName: node + linkType: hard + +"lru-cache@npm:^5.1.1": + version: 5.1.1 + resolution: "lru-cache@npm:5.1.1" dependencies: - pseudomap: "npm:^1.0.1" - checksum: 2724c3727404e51b54454baa6dffc8a6d7508366b8ee4415c309a247011531e98eb2fdd68ba33b0b4c39a969cfe31dac088b1b6651ae4c02afbd6302a2af28dd + yallist: "npm:^3.0.2" + checksum: 951d2673dcc64a7fb888bf3d13bc2fdf923faca97d89cdb405ba3dfff77e2b26e5798d405e78fcd7094c9e7b8b4dab2ddc5a4f8a11928af24a207b7c738ca3f8 languageName: node linkType: hard @@ -37182,6 +38666,20 @@ __metadata: languageName: node linkType: hard +"lru-cache@npm:^9.1.1": + version: 9.1.1 + resolution: "lru-cache@npm:9.1.1" + checksum: bf0b62d5fd7b769f40a73f7dc41f12f0f24bc543277f78681bd36d9a684a09233b0c8a188d8c996b319f803410808a1e57ab99cd60e33b9b7b2728b08e31c7ff + languageName: node + linkType: hard + +"lru-cache@npm:^9.1.1 || ^10.0.0": + version: 10.0.0 + resolution: "lru-cache@npm:10.0.0" + checksum: 590e00d6ccd76a1ada056585be3fd6dbddda395fc9359390cff38669c69c3fa1792dd6c4c46a9b1b411f032cd2e979d9e664f1628163292ecdfeada98c3da1f3 + languageName: node + linkType: hard + "lru-queue@npm:^0.1.0": version: 0.1.0 resolution: "lru-queue@npm:0.1.0" @@ -37198,20 +38696,6 @@ __metadata: languageName: node linkType: hard -"ltgt@npm:^2.1.2, ltgt@npm:~2.2.0": - version: 2.2.1 - resolution: "ltgt@npm:2.2.1" - checksum: 10536cee1d01114cf7aadd0c24fab432a4825bb8ef091488ae6d255df916ac7f15141f6bc1e023886aea0397353f0c14608581ce0dbb57f43704f77cc33731d0 - languageName: node - linkType: hard - -"ltgt@npm:~2.1.1": - version: 2.1.3 - resolution: "ltgt@npm:2.1.3" - checksum: 335bae492f19474d32794dd8b1282743fb48dd996f49a5863177ca5da9d44eef77e472948365dba7a2b7312e4f848e147ff20dfd23f2e3849750793aa5436f84 - languageName: node - linkType: hard - "luxon@npm:^3.2.1": version: 3.4.4 resolution: "luxon@npm:3.4.4" @@ -37253,21 +38737,21 @@ __metadata: languageName: node linkType: hard -"magic-string@npm:^0.30.0, magic-string@npm:^0.30.1, magic-string@npm:^0.30.3": - version: 0.30.7 - resolution: "magic-string@npm:0.30.7" +"magic-string@npm:^0.30.0, magic-string@npm:^0.30.3": + version: 0.30.5 + resolution: "magic-string@npm:0.30.5" dependencies: "@jridgewell/sourcemap-codec": "npm:^1.4.15" - checksum: 883eaaf6792a3263e44f4bcdcd35ace272268e4b98ed5a770ad711947958d2f9fc683e474945e306e2bdc152b7e44d369ee312690d87025b9879fc63fbe1409c + checksum: c8a6b25f813215ca9db526f3a407d6dc0bf35429c2b8111d6f1c2cf6cf6afd5e2d9f9cd189416a0e3959e20ecd635f73639f9825c73de1074b29331fe36ace59 languageName: node linkType: hard -"make-dir@npm:^1.0.0": - version: 1.3.0 - resolution: "make-dir@npm:1.3.0" +"magic-string@npm:^0.30.1": + version: 0.30.1 + resolution: "magic-string@npm:0.30.1" dependencies: - pify: "npm:^3.0.0" - checksum: c564f6e7bb5ace1c02ad56b3a5f5e07d074af0c0b693c55c7b2c2b148882827c8c2afc7b57e43338a9f90c125b58d604e8cf3e6990a48bf949dfea8c79668c0b + "@jridgewell/sourcemap-codec": "npm:^1.4.15" + checksum: 35303570586e1074c1486f4e0065d8dbc45539e2e486336d7f898f75d2b1e4556eabd24ec6be34dd6cb9bb5df1d5b162284118ef7911e3c94315be9ebc195a29 languageName: node linkType: hard @@ -37456,6 +38940,13 @@ __metadata: languageName: node linkType: hard +"mcl-wasm@npm:^0.7.1": + version: 0.7.9 + resolution: "mcl-wasm@npm:0.7.9" + checksum: eb689cf0e2422ef7b98e8b040ed601821aea839718c876cd734e9148ca7013adf1c869bbc9495aac351e645d314ec3bd3d3612c91f60c499c5aea8d3dd2a7e38 + languageName: node + linkType: hard + "md5-hex@npm:^3.0.1": version: 3.0.1 resolution: "md5-hex@npm:3.0.1" @@ -37841,34 +39332,6 @@ __metadata: languageName: node linkType: hard -"memdown@npm:^1.0.0": - version: 1.4.1 - resolution: "memdown@npm:1.4.1" - dependencies: - abstract-leveldown: "npm:~2.7.1" - functional-red-black-tree: "npm:^1.0.1" - immediate: "npm:^3.2.3" - inherits: "npm:~2.0.1" - ltgt: "npm:~2.2.0" - safe-buffer: "npm:~5.1.1" - checksum: 3f89142a12389b1ebfc7adaf3be19ed57cd073f84160eb7419b61c8e188e2b82eb787dad168d7b00ca68355b6b952067d9badaa5ac88c8ee014e4b0af2bfaea0 - languageName: node - linkType: hard - -"memdown@npm:~3.0.0": - version: 3.0.0 - resolution: "memdown@npm:3.0.0" - dependencies: - abstract-leveldown: "npm:~5.0.0" - functional-red-black-tree: "npm:~1.0.1" - immediate: "npm:~3.2.3" - inherits: "npm:~2.0.1" - ltgt: "npm:~2.2.0" - safe-buffer: "npm:~5.1.1" - checksum: c3b9d58f32ae8694b1a2daa4c3a7aafd08ac986df9a6de56b9630920d69955b8b1df4c54ca2021d2e0c80153b53142cab469b39e311eb36dab9436798414e640 - languageName: node - linkType: hard - "memfs@npm:^3.1.2, memfs@npm:^3.4.3": version: 3.5.3 resolution: "memfs@npm:3.5.3" @@ -37917,6 +39380,17 @@ __metadata: languageName: node linkType: hard +"memory-level@npm:^1.0.0": + version: 1.0.0 + resolution: "memory-level@npm:1.0.0" + dependencies: + abstract-level: "npm:^1.0.0" + functional-red-black-tree: "npm:^1.0.1" + module-error: "npm:^1.0.1" + checksum: e3293d8c67ebc0aa4b29982c5f8e3d139c5b1b04b97fa3ae98f940f91c7bdfefec9ff189742943734ebb6c7efa85fed6a4d559407b2d5751106b24cac17a23a6 + languageName: node + linkType: hard + "memorystream@npm:^0.3.1": version: 0.3.1 resolution: "memorystream@npm:0.3.1" @@ -37961,37 +39435,6 @@ __metadata: languageName: node linkType: hard -"merkle-patricia-tree@npm:3.0.0": - version: 3.0.0 - resolution: "merkle-patricia-tree@npm:3.0.0" - dependencies: - async: "npm:^2.6.1" - ethereumjs-util: "npm:^5.2.0" - level-mem: "npm:^3.0.1" - level-ws: "npm:^1.0.0" - readable-stream: "npm:^3.0.6" - rlp: "npm:^2.0.0" - semaphore: "npm:>=1.0.1" - checksum: 78c8ea0532f5caa8bf7167221d00cd442742774ee4b6ec5166edaba6be8f6b8ea185407fd0af3b6aea1e25357b411bf60e0597cab3a6a5b6935af29826f96595 - languageName: node - linkType: hard - -"merkle-patricia-tree@npm:^2.1.2, merkle-patricia-tree@npm:^2.3.2": - version: 2.3.2 - resolution: "merkle-patricia-tree@npm:2.3.2" - dependencies: - async: "npm:^1.4.2" - ethereumjs-util: "npm:^5.0.0" - level-ws: "npm:0.0.0" - levelup: "npm:^1.2.1" - memdown: "npm:^1.0.0" - readable-stream: "npm:^2.0.0" - rlp: "npm:^2.0.0" - semaphore: "npm:>=1.0.1" - checksum: 4188bd5b163719bd9c5da45ba356fac753a0f0ac0b9990923b5f064852e083334abd5e4d838dcd35ee50d884dad5c52adbd103387c89d20be3ec47b51784946a - languageName: node - linkType: hard - "meros@npm:^1.2.1": version: 1.3.0 resolution: "meros@npm:1.3.0" @@ -38742,7 +40185,7 @@ __metadata: languageName: node linkType: hard -"micromatch@npm:^3.1.10, micromatch@npm:^3.1.4": +"micromatch@npm:^3.1.10": version: 3.1.10 resolution: "micromatch@npm:3.1.10" dependencies: @@ -38937,7 +40380,7 @@ __metadata: languageName: node linkType: hard -"mimic-response@npm:^1.0.0, mimic-response@npm:^1.0.1": +"mimic-response@npm:^1.0.0": version: 1.0.1 resolution: "mimic-response@npm:1.0.1" checksum: 034c78753b0e622bc03c983663b1cdf66d03861050e0c8606563d149bc2b02d63f62ce4d32be4ab50d0553ae0ffe647fc34d1f5281184c6e1e8cf4d85e8d9823 @@ -39067,7 +40510,7 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:9.0.3, minimatch@npm:^9.0.0, minimatch@npm:^9.0.1, minimatch@npm:^9.0.3": +"minimatch@npm:9.0.3, minimatch@npm:^9.0.1, minimatch@npm:^9.0.3": version: 9.0.3 resolution: "minimatch@npm:9.0.3" dependencies: @@ -39112,14 +40555,16 @@ __metadata: languageName: node linkType: hard -"minimist@npm:0.0.5": - version: 0.0.5 - resolution: "minimist@npm:0.0.5" - checksum: ae348b41fc7068f8e98578ed63c68cc9144b66f7e3af77aaab7310e91c55c6e52c384665af2fcb45dad75855f993a3b17b1caa24d90d332b35b2925f6df09bc2 +"minimatch@npm:^9.0.0": + version: 9.0.0 + resolution: "minimatch@npm:9.0.0" + dependencies: + brace-expansion: "npm:^2.0.1" + checksum: a7653b37c4a6f0dcf98b5bc6ad10926c193b94ac83de5e7f7e462c137075feb8cfac7fa02963438ab401f504f043f9ea13a2d3f57a71e49307f8867af34296f5 languageName: node linkType: hard -"minimist@npm:1.2.8, minimist@npm:^1.2.0, minimist@npm:^1.2.5, minimist@npm:^1.2.6, minimist@npm:^1.2.7, minimist@npm:~1.2.8": +"minimist@npm:1.2.8, minimist@npm:^1.2.0, minimist@npm:^1.2.5, minimist@npm:^1.2.6, minimist@npm:^1.2.7": version: 1.2.8 resolution: "minimist@npm:1.2.8" checksum: 908491b6cc15a6c440ba5b22780a0ba89b9810e1aea684e253e43c4e3b8d56ec1dcdd7ea96dde119c29df59c936cde16062159eae4225c691e19c70b432b6e6f @@ -39210,6 +40655,13 @@ __metadata: languageName: node linkType: hard +"minipass@npm:^5.0.0 || ^6.0.0": + version: 6.0.1 + resolution: "minipass@npm:6.0.1" + checksum: 08b8b0e5b0a84e895b1c64cc39a96e9bb3438f5ce9a7bec9e8357794ae4775d9010245e25b3b19b58af6efaf9d5cab59bb3b02681c871d384c256ac8888e19f6 + languageName: node + linkType: hard + "minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3": version: 7.0.4 resolution: "minipass@npm:7.0.4" @@ -39302,7 +40754,7 @@ __metadata: languageName: node linkType: hard -"mlly@npm:^1.2.0, mlly@npm:^1.4.0, mlly@npm:^1.6.1": +"mlly@npm:^1.2.0, mlly@npm:^1.6.1": version: 1.6.1 resolution: "mlly@npm:1.6.1" dependencies: @@ -39314,6 +40766,18 @@ __metadata: languageName: node linkType: hard +"mlly@npm:^1.4.0": + version: 1.4.0 + resolution: "mlly@npm:1.4.0" + dependencies: + acorn: "npm:^8.9.0" + pathe: "npm:^1.1.1" + pkg-types: "npm:^1.0.3" + ufo: "npm:^1.1.2" + checksum: a4bb3bb9e58a8516a4ad4c29036b5500814f269bfa5663bb923561102cc6de6fcc7de71fad6ba7a8af76d46c713bfe97e24bba9436967ad11f7fbcfb92ea4ba3 + languageName: node + linkType: hard + "mnemonist@npm:^0.38.0, mnemonist@npm:^0.38.3": version: 0.38.5 resolution: "mnemonist@npm:0.38.5" @@ -39421,6 +40885,41 @@ __metadata: languageName: node linkType: hard +"mocha@npm:^7.1.1": + version: 7.2.0 + resolution: "mocha@npm:7.2.0" + dependencies: + ansi-colors: "npm:3.2.3" + browser-stdout: "npm:1.3.1" + chokidar: "npm:3.3.0" + debug: "npm:3.2.6" + diff: "npm:3.5.0" + escape-string-regexp: "npm:1.0.5" + find-up: "npm:3.0.0" + glob: "npm:7.1.3" + growl: "npm:1.10.5" + he: "npm:1.2.0" + js-yaml: "npm:3.13.1" + log-symbols: "npm:3.0.0" + minimatch: "npm:3.0.4" + mkdirp: "npm:0.5.5" + ms: "npm:2.1.1" + node-environment-flags: "npm:1.0.6" + object.assign: "npm:4.1.0" + strip-json-comments: "npm:2.0.1" + supports-color: "npm:6.0.0" + which: "npm:1.3.1" + wide-align: "npm:1.1.3" + yargs: "npm:13.3.2" + yargs-parser: "npm:13.1.2" + yargs-unparser: "npm:1.6.0" + bin: + _mocha: bin/_mocha + mocha: bin/mocha + checksum: 3f7630fc5aecd1497a13ffa8ac98a5db6d91a9f0232d12f5d258c17da187ab1ec53192e4947443d96174785256036b711e0d3cd6f99fd5766b29c801836fe6c1 + languageName: node + linkType: hard + "mock-fs@npm:^4.1.0": version: 4.14.0 resolution: "mock-fs@npm:4.14.0" @@ -39428,20 +40927,6 @@ __metadata: languageName: node linkType: hard -"mock-property@npm:~1.0.0": - version: 1.0.3 - resolution: "mock-property@npm:1.0.3" - dependencies: - define-data-property: "npm:^1.1.1" - functions-have-names: "npm:^1.2.3" - gopd: "npm:^1.0.1" - has-property-descriptors: "npm:^1.0.0" - hasown: "npm:^2.0.0" - isarray: "npm:^2.0.5" - checksum: 7791b3bb57ee6e1f3f9f634d2ce8e4255babe073c41b13ccb1b6f67b51e1de114bb979cfba693ec026ca304197409751968c05041048555a3eca71539e99c65d - languageName: node - linkType: hard - "module-definition@npm:^5.0.1": version: 5.0.1 resolution: "module-definition@npm:5.0.1" @@ -39454,6 +40939,13 @@ __metadata: languageName: node linkType: hard +"module-error@npm:^1.0.1, module-error@npm:^1.0.2": + version: 1.0.2 + resolution: "module-error@npm:1.0.2" + checksum: 5d653e35bd55b3e95f8aee2cdac108082ea892e71b8f651be92cde43e4ee86abee4fa8bd7fc3fe5e68b63926d42f63c54cd17b87a560c31f18739295575a3962 + languageName: node + linkType: hard + "moize@npm:^6.1.0, moize@npm:^6.1.3": version: 6.1.6 resolution: "moize@npm:6.1.6" @@ -39464,16 +40956,6 @@ __metadata: languageName: node linkType: hard -"mold-source-map@npm:~0.4.0": - version: 0.4.1 - resolution: "mold-source-map@npm:0.4.1" - dependencies: - convert-source-map: "npm:^1.1.0" - through: "npm:~2.2.7" - checksum: 4cb22b5095f888e0cf5fd1ece5ebb543c97d27dd1bef99518a61f157d653f41974f9685c079c13f21f436e6ce2dccbc1e0d9bd44f798fd7a8eb9a5c543d536a1 - languageName: node - linkType: hard - "moment-timezone@npm:^0.5.43": version: 0.5.45 resolution: "moment-timezone@npm:0.5.45" @@ -39721,7 +41203,7 @@ __metadata: languageName: node linkType: hard -"mute-stream@npm:0.0.8, mute-stream@npm:~0.0.4": +"mute-stream@npm:0.0.8": version: 0.0.8 resolution: "mute-stream@npm:0.0.8" checksum: a2d2e79dde87e3424ffc8c334472c7f3d17b072137734ca46e6f221131f1b014201cc593b69a38062e974fb2394d3d1cb4349f80f012bbf8b8ac1b28033e515f @@ -39759,13 +41241,6 @@ __metadata: languageName: node linkType: hard -"nano-base32@npm:^1.0.1": - version: 1.0.1 - resolution: "nano-base32@npm:1.0.1" - checksum: 91acac2bc7883c2e6abe7e190d1253a9441ca89a05d839b46a737e3cf76ae0c5d160590b584f20c963198691b60d89fd6bb255ab5ec1b6c259759966c907a382 - languageName: node - linkType: hard - "nano-css@npm:^5.6.1": version: 5.6.1 resolution: "nano-css@npm:5.6.1" @@ -39836,6 +41311,13 @@ __metadata: languageName: node linkType: hard +"napi-macros@npm:^2.2.2": + version: 2.2.2 + resolution: "napi-macros@npm:2.2.2" + checksum: 2cdb9c40ad4b424b14fbe5e13c5329559e2b511665acf41cdcda172fd2270202dc747a2d288b687c72bc70f654c797bc24a93adb67631128d62461588d7cc070 + languageName: node + linkType: hard + "napi-wasm@npm:^1.1.0": version: 1.1.0 resolution: "napi-wasm@npm:1.1.0" @@ -39898,7 +41380,7 @@ __metadata: languageName: node linkType: hard -"neo-async@npm:^2.5.0, neo-async@npm:^2.6.1, neo-async@npm:^2.6.2": +"neo-async@npm:^2.5.0, neo-async@npm:^2.6.0, neo-async@npm:^2.6.1, neo-async@npm:^2.6.2": version: 2.6.2 resolution: "neo-async@npm:2.6.2" checksum: 1a7948fea86f2b33ec766bc899c88796a51ba76a4afc9026764aedc6e7cde692a09067031e4a1bf6db4f978ccd99e7f5b6c03fe47ad9865c3d4f99050d67e002 @@ -40159,26 +41641,27 @@ __metadata: languageName: node linkType: hard -"next@npm:*": - version: 14.1.1 - resolution: "next@npm:14.1.1" +"next@npm:*, next@npm:14.0.4": + version: 14.0.4 + resolution: "next@npm:14.0.4" dependencies: - "@next/env": "npm:14.1.1" - "@next/swc-darwin-arm64": "npm:14.1.1" - "@next/swc-darwin-x64": "npm:14.1.1" - "@next/swc-linux-arm64-gnu": "npm:14.1.1" - "@next/swc-linux-arm64-musl": "npm:14.1.1" - "@next/swc-linux-x64-gnu": "npm:14.1.1" - "@next/swc-linux-x64-musl": "npm:14.1.1" - "@next/swc-win32-arm64-msvc": "npm:14.1.1" - "@next/swc-win32-ia32-msvc": "npm:14.1.1" - "@next/swc-win32-x64-msvc": "npm:14.1.1" + "@next/env": "npm:14.0.4" + "@next/swc-darwin-arm64": "npm:14.0.4" + "@next/swc-darwin-x64": "npm:14.0.4" + "@next/swc-linux-arm64-gnu": "npm:14.0.4" + "@next/swc-linux-arm64-musl": "npm:14.0.4" + "@next/swc-linux-x64-gnu": "npm:14.0.4" + "@next/swc-linux-x64-musl": "npm:14.0.4" + "@next/swc-win32-arm64-msvc": "npm:14.0.4" + "@next/swc-win32-ia32-msvc": "npm:14.0.4" + "@next/swc-win32-x64-msvc": "npm:14.0.4" "@swc/helpers": "npm:0.5.2" busboy: "npm:1.6.0" - caniuse-lite: "npm:^1.0.30001579" + caniuse-lite: "npm:^1.0.30001406" graceful-fs: "npm:^4.2.11" postcss: "npm:8.4.31" styled-jsx: "npm:5.1.1" + watchpack: "npm:2.4.0" peerDependencies: "@opentelemetry/api": ^1.1.0 react: ^18.2.0 @@ -40210,7 +41693,7 @@ __metadata: optional: true bin: next: dist/bin/next - checksum: 33524d993a184c8922a1077502c165873dd4f07b5f75664ab2743fe045d699a6b3edddd29ab1cdb187ed648961773bd3f4d5b96860e78f14d7c5a4730a9d35d5 + checksum: f119dfed59ba14972759bbc354fd2e99793c5a31689465a5e7cacd329977ed3d259eb756142bef31e96f28a80a00997e76314425faeda4c6fcf4e4ad6c5fa960 languageName: node linkType: hard @@ -40270,69 +41753,6 @@ __metadata: languageName: node linkType: hard -"next@npm:14.0.4": - version: 14.0.4 - resolution: "next@npm:14.0.4" - dependencies: - "@next/env": "npm:14.0.4" - "@next/swc-darwin-arm64": "npm:14.0.4" - "@next/swc-darwin-x64": "npm:14.0.4" - "@next/swc-linux-arm64-gnu": "npm:14.0.4" - "@next/swc-linux-arm64-musl": "npm:14.0.4" - "@next/swc-linux-x64-gnu": "npm:14.0.4" - "@next/swc-linux-x64-musl": "npm:14.0.4" - "@next/swc-win32-arm64-msvc": "npm:14.0.4" - "@next/swc-win32-ia32-msvc": "npm:14.0.4" - "@next/swc-win32-x64-msvc": "npm:14.0.4" - "@swc/helpers": "npm:0.5.2" - busboy: "npm:1.6.0" - caniuse-lite: "npm:^1.0.30001406" - graceful-fs: "npm:^4.2.11" - postcss: "npm:8.4.31" - styled-jsx: "npm:5.1.1" - watchpack: "npm:2.4.0" - peerDependencies: - "@opentelemetry/api": ^1.1.0 - react: ^18.2.0 - react-dom: ^18.2.0 - sass: ^1.3.0 - dependenciesMeta: - "@next/swc-darwin-arm64": - optional: true - "@next/swc-darwin-x64": - optional: true - "@next/swc-linux-arm64-gnu": - optional: true - "@next/swc-linux-arm64-musl": - optional: true - "@next/swc-linux-x64-gnu": - optional: true - "@next/swc-linux-x64-musl": - optional: true - "@next/swc-win32-arm64-msvc": - optional: true - "@next/swc-win32-ia32-msvc": - optional: true - "@next/swc-win32-x64-msvc": - optional: true - peerDependenciesMeta: - "@opentelemetry/api": - optional: true - sass: - optional: true - bin: - next: dist/bin/next - checksum: f119dfed59ba14972759bbc354fd2e99793c5a31689465a5e7cacd329977ed3d259eb756142bef31e96f28a80a00997e76314425faeda4c6fcf4e4ad6c5fa960 - languageName: node - linkType: hard - -"nice-try@npm:^1.0.4": - version: 1.0.5 - resolution: "nice-try@npm:1.0.5" - checksum: 0b4af3b5bb5d86c289f7a026303d192a7eb4417231fe47245c460baeabae7277bcd8fd9c728fb6bd62c30b3e15cd6620373e2cf33353b095d8b403d3e8a15aff - languageName: node - linkType: hard - "nise@npm:^5.1.4, nise@npm:^5.1.5": version: 5.1.9 resolution: "nise@npm:5.1.9" @@ -40346,15 +41766,6 @@ __metadata: languageName: node linkType: hard -"no-case@npm:^2.2.0, no-case@npm:^2.3.2": - version: 2.3.2 - resolution: "no-case@npm:2.3.2" - dependencies: - lower-case: "npm:^1.1.1" - checksum: a92fc7c10f40477bb69c3ca00e2a12fd08f838204bcef66233cbe8a36c0ec7938ba0cdf3f0534b38702376cbfa26270130607c0b8460ea87f44d474919c39c91 - languageName: node - linkType: hard - "no-case@npm:^3.0.4": version: 3.0.4 resolution: "no-case@npm:3.0.4" @@ -40505,16 +41916,6 @@ __metadata: languageName: node linkType: hard -"node-fetch@npm:~1.7.1": - version: 1.7.3 - resolution: "node-fetch@npm:1.7.3" - dependencies: - encoding: "npm:^0.1.11" - is-stream: "npm:^1.0.1" - checksum: 17be1a182eec37ba43c1b02673329ab1fa1c2e3ddbdf9b5f62d5157aa118c253dcd42f338eb1b6fe84fb0689c4dd8eb5aaebf46a9b5a066fae88c74e36522688 - languageName: node - linkType: hard - "node-forge@npm:1.3.1, node-forge@npm:^1, node-forge@npm:^1.3.1": version: 1.3.1 resolution: "node-forge@npm:1.3.1" @@ -40612,6 +42013,13 @@ __metadata: languageName: node linkType: hard +"node-releases@npm:^2.0.12, node-releases@npm:^2.0.13": + version: 2.0.13 + resolution: "node-releases@npm:2.0.13" + checksum: c9bb813aab2717ff8b3015ecd4c7c5670a5546e9577699a7c84e8d69230cd3b1ce8f863f8e9b50f18b19a5ffa4b9c1a706bbbfe4c378de955fedbab04488a338 + languageName: node + linkType: hard + "node-releases@npm:^2.0.14": version: 2.0.14 resolution: "node-releases@npm:2.0.14" @@ -40619,6 +42027,13 @@ __metadata: languageName: node linkType: hard +"node-releases@npm:^2.0.8": + version: 2.0.10 + resolution: "node-releases@npm:2.0.10" + checksum: d784ecde25696a15d449c4433077f5cce620ed30a1656c4abf31282bfc691a70d9618bae6868d247a67914d1be5cc4fde22f65a05f4398cdfb92e0fc83cadfbc + languageName: node + linkType: hard + "node-source-walk@npm:^6.0.0, node-source-walk@npm:^6.0.1, node-source-walk@npm:^6.0.2": version: 6.0.2 resolution: "node-source-walk@npm:6.0.2" @@ -40691,13 +42106,6 @@ __metadata: languageName: node linkType: hard -"nofilter@npm:^1.0.3, nofilter@npm:^1.0.4": - version: 1.0.4 - resolution: "nofilter@npm:1.0.4" - checksum: 864d1945d29de91ee0b21349c7404fe506b5f07febd8e11988918e3686467a95570b131282fd2bdad7aee9e4b0ed567386e439690ee6ff177541e7e8b8442144 - languageName: node - linkType: hard - "nofilter@npm:^3.1.0": version: 3.1.0 resolution: "nofilter@npm:3.1.0" @@ -40766,7 +42174,7 @@ __metadata: languageName: node linkType: hard -"normalize-package-data@npm:^2.3.2, normalize-package-data@npm:^2.5.0": +"normalize-package-data@npm:^2.5.0": version: 2.5.0 resolution: "normalize-package-data@npm:2.5.0" dependencies: @@ -40813,13 +42221,6 @@ __metadata: languageName: node linkType: hard -"normalize-url@npm:^4.1.0": - version: 4.5.1 - resolution: "normalize-url@npm:4.5.1" - checksum: 20ced2845fcfaa46da74efc0aa39b7bed22f3db39e6e8b844261613082a36a2dcd468decad89fa9313b5464bebab4034f96bda7880e8fc468027fecf6a6fa254 - languageName: node - linkType: hard - "normalize-url@npm:^6.0.1": version: 6.1.0 resolution: "normalize-url@npm:6.1.0" @@ -40964,7 +42365,7 @@ __metadata: languageName: node linkType: hard -"object-assign@npm:^4, object-assign@npm:^4.0.0, object-assign@npm:^4.0.1, object-assign@npm:^4.1.0, object-assign@npm:^4.1.1": +"object-assign@npm:^4, object-assign@npm:^4.0.1, object-assign@npm:^4.1.0, object-assign@npm:^4.1.1": version: 4.1.1 resolution: "object-assign@npm:4.1.1" checksum: fcc6e4ea8c7fe48abfbb552578b1c53e0d194086e2e6bbbf59e0a536381a292f39943c6e9628af05b5528aa5e3318bb30d6b2e53cadaf5b8fe9e12c4b69af23f @@ -40996,13 +42397,6 @@ __metadata: languageName: node linkType: hard -"object-inspect@npm:~1.12.3": - version: 1.12.3 - resolution: "object-inspect@npm:1.12.3" - checksum: 532b0036f0472f561180fac0d04fe328ee01f57637624c83fb054f81b5bfe966cdf4200612a499ed391a7ca3c46b20a0bc3a55fc8241d944abe687c556a32b39 - languageName: node - linkType: hard - "object-is@npm:^1.1.5": version: 1.1.6 resolution: "object-is@npm:1.1.6" @@ -41020,13 +42414,6 @@ __metadata: languageName: node linkType: hard -"object-keys@npm:~0.4.0": - version: 0.4.0 - resolution: "object-keys@npm:0.4.0" - checksum: 9ab0a2c3d922f7f18d00c1b1646c3a4b686bebeecdd90531bbe5bbbc72a381313b9e43ff0d9cf9b5b212906a19fd02195d013ca5d67d42758e72e5d2a79668d0 - languageName: node - linkType: hard - "object-treeify@npm:^1.1.33": version: 1.1.33 resolution: "object-treeify@npm:1.1.33" @@ -41089,7 +42476,7 @@ __metadata: languageName: node linkType: hard -"object.getownpropertydescriptors@npm:^2.0.3, object.getownpropertydescriptors@npm:^2.1.6": +"object.getownpropertydescriptors@npm:^2.0.3": version: 2.1.7 resolution: "object.getownpropertydescriptors@npm:2.1.7" dependencies: @@ -41152,15 +42539,6 @@ __metadata: languageName: node linkType: hard -"oboe@npm:2.1.4": - version: 2.1.4 - resolution: "oboe@npm:2.1.4" - dependencies: - http-https: "npm:^1.0.0" - checksum: 3ef609108dff8acaed87f46000adc78518405ef131637aecc3ab4003948ae9453b1d927ce70ecb8ca3fea39522012bee6bba592be7fb056f94f1fa88f510df93 - languageName: node - linkType: hard - "oboe@npm:2.1.5": version: 2.1.5 resolution: "oboe@npm:2.1.5" @@ -41443,15 +42821,6 @@ __metadata: languageName: node linkType: hard -"os-locale@npm:^1.4.0": - version: 1.4.0 - resolution: "os-locale@npm:1.4.0" - dependencies: - lcid: "npm:^1.0.0" - checksum: 0161a1b6b5a8492f99f4b47fe465df9fc521c55ba5414fce6444c45e2500487b8ed5b40a47a98a2363fe83ff04ab033785300ed8df717255ec4c3b625e55b1fb - languageName: node - linkType: hard - "os-name@npm:^5.0.0": version: 5.1.0 resolution: "os-name@npm:5.1.0" @@ -41469,20 +42838,6 @@ __metadata: languageName: node linkType: hard -"p-cancelable@npm:^0.3.0": - version: 0.3.0 - resolution: "p-cancelable@npm:0.3.0" - checksum: 2b27639be8f7f8718f2854c1711f713c296db00acc4675975b1531ecb6253da197304b4a211a330a8e54e754d28d4b3f7feecb48f0566dd265e3ba6745cd4148 - languageName: node - linkType: hard - -"p-cancelable@npm:^1.0.0": - version: 1.1.0 - resolution: "p-cancelable@npm:1.1.0" - checksum: 2db3814fef6d9025787f30afaee4496a8857a28be3c5706432cbad76c688a6db1874308f48e364a42f5317f5e41e8e7b4f2ff5c8ff2256dbb6264bc361704ece - languageName: node - linkType: hard - "p-cancelable@npm:^2.0.0": version: 2.1.1 resolution: "p-cancelable@npm:2.1.1" @@ -41663,16 +43018,6 @@ __metadata: languageName: node linkType: hard -"p-queue@npm:^6.2.0": - version: 6.6.2 - resolution: "p-queue@npm:6.6.2" - dependencies: - eventemitter3: "npm:^4.0.4" - p-timeout: "npm:^3.2.0" - checksum: 60fe227ffce59fbc5b1b081305b61a2f283ff145005853702b7d4d3f99a0176bd21bb126c99a962e51fe1e01cb8aa10f0488b7bbe73b5dc2e84b5cc650b8ffd2 - languageName: node - linkType: hard - "p-reduce@npm:^3.0.0": version: 3.0.0 resolution: "p-reduce@npm:3.0.0" @@ -41710,16 +43055,7 @@ __metadata: languageName: node linkType: hard -"p-timeout@npm:^1.1.1": - version: 1.2.1 - resolution: "p-timeout@npm:1.2.1" - dependencies: - p-finally: "npm:^1.0.0" - checksum: 65a456f49cca1328774a6bfba61aac98d854b36df9153c2887f82f078d4399e9a30463be8a479871c22ed350a23b34a66ff303ca652b9d81ed4ff5260ac660d2 - languageName: node - linkType: hard - -"p-timeout@npm:^3.1.0, p-timeout@npm:^3.2.0": +"p-timeout@npm:^3.1.0": version: 3.2.0 resolution: "p-timeout@npm:3.2.0" dependencies: @@ -41800,7 +43136,7 @@ __metadata: languageName: node linkType: hard -"pako@npm:^1.0.4, pako@npm:~1.0.5": +"pako@npm:~1.0.5": version: 1.0.11 resolution: "pako@npm:1.0.11" checksum: 1ad07210e894472685564c4d39a08717e84c2a68a70d3c1d9e657d32394ef1670e22972a433cbfe48976cb98b154ba06855dcd3fcfba77f60f1777634bec48c0 @@ -41818,15 +43154,6 @@ __metadata: languageName: node linkType: hard -"param-case@npm:^2.1.0": - version: 2.1.1 - resolution: "param-case@npm:2.1.1" - dependencies: - no-case: "npm:^2.2.0" - checksum: 3a63dcb8d8dc7995a612de061afdc7bb6fe7bd0e6db994db8d4cae999ed879859fd24389090e1a0d93f4c9207ebf8c048c870f468a3f4767161753e03cb9ab58 - languageName: node - linkType: hard - "param-case@npm:^3.0.4": version: 3.0.4 resolution: "param-case@npm:3.0.4" @@ -41942,15 +43269,6 @@ __metadata: languageName: node linkType: hard -"parse-json@npm:^2.2.0": - version: 2.2.0 - resolution: "parse-json@npm:2.2.0" - dependencies: - error-ex: "npm:^1.2.0" - checksum: 39924c0ddbf6f2544ab92acea61d91a0fb0ac959b0d19d273468cf8aa977522f8076e8fbb29cdab75c1440ebc2e172389988274890373d95fe308837074cc7e0 - languageName: node - linkType: hard - "parse-json@npm:^5.0.0, parse-json@npm:^5.2.0": version: 5.2.0 resolution: "parse-json@npm:5.2.0" @@ -42017,16 +43335,6 @@ __metadata: languageName: node linkType: hard -"pascal-case@npm:^2.0.0": - version: 2.0.1 - resolution: "pascal-case@npm:2.0.1" - dependencies: - camel-case: "npm:^3.0.0" - upper-case-first: "npm:^1.1.0" - checksum: 4c539bf556572812f64a02fc6b544f3d2b51db12aed484e5162ed7f8ac2b366775d15e536091c890d71d82bdf9153128321f21574721b3a984bd85df9e519a35 - languageName: node - linkType: hard - "pascal-case@npm:^3.1.2": version: 3.1.2 resolution: "pascal-case@npm:3.1.2" @@ -42081,28 +43389,6 @@ __metadata: languageName: node linkType: hard -"patch-package@npm:6.2.2": - version: 6.2.2 - resolution: "patch-package@npm:6.2.2" - dependencies: - "@yarnpkg/lockfile": "npm:^1.1.0" - chalk: "npm:^2.4.2" - cross-spawn: "npm:^6.0.5" - find-yarn-workspace-root: "npm:^1.2.1" - fs-extra: "npm:^7.0.1" - is-ci: "npm:^2.0.0" - klaw-sync: "npm:^6.0.0" - minimist: "npm:^1.2.0" - rimraf: "npm:^2.6.3" - semver: "npm:^5.6.0" - slash: "npm:^2.0.0" - tmp: "npm:^0.0.33" - bin: - patch-package: index.js - checksum: 551edca2852ad63806be87a322e15ef06a5824bdd7565ac21f8cdb7693b5604f6cb3c7ac2ae1289a1fb39c6a47894da3d8c0ac9dab4eec6769b78ef6d5bfee14 - languageName: node - linkType: hard - "path-browserify@npm:1.0.1, path-browserify@npm:^1.0.1": version: 1.0.1 resolution: "path-browserify@npm:1.0.1" @@ -42110,15 +43396,6 @@ __metadata: languageName: node linkType: hard -"path-case@npm:^2.1.0": - version: 2.1.1 - resolution: "path-case@npm:2.1.1" - dependencies: - no-case: "npm:^2.2.0" - checksum: eb1da508c28378715cbe4ce054ee5f83a570c5010f041f4cfb439c811f7a78e36c46f26a8d59b2594c3882b53db06ef26195519c27f86523dc5d19c2e29f306d - languageName: node - linkType: hard - "path-case@npm:^3.0.4": version: 3.0.4 resolution: "path-case@npm:3.0.4" @@ -42129,15 +43406,6 @@ __metadata: languageName: node linkType: hard -"path-exists@npm:^2.0.0": - version: 2.1.0 - resolution: "path-exists@npm:2.1.0" - dependencies: - pinkie-promise: "npm:^2.0.0" - checksum: fdb734f1d00f225f7a0033ce6d73bff6a7f76ea08936abf0e5196fa6e54a645103538cd8aedcb90d6d8c3fa3705ded0c58a4da5948ae92aa8834892c1ab44a84 - languageName: node - linkType: hard - "path-exists@npm:^3.0.0": version: 3.0.0 resolution: "path-exists@npm:3.0.0" @@ -42180,13 +43448,6 @@ __metadata: languageName: node linkType: hard -"path-key@npm:^2.0.1": - version: 2.0.1 - resolution: "path-key@npm:2.0.1" - checksum: 6e654864e34386a2a8e6bf72cf664dcabb76574dd54013add770b374384d438aca95f4357bb26935b514a4e4c2c9b19e191f2200b282422a76ee038b9258c5e7 - languageName: node - linkType: hard - "path-key@npm:^3.0.0, path-key@npm:^3.1.0": version: 3.1.1 resolution: "path-key@npm:3.1.1" @@ -42237,7 +43498,7 @@ __metadata: languageName: node linkType: hard -"path-scurry@npm:^1.10.1, path-scurry@npm:^1.6.1": +"path-scurry@npm:^1.10.1": version: 1.10.1 resolution: "path-scurry@npm:1.10.1" dependencies: @@ -42247,6 +43508,16 @@ __metadata: languageName: node linkType: hard +"path-scurry@npm:^1.6.1": + version: 1.9.1 + resolution: "path-scurry@npm:1.9.1" + dependencies: + lru-cache: "npm:^9.1.1" + minipass: "npm:^5.0.0 || ^6.0.0" + checksum: ef3f8d17cdba8c166de0fc0ffb7ed7665821fa0bb78873758d4e8f73e1a3111b19084bacded34d689e17ab9e61a9563b746d3cf172a12ec30c2146d2c0b3ef48 + languageName: node + linkType: hard + "path-to-regexp@npm:0.1.7": version: 0.1.7 resolution: "path-to-regexp@npm:0.1.7" @@ -42284,17 +43555,6 @@ __metadata: languageName: node linkType: hard -"path-type@npm:^1.0.0": - version: 1.1.0 - resolution: "path-type@npm:1.1.0" - dependencies: - graceful-fs: "npm:^4.1.2" - pify: "npm:^2.0.0" - pinkie-promise: "npm:^2.0.0" - checksum: 59a4b2c0e566baf4db3021a1ed4ec09a8b36fca960a490b54a6bcefdb9987dafe772852982b6011cd09579478a96e57960a01f75fa78a794192853c9d468fc79 - languageName: node - linkType: hard - "path-type@npm:^4.0.0": version: 4.0.0 resolution: "path-type@npm:4.0.0" @@ -42340,7 +43600,7 @@ __metadata: languageName: node linkType: hard -"pbkdf2@npm:^3.0.17, pbkdf2@npm:^3.0.3, pbkdf2@npm:^3.0.9": +"pbkdf2@npm:^3.0.17, pbkdf2@npm:^3.0.3": version: 3.1.2 resolution: "pbkdf2@npm:3.1.2" dependencies: @@ -42403,6 +43663,13 @@ __metadata: languageName: node linkType: hard +"pg-connection-string@npm:^2.6.1": + version: 2.6.1 + resolution: "pg-connection-string@npm:2.6.1" + checksum: 882344a47e1ecf3a91383e0809bf2ac48facea97fcec0358d6e060e1cbcb8737acde419b4c86f05da4ce4a16634ee50fff1d2bb787d73b52ccbfde697243ad8a + languageName: node + linkType: hard + "pg-int8@npm:1.0.1": version: 1.0.1 resolution: "pg-int8@npm:1.0.1" @@ -42461,7 +43728,7 @@ __metadata: languageName: node linkType: hard -"pg@npm:8.11.3, pg@npm:>=6.5 <9": +"pg@npm:8.11.3": version: 8.11.3 resolution: "pg@npm:8.11.3" dependencies: @@ -42485,6 +43752,30 @@ __metadata: languageName: node linkType: hard +"pg@npm:>=6.5 <9": + version: 8.11.1 + resolution: "pg@npm:8.11.1" + dependencies: + buffer-writer: "npm:2.0.0" + packet-reader: "npm:1.0.0" + pg-cloudflare: "npm:^1.1.1" + pg-connection-string: "npm:^2.6.1" + pg-pool: "npm:^3.6.1" + pg-protocol: "npm:^1.6.0" + pg-types: "npm:^2.1.0" + pgpass: "npm:1.x" + peerDependencies: + pg-native: ">=3.0.1" + dependenciesMeta: + pg-cloudflare: + optional: true + peerDependenciesMeta: + pg-native: + optional: true + checksum: 3ad52f84c09c8978e3286b92ed2b8e50171f96eefb9583c0642dac2bd5ffd2b095963c2950f624aa1f3c7873b3a95218e9bf88bd2642cf0f80b76654e8633d3c + languageName: node + linkType: hard + "pgpass@npm:1.x": version: 1.0.5 resolution: "pgpass@npm:1.0.5" @@ -42524,7 +43815,7 @@ __metadata: languageName: node linkType: hard -"pify@npm:^2.0.0, pify@npm:^2.3.0": +"pify@npm:^2.3.0": version: 2.3.0 resolution: "pify@npm:2.3.0" checksum: 9503aaeaf4577acc58642ad1d25c45c6d90288596238fb68f82811c08104c800e5a7870398e9f015d82b44ecbcbef3dc3d4251a1cbb582f6e5959fe09884b2ba @@ -42552,22 +43843,6 @@ __metadata: languageName: node linkType: hard -"pinkie-promise@npm:^2.0.0": - version: 2.0.1 - resolution: "pinkie-promise@npm:2.0.1" - dependencies: - pinkie: "npm:^2.0.0" - checksum: b53a4a2e73bf56b6f421eef711e7bdcb693d6abb474d57c5c413b809f654ba5ee750c6a96dd7225052d4b96c4d053cdcb34b708a86fceed4663303abee52fcca - languageName: node - linkType: hard - -"pinkie@npm:^2.0.0": - version: 2.0.4 - resolution: "pinkie@npm:2.0.4" - checksum: 11d207257a044d1047c3755374d36d84dda883a44d030fe98216bf0ea97da05a5c9d64e82495387edeb9ee4f52c455bca97cdb97629932be65e6f54b29f5aec8 - languageName: node - linkType: hard - "pino-abstract-transport@npm:v0.5.0": version: 0.5.0 resolution: "pino-abstract-transport@npm:0.5.0" @@ -42651,6 +43926,13 @@ __metadata: languageName: node linkType: hard +"pirates@npm:^4.0.5": + version: 4.0.5 + resolution: "pirates@npm:4.0.5" + checksum: 3728bae0cf6c18c3d25f5449ee8c5bc1a6a83bca688abe0e1654ce8c069bfd408170397cef133ed9ec8b0faeb4093c5c728d0e72ab7b3385256cd87008c40364 + languageName: node + linkType: hard + "pkg-dir@npm:^3.0.0": version: 3.0.0 resolution: "pkg-dir@npm:3.0.0" @@ -43363,7 +44645,29 @@ __metadata: languageName: node linkType: hard -"postcss@npm:^8.4.17, postcss@npm:^8.4.21, postcss@npm:^8.4.23, postcss@npm:^8.4.26, postcss@npm:^8.4.27, postcss@npm:^8.4.32, postcss@npm:^8.4.33, postcss@npm:^8.4.35": +"postcss@npm:^8.4.17, postcss@npm:^8.4.21, postcss@npm:^8.4.26": + version: 8.4.27 + resolution: "postcss@npm:8.4.27" + dependencies: + nanoid: "npm:^3.3.6" + picocolors: "npm:^1.0.0" + source-map-js: "npm:^1.0.2" + checksum: 57143e3c5ddaba9813ebd81de3e38e3ac198b0a1634e57752d29cd4936f1301eba38e43bda1302859679af047a6efc4366952d294c64358f8b90fbf49ba7d121 + languageName: node + linkType: hard + +"postcss@npm:^8.4.23": + version: 8.4.23 + resolution: "postcss@npm:8.4.23" + dependencies: + nanoid: "npm:^3.3.6" + picocolors: "npm:^1.0.0" + source-map-js: "npm:^1.0.2" + checksum: 4171086e54a90b5d9e7e043b3ea4acf5dce808f3501ebf7bf10caaff73f69a5c8d0dff7036752a648beb6317777d144af5b5b8b3ef9a84428630308735df07c2 + languageName: node + linkType: hard + +"postcss@npm:^8.4.27, postcss@npm:^8.4.32, postcss@npm:^8.4.33, postcss@npm:^8.4.35": version: 8.4.35 resolution: "postcss@npm:8.4.35" dependencies: @@ -43621,20 +44925,6 @@ __metadata: languageName: node linkType: hard -"prepend-http@npm:^1.0.1": - version: 1.0.4 - resolution: "prepend-http@npm:1.0.4" - checksum: 01e7baf4ad38af02257b99098543469332fc42ae50df33d97a124bf8172295907352fa6138c9b1610c10c6dd0847ca736e53fda736387cc5cf8fcffe96b47f29 - languageName: node - linkType: hard - -"prepend-http@npm:^2.0.0": - version: 2.0.0 - resolution: "prepend-http@npm:2.0.0" - checksum: 7694a9525405447662c1ffd352fcb41b6410c705b739b6f4e3a3e21cf5fdede8377890088e8934436b8b17ba55365a615f153960f30877bf0d0392f9e93503ea - languageName: node - linkType: hard - "prettier-linter-helpers@npm:^1.0.0": version: 1.0.0 resolution: "prettier-linter-helpers@npm:1.0.0" @@ -43819,7 +45109,7 @@ __metadata: languageName: node linkType: hard -"private@npm:^0.1.6, private@npm:^0.1.8": +"private@npm:^0.1.8": version: 0.1.8 resolution: "private@npm:0.1.8" checksum: 192ce0764e1708a40e42ad3b679c8553c275e4ee9d5dcfdf3de99b01d43a6ee3047f0d293e892c003276cde3829f0548e60f77fa49e2e51b380939e662794a1e @@ -43885,16 +45175,6 @@ __metadata: languageName: node linkType: hard -"promise-to-callback@npm:^1.0.0": - version: 1.0.0 - resolution: "promise-to-callback@npm:1.0.0" - dependencies: - is-fn: "npm:^1.0.0" - set-immediate-shim: "npm:^1.0.1" - checksum: d756ad74f7a202a6725c4281813c1052896327e4036c553adb8e3bbb91d0b1ff501965e7b00997827c016609caefbf24a5efc117dccca6000b8cbbc477b31cbf - languageName: node - linkType: hard - "promise@npm:^7.1.1": version: 7.3.1 resolution: "promise@npm:7.3.1" @@ -43913,19 +45193,6 @@ __metadata: languageName: node linkType: hard -"prompt@npm:1.3.0": - version: 1.3.0 - resolution: "prompt@npm:1.3.0" - dependencies: - "@colors/colors": "npm:1.5.0" - async: "npm:3.2.3" - read: "npm:1.0.x" - revalidator: "npm:0.1.x" - winston: "npm:2.x" - checksum: 7a032abef397320b143fc9998d06973f274577b0284ab2efa10620fd7f755b51e387de56a4e251858bd4883e78c36822735c8963dabb3fa18e79452e7b343ff5 - languageName: node - linkType: hard - "prompts@npm:^2.4.0, prompts@npm:^2.4.2": version: 2.4.2 resolution: "prompts@npm:2.4.2" @@ -44049,13 +45316,6 @@ __metadata: languageName: node linkType: hard -"prr@npm:~1.0.1": - version: 1.0.1 - resolution: "prr@npm:1.0.1" - checksum: 3bca2db0479fd38f8c4c9439139b0c42dcaadcc2fbb7bb8e0e6afaa1383457f1d19aea9e5f961d5b080f1cfc05bfa1fe9e45c97a1d3fd6d421950a73d3108381 - languageName: node - linkType: hard - "ps-list@npm:^8.0.0": version: 8.1.1 resolution: "ps-list@npm:8.1.1" @@ -44063,13 +45323,6 @@ __metadata: languageName: node linkType: hard -"pseudomap@npm:^1.0.1": - version: 1.0.2 - resolution: "pseudomap@npm:1.0.2" - checksum: 856c0aae0ff2ad60881168334448e898ad7a0e45fe7386d114b150084254c01e200c957cf378378025df4e052c7890c5bd933939b0e0d2ecfcc1dc2f0b2991f5 - languageName: node - linkType: hard - "psl@npm:^1.1.28, psl@npm:^1.1.33": version: 1.9.0 resolution: "psl@npm:1.9.0" @@ -44091,68 +45344,6 @@ __metadata: languageName: node linkType: hard -"pull-cat@npm:^1.1.9": - version: 1.1.11 - resolution: "pull-cat@npm:1.1.11" - checksum: 785173d94732ba5e6e65f27ee128542522aeb87519c5d72aa9b8bc510f6c4f67b91fcfd565782a20aafc116e57354f2dd0fa8fd039b45a61b8da89b0253a7440 - languageName: node - linkType: hard - -"pull-defer@npm:^0.2.2": - version: 0.2.3 - resolution: "pull-defer@npm:0.2.3" - checksum: 79f75daee82f7684d834bccaa42c41af87194b789a118b602bc67a1d4d6d630e5ca49acb7d217ab68e0acfcaac1f8fb419df97f12188a65d35c1fb0a7a29f4b2 - languageName: node - linkType: hard - -"pull-level@npm:^2.0.3": - version: 2.0.4 - resolution: "pull-level@npm:2.0.4" - dependencies: - level-post: "npm:^1.0.7" - pull-cat: "npm:^1.1.9" - pull-live: "npm:^1.0.1" - pull-pushable: "npm:^2.0.0" - pull-stream: "npm:^3.4.0" - pull-window: "npm:^2.1.4" - stream-to-pull-stream: "npm:^1.7.1" - checksum: 22484eacbf720a80d3bc36a6de922d8a1088bc7ae6fc7c2617625e0a0b9bf11ec38d4d705c864834a8fd97cf7752b8ca9b35ec450769d66267ad290768b3420a - languageName: node - linkType: hard - -"pull-live@npm:^1.0.1": - version: 1.0.1 - resolution: "pull-live@npm:1.0.1" - dependencies: - pull-cat: "npm:^1.1.9" - pull-stream: "npm:^3.4.0" - checksum: e4328771e811aec1e03996d1070ec8fecb2560cc48b96814cd9f4aebd870a710903f8693e423765d3d65d8021b3b9ccc38c8660baef3df45e217c9b1bbc5581a - languageName: node - linkType: hard - -"pull-pushable@npm:^2.0.0": - version: 2.2.0 - resolution: "pull-pushable@npm:2.2.0" - checksum: d89e1849654bc1a265da7f7451889ec30820bcfd9800a208ae988a56e872286202bb4ea16037352d4c0f909ca571ccd6fefd412a5dfa2ba421a2a6f4083000f6 - languageName: node - linkType: hard - -"pull-stream@npm:^3.2.3, pull-stream@npm:^3.4.0, pull-stream@npm:^3.6.8": - version: 3.7.0 - resolution: "pull-stream@npm:3.7.0" - checksum: 8777d6944bb7971f65770d790e78a07b57091864166b9634f04ac025a9c784d2da56253e3658025fd0b8618d6ea925f22a20be3eec6cad4743227c803489306e - languageName: node - linkType: hard - -"pull-window@npm:^2.1.4": - version: 2.1.4 - resolution: "pull-window@npm:2.1.4" - dependencies: - looper: "npm:^2.0.0" - checksum: 025644a4d094e18e21d6cc35f0abe6087973137498ef239f64a86e7173510ba728b5b6198eae035615bb991c38ad1b8161892e4d759a9567cb8510d4dd518fb6 - languageName: node - linkType: hard - "pump@npm:3.0.0, pump@npm:^3.0.0": version: 3.0.0 resolution: "pump@npm:3.0.0" @@ -44242,13 +45433,6 @@ __metadata: languageName: node linkType: hard -"pure-rand@npm:^5.0.1": - version: 5.0.5 - resolution: "pure-rand@npm:5.0.5" - checksum: 89b9ca2d264f3111f4c2b6a9012ddc8908749e646a3c6ff8047317ea82d9c1fdbaf0b016ab5e7eb304490b5427e51a37141e0672c07dcf074ab19c6052cd9cc8 - languageName: node - linkType: hard - "pvtsutils@npm:^1.3.2, pvtsutils@npm:^1.3.5": version: 1.3.5 resolution: "pvtsutils@npm:1.3.5" @@ -44389,7 +45573,7 @@ __metadata: languageName: node linkType: hard -"queue-microtask@npm:^1.2.2": +"queue-microtask@npm:^1.2.2, queue-microtask@npm:^1.2.3": version: 1.2.3 resolution: "queue-microtask@npm:1.2.3" checksum: 72900df0616e473e824202113c3df6abae59150dfb73ed13273503127235320e9c8ca4aaaaccfd58cf417c6ca92a6e68ee9a5c3182886ae949a768639b388a7b @@ -44470,7 +45654,7 @@ __metadata: languageName: node linkType: hard -"randombytes@npm:^2.0.0, randombytes@npm:^2.0.1, randombytes@npm:^2.0.5, randombytes@npm:^2.0.6, randombytes@npm:^2.1.0": +"randombytes@npm:^2.0.0, randombytes@npm:^2.0.1, randombytes@npm:^2.0.5, randombytes@npm:^2.1.0": version: 2.1.0 resolution: "randombytes@npm:2.1.0" dependencies: @@ -44489,13 +45673,6 @@ __metadata: languageName: node linkType: hard -"randomhex@npm:0.1.5": - version: 0.1.5 - resolution: "randomhex@npm:0.1.5" - checksum: 6ddd3a3757c6ea16c416b7b3c1b2249ba1df0113509339913bdd3195d5665b799d51b147f6b7b249d32256293b305eac8dcb04fa2a2be259a665ba4a3f090637 - languageName: node - linkType: hard - "range-parser@npm:1.2.0": version: 1.2.0 resolution: "range-parser@npm:1.2.0" @@ -44768,7 +45945,7 @@ __metadata: languageName: node linkType: hard -"react-fast-compare@npm:^3.2.0, react-fast-compare@npm:^3.2.2": +"react-fast-compare@npm:^3.2.0": version: 3.2.2 resolution: "react-fast-compare@npm:3.2.2" checksum: a6826180ba75cefba1c8d3ac539735f9b627ca05d3d307fe155487f5d0228d376dac6c9708d04a283a7b9f9aee599b637446635b79c8c8753d0b4eece56c125c @@ -44816,21 +45993,7 @@ __metadata: languageName: node linkType: hard -"react-helmet-async@npm:*": - version: 2.0.4 - resolution: "react-helmet-async@npm:2.0.4" - dependencies: - invariant: "npm:^2.2.4" - react-fast-compare: "npm:^3.2.2" - shallowequal: "npm:^1.1.0" - peerDependencies: - react: ^16.6.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 - checksum: 8f18cb27e8f5821811d715906b5fe279d4ce7e1e0ef1a565d90d64db386d2e4676fe7f4182d27393eccf7b03ace7d65fb4c406f945d43de3b57acaaa54711831 - languageName: node - linkType: hard - -"react-helmet-async@npm:^1.3.0": +"react-helmet-async@npm:*, react-helmet-async@npm:^1.3.0": version: 1.3.0 resolution: "react-helmet-async@npm:1.3.0" dependencies: @@ -45272,16 +46435,6 @@ __metadata: languageName: node linkType: hard -"read-pkg-up@npm:^1.0.1": - version: 1.0.1 - resolution: "read-pkg-up@npm:1.0.1" - dependencies: - find-up: "npm:^1.0.0" - read-pkg: "npm:^1.0.0" - checksum: d18399a0f46e2da32beb2f041edd0cda49d2f2cc30195a05c759ef3ed9b5e6e19ba1ad1bae2362bdec8c6a9f2c3d18f4d5e8c369e808b03d498d5781cb9122c7 - languageName: node - linkType: hard - "read-pkg-up@npm:^7.0.1": version: 7.0.1 resolution: "read-pkg-up@npm:7.0.1" @@ -45293,17 +46446,6 @@ __metadata: languageName: node linkType: hard -"read-pkg@npm:^1.0.0": - version: 1.1.0 - resolution: "read-pkg@npm:1.1.0" - dependencies: - load-json-file: "npm:^1.0.0" - normalize-package-data: "npm:^2.3.2" - path-type: "npm:^1.0.0" - checksum: a0f5d5e32227ec8e6a028dd5c5134eab229768dcb7a5d9a41a284ed28ad4b9284fecc47383dc1593b5694f4de603a7ffaee84b738956b9b77e0999567485a366 - languageName: node - linkType: hard - "read-pkg@npm:^5.2.0": version: 5.2.0 resolution: "read-pkg@npm:5.2.0" @@ -45328,28 +46470,7 @@ __metadata: languageName: node linkType: hard -"read@npm:1.0.x": - version: 1.0.7 - resolution: "read@npm:1.0.7" - dependencies: - mute-stream: "npm:~0.0.4" - checksum: 2777c254e5732cac96f5d0a1c0f6b836c89ae23d8febd405b206f6f24d5de1873420f1a0795e0e3721066650d19adf802c7882c4027143ee0acf942a4f34f97b - languageName: node - linkType: hard - -"readable-stream@npm:^1.0.33": - version: 1.1.14 - resolution: "readable-stream@npm:1.1.14" - dependencies: - core-util-is: "npm:~1.0.0" - inherits: "npm:~2.0.1" - isarray: "npm:0.0.1" - string_decoder: "npm:~0.10.x" - checksum: 1aa2cf4bd02f9ab3e1d57842a43a413b52be5300aa089ad1f2e3cea00684532d73edc6a2ba52b0c3210d8b57eb20a695a6d2b96d1c6085ee979c6021ad48ad20 - languageName: node - linkType: hard - -"readable-stream@npm:^2.0.0, readable-stream@npm:^2.0.1, readable-stream@npm:^2.0.2, readable-stream@npm:^2.0.5, readable-stream@npm:^2.1.5, readable-stream@npm:^2.2.2, readable-stream@npm:^2.2.8, readable-stream@npm:^2.2.9, readable-stream@npm:^2.3.0, readable-stream@npm:^2.3.5, readable-stream@npm:^2.3.6, readable-stream@npm:~2.3.6": +"readable-stream@npm:^2.0.0, readable-stream@npm:^2.0.1, readable-stream@npm:^2.0.2, readable-stream@npm:^2.0.5, readable-stream@npm:^2.1.5, readable-stream@npm:^2.2.2, readable-stream@npm:^2.3.0, readable-stream@npm:^2.3.5, readable-stream@npm:~2.3.6": version: 2.3.8 resolution: "readable-stream@npm:2.3.8" dependencies: @@ -45388,7 +46509,7 @@ __metadata: languageName: node linkType: hard -"readable-stream@npm:~1.0.15, readable-stream@npm:~1.0.26-4, readable-stream@npm:~1.0.31": +"readable-stream@npm:~1.0.26-4, readable-stream@npm:~1.0.31": version: 1.0.34 resolution: "readable-stream@npm:1.0.34" dependencies: @@ -45620,7 +46741,7 @@ __metadata: languageName: node linkType: hard -"regenerate@npm:^1.2.1, regenerate@npm:^1.4.2": +"regenerate@npm:^1.4.2": version: 1.4.2 resolution: "regenerate@npm:1.4.2" checksum: dc6c95ae4b3ba6adbd7687cafac260eee4640318c7a95239d5ce847d9b9263979758389e862fe9c93d633b5792ea4ada5708df75885dc5aa05a309fa18140a87 @@ -45655,14 +46776,12 @@ __metadata: languageName: node linkType: hard -"regenerator-transform@npm:^0.10.0": - version: 0.10.1 - resolution: "regenerator-transform@npm:0.10.1" +"regenerator-transform@npm:^0.15.1": + version: 0.15.1 + resolution: "regenerator-transform@npm:0.15.1" dependencies: - babel-runtime: "npm:^6.18.0" - babel-types: "npm:^6.19.0" - private: "npm:^0.1.6" - checksum: 781bd5293c045e3afb79aae4b42a73487ff0c4423adef986df4520a1d983941fa7844ffbfc667d0413a6486a32286382753637f314b5da33d7676bcb2575adf7 + "@babel/runtime": "npm:^7.8.4" + checksum: 52a14f325a4e4b422b4019f12e969a4a221db35ccc4cf2b13b9e70a5c7ab276503888338bdfca21f8393ce1dd7adcf9e08557f60d42bf2aec7f6a65a27cde6d0 languageName: node linkType: hard @@ -45713,17 +46832,6 @@ __metadata: languageName: node linkType: hard -"regexpu-core@npm:^2.0.0": - version: 2.0.0 - resolution: "regexpu-core@npm:2.0.0" - dependencies: - regenerate: "npm:^1.2.1" - regjsgen: "npm:^0.2.0" - regjsparser: "npm:^0.1.4" - checksum: 9641d012df8ff1fd3b3ce1576427f2b98290a2186fef1ec41867dbb5800a99dc33331748b41cd9468b6dce26dcf1cda283de01012e8f8b149fdfb40d0d69e085 - languageName: node - linkType: hard - "regexpu-core@npm:^5.3.1": version: 5.3.2 resolution: "regexpu-core@npm:5.3.2" @@ -45756,24 +46864,6 @@ __metadata: languageName: node linkType: hard -"regjsgen@npm:^0.2.0": - version: 0.2.0 - resolution: "regjsgen@npm:0.2.0" - checksum: 2ce35d2f52a45886824e14b35e019071bcc4fdf5388cca0e27980b97adcf12f51b94e553131d31216bca3149a40f3eb1165de892fd162d1478371030217eddd3 - languageName: node - linkType: hard - -"regjsparser@npm:^0.1.4": - version: 0.1.5 - resolution: "regjsparser@npm:0.1.5" - dependencies: - jsesc: "npm:~0.5.0" - bin: - regjsparser: bin/parser - checksum: 4abc6b18905f6885400512c9bd654b23e11c7e06c4204257ac5e8db2b01bfc5a5906d3c3c7e401b53ffe0ea86c701bbfa2bfda1ab6b324f4e8c3af265074c96a - languageName: node - linkType: hard - "regjsparser@npm:^0.9.1": version: 0.9.1 resolution: "regjsparser@npm:0.9.1" @@ -46080,7 +47170,7 @@ __metadata: languageName: node linkType: hard -"request-promise-native@npm:1.0.9": +"request-promise-native@npm:1.0.9, request-promise-native@npm:^1.0.5": version: 1.0.9 resolution: "request-promise-native@npm:1.0.9" dependencies: @@ -46093,7 +47183,7 @@ __metadata: languageName: node linkType: hard -"request@npm:2.88.2, request@npm:^2.79.0, request@npm:^2.85.0": +"request@npm:2.88.2, request@npm:^2.79.0, request@npm:^2.88.0": version: 2.88.2 resolution: "request@npm:2.88.2" dependencies: @@ -46128,13 +47218,6 @@ __metadata: languageName: node linkType: hard -"require-from-string@npm:^1.1.0": - version: 1.2.1 - resolution: "require-from-string@npm:1.2.1" - checksum: 38ecb8375a8096828d976ac80f4195d1fb60432cb76b5156b8d1c846577cae7f19854aa93a304e152b8994f12e19defeea01b1feaf342617b193fc5e12c7aac7 - languageName: node - linkType: hard - "require-from-string@npm:^2.0.0, require-from-string@npm:^2.0.2": version: 2.0.2 resolution: "require-from-string@npm:2.0.2" @@ -46149,13 +47232,6 @@ __metadata: languageName: node linkType: hard -"require-main-filename@npm:^1.0.1": - version: 1.0.1 - resolution: "require-main-filename@npm:1.0.1" - checksum: 49e4586207c138dabe885cffb9484f3f4583fc839851cd6705466eb343d8bb6af7dfa3d8e611fbd44d40441d4cddaadb34b4d537092b92adafa6a6f440dc1da8 - languageName: node - linkType: hard - "require-main-filename@npm:^2.0.0": version: 2.0.0 resolution: "require-main-filename@npm:2.0.0" @@ -46270,7 +47346,7 @@ __metadata: languageName: node linkType: hard -"resolve@npm:1.22.8, resolve@npm:^1.1.6, resolve@npm:^1.1.7, resolve@npm:^1.10.0, resolve@npm:^1.14.2, resolve@npm:^1.17.0, resolve@npm:^1.19.0, resolve@npm:^1.22.1, resolve@npm:^1.22.2, resolve@npm:^1.22.4, resolve@npm:^1.22.8, resolve@npm:^1.3.2, resolve@npm:~1.22.6": +"resolve@npm:1.22.8, resolve@npm:^1.22.4, resolve@npm:^1.22.8": version: 1.22.8 resolution: "resolve@npm:1.22.8" dependencies: @@ -46283,6 +47359,19 @@ __metadata: languageName: node linkType: hard +"resolve@npm:^1.1.6, resolve@npm:^1.1.7, resolve@npm:^1.10.0, resolve@npm:^1.14.2, resolve@npm:^1.17.0, resolve@npm:^1.19.0, resolve@npm:^1.22.1, resolve@npm:^1.22.2, resolve@npm:^1.3.2": + version: 1.22.3 + resolution: "resolve@npm:1.22.3" + dependencies: + is-core-module: "npm:^2.12.0" + path-parse: "npm:^1.0.7" + supports-preserve-symlinks-flag: "npm:^1.0.0" + bin: + resolve: bin/resolve + checksum: 3d733800d5f7525df912e9c4a68ee14574f42fa3676651debe6d2f6f55f8eef35626ad6330745da52943d695760f1ac7ee85b2c24f48be111f744aba7cb2e06d + languageName: node + linkType: hard + "resolve@npm:^2.0.0-next.1, resolve@npm:^2.0.0-next.4": version: 2.0.0-next.5 resolution: "resolve@npm:2.0.0-next.5" @@ -46312,7 +47401,7 @@ __metadata: languageName: node linkType: hard -"resolve@patch:resolve@npm%3A1.22.8#optional!builtin, resolve@patch:resolve@npm%3A^1.1.6#optional!builtin, resolve@patch:resolve@npm%3A^1.1.7#optional!builtin, resolve@patch:resolve@npm%3A^1.10.0#optional!builtin, resolve@patch:resolve@npm%3A^1.14.2#optional!builtin, resolve@patch:resolve@npm%3A^1.17.0#optional!builtin, resolve@patch:resolve@npm%3A^1.19.0#optional!builtin, resolve@patch:resolve@npm%3A^1.22.1#optional!builtin, resolve@patch:resolve@npm%3A^1.22.2#optional!builtin, resolve@patch:resolve@npm%3A^1.22.4#optional!builtin, resolve@patch:resolve@npm%3A^1.22.8#optional!builtin, resolve@patch:resolve@npm%3A^1.3.2#optional!builtin, resolve@patch:resolve@npm%3A~1.22.6#optional!builtin": +"resolve@patch:resolve@npm%3A1.22.8#optional!builtin, resolve@patch:resolve@npm%3A^1.22.4#optional!builtin, resolve@patch:resolve@npm%3A^1.22.8#optional!builtin": version: 1.22.8 resolution: "resolve@patch:resolve@npm%3A1.22.8#optional!builtin::version=1.22.8&hash=c3c19d" dependencies: @@ -46325,6 +47414,19 @@ __metadata: languageName: node linkType: hard +"resolve@patch:resolve@npm%3A^1.1.6#optional!builtin, resolve@patch:resolve@npm%3A^1.1.7#optional!builtin, resolve@patch:resolve@npm%3A^1.10.0#optional!builtin, resolve@patch:resolve@npm%3A^1.14.2#optional!builtin, resolve@patch:resolve@npm%3A^1.17.0#optional!builtin, resolve@patch:resolve@npm%3A^1.19.0#optional!builtin, resolve@patch:resolve@npm%3A^1.22.1#optional!builtin, resolve@patch:resolve@npm%3A^1.22.2#optional!builtin, resolve@patch:resolve@npm%3A^1.3.2#optional!builtin": + version: 1.22.3 + resolution: "resolve@patch:resolve@npm%3A1.22.3#optional!builtin::version=1.22.3&hash=c3c19d" + dependencies: + is-core-module: "npm:^2.12.0" + path-parse: "npm:^1.0.7" + supports-preserve-symlinks-flag: "npm:^1.0.0" + bin: + resolve: bin/resolve + checksum: b775dffbad4d4ed3ae498a37d33a96282d64de50955f7642258aeaa2886e419598f4dfe837c0e31bcc6eb448287c1578e899dffe49eca76ef393bf8605a3b543 + languageName: node + linkType: hard + "resolve@patch:resolve@npm%3A^2.0.0-next.1#optional!builtin, resolve@patch:resolve@npm%3A^2.0.0-next.4#optional!builtin": version: 2.0.0-next.5 resolution: "resolve@patch:resolve@npm%3A2.0.0-next.5#optional!builtin::version=2.0.0-next.5&hash=c3c19d" @@ -46338,15 +47440,6 @@ __metadata: languageName: node linkType: hard -"responselike@npm:^1.0.2": - version: 1.0.2 - resolution: "responselike@npm:1.0.2" - dependencies: - lowercase-keys: "npm:^1.0.0" - checksum: 2e9e70f1dcca3da621a80ce71f2f9a9cad12c047145c6ece20df22f0743f051cf7c73505e109814915f23f9e34fb0d358e22827723ee3d56b623533cab8eafcd - languageName: node - linkType: hard - "responselike@npm:^2.0.0": version: 2.0.1 resolution: "responselike@npm:2.0.1" @@ -46444,13 +47537,6 @@ __metadata: languageName: node linkType: hard -"revalidator@npm:0.1.x": - version: 0.1.8 - resolution: "revalidator@npm:0.1.8" - checksum: 4c1647672234d7954129dbb9fac9b7b6063f933c45c1b6dd0929937fd8316ad8663de635f394ea299a8be9d371580ac67b8fba68fa8a72486530ae1b9ce072c3 - languageName: node - linkType: hard - "rfdc@npm:^1.2.0, rfdc@npm:^1.3.0": version: 1.3.1 resolution: "rfdc@npm:1.3.1" @@ -46502,14 +47588,7 @@ __metadata: languageName: node linkType: hard -"ripemd160-min@npm:0.0.6": - version: 0.0.6 - resolution: "ripemd160-min@npm:0.0.6" - checksum: f2b641d42bffe0301f1c4e7c853a6fdd18a2639346f528c727b28078ccaaf7b764e074faac3ca8595b68213bf08ca11f4990d21b75d63b39ab1d48ccd861bf77 - languageName: node - linkType: hard - -"ripemd160@npm:^2.0.0, ripemd160@npm:^2.0.1, ripemd160@npm:^2.0.2": +"ripemd160@npm:^2.0.0, ripemd160@npm:^2.0.1": version: 2.0.2 resolution: "ripemd160@npm:2.0.2" dependencies: @@ -46519,7 +47598,7 @@ __metadata: languageName: node linkType: hard -"rlp@npm:^2.0.0, rlp@npm:^2.2.1, rlp@npm:^2.2.2, rlp@npm:^2.2.3, rlp@npm:^2.2.4": +"rlp@npm:^2.0.0, rlp@npm:^2.2.3, rlp@npm:^2.2.4": version: 2.2.7 resolution: "rlp@npm:2.2.7" dependencies: @@ -46728,6 +47807,15 @@ __metadata: languageName: node linkType: hard +"run-parallel-limit@npm:^1.1.0": + version: 1.1.0 + resolution: "run-parallel-limit@npm:1.1.0" + dependencies: + queue-microtask: "npm:^1.2.2" + checksum: 672c3b87e7f939c684b9965222b361421db0930223ed1e43ebf0e7e48ccc1a022ea4de080bef4d5468434e2577c33b7681e3f03b7593fdc49ad250a55381123c + languageName: node + linkType: hard + "run-parallel@npm:^1.1.4, run-parallel@npm:^1.1.6, run-parallel@npm:^1.1.9": version: 1.2.0 resolution: "run-parallel@npm:1.2.0" @@ -47052,13 +48140,6 @@ __metadata: languageName: node linkType: hard -"scrypt-js@npm:2.0.3": - version: 2.0.3 - resolution: "scrypt-js@npm:2.0.3" - checksum: 5a2e1107a9d6787517cc20b1f7bbcd4d06f42bf842ded7114607c7a7c0527b4c7c8a39774dd9b98ac672852f5fb2514b578d77562a8125405ed25ddf800d5f7d - languageName: node - linkType: hard - "scrypt-js@npm:2.0.4": version: 2.0.4 resolution: "scrypt-js@npm:2.0.4" @@ -47073,32 +48154,6 @@ __metadata: languageName: node linkType: hard -"scrypt-shim@github:web3-js/scrypt-shim": - version: 0.1.0 - resolution: "scrypt-shim@https://github.com/web3-js/scrypt-shim.git#commit=aafdadda13e660e25e1c525d1f5b2443f5eb1ebb" - dependencies: - scryptsy: "npm:^2.1.0" - semver: "npm:^6.3.0" - checksum: 3c2f5d6aae1dd3c9416e3cd96f3f43340d126f5115275bcca7a271c402a10b86142fda287b7ee79a8dc53378bbcf6cbe50f682f3f9d295761d424a64da52e464 - languageName: node - linkType: hard - -"scryptsy@npm:2.1.0, scryptsy@npm:^2.1.0": - version: 2.1.0 - resolution: "scryptsy@npm:2.1.0" - checksum: 1cbdab9d7eee87d2e6aaf86f6a3e759ccd0087d91ca6b760ffe23c0234cb3cc7ba8e1697a59ff84f06a4f08574940c2453dfbbd0e6db64c6c76992a21b6c3733 - languageName: node - linkType: hard - -"scryptsy@npm:^1.2.1": - version: 1.2.1 - resolution: "scryptsy@npm:1.2.1" - dependencies: - pbkdf2: "npm:^3.0.3" - checksum: ec053305f1da3067269b36ac59f4a76aeb0b3dad1b9dd1b5438a60c9c93da8d09e3886a4dd2395450441df401774c41192c73700931ba38c0f77c000a384a434 - languageName: node - linkType: hard - "scuid@npm:^1.1.0": version: 1.1.0 resolution: "scuid@npm:1.1.0" @@ -47135,13 +48190,6 @@ __metadata: languageName: node linkType: hard -"seedrandom@npm:3.0.1": - version: 3.0.1 - resolution: "seedrandom@npm:3.0.1" - checksum: 12ae45baf9fe4e8338d3d0faaf93a7b584464a31c5ea60989619bfac1f9321a0b37a0cdb550804b472f89ce1979815da2cd89703be5e5036535644b2e6886205 - languageName: node - linkType: hard - "seedrandom@npm:^3.0.5": version: 3.0.5 resolution: "seedrandom@npm:3.0.5" @@ -47149,7 +48197,7 @@ __metadata: languageName: node linkType: hard -"seek-bzip@npm:^1.0.5, seek-bzip@npm:^1.0.6": +"seek-bzip@npm:^1.0.6": version: 1.0.6 resolution: "seek-bzip@npm:1.0.6" dependencies: @@ -47178,13 +48226,6 @@ __metadata: languageName: node linkType: hard -"semaphore@npm:>=1.0.1, semaphore@npm:^1.0.3, semaphore@npm:^1.1.0": - version: 1.1.0 - resolution: "semaphore@npm:1.1.0" - checksum: 7a62e0486ab2e361aecf5d88ecb99f42236bb9fbe29e432644d8af371e78c559dc3f2fbef0f57f716491071c214bdf1a15f1f398445b20423278750e2290ea37 - languageName: node - linkType: hard - "semver-diff@npm:^4.0.0": version: 4.0.0 resolution: "semver-diff@npm:4.0.0" @@ -47194,7 +48235,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:2 || 3 || 4 || 5, semver@npm:^5.3.0, semver@npm:^5.5.0, semver@npm:^5.5.1, semver@npm:^5.6.0, semver@npm:^5.7.0": +"semver@npm:2 || 3 || 4 || 5, semver@npm:^5.3.0, semver@npm:^5.5.0, semver@npm:^5.6.0, semver@npm:^5.7.0": version: 5.7.2 resolution: "semver@npm:5.7.2" bin: @@ -47203,15 +48244,6 @@ __metadata: languageName: node linkType: hard -"semver@npm:6.2.0": - version: 6.2.0 - resolution: "semver@npm:6.2.0" - bin: - semver: ./bin/semver.js - checksum: 1ce2fe8800bbf69c56980adf362a58519f3282be1af53d496c8bc5a80feb935c3031b2c66672871cc008ceae2d66dd3d5cd25d31783cd1fb4e3c1ef703e7d0aa - languageName: node - linkType: hard - "semver@npm:7.3.2": version: 7.3.2 resolution: "semver@npm:7.3.2" @@ -47285,15 +48317,6 @@ __metadata: languageName: node linkType: hard -"semver@npm:~5.4.1": - version: 5.4.1 - resolution: "semver@npm:5.4.1" - bin: - semver: ./bin/semver - checksum: b5178aac04ab3595e0a22f2e9d5d4388353919d952b1790318767152f8605487ed1ec488d88dcf927ed9e4f9ed8d7a0018523ba00bcf1a253601eaab7c20df67 - languageName: node - linkType: hard - "semver@npm:~7.0.0": version: 7.0.0 resolution: "semver@npm:7.0.0" @@ -47344,16 +48367,6 @@ __metadata: languageName: node linkType: hard -"sentence-case@npm:^2.1.0": - version: 2.1.1 - resolution: "sentence-case@npm:2.1.1" - dependencies: - no-case: "npm:^2.2.0" - upper-case-first: "npm:^1.1.2" - checksum: ce5ca48804051e056a6956ad75a1a7d833e5d8f5021a015d380a22d3cf04496d5238de2e5c876d9701a9218633052c3a65911ca1b6460d36a41ecad46e81d139 - languageName: node - linkType: hard - "sentence-case@npm:^3.0.4": version: 3.0.4 resolution: "sentence-case@npm:3.0.4" @@ -47555,6 +48568,18 @@ __metadata: languageName: node linkType: hard +"set-function-length@npm:^1.1.1": + version: 1.1.1 + resolution: "set-function-length@npm:1.1.1" + dependencies: + define-data-property: "npm:^1.1.1" + get-intrinsic: "npm:^1.2.1" + gopd: "npm:^1.0.1" + has-property-descriptors: "npm:^1.0.0" + checksum: 745ed1d7dc69a6185e0820082fe73838ab3dfd01e75cce83a41e4c1d68bbf34bc5fb38f32ded542ae0b557536b5d2781594499b5dcd19e7db138e06292a76c7b + languageName: node + linkType: hard + "set-function-length@npm:^1.2.1": version: 1.2.1 resolution: "set-function-length@npm:1.2.1" @@ -47588,13 +48613,6 @@ __metadata: languageName: node linkType: hard -"set-immediate-shim@npm:^1.0.1": - version: 1.0.1 - resolution: "set-immediate-shim@npm:1.0.1" - checksum: 98c4d6778c98363436690a340077142ef11c1a8c8c6a78118242340c8e82bb2d66a1563707ef3f5455e7ff5cbee21c87e898b333cf3e7ed241bab12d19e9eab1 - languageName: node - linkType: hard - "set-value@npm:^2.0.0, set-value@npm:^2.0.1": version: 2.0.1 resolution: "set-value@npm:2.0.1" @@ -47657,15 +48675,6 @@ __metadata: languageName: node linkType: hard -"sha3@npm:^2.1.1": - version: 2.1.4 - resolution: "sha3@npm:2.1.4" - dependencies: - buffer: "npm:6.0.3" - checksum: 55f8b2608559987219203056c800c64afd3b4ffd5c9ebf281f6adb9d6a7eb5093754987b7c81d83f693f18ef5fb7e62e46bd78b67fc82a6852feda9ef1ba71a7 - languageName: node - linkType: hard - "shallow-clone@npm:^3.0.0": version: 3.0.1 resolution: "shallow-clone@npm:3.0.1" @@ -47689,15 +48698,6 @@ __metadata: languageName: node linkType: hard -"shebang-command@npm:^1.2.0": - version: 1.2.0 - resolution: "shebang-command@npm:1.2.0" - dependencies: - shebang-regex: "npm:^1.0.0" - checksum: 9eed1750301e622961ba5d588af2212505e96770ec376a37ab678f965795e995ade7ed44910f5d3d3cb5e10165a1847f52d3348c64e146b8be922f7707958908 - languageName: node - linkType: hard - "shebang-command@npm:^2.0.0": version: 2.0.0 resolution: "shebang-command@npm:2.0.0" @@ -47707,13 +48707,6 @@ __metadata: languageName: node linkType: hard -"shebang-regex@npm:^1.0.0": - version: 1.0.0 - resolution: "shebang-regex@npm:1.0.0" - checksum: 404c5a752cd40f94591dfd9346da40a735a05139dac890ffc229afba610854d8799aaa52f87f7e0c94c5007f2c6af55bdcaeb584b56691926c5eaf41dc8f1372 - languageName: node - linkType: hard - "shebang-regex@npm:^3.0.0": version: 3.0.0 resolution: "shebang-regex@npm:3.0.0" @@ -48033,15 +49026,6 @@ __metadata: languageName: node linkType: hard -"snake-case@npm:^2.1.0": - version: 2.1.0 - resolution: "snake-case@npm:2.1.0" - dependencies: - no-case: "npm:^2.2.0" - checksum: 7e42b4841103be4dd050b2f57f5cb423d5164524c1cb3d81efda9809265a82a2d02ddf44361beae37d75a239308e6414be85fe441dc48cd70c708cb975387d10 - languageName: node - linkType: hard - "snake-case@npm:^3.0.4": version: 3.0.4 resolution: "snake-case@npm:3.0.4" @@ -48139,21 +49123,6 @@ __metadata: languageName: node linkType: hard -"solc@npm:^0.4.20": - version: 0.4.26 - resolution: "solc@npm:0.4.26" - dependencies: - fs-extra: "npm:^0.30.0" - memorystream: "npm:^0.3.1" - require-from-string: "npm:^1.1.0" - semver: "npm:^5.3.0" - yargs: "npm:^4.7.1" - bin: - solcjs: solcjs - checksum: 18fbdc5056988e236b451f679921fb89b145d102bfad773ffa382f6203e7b116cc4e29e981a9ee9e1ff3b288b912fc2fc577d263c318bbe3069def3ceb8a1b12 - languageName: node - linkType: hard - "solhint@npm:4.0.0": version: 4.0.0 resolution: "solhint@npm:4.0.0" @@ -48361,17 +49330,7 @@ __metadata: languageName: node linkType: hard -"source-map-support@npm:0.5.12": - version: 0.5.12 - resolution: "source-map-support@npm:0.5.12" - dependencies: - buffer-from: "npm:^1.0.0" - source-map: "npm:^0.6.0" - checksum: 308d9302693330422481d8fef7303438994a4be7390310c57527d9c32ee0130673e326bfe38c501dcfa0d9e8cacf814eafa707d7f2e9d9e772de31455700e40b - languageName: node - linkType: hard - -"source-map-support@npm:0.5.21, source-map-support@npm:^0.5.13, source-map-support@npm:^0.5.16, source-map-support@npm:^0.5.19, source-map-support@npm:^0.5.20, source-map-support@npm:^0.5.6, source-map-support@npm:~0.5.20": +"source-map-support@npm:0.5.21, source-map-support@npm:^0.5.13, source-map-support@npm:^0.5.16, source-map-support@npm:^0.5.20, source-map-support@npm:^0.5.6, source-map-support@npm:~0.5.20": version: 0.5.21 resolution: "source-map-support@npm:0.5.21" dependencies: @@ -48532,17 +49491,6 @@ __metadata: languageName: node linkType: hard -"spinnies@npm:^0.4.2": - version: 0.4.3 - resolution: "spinnies@npm:0.4.3" - dependencies: - chalk: "npm:^2.4.2" - cli-cursor: "npm:^3.0.0" - strip-ansi: "npm:^5.2.0" - checksum: b8180ea5572b59a4f6f4809e93ccd4d34862bab07c62ffda507cbae099a4982db6dec02e45738dbf1fd86c660dc87843047fc26d2de75ebdd77e1241e5c43d76 - languageName: node - linkType: hard - "split-ca@npm:^1.0.0, split-ca@npm:^1.0.1": version: 1.0.1 resolution: "split-ca@npm:1.0.1" @@ -48922,16 +49870,6 @@ __metadata: languageName: node linkType: hard -"stream-to-pull-stream@npm:^1.7.1": - version: 1.7.3 - resolution: "stream-to-pull-stream@npm:1.7.3" - dependencies: - looper: "npm:^3.0.0" - pull-stream: "npm:^3.2.3" - checksum: e8b24e96484d47d1ac7ff2e881e0ba72b428585ab8728deaddf229d2742a7903717b2dd6f8e05b2749ac4c3e6dcd7969bad025c8bec1f6b3843c98365450615d - languageName: node - linkType: hard - "stream-transform@npm:^3.3.1": version: 3.3.1 resolution: "stream-transform@npm:3.3.1" @@ -49073,7 +50011,7 @@ __metadata: languageName: node linkType: hard -"string.prototype.trim@npm:^1.2.8, string.prototype.trim@npm:~1.2.8": +"string.prototype.trim@npm:^1.2.8": version: 1.2.8 resolution: "string.prototype.trim@npm:1.2.8" dependencies: @@ -49211,15 +50149,6 @@ __metadata: languageName: node linkType: hard -"strip-bom@npm:^2.0.0": - version: 2.0.0 - resolution: "strip-bom@npm:2.0.0" - dependencies: - is-utf8: "npm:^0.2.0" - checksum: 08efb746bc67b10814cd03d79eb31bac633393a782e3f35efbc1b61b5165d3806d03332a97f362822cf0d4dd14ba2e12707fcff44fe1c870c48a063a0c9e4944 - languageName: node - linkType: hard - "strip-bom@npm:^3.0.0": version: 3.0.0 resolution: "strip-bom@npm:3.0.0" @@ -49227,15 +50156,6 @@ __metadata: languageName: node linkType: hard -"strip-dirs@npm:^2.0.0": - version: 2.1.0 - resolution: "strip-dirs@npm:2.1.0" - dependencies: - is-natural-number: "npm:^4.0.1" - checksum: 7284fc61cf667e403c54ea515c421094ae641a382a8c8b6019f06658e828556c8e4bb439d5797f7d42247a5342eb6feef200c88ad0582e69b3261e1ec0dbc3a6 - languageName: node - linkType: hard - "strip-dirs@npm:^3.0.0": version: 3.0.0 resolution: "strip-dirs@npm:3.0.0" @@ -49269,13 +50189,6 @@ __metadata: languageName: node linkType: hard -"strip-indent@npm:^2.0.0": - version: 2.0.0 - resolution: "strip-indent@npm:2.0.0" - checksum: 7d9080d02ddace616ebbc17846e41d3880cb147e2a81e51142281322ded6b05b230a4fb12c2e5266f62735cf8f5fb9839e55d74799d11f26bcc8c71ca049a0ba - languageName: node - linkType: hard - "strip-indent@npm:^3.0.0": version: 3.0.0 resolution: "strip-indent@npm:3.0.0" @@ -49441,13 +50354,6 @@ __metadata: languageName: node linkType: hard -"super-split@npm:^1.1.0": - version: 1.1.0 - resolution: "super-split@npm:1.1.0" - checksum: 33c9d7cca56b1258d3d857f482ed8d5c349f97dcd82b70dad3948cdf4a1998cdb53ea28c70a62f1997c5d20a1ae6c1dbcc3a5e273cf0a116bde6895f4d5bfc17 - languageName: node - linkType: hard - "superagent@npm:^7.1.6": version: 7.1.6 resolution: "superagent@npm:7.1.6" @@ -49673,16 +50579,6 @@ __metadata: languageName: node linkType: hard -"swap-case@npm:^1.1.0": - version: 1.1.2 - resolution: "swap-case@npm:1.1.2" - dependencies: - lower-case: "npm:^1.1.1" - upper-case: "npm:^1.1.1" - checksum: 37b0c4988e12520fba54018f7fe259d62902e97349366209d2af9b1d5e741692c8f17da9d5e780c7bd1a56864bbb51d53eaf1a101a11afdfcae157912a3691d8 - languageName: node - linkType: hard - "swap-case@npm:^2.0.2": version: 2.0.2 resolution: "swap-case@npm:2.0.2" @@ -49692,26 +50588,6 @@ __metadata: languageName: node linkType: hard -"swarm-js@npm:0.1.39": - version: 0.1.39 - resolution: "swarm-js@npm:0.1.39" - dependencies: - bluebird: "npm:^3.5.0" - buffer: "npm:^5.0.5" - decompress: "npm:^4.0.0" - eth-lib: "npm:^0.1.26" - fs-extra: "npm:^4.0.2" - got: "npm:^7.1.0" - mime-types: "npm:^2.1.16" - mkdirp-promise: "npm:^5.0.1" - mock-fs: "npm:^4.1.0" - setimmediate: "npm:^1.0.5" - tar: "npm:^4.0.2" - xhr-request-promise: "npm:^0.1.2" - checksum: 79c5752a5b736bcc70c15f767552901b35ee8372f398874fbb9076d00a110be56d0507a05b418e044bca84739b2c4499a0bb67e255ab08942ccecda7c98dd4a4 - languageName: node - linkType: hard - "swarm-js@npm:^0.1.40": version: 0.1.42 resolution: "swarm-js@npm:0.1.42" @@ -49924,32 +50800,6 @@ __metadata: languageName: node linkType: hard -"tape@npm:^4.6.3": - version: 4.17.0 - resolution: "tape@npm:4.17.0" - dependencies: - "@ljharb/resumer": "npm:~0.0.1" - "@ljharb/through": "npm:~2.3.9" - call-bind: "npm:~1.0.2" - deep-equal: "npm:~1.1.1" - defined: "npm:~1.0.1" - dotignore: "npm:~0.1.2" - for-each: "npm:~0.3.3" - glob: "npm:~7.2.3" - has: "npm:~1.0.3" - inherits: "npm:~2.0.4" - is-regex: "npm:~1.1.4" - minimist: "npm:~1.2.8" - mock-property: "npm:~1.0.0" - object-inspect: "npm:~1.12.3" - resolve: "npm:~1.22.6" - string.prototype.trim: "npm:~1.2.8" - bin: - tape: bin/tape - checksum: 306418eab85b43035482a978a17eb96d75157f0725f9bb7fd1e43817347ffb977a70540548b92adaa902482dc2d096ca4a371e21b584306fd984251bfb6b09f0 - languageName: node - linkType: hard - "tar-fs@npm:^2.1.1": version: 2.1.1 resolution: "tar-fs@npm:2.1.1" @@ -49986,7 +50836,7 @@ __metadata: languageName: node linkType: hard -"tar-stream@npm:^1.1.2, tar-stream@npm:^1.5.2": +"tar-stream@npm:^1.1.2": version: 1.6.2 resolution: "tar-stream@npm:1.6.2" dependencies: @@ -50184,13 +51034,6 @@ __metadata: languageName: node linkType: hard -"testrpc@npm:0.0.1": - version: 0.0.1 - resolution: "testrpc@npm:0.0.1" - checksum: e27778552df2d0b938b062fdf41d44557f0eb3de75903cb90b87909f55a82a6345dd13e40d1498e718272b4e5225872dca66da73646c35df1031486bb0ed0fda - languageName: node - linkType: hard - "tests@workspace:tests": version: 0.0.0-use.local resolution: "tests@workspace:tests" @@ -50362,13 +51205,6 @@ __metadata: languageName: node linkType: hard -"through@npm:~2.2.7": - version: 2.2.7 - resolution: "through@npm:2.2.7" - checksum: 4c2f5102412917b8eb87c55888e60ea3a6190c4c9059f103957447fc616814bba485df1656e0e9e386047afa0edf8db1f3d703d1c73a89577dddf6920096a0a0 - languageName: node - linkType: hard - "thunky@npm:^1.0.2": version: 1.1.0 resolution: "thunky@npm:1.1.0" @@ -50383,7 +51219,7 @@ __metadata: languageName: node linkType: hard -"timed-out@npm:^4.0.0, timed-out@npm:^4.0.1": +"timed-out@npm:^4.0.1": version: 4.0.1 resolution: "timed-out@npm:4.0.1" checksum: d52648e5fc0ebb0cae1633737a1db1b7cb464d5d43d754bd120ddebd8067a1b8f42146c250d8cfb9952183b7b0f341a99fc71b59c52d659218afae293165004f @@ -50476,20 +51312,17 @@ __metadata: languageName: node linkType: hard -"tinyspy@npm:^2.1.0, tinyspy@npm:^2.1.1": +"tinyspy@npm:^2.1.0": version: 2.2.1 resolution: "tinyspy@npm:2.2.1" checksum: 170d6232e87f9044f537b50b406a38fbfd6f79a261cd12b92879947bd340939a833a678632ce4f5c4a6feab4477e9c21cd43faac3b90b68b77dd0536c4149736 languageName: node linkType: hard -"title-case@npm:^2.1.0": +"tinyspy@npm:^2.1.1": version: 2.1.1 - resolution: "title-case@npm:2.1.1" - dependencies: - no-case: "npm:^2.2.0" - upper-case: "npm:^1.0.3" - checksum: e88ddfc4608a7fb18ed440139d9c42a5f8a50f916e07062be2aef5e2038720746ed51c4fdf9e7190d24a8cc10e6dec9773027fc44450b3a4a5e5c49b4a931fb1 + resolution: "tinyspy@npm:2.1.1" + checksum: eb46c90cfb6359a78cf36d2eb1b80d219e7ce8bb4ce5d5e233f91e21b9a546b28ac55a5ebbeb3717fed21bd487b0cd25909c223acc6db9b37db5ed97baf976c0 languageName: node linkType: hard @@ -50520,15 +51353,6 @@ __metadata: languageName: node linkType: hard -"tmp@npm:0.1.0": - version: 0.1.0 - resolution: "tmp@npm:0.1.0" - dependencies: - rimraf: "npm:^2.6.3" - checksum: d98440fd50813a8b63f85c4717069dd4ffc5c4b5290e388fe86644d6f107a9f9f0eb87b27a491cc18846c9685550a284b809ec18fc736282cc53e34f2cc64251 - languageName: node - linkType: hard - "tmp@npm:^0.2.0": version: 0.2.3 resolution: "tmp@npm:0.2.3" @@ -50580,13 +51404,6 @@ __metadata: languageName: node linkType: hard -"to-readable-stream@npm:^1.0.0": - version: 1.0.0 - resolution: "to-readable-stream@npm:1.0.0" - checksum: a99e23d49777d9d03686f03cc0bbbcb4648d991648990a98bc93b55cf91a2ae830c41b5efa36802f1c00a34bba93bd33b10346772fd3f49bcf1667a99c85f354 - languageName: node - linkType: hard - "to-regex-range@npm:^2.1.0": version: 2.1.1 resolution: "to-regex-range@npm:2.1.1" @@ -50786,28 +51603,6 @@ __metadata: languageName: node linkType: hard -"truffle-flattener@npm:^1.4.0": - version: 1.6.0 - resolution: "truffle-flattener@npm:1.6.0" - dependencies: - "@resolver-engine/imports-fs": "npm:^0.2.2" - "@solidity-parser/parser": "npm:^0.14.1" - find-up: "npm:^2.1.0" - mkdirp: "npm:^1.0.4" - tsort: "npm:0.0.1" - bin: - truffle-flattener: index.js - checksum: 316ef6f8f72e7cdf04873dc5075191a917de5cba38d156ce24e9a6d13f9d745d6964cb708dc9330b488537a19533598ee8de89449fbac268fd4e05783616632e - languageName: node - linkType: hard - -"try-require@npm:^1.2.1": - version: 1.2.1 - resolution: "try-require@npm:1.2.1" - checksum: 9c26a9be5953fa58bdff7ef3c5c598a96ee6a85f67cb8bb3961202775eaf2ac1baceaade9d0c0758e627819d2bdd7070ae4907f0fec5ce1978d81a38b58a09ec - languageName: node - linkType: hard - "ts-api-utils@npm:^1.0.1": version: 1.2.1 resolution: "ts-api-utils@npm:1.2.1" @@ -51047,13 +51842,27 @@ __metadata: languageName: node linkType: hard -"tslib@npm:^2.0.0, tslib@npm:^2.0.1, tslib@npm:^2.0.3, tslib@npm:^2.1.0, tslib@npm:^2.2.0, tslib@npm:^2.3.0, tslib@npm:^2.3.1, tslib@npm:^2.4.0, tslib@npm:^2.5.0, tslib@npm:^2.5.2, tslib@npm:^2.6.0, tslib@npm:^2.6.1, tslib@npm:^2.6.2, tslib@npm:~2.6.0": +"tslib@npm:^2.0.0, tslib@npm:^2.0.1, tslib@npm:^2.0.3, tslib@npm:^2.1.0, tslib@npm:^2.3.0, tslib@npm:^2.3.1, tslib@npm:^2.4.0, tslib@npm:^2.5.0, tslib@npm:^2.6.0, tslib@npm:^2.6.1, tslib@npm:^2.6.2, tslib@npm:~2.6.0": version: 2.6.2 resolution: "tslib@npm:2.6.2" checksum: bd26c22d36736513980091a1e356378e8b662ded04204453d353a7f34a4c21ed0afc59b5f90719d4ba756e581a162ecbf93118dc9c6be5acf70aa309188166ca languageName: node linkType: hard +"tslib@npm:^2.2.0, tslib@npm:~2.5.0": + version: 2.5.3 + resolution: "tslib@npm:2.5.3" + checksum: d507e60ebe2480af4efc1655dfdb2762bb6ca57d76c4ba680375af801493648c2e97808bbd7e54691eb40e33a7e2e793cdef9c24ce6a8539b03cac8b26e09a61 + languageName: node + linkType: hard + +"tslib@npm:^2.5.2": + version: 2.5.2 + resolution: "tslib@npm:2.5.2" + checksum: 263607d3f0e1913eb7f1f0f02489f47d11717b8662176b60690adceb2ed64529f369998b967a0bed920a5b809300f882a9340d278701d62439e4ce35af0d5a1f + languageName: node + linkType: hard + "tslib@npm:~2.4.0": version: 2.4.1 resolution: "tslib@npm:2.4.1" @@ -51061,13 +51870,6 @@ __metadata: languageName: node linkType: hard -"tslib@npm:~2.5.0": - version: 2.5.3 - resolution: "tslib@npm:2.5.3" - checksum: d507e60ebe2480af4efc1655dfdb2762bb6ca57d76c4ba680375af801493648c2e97808bbd7e54691eb40e33a7e2e793cdef9c24ce6a8539b03cac8b26e09a61 - languageName: node - linkType: hard - "tslint-config-prettier@npm:1.18.0": version: 1.18.0 resolution: "tslint-config-prettier@npm:1.18.0" @@ -51223,14 +52025,14 @@ __metadata: languageName: node linkType: hard -"tweetnacl-util@npm:^0.15.0, tweetnacl-util@npm:^0.15.1": +"tweetnacl-util@npm:^0.15.1": version: 0.15.1 resolution: "tweetnacl-util@npm:0.15.1" checksum: ae6aa8a52cdd21a95103a4cc10657d6a2040b36c7a6da7b9d3ab811c6750a2d5db77e8c36969e75fdee11f511aa2b91c552496c6e8e989b6e490e54aca2864fc languageName: node linkType: hard -"tweetnacl@npm:1.0.3, tweetnacl@npm:^1.0.0, tweetnacl@npm:^1.0.3": +"tweetnacl@npm:1.0.3, tweetnacl@npm:^1.0.3": version: 1.0.3 resolution: "tweetnacl@npm:1.0.3" checksum: ca122c2f86631f3c0f6d28efb44af2a301d4a557a62a3e2460286b08e97567b258c2212e4ad1cfa22bd6a57edcdc54ba76ebe946847450ab0999e6d48ccae332 @@ -51448,7 +52250,7 @@ __metadata: languageName: node linkType: hard -"typescript@npm:5.3.3, typescript@npm:^5.0.0, typescript@npm:^5.0.4, typescript@npm:^5.2.2": +"typescript@npm:5.3.3, typescript@npm:^5.0.0, typescript@npm:^5.0.4": version: 5.3.3 resolution: "typescript@npm:5.3.3" bin: @@ -51458,36 +52260,33 @@ __metadata: languageName: node linkType: hard -"typescript@patch:typescript@npm%3A5.3.3#optional!builtin, typescript@patch:typescript@npm%3A^5.0.0#optional!builtin, typescript@patch:typescript@npm%3A^5.0.4#optional!builtin, typescript@patch:typescript@npm%3A^5.2.2#optional!builtin": - version: 5.3.3 - resolution: "typescript@patch:typescript@npm%3A5.3.3#optional!builtin::version=5.3.3&hash=e012d7" +"typescript@npm:^5.2.2": + version: 5.2.2 + resolution: "typescript@npm:5.2.2" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: c93786fcc9a70718ba1e3819bab56064ead5817004d1b8186f8ca66165f3a2d0100fee91fa64c840dcd45f994ca5d615d8e1f566d39a7470fc1e014dbb4cf15d + checksum: d65e50eb849bd21ff8677e5b9447f9c6e74777e346afd67754934264dcbf4bd59e7d2473f6062d9a015d66bd573311166357e3eb07fea0b52859cf9bb2b58555 languageName: node linkType: hard -"typewise-core@npm:^1.2, typewise-core@npm:^1.2.0": - version: 1.2.0 - resolution: "typewise-core@npm:1.2.0" - checksum: 08d787595a4214620a1a255904b3472e339dbdf99883bda12ebc29753c70b55f414e46e1a64d05395db3d0f2bc273c2b3547dbefb9dd77cc8c7d622c33b72d07 - languageName: node - linkType: hard - -"typewise@npm:^1.0.3": - version: 1.0.3 - resolution: "typewise@npm:1.0.3" - dependencies: - typewise-core: "npm:^1.2.0" - checksum: 4def6bef2efee1a0ac9a47721ff51b31effc38cbb5cc1319133171704c823946d4fa08b55e2f00c8c5c172406a25f16e150fb816b37eba60864782fc1ae1763e +"typescript@patch:typescript@npm%3A5.3.3#optional!builtin, typescript@patch:typescript@npm%3A^5.0.0#optional!builtin, typescript@patch:typescript@npm%3A^5.0.4#optional!builtin": + version: 5.3.3 + resolution: "typescript@patch:typescript@npm%3A5.3.3#optional!builtin::version=5.3.3&hash=e012d7" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: c93786fcc9a70718ba1e3819bab56064ead5817004d1b8186f8ca66165f3a2d0100fee91fa64c840dcd45f994ca5d615d8e1f566d39a7470fc1e014dbb4cf15d languageName: node linkType: hard -"typewiselite@npm:~1.0.0": - version: 1.0.0 - resolution: "typewiselite@npm:1.0.0" - checksum: 51cf41c44d45cadbe9ab3fb2976eb37a93d0e3b618cd0b74dc0d397d2510d127660e6cd734e212779469167974aaf081dca6de822a7e64b6241e08ce541abba0 +"typescript@patch:typescript@npm%3A^5.2.2#optional!builtin": + version: 5.2.2 + resolution: "typescript@patch:typescript@npm%3A5.2.2#optional!builtin::version=5.2.2&hash=f3b441" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: f79cc2ba802c94c2b78dbb00d767a10adb67368ae764709737dc277273ec148aa4558033a03ce901406b35fddf4eac46dabc94a1e1d12d2587e2b9cfe5707b4a languageName: node linkType: hard @@ -51512,6 +52311,13 @@ __metadata: languageName: node linkType: hard +"ufo@npm:^1.1.2": + version: 1.1.2 + resolution: "ufo@npm:1.1.2" + checksum: 82468cde70cf692242660eeaeac71b2ebd6573c6a5405e17e2d4ccd905f9070d465cfce8e6c4f873178aec6ce00d69e5a8ed8bc2ff58d085511ae3938014a80d + languageName: node + linkType: hard + "ufo@npm:^1.3.0, ufo@npm:^1.3.1, ufo@npm:^1.3.2, ufo@npm:^1.4.0": version: 1.4.0 resolution: "ufo@npm:1.4.0" @@ -51592,7 +52398,7 @@ __metadata: languageName: node linkType: hard -"unbzip2-stream@npm:^1.0.9, unbzip2-stream@npm:^1.4.3": +"unbzip2-stream@npm:^1.4.3": version: 1.4.3 resolution: "unbzip2-stream@npm:1.4.3" dependencies: @@ -51616,27 +52422,6 @@ __metadata: languageName: node linkType: hard -"underscore@npm:1.12.1": - version: 1.12.1 - resolution: "underscore@npm:1.12.1" - checksum: c3bb50c61ef7dea4b9add6d48f98316f65de1075801dc8cd01ecd82122b99eb17ce0f068f00f6cc10245d5cf75c443ce96f8efc5458d7773b44af9bd7c2ccc56 - languageName: node - linkType: hard - -"underscore@npm:1.9.1": - version: 1.9.1 - resolution: "underscore@npm:1.9.1" - checksum: e31953b8d09dede377a9c8d20137fd2ac0baa32e73df962b3737833290317dab1cb91707c094a00e60c5a863c6add7b2795874a6b24d9a635da7803745e7774f - languageName: node - linkType: hard - -"underscore@npm:^1.8.3": - version: 1.13.6 - resolution: "underscore@npm:1.13.6" - checksum: 58cf5dc42cb0ac99c146ae4064792c0a2cc84f3a3c4ad88f5082e79057dfdff3371d896d1ec20379e9ece2450d94fa78f2ef5bfefc199ba320653e32c009bd66 - languageName: node - linkType: hard - "undici-types@npm:~5.26.4": version: 5.26.5 resolution: "undici-types@npm:5.26.5" @@ -51653,7 +52438,7 @@ __metadata: languageName: node linkType: hard -"unenv@npm:^1.9.0": +"unenv@npm:^1.8.0, unenv@npm:^1.9.0": version: 1.9.0 resolution: "unenv@npm:1.9.0" dependencies: @@ -52004,20 +52789,6 @@ __metadata: languageName: node linkType: hard -"unlock-abi-7@npm:1.0.2": - version: 1.0.2 - resolution: "unlock-abi-7@npm:1.0.2" - checksum: d7d34dde0b7f7b4cb74a95d4bd1ff87015566425c651d2584615e32fe1e903109ba57fe1fca26580a0abf5ef08c8862169e064d3965228084751805a91146787 - languageName: node - linkType: hard - -"unlock-abi-7@npm:1.0.3": - version: 1.0.3 - resolution: "unlock-abi-7@npm:1.0.3" - checksum: dc1a177e3e06ac6e44d0e050ac303d04fa0993e27de4fccd9c03179f80e296c3abcfa8f89fcf0e7f7ad7172dd93a359eb39ce28ef65a065df4c0ed00eb28db3a - languageName: node - linkType: hard - "unlock-express-example@workspace:packages/unlock-express/example": version: 0.0.0-use.local resolution: "unlock-express-example@workspace:packages/unlock-express/example" @@ -52050,13 +52821,6 @@ __metadata: languageName: unknown linkType: soft -"unorm@npm:^1.3.3": - version: 1.6.0 - resolution: "unorm@npm:1.6.0" - checksum: af09a4c656830173571a547605a185916eb5ee2a684374282edf318ef54882f9b25d00bfd44591b686a292d8130e083755a3317eca62753d56e18616e98e501b - languageName: node - linkType: hard - "unpipe@npm:1.0.0, unpipe@npm:~1.0.0": version: 1.0.0 resolution: "unpipe@npm:1.0.0" @@ -52182,6 +52946,20 @@ __metadata: languageName: node linkType: hard +"update-browserslist-db@npm:^1.0.10, update-browserslist-db@npm:^1.0.11": + version: 1.0.11 + resolution: "update-browserslist-db@npm:1.0.11" + dependencies: + escalade: "npm:^3.1.1" + picocolors: "npm:^1.0.0" + peerDependencies: + browserslist: ">= 4.21.0" + bin: + update-browserslist-db: cli.js + checksum: cc1c7a38d15413046bea28ff3c7668a7cb6b4a53d83e8089fa960efd896deb6d1a9deffc2beb8dc0506186a352c8d19804efe5ec7eeb401037e14cf3ea5363f8 + languageName: node + linkType: hard + "update-browserslist-db@npm:^1.0.13": version: 1.0.13 resolution: "update-browserslist-db@npm:1.0.13" @@ -52218,15 +52996,6 @@ __metadata: languageName: node linkType: hard -"upper-case-first@npm:^1.1.0, upper-case-first@npm:^1.1.2": - version: 1.1.2 - resolution: "upper-case-first@npm:1.1.2" - dependencies: - upper-case: "npm:^1.1.1" - checksum: 7467267967de978316c26c64ca9a4b2fbe5ccb530dc2579b1078bfeb89723ba24bc20881de1d23db301f6e7e5e24b4084e6f5f7ddbb2275a55177d06d9a250b7 - languageName: node - linkType: hard - "upper-case-first@npm:^2.0.2": version: 2.0.2 resolution: "upper-case-first@npm:2.0.2" @@ -52236,13 +53005,6 @@ __metadata: languageName: node linkType: hard -"upper-case@npm:^1.0.3, upper-case@npm:^1.1.0, upper-case@npm:^1.1.1, upper-case@npm:^1.1.3": - version: 1.1.3 - resolution: "upper-case@npm:1.1.3" - checksum: fc4101fdcd783ee963d49d279186688d4ba2fab90e78dbd001ad141522a66ccfe310932f25e70d5211b559ab205be8c24bf9c5520c7ab7dcd0912274c6d976a3 - languageName: node - linkType: hard - "upper-case@npm:^2.0.2": version: 2.0.2 resolution: "upper-case@npm:2.0.2" @@ -52292,24 +53054,6 @@ __metadata: languageName: node linkType: hard -"url-parse-lax@npm:^1.0.0": - version: 1.0.0 - resolution: "url-parse-lax@npm:1.0.0" - dependencies: - prepend-http: "npm:^1.0.1" - checksum: 03316acff753845329652258c16d1688765ee34f7d242a94dadf9ff6e43ea567ec062cec7aa27c37f76f2c57f95e0660695afff32fb97b527591c7340a3090fa - languageName: node - linkType: hard - -"url-parse-lax@npm:^3.0.0": - version: 3.0.0 - resolution: "url-parse-lax@npm:3.0.0" - dependencies: - prepend-http: "npm:^2.0.0" - checksum: 1040e357750451173132228036aff1fd04abbd43eac1fb3e4fca7495a078bcb8d33cb765fe71ad7e473d9c94d98fd67adca63bd2716c815a2da066198dd37217 - languageName: node - linkType: hard - "url-parse@npm:^1.5.3": version: 1.5.10 resolution: "url-parse@npm:1.5.10" @@ -52327,13 +53071,6 @@ __metadata: languageName: node linkType: hard -"url-to-options@npm:^1.0.1": - version: 1.0.1 - resolution: "url-to-options@npm:1.0.1" - checksum: 20e59f4578525fb0d30ffc22b13b5aa60bc9e57cefd4f5842720f5b57211b6dec54abeae2d675381ac4486fd1a2e987f1318725dea996e503ff89f8c8ce2c17e - languageName: node - linkType: hard - "url@npm:^0.11.0": version: 0.11.3 resolution: "url@npm:0.11.3" @@ -52448,7 +53185,7 @@ __metadata: languageName: node linkType: hard -"utf8@npm:3.0.0, utf8@npm:^3.0.0": +"utf8@npm:3.0.0": version: 3.0.0 resolution: "utf8@npm:3.0.0" checksum: 31d19c4faacbb65b09ebc1c21c32b20bdb0919c6f6773cee5001b99bb83f8e503e7233c08fc71ebb34f7cfebd95cec3243b81d90176097aa2f286cccb4ce866e @@ -52462,21 +53199,6 @@ __metadata: languageName: node linkType: hard -"util.promisify@npm:^1.0.0": - version: 1.1.2 - resolution: "util.promisify@npm:1.1.2" - dependencies: - call-bind: "npm:^1.0.2" - define-properties: "npm:^1.2.0" - for-each: "npm:^0.3.3" - has-proto: "npm:^1.0.1" - has-symbols: "npm:^1.0.3" - object.getownpropertydescriptors: "npm:^2.1.6" - safe-array-concat: "npm:^1.0.0" - checksum: 90c139773aedfe0cda48f2e43fb96bb0b45ab1d9544ed0cc1949d6acda17053dcb60ed1d3d0a1e121f0e2c26ca21e84dc589a5f06ec33059a4c742e7cba4584f - languageName: node - linkType: hard - "util@npm:^0.10.3": version: 0.10.4 resolution: "util@npm:0.10.4" @@ -52486,7 +53208,7 @@ __metadata: languageName: node linkType: hard -"util@npm:^0.12.0, util@npm:^0.12.4, util@npm:^0.12.5": +"util@npm:^0.12.4, util@npm:^0.12.5": version: 0.12.5 resolution: "util@npm:0.12.5" dependencies: @@ -52527,15 +53249,6 @@ __metadata: languageName: node linkType: hard -"uuid@npm:3.3.2": - version: 3.3.2 - resolution: "uuid@npm:3.3.2" - bin: - uuid: ./bin/uuid - checksum: 3834a826020a23fca314116c2becddc7f5d756b0280d630b58a65e700afeefd89d78ae97ddbdea5dcad497666cda6e9b0390ba74508e650d43d83a32d1e7cd19 - languageName: node - linkType: hard - "uuid@npm:3.4.0, uuid@npm:^3.3.2": version: 3.4.0 resolution: "uuid@npm:3.4.0" @@ -52593,7 +53306,7 @@ __metadata: languageName: node linkType: hard -"v8-to-istanbul@npm:^9.0.0, v8-to-istanbul@npm:^9.1.0": +"v8-to-istanbul@npm:^9.0.0": version: 9.2.0 resolution: "v8-to-istanbul@npm:9.2.0" dependencies: @@ -52604,6 +53317,17 @@ __metadata: languageName: node linkType: hard +"v8-to-istanbul@npm:^9.1.0": + version: 9.1.3 + resolution: "v8-to-istanbul@npm:9.1.3" + dependencies: + "@jridgewell/trace-mapping": "npm:^0.3.12" + "@types/istanbul-lib-coverage": "npm:^2.0.1" + convert-source-map: "npm:^2.0.0" + checksum: d6ce9f6d97c53a401098fe42018f32be81c99830bcf44ee2717332e20a7df3e364a3f322c10dab4ea94488e81dde462295149cdfb44f48e8ef2829e3afd09752 + languageName: node + linkType: hard + "v8flags@npm:^3.1.1": version: 3.2.0 resolution: "v8flags@npm:3.2.0" @@ -52930,7 +53654,7 @@ __metadata: languageName: node linkType: hard -"vite@npm:5.1.4, vite@npm:^3.0.0 || ^4.0.0 || ^5.0.0-0, vite@npm:^3.1.0 || ^4.0.0 || ^5.0.0-0": +"vite@npm:5.1.4": version: 5.1.4 resolution: "vite@npm:5.1.4" dependencies: @@ -53010,6 +53734,46 @@ __metadata: languageName: node linkType: hard +"vite@npm:^3.0.0 || ^4.0.0 || ^5.0.0-0, vite@npm:^3.1.0 || ^4.0.0 || ^5.0.0-0": + version: 5.0.10 + resolution: "vite@npm:5.0.10" + dependencies: + esbuild: "npm:^0.19.3" + fsevents: "npm:~2.3.3" + postcss: "npm:^8.4.32" + rollup: "npm:^4.2.0" + peerDependencies: + "@types/node": ^18.0.0 || >=20.0.0 + less: "*" + lightningcss: ^1.21.0 + sass: "*" + stylus: "*" + sugarss: "*" + terser: ^5.4.0 + dependenciesMeta: + fsevents: + optional: true + peerDependenciesMeta: + "@types/node": + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + bin: + vite: bin/vite.js + checksum: 5421e9c7f8cf3152eace9a8b528269141635f367e5dc63c5f1fe2712a766d9757f8197733cf3f28be590afdd520130d38de90c955e6dba6edfa6f9056c1e5ea7 + languageName: node + linkType: hard + "vitest-fetch-mock@npm:0.2.2": version: 0.2.2 resolution: "vitest-fetch-mock@npm:0.2.2" @@ -53211,1934 +53975,535 @@ __metadata: languageName: node linkType: hard -"vm-browserify@npm:^1.0.1, vm-browserify@npm:^1.1.2": - version: 1.1.2 - resolution: "vm-browserify@npm:1.1.2" - checksum: ad5b17c9f7a9d9f1ed0e24c897782ab7a587c1fd40f370152482e1af154c7cf0b0bacc45c5ae76a44289881e083ae4ae127808fdff864aa9b562192aae8b5c3b - languageName: node - linkType: hard - -"vscode-json-languageservice@npm:^4.1.6": - version: 4.2.1 - resolution: "vscode-json-languageservice@npm:4.2.1" - dependencies: - jsonc-parser: "npm:^3.0.0" - vscode-languageserver-textdocument: "npm:^1.0.3" - vscode-languageserver-types: "npm:^3.16.0" - vscode-nls: "npm:^5.0.0" - vscode-uri: "npm:^3.0.3" - checksum: ebd3dd037cfb5ede73eaf5c634463aa2609014d544b6b97505d6e062e9bc8cb80f049d52939354a27acd7d26f48af3d95e6546598d60b1a384e6877f1eca7d0c - languageName: node - linkType: hard - -"vscode-languageserver-textdocument@npm:^1.0.3": - version: 1.0.11 - resolution: "vscode-languageserver-textdocument@npm:1.0.11" - checksum: 6096d2a85570e819e01ff406de7c88c48211e6874c6fc71df92193aa8b5aadf40591e44f033d634a95d04975d7aad29049d3eccab617ca41c189ae325aadb913 - languageName: node - linkType: hard - -"vscode-languageserver-types@npm:^3.16.0": - version: 3.17.5 - resolution: "vscode-languageserver-types@npm:3.17.5" - checksum: 900d0b81df5bef8d90933e75be089142f6989cc70fdb2d5a3a5f11fa20feb396aaea23ccffc8fbcc83a2f0e1b13c6ee48ff8151f236cbd6e61a4f856efac1a58 - languageName: node - linkType: hard - -"vscode-nls@npm:^5.0.0": - version: 5.2.0 - resolution: "vscode-nls@npm:5.2.0" - checksum: 7dd0d07e5f1fd7a7d1b35eabea20322e2efef4e93cebe6de45ee015ea0152ec1c354fd763d3987aed1db261f466ff31631d6acd679ac67af608fb49b9868e1ab - languageName: node - linkType: hard - -"vscode-uri@npm:^3.0.3": - version: 3.0.8 - resolution: "vscode-uri@npm:3.0.8" - checksum: e882d6b679e0d053cbc042893c0951a135d899a192b62cd07f0a8924f11ae722067a8d6b1b5b147034becf57faf9fff9fb543b17b749fd0f17db1f54f783f07c - languageName: node - linkType: hard - -"w3c-xmlserializer@npm:^5.0.0": - version: 5.0.0 - resolution: "w3c-xmlserializer@npm:5.0.0" - dependencies: - xml-name-validator: "npm:^5.0.0" - checksum: d78f59e6b4f924aa53b6dfc56949959229cae7fe05ea9374eb38d11edcec01398b7f5d7a12576bd5acc57ff446abb5c9115cd83b9d882555015437cf858d42f0 - languageName: node - linkType: hard - -"wabt@npm:1.0.24": - version: 1.0.24 - resolution: "wabt@npm:1.0.24" - bin: - wasm-decompile: bin/wasm-decompile - wasm-interp: bin/wasm-interp - wasm-objdump: bin/wasm-objdump - wasm-opcodecnt: bin/wasm-opcodecnt - wasm-strip: bin/wasm-strip - wasm-validate: bin/wasm-validate - wasm2c: bin/wasm2c - wasm2wat: bin/wasm2wat - wat2wasm: bin/wat2wasm - checksum: c4f486db9d91ffb2e22739ccc21458aba3a7dc50f2e5c885c90b2f8555538aa92c518c249afbc59b78e2e333e699ce19a9040e888a69d6bf38329b77d52cf3c6 - languageName: node - linkType: hard - -"wait-port@npm:1.0.4": - version: 1.0.4 - resolution: "wait-port@npm:1.0.4" - dependencies: - chalk: "npm:^4.1.2" - commander: "npm:^9.3.0" - debug: "npm:^4.3.4" - bin: - wait-port: bin/wait-port.js - checksum: abfda4ce09b4de22d3b236d554356e6f911988c1f1f9185203d6c8fbd96bacc17f00b87d3a6468b3440aca4a1c4f623fd344299ab12e59cd8cb616c788d771dc - languageName: node - linkType: hard - -"walker@npm:^1.0.8": - version: 1.0.8 - resolution: "walker@npm:1.0.8" - dependencies: - makeerror: "npm:1.0.12" - checksum: ad7a257ea1e662e57ef2e018f97b3c02a7240ad5093c392186ce0bcf1f1a60bbadd520d073b9beb921ed99f64f065efb63dfc8eec689a80e569f93c1c5d5e16c - languageName: node - linkType: hard - -"walletlink@npm:2.5.0": - version: 2.5.0 - resolution: "walletlink@npm:2.5.0" - dependencies: - "@metamask/safe-event-emitter": "npm:2.0.0" - bind-decorator: "npm:^1.0.11" - bn.js: "npm:^5.1.1" - clsx: "npm:^1.1.0" - eth-block-tracker: "npm:4.4.3" - eth-json-rpc-filters: "npm:4.2.2" - eth-rpc-errors: "npm:4.0.2" - js-sha256: "npm:0.9.0" - json-rpc-engine: "npm:6.1.0" - keccak: "npm:^3.0.1" - preact: "npm:^10.5.9" - rxjs: "npm:^6.6.3" - stream-browserify: "npm:^3.0.0" - checksum: 8a70b2c8d83aa1334717a70497576eb25136932eb1e5c738050a293a640fa956f27264e5568813d4072f39ae83a57e2ba0a0ca1500d6863f5dcad3298b30f050 - languageName: node - linkType: hard - -"watchpack@npm:2.4.0, watchpack@npm:^2.2.0, watchpack@npm:^2.4.0": - version: 2.4.0 - resolution: "watchpack@npm:2.4.0" - dependencies: - glob-to-regexp: "npm:^0.4.1" - graceful-fs: "npm:^4.1.2" - checksum: 4280b45bc4b5d45d5579113f2a4af93b67ae1b9607cc3d86ae41cdd53ead10db5d9dc3237f24256d05ef88b28c69a02712f78e434cb7ecc8edaca134a56e8cab - languageName: node - linkType: hard - -"wbuf@npm:^1.1.0, wbuf@npm:^1.7.3": - version: 1.7.3 - resolution: "wbuf@npm:1.7.3" - dependencies: - minimalistic-assert: "npm:^1.0.0" - checksum: c18b51c4e1fb19705c94b93c0cf093ba014606abceee949399d56074ef1863bf4897a8d884be24e8d224d18c9ce411cf6924006d0a5430492729af51256e067a - languageName: node - linkType: hard - -"wcwidth@npm:>=1.0.1, wcwidth@npm:^1.0.1": - version: 1.0.1 - resolution: "wcwidth@npm:1.0.1" - dependencies: - defaults: "npm:^1.0.3" - checksum: 182ebac8ca0b96845fae6ef44afd4619df6987fe5cf552fdee8396d3daa1fb9b8ec5c6c69855acb7b3c1231571393bd1f0a4cdc4028d421575348f64bb0a8817 - languageName: node - linkType: hard - -"web-namespaces@npm:^2.0.0": - version: 2.0.1 - resolution: "web-namespaces@npm:2.0.1" - checksum: b6d9f02f1a43d0ef0848a812d89c83801d5bbad57d8bb61f02eb6d7eb794c3736f6cc2e1191664bb26136594c8218ac609f4069722c6f56d9fc2d808fa9271c6 - languageName: node - linkType: hard - -"web-streams-polyfill@npm:^3.0.3, web-streams-polyfill@npm:^3.2.1": - version: 3.3.3 - resolution: "web-streams-polyfill@npm:3.3.3" - checksum: 8e7e13501b3834094a50abe7c0b6456155a55d7571312b89570012ef47ec2a46d766934768c50aabad10a9c30dd764a407623e8bfcc74fcb58495c29130edea9 - languageName: node - linkType: hard - -"web3-bzz@npm:1.10.0": - version: 1.10.0 - resolution: "web3-bzz@npm:1.10.0" - dependencies: - "@types/node": "npm:^12.12.6" - got: "npm:12.1.0" - swarm-js: "npm:^0.1.40" - checksum: 3cfc6eedc5ba963d6580833e242a2dd6adf6076502cef31f02e3e5a0bb85243b6e1bcf63bb4d194f315ffca5bcf432441c9f2915aa1fea03224c860966b8c628 - languageName: node - linkType: hard - -"web3-bzz@npm:1.10.4": - version: 1.10.4 - resolution: "web3-bzz@npm:1.10.4" - dependencies: - "@types/node": "npm:^12.12.6" - got: "npm:12.1.0" - swarm-js: "npm:^0.1.40" - checksum: 03b9e48e85d97c0a0d2fdec06fb42188adaf81e83c35ab73b3f6eafbdda2b43c0a9ed1a3b4ce86360544818eec34c056f0e4b67395685df97c1901f4a1c4a02e - languageName: node - linkType: hard - -"web3-bzz@npm:1.2.1": - version: 1.2.1 - resolution: "web3-bzz@npm:1.2.1" - dependencies: - got: "npm:9.6.0" - swarm-js: "npm:0.1.39" - underscore: "npm:1.9.1" - checksum: 6ef2f6dc2393806cf466b2a72fc3b74c1ec7fad182022553cc2179eb33d3fcda5e1b13a15057e4d33f818cf24404cd7a6b4e4feb39a75a49cc7cc0923680a278 - languageName: node - linkType: hard - -"web3-bzz@npm:1.2.11": - version: 1.2.11 - resolution: "web3-bzz@npm:1.2.11" - dependencies: - "@types/node": "npm:^12.12.6" - got: "npm:9.6.0" - swarm-js: "npm:^0.1.40" - underscore: "npm:1.9.1" - checksum: a9143d709a37d91adb25202b7f524fadf7a44fbdd76bea30dd97e73a247bd8d73a800576ade97a0c325c3a77cea34374a30443324aee359265cc201d20576d19 - languageName: node - linkType: hard - -"web3-bzz@npm:1.2.2": - version: 1.2.2 - resolution: "web3-bzz@npm:1.2.2" - dependencies: - "@types/node": "npm:^10.12.18" - got: "npm:9.6.0" - swarm-js: "npm:0.1.39" - underscore: "npm:1.9.1" - checksum: 5ed18772d28a55f37738f59ffbb31a35846b8b89e71dca6876cd0aac377184b9cb63e7ce5899db78d5c964ba31bebaf484b3781805c63dadbcfa5c2e53a3b493 - languageName: node - linkType: hard - -"web3-bzz@npm:1.3.6": - version: 1.3.6 - resolution: "web3-bzz@npm:1.3.6" - dependencies: - "@types/node": "npm:^12.12.6" - got: "npm:9.6.0" - swarm-js: "npm:^0.1.40" - underscore: "npm:1.12.1" - checksum: 2f471499e14e724b647030303c2efb1aef1e0a39248be64cc2509735fdac1c601d798debf9e37f61ecd2534a0c03fe426b7e613c2972ab5d23fa47c005e53acd - languageName: node - linkType: hard - -"web3-bzz@npm:1.4.0": - version: 1.4.0 - resolution: "web3-bzz@npm:1.4.0" - dependencies: - "@types/node": "npm:^12.12.6" - got: "npm:9.6.0" - swarm-js: "npm:^0.1.40" - underscore: "npm:1.12.1" - checksum: 015280d8433b8f7a3b5355193a56e29ded74f09d0d598b95ff41d636e38f3825b66486125962db54c2123094116dfb2441a997a8d3bf30198164f16bdd8f1ba1 - languageName: node - linkType: hard - -"web3-core-helpers@npm:1.10.0": - version: 1.10.0 - resolution: "web3-core-helpers@npm:1.10.0" - dependencies: - web3-eth-iban: "npm:1.10.0" - web3-utils: "npm:1.10.0" - checksum: 0af64b9467df7b7d738c28d97ddcdc9d0800838daea25c1197efec5b4e2c50d010b95c1c55ed210e4c5c9a056bb2c1621825623a8d9332ebc93f77c908a0dc80 - languageName: node - linkType: hard - -"web3-core-helpers@npm:1.10.4": - version: 1.10.4 - resolution: "web3-core-helpers@npm:1.10.4" - dependencies: - web3-eth-iban: "npm:1.10.4" - web3-utils: "npm:1.10.4" - checksum: 9c22942827bed0e46ae491a0bee3cd60cea636f9b0408b11bb341b0370e58a94358025657405142c2a24f3912a8f947e6e977d594d9ba66e11dedce3c5c4a7f4 - languageName: node - linkType: hard - -"web3-core-helpers@npm:1.2.1": - version: 1.2.1 - resolution: "web3-core-helpers@npm:1.2.1" - dependencies: - underscore: "npm:1.9.1" - web3-eth-iban: "npm:1.2.1" - web3-utils: "npm:1.2.1" - checksum: 8d5dc08fe371770b5a07503331a21996075da721e3ffe95f30cd0328a2a9f619a4e69ac70c28dae638bfc532db1667b89b413cad5df53220c103c19510e14d4f - languageName: node - linkType: hard - -"web3-core-helpers@npm:1.2.11": - version: 1.2.11 - resolution: "web3-core-helpers@npm:1.2.11" - dependencies: - underscore: "npm:1.9.1" - web3-eth-iban: "npm:1.2.11" - web3-utils: "npm:1.2.11" - checksum: f230dac1bd1a920ac3767879fc6b0878c0927e714d72443c526ca7991e0be9d4a8ac84fef4d8194d71a8c7a85540441796d003ce1a4a12c3d0b35465207104e3 - languageName: node - linkType: hard - -"web3-core-helpers@npm:1.2.2": - version: 1.2.2 - resolution: "web3-core-helpers@npm:1.2.2" - dependencies: - underscore: "npm:1.9.1" - web3-eth-iban: "npm:1.2.2" - web3-utils: "npm:1.2.2" - checksum: 0318ea3597d20409920813e59600e13ff10d4a4531e3f4c9346eb84af1fbf09b3affd401b4e3ebbe1c9cc34da863b73c92dae10e4002d1436bf834d9b38a25cf - languageName: node - linkType: hard - -"web3-core-helpers@npm:1.3.6": - version: 1.3.6 - resolution: "web3-core-helpers@npm:1.3.6" - dependencies: - underscore: "npm:1.12.1" - web3-eth-iban: "npm:1.3.6" - web3-utils: "npm:1.3.6" - checksum: 8e86a04a8b19cf2e7843c61c2e0dfdb4f1906717c869dd58fd240585dc28f56cce30282edda5c3782e67df4e0090c462af213a98b070ff0d6efb04520ea8b82a - languageName: node - linkType: hard - -"web3-core-helpers@npm:1.4.0": - version: 1.4.0 - resolution: "web3-core-helpers@npm:1.4.0" - dependencies: - underscore: "npm:1.12.1" - web3-eth-iban: "npm:1.4.0" - web3-utils: "npm:1.4.0" - checksum: 0a69fdc8be45238517b1054f9b921376673ccf015923d1641a40c7ffe489ded47b180f759dce084deae52781b75d32a7e46cf0405a664316cae9ca03a9455df6 - languageName: node - linkType: hard - -"web3-core-method@npm:1.10.0": - version: 1.10.0 - resolution: "web3-core-method@npm:1.10.0" - dependencies: - "@ethersproject/transactions": "npm:^5.6.2" - web3-core-helpers: "npm:1.10.0" - web3-core-promievent: "npm:1.10.0" - web3-core-subscriptions: "npm:1.10.0" - web3-utils: "npm:1.10.0" - checksum: a5d9783bd73e0f3e05ec3b7013bcf103303af9f211bed471f791db418b21f12028a5f07509be3d8dabe30f32789dd8529c743363bc4cc90eb16e7a6b8df5c80e - languageName: node - linkType: hard - -"web3-core-method@npm:1.10.4": - version: 1.10.4 - resolution: "web3-core-method@npm:1.10.4" - dependencies: - "@ethersproject/transactions": "npm:^5.6.2" - web3-core-helpers: "npm:1.10.4" - web3-core-promievent: "npm:1.10.4" - web3-core-subscriptions: "npm:1.10.4" - web3-utils: "npm:1.10.4" - checksum: d942beba3999c084333f5c808ada2a90930d55d148d5f8cc51a2135f8ab3f101fa5ce0d732a60830e8cad2af844bbed6cf0b6250863003adafb08c7ffa9fbd5f - languageName: node - linkType: hard - -"web3-core-method@npm:1.2.1": - version: 1.2.1 - resolution: "web3-core-method@npm:1.2.1" - dependencies: - underscore: "npm:1.9.1" - web3-core-helpers: "npm:1.2.1" - web3-core-promievent: "npm:1.2.1" - web3-core-subscriptions: "npm:1.2.1" - web3-utils: "npm:1.2.1" - checksum: 81cf906472ab1d48b46cca1a9171db6e4c82488123750a2f7a247efd86339d15336c262dff0f8227f90e62abc218f2e0a6b3a4bc5d7704fb2be740969cf16eb8 - languageName: node - linkType: hard - -"web3-core-method@npm:1.2.11": - version: 1.2.11 - resolution: "web3-core-method@npm:1.2.11" - dependencies: - "@ethersproject/transactions": "npm:^5.0.0-beta.135" - underscore: "npm:1.9.1" - web3-core-helpers: "npm:1.2.11" - web3-core-promievent: "npm:1.2.11" - web3-core-subscriptions: "npm:1.2.11" - web3-utils: "npm:1.2.11" - checksum: 53cef1d5b48981f6606ac895a049bb4466110cb2b9129d56f09de98ef21bd44c4fe8f4a35061fdd4de3141c43cbe63c723acf6ccd7d1f36120bea7356f67e952 - languageName: node - linkType: hard - -"web3-core-method@npm:1.2.2": - version: 1.2.2 - resolution: "web3-core-method@npm:1.2.2" - dependencies: - underscore: "npm:1.9.1" - web3-core-helpers: "npm:1.2.2" - web3-core-promievent: "npm:1.2.2" - web3-core-subscriptions: "npm:1.2.2" - web3-utils: "npm:1.2.2" - checksum: 70c5227463d25aa54b700fc98b1f754d7f8bde60176d34cf4f8b1bfc2c683b521067576fd9b8f7a0371142660ef2ba338906663997bc63541e81259b4b84e9b2 - languageName: node - linkType: hard - -"web3-core-method@npm:1.3.6": - version: 1.3.6 - resolution: "web3-core-method@npm:1.3.6" - dependencies: - "@ethersproject/transactions": "npm:^5.0.0-beta.135" - underscore: "npm:1.12.1" - web3-core-helpers: "npm:1.3.6" - web3-core-promievent: "npm:1.3.6" - web3-core-subscriptions: "npm:1.3.6" - web3-utils: "npm:1.3.6" - checksum: df40d12e5bfd32208b5644e9179d824e31bf5b26a703f513bb38ec88d2a4ca4dd1677adf57cee434c0bb97d3c607dc0a6f2bc2a824dc3bbfd8c45b2d4057e92a - languageName: node - linkType: hard - -"web3-core-method@npm:1.4.0": - version: 1.4.0 - resolution: "web3-core-method@npm:1.4.0" - dependencies: - "@ethersproject/transactions": "npm:^5.0.0-beta.135" - underscore: "npm:1.12.1" - web3-core-helpers: "npm:1.4.0" - web3-core-promievent: "npm:1.4.0" - web3-core-subscriptions: "npm:1.4.0" - web3-utils: "npm:1.4.0" - checksum: 852f1c3167bdb179249e0b96724df711a816d2aab2c97370f666f9e2ce4d4a3c48e218b38ef7018c775b3c9fd322f7becf4067d3e95d9b35b1f94e78e8971ed8 - languageName: node - linkType: hard - -"web3-core-promievent@npm:1.10.0": - version: 1.10.0 - resolution: "web3-core-promievent@npm:1.10.0" - dependencies: - eventemitter3: "npm:4.0.4" - checksum: 68e9f40f78d92ce1ee9808d04a28a89d20ab4dc36af5ba8405f132044cbb01825f76f35249a9599f9568a95d5e7c9e4a09ada6d4dc2e27e0c1b32c9232c8c973 - languageName: node - linkType: hard - -"web3-core-promievent@npm:1.10.4": - version: 1.10.4 - resolution: "web3-core-promievent@npm:1.10.4" - dependencies: - eventemitter3: "npm:4.0.4" - checksum: a792c74aa5c91dc63fb493af04628ecfa08b9e6ceea402dfe53f718b019c41d63a0200bf3045dd23ec3c42b8d7474ac96eb4cb4456060becc551c2cacbd02bb1 - languageName: node - linkType: hard - -"web3-core-promievent@npm:1.2.1": - version: 1.2.1 - resolution: "web3-core-promievent@npm:1.2.1" - dependencies: - any-promise: "npm:1.3.0" - eventemitter3: "npm:3.1.2" - checksum: 233017f59576b8e65f94539f0bc3ac72c8cb850b9cc805e8839052b18a36ad32a4304553a87f50deb8cef5d973a64e4bc4d8f14036acc3ee2d1f849c625a5398 - languageName: node - linkType: hard - -"web3-core-promievent@npm:1.2.11": - version: 1.2.11 - resolution: "web3-core-promievent@npm:1.2.11" - dependencies: - eventemitter3: "npm:4.0.4" - checksum: bd3661978f252ec0033881b32a5d4dec1bfeb7fb0f018d77c077c77b60c0f965215dcbd54c5fcbef739441dd7efbdbd6c9b20e275e05f5b4d2cee762937d95cc - languageName: node - linkType: hard - -"web3-core-promievent@npm:1.2.2": - version: 1.2.2 - resolution: "web3-core-promievent@npm:1.2.2" - dependencies: - any-promise: "npm:1.3.0" - eventemitter3: "npm:3.1.2" - checksum: b65144776ff52b84a964fd9644633fc3e586348a2ce3fe9f878d7884c89cc2b1124a9c4a2206cbd49fa3c2ec7d857f796fa7c325f846c25352431c8dadff8ada - languageName: node - linkType: hard - -"web3-core-promievent@npm:1.3.6": - version: 1.3.6 - resolution: "web3-core-promievent@npm:1.3.6" - dependencies: - eventemitter3: "npm:4.0.4" - checksum: 4e051e999719e0465bdaa6bd9df76534395322e5223eb576bd0d92d552fe6150999001e1d16c7e045a46f32bacf8c054402c379ae02aab7df749f0e212068af9 - languageName: node - linkType: hard - -"web3-core-promievent@npm:1.4.0": - version: 1.4.0 - resolution: "web3-core-promievent@npm:1.4.0" - dependencies: - eventemitter3: "npm:4.0.4" - checksum: 1bf5df6817502f546300c4919e6e9036eefe8430de702a3c168db2a9d7d9ab72356de5810dcbd83f8eba347c0fdb7175e861e3b6072cfb55b2465fe8b039c833 - languageName: node - linkType: hard - -"web3-core-requestmanager@npm:1.10.0": - version: 1.10.0 - resolution: "web3-core-requestmanager@npm:1.10.0" - dependencies: - util: "npm:^0.12.5" - web3-core-helpers: "npm:1.10.0" - web3-providers-http: "npm:1.10.0" - web3-providers-ipc: "npm:1.10.0" - web3-providers-ws: "npm:1.10.0" - checksum: 6be2ef8996987d8781d8b2f4d6dca3312acb3359de67d864733392b8220965466a220a8170dad8d87025d708822f7713bfb0c775f27c889c4f8e3a1974b5076b - languageName: node - linkType: hard - -"web3-core-requestmanager@npm:1.10.4": - version: 1.10.4 - resolution: "web3-core-requestmanager@npm:1.10.4" - dependencies: - util: "npm:^0.12.5" - web3-core-helpers: "npm:1.10.4" - web3-providers-http: "npm:1.10.4" - web3-providers-ipc: "npm:1.10.4" - web3-providers-ws: "npm:1.10.4" - checksum: c26bf616cc156b2198bf634084978d66cf384cf2b174324b6ada071a8c9e9be7855d72c09453308d1a46b50874c18ff9b75193f8736c2b285cdc32209391880c - languageName: node - linkType: hard - -"web3-core-requestmanager@npm:1.2.1": - version: 1.2.1 - resolution: "web3-core-requestmanager@npm:1.2.1" - dependencies: - underscore: "npm:1.9.1" - web3-core-helpers: "npm:1.2.1" - web3-providers-http: "npm:1.2.1" - web3-providers-ipc: "npm:1.2.1" - web3-providers-ws: "npm:1.2.1" - checksum: 72a92efd5466a5a00556b097933c6bcd38a61f14378c5c4d9de8fa7f7fb1a17aa5e5215c0242727ee731e0396cf784962f9a2aacd439c3c4c0c64bfaca487641 - languageName: node - linkType: hard - -"web3-core-requestmanager@npm:1.2.11": - version: 1.2.11 - resolution: "web3-core-requestmanager@npm:1.2.11" - dependencies: - underscore: "npm:1.9.1" - web3-core-helpers: "npm:1.2.11" - web3-providers-http: "npm:1.2.11" - web3-providers-ipc: "npm:1.2.11" - web3-providers-ws: "npm:1.2.11" - checksum: 1d5e437fd1197c2d66ea97f0b142c4e188d5f535b620fe8be2f3bc51a40f572c45ccee0b0998de9b147ec68acdab1111d02c27d0aad9fb32dba161e0fcd58282 - languageName: node - linkType: hard - -"web3-core-requestmanager@npm:1.2.2": - version: 1.2.2 - resolution: "web3-core-requestmanager@npm:1.2.2" - dependencies: - underscore: "npm:1.9.1" - web3-core-helpers: "npm:1.2.2" - web3-providers-http: "npm:1.2.2" - web3-providers-ipc: "npm:1.2.2" - web3-providers-ws: "npm:1.2.2" - checksum: cc785933ebcdeab5838208ad698d9dca81277b0a94224947e5462075b62a43d54b7ff93e0390a18a137a1a713c0d065d4e5beef036b845f0d56ccf7e821a2572 - languageName: node - linkType: hard - -"web3-core-requestmanager@npm:1.3.6": - version: 1.3.6 - resolution: "web3-core-requestmanager@npm:1.3.6" - dependencies: - underscore: "npm:1.12.1" - util: "npm:^0.12.0" - web3-core-helpers: "npm:1.3.6" - web3-providers-http: "npm:1.3.6" - web3-providers-ipc: "npm:1.3.6" - web3-providers-ws: "npm:1.3.6" - checksum: ce8105eedf4a97243ab60b68a888bea9c2082553b68b3b9db58d4186e8dc2eb2f2d040f5bf5ca1533c645d61cd24dac945629da47925190321edcd3c3b8a6b77 - languageName: node - linkType: hard - -"web3-core-requestmanager@npm:1.4.0": - version: 1.4.0 - resolution: "web3-core-requestmanager@npm:1.4.0" - dependencies: - underscore: "npm:1.12.1" - util: "npm:^0.12.0" - web3-core-helpers: "npm:1.4.0" - web3-providers-http: "npm:1.4.0" - web3-providers-ipc: "npm:1.4.0" - web3-providers-ws: "npm:1.4.0" - checksum: 429032b6c99d899fa5eea9231efe2068d6ac11f43c8d863010816ad62b3ea89ad54dee9f25f27ba668b34644b41915a4faddfe74724d6da6ba042b911be103fe - languageName: node - linkType: hard - -"web3-core-subscriptions@npm:1.10.0": - version: 1.10.0 - resolution: "web3-core-subscriptions@npm:1.10.0" - dependencies: - eventemitter3: "npm:4.0.4" - web3-core-helpers: "npm:1.10.0" - checksum: 009b85acfa19154bc73f48a55ac80c527cd2815556ab70f8fffc86e007e82b8b702e8ad6512c99fa209e69a7e76fcda5fd326132a553cea3991e1f09225b25a0 - languageName: node - linkType: hard - -"web3-core-subscriptions@npm:1.10.4": - version: 1.10.4 - resolution: "web3-core-subscriptions@npm:1.10.4" - dependencies: - eventemitter3: "npm:4.0.4" - web3-core-helpers: "npm:1.10.4" - checksum: b1652988c0925ab1d5c27e67a816ec6bcb32f37f59c7314e1f02552233fbc486a0de579aeb660d77d82452b63e9feaa98317ec7897cd7aeb140595c8e176d0eb - languageName: node - linkType: hard - -"web3-core-subscriptions@npm:1.2.1": - version: 1.2.1 - resolution: "web3-core-subscriptions@npm:1.2.1" - dependencies: - eventemitter3: "npm:3.1.2" - underscore: "npm:1.9.1" - web3-core-helpers: "npm:1.2.1" - checksum: db7cf95bd79989903ae3dc674b44a98d153f6ff9385179be3b7cd97fc646fe4dad4bb96bc9f97e04114ae9ac98f74e6bc54421c2046d2460cb574ed96c042f83 - languageName: node - linkType: hard - -"web3-core-subscriptions@npm:1.2.11": - version: 1.2.11 - resolution: "web3-core-subscriptions@npm:1.2.11" - dependencies: - eventemitter3: "npm:4.0.4" - underscore: "npm:1.9.1" - web3-core-helpers: "npm:1.2.11" - checksum: 0c74ff7e1a74c31eaa76e4aff36a088c0457db6cce05b5dc49adc32a7feba209c97cdab9e9789f98c0605629358369c28657e7c4b72eced819607dd0aa614991 - languageName: node - linkType: hard - -"web3-core-subscriptions@npm:1.2.2": - version: 1.2.2 - resolution: "web3-core-subscriptions@npm:1.2.2" - dependencies: - eventemitter3: "npm:3.1.2" - underscore: "npm:1.9.1" - web3-core-helpers: "npm:1.2.2" - checksum: b91d361f8c8de6fc2dfbfb0beac747089f276ef478b3d7baef3b9086048aaddbb59be7311b537319b101e4f0038e5740aa48e40bb0d75e8f0f823444ed909488 - languageName: node - linkType: hard - -"web3-core-subscriptions@npm:1.3.6": - version: 1.3.6 - resolution: "web3-core-subscriptions@npm:1.3.6" - dependencies: - eventemitter3: "npm:4.0.4" - underscore: "npm:1.12.1" - web3-core-helpers: "npm:1.3.6" - checksum: a74c9e42369e2e66af34c2e7f7c3032282a9605ace1b561bc308fc2745d3a9a2fc9fac4da0f6642be4878241633d24957837123017140aa2bd0dceb5d5779290 - languageName: node - linkType: hard - -"web3-core-subscriptions@npm:1.4.0": - version: 1.4.0 - resolution: "web3-core-subscriptions@npm:1.4.0" - dependencies: - eventemitter3: "npm:4.0.4" - underscore: "npm:1.12.1" - web3-core-helpers: "npm:1.4.0" - checksum: 873fe09c33ad4518d4b9c9e5d84c9283f20b205617816011c1df6ec29039f283dcfb222b6f5591f5f74cc2d928d87d2a3e027379c21c07c0e51e66230eefdd78 - languageName: node - linkType: hard - -"web3-core@npm:1.10.0": - version: 1.10.0 - resolution: "web3-core@npm:1.10.0" - dependencies: - "@types/bn.js": "npm:^5.1.1" - "@types/node": "npm:^12.12.6" - bignumber.js: "npm:^9.0.0" - web3-core-helpers: "npm:1.10.0" - web3-core-method: "npm:1.10.0" - web3-core-requestmanager: "npm:1.10.0" - web3-utils: "npm:1.10.0" - checksum: dcef60d5c51a1a6c5f1d8b82c22a1358b6d751d117362792f468cd0918814ede2614d972fb7b10e39bb65b9e9d8ed7a54996cd8f1db84ddf04cf328ce0259d76 - languageName: node - linkType: hard - -"web3-core@npm:1.10.4, web3-core@npm:^1.10.3, web3-core@npm:^1.8.1": - version: 1.10.4 - resolution: "web3-core@npm:1.10.4" - dependencies: - "@types/bn.js": "npm:^5.1.1" - "@types/node": "npm:^12.12.6" - bignumber.js: "npm:^9.0.0" - web3-core-helpers: "npm:1.10.4" - web3-core-method: "npm:1.10.4" - web3-core-requestmanager: "npm:1.10.4" - web3-utils: "npm:1.10.4" - checksum: 138c5abff27a48d16584fdbe56b940f9efe7cd2463d768f42c5fcdfc97d0dc4fc41e09ff1ffb8c8ff79b22a69e9efbf5af27c4b6a0d888c351202f03a8b01b8e - languageName: node - linkType: hard - -"web3-core@npm:1.2.1": - version: 1.2.1 - resolution: "web3-core@npm:1.2.1" - dependencies: - web3-core-helpers: "npm:1.2.1" - web3-core-method: "npm:1.2.1" - web3-core-requestmanager: "npm:1.2.1" - web3-utils: "npm:1.2.1" - checksum: 49c429d95b07c6b1fe56551a9cc50599cbcbfa9d1195947ae7a2dcedf18a5de8d01f45e6dcb73d261f5b6fa2218328afc5ca02e37fd48064088767f49b0a7b02 - languageName: node - linkType: hard - -"web3-core@npm:1.2.11": - version: 1.2.11 - resolution: "web3-core@npm:1.2.11" - dependencies: - "@types/bn.js": "npm:^4.11.5" - "@types/node": "npm:^12.12.6" - bignumber.js: "npm:^9.0.0" - web3-core-helpers: "npm:1.2.11" - web3-core-method: "npm:1.2.11" - web3-core-requestmanager: "npm:1.2.11" - web3-utils: "npm:1.2.11" - checksum: b2188444288bd5df6ab99b3fc2e623fefa3fcacc6b64c4400ef02b9da622982abf375b4e3726e22ff9b9627ae52dd13288647c1277955aa7d6c49e7c369faab3 - languageName: node - linkType: hard - -"web3-core@npm:1.2.2": - version: 1.2.2 - resolution: "web3-core@npm:1.2.2" - dependencies: - "@types/bn.js": "npm:^4.11.4" - "@types/node": "npm:^12.6.1" - web3-core-helpers: "npm:1.2.2" - web3-core-method: "npm:1.2.2" - web3-core-requestmanager: "npm:1.2.2" - web3-utils: "npm:1.2.2" - checksum: cf48a852a2acb3eb23b24e6bc37253e6f8a71931ae5723144e7e81d3f3947d849cf38cfcd3b73c67a63317e370b4b524504a0d0ec772e1ff0aa9b5279def11d8 - languageName: node - linkType: hard - -"web3-core@npm:1.3.6": - version: 1.3.6 - resolution: "web3-core@npm:1.3.6" - dependencies: - "@types/bn.js": "npm:^4.11.5" - "@types/node": "npm:^12.12.6" - bignumber.js: "npm:^9.0.0" - web3-core-helpers: "npm:1.3.6" - web3-core-method: "npm:1.3.6" - web3-core-requestmanager: "npm:1.3.6" - web3-utils: "npm:1.3.6" - checksum: dc0955b79faaf25ff0fc9e09e961e1be4efafcbddda60223f96573d25fd9f848087570b7cdc8c28e28da83c0390ad8fee1a4addfcb7110c61e7fdec9d2786b30 - languageName: node - linkType: hard - -"web3-core@npm:1.4.0": - version: 1.4.0 - resolution: "web3-core@npm:1.4.0" - dependencies: - "@types/bn.js": "npm:^4.11.5" - "@types/node": "npm:^12.12.6" - bignumber.js: "npm:^9.0.0" - web3-core-helpers: "npm:1.4.0" - web3-core-method: "npm:1.4.0" - web3-core-requestmanager: "npm:1.4.0" - web3-utils: "npm:1.4.0" - checksum: f383e1258c40d80a517eaa86e849ad87996efa1afc91c54aa531ea8cbf821a5a8d5a158954430b861b36eec47fc516be4436b132549826c7a91c13d7f268b526 - languageName: node - linkType: hard - -"web3-errors@npm:^1.1.4": - version: 1.1.4 - resolution: "web3-errors@npm:1.1.4" - dependencies: - web3-types: "npm:^1.3.1" - checksum: b0773a7df2338efc624963e55719894386303703ce393e5ce677fef0c7b4a5293556530386577010f1086a9fa7534346b83c4fc014e79c1107950e20a047b2f2 - languageName: node - linkType: hard - -"web3-eth-abi@npm:1.10.0": - version: 1.10.0 - resolution: "web3-eth-abi@npm:1.10.0" - dependencies: - "@ethersproject/abi": "npm:^5.6.3" - web3-utils: "npm:1.10.0" - checksum: f0839e797d0ad1271ed94650b9850df7630110b7ebc68028f7d7d18906160d90155f56dddaa6c5571b63cafd71ce9b0f84cf35d9e1b50f85c3c93a2469260a98 - languageName: node - linkType: hard - -"web3-eth-abi@npm:1.10.4": - version: 1.10.4 - resolution: "web3-eth-abi@npm:1.10.4" - dependencies: - "@ethersproject/abi": "npm:^5.6.3" - web3-utils: "npm:1.10.4" - checksum: c601e45303c607a18f6f8e793aa9c5432fcaf83a34732dc9667b7e2eeb53a4cb8c2dec6fff9f33061fcc5130ec6c8f656f3c3ef962d7ff2af3247f828cffe559 - languageName: node - linkType: hard - -"web3-eth-abi@npm:1.2.1": - version: 1.2.1 - resolution: "web3-eth-abi@npm:1.2.1" - dependencies: - ethers: "npm:4.0.0-beta.3" - underscore: "npm:1.9.1" - web3-utils: "npm:1.2.1" - checksum: 974dd1412cd6df623f62aac5b1c1060ba1f2234ac7d904b9854f680476b45968c11ca574f6937de5213f0ec6045fc098a175ed0fbc1a96893688057326678b14 - languageName: node - linkType: hard - -"web3-eth-abi@npm:1.2.11": - version: 1.2.11 - resolution: "web3-eth-abi@npm:1.2.11" - dependencies: - "@ethersproject/abi": "npm:5.0.0-beta.153" - underscore: "npm:1.9.1" - web3-utils: "npm:1.2.11" - checksum: a5e50212f3952cdc5b037ca211f2b2d3220043b25fb223066199b35ec75e5a19cc887992525af311616f2e8c6debe295ac46e45f7c0c6b7f5971439dc218a80c - languageName: node - linkType: hard - -"web3-eth-abi@npm:1.2.2": - version: 1.2.2 - resolution: "web3-eth-abi@npm:1.2.2" - dependencies: - ethers: "npm:4.0.0-beta.3" - underscore: "npm:1.9.1" - web3-utils: "npm:1.2.2" - checksum: 02693f15fd37347f77b8a2a6d77aad9c91f3b8ec1754fe3a799187441faec1315fc6990b65cab961430b4b4fc7ee3d3c4dd774981945be1f38690b80890c7eca - languageName: node - linkType: hard - -"web3-eth-abi@npm:1.3.6": - version: 1.3.6 - resolution: "web3-eth-abi@npm:1.3.6" - dependencies: - "@ethersproject/abi": "npm:5.0.7" - underscore: "npm:1.12.1" - web3-utils: "npm:1.3.6" - checksum: 93f772df0cfe7bf80bcd0761686eef6fdff75e5db0a71f4fa73cecea801c648c2d8038b0f4f13348ea039a623fed59134bc1b1ee014bee582e3dadc3e2b186b0 - languageName: node - linkType: hard - -"web3-eth-abi@npm:1.4.0": - version: 1.4.0 - resolution: "web3-eth-abi@npm:1.4.0" - dependencies: - "@ethersproject/abi": "npm:5.0.7" - underscore: "npm:1.12.1" - web3-utils: "npm:1.4.0" - checksum: 907df9adda4f17864a1ffabee7a0f284d2b9b0a9f3ce977d4a51cff7de39f17336e98dc9e863ee5ca04bf8085636af9fcdf0d1880b8e2daf526ad028b3bd99d5 - languageName: node - linkType: hard - -"web3-eth-abi@npm:1.7.0": - version: 1.7.0 - resolution: "web3-eth-abi@npm:1.7.0" - dependencies: - "@ethersproject/abi": "npm:5.0.7" - web3-utils: "npm:1.7.0" - checksum: 02aab1fe25fcdbb66b82297e4957605b36214fa66cebaf2e31207c4ea62b43cf3ffa15e9b8e900d3ff74c84cf2455eaaef3d516b2665c57264acead1fb099a4b - languageName: node - linkType: hard - -"web3-eth-accounts@npm:1.10.0": - version: 1.10.0 - resolution: "web3-eth-accounts@npm:1.10.0" - dependencies: - "@ethereumjs/common": "npm:2.5.0" - "@ethereumjs/tx": "npm:3.3.2" - eth-lib: "npm:0.2.8" - ethereumjs-util: "npm:^7.1.5" - scrypt-js: "npm:^3.0.1" - uuid: "npm:^9.0.0" - web3-core: "npm:1.10.0" - web3-core-helpers: "npm:1.10.0" - web3-core-method: "npm:1.10.0" - web3-utils: "npm:1.10.0" - checksum: f97f81292f950f2f98ff01136f49b65f4f2468551cfce87169b4820b4f92afec5c3d5a1223c6aba6a46d872c854f56a3911fe36f7f902c0ac1fe43c17125802d - languageName: node - linkType: hard - -"web3-eth-accounts@npm:1.10.4": - version: 1.10.4 - resolution: "web3-eth-accounts@npm:1.10.4" - dependencies: - "@ethereumjs/common": "npm:2.6.5" - "@ethereumjs/tx": "npm:3.5.2" - "@ethereumjs/util": "npm:^8.1.0" - eth-lib: "npm:0.2.8" - scrypt-js: "npm:^3.0.1" - uuid: "npm:^9.0.0" - web3-core: "npm:1.10.4" - web3-core-helpers: "npm:1.10.4" - web3-core-method: "npm:1.10.4" - web3-utils: "npm:1.10.4" - checksum: 994c9f8b3fd8c5fc72e1f2ca6770ad61a2618de2ddc38a898a7d956d22cbdedac7cc683319252a7c9a26c06f337942bf5af84a4ff4001e784e90d061c2733fc2 - languageName: node - linkType: hard - -"web3-eth-accounts@npm:1.2.1": - version: 1.2.1 - resolution: "web3-eth-accounts@npm:1.2.1" - dependencies: - any-promise: "npm:1.3.0" - crypto-browserify: "npm:3.12.0" - eth-lib: "npm:0.2.7" - scryptsy: "npm:2.1.0" - semver: "npm:6.2.0" - underscore: "npm:1.9.1" - uuid: "npm:3.3.2" - web3-core: "npm:1.2.1" - web3-core-helpers: "npm:1.2.1" - web3-core-method: "npm:1.2.1" - web3-utils: "npm:1.2.1" - checksum: d3ab495bda0d90a6f21a93cd1d7a5c7d6acdef1bcd42d3b627c57438d659f46a064bdd70177189b9eae1c738796983fb7a93e7ab2e30131f42c8a765517a7b7d - languageName: node - linkType: hard - -"web3-eth-accounts@npm:1.2.11": - version: 1.2.11 - resolution: "web3-eth-accounts@npm:1.2.11" - dependencies: - crypto-browserify: "npm:3.12.0" - eth-lib: "npm:0.2.8" - ethereumjs-common: "npm:^1.3.2" - ethereumjs-tx: "npm:^2.1.1" - scrypt-js: "npm:^3.0.1" - underscore: "npm:1.9.1" - uuid: "npm:3.3.2" - web3-core: "npm:1.2.11" - web3-core-helpers: "npm:1.2.11" - web3-core-method: "npm:1.2.11" - web3-utils: "npm:1.2.11" - checksum: f22f8780f681c9630028b69f74ba02d42e35fa4929977d027c5145e130475a5773e8aca26b960b7cc6958481e74374c35de7ea453da9e82ba59fc4beac57bcf0 - languageName: node - linkType: hard - -"web3-eth-accounts@npm:1.2.2": - version: 1.2.2 - resolution: "web3-eth-accounts@npm:1.2.2" - dependencies: - any-promise: "npm:1.3.0" - crypto-browserify: "npm:3.12.0" - eth-lib: "npm:0.2.7" - ethereumjs-common: "npm:^1.3.2" - ethereumjs-tx: "npm:^2.1.1" - scrypt-shim: "github:web3-js/scrypt-shim" - underscore: "npm:1.9.1" - uuid: "npm:3.3.2" - web3-core: "npm:1.2.2" - web3-core-helpers: "npm:1.2.2" - web3-core-method: "npm:1.2.2" - web3-utils: "npm:1.2.2" - checksum: 430277df55b9b4afd31a3a65c2e0ebfd45dca70aef999f2aa094b9725016b7d13f1c640eb7bac24b4833dca310ca57fd4a1a93d63695e608c1b5a9abe1a138ad - languageName: node - linkType: hard - -"web3-eth-accounts@npm:1.3.6": - version: 1.3.6 - resolution: "web3-eth-accounts@npm:1.3.6" - dependencies: - crypto-browserify: "npm:3.12.0" - eth-lib: "npm:0.2.8" - ethereumjs-common: "npm:^1.3.2" - ethereumjs-tx: "npm:^2.1.1" - scrypt-js: "npm:^3.0.1" - underscore: "npm:1.12.1" - uuid: "npm:3.3.2" - web3-core: "npm:1.3.6" - web3-core-helpers: "npm:1.3.6" - web3-core-method: "npm:1.3.6" - web3-utils: "npm:1.3.6" - checksum: 36808875baac2bb28304175b227d8281441cc5f672d4d9241ab388e1db782fa0ed0a4b77d4c0b3bf5eab92f245395bda5837a7432c7c333160c337888007172a - languageName: node - linkType: hard - -"web3-eth-accounts@npm:1.4.0": - version: 1.4.0 - resolution: "web3-eth-accounts@npm:1.4.0" - dependencies: - "@ethereumjs/common": "npm:^2.3.0" - "@ethereumjs/tx": "npm:^3.2.1" - crypto-browserify: "npm:3.12.0" - eth-lib: "npm:0.2.8" - ethereumjs-util: "npm:^7.0.10" - scrypt-js: "npm:^3.0.1" - underscore: "npm:1.12.1" - uuid: "npm:3.3.2" - web3-core: "npm:1.4.0" - web3-core-helpers: "npm:1.4.0" - web3-core-method: "npm:1.4.0" - web3-utils: "npm:1.4.0" - checksum: ef361a706c3996db31f94f52d7a18e2b0259d6363efbd8b75d1c8f652f6440e88d16a459d8129222d29664b81746a0437920b587dd72b285234f00d262912e38 - languageName: node - linkType: hard - -"web3-eth-contract@npm:1.10.0": - version: 1.10.0 - resolution: "web3-eth-contract@npm:1.10.0" - dependencies: - "@types/bn.js": "npm:^5.1.1" - web3-core: "npm:1.10.0" - web3-core-helpers: "npm:1.10.0" - web3-core-method: "npm:1.10.0" - web3-core-promievent: "npm:1.10.0" - web3-core-subscriptions: "npm:1.10.0" - web3-eth-abi: "npm:1.10.0" - web3-utils: "npm:1.10.0" - checksum: eadb91ec20875567732a670b6dcc74fb8192c3b0cdd1bb3055133c74444ec46e4dbfedf3533afbb67996bad23b558b90fbd95c7bb79203f33f35e9369b78cb4d - languageName: node - linkType: hard - -"web3-eth-contract@npm:1.10.4": - version: 1.10.4 - resolution: "web3-eth-contract@npm:1.10.4" - dependencies: - "@types/bn.js": "npm:^5.1.1" - web3-core: "npm:1.10.4" - web3-core-helpers: "npm:1.10.4" - web3-core-method: "npm:1.10.4" - web3-core-promievent: "npm:1.10.4" - web3-core-subscriptions: "npm:1.10.4" - web3-eth-abi: "npm:1.10.4" - web3-utils: "npm:1.10.4" - checksum: 8b0aa58c268b4be94a2ee14ff7fbdd9a2a20b912e580a69cbbbf57493331f60b96d88108ad4deabac3c3810d94483c449b1e5a06b414bc7b1ef326c682603836 - languageName: node - linkType: hard - -"web3-eth-contract@npm:1.2.1": - version: 1.2.1 - resolution: "web3-eth-contract@npm:1.2.1" - dependencies: - underscore: "npm:1.9.1" - web3-core: "npm:1.2.1" - web3-core-helpers: "npm:1.2.1" - web3-core-method: "npm:1.2.1" - web3-core-promievent: "npm:1.2.1" - web3-core-subscriptions: "npm:1.2.1" - web3-eth-abi: "npm:1.2.1" - web3-utils: "npm:1.2.1" - checksum: 98931925307f85f1cc20767e287e8272f222f95d55b13d027a3f11268cd956e2b171b3d35367767d154661d5881a859ee90da12b4a21b60dc6740c2c839f2022 - languageName: node - linkType: hard - -"web3-eth-contract@npm:1.2.11": - version: 1.2.11 - resolution: "web3-eth-contract@npm:1.2.11" - dependencies: - "@types/bn.js": "npm:^4.11.5" - underscore: "npm:1.9.1" - web3-core: "npm:1.2.11" - web3-core-helpers: "npm:1.2.11" - web3-core-method: "npm:1.2.11" - web3-core-promievent: "npm:1.2.11" - web3-core-subscriptions: "npm:1.2.11" - web3-eth-abi: "npm:1.2.11" - web3-utils: "npm:1.2.11" - checksum: 37a71c9738a9e56e77c3fa9d043f89f96d6645bf1203a0239202505bc652576d13657cf24de219650844f586bce73b0bdc72532d835a2fd6d5133b1c178a0b1a - languageName: node - linkType: hard - -"web3-eth-contract@npm:1.2.2": - version: 1.2.2 - resolution: "web3-eth-contract@npm:1.2.2" - dependencies: - "@types/bn.js": "npm:^4.11.4" - underscore: "npm:1.9.1" - web3-core: "npm:1.2.2" - web3-core-helpers: "npm:1.2.2" - web3-core-method: "npm:1.2.2" - web3-core-promievent: "npm:1.2.2" - web3-core-subscriptions: "npm:1.2.2" - web3-eth-abi: "npm:1.2.2" - web3-utils: "npm:1.2.2" - checksum: e435e5f8b2f083dcc279526ef3f5c02a8c93648d1932d5557ff35209208fe46e8b91fad2b8e1e41e5765b17218388dea672d6214a9c5d46f2508c222345ce85c - languageName: node - linkType: hard - -"web3-eth-contract@npm:1.3.6": - version: 1.3.6 - resolution: "web3-eth-contract@npm:1.3.6" - dependencies: - "@types/bn.js": "npm:^4.11.5" - underscore: "npm:1.12.1" - web3-core: "npm:1.3.6" - web3-core-helpers: "npm:1.3.6" - web3-core-method: "npm:1.3.6" - web3-core-promievent: "npm:1.3.6" - web3-core-subscriptions: "npm:1.3.6" - web3-eth-abi: "npm:1.3.6" - web3-utils: "npm:1.3.6" - checksum: 94d2f314a5afb3685dad62400a49af3f93fe20073032c2fc8e871eb71ac4653430596278b043cdc6edcc146d5a80d543b4313d3fbff2e28ddfda0fbd0df8fc5d - languageName: node - linkType: hard - -"web3-eth-contract@npm:1.4.0": - version: 1.4.0 - resolution: "web3-eth-contract@npm:1.4.0" - dependencies: - "@types/bn.js": "npm:^4.11.5" - underscore: "npm:1.12.1" - web3-core: "npm:1.4.0" - web3-core-helpers: "npm:1.4.0" - web3-core-method: "npm:1.4.0" - web3-core-promievent: "npm:1.4.0" - web3-core-subscriptions: "npm:1.4.0" - web3-eth-abi: "npm:1.4.0" - web3-utils: "npm:1.4.0" - checksum: 82be3dd59406868beee8c866a4a5540b818608d6d9bb97d7bc076d777906bdf6bdb1ad05e86f8efc45c578e7ce717ed97446e21909a5ec4d6b208074cc4fea38 - languageName: node - linkType: hard - -"web3-eth-ens@npm:1.10.0": - version: 1.10.0 - resolution: "web3-eth-ens@npm:1.10.0" - dependencies: - content-hash: "npm:^2.5.2" - eth-ens-namehash: "npm:2.0.8" - web3-core: "npm:1.10.0" - web3-core-helpers: "npm:1.10.0" - web3-core-promievent: "npm:1.10.0" - web3-eth-abi: "npm:1.10.0" - web3-eth-contract: "npm:1.10.0" - web3-utils: "npm:1.10.0" - checksum: 56a53f1e330caecbcafd7c2fbad8a3fb84354c40df86236d7e8953a532e7b970cb6ac70ef995a1c6d9f0af227f902cb90a066d933db20d95b565e000bf7f6b4f - languageName: node - linkType: hard - -"web3-eth-ens@npm:1.10.4": - version: 1.10.4 - resolution: "web3-eth-ens@npm:1.10.4" - dependencies: - content-hash: "npm:^2.5.2" - eth-ens-namehash: "npm:2.0.8" - web3-core: "npm:1.10.4" - web3-core-helpers: "npm:1.10.4" - web3-core-promievent: "npm:1.10.4" - web3-eth-abi: "npm:1.10.4" - web3-eth-contract: "npm:1.10.4" - web3-utils: "npm:1.10.4" - checksum: 1296b523a79bd46dc2485d21888454dbca7b7005af5156e58f2515e09f8b30973697a8032429fdaab01d2f8e3e605716789875dadc87cadd3ec9a2ce5d182742 - languageName: node - linkType: hard - -"web3-eth-ens@npm:1.2.1": - version: 1.2.1 - resolution: "web3-eth-ens@npm:1.2.1" - dependencies: - eth-ens-namehash: "npm:2.0.8" - underscore: "npm:1.9.1" - web3-core: "npm:1.2.1" - web3-core-helpers: "npm:1.2.1" - web3-core-promievent: "npm:1.2.1" - web3-eth-abi: "npm:1.2.1" - web3-eth-contract: "npm:1.2.1" - web3-utils: "npm:1.2.1" - checksum: 91d89adc17ca0bacd05cac3f42193a43f84041c013aabb8e4856f72d4f5a7c4b160fce4f9f039ad0754329002c10102d59a958a347ca07562f5583d4d464056a - languageName: node - linkType: hard - -"web3-eth-ens@npm:1.2.11": - version: 1.2.11 - resolution: "web3-eth-ens@npm:1.2.11" - dependencies: - content-hash: "npm:^2.5.2" - eth-ens-namehash: "npm:2.0.8" - underscore: "npm:1.9.1" - web3-core: "npm:1.2.11" - web3-core-helpers: "npm:1.2.11" - web3-core-promievent: "npm:1.2.11" - web3-eth-abi: "npm:1.2.11" - web3-eth-contract: "npm:1.2.11" - web3-utils: "npm:1.2.11" - checksum: fbb77527ce07d0482c7815a6bd4603b0fdcd2945fd4bfc3d3fadcf0739faf144c205a7c66a7ec9f52d31d4c0e65b902341973d63180ff74f94ed706bce1a8bba - languageName: node - linkType: hard - -"web3-eth-ens@npm:1.2.2": - version: 1.2.2 - resolution: "web3-eth-ens@npm:1.2.2" - dependencies: - eth-ens-namehash: "npm:2.0.8" - underscore: "npm:1.9.1" - web3-core: "npm:1.2.2" - web3-core-helpers: "npm:1.2.2" - web3-core-promievent: "npm:1.2.2" - web3-eth-abi: "npm:1.2.2" - web3-eth-contract: "npm:1.2.2" - web3-utils: "npm:1.2.2" - checksum: f23cdaff3dbd7f972eb626abb31672aa17c864d1c0a10ef20f2b1739087559b63151786b45cc503ac81bbc3e50cda3e29a80341dafbac2f501e3d09003adb559 - languageName: node - linkType: hard - -"web3-eth-ens@npm:1.3.6": - version: 1.3.6 - resolution: "web3-eth-ens@npm:1.3.6" - dependencies: - content-hash: "npm:^2.5.2" - eth-ens-namehash: "npm:2.0.8" - underscore: "npm:1.12.1" - web3-core: "npm:1.3.6" - web3-core-helpers: "npm:1.3.6" - web3-core-promievent: "npm:1.3.6" - web3-eth-abi: "npm:1.3.6" - web3-eth-contract: "npm:1.3.6" - web3-utils: "npm:1.3.6" - checksum: a640122c3235887203b0643a8de1dbcbffc67cc827dc59846f280614ce288b072e943c1a990e8b65cfb8381a76a7462d78e2111d5c0f3b774e51a85398f57169 - languageName: node - linkType: hard - -"web3-eth-ens@npm:1.4.0": - version: 1.4.0 - resolution: "web3-eth-ens@npm:1.4.0" - dependencies: - content-hash: "npm:^2.5.2" - eth-ens-namehash: "npm:2.0.8" - underscore: "npm:1.12.1" - web3-core: "npm:1.4.0" - web3-core-helpers: "npm:1.4.0" - web3-core-promievent: "npm:1.4.0" - web3-eth-abi: "npm:1.4.0" - web3-eth-contract: "npm:1.4.0" - web3-utils: "npm:1.4.0" - checksum: 7da92db30a54d96e880e63183514aaa6552374d5117e7320b14b532a0e7d5fff65a1a8dfabf7f8072a16a4c3dbe4f68f9c9f9635299aeb3687fa61427397442b - languageName: node - linkType: hard - -"web3-eth-iban@npm:1.10.0": - version: 1.10.0 - resolution: "web3-eth-iban@npm:1.10.0" - dependencies: - bn.js: "npm:^5.2.1" - web3-utils: "npm:1.10.0" - checksum: 02e0a1b071b7cda1c03d2940d93f585724b8348d5d65a949f174f8bd48aeff8d6cfc700123150bf39265122667c46e2542e671c54e4bacd53f9895d31109a4c7 - languageName: node - linkType: hard - -"web3-eth-iban@npm:1.10.4": - version: 1.10.4 - resolution: "web3-eth-iban@npm:1.10.4" - dependencies: - bn.js: "npm:^5.2.1" - web3-utils: "npm:1.10.4" - checksum: b5e33aaf3d41608ed59ea98c703271eefcd30aea15163cda4bc8713f9716eb40b816e8047022ebf71391250983acfe58e65551461109a53e266f4b824c4a0678 - languageName: node - linkType: hard - -"web3-eth-iban@npm:1.2.1": - version: 1.2.1 - resolution: "web3-eth-iban@npm:1.2.1" - dependencies: - bn.js: "npm:4.11.8" - web3-utils: "npm:1.2.1" - checksum: 4b5f5e210473d899b3a31eb5894c2c145c43c70c08a9b9efc467477284f1656f335aac93450846d3c1007f7c51eb72c3e8e024475747c86b3fce552ab532587f - languageName: node - linkType: hard - -"web3-eth-iban@npm:1.2.11": - version: 1.2.11 - resolution: "web3-eth-iban@npm:1.2.11" - dependencies: - bn.js: "npm:^4.11.9" - web3-utils: "npm:1.2.11" - checksum: 88d863d4c5d7a5e74dfb838ff54cf3830b2cab4dddeb2639a8d3c4894e364d0388175ea8b977164b4702d8748ade0e49db390308d4239082252cef845a983828 - languageName: node - linkType: hard - -"web3-eth-iban@npm:1.2.2": - version: 1.2.2 - resolution: "web3-eth-iban@npm:1.2.2" - dependencies: - bn.js: "npm:4.11.8" - web3-utils: "npm:1.2.2" - checksum: 68e33bf4df968fa16fba6c4bb828ad0ccd76875f46df0d76b43c8df0a0a8a936fa954f9240d5560c9edcc3f918deda2536559a3e09fe6abb949b1741b78569ff - languageName: node - linkType: hard - -"web3-eth-iban@npm:1.3.6": - version: 1.3.6 - resolution: "web3-eth-iban@npm:1.3.6" - dependencies: - bn.js: "npm:^4.11.9" - web3-utils: "npm:1.3.6" - checksum: 8e2e2262bc37520960b53672b8e5125cf2832fb644900918b18b28a50ef3ef7baf326ce3a05a36e3811616dee2ffaef88cd78d649c8c0d3d304e1b90a75de55f +"vm-browserify@npm:^1.0.1, vm-browserify@npm:^1.1.2": + version: 1.1.2 + resolution: "vm-browserify@npm:1.1.2" + checksum: ad5b17c9f7a9d9f1ed0e24c897782ab7a587c1fd40f370152482e1af154c7cf0b0bacc45c5ae76a44289881e083ae4ae127808fdff864aa9b562192aae8b5c3b languageName: node linkType: hard -"web3-eth-iban@npm:1.4.0": - version: 1.4.0 - resolution: "web3-eth-iban@npm:1.4.0" +"vscode-json-languageservice@npm:^4.1.6": + version: 4.2.1 + resolution: "vscode-json-languageservice@npm:4.2.1" dependencies: - bn.js: "npm:^4.11.9" - web3-utils: "npm:1.4.0" - checksum: af825dc7c8a871fca145747b77e497dc78f9d28884127cd9cf071b8df61f4504578dfee2ae50c027225e09970194eda5e3d9fa7d1232e931847d30024d1e4218 + jsonc-parser: "npm:^3.0.0" + vscode-languageserver-textdocument: "npm:^1.0.3" + vscode-languageserver-types: "npm:^3.16.0" + vscode-nls: "npm:^5.0.0" + vscode-uri: "npm:^3.0.3" + checksum: ebd3dd037cfb5ede73eaf5c634463aa2609014d544b6b97505d6e062e9bc8cb80f049d52939354a27acd7d26f48af3d95e6546598d60b1a384e6877f1eca7d0c languageName: node linkType: hard -"web3-eth-personal@npm:1.10.0": - version: 1.10.0 - resolution: "web3-eth-personal@npm:1.10.0" - dependencies: - "@types/node": "npm:^12.12.6" - web3-core: "npm:1.10.0" - web3-core-helpers: "npm:1.10.0" - web3-core-method: "npm:1.10.0" - web3-net: "npm:1.10.0" - web3-utils: "npm:1.10.0" - checksum: abf9f2fbc4f7723be01f778a60511eb3303172f60f66f7d9cf0ce5bca6f0278ec27e3094bb2ef043f2f4025e44ccd44dba793b3e26294dfb2f38cfee27888daa +"vscode-languageserver-textdocument@npm:^1.0.3": + version: 1.0.11 + resolution: "vscode-languageserver-textdocument@npm:1.0.11" + checksum: 6096d2a85570e819e01ff406de7c88c48211e6874c6fc71df92193aa8b5aadf40591e44f033d634a95d04975d7aad29049d3eccab617ca41c189ae325aadb913 languageName: node linkType: hard -"web3-eth-personal@npm:1.10.4": - version: 1.10.4 - resolution: "web3-eth-personal@npm:1.10.4" - dependencies: - "@types/node": "npm:^12.12.6" - web3-core: "npm:1.10.4" - web3-core-helpers: "npm:1.10.4" - web3-core-method: "npm:1.10.4" - web3-net: "npm:1.10.4" - web3-utils: "npm:1.10.4" - checksum: 1b0818aa3dc9d58ece45af85ea57ddd3fbc3cd2d8b325e18f2071236ab9e9ba2e878d3f77fddfb9ab1a37ee441209f07302638b13c86bc372b2e22989dc1d903 +"vscode-languageserver-types@npm:^3.16.0": + version: 3.17.5 + resolution: "vscode-languageserver-types@npm:3.17.5" + checksum: 900d0b81df5bef8d90933e75be089142f6989cc70fdb2d5a3a5f11fa20feb396aaea23ccffc8fbcc83a2f0e1b13c6ee48ff8151f236cbd6e61a4f856efac1a58 languageName: node linkType: hard -"web3-eth-personal@npm:1.2.1": - version: 1.2.1 - resolution: "web3-eth-personal@npm:1.2.1" - dependencies: - web3-core: "npm:1.2.1" - web3-core-helpers: "npm:1.2.1" - web3-core-method: "npm:1.2.1" - web3-net: "npm:1.2.1" - web3-utils: "npm:1.2.1" - checksum: 22352204a7399adece6586c66661f8dbedfdad68b9a97e2771e6daac5f6e7c9d40c38266973b0ce917a85c00b5e7e48047aaeb161d7ea6d80566f45965e83fb8 +"vscode-nls@npm:^5.0.0": + version: 5.2.0 + resolution: "vscode-nls@npm:5.2.0" + checksum: 7dd0d07e5f1fd7a7d1b35eabea20322e2efef4e93cebe6de45ee015ea0152ec1c354fd763d3987aed1db261f466ff31631d6acd679ac67af608fb49b9868e1ab languageName: node linkType: hard -"web3-eth-personal@npm:1.2.11": - version: 1.2.11 - resolution: "web3-eth-personal@npm:1.2.11" - dependencies: - "@types/node": "npm:^12.12.6" - web3-core: "npm:1.2.11" - web3-core-helpers: "npm:1.2.11" - web3-core-method: "npm:1.2.11" - web3-net: "npm:1.2.11" - web3-utils: "npm:1.2.11" - checksum: c44e5b0524192b5b083756547151895baf4acd182a5bf4a530e7a52f91ab807df4733c23af381c5c1c5d165f73109766366da32be9ce4f34bb422181d32895fd +"vscode-uri@npm:^3.0.3": + version: 3.0.8 + resolution: "vscode-uri@npm:3.0.8" + checksum: e882d6b679e0d053cbc042893c0951a135d899a192b62cd07f0a8924f11ae722067a8d6b1b5b147034becf57faf9fff9fb543b17b749fd0f17db1f54f783f07c languageName: node linkType: hard -"web3-eth-personal@npm:1.2.2": - version: 1.2.2 - resolution: "web3-eth-personal@npm:1.2.2" +"w3c-xmlserializer@npm:^5.0.0": + version: 5.0.0 + resolution: "w3c-xmlserializer@npm:5.0.0" dependencies: - "@types/node": "npm:^12.6.1" - web3-core: "npm:1.2.2" - web3-core-helpers: "npm:1.2.2" - web3-core-method: "npm:1.2.2" - web3-net: "npm:1.2.2" - web3-utils: "npm:1.2.2" - checksum: e8f1ecd85fa63c7e45dceb0bc170418efdbaf99feaa55aa3124f499cfb5b4220000e99e7ecba77e985904ba23a657a27699a2c3c026546b669183068f49f20a3 + xml-name-validator: "npm:^5.0.0" + checksum: d78f59e6b4f924aa53b6dfc56949959229cae7fe05ea9374eb38d11edcec01398b7f5d7a12576bd5acc57ff446abb5c9115cd83b9d882555015437cf858d42f0 languageName: node linkType: hard -"web3-eth-personal@npm:1.3.6": - version: 1.3.6 - resolution: "web3-eth-personal@npm:1.3.6" - dependencies: - "@types/node": "npm:^12.12.6" - web3-core: "npm:1.3.6" - web3-core-helpers: "npm:1.3.6" - web3-core-method: "npm:1.3.6" - web3-net: "npm:1.3.6" - web3-utils: "npm:1.3.6" - checksum: fa0a2a94057a30bd8e63b13f99b000fd9a84d9349445f3bd98c791f5b5353f1905dfcc5d9b50b9b8dd1e6f5a594d21e0485f84291fcbfe0e0cc675825da5e0e7 +"wabt@npm:1.0.24": + version: 1.0.24 + resolution: "wabt@npm:1.0.24" + bin: + wasm-decompile: bin/wasm-decompile + wasm-interp: bin/wasm-interp + wasm-objdump: bin/wasm-objdump + wasm-opcodecnt: bin/wasm-opcodecnt + wasm-strip: bin/wasm-strip + wasm-validate: bin/wasm-validate + wasm2c: bin/wasm2c + wasm2wat: bin/wasm2wat + wat2wasm: bin/wat2wasm + checksum: c4f486db9d91ffb2e22739ccc21458aba3a7dc50f2e5c885c90b2f8555538aa92c518c249afbc59b78e2e333e699ce19a9040e888a69d6bf38329b77d52cf3c6 languageName: node linkType: hard -"web3-eth-personal@npm:1.4.0": - version: 1.4.0 - resolution: "web3-eth-personal@npm:1.4.0" +"wait-port@npm:1.0.4": + version: 1.0.4 + resolution: "wait-port@npm:1.0.4" dependencies: - "@types/node": "npm:^12.12.6" - web3-core: "npm:1.4.0" - web3-core-helpers: "npm:1.4.0" - web3-core-method: "npm:1.4.0" - web3-net: "npm:1.4.0" - web3-utils: "npm:1.4.0" - checksum: 5f28b93ed08537b9d06af483a23c63207395023bcded484576ed716ec9a210b64c72ccd80e69539e9727359f69eec7cf4e6465889564c95c7d99a551b7d80f3c + chalk: "npm:^4.1.2" + commander: "npm:^9.3.0" + debug: "npm:^4.3.4" + bin: + wait-port: bin/wait-port.js + checksum: abfda4ce09b4de22d3b236d554356e6f911988c1f1f9185203d6c8fbd96bacc17f00b87d3a6468b3440aca4a1c4f623fd344299ab12e59cd8cb616c788d771dc languageName: node linkType: hard -"web3-eth@npm:1.10.0": - version: 1.10.0 - resolution: "web3-eth@npm:1.10.0" +"walker@npm:^1.0.8": + version: 1.0.8 + resolution: "walker@npm:1.0.8" dependencies: - web3-core: "npm:1.10.0" - web3-core-helpers: "npm:1.10.0" - web3-core-method: "npm:1.10.0" - web3-core-subscriptions: "npm:1.10.0" - web3-eth-abi: "npm:1.10.0" - web3-eth-accounts: "npm:1.10.0" - web3-eth-contract: "npm:1.10.0" - web3-eth-ens: "npm:1.10.0" - web3-eth-iban: "npm:1.10.0" - web3-eth-personal: "npm:1.10.0" - web3-net: "npm:1.10.0" - web3-utils: "npm:1.10.0" - checksum: 9e254707af47ea9d701b9decd0576c76c6f27b5122da3a1570e6674b9ba4a9a5ad9f52562c03b312a24c73d0478f6de548823ce24e8013293d3d3a7f7a88596a + makeerror: "npm:1.0.12" + checksum: ad7a257ea1e662e57ef2e018f97b3c02a7240ad5093c392186ce0bcf1f1a60bbadd520d073b9beb921ed99f64f065efb63dfc8eec689a80e569f93c1c5d5e16c languageName: node linkType: hard -"web3-eth@npm:1.10.4": - version: 1.10.4 - resolution: "web3-eth@npm:1.10.4" +"walletlink@npm:2.5.0": + version: 2.5.0 + resolution: "walletlink@npm:2.5.0" dependencies: - web3-core: "npm:1.10.4" - web3-core-helpers: "npm:1.10.4" - web3-core-method: "npm:1.10.4" - web3-core-subscriptions: "npm:1.10.4" - web3-eth-abi: "npm:1.10.4" - web3-eth-accounts: "npm:1.10.4" - web3-eth-contract: "npm:1.10.4" - web3-eth-ens: "npm:1.10.4" - web3-eth-iban: "npm:1.10.4" - web3-eth-personal: "npm:1.10.4" - web3-net: "npm:1.10.4" - web3-utils: "npm:1.10.4" - checksum: 0da77f76715711cbae7ec0f13300cf5cf364eed2955077f55462f162de9e133305d6534203f50aa786f496b4064d6b46577f30b8f8d0a0cad4476f7e7f30980e + "@metamask/safe-event-emitter": "npm:2.0.0" + bind-decorator: "npm:^1.0.11" + bn.js: "npm:^5.1.1" + clsx: "npm:^1.1.0" + eth-block-tracker: "npm:4.4.3" + eth-json-rpc-filters: "npm:4.2.2" + eth-rpc-errors: "npm:4.0.2" + js-sha256: "npm:0.9.0" + json-rpc-engine: "npm:6.1.0" + keccak: "npm:^3.0.1" + preact: "npm:^10.5.9" + rxjs: "npm:^6.6.3" + stream-browserify: "npm:^3.0.0" + checksum: 8a70b2c8d83aa1334717a70497576eb25136932eb1e5c738050a293a640fa956f27264e5568813d4072f39ae83a57e2ba0a0ca1500d6863f5dcad3298b30f050 languageName: node linkType: hard -"web3-eth@npm:1.2.1": - version: 1.2.1 - resolution: "web3-eth@npm:1.2.1" - dependencies: - underscore: "npm:1.9.1" - web3-core: "npm:1.2.1" - web3-core-helpers: "npm:1.2.1" - web3-core-method: "npm:1.2.1" - web3-core-subscriptions: "npm:1.2.1" - web3-eth-abi: "npm:1.2.1" - web3-eth-accounts: "npm:1.2.1" - web3-eth-contract: "npm:1.2.1" - web3-eth-ens: "npm:1.2.1" - web3-eth-iban: "npm:1.2.1" - web3-eth-personal: "npm:1.2.1" - web3-net: "npm:1.2.1" - web3-utils: "npm:1.2.1" - checksum: 81a802d00542fdb7c439078044e7e262d26f2b0b774f6f2df39497f71fb3f41a0d5ad09c64e129923ed183b0b40b9067ba94ad0f8b7eaa218130576c7957c3f9 - languageName: node - linkType: hard - -"web3-eth@npm:1.2.11": - version: 1.2.11 - resolution: "web3-eth@npm:1.2.11" - dependencies: - underscore: "npm:1.9.1" - web3-core: "npm:1.2.11" - web3-core-helpers: "npm:1.2.11" - web3-core-method: "npm:1.2.11" - web3-core-subscriptions: "npm:1.2.11" - web3-eth-abi: "npm:1.2.11" - web3-eth-accounts: "npm:1.2.11" - web3-eth-contract: "npm:1.2.11" - web3-eth-ens: "npm:1.2.11" - web3-eth-iban: "npm:1.2.11" - web3-eth-personal: "npm:1.2.11" - web3-net: "npm:1.2.11" - web3-utils: "npm:1.2.11" - checksum: b7232090c630ba06dfc0c7f26c0b462aa327598fc26d5510483b5bee4f394b07c7d8e4ac68331716f879a3ff0ed2ad40faa294f92241a7114410c7a81ed3f545 - languageName: node - linkType: hard - -"web3-eth@npm:1.2.2": - version: 1.2.2 - resolution: "web3-eth@npm:1.2.2" - dependencies: - underscore: "npm:1.9.1" - web3-core: "npm:1.2.2" - web3-core-helpers: "npm:1.2.2" - web3-core-method: "npm:1.2.2" - web3-core-subscriptions: "npm:1.2.2" - web3-eth-abi: "npm:1.2.2" - web3-eth-accounts: "npm:1.2.2" - web3-eth-contract: "npm:1.2.2" - web3-eth-ens: "npm:1.2.2" - web3-eth-iban: "npm:1.2.2" - web3-eth-personal: "npm:1.2.2" - web3-net: "npm:1.2.2" - web3-utils: "npm:1.2.2" - checksum: f8791bdabacfdd6de87cf77e5dad04935a60dcc6c3adbab37a0e4a673621daab4ae040f326bef9b64bb66519f44641f226450f7d280c3cb425e5aa1054b5edde - languageName: node - linkType: hard - -"web3-eth@npm:1.3.6": - version: 1.3.6 - resolution: "web3-eth@npm:1.3.6" - dependencies: - underscore: "npm:1.12.1" - web3-core: "npm:1.3.6" - web3-core-helpers: "npm:1.3.6" - web3-core-method: "npm:1.3.6" - web3-core-subscriptions: "npm:1.3.6" - web3-eth-abi: "npm:1.3.6" - web3-eth-accounts: "npm:1.3.6" - web3-eth-contract: "npm:1.3.6" - web3-eth-ens: "npm:1.3.6" - web3-eth-iban: "npm:1.3.6" - web3-eth-personal: "npm:1.3.6" - web3-net: "npm:1.3.6" - web3-utils: "npm:1.3.6" - checksum: 8eb4c88f350bb88cf127f6c742d15a15f2bc4fdd96efeacef14c6bcfa085e86fa2632fcbfbe013d3e537d1a78d9c27c51a85b8a142cc4d8c83ff978ba95f1cf0 - languageName: node - linkType: hard - -"web3-eth@npm:1.4.0": - version: 1.4.0 - resolution: "web3-eth@npm:1.4.0" - dependencies: - underscore: "npm:1.12.1" - web3-core: "npm:1.4.0" - web3-core-helpers: "npm:1.4.0" - web3-core-method: "npm:1.4.0" - web3-core-subscriptions: "npm:1.4.0" - web3-eth-abi: "npm:1.4.0" - web3-eth-accounts: "npm:1.4.0" - web3-eth-contract: "npm:1.4.0" - web3-eth-ens: "npm:1.4.0" - web3-eth-iban: "npm:1.4.0" - web3-eth-personal: "npm:1.4.0" - web3-net: "npm:1.4.0" - web3-utils: "npm:1.4.0" - checksum: f14a3975966d60ca891338b0cc48fa8aa3ddd376a07ad9c60ea4de46e159f90a57de4169f103ec79d428301cedb007aeda253725a44fee4aeaea1bcb63a2643d - languageName: node - linkType: hard - -"web3-net@npm:1.10.0": - version: 1.10.0 - resolution: "web3-net@npm:1.10.0" +"watchpack@npm:2.4.0, watchpack@npm:^2.2.0, watchpack@npm:^2.4.0": + version: 2.4.0 + resolution: "watchpack@npm:2.4.0" dependencies: - web3-core: "npm:1.10.0" - web3-core-method: "npm:1.10.0" - web3-utils: "npm:1.10.0" - checksum: 5183d897ccf539adafa60e8372871f8d8ecf4c46a0943aeee1d5f78a54c8faddfcb2406269ab422e57ef871c29496dba1bffbe044693b559a3bcd7957af87363 + glob-to-regexp: "npm:^0.4.1" + graceful-fs: "npm:^4.1.2" + checksum: 4280b45bc4b5d45d5579113f2a4af93b67ae1b9607cc3d86ae41cdd53ead10db5d9dc3237f24256d05ef88b28c69a02712f78e434cb7ecc8edaca134a56e8cab languageName: node linkType: hard -"web3-net@npm:1.10.4": - version: 1.10.4 - resolution: "web3-net@npm:1.10.4" +"wbuf@npm:^1.1.0, wbuf@npm:^1.7.3": + version: 1.7.3 + resolution: "wbuf@npm:1.7.3" dependencies: - web3-core: "npm:1.10.4" - web3-core-method: "npm:1.10.4" - web3-utils: "npm:1.10.4" - checksum: 7f28f58ed1521bd805d63340994be436812e771e8edaa00aea568fa7ae3374746fb5f5aa6ac67632862a739833dfea6ffa92f4df4bca7c394b2608c603e1eda6 + minimalistic-assert: "npm:^1.0.0" + checksum: c18b51c4e1fb19705c94b93c0cf093ba014606abceee949399d56074ef1863bf4897a8d884be24e8d224d18c9ce411cf6924006d0a5430492729af51256e067a languageName: node linkType: hard -"web3-net@npm:1.2.1": - version: 1.2.1 - resolution: "web3-net@npm:1.2.1" +"wcwidth@npm:>=1.0.1, wcwidth@npm:^1.0.1": + version: 1.0.1 + resolution: "wcwidth@npm:1.0.1" dependencies: - web3-core: "npm:1.2.1" - web3-core-method: "npm:1.2.1" - web3-utils: "npm:1.2.1" - checksum: 579e7bd4ee2336f7ecbf81276dcde3d288a8095f2b2ded2f1e0b3b31375bddec7087160a4c4a750781dfeb648b8adb4f2b3415ee740952da43a0737d584ace86 + defaults: "npm:^1.0.3" + checksum: 182ebac8ca0b96845fae6ef44afd4619df6987fe5cf552fdee8396d3daa1fb9b8ec5c6c69855acb7b3c1231571393bd1f0a4cdc4028d421575348f64bb0a8817 languageName: node linkType: hard -"web3-net@npm:1.2.11": - version: 1.2.11 - resolution: "web3-net@npm:1.2.11" - dependencies: - web3-core: "npm:1.2.11" - web3-core-method: "npm:1.2.11" - web3-utils: "npm:1.2.11" - checksum: 76a99815699674709b869b60bf950d20167b999fe93f7d091b01ce3fd0e3dd9c30ef3519156c04eb01703791c049b19b295e6901dd41d208ea600149961f7ee6 +"web-namespaces@npm:^2.0.0": + version: 2.0.1 + resolution: "web-namespaces@npm:2.0.1" + checksum: b6d9f02f1a43d0ef0848a812d89c83801d5bbad57d8bb61f02eb6d7eb794c3736f6cc2e1191664bb26136594c8218ac609f4069722c6f56d9fc2d808fa9271c6 languageName: node linkType: hard -"web3-net@npm:1.2.2": - version: 1.2.2 - resolution: "web3-net@npm:1.2.2" - dependencies: - web3-core: "npm:1.2.2" - web3-core-method: "npm:1.2.2" - web3-utils: "npm:1.2.2" - checksum: e9cbfd8f3511576d4788e29c677ad7c9eefaa6ed44992b998ea17464d82bef5080ec22e7ed4f86c9297a9d4a57c051ac95b782ca5cdfc60c10c901e76000f6f2 +"web-streams-polyfill@npm:^3.0.3, web-streams-polyfill@npm:^3.2.1": + version: 3.3.3 + resolution: "web-streams-polyfill@npm:3.3.3" + checksum: 8e7e13501b3834094a50abe7c0b6456155a55d7571312b89570012ef47ec2a46d766934768c50aabad10a9c30dd764a407623e8bfcc74fcb58495c29130edea9 languageName: node linkType: hard -"web3-net@npm:1.3.6": - version: 1.3.6 - resolution: "web3-net@npm:1.3.6" +"web3-bzz@npm:1.10.3": + version: 1.10.3 + resolution: "web3-bzz@npm:1.10.3" dependencies: - web3-core: "npm:1.3.6" - web3-core-method: "npm:1.3.6" - web3-utils: "npm:1.3.6" - checksum: b0db277ba479f7735c037d9bddcfd8d18e2e3c3abc94e015483ed6e6407b0d1ffa0ac8501dbf4e0ee9500755954239dc0d8b64ee6d0b7347822c3fc6a164d825 + "@types/node": "npm:^12.12.6" + got: "npm:12.1.0" + swarm-js: "npm:^0.1.40" + checksum: c3985e345c3149238189497b5df0b0d6a7f290f67782d4f77c733c17f0ed85ac063d9d2e1cc4c4592d668ba5ae333c6bab94cbd7c78f7f3553c1a10d478d90a6 languageName: node linkType: hard -"web3-net@npm:1.4.0": - version: 1.4.0 - resolution: "web3-net@npm:1.4.0" +"web3-core-helpers@npm:1.10.3": + version: 1.10.3 + resolution: "web3-core-helpers@npm:1.10.3" dependencies: - web3-core: "npm:1.4.0" - web3-core-method: "npm:1.4.0" - web3-utils: "npm:1.4.0" - checksum: ffa5ff48a7ad9acb45caa5f29096d6859b61b9126c498f6129497aaa3b399cbb918350cce3718360dee7f13a00737ccec839bfd6da012a9afaa8911ac60ffdb5 + web3-eth-iban: "npm:1.10.3" + web3-utils: "npm:1.10.3" + checksum: 4ec48d8ab81f3fcaabdab028e40aa958d08abc5bbd48f37b9cfba48ccc0f9e7a556754960b524199fb333688e71c073281dc78639e2944d17b2c57fc6ecf744d languageName: node linkType: hard -"web3-provider-engine@npm:14.2.1": - version: 14.2.1 - resolution: "web3-provider-engine@npm:14.2.1" - dependencies: - async: "npm:^2.5.0" - backoff: "npm:^2.5.0" - clone: "npm:^2.0.0" - cross-fetch: "npm:^2.1.0" - eth-block-tracker: "npm:^3.0.0" - eth-json-rpc-infura: "npm:^3.1.0" - eth-sig-util: "npm:^1.4.2" - ethereumjs-block: "npm:^1.2.2" - ethereumjs-tx: "npm:^1.2.0" - ethereumjs-util: "npm:^5.1.5" - ethereumjs-vm: "npm:^2.3.4" - json-rpc-error: "npm:^2.0.0" - json-stable-stringify: "npm:^1.0.1" - promise-to-callback: "npm:^1.0.0" - readable-stream: "npm:^2.2.9" - request: "npm:^2.85.0" - semaphore: "npm:^1.0.3" - ws: "npm:^5.1.1" - xhr: "npm:^2.2.0" - xtend: "npm:^4.0.1" - checksum: 83be333e1cc5600301791055e677abaef0c349c495535f19b501fed9d13937afa8c24ef498151f89a41a48b464cdbc3f9d5da79e69b7b0661136d6a57fdea38a +"web3-core-helpers@npm:1.10.4": + version: 1.10.4 + resolution: "web3-core-helpers@npm:1.10.4" + dependencies: + web3-eth-iban: "npm:1.10.4" + web3-utils: "npm:1.10.4" + checksum: 9c22942827bed0e46ae491a0bee3cd60cea636f9b0408b11bb341b0370e58a94358025657405142c2a24f3912a8f947e6e977d594d9ba66e11dedce3c5c4a7f4 languageName: node linkType: hard -"web3-providers-http@npm:1.10.0": - version: 1.10.0 - resolution: "web3-providers-http@npm:1.10.0" +"web3-core-method@npm:1.10.3": + version: 1.10.3 + resolution: "web3-core-method@npm:1.10.3" dependencies: - abortcontroller-polyfill: "npm:^1.7.3" - cross-fetch: "npm:^3.1.4" - es6-promise: "npm:^4.2.8" - web3-core-helpers: "npm:1.10.0" - checksum: 4a1742056f4f3b548d5ed3bc763470d1c49b00586eeb11ed6c0ff4ce3397b6fec69259dec48b2bb5f8b64f2bf81b275e720e4a488a0d3510aab234273b537ff7 + "@ethersproject/transactions": "npm:^5.6.2" + web3-core-helpers: "npm:1.10.3" + web3-core-promievent: "npm:1.10.3" + web3-core-subscriptions: "npm:1.10.3" + web3-utils: "npm:1.10.3" + checksum: cd201944b4158ba0e267e02f1c2c043a79d29aa54c2e59e3abdef8b4145e5fd4c3b2839f1bd6a5cea705178919fb19039ecdaeae185ad13d9aa05aeb734bf8c5 languageName: node linkType: hard -"web3-providers-http@npm:1.10.4": +"web3-core-method@npm:1.10.4": version: 1.10.4 - resolution: "web3-providers-http@npm:1.10.4" + resolution: "web3-core-method@npm:1.10.4" dependencies: - abortcontroller-polyfill: "npm:^1.7.5" - cross-fetch: "npm:^4.0.0" - es6-promise: "npm:^4.2.8" + "@ethersproject/transactions": "npm:^5.6.2" web3-core-helpers: "npm:1.10.4" - checksum: 2ff27d45cc7c7b1e8f07a7917fe1502fef59e211b2ee97851369f9b6dab99ce81b0bef50f9ecf36286137fc41f1230f04b55b090d30f870fbc5ef1972d165b5f + web3-core-promievent: "npm:1.10.4" + web3-core-subscriptions: "npm:1.10.4" + web3-utils: "npm:1.10.4" + checksum: d942beba3999c084333f5c808ada2a90930d55d148d5f8cc51a2135f8ab3f101fa5ce0d732a60830e8cad2af844bbed6cf0b6250863003adafb08c7ffa9fbd5f languageName: node linkType: hard -"web3-providers-http@npm:1.2.1": - version: 1.2.1 - resolution: "web3-providers-http@npm:1.2.1" +"web3-core-promievent@npm:1.10.3": + version: 1.10.3 + resolution: "web3-core-promievent@npm:1.10.3" dependencies: - web3-core-helpers: "npm:1.2.1" - xhr2-cookies: "npm:1.1.0" - checksum: 4284ef5b5ee7e4ae55b27a6319cdcfd426c5f44ea84d4c3d4aae0ec317020a9139fb279a564d2c1fa55c0b1cf9dc6f6b2e6fbb70c4a8ebabb974903d048e1807 + eventemitter3: "npm:4.0.4" + checksum: 5406e3d84a4f02e301ddae7e560be7e83c0f5f87988e1b1efb141697d816bbba8e4ddd0d0160123745a43fa152a5b986135b16901639172490abee4f9e16d106 languageName: node linkType: hard -"web3-providers-http@npm:1.2.11": - version: 1.2.11 - resolution: "web3-providers-http@npm:1.2.11" +"web3-core-promievent@npm:1.10.4": + version: 1.10.4 + resolution: "web3-core-promievent@npm:1.10.4" dependencies: - web3-core-helpers: "npm:1.2.11" - xhr2-cookies: "npm:1.1.0" - checksum: 1e1b493e08f664e4a6123628949c8c046a7580c3d89f97a57321b8be8e64f2ccf70a5b9ce0793cf638183249297913bb650bad50b1e11554531f6442b1f20fe4 + eventemitter3: "npm:4.0.4" + checksum: a792c74aa5c91dc63fb493af04628ecfa08b9e6ceea402dfe53f718b019c41d63a0200bf3045dd23ec3c42b8d7474ac96eb4cb4456060becc551c2cacbd02bb1 languageName: node linkType: hard -"web3-providers-http@npm:1.2.2": - version: 1.2.2 - resolution: "web3-providers-http@npm:1.2.2" +"web3-core-requestmanager@npm:1.10.3": + version: 1.10.3 + resolution: "web3-core-requestmanager@npm:1.10.3" dependencies: - web3-core-helpers: "npm:1.2.2" - xhr2-cookies: "npm:1.1.0" - checksum: 0cd2a2a783ee99e0ff57204b0f6b24052194f0dedd30f4d76f2365b4be79531ba19050ca222b32ebda1fb85fb5f28aadde55a52d9022f211cea05c7f2412790b + util: "npm:^0.12.5" + web3-core-helpers: "npm:1.10.3" + web3-providers-http: "npm:1.10.3" + web3-providers-ipc: "npm:1.10.3" + web3-providers-ws: "npm:1.10.3" + checksum: 9ec5fe7f621fbab0fe9acab3fd115e46bf86d7b398306e261073b471205c0e1171c4e276ebbe8a0b49906b37677a21b8b1b6d5da83ef86ee7dd29ff87b09e0a6 languageName: node linkType: hard -"web3-providers-http@npm:1.3.6": - version: 1.3.6 - resolution: "web3-providers-http@npm:1.3.6" +"web3-core-requestmanager@npm:1.10.4": + version: 1.10.4 + resolution: "web3-core-requestmanager@npm:1.10.4" dependencies: - web3-core-helpers: "npm:1.3.6" - xhr2-cookies: "npm:1.1.0" - checksum: 8fc0a8f061ecd21a3c72a4f984d87ba69eccf98703ae7edd756a316c7b35e58a45a214a93d7e33dbfd3beeb0b186bc91a58538b6643e6670e3f2e517df907fdd + util: "npm:^0.12.5" + web3-core-helpers: "npm:1.10.4" + web3-providers-http: "npm:1.10.4" + web3-providers-ipc: "npm:1.10.4" + web3-providers-ws: "npm:1.10.4" + checksum: c26bf616cc156b2198bf634084978d66cf384cf2b174324b6ada071a8c9e9be7855d72c09453308d1a46b50874c18ff9b75193f8736c2b285cdc32209391880c languageName: node linkType: hard -"web3-providers-http@npm:1.4.0": - version: 1.4.0 - resolution: "web3-providers-http@npm:1.4.0" +"web3-core-subscriptions@npm:1.10.3": + version: 1.10.3 + resolution: "web3-core-subscriptions@npm:1.10.3" dependencies: - web3-core-helpers: "npm:1.4.0" - xhr2-cookies: "npm:1.1.0" - checksum: 59bcc42a50a1914e2194b81c7064e493f8a5d6c388bc14b547ba77801aee4851a0355da0dffc29ab24d35aa5547ca88cb4a46b7c4f5b04e0182789550f8ad03f + eventemitter3: "npm:4.0.4" + web3-core-helpers: "npm:1.10.3" + checksum: 202d54cba012999dad34b2711afca831e7a64d2a4ea9dbf6486cd1465df7df40b884760c1606b524cf30a403389ad19627fd99bcfee58058e3d5a080a5beef5d languageName: node linkType: hard -"web3-providers-ipc@npm:1.10.0": - version: 1.10.0 - resolution: "web3-providers-ipc@npm:1.10.0" +"web3-core-subscriptions@npm:1.10.4": + version: 1.10.4 + resolution: "web3-core-subscriptions@npm:1.10.4" dependencies: - oboe: "npm:2.1.5" - web3-core-helpers: "npm:1.10.0" - checksum: 7e1f42ceb8fb945589fbb2c85464d26e49df4649fdbbec578b2fa8114484b334f8fa47a585f4ee86efc2c9a3dc3971a0ccc829e3297d00c73ba4a3c291f81963 + eventemitter3: "npm:4.0.4" + web3-core-helpers: "npm:1.10.4" + checksum: b1652988c0925ab1d5c27e67a816ec6bcb32f37f59c7314e1f02552233fbc486a0de579aeb660d77d82452b63e9feaa98317ec7897cd7aeb140595c8e176d0eb languageName: node linkType: hard -"web3-providers-ipc@npm:1.10.4": - version: 1.10.4 - resolution: "web3-providers-ipc@npm:1.10.4" +"web3-core@npm:1.10.3": + version: 1.10.3 + resolution: "web3-core@npm:1.10.3" dependencies: - oboe: "npm:2.1.5" - web3-core-helpers: "npm:1.10.4" - checksum: cd33a954f59ba3a9ca466dca0d6563f46c56879dc249d885b8edfee077f9f58ccf591ba06855e1d69baba52a8719c03684b0ba7b33d836bfdd4c6166e289c0d4 + "@types/bn.js": "npm:^5.1.1" + "@types/node": "npm:^12.12.6" + bignumber.js: "npm:^9.0.0" + web3-core-helpers: "npm:1.10.3" + web3-core-method: "npm:1.10.3" + web3-core-requestmanager: "npm:1.10.3" + web3-utils: "npm:1.10.3" + checksum: 2e1db4570acadd94fa5206a1a92be094adc0b1e98f8b53c8d289395cc56d56ab587d259f508d24fb811f5d46330beac2c25e831628522d31589ec3fad94c6053 languageName: node linkType: hard -"web3-providers-ipc@npm:1.2.1": - version: 1.2.1 - resolution: "web3-providers-ipc@npm:1.2.1" +"web3-core@npm:^1.10.3, web3-core@npm:^1.8.1": + version: 1.10.4 + resolution: "web3-core@npm:1.10.4" dependencies: - oboe: "npm:2.1.4" - underscore: "npm:1.9.1" - web3-core-helpers: "npm:1.2.1" - checksum: f217b12a2b92819ebcea1119b753c6f39876ed556c5689edb89e8470998b100471f4791a638f93448edde07de63b95e845ca52bfe0e03b8f2562cd40295819d1 + "@types/bn.js": "npm:^5.1.1" + "@types/node": "npm:^12.12.6" + bignumber.js: "npm:^9.0.0" + web3-core-helpers: "npm:1.10.4" + web3-core-method: "npm:1.10.4" + web3-core-requestmanager: "npm:1.10.4" + web3-utils: "npm:1.10.4" + checksum: 138c5abff27a48d16584fdbe56b940f9efe7cd2463d768f42c5fcdfc97d0dc4fc41e09ff1ffb8c8ff79b22a69e9efbf5af27c4b6a0d888c351202f03a8b01b8e languageName: node linkType: hard -"web3-providers-ipc@npm:1.2.11": - version: 1.2.11 - resolution: "web3-providers-ipc@npm:1.2.11" +"web3-errors@npm:^1.1.4": + version: 1.1.4 + resolution: "web3-errors@npm:1.1.4" dependencies: - oboe: "npm:2.1.4" - underscore: "npm:1.9.1" - web3-core-helpers: "npm:1.2.11" - checksum: 34b439214d8f7949af5aabf95f756ca774c6156200b1fae20ae0de584e8ba146b06a82959cbd83d80a391d19a0e1c23bd69d51c3de85655552276217e547dab3 + web3-types: "npm:^1.3.1" + checksum: b0773a7df2338efc624963e55719894386303703ce393e5ce677fef0c7b4a5293556530386577010f1086a9fa7534346b83c4fc014e79c1107950e20a047b2f2 languageName: node linkType: hard -"web3-providers-ipc@npm:1.2.2": - version: 1.2.2 - resolution: "web3-providers-ipc@npm:1.2.2" +"web3-eth-abi@npm:1.10.3": + version: 1.10.3 + resolution: "web3-eth-abi@npm:1.10.3" dependencies: - oboe: "npm:2.1.4" - underscore: "npm:1.9.1" - web3-core-helpers: "npm:1.2.2" - checksum: dcab7bee192572058d3f710a707b4fcf71eb82d636a3578757ff40235556b1ea32344ef601e73d2700a1201758c28b94ed5ec7fd8ccbce3e5bd4d555bc2ef75e + "@ethersproject/abi": "npm:^5.6.3" + web3-utils: "npm:1.10.3" + checksum: 8b2ab1c381957102f367fa29300010a0cdedfd29017585d285c4bedf7eeae0a70801b135661c5bf977713b48ab424df107c0236dbe2387290adaa0750136067f languageName: node linkType: hard -"web3-providers-ipc@npm:1.3.6": - version: 1.3.6 - resolution: "web3-providers-ipc@npm:1.3.6" +"web3-eth-abi@npm:1.7.0": + version: 1.7.0 + resolution: "web3-eth-abi@npm:1.7.0" dependencies: - oboe: "npm:2.1.5" - underscore: "npm:1.12.1" - web3-core-helpers: "npm:1.3.6" - checksum: 8ec5bba1b22935613fd6bd2bb8535eb7de61a5a53505bef22a28f36d2a98b78ec608bcf7aa553fa57ff980c7ee36ac37314816c860bd3b999f74085f392d8416 + "@ethersproject/abi": "npm:5.0.7" + web3-utils: "npm:1.7.0" + checksum: 02aab1fe25fcdbb66b82297e4957605b36214fa66cebaf2e31207c4ea62b43cf3ffa15e9b8e900d3ff74c84cf2455eaaef3d516b2665c57264acead1fb099a4b languageName: node linkType: hard -"web3-providers-ipc@npm:1.4.0": - version: 1.4.0 - resolution: "web3-providers-ipc@npm:1.4.0" +"web3-eth-accounts@npm:1.10.3": + version: 1.10.3 + resolution: "web3-eth-accounts@npm:1.10.3" dependencies: - oboe: "npm:2.1.5" - underscore: "npm:1.12.1" - web3-core-helpers: "npm:1.4.0" - checksum: a7a24ade224efc02e3314743b777bc970d1a76aae54432b83bf7e331d116f5d6ad8b76528a5dccfb16f45dc0cfd5a95c55d65ae63d7d445106d617dbd9a0f832 + "@ethereumjs/common": "npm:2.6.5" + "@ethereumjs/tx": "npm:3.5.2" + "@ethereumjs/util": "npm:^8.1.0" + eth-lib: "npm:0.2.8" + scrypt-js: "npm:^3.0.1" + uuid: "npm:^9.0.0" + web3-core: "npm:1.10.3" + web3-core-helpers: "npm:1.10.3" + web3-core-method: "npm:1.10.3" + web3-utils: "npm:1.10.3" + checksum: ad534fe6b602d2f1c7317dc35e23a7a53951a52f4cd24b8b53a27d92bd8bedf8c61438a230dea06913224c20117e5b07fb849d8e437690b3765aaa11665759e8 languageName: node linkType: hard -"web3-providers-ws@npm:1.10.0": - version: 1.10.0 - resolution: "web3-providers-ws@npm:1.10.0" +"web3-eth-contract@npm:1.10.3": + version: 1.10.3 + resolution: "web3-eth-contract@npm:1.10.3" dependencies: - eventemitter3: "npm:4.0.4" - web3-core-helpers: "npm:1.10.0" - websocket: "npm:^1.0.32" - checksum: 6a0f765b929592c4f45b6286002f56d65bb972c5ecffb5c911442bfd8062df400726b54cd26777a5ab43f57ac861163f55e06b1867c0b45d8a8fea2ebf25aeaa + "@types/bn.js": "npm:^5.1.1" + web3-core: "npm:1.10.3" + web3-core-helpers: "npm:1.10.3" + web3-core-method: "npm:1.10.3" + web3-core-promievent: "npm:1.10.3" + web3-core-subscriptions: "npm:1.10.3" + web3-eth-abi: "npm:1.10.3" + web3-utils: "npm:1.10.3" + checksum: 53e09738e8cf5f4c41538a927ea298ad27666ed879065104b69f1db8d2a020d0bb932088b8d0c3da98e41cfeab30451fa1e728b05205c5f6ec3386019642d572 languageName: node linkType: hard -"web3-providers-ws@npm:1.10.4": - version: 1.10.4 - resolution: "web3-providers-ws@npm:1.10.4" +"web3-eth-ens@npm:1.10.3": + version: 1.10.3 + resolution: "web3-eth-ens@npm:1.10.3" dependencies: - eventemitter3: "npm:4.0.4" - web3-core-helpers: "npm:1.10.4" - websocket: "npm:^1.0.32" - checksum: 98cb76473ae1060e21ff474768a04c6dcd91724f24a1fac2d4a5f186a35bd2f119605fbb28423dfe5be33755b1e5808b10514ddaf326b57573b447efc84ef730 + content-hash: "npm:^2.5.2" + eth-ens-namehash: "npm:2.0.8" + web3-core: "npm:1.10.3" + web3-core-helpers: "npm:1.10.3" + web3-core-promievent: "npm:1.10.3" + web3-eth-abi: "npm:1.10.3" + web3-eth-contract: "npm:1.10.3" + web3-utils: "npm:1.10.3" + checksum: 5bb7cc1bbba7b6519feccba2d1193d58eda8c7c52bb1392c29c884555c383b5b2bea6a23afd0be7afeaddce767a243f12552b89016c073ae080ee3d32cc3ba42 languageName: node linkType: hard -"web3-providers-ws@npm:1.2.1": - version: 1.2.1 - resolution: "web3-providers-ws@npm:1.2.1" +"web3-eth-iban@npm:1.10.3": + version: 1.10.3 + resolution: "web3-eth-iban@npm:1.10.3" dependencies: - underscore: "npm:1.9.1" - web3-core-helpers: "npm:1.2.1" - websocket: "github:web3-js/WebSocket-Node#polyfill/globalThis" - checksum: fc0a372ac795167672da6474f9ecbc7c7fc31018c9dd283dfde8290d88366f1e1d4210f8e51e6167d091b1667d144f7f682aa9973b7946871888fdba228a74f8 + bn.js: "npm:^5.2.1" + web3-utils: "npm:1.10.3" + checksum: ad711fc182cbe883a9987b1c496ebedfe32fcae438ac3ac6e5ac0bdea7a622db8f4fb16f18fb5ed94519dda21050e022a7c05d539a6e72de52d6672f614b2bb0 languageName: node linkType: hard -"web3-providers-ws@npm:1.2.11": - version: 1.2.11 - resolution: "web3-providers-ws@npm:1.2.11" +"web3-eth-iban@npm:1.10.4": + version: 1.10.4 + resolution: "web3-eth-iban@npm:1.10.4" dependencies: - eventemitter3: "npm:4.0.4" - underscore: "npm:1.9.1" - web3-core-helpers: "npm:1.2.11" - websocket: "npm:^1.0.31" - checksum: d867995766007c9cd2600b8515c7354d5e9fae44d5f380904eb091980b88a6a73a455f7ca2d0b24725fcc0490de87fdc9a87f877896753d73577dba46828e777 + bn.js: "npm:^5.2.1" + web3-utils: "npm:1.10.4" + checksum: b5e33aaf3d41608ed59ea98c703271eefcd30aea15163cda4bc8713f9716eb40b816e8047022ebf71391250983acfe58e65551461109a53e266f4b824c4a0678 languageName: node linkType: hard -"web3-providers-ws@npm:1.2.2": - version: 1.2.2 - resolution: "web3-providers-ws@npm:1.2.2" +"web3-eth-personal@npm:1.10.3": + version: 1.10.3 + resolution: "web3-eth-personal@npm:1.10.3" dependencies: - underscore: "npm:1.9.1" - web3-core-helpers: "npm:1.2.2" - websocket: "github:web3-js/WebSocket-Node#polyfill/globalThis" - checksum: 44c614a45836efa9914d3b5e0d93ad362441517d5190fe2d178ab5a611ee3b97a8b3888906623a9d7bf5c1a05f7876a9deb64c9a69c4fa48ae5fb0e8479e5a27 + "@types/node": "npm:^12.12.6" + web3-core: "npm:1.10.3" + web3-core-helpers: "npm:1.10.3" + web3-core-method: "npm:1.10.3" + web3-net: "npm:1.10.3" + web3-utils: "npm:1.10.3" + checksum: 47c67687eccea6e906561a18da305d69f5d4384c854cee984aded3534651628265dcfe4ed693910dd1b84e91108b5dc96a715a085e3bb1618fb54143f56b743e languageName: node linkType: hard -"web3-providers-ws@npm:1.3.6": - version: 1.3.6 - resolution: "web3-providers-ws@npm:1.3.6" +"web3-eth@npm:1.10.3": + version: 1.10.3 + resolution: "web3-eth@npm:1.10.3" dependencies: - eventemitter3: "npm:4.0.4" - underscore: "npm:1.12.1" - web3-core-helpers: "npm:1.3.6" - websocket: "npm:^1.0.32" - checksum: 0da80100124764a94e1e05109498b9e9e16fa458966b705c8348928ef1c5a616e18b002ea8e4f4b59658648e51f517ba198d042a02b819223d22c8837f0202fc + web3-core: "npm:1.10.3" + web3-core-helpers: "npm:1.10.3" + web3-core-method: "npm:1.10.3" + web3-core-subscriptions: "npm:1.10.3" + web3-eth-abi: "npm:1.10.3" + web3-eth-accounts: "npm:1.10.3" + web3-eth-contract: "npm:1.10.3" + web3-eth-ens: "npm:1.10.3" + web3-eth-iban: "npm:1.10.3" + web3-eth-personal: "npm:1.10.3" + web3-net: "npm:1.10.3" + web3-utils: "npm:1.10.3" + checksum: 7d5557c5853786de06d8183c0c2dbaee80979fbc3bd6ee65cef0e07b9d88f58677e0e0cff624ec2b433097a9f365c616a57231fa250719de4da1cf557ae0481a languageName: node linkType: hard -"web3-providers-ws@npm:1.4.0": - version: 1.4.0 - resolution: "web3-providers-ws@npm:1.4.0" +"web3-net@npm:1.10.3": + version: 1.10.3 + resolution: "web3-net@npm:1.10.3" dependencies: - eventemitter3: "npm:4.0.4" - underscore: "npm:1.12.1" - web3-core-helpers: "npm:1.4.0" - websocket: "npm:^1.0.32" - checksum: 757ad70f5d0c5ee646f5d6fd59a85f6932406dcbc6af62510573fb731d97ecd435698cbe01559cdf16f43771924a3627fb546745f620038a188c391fe568f995 + web3-core: "npm:1.10.3" + web3-core-method: "npm:1.10.3" + web3-utils: "npm:1.10.3" + checksum: 35ab560f51d5fa4d241ef514c0d7894b187a76ce7a73b03046281348e0ed2080eb20b8acb263ceb66b4e7874ecd4016833a83c24eae39fd4179cb53674c2b840 languageName: node linkType: hard -"web3-shh@npm:1.10.0": - version: 1.10.0 - resolution: "web3-shh@npm:1.10.0" +"web3-providers-http@npm:1.10.3": + version: 1.10.3 + resolution: "web3-providers-http@npm:1.10.3" dependencies: - web3-core: "npm:1.10.0" - web3-core-method: "npm:1.10.0" - web3-core-subscriptions: "npm:1.10.0" - web3-net: "npm:1.10.0" - checksum: d51b29a2c953855b2ace74c53a18fe24399ff34533750710096d249a164725cd64a686fc90a5b1e4209c85a3824d6ec02c5d4615dd3ca66c020e8d4a18dba1bf + abortcontroller-polyfill: "npm:^1.7.5" + cross-fetch: "npm:^4.0.0" + es6-promise: "npm:^4.2.8" + web3-core-helpers: "npm:1.10.3" + checksum: 78d475e6aceb265956bcda07b57c8005f95805be12373907ba00dd4ef32f4d6ff77c8db3f7a05d75e01b71ef3401a10fe5389dfb7419a0c49e19278e8ded7a25 languageName: node linkType: hard -"web3-shh@npm:1.10.4": +"web3-providers-http@npm:1.10.4": version: 1.10.4 - resolution: "web3-shh@npm:1.10.4" + resolution: "web3-providers-http@npm:1.10.4" dependencies: - web3-core: "npm:1.10.4" - web3-core-method: "npm:1.10.4" - web3-core-subscriptions: "npm:1.10.4" - web3-net: "npm:1.10.4" - checksum: 73e497ba841ad378481fa786790fc929808b67d5824a41f48943332033a239028afb360723bcd463254fb0298c767289d749796718c07a3718e944b9b5fb156d + abortcontroller-polyfill: "npm:^1.7.5" + cross-fetch: "npm:^4.0.0" + es6-promise: "npm:^4.2.8" + web3-core-helpers: "npm:1.10.4" + checksum: 2ff27d45cc7c7b1e8f07a7917fe1502fef59e211b2ee97851369f9b6dab99ce81b0bef50f9ecf36286137fc41f1230f04b55b090d30f870fbc5ef1972d165b5f languageName: node linkType: hard -"web3-shh@npm:1.2.1": - version: 1.2.1 - resolution: "web3-shh@npm:1.2.1" +"web3-providers-ipc@npm:1.10.3": + version: 1.10.3 + resolution: "web3-providers-ipc@npm:1.10.3" dependencies: - web3-core: "npm:1.2.1" - web3-core-method: "npm:1.2.1" - web3-core-subscriptions: "npm:1.2.1" - web3-net: "npm:1.2.1" - checksum: 0e6c68862a877eef8dc1a2a11be5f60b6b5e07a9ced79421bc28b31a67d42ab80eb2568affb9968e76e290a61bdb362c4448585b13ebcadbb397207d43c5ce36 + oboe: "npm:2.1.5" + web3-core-helpers: "npm:1.10.3" + checksum: 2038d69831eb0fb63f06023b5a3ab307ba0337caead0e0bb0aee3279bfcebec586cd50602565ed98c9e1e16fb99a5b2e57b8aa980e0685bfb35bfb99b9cf4859 languageName: node linkType: hard -"web3-shh@npm:1.2.11": - version: 1.2.11 - resolution: "web3-shh@npm:1.2.11" +"web3-providers-ipc@npm:1.10.4": + version: 1.10.4 + resolution: "web3-providers-ipc@npm:1.10.4" dependencies: - web3-core: "npm:1.2.11" - web3-core-method: "npm:1.2.11" - web3-core-subscriptions: "npm:1.2.11" - web3-net: "npm:1.2.11" - checksum: b52124d4009b908004a2875bcb5fad3a195832c2cef5b1b4295416ffae9d722ea550075ef7fe631899192cf07f9ecf72b41a8b058eae2e92027cc2b57589a76a + oboe: "npm:2.1.5" + web3-core-helpers: "npm:1.10.4" + checksum: cd33a954f59ba3a9ca466dca0d6563f46c56879dc249d885b8edfee077f9f58ccf591ba06855e1d69baba52a8719c03684b0ba7b33d836bfdd4c6166e289c0d4 languageName: node linkType: hard -"web3-shh@npm:1.2.2": - version: 1.2.2 - resolution: "web3-shh@npm:1.2.2" +"web3-providers-ws@npm:1.10.3": + version: 1.10.3 + resolution: "web3-providers-ws@npm:1.10.3" dependencies: - web3-core: "npm:1.2.2" - web3-core-method: "npm:1.2.2" - web3-core-subscriptions: "npm:1.2.2" - web3-net: "npm:1.2.2" - checksum: 00d624d46fed4a20283b9355d48031f1affd40b64f0673dd5bf059df17297672cadce175060b60c4fb2ffabdbfebe15916e6619e7a7a35eccdace96a98e08d2a + eventemitter3: "npm:4.0.4" + web3-core-helpers: "npm:1.10.3" + websocket: "npm:^1.0.32" + checksum: 0fbf9be16939d5defbd9e9addae9718e119098e3c3d5ea0b6e54f9e3be5145731f7d1750a8e8f61a577608ca4b5f99a48a324bb7d7432ec62402f14d7a87ebe5 languageName: node linkType: hard -"web3-shh@npm:1.3.6": - version: 1.3.6 - resolution: "web3-shh@npm:1.3.6" +"web3-providers-ws@npm:1.10.4": + version: 1.10.4 + resolution: "web3-providers-ws@npm:1.10.4" dependencies: - web3-core: "npm:1.3.6" - web3-core-method: "npm:1.3.6" - web3-core-subscriptions: "npm:1.3.6" - web3-net: "npm:1.3.6" - checksum: b27e4c6414b3ab7b89573b7c8193a664280deac7799b82be77eca60e8eb9f867fabb86ac5a3a36b07f34b3bdbcc71836bf99606e7a87c4408e43d3f74befcf51 + eventemitter3: "npm:4.0.4" + web3-core-helpers: "npm:1.10.4" + websocket: "npm:^1.0.32" + checksum: 98cb76473ae1060e21ff474768a04c6dcd91724f24a1fac2d4a5f186a35bd2f119605fbb28423dfe5be33755b1e5808b10514ddaf326b57573b447efc84ef730 languageName: node linkType: hard -"web3-shh@npm:1.4.0": - version: 1.4.0 - resolution: "web3-shh@npm:1.4.0" +"web3-shh@npm:1.10.3": + version: 1.10.3 + resolution: "web3-shh@npm:1.10.3" dependencies: - web3-core: "npm:1.4.0" - web3-core-method: "npm:1.4.0" - web3-core-subscriptions: "npm:1.4.0" - web3-net: "npm:1.4.0" - checksum: 80770d42359b29e8a14cb2eeeacef09f5e87a4512757436d90e221ff1a24971f57d0fd910b22d137090e9e5da540f4c82e9be92c71e98baf96bad0ad901fa532 + web3-core: "npm:1.10.3" + web3-core-method: "npm:1.10.3" + web3-core-subscriptions: "npm:1.10.3" + web3-net: "npm:1.10.3" + checksum: 0697f7ee54e65f27daa237d396fb8c375088e9de1693bf3fffcc05a98cf06ee4a66813971e594d56023023d0559538bd5ef89273e44243bb16c52e614a51eeb7 languageName: node linkType: hard @@ -55149,22 +54514,23 @@ __metadata: languageName: node linkType: hard -"web3-utils@npm:1.10.0": - version: 1.10.0 - resolution: "web3-utils@npm:1.10.0" +"web3-utils@npm:1.10.3": + version: 1.10.3 + resolution: "web3-utils@npm:1.10.3" dependencies: + "@ethereumjs/util": "npm:^8.1.0" bn.js: "npm:^5.2.1" ethereum-bloom-filters: "npm:^1.0.6" - ethereumjs-util: "npm:^7.1.0" + ethereum-cryptography: "npm:^2.1.2" ethjs-unit: "npm:0.1.6" number-to-bn: "npm:1.7.0" randombytes: "npm:^2.1.0" utf8: "npm:3.0.0" - checksum: 8766d5bafafe37a0c647c79ea1adf5782e90b8db71133a92e5e492d04af3be65c33562a22f5a29a303c034d1fa755d08a71bd83e3a3e236101bd0e13e75b31da + checksum: 7303919fbea2be4a720eb7688a51edb84f993e481bf08ac482c0e3a8f100300ce9a1b51b2775a8356fd397aa2a64fa016d9621d9ced05bdbfe1013d6b5ea90ef languageName: node linkType: hard -"web3-utils@npm:1.10.4, web3-utils@npm:^1.0.0-beta.31, web3-utils@npm:^1.10.3, web3-utils@npm:^1.2.1, web3-utils@npm:^1.2.5, web3-utils@npm:^1.3.6, web3-utils@npm:^1.8.1": +"web3-utils@npm:1.10.4, web3-utils@npm:^1.10.3, web3-utils@npm:^1.3.6, web3-utils@npm:^1.8.1": version: 1.10.4 resolution: "web3-utils@npm:1.10.4" dependencies: @@ -55180,116 +54546,6 @@ __metadata: languageName: node linkType: hard -"web3-utils@npm:1.2.1": - version: 1.2.1 - resolution: "web3-utils@npm:1.2.1" - dependencies: - bn.js: "npm:4.11.8" - eth-lib: "npm:0.2.7" - ethjs-unit: "npm:0.1.6" - number-to-bn: "npm:1.7.0" - randomhex: "npm:0.1.5" - underscore: "npm:1.9.1" - utf8: "npm:3.0.0" - checksum: b3b4dce26c31b5031413587b59b7ddcb89acaa2256a2e8a8fee7846c40f57543a250474bd27020eaa0debf87d5dfb4f2e14f7656a8530038d764b0b77c10daea - languageName: node - linkType: hard - -"web3-utils@npm:1.2.11": - version: 1.2.11 - resolution: "web3-utils@npm:1.2.11" - dependencies: - bn.js: "npm:^4.11.9" - eth-lib: "npm:0.2.8" - ethereum-bloom-filters: "npm:^1.0.6" - ethjs-unit: "npm:0.1.6" - number-to-bn: "npm:1.7.0" - randombytes: "npm:^2.1.0" - underscore: "npm:1.9.1" - utf8: "npm:3.0.0" - checksum: 7ff2904a771595b56c1fb1ebbfbfdfad984e6d01adc84c0bf56de03482debc325dc32117f3155c44995c073f49eba96fd6a06424e94dd1943873aa3ded1e00d4 - languageName: node - linkType: hard - -"web3-utils@npm:1.2.2": - version: 1.2.2 - resolution: "web3-utils@npm:1.2.2" - dependencies: - bn.js: "npm:4.11.8" - eth-lib: "npm:0.2.7" - ethereum-bloom-filters: "npm:^1.0.6" - ethjs-unit: "npm:0.1.6" - number-to-bn: "npm:1.7.0" - randombytes: "npm:^2.1.0" - underscore: "npm:1.9.1" - utf8: "npm:3.0.0" - checksum: 2a6853ea20f4d3a235276de60b21d6940a5f73615651e6a699e86d189de4e178075d7c4270330f1a2b7e497555a15f56d1dbae61326b794d4b1dd2c551998cd5 - languageName: node - linkType: hard - -"web3-utils@npm:1.2.6": - version: 1.2.6 - resolution: "web3-utils@npm:1.2.6" - dependencies: - bn.js: "npm:4.11.8" - eth-lib: "npm:0.2.7" - ethereum-bloom-filters: "npm:^1.0.6" - ethjs-unit: "npm:0.1.6" - number-to-bn: "npm:1.7.0" - randombytes: "npm:^2.1.0" - underscore: "npm:1.9.1" - utf8: "npm:3.0.0" - checksum: e57d3e2663bfefb8acb5989bfd018de50d6828545b39cde9a580e071e9038b92f2cc89b5c0dfd321e2ec5c67b15a936b472a57341743dbdba6fd1d5ce7351083 - languageName: node - linkType: hard - -"web3-utils@npm:1.3.6": - version: 1.3.6 - resolution: "web3-utils@npm:1.3.6" - dependencies: - bn.js: "npm:^4.11.9" - eth-lib: "npm:0.2.8" - ethereum-bloom-filters: "npm:^1.0.6" - ethjs-unit: "npm:0.1.6" - number-to-bn: "npm:1.7.0" - randombytes: "npm:^2.1.0" - underscore: "npm:1.12.1" - utf8: "npm:3.0.0" - checksum: 82715b57eff0a6922c090b42c9b0e5eb46d89d0e04552c12265452a1d1f6d71f4c35b70e8d8f8ca377f7d586759d900ef13d2da64ee71b83c294355292644726 - languageName: node - linkType: hard - -"web3-utils@npm:1.4.0": - version: 1.4.0 - resolution: "web3-utils@npm:1.4.0" - dependencies: - bn.js: "npm:^4.11.9" - eth-lib: "npm:0.2.8" - ethereum-bloom-filters: "npm:^1.0.6" - ethjs-unit: "npm:0.1.6" - number-to-bn: "npm:1.7.0" - randombytes: "npm:^2.1.0" - underscore: "npm:1.12.1" - utf8: "npm:3.0.0" - checksum: 2c465b2dfb23544eaa4d2f4097a6fe1d3d8c6b63cca959e5ad75c555624ace924b9cf106281d1e0dace7a932c387f78aa2a0f36e0e1b95e6e0afc50063bc1be2 - languageName: node - linkType: hard - -"web3-utils@npm:1.5.3": - version: 1.5.3 - resolution: "web3-utils@npm:1.5.3" - dependencies: - bn.js: "npm:^4.11.9" - eth-lib: "npm:0.2.8" - ethereum-bloom-filters: "npm:^1.0.6" - ethjs-unit: "npm:0.1.6" - number-to-bn: "npm:1.7.0" - randombytes: "npm:^2.1.0" - utf8: "npm:3.0.0" - checksum: 2a2618fcba87a8e63eaa831b8b8e6f606020688ec1310f58bf5ea9bd8042e8cf1e0b7a0fef0614ee75bcde2bc31ea437755012778d97a3748d12562ebe2bfe38 - languageName: node - linkType: hard - "web3-utils@npm:1.7.0": version: 1.7.0 resolution: "web3-utils@npm:1.7.0" @@ -55318,109 +54574,18 @@ __metadata: languageName: node linkType: hard -"web3@npm:1.10.0": - version: 1.10.0 - resolution: "web3@npm:1.10.0" - dependencies: - web3-bzz: "npm:1.10.0" - web3-core: "npm:1.10.0" - web3-eth: "npm:1.10.0" - web3-eth-personal: "npm:1.10.0" - web3-net: "npm:1.10.0" - web3-shh: "npm:1.10.0" - web3-utils: "npm:1.10.0" - checksum: 9c8349a46d01bc1b91483a953f6e9078b3a15af451a3092c0ac663cb05f6acb1be6ea4ce82646af27373889bdc9ab94c82ec9c6544d11ab7eec3d911a94d929b - languageName: node - linkType: hard - -"web3@npm:1.2.1": - version: 1.2.1 - resolution: "web3@npm:1.2.1" - dependencies: - web3-bzz: "npm:1.2.1" - web3-core: "npm:1.2.1" - web3-eth: "npm:1.2.1" - web3-eth-personal: "npm:1.2.1" - web3-net: "npm:1.2.1" - web3-shh: "npm:1.2.1" - web3-utils: "npm:1.2.1" - checksum: b6e98d71646ec80acc216ee6c15cbe26fbc3776a5374229e7fb63384ae8389d2d6c0b975986b8f66743412117ce92fa28c9a8f426e9a57f9e05c0117f8c0da9b - languageName: node - linkType: hard - -"web3@npm:1.2.11": - version: 1.2.11 - resolution: "web3@npm:1.2.11" - dependencies: - web3-bzz: "npm:1.2.11" - web3-core: "npm:1.2.11" - web3-eth: "npm:1.2.11" - web3-eth-personal: "npm:1.2.11" - web3-net: "npm:1.2.11" - web3-shh: "npm:1.2.11" - web3-utils: "npm:1.2.11" - checksum: 6e55aada0269931f348c38a0ab2258f1a856c0dfafa85e21b4b12738415e91e8fc21e6ac16ac04b7d80aba6e0f6e15520ffc77a0a3a852617c1d826c0a91864f - languageName: node - linkType: hard - -"web3@npm:1.2.2": - version: 1.2.2 - resolution: "web3@npm:1.2.2" - dependencies: - "@types/node": "npm:^12.6.1" - web3-bzz: "npm:1.2.2" - web3-core: "npm:1.2.2" - web3-eth: "npm:1.2.2" - web3-eth-personal: "npm:1.2.2" - web3-net: "npm:1.2.2" - web3-shh: "npm:1.2.2" - web3-utils: "npm:1.2.2" - checksum: eee02f77aacd40e91c2e4598a1e46bfe13411ab791011cb08329753bb2f72688322f8e542c9e4fe8aa674bcd970739c8e1f63820b1b931b3c16e396ca0e4f597 - languageName: node - linkType: hard - -"web3@npm:1.3.6": - version: 1.3.6 - resolution: "web3@npm:1.3.6" - dependencies: - web3-bzz: "npm:1.3.6" - web3-core: "npm:1.3.6" - web3-eth: "npm:1.3.6" - web3-eth-personal: "npm:1.3.6" - web3-net: "npm:1.3.6" - web3-shh: "npm:1.3.6" - web3-utils: "npm:1.3.6" - checksum: 5e6ef59282dc5efd42b1e0957d7b1624f87d22993d6a1f2998c36c9228ae599dff5017845546ba35bf7e737aa434d4f6335daad274837c912a1875bf3b519da5 - languageName: node - linkType: hard - -"web3@npm:1.4.0": - version: 1.4.0 - resolution: "web3@npm:1.4.0" +"web3@npm:^1.10.3": + version: 1.10.3 + resolution: "web3@npm:1.10.3" dependencies: - web3-bzz: "npm:1.4.0" - web3-core: "npm:1.4.0" - web3-eth: "npm:1.4.0" - web3-eth-personal: "npm:1.4.0" - web3-net: "npm:1.4.0" - web3-shh: "npm:1.4.0" - web3-utils: "npm:1.4.0" - checksum: 93b3db62676c00920abc1208dffb211eee771327ed997cb2f70c5a826aab45ad3d778c8696c27da7aae5bdf6b6792dd7e08c1e6e3c66c42c084f91ba508eed15 - languageName: node - linkType: hard - -"web3@npm:^1.0.0-beta.34, web3@npm:^1.10.3, web3@npm:^1.2.1, web3@npm:^1.2.5": - version: 1.10.4 - resolution: "web3@npm:1.10.4" - dependencies: - web3-bzz: "npm:1.10.4" - web3-core: "npm:1.10.4" - web3-eth: "npm:1.10.4" - web3-eth-personal: "npm:1.10.4" - web3-net: "npm:1.10.4" - web3-shh: "npm:1.10.4" - web3-utils: "npm:1.10.4" - checksum: 3e6132a6fe7a76d071ab89cd4895f816d0af2fea5db04721483e9850e23f8c955a905ad3e583473aff3dcdab6e385eb6d7f727cc05738fb795aeadc0075e2179 + web3-bzz: "npm:1.10.3" + web3-core: "npm:1.10.3" + web3-eth: "npm:1.10.3" + web3-eth-personal: "npm:1.10.3" + web3-net: "npm:1.10.3" + web3-shh: "npm:1.10.3" + web3-utils: "npm:1.10.3" + checksum: 6087dc7efaed48ba8f9f944bdf0ac223e99ccb5f132fda791a314f8ce531b1a182e4274c8ee8a0191ae3203e70a762f52eea7e038ee2822719a849f4ec4c9e22 languageName: node linkType: hard @@ -55644,34 +54809,7 @@ __metadata: languageName: node linkType: hard -"websocket@github:web3-js/WebSocket-Node#polyfill/globalThis": - version: 1.0.29 - resolution: "websocket@https://github.com/web3-js/WebSocket-Node.git#commit=ef5ea2f41daf4a2113b80c9223df884b4d56c400" - dependencies: - debug: "npm:^2.2.0" - es5-ext: "npm:^0.10.50" - nan: "npm:^2.14.0" - typedarray-to-buffer: "npm:^3.1.5" - yaeti: "npm:^0.0.6" - checksum: 55307f1fc427c915bc3911f220abb1119d43dbdf953abfd12cb6a854ecf7bcbd22d32c05f1f793c0e8a5d13e10c4fe0c69177d7333d2976899fb1ac079f162cc - languageName: node - linkType: hard - -"websocket@npm:1.0.32": - version: 1.0.32 - resolution: "websocket@npm:1.0.32" - dependencies: - bufferutil: "npm:^4.0.1" - debug: "npm:^2.2.0" - es5-ext: "npm:^0.10.50" - typedarray-to-buffer: "npm:^3.1.5" - utf-8-validate: "npm:^5.0.2" - yaeti: "npm:^0.0.6" - checksum: be7f58b49f916c12fb1dc78f53b300132c3d8b8d2acc36f46dd1361594cdaa281c6af0d2691ce7a4333fb85baa76e00aca906e7fa428087ec6f539f92ffb2c1c - languageName: node - linkType: hard - -"websocket@npm:^1.0.31, websocket@npm:^1.0.32": +"websocket@npm:^1.0.32": version: 1.0.34 resolution: "websocket@npm:1.0.34" dependencies: @@ -55701,13 +54839,6 @@ __metadata: languageName: node linkType: hard -"whatwg-fetch@npm:^2.0.4": - version: 2.0.4 - resolution: "whatwg-fetch@npm:2.0.4" - checksum: 407d11d1761b3c2d15e3a92adcdeec73313fa0c0019aac59fdfac674d97f1a7014a8d7f4c9d3061d4a58ccb1c31d06a72e473d1716098007d356d94b01954a80 - languageName: node - linkType: hard - "whatwg-fetch@npm:^3.4.1": version: 3.6.20 resolution: "whatwg-fetch@npm:3.6.20" @@ -55798,13 +54929,6 @@ __metadata: languageName: node linkType: hard -"which-module@npm:^1.0.0": - version: 1.0.0 - resolution: "which-module@npm:1.0.0" - checksum: 98434f7deb36350cb543c1f15612188541737e1f12d39b23b1c371dff5cf4aa4746210f2bdec202d5fe9da8682adaf8e3f7c44c520687d30948cfc59d5534edb - languageName: node - linkType: hard - "which-module@npm:^2.0.0": version: 2.0.1 resolution: "which-module@npm:2.0.1" @@ -55812,7 +54936,7 @@ __metadata: languageName: node linkType: hard -"which-typed-array@npm:^1.1.13, which-typed-array@npm:^1.1.14, which-typed-array@npm:^1.1.2, which-typed-array@npm:^1.1.9": +"which-typed-array@npm:^1.1.13, which-typed-array@npm:^1.1.14": version: 1.1.14 resolution: "which-typed-array@npm:1.1.14" dependencies: @@ -55825,7 +54949,21 @@ __metadata: languageName: node linkType: hard -"which@npm:1.3.1, which@npm:^1.1.1, which@npm:^1.2.9, which@npm:^1.3.1": +"which-typed-array@npm:^1.1.2, which-typed-array@npm:^1.1.9": + version: 1.1.9 + resolution: "which-typed-array@npm:1.1.9" + dependencies: + available-typed-arrays: "npm:^1.0.5" + call-bind: "npm:^1.0.2" + for-each: "npm:^0.3.3" + gopd: "npm:^1.0.1" + has-tostringtag: "npm:^1.0.0" + is-typed-array: "npm:^1.1.10" + checksum: 90ef760a09dcffc479138a6bc77fd2933a81a41d531f4886ae212f6edb54a0645a43a6c24de2c096aea910430035ac56b3d22a06f3d64e5163fa178d0f24e08e + languageName: node + linkType: hard + +"which@npm:1.3.1, which@npm:^1.1.1, which@npm:^1.3.1": version: 1.3.1 resolution: "which@npm:1.3.1" dependencies: @@ -55913,15 +55051,6 @@ __metadata: languageName: node linkType: hard -"window-size@npm:^0.2.0": - version: 0.2.0 - resolution: "window-size@npm:0.2.0" - bin: - window-size: cli.js - checksum: cff0af628e807f149221726a781552705a530f1ebbf9f31af7683102343573dbbaabb1ea624eb823fb8e7ffe4316b48c0bbb3d87c05625efea8320cde8bc1201 - languageName: node - linkType: hard - "windows-release@npm:^5.0.1": version: 5.1.1 resolution: "windows-release@npm:5.1.1" @@ -55942,20 +55071,6 @@ __metadata: languageName: node linkType: hard -"winston@npm:2.x": - version: 2.4.7 - resolution: "winston@npm:2.4.7" - dependencies: - async: "npm:^2.6.4" - colors: "npm:1.0.x" - cycle: "npm:1.0.x" - eyes: "npm:0.1.x" - isstream: "npm:0.1.x" - stack-trace: "npm:0.0.x" - checksum: 44665f99bb1b1f290fc48879cd3bf635d0821ad70e90cdec0911a79b4ffd4f62ae4afa4764b27766e6a4ff60e911611047fd3f10b21d395eb0e3da33086d6c73 - languageName: node - linkType: hard - "winston@npm:3.8.2": version: 3.8.2 resolution: "winston@npm:3.8.2" @@ -56124,16 +55239,6 @@ __metadata: languageName: node linkType: hard -"wrap-ansi@npm:^2.0.0": - version: 2.1.0 - resolution: "wrap-ansi@npm:2.1.0" - dependencies: - string-width: "npm:^1.0.1" - strip-ansi: "npm:^3.0.1" - checksum: cf66d33f62f2edf0aac52685da98194e47ddf4ceb81d9f98f294b46ffbbf8662caa72a905b343aeab8d6a16cade982be5fc45df99235b07f781ebf68f051ca98 - languageName: node - linkType: hard - "wrap-ansi@npm:^3.0.1": version: 3.0.1 resolution: "wrap-ansi@npm:3.0.1" @@ -56283,15 +55388,6 @@ __metadata: languageName: node linkType: hard -"ws@npm:^5.1.1": - version: 5.2.3 - resolution: "ws@npm:5.2.3" - dependencies: - async-limiter: "npm:~1.0.0" - checksum: 5adfa5f636fdae931ac258c5a6d5d2de2d5b7430010625919a429ace4edf59d8de753266acf2410897966ef0391119900779963f5b9a40dd278337736df0f308 - languageName: node - linkType: hard - "ws@npm:^6.1.0": version: 6.2.2 resolution: "ws@npm:6.2.2" @@ -56362,16 +55458,7 @@ __metadata: languageName: node linkType: hard -"xhr2-cookies@npm:1.1.0": - version: 1.1.0 - resolution: "xhr2-cookies@npm:1.1.0" - dependencies: - cookiejar: "npm:^2.1.1" - checksum: 4af73cde9e6ab46cca756474015076d816441f8e44576191a1c26f92e9bc77d14340e3a0844a056f52963bdef6efac8831aedb9831a0cf8dbc4c1c0fd3e14af0 - languageName: node - linkType: hard - -"xhr@npm:^2.0.4, xhr@npm:^2.2.0, xhr@npm:^2.3.3": +"xhr@npm:^2.0.4, xhr@npm:^2.3.3": version: 2.6.0 resolution: "xhr@npm:2.6.0" dependencies: @@ -56436,15 +55523,6 @@ __metadata: languageName: node linkType: hard -"xtend@npm:~2.1.1": - version: 2.1.2 - resolution: "xtend@npm:2.1.2" - dependencies: - object-keys: "npm:~0.4.0" - checksum: a8b79f31502c163205984eaa2b196051cd2fab0882b49758e30f2f9018255bc6c462e32a090bf3385d1bda04755ad8cc0052a09e049b0038f49eb9b950d9c447 - languageName: node - linkType: hard - "xxhash-wasm@npm:^1.0.1": version: 1.0.2 resolution: "xxhash-wasm@npm:1.0.2" @@ -56452,13 +55530,6 @@ __metadata: languageName: node linkType: hard -"y18n@npm:^3.2.1": - version: 3.2.2 - resolution: "y18n@npm:3.2.2" - checksum: 42ee58e321252ac87f85ccc7cee01c2e3e224737531e9e543963264194255132ce406e02993904b84ea974050d53b8959dcf9da695408553c32f2a8b4b59a667 - languageName: node - linkType: hard - "y18n@npm:^4.0.0": version: 4.0.3 resolution: "y18n@npm:4.0.3" @@ -56582,16 +55653,6 @@ __metadata: languageName: node linkType: hard -"yargs-parser@npm:^2.4.1": - version: 2.4.1 - resolution: "yargs-parser@npm:2.4.1" - dependencies: - camelcase: "npm:^3.0.0" - lodash.assign: "npm:^4.0.6" - checksum: d6621070fdf24b2eab6421e02a3c3f38c2256746c713e95b1132e40adbe86bc40a5c1476d7c785dd0b93c6fbf712275669170778587a917afd0084f009a6bd11 - languageName: node - linkType: hard - "yargs-parser@npm:^20.2.2, yargs-parser@npm:^20.2.9": version: 20.2.9 resolution: "yargs-parser@npm:20.2.9" @@ -56715,29 +55776,7 @@ __metadata: languageName: node linkType: hard -"yargs@npm:^4.7.1": - version: 4.8.1 - resolution: "yargs@npm:4.8.1" - dependencies: - cliui: "npm:^3.2.0" - decamelize: "npm:^1.1.1" - get-caller-file: "npm:^1.0.1" - lodash.assign: "npm:^4.0.3" - os-locale: "npm:^1.4.0" - read-pkg-up: "npm:^1.0.1" - require-directory: "npm:^2.1.1" - require-main-filename: "npm:^1.0.1" - set-blocking: "npm:^2.0.0" - string-width: "npm:^1.0.1" - which-module: "npm:^1.0.0" - window-size: "npm:^0.2.0" - y18n: "npm:^3.2.1" - yargs-parser: "npm:^2.4.1" - checksum: d8fc064ab4c97ea0baf1bef0617204bc63824d007293c026a8108ecd7f9cdbba9f9cfa8aa96b5cfbb879649434dfe0113f5e4f71a920851ebef28e788e767e2a - languageName: node - linkType: hard - -"yauzl@npm:^2.10.0, yauzl@npm:^2.4.2": +"yauzl@npm:^2.10.0": version: 2.10.0 resolution: "yauzl@npm:2.10.0" dependencies: