Observed since 21 Oct, 08:55 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
@0xheyjo/uni-v2-artifacts
## [Uniswap v2 deep dive](./Uniswap.md)
This project deploys Uniswap V2 locally. I am running foundry anvil but hardhat local node can be used too.
// calculates the CREATE2 address for a pair without making any external calls
// Create 2 formula address = keccak256(0xff + deployer + salt + bytecodeHash)[12:]
function pairFor(address factory, address tokenA, address tokenB) internal pure returns (address pair) {
(address token0, address token1) = sortTokens(tokenA, tokenB);
pair = address(uint(keccak256(abi.encodePacked(
hex'ff', // CREATE2 prefix
factory, // Factory contract address
keccak256(abi.encodePacked(token0, token1)), // Salt
hex'e699c2c70a1e9ca16c58b40782745b5d609738b755845b6ee18a18d21352f753' // init code hash
))));
}
where hex'e699c2c70a1e9ca16c58b40782745b5d609738b755845b6ee18a18d21352f753' is the bytecode of UniswapV2Pair.sol (the constructor part). This might be different if you do this in future or with different compiler settings.
npm i -D patch-package
npx patch-package @uniswap/v2-periphery
## clean artifacts, not needed everytime
rm -rf cache artifacts typechain typechain-types
## clean and compile, needed only if you added new contracts, probablu can just compile without cleaning
npx hardhat clean && npx hardhat compile
npx hardhat test ./test/AMM-v2.test.ts --network anvil
You can report gas in test if you want
REPORT_GAS=true npx hardhat test ./test/AMM-v2.test.ts --network anvil
If you want to use local hardhat node instead of anvil, if not SKIP
npx hardhat node
npx hardhat ignition deploy ignition/modules/UniV2.ts --network anvil
npm run build:artifacts npm pack # sanity check tarball contents npm publish --access public --ignore-scripts
To Update version npm version patch (minor/major)
Download counts and popularity will appear here as the collector receives them.
| Package / target | Requirement | Relationship |
|---|---|---|
@uniswap/v2-coreEnvironment{
"local_name": "@uniswap/v2-core",
"alias": false,
"peer_metadata": null
} | ^1.0.1 | runtime |
@uniswap/v2-peripheryEnvironment{
"local_name": "@uniswap/v2-periphery",
"alias": false,
"peer_metadata": null
} | ^1.1.0-beta.0 | runtime |
@nomicfoundation/hardhat-chai-matchersEnvironment{
"local_name": "@nomicfoundation/hardhat-chai-matchers",
"alias": false,
"peer_metadata": null
} | ^2.1.0 | development |
@nomicfoundation/hardhat-ethersEnvironment{
"local_name": "@nomicfoundation/hardhat-ethers",
"alias": false,
"peer_metadata": null
} | ^3.1.0 | development |
@nomicfoundation/hardhat-ignitionEnvironment{
"local_name": "@nomicfoundation/hardhat-ignition",
"alias": false,
"peer_metadata": null
} | ^0.15.13 | development |
@nomicfoundation/hardhat-ignition-ethersEnvironment{
"local_name": "@nomicfoundation/hardhat-ignition-ethers",
"alias": false,
"peer_metadata": null
} | ^0.15.14 | development |
@nomicfoundation/hardhat-network-helpersEnvironment{
"local_name": "@nomicfoundation/hardhat-network-helpers",
"alias": false,
"peer_metadata": null
} | ^1.1.0 | development |
@nomicfoundation/hardhat-toolboxEnvironment{
"local_name": "@nomicfoundation/hardhat-toolbox",
"alias": false,
"peer_metadata": null
} | ^6.1.0 | development |
@nomicfoundation/hardhat-verifyEnvironment{
"local_name": "@nomicfoundation/hardhat-verify",
"alias": false,
"peer_metadata": null
} | ^2.1.1 | development |
@typechain/ethers-v6Environment{
"local_name": "@typechain/ethers-v6",
"alias": false,
"peer_metadata": null
} | ^0.5.1 | development |
@typechain/hardhatEnvironment{
"local_name": "@typechain/hardhat",
"alias": false,
"peer_metadata": null
} | ^9.1.0 | development |
@types/chaiEnvironment{
"local_name": "@types/chai",
"alias": false,
"peer_metadata": null
} | ^4.3.20 | development |
@types/mochaEnvironment{
"local_name": "@types/mocha",
"alias": false,
"peer_metadata": null
} | ^10.0.10 | development |
@types/nodeEnvironment{
"local_name": "@types/node",
"alias": false,
"peer_metadata": null
} | ^24.3.0 | development |
chaiEnvironment{
"local_name": "chai",
"alias": false,
"peer_metadata": null
} | ^4.5.0 | development |
ethersEnvironment{
"local_name": "ethers",
"alias": false,
"peer_metadata": null
} | ^6.15.0 | development |
hardhatEnvironment{
"local_name": "hardhat",
"alias": false,
"peer_metadata": null
} | ^2.26.3 | development |
hardhat-abi-exporterEnvironment{
"local_name": "hardhat-abi-exporter",
"alias": false,
"peer_metadata": null
} | ^2.11.0 | development |
hardhat-gas-reporterEnvironment{
"local_name": "hardhat-gas-reporter",
"alias": false,
"peer_metadata": null
} | ^2.3.0 | development |
patch-packageEnvironment{
"local_name": "patch-package",
"alias": false,
"peer_metadata": null
} | ^8.0.0 | development |
solidity-coverageEnvironment{
"local_name": "solidity-coverage",
"alias": false,
"peer_metadata": null
} | ^0.8.16 | development |
ts-nodeEnvironment{
"local_name": "ts-node",
"alias": false,
"peer_metadata": null
} | ^10.9.2 | development |
typechainEnvironment{
"local_name": "typechain",
"alias": false,
"peer_metadata": null
} | ^8.3.2 | development |
typescriptEnvironment{
"local_name": "typescript",
"alias": false,
"peer_metadata": null
} | ^5.9.2 | development |
Source distribution
{
"integrity": "sha512-U18Ty761LrGDSUR0gj+dbRz2sVmjQPMx9zhSXKZdXZLuYCZ7vuRVJ0eXEHyIBw7m6llMDbiONkNmfy83rVA/0w==",
"shasum": "a595220ad26638696fdd6ec42f47148b74689ff1",
"tarball": "https://registry.npmjs.org/@0xheyjo/uni-v2-artifacts/-/uni-v2-artifacts-1.1.0.tgz",
"fileCount": 13,
"unpackedSize": 99199,
"signatures": [
{
"keyid": "SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U",
"sig": "MEUCIQC3Asp1k6X7VsQENBM8DecO9XF7tjDKrruRgrg/YWz1XgIgVK+oB4QFtQ/BQ1eV/AOaEbrNvs76tOoaQOgs4xNGMak="
}
]
}Observed since 21 Oct, 08:55 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package_version:9aade7b8748d117d45b467ee09abe02f7855f6430ab1ddbc0791bdea33093af0