Update docs

This commit is contained in:
github-actions
2022-06-29 09:01:40 +00:00
parent 0627757030
commit 1722dabc84
141 changed files with 14658 additions and 6699 deletions

12
test/helpers/create2.js Normal file
View File

@ -0,0 +1,12 @@
function computeCreate2Address (saltHex, bytecode, deployer) {
return web3.utils.toChecksumAddress(`0x${web3.utils.sha3(`0x${[
'ff',
deployer,
saltHex,
web3.utils.soliditySha3(bytecode),
].map(x => x.replace(/0x/, '')).join('')}`).slice(-40)}`);
}
module.exports = {
computeCreate2Address,
};

View File

@ -7,6 +7,14 @@ const EIP712Domain = [
{ name: 'verifyingContract', type: 'address' },
];
const Permit = [
{ name: 'owner', type: 'address' },
{ name: 'spender', type: 'address' },
{ name: 'value', type: 'uint256' },
{ name: 'nonce', type: 'uint256' },
{ name: 'deadline', type: 'uint256' },
];
async function domainSeparator (name, version, chainId, verifyingContract) {
return '0x' + ethSigUtil.TypedDataUtils.hashStruct(
'EIP712Domain',
@ -17,5 +25,6 @@ async function domainSeparator (name, version, chainId, verifyingContract) {
module.exports = {
EIP712Domain,
Permit,
domainSeparator,
};

View File

@ -21,4 +21,9 @@ module.exports = {
'For',
'Abstain',
),
Rounding: Enum(
'Down',
'Up',
'Zero',
),
};

40
test/helpers/txpool.js Normal file
View File

@ -0,0 +1,40 @@
const { network } = require('hardhat');
const { promisify } = require('util');
const queue = promisify(setImmediate);
async function countPendingTransactions () {
return parseInt(
await network.provider.send('eth_getBlockTransactionCountByNumber', ['pending']),
);
}
async function batchInBlock (txs) {
try {
// disable auto-mining
await network.provider.send('evm_setAutomine', [false]);
// send all transactions
const promises = txs.map(fn => fn());
// wait for node to have all pending transactions
while (txs.length > await countPendingTransactions()) {
await queue();
}
// mine one block
await network.provider.send('evm_mine');
// fetch receipts
const receipts = await Promise.all(promises);
// Sanity check, all tx should be in the same block
const minedBlocks = new Set(receipts.map(({ receipt }) => receipt.blockNumber));
expect(minedBlocks.size).to.equal(1);
return receipts;
} finally {
// enable auto-mining
await network.provider.send('evm_setAutomine', [true]);
}
}
module.exports = {
countPendingTransactions,
batchInBlock,
};