From 245dee779f69c151bec290a967801508e0a49c01 Mon Sep 17 00:00:00 2001 From: Ayush Tiwari Date: Wed, 13 Sep 2023 12:44:49 +0530 Subject: [PATCH] feat: added hardhat deployment scripts for marketplace --- .../00_deploy_royalties_registry.ts | 27 ++ .../marketplace/01_deploy_order_validator.ts | 27 ++ .../deploy/marketplace/02_deploy_exchange.ts | 55 ++++ .../marketplace/03_deploy_asset_matcher.ts | 29 ++ packages/deploy/hardhat.config.ts | 10 + packages/deploy/package.json | 4 +- packages/marketplace/package.json | 5 +- yarn.lock | 267 +++++++++++++++++- 8 files changed, 413 insertions(+), 11 deletions(-) create mode 100644 packages/deploy/deploy/marketplace/00_deploy_royalties_registry.ts create mode 100644 packages/deploy/deploy/marketplace/01_deploy_order_validator.ts create mode 100644 packages/deploy/deploy/marketplace/02_deploy_exchange.ts create mode 100644 packages/deploy/deploy/marketplace/03_deploy_asset_matcher.ts diff --git a/packages/deploy/deploy/marketplace/00_deploy_royalties_registry.ts b/packages/deploy/deploy/marketplace/00_deploy_royalties_registry.ts new file mode 100644 index 0000000000..56e0715249 --- /dev/null +++ b/packages/deploy/deploy/marketplace/00_deploy_royalties_registry.ts @@ -0,0 +1,27 @@ +import {HardhatRuntimeEnvironment} from 'hardhat/types'; +import {DeployFunction} from 'hardhat-deploy/types'; + +const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) { + const {deployments, getNamedAccounts} = hre; + const {deploy} = deployments; + const {deployer, upgradeAdmin} = await getNamedAccounts(); + + await deploy('RoyaltiesRegistry', { + from: deployer, + contract: + '@sandbox-smart-contracts/marketplace/src/royalties-registry/RoyaltiesRegistry.sol:RoyaltiesRegistry', + proxy: { + owner: upgradeAdmin, + proxyContract: 'OpenZeppelinTransparentProxy', + execute: { + methodName: '__RoyaltiesRegistry_init', + args: [], + }, + upgradeIndex: 0, + }, + log: true, + skipIfAlreadyDeployed: true, + }); +}; +export default func; +func.tags = ['RoyaltiesRegistry', 'RoyaltiesRegistry_deploy']; diff --git a/packages/deploy/deploy/marketplace/01_deploy_order_validator.ts b/packages/deploy/deploy/marketplace/01_deploy_order_validator.ts new file mode 100644 index 0000000000..15d36a9e2c --- /dev/null +++ b/packages/deploy/deploy/marketplace/01_deploy_order_validator.ts @@ -0,0 +1,27 @@ +import {HardhatRuntimeEnvironment} from 'hardhat/types'; +import {DeployFunction} from 'hardhat-deploy/types'; + +const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) { + const {deployments, getNamedAccounts} = hre; + const {deploy} = deployments; + const {deployer, upgradeAdmin} = await getNamedAccounts(); + + await deploy('OrderValidator', { + from: deployer, + contract: + '@sandbox-smart-contracts/marketplace/src/exchange/OrderValidator.sol:OrderValidator', + proxy: { + owner: upgradeAdmin, + proxyContract: 'OpenZeppelinTransparentProxy', + execute: { + methodName: '__OrderValidator_init_unchained', + args: [false, false, true, false], + }, + upgradeIndex: 0, + }, + log: true, + skipIfAlreadyDeployed: true, + }); +}; +export default func; +func.tags = ['OrderValidator', 'OrderValidator_deploy']; diff --git a/packages/deploy/deploy/marketplace/02_deploy_exchange.ts b/packages/deploy/deploy/marketplace/02_deploy_exchange.ts new file mode 100644 index 0000000000..9ab2f1d2a9 --- /dev/null +++ b/packages/deploy/deploy/marketplace/02_deploy_exchange.ts @@ -0,0 +1,55 @@ +import {HardhatRuntimeEnvironment} from 'hardhat/types'; +import {DeployFunction} from 'hardhat-deploy/types'; + +const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) { + const {deployments, getNamedAccounts} = hre; + const {deploy} = deployments; + const {deployer, upgradeAdmin, exchangeFeeRecipient} = + await getNamedAccounts(); + + let TRUSTED_FORWARDER = await deployments.getOrNull('TRUSTED_FORWARDER'); + if (!TRUSTED_FORWARDER) { + TRUSTED_FORWARDER = await deploy('TRUSTED_FORWARDER', { + from: deployer, + contract: 'TrustedForwarderMock', + log: true, + }); + } + const orderValidator = await deployments.get('OrderValidator'); + const royaltiesRegistry = await deployments.get('RoyaltiesRegistry'); + + // TODO: to be fetched from env? + const deployMeta = process.env.DEPLOY_META; + const nativeOrder = process.env.NATIVE_ORDER; + const metaNative = process.env.META_NATIVE; + + const contract = deployMeta ? 'ExchangeMeta' : 'Exchange'; + + await deploy('Exchange', { + from: deployer, + contract: `@sandbox-smart-contracts/marketplace/src/exchange/${contract}.sol:${contract}`, + proxy: { + owner: upgradeAdmin, + proxyContract: 'OpenZeppelinTransparentProxy', + execute: { + methodName: '__Exchange_init', + args: [ + TRUSTED_FORWARDER.address, + 0, + 250, + exchangeFeeRecipient, + royaltiesRegistry, + orderValidator.address, + nativeOrder, + metaNative, + ], + }, + upgradeIndex: 0, + }, + log: true, + skipIfAlreadyDeployed: true, + }); +}; +export default func; +func.tags = ['Exchange', 'Exchange_deploy']; +func.dependencies = ['RoyaltiesRegistry_deploy', 'OrderValidator_deploy']; diff --git a/packages/deploy/deploy/marketplace/03_deploy_asset_matcher.ts b/packages/deploy/deploy/marketplace/03_deploy_asset_matcher.ts new file mode 100644 index 0000000000..f83bfc7079 --- /dev/null +++ b/packages/deploy/deploy/marketplace/03_deploy_asset_matcher.ts @@ -0,0 +1,29 @@ +import {HardhatRuntimeEnvironment} from 'hardhat/types'; +import {DeployFunction} from 'hardhat-deploy/types'; + +const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) { + const {deployments, getNamedAccounts} = hre; + const {deploy} = deployments; + const {deployer} = await getNamedAccounts(); + + // TODO: to be fetched from env? + const deployMeta = process.env.DEPLOY_META; + const exchangeContract = deployMeta ? 'ExchangeMeta' : 'Exchange'; + + const assetMatcher = await deploy('AssetMatcher', { + from: deployer, + contract: `@sandbox-smart-contracts/marketplace/src/exchange/AssetMatcher.sol:AssetMatcher`, + log: true, + skipIfAlreadyDeployed: true, + }); + + await deployments.execute( + exchangeContract, + {from: deployer}, + 'setAssetMatcherContract', + assetMatcher.address + ); +}; +export default func; +func.tags = ['AssetMatcher', 'AssetMatcher_deploy']; +func.dependencies = ['Exchange']; diff --git a/packages/deploy/hardhat.config.ts b/packages/deploy/hardhat.config.ts index 6bae2bd548..bf3c852c9e 100644 --- a/packages/deploy/hardhat.config.ts +++ b/packages/deploy/hardhat.config.ts @@ -9,6 +9,7 @@ import './tasks/importedPackages'; // Package name : solidity source code path const importedPackages = { '@sandbox-smart-contracts/giveaway': 'contracts/SignedMultiGiveaway.sol', + '@sandbox-smart-contracts/marketplace': 'src/', }; const namedAccounts = { @@ -96,6 +97,14 @@ const namedAccounts = { polygon: '0x42a4a3795446A4c070565da201c6303fC78a2569', }, // collect 5% fee from land sales (prior to implementation of FeeDistributor) + exchangeFeeRecipient: { + default: '0xc66d094ed928f7840a6b0d373c1cd825c97e3c7c', // TODO: set the correct wallet for the FeeReceiver + goerli: '0xc66d094ed928f7840a6b0d373c1cd825c97e3c7c', // TODO: set the correct wallet for the FeeReceiver + mumbai: '0xc66d094ed928f7840a6b0d373c1cd825c97e3c7c', // TODO: set the correct wallet for the FeeReceiver + mainnet: '0xc66d094ed928f7840a6b0d373c1cd825c97e3c7c', // TODO: set the correct wallet for the FeeReceiver + polygon: '0xc66d094ed928f7840a6b0d373c1cd825c97e3c7c', // TODO: set the correct wallet for the FeeReceiver + }, + landAdmin: { default: 2, mainnet: 'sandAdmin', @@ -242,6 +251,7 @@ const networks = { }; const compilers = [ + '0.8.19', '0.8.18', '0.8.15', '0.8.2', diff --git a/packages/deploy/package.json b/packages/deploy/package.json index cadd5d3e47..12c6c43c9e 100644 --- a/packages/deploy/package.json +++ b/packages/deploy/package.json @@ -15,7 +15,8 @@ "homepage": "https://github.com/thesandboxgame/sandbox-smart-contracts#readme", "private": true, "dependencies": { - "@sandbox-smart-contracts/giveaway": "*" + "@sandbox-smart-contracts/giveaway": "*", + "@sandbox-smart-contracts/marketplace": "*" }, "files": [ "deployments" @@ -61,6 +62,7 @@ "eslint-plugin-prettier": "^4.2.1", "ethers": "5", "hardhat": "~2.15.0", + "hardhat-contract-sizer": "^2.10.0", "hardhat-deploy": "^0.11.30", "prettier": "^2.8.8", "ts-node": "^10.9.1", diff --git a/packages/marketplace/package.json b/packages/marketplace/package.json index 120189de56..6a8159ba82 100644 --- a/packages/marketplace/package.json +++ b/packages/marketplace/package.json @@ -1,5 +1,5 @@ { - "name": "marketplace", + "name": "@sandbox-smart-contracts/marketplace", "version": "1.0.0", "description": "", "dependencies": { @@ -8,7 +8,10 @@ "devDependencies": { "@openzeppelin/contracts": "4.9.3", "@openzeppelin/contracts-upgradeable": "4.9.3", + "@types/chai": "^4.2.11", "hardhat": "^2.17.2", + "hardhat-contract-sizer": "^2.0.3", + "hardhat-deploy": "^0.10.5", "ts-node": "^10.9.1", "typescript": "^4.0.5" }, diff --git a/yarn.lock b/yarn.lock index 8634726c09..0c6574ee02 100644 --- a/yarn.lock +++ b/yarn.lock @@ -863,6 +863,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": 4.0.2 + "@nomicfoundation/ethereumjs-rlp": 5.0.2 + "@nomicfoundation/ethereumjs-trie": 6.0.2 + "@nomicfoundation/ethereumjs-tx": 5.0.2 + "@nomicfoundation/ethereumjs-util": 9.0.2 + ethereum-cryptography: 0.1.3 + ethers: ^5.7.1 + checksum: 7ff744f44a01f1c059ca7812a1cfc8089f87aa506af6cb39c78331dca71b32993cbd6fa05ad03f8c4f4fab73bb998a927af69e0d8ff01ae192ee5931606e09f5 + languageName: node + linkType: hard + "@nomicfoundation/ethereumjs-blockchain@npm:7.0.1": version: 7.0.1 resolution: "@nomicfoundation/ethereumjs-blockchain@npm:7.0.1" @@ -884,6 +899,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": 5.0.2 + "@nomicfoundation/ethereumjs-common": 4.0.2 + "@nomicfoundation/ethereumjs-ethash": 3.0.2 + "@nomicfoundation/ethereumjs-rlp": 5.0.2 + "@nomicfoundation/ethereumjs-trie": 6.0.2 + "@nomicfoundation/ethereumjs-tx": 5.0.2 + "@nomicfoundation/ethereumjs-util": 9.0.2 + abstract-level: ^1.0.3 + debug: ^4.3.3 + ethereum-cryptography: 0.1.3 + level: ^8.0.0 + lru-cache: ^5.1.1 + memory-level: ^1.0.0 + checksum: b7e440dcd73e32aa72d13bfd28cb472773c9c60ea808a884131bf7eb3f42286ad594a0864215f599332d800f3fe1f772fff4b138d2dcaa8f41e4d8389bff33e7 + languageName: node + linkType: hard + "@nomicfoundation/ethereumjs-common@npm:4.0.1": version: 4.0.1 resolution: "@nomicfoundation/ethereumjs-common@npm:4.0.1" @@ -894,6 +930,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": 9.0.2 + crc-32: ^1.2.0 + checksum: f0d84704d6254d374299c19884312bd5666974b4b6f342d3f10bc76e549de78d20e45a53d25fbdc146268a52335497127e4f069126da7c60ac933a158e704887 + languageName: node + linkType: hard + "@nomicfoundation/ethereumjs-ethash@npm:3.0.1": version: 3.0.1 resolution: "@nomicfoundation/ethereumjs-ethash@npm:3.0.1" @@ -908,6 +954,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": 5.0.2 + "@nomicfoundation/ethereumjs-rlp": 5.0.2 + "@nomicfoundation/ethereumjs-util": 9.0.2 + abstract-level: ^1.0.3 + bigint-crypto-utils: ^3.0.23 + ethereum-cryptography: 0.1.3 + checksum: e4011e4019dd9b92f7eeebfc1e6c9a9685c52d8fd0ee4f28f03e50048a23b600c714490827f59fdce497b3afb503b3fd2ebf6815ff307e9949c3efeff1403278 + languageName: node + linkType: hard + "@nomicfoundation/ethereumjs-evm@npm:2.0.1": version: 2.0.1 resolution: "@nomicfoundation/ethereumjs-evm@npm:2.0.1" @@ -924,6 +984,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": ^5.7.1 + "@nomicfoundation/ethereumjs-common": 4.0.2 + "@nomicfoundation/ethereumjs-tx": 5.0.2 + "@nomicfoundation/ethereumjs-util": 9.0.2 + debug: ^4.3.3 + ethereum-cryptography: 0.1.3 + mcl-wasm: ^0.7.1 + rustbn.js: ~0.2.0 + checksum: a23cf570836ddc147606b02df568069de946108e640f902358fef67e589f6b371d856056ee44299d9b4e3497f8ae25faa45e6b18fefd90e9b222dc6a761d85f0 + languageName: node + linkType: hard + "@nomicfoundation/ethereumjs-rlp@npm:5.0.1": version: 5.0.1 resolution: "@nomicfoundation/ethereumjs-rlp@npm:5.0.1" @@ -933,6 +1009,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: a74434cadefca9aa8754607cc1ad7bb4bbea4ee61c6214918e60a5bbee83206850346eb64e39fd1fe97f854c7ec0163e01148c0c881dda23881938f0645a0ef2 + languageName: node + linkType: hard + "@nomicfoundation/ethereumjs-statemanager@npm:2.0.1": version: 2.0.1 resolution: "@nomicfoundation/ethereumjs-statemanager@npm:2.0.1" @@ -947,6 +1032,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": 4.0.2 + "@nomicfoundation/ethereumjs-rlp": 5.0.2 + debug: ^4.3.3 + ethereum-cryptography: 0.1.3 + ethers: ^5.7.1 + js-sdsl: ^4.1.4 + checksum: 3ab6578e252e53609afd98d8ba42a99f182dcf80252f23ed9a5e0471023ffb2502130f85fc47fa7c94cd149f9be799ed9a0942ca52a143405be9267f4ad94e64 + languageName: node + linkType: hard + "@nomicfoundation/ethereumjs-trie@npm:6.0.1": version: 6.0.1 resolution: "@nomicfoundation/ethereumjs-trie@npm:6.0.1" @@ -960,6 +1059,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": 5.0.2 + "@nomicfoundation/ethereumjs-util": 9.0.2 + "@types/readable-stream": ^2.3.13 + ethereum-cryptography: 0.1.3 + readable-stream: ^3.6.0 + checksum: d4da918d333851b9f2cce7dbd25ab5753e0accd43d562d98fd991b168b6a08d1794528f0ade40fe5617c84900378376fe6256cdbe52c8d66bf4c53293bbc7c40 + languageName: node + linkType: hard + "@nomicfoundation/ethereumjs-tx@npm:5.0.1": version: 5.0.1 resolution: "@nomicfoundation/ethereumjs-tx@npm:5.0.1" @@ -974,6 +1086,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": ^0.9.2 + "@ethersproject/providers": ^5.7.2 + "@nomicfoundation/ethereumjs-common": 4.0.2 + "@nomicfoundation/ethereumjs-rlp": 5.0.2 + "@nomicfoundation/ethereumjs-util": 9.0.2 + ethereum-cryptography: 0.1.3 + checksum: 0bbcea75786b2ccb559afe2ecc9866fb4566a9f157b6ffba4f50960d14f4b3da2e86e273f6fadda9b860e67cfcabf589970fb951b328cb5f900a585cd21842a2 + languageName: node + linkType: hard + "@nomicfoundation/ethereumjs-util@npm:9.0.1": version: 9.0.1 resolution: "@nomicfoundation/ethereumjs-util@npm:9.0.1" @@ -985,6 +1111,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": ^0.10.0 + "@nomicfoundation/ethereumjs-rlp": 5.0.2 + ethereum-cryptography: 0.1.3 + checksum: 3a08f7b88079ef9f53b43da9bdcb8195498fd3d3911c2feee2571f4d1204656053f058b2f650471c86f7d2d0ba2f814768c7cfb0f266eede41c848356afc4900 + languageName: node + linkType: hard + "@nomicfoundation/ethereumjs-vm@npm:7.0.1": version: 7.0.1 resolution: "@nomicfoundation/ethereumjs-vm@npm:7.0.1" @@ -1006,6 +1143,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": 5.0.2 + "@nomicfoundation/ethereumjs-blockchain": 7.0.2 + "@nomicfoundation/ethereumjs-common": 4.0.2 + "@nomicfoundation/ethereumjs-evm": 2.0.2 + "@nomicfoundation/ethereumjs-rlp": 5.0.2 + "@nomicfoundation/ethereumjs-statemanager": 2.0.2 + "@nomicfoundation/ethereumjs-trie": 6.0.2 + "@nomicfoundation/ethereumjs-tx": 5.0.2 + "@nomicfoundation/ethereumjs-util": 9.0.2 + debug: ^4.3.3 + ethereum-cryptography: 0.1.3 + mcl-wasm: ^0.7.1 + rustbn.js: ~0.2.0 + checksum: 1c25ba4d0644cadb8a2b0241a4bb02e578bfd7f70e3492b855c2ab5c120cb159cb8f7486f84dc1597884bd1697feedbfb5feb66e91352afb51f3694fd8e4a043 + languageName: node + linkType: hard + "@nomicfoundation/hardhat-chai-matchers@npm:1, @nomicfoundation/hardhat-chai-matchers@npm:^1.0.6": version: 1.0.6 resolution: "@nomicfoundation/hardhat-chai-matchers@npm:1.0.6" @@ -1412,13 +1570,20 @@ __metadata: languageName: node linkType: hard -"@openzeppelin/contracts-upgradeable@npm:^4.8.2, @openzeppelin/contracts-upgradeable@npm:^4.9.0, @openzeppelin/contracts-upgradeable@npm:^4.9.2": +"@openzeppelin/contracts-upgradeable@npm:4.9.3, @openzeppelin/contracts-upgradeable@npm:^4.8.2, @openzeppelin/contracts-upgradeable@npm:^4.9.0, @openzeppelin/contracts-upgradeable@npm:^4.9.2": version: 4.9.3 resolution: "@openzeppelin/contracts-upgradeable@npm:4.9.3" checksum: bda0240b1d44c913ec5a4e109c622f216c2bbd7b468d210822f75782a5f7fe0609d08bf03b78b253333625e99e507cf2f75212f1de3b274bd9fc64ae967aeec3 languageName: node linkType: hard +"@openzeppelin/contracts@npm:4.9.3, @openzeppelin/contracts@npm:^4.2.0, @openzeppelin/contracts@npm:^4.7.3": + version: 4.9.3 + resolution: "@openzeppelin/contracts@npm:4.9.3" + checksum: 4932063e733b35fa7669b9fe2053f69b062366c5c208b0c6cfa1ac451712100c78acff98120c3a4b88d94154c802be05d160d71f37e7d74cadbe150964458838 + languageName: node + linkType: hard + "@openzeppelin/contracts@npm:^3.2.1-solc-0.7": version: 3.4.2 resolution: "@openzeppelin/contracts@npm:3.4.2" @@ -1426,13 +1591,6 @@ __metadata: languageName: node linkType: hard -"@openzeppelin/contracts@npm:^4.2.0, @openzeppelin/contracts@npm:^4.7.3": - version: 4.9.3 - resolution: "@openzeppelin/contracts@npm:4.9.3" - checksum: 4932063e733b35fa7669b9fe2053f69b062366c5c208b0c6cfa1ac451712100c78acff98120c3a4b88d94154c802be05d160d71f37e7d74cadbe150964458838 - languageName: node - linkType: hard - "@parcel/watcher@npm:2.0.4": version: 2.0.4 resolution: "@parcel/watcher@npm:2.0.4" @@ -1519,6 +1677,13 @@ __metadata: languageName: unknown linkType: soft +"@sandbox-smart-contracts/dependency-metatx@npm:^0.0.2": + version: 0.0.2 + resolution: "@sandbox-smart-contracts/dependency-metatx@npm:0.0.2" + checksum: 954cd66ee516f4c8cd275eb35842fbf83371baf4d9a31f1c2bd20c8421fc580aef6d80618c0e12e37cc8297550903820ed3ec7fc74475ae7f4f813e637b41186 + languageName: node + linkType: hard + "@sandbox-smart-contracts/dependency-metatx@workspace:packages/dependency-metatx": version: 0.0.0-use.local resolution: "@sandbox-smart-contracts/dependency-metatx@workspace:packages/dependency-metatx" @@ -1569,6 +1734,7 @@ __metadata: "@nomicfoundation/hardhat-network-helpers": ^1.0.8 "@nomiclabs/hardhat-ethers": ^2.2.3 "@sandbox-smart-contracts/giveaway": "*" + "@sandbox-smart-contracts/marketplace": "*" "@typechain/ethers-v5": ^11.0.0 "@typechain/hardhat": ^8.0.0 "@types/chai": ^4.3.5 @@ -1589,6 +1755,7 @@ __metadata: eslint-plugin-prettier: ^4.2.1 ethers: 5 hardhat: ~2.15.0 + hardhat-contract-sizer: ^2.10.0 hardhat-deploy: ^0.11.30 prettier: ^2.8.8 ts-node: ^10.9.1 @@ -1676,6 +1843,22 @@ __metadata: languageName: unknown linkType: soft +"@sandbox-smart-contracts/marketplace@*, @sandbox-smart-contracts/marketplace@workspace:packages/marketplace": + version: 0.0.0-use.local + resolution: "@sandbox-smart-contracts/marketplace@workspace:packages/marketplace" + dependencies: + "@openzeppelin/contracts": 4.9.3 + "@openzeppelin/contracts-upgradeable": 4.9.3 + "@sandbox-smart-contracts/dependency-metatx": ^0.0.2 + "@types/chai": ^4.2.11 + hardhat: ^2.17.2 + hardhat-contract-sizer: ^2.0.3 + hardhat-deploy: ^0.10.5 + ts-node: ^10.9.1 + typescript: ^4.0.5 + languageName: unknown + linkType: soft + "@scure/base@npm:~1.1.0": version: 1.1.1 resolution: "@scure/base@npm:1.1.1" @@ -6147,7 +6330,7 @@ __metadata: languageName: node linkType: hard -"hardhat-contract-sizer@npm:^2.0.3": +"hardhat-contract-sizer@npm:^2.0.3, hardhat-contract-sizer@npm:^2.10.0": version: 2.10.0 resolution: "hardhat-contract-sizer@npm:2.10.0" dependencies: @@ -6304,6 +6487,72 @@ __metadata: languageName: node linkType: hard +"hardhat@npm:^2.17.2": + version: 2.17.3 + resolution: "hardhat@npm:2.17.3" + dependencies: + "@ethersproject/abi": ^5.1.2 + "@metamask/eth-sig-util": ^4.0.0 + "@nomicfoundation/ethereumjs-block": 5.0.2 + "@nomicfoundation/ethereumjs-blockchain": 7.0.2 + "@nomicfoundation/ethereumjs-common": 4.0.2 + "@nomicfoundation/ethereumjs-evm": 2.0.2 + "@nomicfoundation/ethereumjs-rlp": 5.0.2 + "@nomicfoundation/ethereumjs-statemanager": 2.0.2 + "@nomicfoundation/ethereumjs-trie": 6.0.2 + "@nomicfoundation/ethereumjs-tx": 5.0.2 + "@nomicfoundation/ethereumjs-util": 9.0.2 + "@nomicfoundation/ethereumjs-vm": 7.0.2 + "@nomicfoundation/solidity-analyzer": ^0.1.0 + "@sentry/node": ^5.18.1 + "@types/bn.js": ^5.1.0 + "@types/lru-cache": ^5.1.0 + adm-zip: ^0.4.16 + aggregate-error: ^3.0.0 + ansi-escapes: ^4.3.0 + chalk: ^2.4.2 + chokidar: ^3.4.0 + ci-info: ^2.0.0 + debug: ^4.1.1 + enquirer: ^2.3.0 + env-paths: ^2.2.0 + ethereum-cryptography: ^1.0.3 + ethereumjs-abi: ^0.6.8 + find-up: ^2.1.0 + fp-ts: 1.19.3 + fs-extra: ^7.0.1 + glob: 7.2.0 + immutable: ^4.0.0-rc.12 + io-ts: 1.10.4 + keccak: ^3.0.2 + lodash: ^4.17.11 + mnemonist: ^0.38.0 + mocha: ^10.0.0 + p-map: ^4.0.0 + raw-body: ^2.4.1 + resolve: 1.17.0 + semver: ^6.3.0 + solc: 0.7.3 + source-map-support: ^0.5.13 + stacktrace-parser: ^0.1.10 + tsort: 0.0.1 + undici: ^5.14.0 + uuid: ^8.3.2 + ws: ^7.4.6 + peerDependencies: + ts-node: "*" + typescript: "*" + peerDependenciesMeta: + ts-node: + optional: true + typescript: + optional: true + bin: + hardhat: internal/cli/bootstrap.js + checksum: 0540ef225b3992749c6b828540a9b9a20b4aaa0f2b4f25556d0769b9f32687593ef0fa9e753496647d772e5d4b07300694d588b13cfb5f7d5fb33ed8238ea9fe + languageName: node + linkType: hard + "hardhat@npm:~2.15.0": version: 2.15.0 resolution: "hardhat@npm:2.15.0"