Update docs

This commit is contained in:
github-actions
2023-05-09 19:56:30 +00:00
parent 47e38c7bda
commit 6ae39c4dc1
579 changed files with 30453 additions and 21485 deletions

View File

@ -1,22 +1,27 @@
const { BN, expectRevert } = require('@openzeppelin/test-helpers');
const MulticallTokenMock = artifacts.require('MulticallTokenMock');
contract('MulticallToken', function (accounts) {
const ERC20MulticallMock = artifacts.require('$ERC20MulticallMock');
contract('Multicall', function (accounts) {
const [deployer, alice, bob] = accounts;
const amount = 12000;
beforeEach(async function () {
this.multicallToken = await MulticallTokenMock.new(new BN(amount), { from: deployer });
this.multicallToken = await ERC20MulticallMock.new('name', 'symbol');
await this.multicallToken.$_mint(deployer, amount);
});
it('batches function calls', async function () {
expect(await this.multicallToken.balanceOf(alice)).to.be.bignumber.equal(new BN('0'));
expect(await this.multicallToken.balanceOf(bob)).to.be.bignumber.equal(new BN('0'));
await this.multicallToken.multicall([
this.multicallToken.contract.methods.transfer(alice, amount / 2).encodeABI(),
this.multicallToken.contract.methods.transfer(bob, amount / 3).encodeABI(),
], { from: deployer });
await this.multicallToken.multicall(
[
this.multicallToken.contract.methods.transfer(alice, amount / 2).encodeABI(),
this.multicallToken.contract.methods.transfer(bob, amount / 3).encodeABI(),
],
{ from: deployer },
);
expect(await this.multicallToken.balanceOf(alice)).to.be.bignumber.equal(new BN(amount / 2));
expect(await this.multicallToken.balanceOf(bob)).to.be.bignumber.equal(new BN(amount / 3));
@ -37,20 +42,26 @@ contract('MulticallToken', function (accounts) {
it('reverts previous calls', async function () {
expect(await this.multicallToken.balanceOf(alice)).to.be.bignumber.equal(new BN('0'));
const call = this.multicallToken.multicall([
this.multicallToken.contract.methods.transfer(alice, amount).encodeABI(),
this.multicallToken.contract.methods.transfer(bob, amount).encodeABI(),
], { from: deployer });
const call = this.multicallToken.multicall(
[
this.multicallToken.contract.methods.transfer(alice, amount).encodeABI(),
this.multicallToken.contract.methods.transfer(bob, amount).encodeABI(),
],
{ from: deployer },
);
await expectRevert(call, 'ERC20: transfer amount exceeds balance');
expect(await this.multicallToken.balanceOf(alice)).to.be.bignumber.equal(new BN('0'));
});
it('bubbles up revert reasons', async function () {
const call = this.multicallToken.multicall([
this.multicallToken.contract.methods.transfer(alice, amount).encodeABI(),
this.multicallToken.contract.methods.transfer(bob, amount).encodeABI(),
], { from: deployer });
const call = this.multicallToken.multicall(
[
this.multicallToken.contract.methods.transfer(alice, amount).encodeABI(),
this.multicallToken.contract.methods.transfer(bob, amount).encodeABI(),
],
{ from: deployer },
);
await expectRevert(call, 'ERC20: transfer amount exceeds balance');
});