chore: update configuration files

This commit is contained in:
cedoor
2022-02-17 16:22:22 +01:00
parent 8727256fde
commit 100c3e7105
10 changed files with 161 additions and 431 deletions

View File

@@ -2,4 +2,5 @@ DEFAULT_NETWORK=hardhat
REPORT_GAS=true
BACKEND_PRIVATE_KEY=ac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80
INFURA_API_KEY=zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
COINMARKETCAP_API_KEY=
ETHERSCAN_API_KEY=

View File

@@ -1,14 +1,36 @@
# folders
artifacts/
build/
cache/
coverage/
dist/
lib/
node_modules/
typechain/
types/
# dependencies
node_modules
package-lock.json
yarn.lock
# files
.solcover.js
# testing
coverage
coverage.json
# docs
docs
# hardhat
cache
# types
types
# openzeppelin
.openzeppelin
# circuits
circuits
# production
dist
build
# misc
.DS_Store
*.pem
# debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*

View File

@@ -7,37 +7,5 @@
"parserOptions": {
"project": "tsconfig.json"
},
"plugins": ["@typescript-eslint"],
"rules": {
"@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/explicit-module-boundary-types": "off",
"comma-dangle": "warn",
"comma-spacing": "warn",
"comma-style": "warn",
"func-call-spacing": "warn",
"no-whitespace-before-property": "warn",
"no-multi-spaces": "warn",
"space-in-parens": "warn",
"spaced-comment": "warn",
"arrow-parens": "warn",
"no-var": "error",
"prefer-const": "warn",
"prefer-destructuring": "warn",
"prefer-template": "warn",
"prefer-rest-params": "warn",
"rest-spread-spacing": "warn",
"template-curly-spacing": "warn",
"prefer-arrow-callback": "warn",
"object-shorthand": "warn",
"no-useless-rename": "warn",
"no-useless-computed-key": "warn",
"no-duplicate-imports": "warn",
"no-duplicate-case": "warn",
"block-spacing": "warn",
"brace-style": "warn",
"camelcase": "warn",
"computed-property-spacing": "warn",
"eol-last": "warn",
"function-call-argument-newline": ["warn", "consistent"]
}
"plugins": ["@typescript-eslint"]
}

91
.gitignore vendored
View File

@@ -1,27 +1,74 @@
# folders
.coverage_artifacts/
.coverage_cache/
.coverage_contracts/
.yarn/*
!.yarn/releases
!.yarn/plugins
artifacts/
build/
cache/
coverage/
dist/
lib/
node_modules/
typechain/
# files
*.env
# Logs
logs
*.log
*.tsbuildinfo
coverage.json
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
.pnpm-debug.log*
#openzeppelin
.openzeppelin/unknown-*.json
# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
# Runtime data
pids
*.pid
*.seed
*.pid.lock
# Testing
coverage
coverage.json
# Dependency directories
node_modules/
# TypeScript cache
*.tsbuildinfo
# Optional npm cache directory
.npm
# Optional eslint cache
.eslintcache
# Microbundle cache
.rpt2_cache/
.rts2_cache_cjs/
.rts2_cache_es/
.rts2_cache_umd/
# Output of 'npm pack'
*.tgz
# Yarn Integrity file
.yarn-integrity
# dotenv environment variable files
.env
.env.development.local
.env.test.local
.env.production.local
.env.local
# Production
build
dist
# Hardhat
artifacts
cache
# Docusaurus cache and generated files
.docusaurus
.cache-loader
# Stores VSCode versions used for testing VSCode extensions
.vscode-test
# yarn v2
.yarn/cache
.yarn/unplugged
.yarn/build-state.yml
.yarn/install-state.gz
.pnp.*

View File

@@ -1,295 +0,0 @@
{
"manifestVersion": "3.2",
"admin": {
"address": "0x2a96c5696F85e3d2aa918496806B5c5a4D93E099",
"txHash": "0x76943b0571af7baeabbb246c1c508f7b1841e716b23dc89e57af130d6b35e7f5",
"deployTransaction": {
"hash": "0x76943b0571af7baeabbb246c1c508f7b1841e716b23dc89e57af130d6b35e7f5",
"type": 2,
"accessList": [],
"blockHash": null,
"blockNumber": null,
"transactionIndex": null,
"confirmations": 0,
"from": "0x7Bcd6F009471e9974a77086a69289D16EaDbA286",
"gasPrice": {
"type": "BigNumber",
"hex": "0x9502f908"
},
"maxPriorityFeePerGas": {
"type": "BigNumber",
"hex": "0x9502f900"
},
"maxFeePerGas": {
"type": "BigNumber",
"hex": "0x9502f908"
},
"gasLimit": {
"type": "BigNumber",
"hex": "0x0762b4"
},
"to": null,
"value": {
"type": "BigNumber",
"hex": "0x00"
},
"nonce": 39,
"data": "0x608060405234801561001057600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350610759806100616000396000f3fe60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead146101645761007b565b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610515565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee366004610554565b610292565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f36600461058c565b61031c565b34801561013057600080fd5b506100d161013f366004610554565b6103ad565b34801561015057600080fd5b506100d161015f366004610515565b610405565b34801561017057600080fd5b506100a061017f366004610515565b6104ef565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d9190610538565b949350505050565b6000546001600160a01b031633146102485760405162461bcd60e51b815260040161023f906106c0565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146102bc5760405162461bcd60e51b815260040161023f906106c0565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b15801561030057600080fd5b505af1158015610314573d6000803e3d6000fd5b505050505050565b6000546001600160a01b031633146103465760405162461bcd60e51b815260040161023f906106c0565b60405163278f794360e11b81526001600160a01b03841690634f1ef286903490610376908690869060040161065d565b6000604051808303818588803b15801561038f57600080fd5b505af11580156103a3573d6000803e3d6000fd5b5050505050505050565b6000546001600160a01b031633146103d75760405162461bcd60e51b815260040161023f906106c0565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe6906024016102e6565b6000546001600160a01b0316331461042f5760405162461bcd60e51b815260040161023f906106c0565b6001600160a01b0381166104945760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161023f565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b600060208284031215610526578081fd5b81356105318161070b565b9392505050565b600060208284031215610549578081fd5b81516105318161070b565b60008060408385031215610566578081fd5b82356105718161070b565b915060208301356105818161070b565b809150509250929050565b6000806000606084860312156105a0578081fd5b83356105ab8161070b565b925060208401356105bb8161070b565b9150604084013567ffffffffffffffff808211156105d7578283fd5b818601915086601f8301126105ea578283fd5b8135818111156105fc576105fc6106f5565b604051601f8201601f19908116603f01168101908382118183101715610624576106246106f5565b8160405282815289602084870101111561063c578586fd5b82602086016020830137856020848301015280955050505050509250925092565b600060018060a01b038416825260206040818401528351806040850152825b818110156106985785810183015185820160600152820161067c565b818111156106a95783606083870101525b50601f01601f191692909201606001949350505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461072057600080fd5b5056fea2646970667358221220d849f96f3086b9f82cdcf665adb8c697ace05638da1c7c16ab2d26293717af6764736f6c63430008020033",
"r": "0xd88fef4d9f2522b91e9a79afc5444393cbe3aa19ab266212dedaba78059ac14f",
"s": "0x1a70970e03df9d0c87604ae1f1dca5a3604293fdd13bb3ed3f0c82c98df1d2b9",
"v": 0,
"creates": "0x2a96c5696F85e3d2aa918496806B5c5a4D93E099",
"raw": "0x02f908132a27849502f900849502f908830762b48080b907ba608060405234801561001057600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350610759806100616000396000f3fe60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead146101645761007b565b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610515565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee366004610554565b610292565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f36600461058c565b61031c565b34801561013057600080fd5b506100d161013f366004610554565b6103ad565b34801561015057600080fd5b506100d161015f366004610515565b610405565b34801561017057600080fd5b506100a061017f366004610515565b6104ef565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d9190610538565b949350505050565b6000546001600160a01b031633146102485760405162461bcd60e51b815260040161023f906106c0565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146102bc5760405162461bcd60e51b815260040161023f906106c0565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b15801561030057600080fd5b505af1158015610314573d6000803e3d6000fd5b505050505050565b6000546001600160a01b031633146103465760405162461bcd60e51b815260040161023f906106c0565b60405163278f794360e11b81526001600160a01b03841690634f1ef286903490610376908690869060040161065d565b6000604051808303818588803b15801561038f57600080fd5b505af11580156103a3573d6000803e3d6000fd5b5050505050505050565b6000546001600160a01b031633146103d75760405162461bcd60e51b815260040161023f906106c0565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe6906024016102e6565b6000546001600160a01b0316331461042f5760405162461bcd60e51b815260040161023f906106c0565b6001600160a01b0381166104945760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161023f565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b600060208284031215610526578081fd5b81356105318161070b565b9392505050565b600060208284031215610549578081fd5b81516105318161070b565b60008060408385031215610566578081fd5b82356105718161070b565b915060208301356105818161070b565b809150509250929050565b6000806000606084860312156105a0578081fd5b83356105ab8161070b565b925060208401356105bb8161070b565b9150604084013567ffffffffffffffff808211156105d7578283fd5b818601915086601f8301126105ea578283fd5b8135818111156105fc576105fc6106f5565b604051601f8201601f19908116603f01168101908382118183101715610624576106246106f5565b8160405282815289602084870101111561063c578586fd5b82602086016020830137856020848301015280955050505050509250925092565b600060018060a01b038416825260206040818401528351806040850152825b818110156106985785810183015185820160600152820161067c565b818111156106a95783606083870101525b50601f01601f191692909201606001949350505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461072057600080fd5b5056fea2646970667358221220d849f96f3086b9f82cdcf665adb8c697ace05638da1c7c16ab2d26293717af6764736f6c63430008020033c080a0d88fef4d9f2522b91e9a79afc5444393cbe3aa19ab266212dedaba78059ac14fa01a70970e03df9d0c87604ae1f1dca5a3604293fdd13bb3ed3f0c82c98df1d2b9",
"chainId": 42
}
},
"proxies": [
{
"address": "0x5Ec7d851a52A2a25CEc528F42a7ACA8EcF4667Cd",
"txHash": "0x014f34c062e31475b995dbaa789d8a5fb4de042c5435f22d803113c8d49cb035",
"kind": "transparent"
},
{
"address": "0x8c29e0b77e32f704F03eeCE01c041192A5EB6c77",
"txHash": "0xc2d185259d0aa94caed105a0e8686d186ec11ca6460714ef901ebb50472931c4",
"kind": "transparent"
}
],
"impls": {
"6d44b3e97a4d83433fe4427bc78f2edbd98cded6afeb8203959fd5c1a5599cc4": {
"address": "0xbd870921d8A5398a3314C950d1fc63b8C3AB190B",
"txHash": "0x0e85df340f8775c98e7450e050565d5722880143f29b0ba768772b1a176d21f6",
"layout": {
"storage": [
{
"contract": "Initializable",
"label": "_initialized",
"type": "t_bool",
"src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:21"
},
{
"contract": "Initializable",
"label": "_initializing",
"type": "t_bool",
"src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:26"
},
{
"contract": "ContextUpgradeable",
"label": "__gap",
"type": "t_array(t_uint256)50_storage",
"src": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:30"
},
{
"contract": "OwnableUpgradeable",
"label": "_owner",
"type": "t_address",
"src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:21"
},
{
"contract": "OwnableUpgradeable",
"label": "__gap",
"type": "t_array(t_uint256)49_storage",
"src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:77"
},
{
"contract": "Groups",
"label": "groups",
"type": "t_mapping(t_bytes32,t_struct(TreeData)614_storage)",
"src": "contracts/Groups.sol:48"
},
{
"contract": "Groups",
"label": "groupAdmins",
"type": "t_mapping(t_bytes32,t_address)",
"src": "contracts/Groups.sol:51"
}
],
"types": {
"t_mapping(t_bytes32,t_struct(TreeData)614_storage)": {
"label": "mapping(bytes32 => struct TreeData)"
},
"t_bytes32": {
"label": "bytes32"
},
"t_struct(TreeData)614_storage": {
"label": "struct TreeData",
"members": [
{
"label": "depth",
"type": "t_uint8"
},
{
"label": "root",
"type": "t_uint256"
},
{
"label": "numberOfLeaves",
"type": "t_uint256"
},
{
"label": "zeroes",
"type": "t_mapping(t_uint256,t_uint256)"
},
{
"label": "lastSubtrees",
"type": "t_mapping(t_uint256,t_array(t_uint256)2_storage)"
}
]
},
"t_uint8": {
"label": "uint8"
},
"t_uint256": {
"label": "uint256"
},
"t_mapping(t_uint256,t_uint256)": {
"label": "mapping(uint256 => uint256)"
},
"t_mapping(t_uint256,t_array(t_uint256)2_storage)": {
"label": "mapping(uint256 => uint256[2])"
},
"t_array(t_uint256)2_storage": {
"label": "uint256[2]"
},
"t_mapping(t_bytes32,t_address)": {
"label": "mapping(bytes32 => address)"
},
"t_address": {
"label": "address"
},
"t_array(t_uint256)49_storage": {
"label": "uint256[49]"
},
"t_array(t_uint256)50_storage": {
"label": "uint256[50]"
},
"t_bool": {
"label": "bool"
}
}
}
},
"1faa23c7ed22d389e3293a03b597cc7ff2041189dc75a7facca6733215e35640": {
"address": "0x6D9862e6140D94E932d94c8BcE74a0BDD0ea5ACb",
"txHash": "0x1e2c6e2ec6fc1604fba2ed266760031feb80a9ea4043f9dc577feb141399df0a",
"layout": {
"storage": [
{
"contract": "Initializable",
"label": "_initialized",
"type": "t_bool",
"src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:21"
},
{
"contract": "Initializable",
"label": "_initializing",
"type": "t_bool",
"src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:26"
},
{
"contract": "ContextUpgradeable",
"label": "__gap",
"type": "t_array(t_uint256)50_storage",
"src": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:30"
},
{
"contract": "OwnableUpgradeable",
"label": "_owner",
"type": "t_address",
"src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:21"
},
{
"contract": "OwnableUpgradeable",
"label": "__gap",
"type": "t_array(t_uint256)49_storage",
"src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:77"
},
{
"contract": "Groups",
"label": "offchainRoots",
"type": "t_mapping(t_bytes32,t_uint256)",
"src": "contracts/Groups.sol:49"
},
{
"contract": "Groups",
"label": "groups",
"type": "t_mapping(t_bytes32,t_struct(TreeData)660_storage)",
"src": "contracts/Groups.sol:52"
},
{
"contract": "Groups",
"label": "groupAdmins",
"type": "t_mapping(t_bytes32,t_address)",
"src": "contracts/Groups.sol:55"
}
],
"types": {
"t_mapping(t_bytes32,t_uint256)": {
"label": "mapping(bytes32 => uint256)"
},
"t_bytes32": {
"label": "bytes32"
},
"t_uint256": {
"label": "uint256"
},
"t_mapping(t_bytes32,t_struct(TreeData)660_storage)": {
"label": "mapping(bytes32 => struct TreeData)"
},
"t_struct(TreeData)660_storage": {
"label": "struct TreeData",
"members": [
{
"label": "depth",
"type": "t_uint8"
},
{
"label": "root",
"type": "t_uint256"
},
{
"label": "numberOfLeaves",
"type": "t_uint256"
},
{
"label": "zeroes",
"type": "t_mapping(t_uint256,t_uint256)"
},
{
"label": "lastSubtrees",
"type": "t_mapping(t_uint256,t_array(t_uint256)2_storage)"
}
]
},
"t_uint8": {
"label": "uint8"
},
"t_mapping(t_uint256,t_uint256)": {
"label": "mapping(uint256 => uint256)"
},
"t_mapping(t_uint256,t_array(t_uint256)2_storage)": {
"label": "mapping(uint256 => uint256[2])"
},
"t_array(t_uint256)2_storage": {
"label": "uint256[2]"
},
"t_mapping(t_bytes32,t_address)": {
"label": "mapping(bytes32 => address)"
},
"t_address": {
"label": "address"
},
"t_array(t_uint256)49_storage": {
"label": "uint256[49]"
},
"t_array(t_uint256)50_storage": {
"label": "uint256[50]"
},
"t_bool": {
"label": "bool"
}
}
}
}
}
}

View File

@@ -1,13 +1,33 @@
# folders
artifacts/
build/
cache/
coverage/
dist/
lib/
node_modules/
typechain/
.openzeppelin/
# dependencies
node_modules
package-lock.json
yarn.lock
# files
# testing
coverage
coverage.json
# hardhat
cache
# types
types
# openzeppelin
.openzeppelin
# circuits
circuits
# production
dist
build
# misc
.DS_Store
*.pem
# debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*

View File

@@ -1,16 +0,0 @@
const shell = require("shelljs")
// The environment variables are loaded in hardhat.config.ts.
module.exports = {
istanbulReporter: ["html", "lcov"],
onCompileComplete: async function (_config) {
run("typechain")
},
onIstanbulComplete: async function (_config) {
// We need to do this because solcover generates bespoke artifacts.
shell.rm("-rf", "./artifacts")
shell.rm("-rf", "./typechain")
},
skipFiles: ["mocks", "test"]
}

View File

@@ -1,21 +1,21 @@
{
"extends": "solhint:recommended",
"plugins": ["prettier"],
"rules": {
"code-complexity": ["error", 7],
"compiler-version": ["error", ">=0.8.0"],
"const-name-snakecase": "off",
"no-empty-blocks": "off",
"constructor-syntax": "error",
"func-visibility": ["error", { "ignoreConstructors": true }],
"max-line-length": ["error", 120],
"not-rely-on-time": "off",
"prettier/prettier": [
"error",
{
"endOfLine": "auto"
}
],
"reason-string": ["warn", { "maxLength": 64 }]
}
"extends": "solhint:recommended",
"plugins": ["prettier"],
"rules": {
"code-complexity": ["error", 7],
"compiler-version": ["error", ">=0.8.0"],
"const-name-snakecase": "off",
"no-empty-blocks": "off",
"constructor-syntax": "error",
"func-visibility": ["error", { "ignoreConstructors": true }],
"max-line-length": ["error", 120],
"not-rely-on-time": "off",
"prettier/prettier": [
"error",
{
"endOfLine": "auto"
}
],
"reason-string": ["warn", { "maxLength": 80 }]
}
}

View File

@@ -1,5 +0,0 @@
# folders
.yarn/
build/
dist/
node_modules/

View File

@@ -1,27 +1,15 @@
{
"compilerOptions": {
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true,
"lib": ["es5", "es6"],
"module": "commonjs",
"moduleResolution": "node",
"noImplicitAny": true,
"outDir": "dist",
"resolveJsonModule": true,
"sourceMap": true,
"target": "ES2018",
"module": "CommonJS",
"strict": true,
"target": "es5",
"esModuleInterop": true,
"outDir": "dist",
"typeRoots": ["node_modules/@types", "types"]
},
"exclude": ["artifacts", "node_modules"],
"files": ["./hardhat.config.ts"],
"include": [
"artifacts/**/*",
"artifacts/**/*.json",
"scripts/**/*",
"tasks/**/*",
"test/**/*",
"typechain/**/*",
"types/**/*"
]
"include": ["tasks/**/*", "test/**/*", "build/typechain/**/*", "types/**/*"],
"files": ["./hardhat.config.ts"]
}