bug: contract verifier address sent on mint calls (#239)

* chore: update hardhat to fix viaIR issues

* feat: add validations in main contract

* refactor: add hardhat tests

* test: add foundry tests
This commit is contained in:
Felipe Mendes 2023-04-25 15:58:50 -03:00 committed by GitHub
parent 957219b8af
commit cbe8b93594
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 245 additions and 126 deletions

View File

@ -113,7 +113,9 @@ contract FleekERC721 is
bool accessPointAutoApproval,
address verifier
) public payable requirePayment(Billing.Mint) returns (uint256) {
FleekENS.requireENSOwner(ens);
if (!hasCollectionRole(CollectionRoles.Verifier, verifier))
revert MustHaveCollectionRole(uint8(CollectionRoles.Verifier));
if (bytes(ens).length > 0) FleekENS.requireENSOwner(ens);
uint256 tokenId = _appIds;
_mint(to, tokenId);

View File

@ -45,7 +45,7 @@
"colorthief": "^2.3.2",
"dotenv": "^16.0.2",
"ethers": "^5.7.2",
"hardhat": "^2.11.2",
"hardhat": "^2.14.0",
"hardhat-contract-sizer": "^2.6.1",
"hardhat-gas-reporter": "^1.0.9",
"lint-staged": "^13.0.4",

View File

@ -103,4 +103,39 @@ contract Test_FleekERC721_Mint is Test_FleekERC721_Base {
assertEq(tokenId, 0);
assertEq(CuT.ownerOf(tokenId), to);
}
function testFuzz_shouldNotAllowMintWithInvalidVerifier(address verifier) public {
vm.assume(!CuT.hasCollectionRole(FleekAccessControl.CollectionRoles.Verifier, verifier));
expectRevertWithCollectionRole(FleekAccessControl.CollectionRoles.Verifier);
CuT.mint(
deployer,
TestConstants.APP_NAME,
TestConstants.APP_DESCRIPTION,
TestConstants.APP_EXTERNAL_URL,
TestConstants.APP_ENS,
TestConstants.APP_COMMIT_HASH,
TestConstants.APP_GIT_REPOSITORY,
TestConstants.LOGO_0,
TestConstants.APP_COLOR,
false,
verifier
);
}
function test_shouldAllowMintWithEmptyENS() public {
uint256 tokenId = CuT.mint(
deployer,
TestConstants.APP_NAME,
TestConstants.APP_DESCRIPTION,
TestConstants.APP_EXTERNAL_URL,
"",
TestConstants.APP_COMMIT_HASH,
TestConstants.APP_GIT_REPOSITORY,
TestConstants.LOGO_0,
TestConstants.APP_COLOR,
false,
deployer
);
assertEq(tokenId, 0);
}
}

View File

@ -1,9 +1,9 @@
import { loadFixture } from '@nomicfoundation/hardhat-network-helpers';
import { expect } from 'chai';
import { TestConstants, Fixtures } from './helpers';
import { TestConstants, Fixtures, Errors } from './helpers';
import { ethers } from 'hardhat';
const { MintParams } = TestConstants;
const { MintParams, CollectionRoles } = TestConstants;
describe('FleekERC721.Minting', () => {
it('should be able to mint a new token', async () => {
@ -51,4 +51,49 @@ describe('FleekERC721.Minting', () => {
expect(await contract.ownerOf(tokenId)).to.equal(owner.address);
expect(await contract.ownerOf(tokenId)).not.to.equal(otherAccount.address);
});
it('should not allow minting with non verifier account param', async () => {
const { owner, otherAccount, contract } = await loadFixture(
Fixtures.default
);
await expect(
contract.mint(
owner.address,
MintParams.name,
MintParams.description,
MintParams.externalUrl,
MintParams.ens,
MintParams.commitHash,
MintParams.gitRepository,
MintParams.logo,
MintParams.color,
MintParams.accessPointAutoApprovalSettings,
otherAccount.address
)
)
.to.be.revertedWithCustomError(contract, Errors.MustHaveCollectionRole)
.withArgs(CollectionRoles.Verifier);
});
it('should allow minting with empty ens', async () => {
const { owner, contract } = await loadFixture(Fixtures.default);
const response = await contract.mint(
owner.address,
MintParams.name,
MintParams.description,
MintParams.externalUrl,
'',
MintParams.commitHash,
MintParams.gitRepository,
MintParams.logo,
MintParams.color,
MintParams.accessPointAutoApprovalSettings,
owner.address
);
expect(response.value).to.be.instanceOf(ethers.BigNumber);
expect(response.value.toNumber()).to.equal(0);
});
});

View File

@ -104,6 +104,6 @@ describe('Deploy', () => {
TestConstants.MintParams.accessPointAutoApprovalSettings,
owner.address
)
).to.be.revertedWithCustomError(implementation, Errors.ContractIsPaused);
).to.be.reverted;
});
});

View File

@ -2,6 +2,42 @@
# yarn lockfile v1
"@chainsafe/as-sha256@^0.3.1":
version "0.3.1"
resolved "https://registry.yarnpkg.com/@chainsafe/as-sha256/-/as-sha256-0.3.1.tgz#3639df0e1435cab03f4d9870cc3ac079e57a6fc9"
integrity sha512-hldFFYuf49ed7DAakWVXSJODuq3pzJEguD8tQ7h+sGkM18vja+OFoJI9krnGmgzyuZC2ETX0NOIcCTy31v2Mtg==
"@chainsafe/persistent-merkle-tree@^0.4.2":
version "0.4.2"
resolved "https://registry.yarnpkg.com/@chainsafe/persistent-merkle-tree/-/persistent-merkle-tree-0.4.2.tgz#4c9ee80cc57cd3be7208d98c40014ad38f36f7ff"
integrity sha512-lLO3ihKPngXLTus/L7WHKaw9PnNJWizlOF1H9NNzHP6Xvh82vzg9F2bzkXhYIFshMZ2gTCEz8tq6STe7r5NDfQ==
dependencies:
"@chainsafe/as-sha256" "^0.3.1"
"@chainsafe/persistent-merkle-tree@^0.5.0":
version "0.5.0"
resolved "https://registry.yarnpkg.com/@chainsafe/persistent-merkle-tree/-/persistent-merkle-tree-0.5.0.tgz#2b4a62c9489a5739dedd197250d8d2f5427e9f63"
integrity sha512-l0V1b5clxA3iwQLXP40zYjyZYospQLZXzBVIhhr9kDg/1qHZfzzHw0jj4VPBijfYCArZDlPkRi1wZaV2POKeuw==
dependencies:
"@chainsafe/as-sha256" "^0.3.1"
"@chainsafe/ssz@^0.10.0":
version "0.10.2"
resolved "https://registry.yarnpkg.com/@chainsafe/ssz/-/ssz-0.10.2.tgz#c782929e1bb25fec66ba72e75934b31fd087579e"
integrity sha512-/NL3Lh8K+0q7A3LsiFq09YXS9fPE+ead2rr7vM2QK8PLzrNsw3uqrif9bpRX5UxgeRjM+vYi+boCM3+GM4ovXg==
dependencies:
"@chainsafe/as-sha256" "^0.3.1"
"@chainsafe/persistent-merkle-tree" "^0.5.0"
"@chainsafe/ssz@^0.9.2":
version "0.9.4"
resolved "https://registry.yarnpkg.com/@chainsafe/ssz/-/ssz-0.9.4.tgz#696a8db46d6975b600f8309ad3a12f7c0e310497"
integrity sha512-77Qtg2N1ayqs4Bg/wvnWfg5Bta7iy7IRh8XqXh7oNMeP2HBbBwx8m6yTpA8p0EHItWPEBkgZd5S5/LSlp3GXuQ==
dependencies:
"@chainsafe/as-sha256" "^0.3.1"
"@chainsafe/persistent-merkle-tree" "^0.4.2"
case "^1.6.3"
"@colors/colors@1.5.0":
version "1.5.0"
resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9"
@ -256,7 +292,7 @@
dependencies:
"@ethersproject/logger" "^5.7.0"
"@ethersproject/providers@5.7.2":
"@ethersproject/providers@5.7.2", "@ethersproject/providers@^5.7.1", "@ethersproject/providers@^5.7.2":
version "5.7.2"
resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.7.2.tgz#f8b1a4f275d7ce58cf0a2eec222269a08beb18cb"
integrity sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg==
@ -477,29 +513,31 @@
"@nodelib/fs.scandir" "2.1.5"
fastq "^1.6.0"
"@nomicfoundation/ethereumjs-block@^4.0.0":
version "4.0.0"
resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-block/-/ethereumjs-block-4.0.0.tgz#fdd5c045e7baa5169abeed0e1202bf94e4481c49"
integrity sha512-bk8uP8VuexLgyIZAHExH1QEovqx0Lzhc9Ntm63nCRKLHXIZkobaFaeCVwTESV7YkPKUk7NiK11s8ryed4CS9yA==
"@nomicfoundation/ethereumjs-block@5.0.1":
version "5.0.1"
resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-block/-/ethereumjs-block-5.0.1.tgz#6f89664f55febbd723195b6d0974773d29ee133d"
integrity sha512-u1Yioemi6Ckj3xspygu/SfFvm8vZEO8/Yx5a1QLzi6nVU0jz3Pg2OmHKJ5w+D9Ogk1vhwRiqEBAqcb0GVhCyHw==
dependencies:
"@nomicfoundation/ethereumjs-common" "^3.0.0"
"@nomicfoundation/ethereumjs-rlp" "^4.0.0"
"@nomicfoundation/ethereumjs-trie" "^5.0.0"
"@nomicfoundation/ethereumjs-tx" "^4.0.0"
"@nomicfoundation/ethereumjs-util" "^8.0.0"
"@nomicfoundation/ethereumjs-common" "4.0.1"
"@nomicfoundation/ethereumjs-rlp" "5.0.1"
"@nomicfoundation/ethereumjs-trie" "6.0.1"
"@nomicfoundation/ethereumjs-tx" "5.0.1"
"@nomicfoundation/ethereumjs-util" "9.0.1"
ethereum-cryptography "0.1.3"
ethers "^5.7.1"
"@nomicfoundation/ethereumjs-blockchain@^6.0.0":
version "6.0.0"
resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-blockchain/-/ethereumjs-blockchain-6.0.0.tgz#1a8c243a46d4d3691631f139bfb3a4a157187b0c"
integrity sha512-pLFEoea6MWd81QQYSReLlLfH7N9v7lH66JC/NMPN848ySPPQA5renWnE7wPByfQFzNrPBuDDRFFULMDmj1C0xw==
"@nomicfoundation/ethereumjs-blockchain@7.0.1":
version "7.0.1"
resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-blockchain/-/ethereumjs-blockchain-7.0.1.tgz#80e0bd3535bfeb9baa29836b6f25123dab06a726"
integrity sha512-NhzndlGg829XXbqJEYrF1VeZhAwSPgsK/OB7TVrdzft3y918hW5KNd7gIZ85sn6peDZOdjBsAXIpXZ38oBYE5A==
dependencies:
"@nomicfoundation/ethereumjs-block" "^4.0.0"
"@nomicfoundation/ethereumjs-common" "^3.0.0"
"@nomicfoundation/ethereumjs-ethash" "^2.0.0"
"@nomicfoundation/ethereumjs-rlp" "^4.0.0"
"@nomicfoundation/ethereumjs-trie" "^5.0.0"
"@nomicfoundation/ethereumjs-util" "^8.0.0"
"@nomicfoundation/ethereumjs-block" "5.0.1"
"@nomicfoundation/ethereumjs-common" "4.0.1"
"@nomicfoundation/ethereumjs-ethash" "3.0.1"
"@nomicfoundation/ethereumjs-rlp" "5.0.1"
"@nomicfoundation/ethereumjs-trie" "6.0.1"
"@nomicfoundation/ethereumjs-tx" "5.0.1"
"@nomicfoundation/ethereumjs-util" "9.0.1"
abstract-level "^1.0.3"
debug "^4.3.3"
ethereum-cryptography "0.1.3"
@ -507,105 +545,105 @@
lru-cache "^5.1.1"
memory-level "^1.0.0"
"@nomicfoundation/ethereumjs-common@^3.0.0":
version "3.0.0"
resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-common/-/ethereumjs-common-3.0.0.tgz#f6bcc7753994555e49ab3aa517fc8bcf89c280b9"
integrity sha512-WS7qSshQfxoZOpHG/XqlHEGRG1zmyjYrvmATvc4c62+gZXgre1ymYP8ZNgx/3FyZY0TWe9OjFlKOfLqmgOeYwA==
"@nomicfoundation/ethereumjs-common@4.0.1":
version "4.0.1"
resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-common/-/ethereumjs-common-4.0.1.tgz#4702d82df35b07b5407583b54a45bf728e46a2f0"
integrity sha512-OBErlkfp54GpeiE06brBW/TTbtbuBJV5YI5Nz/aB2evTDo+KawyEzPjBlSr84z/8MFfj8wS2wxzQX1o32cev5g==
dependencies:
"@nomicfoundation/ethereumjs-util" "^8.0.0"
"@nomicfoundation/ethereumjs-util" "9.0.1"
crc-32 "^1.2.0"
"@nomicfoundation/ethereumjs-ethash@^2.0.0":
version "2.0.0"
resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-ethash/-/ethereumjs-ethash-2.0.0.tgz#11539c32fe0990e1122ff987d1b84cfa34774e81"
integrity sha512-WpDvnRncfDUuXdsAXlI4lXbqUDOA+adYRQaEezIkxqDkc+LDyYDbd/xairmY98GnQzo1zIqsIL6GB5MoMSJDew==
"@nomicfoundation/ethereumjs-ethash@3.0.1":
version "3.0.1"
resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-ethash/-/ethereumjs-ethash-3.0.1.tgz#65ca494d53e71e8415c9a49ef48bc921c538fc41"
integrity sha512-KDjGIB5igzWOp8Ik5I6QiRH5DH+XgILlplsHR7TEuWANZA759G6krQ6o8bvj+tRUz08YygMQu/sGd9mJ1DYT8w==
dependencies:
"@nomicfoundation/ethereumjs-block" "^4.0.0"
"@nomicfoundation/ethereumjs-rlp" "^4.0.0"
"@nomicfoundation/ethereumjs-util" "^8.0.0"
"@nomicfoundation/ethereumjs-block" "5.0.1"
"@nomicfoundation/ethereumjs-rlp" "5.0.1"
"@nomicfoundation/ethereumjs-util" "9.0.1"
abstract-level "^1.0.3"
bigint-crypto-utils "^3.0.23"
ethereum-cryptography "0.1.3"
"@nomicfoundation/ethereumjs-evm@^1.0.0":
version "1.0.0"
resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-evm/-/ethereumjs-evm-1.0.0.tgz#99cd173c03b59107c156a69c5e215409098a370b"
integrity sha512-hVS6qRo3V1PLKCO210UfcEQHvlG7GqR8iFzp0yyjTg2TmJQizcChKgWo8KFsdMw6AyoLgLhHGHw4HdlP8a4i+Q==
"@nomicfoundation/ethereumjs-evm@2.0.1":
version "2.0.1"
resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-evm/-/ethereumjs-evm-2.0.1.tgz#f35681e203363f69ce2b3d3bf9f44d4e883ca1f1"
integrity sha512-oL8vJcnk0Bx/onl+TgQOQ1t/534GKFaEG17fZmwtPFeH8S5soiBYPCLUrvANOl4sCp9elYxIMzIiTtMtNNN8EQ==
dependencies:
"@nomicfoundation/ethereumjs-common" "^3.0.0"
"@nomicfoundation/ethereumjs-util" "^8.0.0"
"@types/async-eventemitter" "^0.2.1"
async-eventemitter "^0.2.4"
"@ethersproject/providers" "^5.7.1"
"@nomicfoundation/ethereumjs-common" "4.0.1"
"@nomicfoundation/ethereumjs-tx" "5.0.1"
"@nomicfoundation/ethereumjs-util" "9.0.1"
debug "^4.3.3"
ethereum-cryptography "0.1.3"
mcl-wasm "^0.7.1"
rustbn.js "~0.2.0"
"@nomicfoundation/ethereumjs-rlp@^4.0.0", "@nomicfoundation/ethereumjs-rlp@^4.0.0-beta.2":
version "4.0.0"
resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-rlp/-/ethereumjs-rlp-4.0.0.tgz#d9a9c5f0f10310c8849b6525101de455a53e771d"
integrity sha512-GaSOGk5QbUk4eBP5qFbpXoZoZUj/NrW7MRa0tKY4Ew4c2HAS0GXArEMAamtFrkazp0BO4K5p2ZCG3b2FmbShmw==
"@nomicfoundation/ethereumjs-rlp@5.0.1":
version "5.0.1"
resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-rlp/-/ethereumjs-rlp-5.0.1.tgz#0b30c1cf77d125d390408e391c4bb5291ef43c28"
integrity sha512-xtxrMGa8kP4zF5ApBQBtjlSbN5E2HI8m8FYgVSYAnO6ssUoY5pVPGy2H8+xdf/bmMa22Ce8nWMH3aEW8CcqMeQ==
"@nomicfoundation/ethereumjs-statemanager@^1.0.0":
version "1.0.0"
resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-statemanager/-/ethereumjs-statemanager-1.0.0.tgz#14a9d4e1c828230368f7ab520c144c34d8721e4b"
integrity sha512-jCtqFjcd2QejtuAMjQzbil/4NHf5aAWxUc+CvS0JclQpl+7M0bxMofR2AJdtz+P3u0ke2euhYREDiE7iSO31vQ==
"@nomicfoundation/ethereumjs-statemanager@2.0.1":
version "2.0.1"
resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-statemanager/-/ethereumjs-statemanager-2.0.1.tgz#8824a97938db4471911e2d2f140f79195def5935"
integrity sha512-B5ApMOnlruVOR7gisBaYwFX+L/AP7i/2oAahatssjPIBVDF6wTX1K7Qpa39E/nzsH8iYuL3krkYeUFIdO3EMUQ==
dependencies:
"@nomicfoundation/ethereumjs-common" "^3.0.0"
"@nomicfoundation/ethereumjs-rlp" "^4.0.0"
"@nomicfoundation/ethereumjs-trie" "^5.0.0"
"@nomicfoundation/ethereumjs-util" "^8.0.0"
"@nomicfoundation/ethereumjs-common" "4.0.1"
"@nomicfoundation/ethereumjs-rlp" "5.0.1"
debug "^4.3.3"
ethereum-cryptography "0.1.3"
functional-red-black-tree "^1.0.1"
ethers "^5.7.1"
js-sdsl "^4.1.4"
"@nomicfoundation/ethereumjs-trie@^5.0.0":
version "5.0.0"
resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-trie/-/ethereumjs-trie-5.0.0.tgz#dcfbe3be53a94bc061c9767a396c16702bc2f5b7"
integrity sha512-LIj5XdE+s+t6WSuq/ttegJzZ1vliwg6wlb+Y9f4RlBpuK35B9K02bO7xU+E6Rgg9RGptkWd6TVLdedTI4eNc2A==
"@nomicfoundation/ethereumjs-trie@6.0.1":
version "6.0.1"
resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-trie/-/ethereumjs-trie-6.0.1.tgz#662c55f6b50659fd4b22ea9f806a7401cafb7717"
integrity sha512-A64It/IMpDVODzCgxDgAAla8jNjNtsoQZIzZUfIV5AY6Coi4nvn7+VReBn5itlxMiL2yaTlQr9TRWp3CSI6VoA==
dependencies:
"@nomicfoundation/ethereumjs-rlp" "^4.0.0"
"@nomicfoundation/ethereumjs-util" "^8.0.0"
"@nomicfoundation/ethereumjs-rlp" "5.0.1"
"@nomicfoundation/ethereumjs-util" "9.0.1"
"@types/readable-stream" "^2.3.13"
ethereum-cryptography "0.1.3"
readable-stream "^3.6.0"
"@nomicfoundation/ethereumjs-tx@^4.0.0":
version "4.0.0"
resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-tx/-/ethereumjs-tx-4.0.0.tgz#59dc7452b0862b30342966f7052ab9a1f7802f52"
integrity sha512-Gg3Lir2lNUck43Kp/3x6TfBNwcWC9Z1wYue9Nz3v4xjdcv6oDW9QSMJxqsKw9QEGoBBZ+gqwpW7+F05/rs/g1w==
"@nomicfoundation/ethereumjs-tx@5.0.1":
version "5.0.1"
resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-tx/-/ethereumjs-tx-5.0.1.tgz#7629dc2036b4a33c34e9f0a592b43227ef4f0c7d"
integrity sha512-0HwxUF2u2hrsIM1fsasjXvlbDOq1ZHFV2dd1yGq8CA+MEYhaxZr8OTScpVkkxqMwBcc5y83FyPl0J9MZn3kY0w==
dependencies:
"@nomicfoundation/ethereumjs-common" "^3.0.0"
"@nomicfoundation/ethereumjs-rlp" "^4.0.0"
"@nomicfoundation/ethereumjs-util" "^8.0.0"
"@chainsafe/ssz" "^0.9.2"
"@ethersproject/providers" "^5.7.2"
"@nomicfoundation/ethereumjs-common" "4.0.1"
"@nomicfoundation/ethereumjs-rlp" "5.0.1"
"@nomicfoundation/ethereumjs-util" "9.0.1"
ethereum-cryptography "0.1.3"
"@nomicfoundation/ethereumjs-util@^8.0.0":
version "8.0.0"
resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-util/-/ethereumjs-util-8.0.0.tgz#deb2b15d2c308a731e82977aefc4e61ca0ece6c5"
integrity sha512-2emi0NJ/HmTG+CGY58fa+DQuAoroFeSH9gKu9O6JnwTtlzJtgfTixuoOqLEgyyzZVvwfIpRueuePb8TonL1y+A==
"@nomicfoundation/ethereumjs-util@9.0.1":
version "9.0.1"
resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-util/-/ethereumjs-util-9.0.1.tgz#530cda8bae33f8b5020a8f199ed1d0a2ce48ec89"
integrity sha512-TwbhOWQ8QoSCFhV/DDfSmyfFIHjPjFBj957219+V3jTZYZ2rf9PmDtNOeZWAE3p3vlp8xb02XGpd0v6nTUPbsA==
dependencies:
"@nomicfoundation/ethereumjs-rlp" "^4.0.0-beta.2"
"@chainsafe/ssz" "^0.10.0"
"@nomicfoundation/ethereumjs-rlp" "5.0.1"
ethereum-cryptography "0.1.3"
"@nomicfoundation/ethereumjs-vm@^6.0.0":
version "6.0.0"
resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-vm/-/ethereumjs-vm-6.0.0.tgz#2bb50d332bf41790b01a3767ffec3987585d1de6"
integrity sha512-JMPxvPQ3fzD063Sg3Tp+UdwUkVxMoo1uML6KSzFhMH3hoQi/LMuXBoEHAoW83/vyNS9BxEe6jm6LmT5xdeEJ6w==
"@nomicfoundation/ethereumjs-vm@7.0.1":
version "7.0.1"
resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-vm/-/ethereumjs-vm-7.0.1.tgz#7d035e0993bcad10716c8b36e61dfb87fa3ca05f"
integrity sha512-rArhyn0jPsS/D+ApFsz3yVJMQ29+pVzNZ0VJgkzAZ+7FqXSRtThl1C1prhmlVr3YNUlfpZ69Ak+RUT4g7VoOuQ==
dependencies:
"@nomicfoundation/ethereumjs-block" "^4.0.0"
"@nomicfoundation/ethereumjs-blockchain" "^6.0.0"
"@nomicfoundation/ethereumjs-common" "^3.0.0"
"@nomicfoundation/ethereumjs-evm" "^1.0.0"
"@nomicfoundation/ethereumjs-rlp" "^4.0.0"
"@nomicfoundation/ethereumjs-statemanager" "^1.0.0"
"@nomicfoundation/ethereumjs-trie" "^5.0.0"
"@nomicfoundation/ethereumjs-tx" "^4.0.0"
"@nomicfoundation/ethereumjs-util" "^8.0.0"
"@types/async-eventemitter" "^0.2.1"
async-eventemitter "^0.2.4"
"@nomicfoundation/ethereumjs-block" "5.0.1"
"@nomicfoundation/ethereumjs-blockchain" "7.0.1"
"@nomicfoundation/ethereumjs-common" "4.0.1"
"@nomicfoundation/ethereumjs-evm" "2.0.1"
"@nomicfoundation/ethereumjs-rlp" "5.0.1"
"@nomicfoundation/ethereumjs-statemanager" "2.0.1"
"@nomicfoundation/ethereumjs-trie" "6.0.1"
"@nomicfoundation/ethereumjs-tx" "5.0.1"
"@nomicfoundation/ethereumjs-util" "9.0.1"
debug "^4.3.3"
ethereum-cryptography "0.1.3"
functional-red-black-tree "^1.0.1"
mcl-wasm "^0.7.1"
rustbn.js "~0.2.0"
@ -901,11 +939,6 @@
resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.3.tgz#472eaab5f15c1ffdd7f8628bd4c4f753995ec79e"
integrity sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==
"@types/async-eventemitter@^0.2.1":
version "0.2.1"
resolved "https://registry.yarnpkg.com/@types/async-eventemitter/-/async-eventemitter-0.2.1.tgz#f8e6280e87e8c60b2b938624b0a3530fb3e24712"
integrity sha512-M2P4Ng26QbAeITiH7w1d7OxtldgfAe0wobpyJzVK/XOb0cUGKU2R4pfAhqcJBXAe2ife5ZOhSv4wk7p+ffURtg==
"@types/bignumber.js@^5.0.0":
version "5.0.0"
resolved "https://registry.yarnpkg.com/@types/bignumber.js/-/bignumber.js-5.0.0.tgz#d9f1a378509f3010a3255e9cc822ad0eeb4ab969"
@ -1030,6 +1063,14 @@
resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb"
integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==
"@types/readable-stream@^2.3.13":
version "2.3.15"
resolved "https://registry.yarnpkg.com/@types/readable-stream/-/readable-stream-2.3.15.tgz#3d79c9ceb1b6a57d5f6e6976f489b9b5384321ae"
integrity sha512-oM5JSKQCcICF1wvGgmecmHldZ48OZamtMxcGGVICOJA8o8cahXC1zEVAif8iwoc5j8etxFaRFnf095+CDsuoFQ==
dependencies:
"@types/node" "*"
safe-buffer "~5.1.1"
"@types/responselike@^1.0.0":
version "1.0.0"
resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29"
@ -1296,13 +1337,6 @@ astral-regex@^2.0.0:
resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31"
integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==
async-eventemitter@^0.2.4:
version "0.2.4"
resolved "https://registry.yarnpkg.com/async-eventemitter/-/async-eventemitter-0.2.4.tgz#f5e7c8ca7d3e46aab9ec40a292baf686a0bafaca"
integrity sha512-pd20BwL7Yt1zwDFy+8MX8F1+WCT8aQeKj0kQnTrH9WaeRETlRamVhD0JtRPmrV4GfOJ2F9CvdQkZeZhnh2TuHw==
dependencies:
async "^2.4.0"
async-limiter@~1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd"
@ -1313,13 +1347,6 @@ async@1.x:
resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
integrity sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==
async@^2.4.0:
version "2.6.4"
resolved "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221"
integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==
dependencies:
lodash "^4.17.14"
asynckit@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
@ -1604,6 +1631,11 @@ camelcase@^6.0.0:
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a"
integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==
case@^1.6.3:
version "1.6.3"
resolved "https://registry.yarnpkg.com/case/-/case-1.6.3.tgz#0a4386e3e9825351ca2e6216c60467ff5f1ea1c9"
integrity sha512-mzDSXIPaFwVDvZAHqZ9VlbyF4yyXRuX6IvB06WvPYkqJVO24kX1PPhv9bfpKNFZyxYFmmgo03HUiD8iklmJYRQ==
caseless@^0.12.0, caseless@~0.12.0:
version "0.12.0"
resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
@ -2564,7 +2596,7 @@ ethers@^4.0.40:
uuid "2.0.1"
xmlhttprequest "1.8.0"
ethers@^5.7.2:
ethers@^5.7.1, ethers@^5.7.2:
version "5.7.2"
resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.7.2.tgz#3a7deeabbb8c030d4126b24f84e525466145872e"
integrity sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==
@ -3230,23 +3262,23 @@ hardhat-gas-reporter@^1.0.9:
eth-gas-reporter "^0.2.25"
sha1 "^1.1.1"
hardhat@^2.11.2:
version "2.12.6"
resolved "https://registry.yarnpkg.com/hardhat/-/hardhat-2.12.6.tgz#ea3c058bbd81850867389d10f76037cfa52a0019"
integrity sha512-0Ent1O5DsPgvaVb5sxEgsQ3bJRt/Ex92tsoO+xjoNH2Qc4bFmhI5/CHVlFikulalxOPjNmw5XQ2vJFuVQFESAA==
hardhat@^2.14.0:
version "2.14.0"
resolved "https://registry.yarnpkg.com/hardhat/-/hardhat-2.14.0.tgz#b60c74861494aeb1b50803cf04cc47865a42b87a"
integrity sha512-73jsInY4zZahMSVFurSK+5TNCJTXMv+vemvGia0Ac34Mm19fYp6vEPVGF3sucbumszsYxiTT2TbS8Ii2dsDSoQ==
dependencies:
"@ethersproject/abi" "^5.1.2"
"@metamask/eth-sig-util" "^4.0.0"
"@nomicfoundation/ethereumjs-block" "^4.0.0"
"@nomicfoundation/ethereumjs-blockchain" "^6.0.0"
"@nomicfoundation/ethereumjs-common" "^3.0.0"
"@nomicfoundation/ethereumjs-evm" "^1.0.0"
"@nomicfoundation/ethereumjs-rlp" "^4.0.0"
"@nomicfoundation/ethereumjs-statemanager" "^1.0.0"
"@nomicfoundation/ethereumjs-trie" "^5.0.0"
"@nomicfoundation/ethereumjs-tx" "^4.0.0"
"@nomicfoundation/ethereumjs-util" "^8.0.0"
"@nomicfoundation/ethereumjs-vm" "^6.0.0"
"@nomicfoundation/ethereumjs-block" "5.0.1"
"@nomicfoundation/ethereumjs-blockchain" "7.0.1"
"@nomicfoundation/ethereumjs-common" "4.0.1"
"@nomicfoundation/ethereumjs-evm" "2.0.1"
"@nomicfoundation/ethereumjs-rlp" "5.0.1"
"@nomicfoundation/ethereumjs-statemanager" "2.0.1"
"@nomicfoundation/ethereumjs-trie" "6.0.1"
"@nomicfoundation/ethereumjs-tx" "5.0.1"
"@nomicfoundation/ethereumjs-util" "9.0.1"
"@nomicfoundation/ethereumjs-vm" "7.0.1"
"@nomicfoundation/solidity-analyzer" "^0.1.0"
"@sentry/node" "^5.18.1"
"@types/bn.js" "^5.1.0"
@ -3766,6 +3798,11 @@ jpeg-js@^0.4.1:
resolved "https://registry.yarnpkg.com/jpeg-js/-/jpeg-js-0.4.4.tgz#a9f1c6f1f9f0fa80cdb3484ed9635054d28936aa"
integrity sha512-WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg==
js-sdsl@^4.1.4:
version "4.4.0"
resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.4.0.tgz#8b437dbe642daa95760400b602378ed8ffea8430"
integrity sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==
js-sha3@0.5.7, js-sha3@^0.5.7:
version "0.5.7"
resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.5.7.tgz#0d4ffd8002d5333aabaf4a23eed2f6374c9f28e7"