From bfd4c2d7184ce7876b1c29953c54b810e54df8fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9C0xkf=E2=80=9D?= Date: Thu, 20 Oct 2022 01:58:55 +0900 Subject: [PATCH] modified --- contracts/mocks/ERC3525Mock.sol | 1 + hardhat.config.ts | 1 + package-lock.json | 76 ++++++++++++++++----------------- package.json | 2 + test/index.ts | 15 ++++--- test/lib/constants.ts | 2 +- 6 files changed, 51 insertions(+), 46 deletions(-) diff --git a/contracts/mocks/ERC3525Mock.sol b/contracts/mocks/ERC3525Mock.sol index 22323ee..13a627a 100644 --- a/contracts/mocks/ERC3525Mock.sol +++ b/contracts/mocks/ERC3525Mock.sol @@ -9,6 +9,7 @@ import "../utils/StringConvertor.sol"; contract ERC3525Mock is ERC3525Upgradeable { using StringConvertor for uint256; + using Strings for uint256; /** * @notice Properties of the slot, which determine the value of slot. diff --git a/hardhat.config.ts b/hardhat.config.ts index d97b727..3b8b539 100644 --- a/hardhat.config.ts +++ b/hardhat.config.ts @@ -1,4 +1,5 @@ require("@nomicfoundation/hardhat-toolbox"); +require("@nomiclabs/hardhat-ethers"); module.exports = { solidity: { diff --git a/package-lock.json b/package-lock.json index df6f96f..b8421df 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,6 +16,7 @@ "@nomicfoundation/hardhat-chai-matchers": "^1.0.3", "@nomicfoundation/hardhat-network-helpers": "^1.0.4", "@nomicfoundation/hardhat-toolbox": "^1.0.2", + "@nomiclabs/hardhat-ethers": "^2.2.0", "dotenv": "^16.0.1", "eslint": "^8.23.0", "eslint-config-prettier": "^8.5.0", @@ -24,6 +25,7 @@ "eslint-plugin-node": "^11.1.0", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-promise": "^6.0.1", + "ethers": "^5.7.1", "hardhat": "^2.10.2", "hardhat-contract-sizer": "^2.6.1", "hardhat-tracer": "^1.1.0-rc.8", @@ -625,9 +627,9 @@ ] }, "node_modules/@ethersproject/networks": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.0.tgz", - "integrity": "sha512-MG6oHSQHd4ebvJrleEQQ4HhVu8Ichr0RDYEfHzsVAVjHNM+w36x9wp9r+hf1JstMXtseXDtkiVoARAG6M959AA==", + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz", + "integrity": "sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==", "dev": true, "funding": [ { @@ -683,9 +685,9 @@ } }, "node_modules/@ethersproject/providers": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.0.tgz", - "integrity": "sha512-+TTrrINMzZ0aXtlwO/95uhAggKm4USLm1PbeCBR/3XZ7+Oey+3pMyddzZEyRhizHpy1HXV0FRWRMI1O3EGYibA==", + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.1.tgz", + "integrity": "sha512-vZveG/DLyo+wk4Ga1yx6jSEHrLPgmTt+dFv0dv8URpVCRf0jVhalps1jq/emN/oXnMRsC7cQgAF32DcXLL7BPQ==", "dev": true, "funding": [ { @@ -932,9 +934,9 @@ } }, "node_modules/@ethersproject/web": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.0.tgz", - "integrity": "sha512-ApHcbbj+muRASVDSCl/tgxaH2LBkRMEYfLOLVa0COipx0+nlu0QKet7U2lEg0vdkh8XRSLf2nd1f1Uk9SrVSGA==", + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz", + "integrity": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==", "dev": true, "funding": [ { @@ -1284,11 +1286,10 @@ } }, "node_modules/@nomiclabs/hardhat-ethers": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-ethers/-/hardhat-ethers-2.1.1.tgz", - "integrity": "sha512-Gg0IFkT/DW3vOpih4/kMjeZCLYqtfgECLeLXTs7ZDPzcK0cfoc5wKk4nq5n/izCUzdhidO/Utd6ptF9JrWwWVA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-ethers/-/hardhat-ethers-2.2.0.tgz", + "integrity": "sha512-kKCW7xawuD/lw69Yr1yqUUrF0IKmnLNGf+pTVbJ/ctHaRcPrwKI0EPkO1RNXBHlOOZkv6v4DK2PPvq0lL2ykig==", "dev": true, - "peer": true, "peerDependencies": { "ethers": "^5.0.0", "hardhat": "^2.0.0" @@ -5895,9 +5896,9 @@ } }, "node_modules/ethers": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.0.tgz", - "integrity": "sha512-5Xhzp2ZQRi0Em+0OkOcRHxPzCfoBfgtOQA+RUylSkuHbhTEaQklnYi2hsWbRgs3ztJsXVXd9VKBcO1ScWL8YfA==", + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.1.tgz", + "integrity": "sha512-5krze4dRLITX7FpU8J4WscXqADiKmyeNlylmmDLbS95DaZpBhDe2YSwRQwKXWNyXcox7a3gBgm/MkGXV1O1S/Q==", "dev": true, "funding": [ { @@ -5925,10 +5926,10 @@ "@ethersproject/json-wallets": "5.7.0", "@ethersproject/keccak256": "5.7.0", "@ethersproject/logger": "5.7.0", - "@ethersproject/networks": "5.7.0", + "@ethersproject/networks": "5.7.1", "@ethersproject/pbkdf2": "5.7.0", "@ethersproject/properties": "5.7.0", - "@ethersproject/providers": "5.7.0", + "@ethersproject/providers": "5.7.1", "@ethersproject/random": "5.7.0", "@ethersproject/rlp": "5.7.0", "@ethersproject/sha2": "5.7.0", @@ -5938,7 +5939,7 @@ "@ethersproject/transactions": "5.7.0", "@ethersproject/units": "5.7.0", "@ethersproject/wallet": "5.7.0", - "@ethersproject/web": "5.7.0", + "@ethersproject/web": "5.7.1", "@ethersproject/wordlists": "5.7.0" } }, @@ -14138,9 +14139,9 @@ "dev": true }, "@ethersproject/networks": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.0.tgz", - "integrity": "sha512-MG6oHSQHd4ebvJrleEQQ4HhVu8Ichr0RDYEfHzsVAVjHNM+w36x9wp9r+hf1JstMXtseXDtkiVoARAG6M959AA==", + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz", + "integrity": "sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==", "dev": true, "requires": { "@ethersproject/logger": "^5.7.0" @@ -14166,9 +14167,9 @@ } }, "@ethersproject/providers": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.0.tgz", - "integrity": "sha512-+TTrrINMzZ0aXtlwO/95uhAggKm4USLm1PbeCBR/3XZ7+Oey+3pMyddzZEyRhizHpy1HXV0FRWRMI1O3EGYibA==", + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.1.tgz", + "integrity": "sha512-vZveG/DLyo+wk4Ga1yx6jSEHrLPgmTt+dFv0dv8URpVCRf0jVhalps1jq/emN/oXnMRsC7cQgAF32DcXLL7BPQ==", "dev": true, "requires": { "@ethersproject/abstract-provider": "^5.7.0", @@ -14315,9 +14316,9 @@ } }, "@ethersproject/web": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.0.tgz", - "integrity": "sha512-ApHcbbj+muRASVDSCl/tgxaH2LBkRMEYfLOLVa0COipx0+nlu0QKet7U2lEg0vdkh8XRSLf2nd1f1Uk9SrVSGA==", + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz", + "integrity": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==", "dev": true, "requires": { "@ethersproject/base64": "^5.7.0", @@ -14566,11 +14567,10 @@ "requires": {} }, "@nomiclabs/hardhat-ethers": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-ethers/-/hardhat-ethers-2.1.1.tgz", - "integrity": "sha512-Gg0IFkT/DW3vOpih4/kMjeZCLYqtfgECLeLXTs7ZDPzcK0cfoc5wKk4nq5n/izCUzdhidO/Utd6ptF9JrWwWVA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-ethers/-/hardhat-ethers-2.2.0.tgz", + "integrity": "sha512-kKCW7xawuD/lw69Yr1yqUUrF0IKmnLNGf+pTVbJ/ctHaRcPrwKI0EPkO1RNXBHlOOZkv6v4DK2PPvq0lL2ykig==", "dev": true, - "peer": true, "requires": {} }, "@nomiclabs/hardhat-etherscan": { @@ -18319,9 +18319,9 @@ } }, "ethers": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.0.tgz", - "integrity": "sha512-5Xhzp2ZQRi0Em+0OkOcRHxPzCfoBfgtOQA+RUylSkuHbhTEaQklnYi2hsWbRgs3ztJsXVXd9VKBcO1ScWL8YfA==", + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.1.tgz", + "integrity": "sha512-5krze4dRLITX7FpU8J4WscXqADiKmyeNlylmmDLbS95DaZpBhDe2YSwRQwKXWNyXcox7a3gBgm/MkGXV1O1S/Q==", "dev": true, "requires": { "@ethersproject/abi": "5.7.0", @@ -18339,10 +18339,10 @@ "@ethersproject/json-wallets": "5.7.0", "@ethersproject/keccak256": "5.7.0", "@ethersproject/logger": "5.7.0", - "@ethersproject/networks": "5.7.0", + "@ethersproject/networks": "5.7.1", "@ethersproject/pbkdf2": "5.7.0", "@ethersproject/properties": "5.7.0", - "@ethersproject/providers": "5.7.0", + "@ethersproject/providers": "5.7.1", "@ethersproject/random": "5.7.0", "@ethersproject/rlp": "5.7.0", "@ethersproject/sha2": "5.7.0", @@ -18352,7 +18352,7 @@ "@ethersproject/transactions": "5.7.0", "@ethersproject/units": "5.7.0", "@ethersproject/wallet": "5.7.0", - "@ethersproject/web": "5.7.0", + "@ethersproject/web": "5.7.1", "@ethersproject/wordlists": "5.7.0" } }, diff --git a/package.json b/package.json index da78e87..55d5021 100644 --- a/package.json +++ b/package.json @@ -26,6 +26,7 @@ "@nomicfoundation/hardhat-chai-matchers": "^1.0.3", "@nomicfoundation/hardhat-network-helpers": "^1.0.4", "@nomicfoundation/hardhat-toolbox": "^1.0.2", + "@nomiclabs/hardhat-ethers": "^2.2.0", "dotenv": "^16.0.1", "eslint": "^8.23.0", "eslint-config-prettier": "^8.5.0", @@ -34,6 +35,7 @@ "eslint-plugin-node": "^11.1.0", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-promise": "^6.0.1", + "ethers": "^5.7.1", "hardhat": "^2.10.2", "hardhat-contract-sizer": "^2.6.1", "hardhat-tracer": "^1.1.0-rc.8", diff --git a/test/index.ts b/test/index.ts index 07e5f46..9661c0c 100644 --- a/test/index.ts +++ b/test/index.ts @@ -1,9 +1,10 @@ import { BigNumber } from "ethers"; import { expect } from "chai"; -import { ethers } from "hardhat"; -import { ERC3525BurnableUpgradeable } from "../typechain"; +import { ERC3525BurnableUpgradeable } from "../typechain-types/contracts"; import { SignerWithAddress } from "@nomiclabs/hardhat-ethers/signers"; import { TokenData, ZERO_ADDRESS } from "./lib/constants"; +const hre = require("hardhat"); +const { ethers } = hre; describe("ERC3525", function () { const deploy = async (): Promise => { @@ -83,7 +84,7 @@ describe("ERC3525", function () { expect(await t.erc3525["balanceOf(address)"](t.owner)).to.eq(t.id); expect(await t.erc3525.ownerOf(t.id)).to.eq(t.owner); - await expect(t.erc3525.ownerOf(5)).revertedWith( + await expect(t.erc3525.ownerOf(5)).rejectedWith( "ERC3525: owner query for nonexistent token" ); expect(await t.erc3525["balanceOf(uint256)"](t.id)).to.eq(t.balance); @@ -117,8 +118,8 @@ describe("ERC3525", function () { expect(await t.erc3525.getApproved(t.id)).to.eq(approval.address); await expect( t.erc3525["approve(address,uint256)"](approval.address, 5) - ).revertedWith("ERC3525: owner query for nonexistent token"); - await expect(t.erc3525.getApproved(6)).revertedWith( + ).rejectedWith("ERC3525: owner query for nonexistent token"); + await expect(t.erc3525.getApproved(6)).rejectedWith( "ERC3525: approved query for nonexistent token" ); }); @@ -170,7 +171,7 @@ describe("ERC3525", function () { approval.address, t.balance ) - ).revertedWith("ERC3525: approve caller is not owner nor approved for all"); + ).rejectedWith("ERC3525: approve caller is not owner nor approved for all"); await expect( t.erc3525["transferFrom(address,address,uint256)"]( @@ -178,7 +179,7 @@ describe("ERC3525", function () { other.address, t.id ) - ).revertedWith("ERC3525: transfer caller is not owner nor approved"); + ).rejectedWith("ERC3525: transfer caller is not owner nor approved"); }); it("transfer id should be success after setApprovalForAll", async () => { diff --git a/test/lib/constants.ts b/test/lib/constants.ts index 0f1a78c..46adc2f 100644 --- a/test/lib/constants.ts +++ b/test/lib/constants.ts @@ -1,5 +1,5 @@ import { BigNumber } from "ethers"; -import { ERC3525BurnableUpgradeable } from "../../typechain"; +import { ERC3525BurnableUpgradeable } from "../../typechain-types/contracts"; export const ZERO_ADDRESS = "0x0000000000000000000000000000000000000000"; export const ZERO_TOKEN_ID = 0;