1.3.35 • Published 1 year ago

@todesstille/mock v1.3.35

Weekly downloads
-
License
ISC
Repository
github
Last release
1 year ago

Mock Kit for Hardhat tests

Install

Create hardhat project
Add this package with npm or yarn

Inside test script:

const {ethers} = require('hardhat')
const {Mock} = require('@todesstille/mock')
const mock = new Mock(ethers)

Usage

ERC20

erc20 = await mock.getERC20(name, symbol, decimals) // Creates contract instance
await erc20.mint(address) // Mint tokens to any address you need

Chainlink Pricefeed

pricefeed = await mock.getChainlinkPricefeed(decimals, description, version, price)
await pricefeed.updateOracle(newPrice)
await pricefeed.latestAnswer()

Wrapped Ether

weth = await mock.getWeth9();

UniswapV2

uniswap = await mock.createUniswapV2(weth.address, admin.address)

Factory and Router instances are available by uniswap.factory and uniswap.router

To get a new or existent pair:

token1 = await mock.getERC20("Token1", "TKN1", 18);
token2 = await mock.getERC20("Token2", "TKN2", 18);
pair = await uniswap.createOrGetPair(token1.address, token2.address)

UniswapV3

uniswap = await mock.createUniswapV3(weth.address)

Factory, SwapRouter and NonfungiblePositionManager instances are available by uniswap.factory, uniswap.router and uniswap.nft

To get a new or existent pool:

token1 = await mock.getERC20("Token1", "TKN1", 18);
token2 = await mock.getERC20("Token2", "TKN2", 18);
fee = 500;
pool = await uniswap.createOrGetPool(token1.address, token2.address, fee)

Initialize pool with ratio:

ratio = "0x01000000000000000000000000" // 1:1 ratio
await uniswap.initializePool(pool, ratio)

Fill pool from TICK_MIN to TICK_MAX

await token1.approve(nft.address, amount1)
await token2.approve(nft.address, amount2)
result = await uniswap.defaultAddLiquidity(pool, amount1, amount2, userAddress);
// Tokens in the pool located in the alphabetic order, so amount1 as the amount of token with a lower address.

Chainlink VRF v1

link = await mock.getLinkToken();
coordinator = await mock.getVrfV1(link.address) 
await coordinator.register("mainnet")

registers keyHash for mainnet. Also availabe "polygon", "bnb" etc

contract = await Contract.deploy(coordinator.address, link.address) 

Deploy your contract. It must implement VRFConsumerBase.sol

amount =  await ethers.utils.parseUnits("2.0", 18)
await link.transfer(contract.address, amount) // Sent 2 LINK to your contract
await contract.requestRandomness("0xaa77729d3466ca35ae8d28b3bbac7cc36a5031efdc430821c02bc31a238af445", amount) 

Mainnet keyHash for 2 LINK

await coordinator.fulfill() // Reply from VRF oracle to all unparsed requests
1.2.0

1 year ago

1.2.7

1 year ago

1.2.6

1 year ago

1.0.8

1 year ago

1.2.5

1 year ago

1.0.7

1 year ago

1.2.4

1 year ago

1.0.6

1 year ago

1.2.3

1 year ago

1.0.5

1 year ago

1.2.2

1 year ago

1.0.4

1 year ago

1.2.1

1 year ago

1.0.3

1 year ago

1.3.10

1 year ago

1.3.13

1 year ago

1.3.14

1 year ago

1.3.11

1 year ago

1.3.12

1 year ago

1.3.17

1 year ago

1.3.18

1 year ago

1.3.15

1 year ago

1.3.16

1 year ago

1.3.19

1 year ago

1.3.20

1 year ago

1.3.21

1 year ago

1.3.9

1 year ago

1.3.8

1 year ago

1.3.24

1 year ago

1.3.25

1 year ago

1.3.22

1 year ago

1.3.23

1 year ago

1.3.28

1 year ago

1.3.29

1 year ago

1.3.26

1 year ago

1.3.27

1 year ago

1.1.1

1 year ago

1.1.0

1 year ago

1.3.7

1 year ago

1.1.9

1 year ago

1.3.6

1 year ago

1.1.8

1 year ago

1.3.5

1 year ago

1.1.7

1 year ago

1.3.4

1 year ago

1.1.6

1 year ago

1.3.3

1 year ago

1.1.5

1 year ago

1.3.2

1 year ago

1.1.4

1 year ago

1.3.1

1 year ago

1.1.3

1 year ago

1.3.0

1 year ago

1.1.2

1 year ago

1.3.31

1 year ago

1.3.32

1 year ago

1.3.30

1 year ago

1.3.35

1 year ago

1.1.12

1 year ago

1.1.11

1 year ago

1.3.33

1 year ago

1.1.10

1 year ago

1.3.34

1 year ago

1.1.16

1 year ago

1.1.15

1 year ago

1.1.14

1 year ago

1.1.13

1 year ago

1.1.19

1 year ago

1.1.18

1 year ago

1.1.17

1 year ago

1.1.23

1 year ago

1.1.22

1 year ago

1.1.21

1 year ago

1.1.20

1 year ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago