@kumbaya_xyz/v3-periphery
v1.0.5
Published
Peripheral smart contracts for interacting with Kumbaya V3
Downloads
1,146
Readme

Kumbaya V3 Periphery
Fork of Uniswap V3 Periphery v1.0.0 - the audited version.
For the lower level core contracts, see the v3-core repository.
Changes from Uniswap V3 Periphery
Pool Init Code Hash
The POOL_INIT_CODE_HASH in contracts/libraries/PoolAddress.sol has been updated to match the Kumbaya v3-core bytecode:
0x851d77a45b8b9a205fb9f44cb829cceba85282714d2603d601840640628a3da7This hash differs from the original Uniswap V3 hash due to the modified feeProtocol validation range in v3-core. See the v3-core README for details.
Added Contracts
- Multicall2 (
contracts/lens/Multicall2.sol) - MakerDAO's Multicall2 contract for batching read calls. Compiled with solc 0.7.6, optimizer enabled with 200 runs.
Compiler Settings
All contracts compiled with Solidity 0.7.6 and bytecodeHash: none metadata setting, matching Uniswap's original deployment configuration.
Local deployment
In order to deploy this code to a local testnet, you should install the npm package
@kumbaya_xyz/v3-periphery
and import bytecode imported from artifacts located at
@kumbaya_xyz/v3-periphery/artifacts/contracts/*/*.json.
For example:
import {
abi as SWAP_ROUTER_ABI,
bytecode as SWAP_ROUTER_BYTECODE,
} from '@kumbaya_xyz/v3-periphery/artifacts/contracts/SwapRouter.sol/SwapRouter.json'
// deploy the bytecodeThis will ensure that you are testing against the same bytecode that is deployed to mainnet and public testnets, and all Uniswap code will correctly interoperate with your local deployment.
Using solidity interfaces
The Uniswap v3 periphery interfaces are available for import into solidity smart contracts
via the npm artifact @kumbaya_xyz/v3-periphery, e.g.:
import '@kumbaya_xyz/v3-periphery/contracts/interfaces/ISwapRouter.sol';
contract MyContract {
ISwapRouter router;
function doSomethingWithSwapRouter() {
// router.exactInput(...);
}
}
