Break up abacus-tests into the respective packages (#152)

pull/177/head
Asa Oines 3 years ago committed by GitHub
parent eaa89a9c52
commit 472aedfddb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 10
      .github/workflows/solidity.yml
  2. 1137
      package-lock.json
  3. 3
      package.json
  4. 18
      scripts/test-solidity.sh
  5. 11
      solidity/abacus-core/.prettierrc
  6. 8
      solidity/abacus-core/contracts/test/TestGovernanceRouter.sol
  7. 13
      solidity/abacus-core/contracts/test/TestHome.sol
  8. 14
      solidity/abacus-core/contracts/test/TestReplica.sol
  9. 9
      solidity/abacus-core/hardhat.config.ts
  10. 14
      solidity/abacus-core/libs/Message.sol
  11. 12
      solidity/abacus-core/package.json
  12. 9
      solidity/abacus-core/test/common.test.ts
  13. 205
      solidity/abacus-core/test/cross-chain/governanceRouter.test.ts
  14. 74
      solidity/abacus-core/test/cross-chain/recoveryManager.test.ts
  15. 60
      solidity/abacus-core/test/cross-chain/simpleMessage.test.ts
  16. 10
      solidity/abacus-core/test/cross-chain/utils.ts
  17. 62
      solidity/abacus-core/test/home.test.ts
  18. 188
      solidity/abacus-core/test/lib/AbacusDeployment.ts
  19. 85
      solidity/abacus-core/test/lib/GovernanceDeployment.ts
  20. 12
      solidity/abacus-core/test/lib/core.ts
  21. 3
      solidity/abacus-core/test/lib/index.ts
  22. 50
      solidity/abacus-core/test/lib/types.ts
  23. 8
      solidity/abacus-core/test/lib/utils.ts
  24. 7
      solidity/abacus-core/test/merkle.test.ts
  25. 5
      solidity/abacus-core/test/message.test.ts
  26. 5
      solidity/abacus-core/test/queue.test.ts
  27. 116
      solidity/abacus-core/test/replica.test.ts
  28. 31
      solidity/abacus-core/test/upgrade.test.ts
  29. 61
      solidity/abacus-core/test/utils.ts
  30. 105
      solidity/abacus-core/test/xAppConnectionManager.test.ts
  31. 123
      solidity/abacus-core/typechain/BadRecipient1.d.ts
  32. 123
      solidity/abacus-core/typechain/BadRecipient2.d.ts
  33. 123
      solidity/abacus-core/typechain/BadRecipient3.d.ts
  34. 123
      solidity/abacus-core/typechain/BadRecipient4.d.ts
  35. 123
      solidity/abacus-core/typechain/BadRecipient5.d.ts
  36. 123
      solidity/abacus-core/typechain/BadRecipient6.d.ts
  37. 118
      solidity/abacus-core/typechain/BadRecipientHandle.d.ts
  38. 255
      solidity/abacus-core/typechain/Common.d.ts
  39. 715
      solidity/abacus-core/typechain/GovernanceRouter.d.ts
  40. 799
      solidity/abacus-core/typechain/Home.d.ts
  41. 124
      solidity/abacus-core/typechain/IMessageRecipient.d.ts
  42. 127
      solidity/abacus-core/typechain/IUpdaterManager.d.ts
  43. 246
      solidity/abacus-core/typechain/MerkleLib.d.ts
  44. 123
      solidity/abacus-core/typechain/MerkleTreeManager.d.ts
  45. 173
      solidity/abacus-core/typechain/MysteryMath.d.ts
  46. 186
      solidity/abacus-core/typechain/MysteryMathV1.d.ts
  47. 186
      solidity/abacus-core/typechain/MysteryMathV2.d.ts
  48. 169
      solidity/abacus-core/typechain/Ownable.d.ts
  49. 169
      solidity/abacus-core/typechain/OwnableUpgradeable.d.ts
  50. 145
      solidity/abacus-core/typechain/QueueManager.d.ts
  51. 1104
      solidity/abacus-core/typechain/Replica.d.ts
  52. 324
      solidity/abacus-core/typechain/TestCommon.d.ts
  53. 788
      solidity/abacus-core/typechain/TestGovernanceRouter.d.ts
  54. 859
      solidity/abacus-core/typechain/TestHome.d.ts
  55. 392
      solidity/abacus-core/typechain/TestMerkle.d.ts
  56. 252
      solidity/abacus-core/typechain/TestMessage.d.ts
  57. 363
      solidity/abacus-core/typechain/TestQueue.d.ts
  58. 206
      solidity/abacus-core/typechain/TestRecipient.d.ts
  59. 1473
      solidity/abacus-core/typechain/TestReplica.d.ts
  60. 575
      solidity/abacus-core/typechain/TestXAppConnectionManager.d.ts
  61. 95
      solidity/abacus-core/typechain/TypedMemView.d.ts
  62. 276
      solidity/abacus-core/typechain/UpdaterManager.d.ts
  63. 86
      solidity/abacus-core/typechain/UpgradeBeacon.d.ts
  64. 215
      solidity/abacus-core/typechain/UpgradeBeaconController.d.ts
  65. 78
      solidity/abacus-core/typechain/UpgradeBeaconProxy.d.ts
  66. 95
      solidity/abacus-core/typechain/Version0.d.ts
  67. 526
      solidity/abacus-core/typechain/XAppConnectionManager.d.ts
  68. 36
      solidity/abacus-core/typechain/commons.ts
  69. 70
      solidity/abacus-core/typechain/factories/BadRecipient1__factory.ts
  70. 70
      solidity/abacus-core/typechain/factories/BadRecipient2__factory.ts
  71. 70
      solidity/abacus-core/typechain/factories/BadRecipient3__factory.ts
  72. 70
      solidity/abacus-core/typechain/factories/BadRecipient4__factory.ts
  73. 70
      solidity/abacus-core/typechain/factories/BadRecipient5__factory.ts
  74. 70
      solidity/abacus-core/typechain/factories/BadRecipient6__factory.ts
  75. 68
      solidity/abacus-core/typechain/factories/BadRecipientHandle__factory.ts
  76. 188
      solidity/abacus-core/typechain/factories/Common__factory.ts
  77. 537
      solidity/abacus-core/typechain/factories/GovernanceRouter__factory.ts
  78. 652
      solidity/abacus-core/typechain/factories/Home__factory.ts
  79. 49
      solidity/abacus-core/typechain/factories/IMessageRecipient__factory.ts
  80. 52
      solidity/abacus-core/typechain/factories/IUpdaterManager__factory.ts
  81. 60
      solidity/abacus-core/typechain/factories/MerkleLib__factory.ts
  82. 89
      solidity/abacus-core/typechain/factories/MerkleTreeManager__factory.ts
  83. 128
      solidity/abacus-core/typechain/factories/MysteryMathV1__factory.ts
  84. 128
      solidity/abacus-core/typechain/factories/MysteryMathV2__factory.ts
  85. 86
      solidity/abacus-core/typechain/factories/MysteryMath__factory.ts
  86. 78
      solidity/abacus-core/typechain/factories/OwnableUpgradeable__factory.ts
  87. 75
      solidity/abacus-core/typechain/factories/Ownable__factory.ts
  88. 92
      solidity/abacus-core/typechain/factories/QueueManager__factory.ts
  89. 586
      solidity/abacus-core/typechain/factories/Replica__factory.ts
  90. 288
      solidity/abacus-core/typechain/factories/TestCommon__factory.ts
  91. 578
      solidity/abacus-core/typechain/factories/TestGovernanceRouter__factory.ts
  92. 686
      solidity/abacus-core/typechain/factories/TestHome__factory.ts
  93. 133
      solidity/abacus-core/typechain/factories/TestMerkle__factory.ts
  94. 199
      solidity/abacus-core/typechain/factories/TestMessage__factory.ts
  95. 239
      solidity/abacus-core/typechain/factories/TestQueue__factory.ts
  96. 132
      solidity/abacus-core/typechain/factories/TestRecipient__factory.ts
  97. 667
      solidity/abacus-core/typechain/factories/TestReplica__factory.ts
  98. 405
      solidity/abacus-core/typechain/factories/TestXAppConnectionManager__factory.ts
  99. 60
      solidity/abacus-core/typechain/factories/TypedMemView__factory.ts
  100. 202
      solidity/abacus-core/typechain/factories/UpdaterManager__factory.ts
  101. Some files were not shown because too many files have changed in this diff Show More

@ -32,10 +32,8 @@ jobs:
- name: lint
run: |
cd ./solidity/abacus-core
npm run lint
cd ../abacus-xapps
npm run lint
npm --prefix ./solidity/abacus-core run lint
npm --prefix ./solidity/abacus-xapps run lint
solidity-test:
env:
@ -51,4 +49,6 @@ jobs:
with:
runneros: ${{ runner.os }}
- name: test
run: ./scripts/test-solidity.sh
run: |
npm --prefix ./solidity/abacus-core run test
npm --prefix ./solidity/abacus-xapps run test

1137
package-lock.json generated

File diff suppressed because it is too large Load Diff

@ -10,8 +10,7 @@
"typescript/typechain",
"typescript/abacus-sdk",
"typescript/contract-metrics",
"typescript/abacus-deploy",
"typescript/abacus-tests"
"typescript/abacus-deploy"
]
}

@ -1,18 +0,0 @@
# script for running solidity tests locally
# Run from root (./scripts/test-solidity.sh)
set -e
# compile contracts
npm run build
# copy artifacts
cp -R ./solidity/abacus-xapps/artifacts ./typescript/abacus-tests
cp -R ./solidity/abacus-core/artifacts ./typescript/abacus-tests
# copy cache
cp -R ./solidity/abacus-xapps/cache ./typescript/abacus-tests
cp -R ./solidity/abacus-core/cache ./typescript/abacus-tests
# run tests
npm --prefix ./typescript/abacus-tests run testNoCompile

@ -1,13 +1,8 @@
{
"tabWidth": 2,
"singleQuote": true,
"trailingComma": "all",
"overrides": [
{
"files": "*.js",
"options": {
"tabWidth": 2,
"singleQuote": true,
"trailingComma": "all"
}
},
{
"files": "*.sol",
"options": {

@ -6,10 +6,6 @@ import "../governance/GovernanceRouter.sol";
import {TypeCasts} from "../XAppConnectionManager.sol";
contract TestGovernanceRouter is GovernanceRouter {
using TypedMemView for bytes;
using TypedMemView for bytes29;
using GovernanceMessage for bytes29;
constructor(uint32 _localDomain, uint256 _recoveryTimelock)
GovernanceRouter(_localDomain, 50)
{} // solhint-disable-line no-empty-blocks
@ -25,10 +21,6 @@ contract TestGovernanceRouter is GovernanceRouter {
_sendToAllRemoteRouters(_setRouterMessage);
}
function setRouterAddress(uint32 _domain, address _router) external {
_setRouter(_domain, TypeCasts.addressToBytes32(_router));
}
function containsDomain(uint32 _domain) external view returns (bool) {
for (uint256 i = 0; i < domains.length; i++) {
if (domains[i] == _domain) return true;

@ -4,20 +4,9 @@ pragma solidity >=0.6.11;
import "../Home.sol";
contract TestHome is Home {
using QueueLib for QueueLib.Queue;
using MerkleLib for MerkleLib.Tree;
constructor(uint32 _localDomain) Home(_localDomain) {} // solhint-disable-line no-empty-blocks
function nextLeafIndex() external view returns (uint256) {
return count();
}
function testHomeDomainHash() external view returns (bytes32) {
return homeDomainHash();
}
function testDestinationAndNonce(uint32 _destination, uint32 _nonce)
function destinationAndNonce(uint32 _destination, uint32 _nonce)
external
pure
returns (uint64)

@ -18,11 +18,7 @@ contract TestReplica is Replica {
_setFailed();
}
function setRemoteDomain(uint32 _remoteDomain) external {
remoteDomain = _remoteDomain;
}
function setMessagePending(bytes memory _message) external {
function setMessageProven(bytes memory _message) external {
bytes29 _m = _message.ref(0);
messages[_m.keccak()] = MessageStatus.Proven;
}
@ -32,14 +28,6 @@ contract TestReplica is Replica {
confirmAt[_newRoot] = 1;
}
function timestamp() external view returns (uint256) {
return block.timestamp;
}
function testHomeDomainHash() external view returns (bytes32) {
return homeDomainHash();
}
function testBranchRoot(
bytes32 leaf,
bytes32[32] calldata proof,

@ -1,6 +1,9 @@
import "solidity-coverage";
import "@typechain/hardhat";
import "@nomiclabs/hardhat-etherscan";
import "@nomiclabs/hardhat-waffle";
import "hardhat-gas-reporter";
import './test/lib/index';
import { task } from "hardhat/config";
import { verifyLatestCoreDeploy } from "../../typescript/abacus-deploy/src/verification/verifyLatestDeploy";
@ -33,7 +36,9 @@ module.exports = {
},
},
},
gasReporter: {
currency: "USD",
},
networks: {
localhost: {
url: "http://localhost:8545",
@ -56,7 +61,7 @@ module.exports = {
// TODO: add Ropsten
},
typechain: {
outDir: "../../typescript/typechain/abacus-core",
outDir: "./typechain",
target: "ethers-v5",
alwaysGenerateOverloads: false, // should overloads with full signatures like deposit(uint256) be generated always, even if there are no overloads?
},

@ -3,9 +3,7 @@ pragma solidity >=0.6.11;
import "@summa-tx/memview-sol/contracts/TypedMemView.sol";
import {
TypeCasts
} from "./TypeCasts.sol";
import {TypeCasts} from "./TypeCasts.sol";
/**
* @title Message Library
@ -119,6 +117,14 @@ library Message {
}
function leaf(bytes29 _message) internal view returns (bytes32) {
return messageHash(origin(_message), sender(_message), nonce(_message), destination(_message), recipient(_message), TypedMemView.clone(body(_message)));
return
messageHash(
origin(_message),
sender(_message),
nonce(_message),
destination(_message),
recipient(_message),
TypedMemView.clone(body(_message))
);
}
}

@ -10,7 +10,8 @@
"eslint": "^7.20.0",
"ethereum-waffle": "^3.2.2",
"ethers": "^5.4.4",
"hardhat": "^2.0.8",
"hardhat": "^2.8.3",
"hardhat-gas-reporter": "^1.0.7",
"prettier": "^2.2.1",
"prettier-plugin-solidity": "^1.0.0-beta.5",
"solhint": "^3.3.2",
@ -20,17 +21,18 @@
"typechain": "^5.0.0"
},
"version": "0.0.0",
"description": "Optimistic Interchain Communications",
"description": "Abacus Interchain Communications",
"main": " ",
"directories": {
"test": "test"
},
"scripts": {
"prettier": "prettier --write ./contracts",
"compile": "hardhat compile && hardhat typechain && npm run prettier && ./update_abis.sh",
"prettier": "prettier --write ./contracts ./libs ./test",
"compile": "hardhat compile && hardhat typechain && npm run prettier && npm run copy-typechain",
"copy-typechain": "cp -r typechain/* ../../typescript/typechain/abacus-core/",
"build": "npm run compile",
"test": "hardhat test",
"coverage": "npm run compile && hardhat coverage",
"test": "cd ../../ && ./scripts/test-solidity.sh",
"lint": "solhint 'contracts/*.sol' && solhint 'contracts/**/*.sol'",
"lint:fix": "solhint --fix 'contracts/*.sol' && solhint --fix 'contracts/**/*.sol'",
"deploy": "npm run compile && cd ../../typescript/abacus-deploy && npm run deploy-core",

@ -1,13 +1,10 @@
import { ethers } from 'hardhat';
import { expect } from 'chai';
import { AbacusState, Updater } from '../lib/core';
import { Signer } from '../lib/types';
import { AbacusState, Updater } from './lib/core';
import { Signer } from './lib/types';
import {
TestCommon__factory,
TestCommon,
} from '@abacus-network/ts-interface/dist/abacus-core';
import { TestCommon__factory, TestCommon } from '../typechain';
const signedUpdateTestCases = require('../../../vectors/signedUpdate.json');
const localDomain = 1000;

@ -3,42 +3,49 @@ import { expect } from 'chai';
import { updateReplica, formatCall, formatAbacusMessage } from './utils';
import { increaseTimestampBy, UpgradeTestHelpers } from '../utils';
import { getTestDeploy } from '../testChain';
import { Updater } from '../../lib/core';
import { Address, Signer } from '../../lib/types';
import { CoreDeploy as Deploy } from '@abacus-network/abacus-deploy/dist/src/core/CoreDeploy';
import { Updater } from '../lib/core';
import { Address, Signer } from '../lib/types';
import { AbacusDeployment } from '../lib/AbacusDeployment';
import { GovernanceDeployment } from '../lib/GovernanceDeployment';
import {
deployNChains,
deployUnenrolledReplica,
} from '@abacus-network/abacus-deploy/dist/src/core';
import * as contracts from '@abacus-network/ts-interface/dist/abacus-core';
MysteryMathV2__factory,
TestReplica,
TestReplica__factory,
TestRecipient__factory,
TestGovernanceRouter,
Replica,
Home,
} from '../../typechain';
const helpers = require('../../../../vectors/proof.json');
const governorDomain = 1000;
const nonGovernorDomain = 2000;
const thirdDomain = 3000;
const domains = [governorDomain, nonGovernorDomain, thirdDomain];
const processGas = 850000;
const reserveGas = 15000;
/*
* Deploy the full Abacus suite on two chains
*/
describe('GovernanceRouter', async () => {
let deploys: Deploy[] = [];
let abacusDeployment: AbacusDeployment;
let governanceDeployment: GovernanceDeployment;
let signer: Signer,
secondGovernorSigner: Signer,
secondSigner: Signer,
thirdRouter: Signer,
governorRouter: contracts.TestGovernanceRouter,
governorHome: contracts.Home,
governorReplicaOnNonGovernorChain: contracts.TestReplica,
nonGovernorRouter: contracts.TestGovernanceRouter,
nonGovernorReplicaOnGovernorChain: contracts.TestReplica,
firstGovernor: Address,
secondGovernor: Address,
governorRouter: TestGovernanceRouter,
nonGovernorRouter: TestGovernanceRouter,
governorHome: Home,
governorReplicaOnNonGovernorChain: TestReplica,
nonGovernorReplicaOnGovernorChain: TestReplica,
updater: Updater;
async function expectGovernor(
governanceRouter: contracts.TestGovernanceRouter,
governanceRouter: TestGovernanceRouter,
expectedGovernorDomain: number,
expectedGovernor: Address,
) {
@ -49,130 +56,82 @@ describe('GovernanceRouter', async () => {
}
before(async () => {
[thirdRouter, signer, secondGovernorSigner] = await ethers.getSigners();
[thirdRouter, signer, secondSigner] = await ethers.getSigners();
updater = await Updater.fromSigner(signer, governorDomain);
});
beforeEach(async () => {
// reset deploys
deploys[0] = await getTestDeploy(governorDomain, updater.address, []);
deploys[1] = await getTestDeploy(nonGovernorDomain, updater.address, []);
deploys[2] = await getTestDeploy(thirdDomain, updater.address, []);
// deploy the entire Abacus suite on two chains
await deployNChains([deploys[0], deploys[1]]);
// get both governanceRouters
governorRouter = deploys[0].contracts.governanceRouter
?.proxy! as contracts.TestGovernanceRouter;
nonGovernorRouter = deploys[1].contracts.governanceRouter
?.proxy! as contracts.TestGovernanceRouter;
firstGovernor = await governorRouter.governor();
secondGovernor = await secondGovernorSigner.getAddress();
governorHome = deploys[0].contracts.home?.proxy!;
governorReplicaOnNonGovernorChain = deploys[1].contracts.replicas[
governorDomain
].proxy! as contracts.TestReplica;
nonGovernorReplicaOnGovernorChain = deploys[0].contracts.replicas[
nonGovernorDomain
].proxy! as contracts.TestReplica;
abacusDeployment = await abacus.deployment.fromDomains(domains, signer);
governanceDeployment = await GovernanceDeployment.fromAbacusDeployment(
abacusDeployment,
signer,
);
firstGovernor = await signer.getAddress();
secondGovernor = await secondSigner.getAddress();
governorRouter = governanceDeployment.router(governorDomain);
nonGovernorRouter = governanceDeployment.router(nonGovernorDomain);
governorReplicaOnNonGovernorChain = abacusDeployment.replica(
nonGovernorDomain,
governorDomain,
);
nonGovernorReplicaOnGovernorChain = abacusDeployment.replica(
governorDomain,
nonGovernorDomain,
);
governorHome = abacusDeployment.home(governorDomain);
});
// NB: must be first test for message proof
it('Sends cross-chain message to upgrade contract', async () => {
const deploy = deploys[1];
const upgradeUtils = new UpgradeTestHelpers();
// get upgradeBeaconController
const upgradeBeaconController = deploy.contracts.upgradeBeaconController!;
const ubc = abacusDeployment.ubc(nonGovernorDomain);
// Transfer ownership of the UBC to governance.
await ubc.transferOwnership(nonGovernorRouter.address);
const mysteryMath = await upgradeUtils.deployMysteryMathUpgradeSetup(
deploy,
signer,
false,
ubc,
);
// expect results before upgrade
await upgradeUtils.expectMysteryMathV1(mysteryMath.proxy);
// Deploy Implementation 2
const factory2 = new contracts.MysteryMathV2__factory(signer);
const factory2 = new MysteryMathV2__factory(signer);
const implementation2 = await factory2.deploy();
// Format abacus call message
const call = await formatCall(upgradeBeaconController, 'upgrade', [
const call = await formatCall(ubc, 'upgrade', [
mysteryMath.beacon.address,
implementation2.address,
]);
const committedRoot = await governorHome.committedRoot();
// dispatch call on local governorRouter
let tx = await governorRouter.callRemote(nonGovernorDomain, [call]);
let receipt = await tx.wait(0);
let leaf = receipt.events?.[0].topics[1];
expect(leaf).to.equal(helpers.proof.leaf);
const [, latestRoot] = await governorHome.suggestUpdate();
expect(latestRoot).to.equal(helpers.root);
const { signature } = await updater.signUpdate(committedRoot, latestRoot);
await expect(governorHome.update(committedRoot, latestRoot, signature))
.to.emit(governorHome, 'Update')
.withArgs(governorDomain, committedRoot, latestRoot, signature);
expect(await governorHome.committedRoot()).to.equal(latestRoot);
expect(await governorHome.queueContains(latestRoot)).to.be.false;
await updateReplica(
{ oldRoot: committedRoot, newRoot: latestRoot, signature },
governorReplicaOnNonGovernorChain,
);
// Increase time enough for both updates to be confirmable
const optimisticSeconds = deploy.config.optimisticSeconds;
await increaseTimestampBy(deploy.chain.provider, optimisticSeconds * 2);
// after confirming, committedRoot should be equal to the last submitted update
expect(await governorReplicaOnNonGovernorChain.committedRoot()).to.equal(
latestRoot,
);
const callMessage = abacus.governance.formatCalls([call]);
const nonce = await governorHome.nonces(nonGovernorDomain);
const abacusMessage = abacus.formatMessage(
governorDomain,
governorRouter.address,
nonce - 1,
nonGovernorDomain,
nonGovernorRouter.address,
callMessage,
);
expect(ethers.utils.keccak256(abacusMessage)).to.equal(leaf);
const { path, index } = helpers.proof;
await governorReplicaOnNonGovernorChain.proveAndProcess(
abacusMessage,
path,
index,
);
await abacusDeployment.processMessages();
// test implementation was upgraded
await upgradeUtils.expectMysteryMathV2(mysteryMath.proxy);
});
it('Rejects message from unenrolled replica', async () => {
await deployUnenrolledReplica(deploys[1], deploys[2]);
const unenrolledReplica = deploys[1].contracts.replicas[thirdDomain]
.proxy! as contracts.TestReplica;
const replicaFactory = new TestReplica__factory(signer);
const unenrolledReplica = await replicaFactory.deploy(
nonGovernorDomain,
processGas,
reserveGas,
);
await unenrolledReplica.initialize(
thirdDomain,
await signer.getAddress(),
ethers.constants.HashZero,
0,
);
// Create TransferGovernor message
const transferGovernorMessage = abacus.governance.formatTransferGovernor(
@ -206,8 +165,8 @@ describe('GovernanceRouter', async () => {
transferGovernorMessage,
);
// Set message status to MessageStatus.Pending
await nonGovernorReplicaOnGovernorChain.setMessagePending(abacusMessage);
// Set message status to MessageStatus.Proven
await nonGovernorReplicaOnGovernorChain.setMessageProven(abacusMessage);
// Expect replica processing to fail when nonGovernorRouter reverts in handle
let success =
@ -286,12 +245,12 @@ describe('GovernanceRouter', async () => {
it('Accepts valid call messages', async () => {
// const TestRecipient = await abacus.deployImplementation('TestRecipient');
const testRecipientFactory = new contracts.TestRecipient__factory(signer);
const TestRecipient = await testRecipientFactory.deploy();
const testRecipientFactory = new TestRecipient__factory(signer);
const testRecipient = await testRecipientFactory.deploy();
// Format abacus call message
const arg = 'String!';
const call = await formatCall(TestRecipient, 'receiveString', [arg]);
const call = await formatCall(testRecipient, 'receiveString', [arg]);
// Create Call message to test recipient that calls receiveString
const callMessage = abacus.governance.formatCalls([call, call]);
@ -393,31 +352,32 @@ describe('GovernanceRouter', async () => {
it('Upgrades using GovernanceRouter call', async () => {
const upgradeUtils = new UpgradeTestHelpers();
const deploy = deploys[0];
// get upgradeBeaconController
const ubc = abacusDeployment.ubc(governorDomain);
// Transfer ownership of the UBC to governance.
await ubc.transferOwnership(governorRouter.address);
const mysteryMath = await upgradeUtils.deployMysteryMathUpgradeSetup(
deploy,
signer,
ubc,
);
const upgradeBeaconController = deploy.contracts.upgradeBeaconController!;
// expect results before upgrade
await upgradeUtils.expectMysteryMathV1(mysteryMath.proxy);
// Deploy Implementation 2
const v2Factory = new contracts.MysteryMathV2__factory(signer);
const v2Factory = new MysteryMathV2__factory(signer);
const implementation = await v2Factory.deploy();
// Format abacus call message
const call = await formatCall(upgradeBeaconController, 'upgrade', [
const call = await formatCall(ubc, 'upgrade', [
mysteryMath.beacon.address,
implementation.address,
]);
// dispatch call on local governorRouter
await expect(governorRouter.callLocal([call])).to.emit(
upgradeBeaconController,
ubc,
'BeaconUpgraded',
);
@ -427,11 +387,14 @@ describe('GovernanceRouter', async () => {
it('Calls UpdaterManager to change the Updater on Home', async () => {
const [newUpdater] = await ethers.getSigners();
const updaterManager = deploys[0].contracts.updaterManager!;
const updaterManager = abacusDeployment.updaterManager(governorDomain);
await updaterManager.transferOwnership(governorRouter.address);
// check current Updater address on Home
let currentUpdaterAddr = await governorHome.updater();
expect(currentUpdaterAddr).to.equal(deploys[0].updater);
expect(currentUpdaterAddr).to.equal(
await abacusDeployment.updater(governorDomain).signer.getAddress(),
);
// format abacus call message
const call = await formatCall(updaterManager, 'setUpdater', [

@ -4,20 +4,23 @@ import * as types from 'ethers';
import { formatCall, sendFromSigner } from './utils';
import { increaseTimestampBy } from '../utils';
import { getTestDeploy } from '../testChain';
import { Updater } from '../../lib/core';
import { Signer } from '../../lib/types';
import { CoreDeploy as Deploy } from '@abacus-network/abacus-deploy/dist/src/core/CoreDeploy';
import { deployNChains } from '@abacus-network/abacus-deploy/dist/src/core';
import * as contracts from '@abacus-network/ts-interface/dist/abacus-core';
import { Updater } from '../lib/core';
import { Signer } from '../lib/types';
import {
UpdaterManager,
TestGovernanceRouter,
TestHome,
} from '../../typechain';
import { AbacusDeployment } from '../lib/AbacusDeployment';
import { GovernanceDeployment } from '../lib/GovernanceDeployment';
async function expectNotInRecovery(
updaterManager: contracts.UpdaterManager,
updaterManager: UpdaterManager,
recoveryManager: types.Signer,
randomSigner: Signer,
governor: Signer,
governanceRouter: contracts.TestGovernanceRouter,
home: contracts.TestHome,
governanceRouter: TestGovernanceRouter,
home: TestHome,
) {
expect(await governanceRouter.inRecovery()).to.be.false;
@ -102,7 +105,7 @@ async function expectNotInRecovery(
async function expectOnlyRecoveryManagerCanTransferRole(
governor: Signer,
governanceRouter: contracts.TestGovernanceRouter,
governanceRouter: TestGovernanceRouter,
randomSigner: Signer,
recoveryManager: Signer,
) {
@ -140,7 +143,7 @@ async function expectOnlyRecoveryManagerCanTransferRole(
async function expectOnlyRecoveryManagerCanExitRecovery(
governor: Signer,
governanceRouter: contracts.TestGovernanceRouter,
governanceRouter: TestGovernanceRouter,
randomSigner: Signer,
recoveryManager: Signer,
) {
@ -161,7 +164,7 @@ async function expectOnlyRecoveryManagerCanExitRecovery(
async function expectOnlyRecoveryManagerCanInitiateRecovery(
governor: Signer,
governanceRouter: contracts.TestGovernanceRouter,
governanceRouter: TestGovernanceRouter,
randomSigner: Signer,
recoveryManager: Signer,
) {
@ -194,47 +197,42 @@ async function expectOnlyRecoveryManagerCanInitiateRecovery(
const localDomain = 1000;
const remoteDomain = 2000;
const domains = [localDomain, remoteDomain];
/*
* Deploy the full Abacus suite on two chains
*/
describe('RecoveryManager', async () => {
let abacusDeployment: AbacusDeployment;
let governanceDeployment: GovernanceDeployment;
let governor: Signer,
recoveryManager: Signer,
randomSigner: Signer,
governanceRouter: contracts.TestGovernanceRouter,
home: contracts.TestHome,
updaterManager: contracts.UpdaterManager;
let deploys: Deploy[] = [];
governanceRouter: TestGovernanceRouter,
home: TestHome,
updaterManager: UpdaterManager;
before(async () => {
[governor, recoveryManager, randomSigner] = await ethers.getSigners();
const updater = await Updater.fromSigner(randomSigner, localDomain);
deploys.push(
await getTestDeploy(
localDomain,
updater.address,
[],
recoveryManager.address,
),
abacusDeployment = await abacus.deployment.fromDomains(
domains,
randomSigner,
);
deploys.push(
await getTestDeploy(
remoteDomain,
updater.address,
[],
recoveryManager.address,
),
governanceDeployment = await GovernanceDeployment.fromAbacusDeployment(
abacusDeployment,
recoveryManager,
);
for (const domain of domains) {
await abacusDeployment.transferOwnership(
domain,
governanceDeployment.router(domain).address,
);
}
await deployNChains(deploys);
governanceRouter = deploys[0].contracts.governanceRouter
?.proxy! as contracts.TestGovernanceRouter;
home = deploys[0].contracts.home?.proxy! as contracts.TestHome;
updaterManager = deploys[0].contracts.updaterManager!;
governanceRouter = governanceDeployment.router(localDomain);
home = abacusDeployment.home(localDomain);
updaterManager = abacusDeployment.updaterManager(localDomain);
// set governor
await governanceRouter.transferGovernor(localDomain, governor.address);

@ -2,15 +2,11 @@ import { abacus, ethers } from 'hardhat';
import { expect } from 'chai';
import * as utils from './utils';
import { getTestDeploy } from '../testChain';
import { Updater, MessageStatus } from '../../lib/core';
import { Update, Signer, BytesArray } from '../../lib/types';
import { CoreDeploy as Deploy } from '@abacus-network/abacus-deploy/dist/src/core/CoreDeploy';
import { deployTwoChains } from '@abacus-network/abacus-deploy/dist/src/core';
import {
TestRecipient__factory,
TestReplica,
} from '@abacus-network/ts-interface/dist/abacus-core';
import { Updater, MessageStatus } from '../lib/core';
import { Update, Signer, BytesArray } from '../lib/types';
import { TestRecipient__factory, TestReplica } from '../../typechain';
import { AbacusDeployment } from '../lib/AbacusDeployment';
import { GovernanceDeployment } from '../lib/GovernanceDeployment';
const proveAndProcessTestCases = require('../../../../vectors/proveAndProcess.json');
@ -27,37 +23,38 @@ const remoteDomain = domains[1];
* TODO prove and process messages on Replica
*/
describe('SimpleCrossChainMessage', async () => {
// deploys[0] is the local deploy and governor chain
// deploys[1] is the remote deploy
let deploys: Deploy[] = [];
let abacusDeployment: AbacusDeployment;
let governanceDeployment: GovernanceDeployment;
let randomSigner: Signer, updater: Updater, latestUpdate: Update;
before(async () => {
[randomSigner] = await ethers.getSigners();
updater = await Updater.fromSigner(randomSigner, localDomain);
deploys.push(await getTestDeploy(localDomain, updater.address, []));
deploys.push(await getTestDeploy(remoteDomain, updater.address, []));
await deployTwoChains(deploys[0], deploys[1]);
abacusDeployment = await abacus.deployment.fromDomains(
domains,
randomSigner,
);
governanceDeployment = await GovernanceDeployment.fromAbacusDeployment(
abacusDeployment,
randomSigner,
);
});
it('All Homes have correct initial state', async () => {
const nullRoot = '0x' + '00'.repeat(32);
// governorHome has 1 updates
const governorHome = deploys[0].contracts.home?.proxy!;
// governorHome has 0 updates
const governorHome = abacusDeployment.home(localDomain);
let length = await governorHome.queueLength();
expect(length).to.equal(1);
expect(length).to.equal(0);
let [suggestedCommitted, suggestedNew] = await governorHome.suggestUpdate();
expect(suggestedCommitted).to.equal(nullRoot);
expect(suggestedNew).to.not.equal(nullRoot);
expect(suggestedNew).to.equal(nullRoot);
// nonGovernorHome has 2 updates
const nonGovernorHome = deploys[1].contracts.home?.proxy!;
const nonGovernorHome = abacusDeployment.home(remoteDomain);
length = await nonGovernorHome.queueLength();
expect(length).to.equal(2);
@ -72,7 +69,7 @@ describe('SimpleCrossChainMessage', async () => {
utils.formatMessage(message, remoteDomain, randomSigner.address),
);
const update = await utils.dispatchMessagesAndUpdateHome(
deploys[0].contracts.home?.proxy!,
abacusDeployment.home(localDomain),
messages,
updater,
);
@ -83,7 +80,7 @@ describe('SimpleCrossChainMessage', async () => {
it('Destination Replica Accepts the first update', async () => {
await utils.updateReplica(
latestUpdate,
deploys[1].contracts.replicas[localDomain].proxy!,
abacusDeployment.replica(remoteDomain, localDomain),
);
});
@ -92,7 +89,7 @@ describe('SimpleCrossChainMessage', async () => {
utils.formatMessage(message, remoteDomain, randomSigner.address),
);
const update = await utils.dispatchMessagesAndUpdateHome(
deploys[0].contracts.home?.proxy!,
abacusDeployment.home(localDomain),
messages,
updater,
);
@ -102,23 +99,22 @@ describe('SimpleCrossChainMessage', async () => {
it('Destination Replica Accepts the second update', async () => {
await utils.updateReplica(
latestUpdate,
deploys[1].contracts.replicas[localDomain].proxy,
abacusDeployment.replica(remoteDomain, localDomain),
);
});
it('Destination Replica shows latest update as the committed root', async () => {
const replica = deploys[1].contracts.replicas[localDomain].proxy;
const replica = abacusDeployment.replica(remoteDomain, localDomain);
const { newRoot } = latestUpdate;
expect(await replica.committedRoot()).to.equal(newRoot);
});
it('Proves and processes a message on Replica', async () => {
// get governance routers
const governorRouter = deploys[0].contracts.governanceRouter!.proxy;
const nonGovernorRouter = deploys[1].contracts.governanceRouter!.proxy;
const governorRouter = governanceDeployment.router(localDomain);
const nonGovernorRouter = governanceDeployment.router(remoteDomain);
const replica = deploys[1].contracts.replicas[localDomain]
.proxy as TestReplica;
const replica = abacusDeployment.replica(remoteDomain, localDomain);
const testRecipientFactory = new TestRecipient__factory(randomSigner);
const TestRecipient = await testRecipientFactory.deploy();

@ -2,14 +2,14 @@ import { expect } from 'chai';
import { ethers, abacus } from 'hardhat';
import * as types from 'ethers';
import { Updater } from '../../lib/core';
import { Update, CallData, Address } from '../../lib/types';
import { Updater } from '../lib/core';
import { Update, CallData, Address } from '../lib/types';
import {
Replica,
TestReplica,
Home,
TestGovernanceRouter,
} from '@abacus-network/ts-interface/dist/abacus-core';
} from '../../typechain';
type MessageDetails = {
message: string;
@ -175,8 +175,8 @@ export async function formatAbacusMessage(
message,
);
// Set message status to MessageStatus.Pending
await replica.setMessagePending(abacusMessage);
// Set message status to MessageStatus.Proven
await replica.setMessageProven(abacusMessage);
return abacusMessage;
}

@ -1,16 +1,14 @@
import { ethers, abacus } from 'hardhat';
import { expect } from 'chai';
import { getTestDeploy } from './testChain';
import { AbacusState, Updater } from '../lib/core';
import { Signer } from '../lib/types';
import { CoreDeploy as Deploy } from '@abacus-network/abacus-deploy/dist/src/core/CoreDeploy';
import * as deploys from '@abacus-network/abacus-deploy/dist/src/core';
import { AbacusState, Updater } from './lib/core';
import { Signer } from './lib/types';
import {
TestHome,
TestHome__factory,
UpdaterManager__factory,
UpdaterManager,
} from '@abacus-network/ts-interface/dist/abacus-core';
} from '../typechain';
const homeDomainHashTestCases = require('../../../vectors/homeDomainHash.json');
const destinationNonceTestCases = require('../../../vectors/destinationNonce.json');
@ -19,15 +17,14 @@ const localDomain = 1000;
const destDomain = 2000;
const emptyAddress: string = '0x' + '00'.repeat(32);
describe.only('Home', async () => {
let deploy: Deploy,
home: TestHome,
describe('Home', async () => {
let home: TestHome,
signer: Signer,
fakeSigner: Signer,
recipient: Signer,
updater: Updater,
fakeUpdater: Updater,
fakeUpdaterManager: UpdaterManager;
updaterManager: UpdaterManager;
// Helper function that dispatches message and returns intermediate root.
// The message recipient is the same for all messages dispatched.
@ -45,35 +42,26 @@ describe.only('Home', async () => {
before(async () => {
[signer, fakeSigner, recipient] = await ethers.getSigners();
updater = await Updater.fromSigner(signer, localDomain);
deploy = await getTestDeploy(localDomain, updater.address, []);
await deploys.deployUpdaterManager(deploy);
await deploys.deployUpgradeBeaconController(deploy);
fakeUpdater = await Updater.fromSigner(fakeSigner, localDomain);
// deploy fake UpdaterManager
// deploy UpdaterManagers
const updaterManagerFactory = new UpdaterManager__factory(signer);
fakeUpdaterManager = await updaterManagerFactory.deploy(updater.address);
const ret = await fakeUpdaterManager.updater();
expect(ret).to.equal(signer.address);
updaterManager = await updaterManagerFactory.deploy(updater.address);
});
beforeEach(async () => {
// redeploy the home before each test run
await deploys.deployHome(deploy);
home = deploy.contracts.home?.proxy as TestHome;
const homeFactory = new TestHome__factory(signer);
home = await homeFactory.deploy(localDomain);
await home.initialize(updaterManager.address);
// set home on UpdaterManager
await deploy.contracts.updaterManager!.setHome(home.address);
await updaterManager.setHome(home.address);
});
it('Cannot be initialized twice', async () => {
await expect(
home.initialize(fakeUpdaterManager.address),
).to.be.revertedWith('Initializable: contract is already initialized');
await expect(home.initialize(updaterManager.address)).to.be.revertedWith(
'Initializable: contract is already initialized',
);
});
it('Halts on fail', async () => {
@ -94,18 +82,10 @@ describe.only('Home', async () => {
// Compare Rust output in json file to solidity output (json file matches
// hash for local domain of 1000)
for (let testCase of homeDomainHashTestCases) {
let deploy = await getTestDeploy(
testCase.homeDomain,
fakeUpdaterManager.address,
[],
);
await deploys.deployUpdaterManager(deploy);
await deploys.deployUpgradeBeaconController(deploy);
await deploys.deployHome(deploy);
const tempHome = deploy.contracts.home?.proxy! as TestHome;
const homeFactory = new TestHome__factory(signer);
const tempHome = await homeFactory.deploy(testCase.homeDomain);
const { expectedDomainHash } = testCase;
const homeDomainHash = await tempHome.testHomeDomainHash();
const homeDomainHash = await tempHome.homeDomainHash();
expect(homeDomainHash).to.equal(expectedDomainHash);
}
});
@ -139,7 +119,7 @@ describe.only('Home', async () => {
message,
);
const messageHash = abacus.messageHash(abacusMessage);
const leafIndex = await home.nextLeafIndex();
const leafIndex = await home.tree();
const committedRoot = await home.committedRoot();
// Send message with signer address as msg.sender
@ -272,7 +252,7 @@ describe.only('Home', async () => {
it('Correctly calculates destinationAndNonce', async () => {
for (let testCase of destinationNonceTestCases) {
let { destination, nonce, expectedDestinationAndNonce } = testCase;
const solidityDestinationAndNonce = await home.testDestinationAndNonce(
const solidityDestinationAndNonce = await home.destinationAndNonce(
destination,
nonce,
);

@ -0,0 +1,188 @@
import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers';
import { assert } from 'chai';
import * as ethers from 'ethers';
import * as types from './types';
import { Updater } from './core';
import {
TestHome,
TestHome__factory,
UpdaterManager,
UpdaterManager__factory,
UpgradeBeaconController,
UpgradeBeaconController__factory,
XAppConnectionManager,
XAppConnectionManager__factory,
TestReplica,
TestReplica__factory,
} from '../../typechain';
export interface AbacusInstance {
domain: types.Domain;
updater: Updater;
updaterManager: UpdaterManager;
home: TestHome;
connectionManager: XAppConnectionManager;
ubc: UpgradeBeaconController;
replicas: Record<number, TestReplica>;
}
const processGas = 850000;
const reserveGas = 15000;
const optimisticSeconds = 0;
export class AbacusDeployment {
constructor(
public readonly domains: types.Domain[],
public readonly instances: Record<number, AbacusInstance>,
public readonly signer: ethers.Signer,
) {}
static async fromDomains(domains: types.Domain[], signer: ethers.Signer) {
const instances: Record<number, AbacusInstance> = {};
for (const local of domains) {
const instance = await AbacusDeployment.deployInstance(
local,
domains.filter((d) => d !== local),
signer,
);
instances[local] = instance;
}
return new AbacusDeployment(domains, instances, signer);
}
static async deployInstance(
local: types.Domain,
remotes: types.Domain[],
signer: ethers.Signer,
): Promise<AbacusInstance> {
const updaterManagerFactory = new UpdaterManager__factory(signer);
const updaterManager = await updaterManagerFactory.deploy(
await signer.getAddress(),
);
const ubcFactory = new UpgradeBeaconController__factory(signer);
const ubc = await ubcFactory.deploy();
const homeFactory = new TestHome__factory(signer);
const home = await homeFactory.deploy(local);
await home.initialize(updaterManager.address);
await updaterManager.setHome(home.address);
const connectionManagerFactory = new XAppConnectionManager__factory(signer);
const connectionManager = await connectionManagerFactory.deploy();
await connectionManager.setHome(home.address);
const replicaFactory = new TestReplica__factory(signer);
const replicas: Record<number, TestReplica> = {};
const deploys = remotes.map(async (remoteDomain) => {
const replica = await replicaFactory.deploy(
local,
processGas,
reserveGas,
);
await replica.initialize(
remoteDomain,
await signer.getAddress(),
ethers.constants.HashZero,
optimisticSeconds,
);
await connectionManager.ownerEnrollReplica(replica.address, remoteDomain);
replicas[remoteDomain] = replica;
});
await Promise.all(deploys);
return {
domain: local,
updater: await Updater.fromSigner(signer, local),
home,
connectionManager,
updaterManager,
replicas,
ubc,
};
}
async transferOwnership(domain: types.Domain, address: types.Address) {
await this.home(domain).transferOwnership(address);
await this.ubc(domain).transferOwnership(address);
await this.connectionManager(domain).transferOwnership(address);
await this.updaterManager(domain).transferOwnership(address);
for (const remote of this.domains) {
if (remote !== domain) {
await this.replica(domain, remote).transferOwnership(address);
}
}
}
home(domain: types.Domain): TestHome {
return this.instances[domain].home;
}
ubc(domain: types.Domain): UpgradeBeaconController {
return this.instances[domain].ubc;
}
updater(domain: types.Domain): Updater {
return this.instances[domain].updater;
}
replica(local: types.Domain, remote: types.Domain): TestReplica {
return this.instances[local].replicas[remote];
}
connectionManager(domain: types.Domain): XAppConnectionManager {
return this.instances[domain].connectionManager;
}
updaterManager(domain: types.Domain): UpdaterManager {
return this.instances[domain].updaterManager;
}
async processMessages() {
await Promise.all(
this.domains.map((d) => this.processMessagesFromDomain(d)),
);
}
async processMessagesFromDomain(local: types.Domain) {
const home = this.home(local);
const [committedRoot, latestRoot] = await home.suggestUpdate();
// Find the block number of the last update submitted on Home.
const updateFilter = home.filters.Update(null, null, committedRoot);
const updates = await home.queryFilter(updateFilter);
assert(updates.length === 0 || updates.length === 1);
const fromBlock = updates.length === 0 ? 0 : updates[0].blockNumber;
// Update the Home and Replicas to the latest roots.
// This is technically not necessary given that we are not proving against
// a root in the TestReplica.
const updater = this.updater(local);
const { signature } = await updater.signUpdate(committedRoot, latestRoot);
await home.update(committedRoot, latestRoot, signature);
for (const remote of this.domains) {
if (remote !== local) {
const replica = this.replica(remote, local);
await replica.update(committedRoot, latestRoot, signature);
}
}
// Find all messages dispatched on the home since the previous update.
const dispatchFilter = home.filters.Dispatch();
const dispatches = await home.queryFilter(dispatchFilter, fromBlock);
for (const dispatch of dispatches) {
const destination = dispatch.args.destinationAndNonce.shr(32).toNumber();
if (destination !== local) {
const replica = this.replica(destination, local);
await replica.setMessageProven(dispatch.args.message);
await replica.testProcess(dispatch.args.message);
}
}
}
}
export const abacus: any = {
AbacusDeployment,
};

@ -0,0 +1,85 @@
import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers';
import { assert } from 'chai';
import * as ethers from 'ethers';
import { AbacusDeployment } from './AbacusDeployment';
import { toBytes32 } from './utils';
import * as types from './types';
import {
TestGovernanceRouter__factory,
TestGovernanceRouter,
} from '../../typechain';
export interface GovernanceInstance {
domain: types.Domain;
router: TestGovernanceRouter;
}
const recoveryTimelock = 60 * 60 * 24 * 7;
export class GovernanceDeployment {
constructor(
public readonly domains: types.Domain[],
public readonly instances: Record<number, GovernanceInstance>,
) {}
static async fromAbacusDeployment(
abacus: AbacusDeployment,
signer: ethers.Signer,
) {
// Deploy routers.
const instances: Record<number, GovernanceInstance> = {};
for (const domain of abacus.domains) {
const instance = await GovernanceDeployment.deployInstance(
domain,
signer,
abacus.connectionManager(domain).address,
);
instances[domain] = instance;
}
// Make all routers aware of eachother.
for (const local of abacus.domains) {
for (const remote of abacus.domains) {
await instances[local].router.setRouterLocal(
remote,
toBytes32(instances[remote].router.address),
);
}
}
// Set the governor on all routers.
for (let i = 0; i < abacus.domains.length; i++) {
if (i > 0) {
await instances[abacus.domains[i]].router.transferGovernor(
abacus.domains[0],
instances[abacus.domains[0]].router.address,
);
}
}
return new GovernanceDeployment(abacus.domains, instances);
}
static async deployInstance(
domain: types.Domain,
signer: ethers.Signer,
connectionManagerAddress: types.Address,
): Promise<GovernanceInstance> {
const routerFactory = new TestGovernanceRouter__factory(signer);
const router = await routerFactory.deploy(domain, recoveryTimelock);
await router.initialize(
connectionManagerAddress,
await signer.getAddress(),
);
return {
domain,
router,
};
}
router(domain: types.Domain): TestGovernanceRouter {
return this.instances[domain].router;
}
}

@ -1,17 +1,17 @@
import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers';
import { assert } from 'chai';
import * as ethers from 'ethers';
import * as types from './types';
import { getHexStringByteLength } from './utils';
import { AbacusDeployment } from './AbacusDeployment';
export class Updater {
localDomain: types.Domain;
signer: SignerWithAddress;
signer: ethers.Signer;
address: types.Address;
constructor(
signer: SignerWithAddress,
signer: ethers.Signer,
address: types.Address,
localDomain: types.Domain,
disableWarn: boolean,
@ -24,10 +24,7 @@ export class Updater {
this.address = address;
}
static async fromSigner(
signer: SignerWithAddress,
localDomain: types.Domain,
) {
static async fromSigner(signer: ethers.Signer, localDomain: types.Domain) {
return new Updater(signer, await signer.getAddress(), localDomain, true);
}
@ -187,6 +184,7 @@ function formatCalls(callsData: types.CallData[]): string {
}
export const abacus: types.HardhatAbacusHelpers = {
deployment: AbacusDeployment,
formatMessage,
governance: {
formatTransferGovernor,

@ -3,10 +3,7 @@ import { extendEnvironment } from 'hardhat/config';
import { abacus } from './core';
import { bridge } from './bridge';
// HardhatRuntimeEnvironment
extendEnvironment((hre) => {
hre.abacus = abacus;
hre.bridge = bridge;
});

@ -1,11 +1,10 @@
import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers';
import { TokenIdentifier } from '@abacus-network/sdk/dist/abacus';
import { BytesLike, ethers } from 'ethers';
import { BridgeMessageTypes } from './bridge';
/********* HRE *********/
export interface HardhatAbacusHelpers {
deployment: any;
formatMessage: Function;
governance: {
formatTransferGovernor: Function;
@ -19,22 +18,9 @@ export interface HardhatAbacusHelpers {
signedFailureNotification: Function;
}
export interface HardhatBridgeHelpers {
BridgeMessageTypes: typeof BridgeMessageTypes;
typeToByte: Function;
MESSAGE_LEN: MessageLen;
serializeTransferAction: Function;
serializeDetailsAction: Function;
serializeRequestDetailsAction: Function;
serializeAction: Function;
serializeTokenId: Function;
serializeMessage: Function;
}
declare module 'hardhat/types/runtime' {
interface HardhatRuntimeEnvironment {
abacus: HardhatAbacusHelpers;
bridge: HardhatBridgeHelpers;
}
}
@ -101,37 +87,3 @@ export type SignedFailureNotification = {
failureNotification: FailureNotification;
signature: string;
};
/********* TOKEN BRIDGE *********/
export type MessageLen = {
identifier: number;
tokenId: number;
transfer: number;
details: number;
requestDetails: number;
};
export type Action = DetailsAction | TransferAction | RequestDetailsAction;
export type Message = {
tokenId: TokenIdentifier;
action: Action;
};
export type TransferAction = {
type: BridgeMessageTypes.TRANSFER;
recipient: ethers.BytesLike;
amount: number | ethers.BytesLike;
};
export type DetailsAction = {
type: BridgeMessageTypes.DETAILS;
name: string;
symbol: string;
decimals: number;
};
export type RequestDetailsAction = {
type: BridgeMessageTypes.REQUEST_DETAILS;
};

@ -25,3 +25,11 @@ export function getHexStringByteLength(hexStr: string) {
export function toBytes32(address: string): string {
return '0x' + '00'.repeat(12) + address.slice(2);
}
export const stringToBytes32 = (s: string): string => {
const str = Buffer.from(s.slice(0, 32), 'utf-8');
const result = Buffer.alloc(32);
str.copy(result);
return '0x' + result.toString('hex');
};

@ -1,11 +1,8 @@
import { ethers } from 'hardhat';
import { expect } from 'chai';
import { BytesArray } from '../lib/types';
import {
TestMerkle,
TestMerkle__factory,
} from '@abacus-network/ts-interface/dist/abacus-core';
import { BytesArray } from './lib/types';
import { TestMerkle, TestMerkle__factory } from '../typechain';
const merkleTestCases = require('../../../vectors/merkle.json');

@ -1,9 +1,6 @@
import { ethers, abacus } from 'hardhat';
import { expect } from 'chai';
import {
TestMessage,
TestMessage__factory,
} from '@abacus-network/ts-interface/dist/abacus-core';
import { TestMessage, TestMessage__factory } from '../typechain';
const testCases = require('../../../vectors/message.json');

@ -1,9 +1,6 @@
import { ethers } from 'hardhat';
import { expect } from 'chai';
import {
TestQueue,
TestQueue__factory,
} from '@abacus-network/ts-interface/dist/abacus-core';
import { TestQueue, TestQueue__factory } from '../typechain';
// create a proper hex encoded bytes32 filled with number. e.g 0x01010101...
const bytes32 = (num: number) => `0x${Buffer.alloc(32, num).toString('hex')}`;

@ -1,17 +1,20 @@
import { ethers, abacus } from 'hardhat';
import { expect } from 'chai';
import { getTestDeploy } from './testChain';
import { Updater, AbacusState, MessageStatus } from '../lib/core';
import { Signer, BytesArray } from '../lib/types';
import { CoreDeploy as Deploy } from '@abacus-network/abacus-deploy/dist/src/core/CoreDeploy';
import { Updater, AbacusState, MessageStatus } from './lib/core';
import { Signer, BytesArray } from './lib/types';
import {
deployUnenrolledReplica,
deployUpgradeBeaconController,
deployUpdaterManager,
} from '@abacus-network/abacus-deploy/dist/src/core';
import * as contracts from '@abacus-network/ts-interface/dist/abacus-core';
BadRecipient1__factory,
BadRecipient2__factory,
BadRecipient3__factory,
BadRecipient4__factory,
BadRecipient5__factory,
BadRecipient6__factory,
BadRecipientHandle__factory,
TestReplica,
TestReplica__factory,
TestRecipient__factory,
} from '../typechain';
const homeDomainHashTestCases = require('../../../vectors/homeDomainHash.json');
const merkleTestCases = require('../../../vectors/merkle.json');
@ -19,19 +22,21 @@ const proveAndProcessTestCases = require('../../../vectors/proveAndProcess.json'
const localDomain = 2000;
const remoteDomain = 1000;
const processGas = 850000;
const reserveGas = 15000;
const optimisticSeconds = 3;
describe('Replica', async () => {
const badRecipientFactories = [
contracts.BadRecipient1__factory,
contracts.BadRecipient2__factory,
contracts.BadRecipient3__factory,
contracts.BadRecipient4__factory,
contracts.BadRecipient5__factory,
contracts.BadRecipient6__factory,
BadRecipient1__factory,
BadRecipient2__factory,
BadRecipient3__factory,
BadRecipient4__factory,
BadRecipient5__factory,
BadRecipient6__factory,
];
let deploys: Deploy[] = [];
let replica: contracts.TestReplica,
let replica: TestReplica,
signer: Signer,
fakeSigner: Signer,
abacusMessageSender: Signer,
@ -49,34 +54,27 @@ describe('Replica', async () => {
[signer, fakeSigner, abacusMessageSender] = await ethers.getSigners();
updater = await Updater.fromSigner(signer, remoteDomain);
fakeUpdater = await Updater.fromSigner(fakeSigner, remoteDomain);
deploys.push(await getTestDeploy(localDomain, updater.address, []));
deploys.push(await getTestDeploy(remoteDomain, updater.address, []));
});
beforeEach(async () => {
await deployUpdaterManager(deploys[0]);
await deployUpgradeBeaconController(deploys[0]);
await deployUnenrolledReplica(deploys[0], deploys[1]);
replica = deploys[0].contracts.replicas[remoteDomain]
.proxy! as contracts.TestReplica;
const replicaFactory = new TestReplica__factory(signer);
replica = await replicaFactory.deploy(localDomain, processGas, reserveGas);
await replica.initialize(
remoteDomain,
updater.address,
ethers.constants.HashZero,
optimisticSeconds,
);
});
it('Cannot be initialized twice', async () => {
let initData = replica.interface.encodeFunctionData('initialize', [
deploys[0].chain.domain,
deploys[0].updater,
ethers.constants.HashZero,
deploys[0].config.optimisticSeconds,
]);
await expect(
signer.sendTransaction({
to: replica.address,
data: initData,
}),
replica.initialize(
remoteDomain,
updater.address,
ethers.constants.HashZero,
optimisticSeconds,
),
).to.be.revertedWith('Initializable: contract is already initialized');
});
@ -119,21 +117,23 @@ describe('Replica', async () => {
it('Calculated domain hash matches Rust-produced domain hash', async () => {
// Compare Rust output in json file to solidity output (json file matches
// hash for remote domain of 1000)
let testDeploy = await getTestDeploy(0, updater.address, []);
for (let testCase of homeDomainHashTestCases) {
// set domain, updaterManager and upgradeBeaconController
testDeploy.chain.domain = testCase.homeDomain;
testDeploy.contracts.updaterManager = deploys[0].contracts.updaterManager;
testDeploy.contracts.upgradeBeaconController =
deploys[0].contracts.upgradeBeaconController;
// deploy replica
await deployUnenrolledReplica(testDeploy, testDeploy);
const tempReplica = testDeploy.contracts.replicas[testCase.homeDomain]
.proxy! as contracts.TestReplica;
const replicaFactory = new TestReplica__factory(signer);
const tempReplica = await replicaFactory.deploy(
testCase.homeDomain,
processGas,
reserveGas,
);
await tempReplica.initialize(
testCase.homeDomain,
updater.address,
ethers.constants.HashZero,
optimisticSeconds,
);
const { expectedDomainHash } = testCase;
const homeDomainHash = await tempReplica.testHomeDomainHash();
const homeDomainHash = await tempReplica.homeDomainHash();
expect(homeDomainHash).to.equal(expectedDomainHash);
}
});
@ -265,7 +265,7 @@ describe('Replica', async () => {
it('Processes a proved message', async () => {
const sender = abacusMessageSender;
const testRecipientFactory = new contracts.TestRecipient__factory(signer);
const testRecipientFactory = new TestRecipient__factory(signer);
const testRecipient = await testRecipientFactory.deploy();
const nonce = 0;
@ -279,7 +279,7 @@ describe('Replica', async () => {
);
// Set message status to MessageStatus.Pending
await replica.setMessagePending(abacusMessage);
await replica.setMessageProven(abacusMessage);
// Ensure proper static call return value
const success = await replica.callStatic.process(abacusMessage);
@ -327,7 +327,7 @@ describe('Replica', async () => {
);
// Set message status to MessageStatus.Pending
await replica.setMessagePending(abacusMessage);
await replica.setMessageProven(abacusMessage);
await replica.process(abacusMessage);
});
}
@ -366,7 +366,7 @@ describe('Replica', async () => {
);
// Set message status to MessageStatus.Pending
await replica.setMessagePending(abacusMessage);
await replica.setMessageProven(abacusMessage);
await expect(replica.process(abacusMessage)).to.not.be.reverted;
});
@ -385,7 +385,7 @@ describe('Replica', async () => {
);
// Set message status to MessageStatus.Pending
await replica.setMessagePending(abacusMessage);
await replica.setMessageProven(abacusMessage);
// Required gas is >= 510,000 (we provide 500,000)
await expect(
@ -396,7 +396,7 @@ describe('Replica', async () => {
it('Returns false when processing message for bad handler function', async () => {
const sender = abacusMessageSender;
const [recipient] = await ethers.getSigners();
const factory = new contracts.BadRecipientHandle__factory(recipient);
const factory = new BadRecipientHandle__factory(recipient);
const testRecipient = await factory.deploy();
const nonce = 0;
@ -410,7 +410,7 @@ describe('Replica', async () => {
);
// Set message status to MessageStatus.Pending
await replica.setMessagePending(abacusMessage);
await replica.setMessageProven(abacusMessage);
// Ensure bad handler function causes process to return false
let success = await replica.callStatic.process(abacusMessage);
@ -419,7 +419,7 @@ describe('Replica', async () => {
it('Proves and processes a message', async () => {
const sender = abacusMessageSender;
const testRecipientFactory = new contracts.TestRecipient__factory(signer);
const testRecipientFactory = new TestRecipient__factory(signer);
const testRecipient = await testRecipientFactory.deploy();
const nonce = 0;

@ -1,32 +1,28 @@
import { ethers } from 'hardhat';
import { getTestDeploy } from './testChain';
import { UpgradeTestHelpers, MysteryMathUpgrade } from './utils';
import { Signer } from '../lib/types';
import * as contracts from '@abacus-network/ts-interface/dist/abacus-core';
import { Signer } from './lib/types';
import {
UpgradeBeaconController__factory,
UpgradeBeaconController,
MysteryMathV2__factory,
} from '../typechain';
describe('Upgrade', async () => {
const utils = new UpgradeTestHelpers();
let signer: Signer,
mysteryMath: MysteryMathUpgrade,
upgradeBeaconController: contracts.UpgradeBeaconController;
ubc: UpgradeBeaconController;
before(async () => {
// set signer
[signer] = await ethers.getSigners();
// set up fresh test deploy
const deploy = await getTestDeploy(1000, ethers.constants.AddressZero, []);
const ubcFactory = new UpgradeBeaconController__factory(signer);
ubc = await ubcFactory.deploy();
// deploy upgrade setup for mysteryMath contract
mysteryMath = await utils.deployMysteryMathUpgradeSetup(
deploy,
signer,
true,
);
// set upgradeBeaconController
upgradeBeaconController = deploy.contracts.upgradeBeaconController!;
mysteryMath = await utils.deployMysteryMathUpgradeSetup(signer, ubc);
});
it('Pre-Upgrade returns values from MysteryMathV1', async () => {
@ -35,14 +31,11 @@ describe('Upgrade', async () => {
it('Upgrades without problem', async () => {
// Deploy Implementation 2
const factory = new contracts.MysteryMathV2__factory(signer);
const factory = new MysteryMathV2__factory(signer);
const implementation = await factory.deploy();
// Upgrade to implementation 2
await upgradeBeaconController.upgrade(
mysteryMath.beacon.address,
implementation.address,
);
await ubc.upgrade(mysteryMath.beacon.address, implementation.address);
});
it('Post-Upgrade returns values from MysteryMathV2', async () => {

@ -1,13 +1,16 @@
import { expect } from 'chai';
import ethers from 'ethers';
import { Signer } from '../lib/types';
import { CoreDeploy as Deploy } from '@abacus-network/abacus-deploy/dist/src/core/CoreDeploy';
import { Signer } from './lib/types';
import {
deployUpdaterManager,
deployUpgradeBeaconController,
} from '@abacus-network/abacus-deploy/dist/src/core';
import * as contracts from '@abacus-network/ts-interface/dist/abacus-core';
MysteryMathV1,
MysteryMathV2,
MysteryMathV1__factory,
UpgradeBeaconController,
UpgradeBeacon,
UpgradeBeacon__factory,
UpgradeBeaconProxy__factory,
} from '../typechain';
export const increaseTimestampBy = async (
provider: ethers.providers.JsonRpcProvider,
@ -18,9 +21,9 @@ export const increaseTimestampBy = async (
};
export type MysteryMathUpgrade = {
proxy: contracts.MysteryMathV1 | contracts.MysteryMathV2;
beacon: contracts.UpgradeBeacon;
implementation: contracts.MysteryMathV1 | contracts.MysteryMathV2;
proxy: MysteryMathV1 | MysteryMathV2;
beacon: UpgradeBeacon;
implementation: MysteryMathV1 | MysteryMathV2;
};
export class UpgradeTestHelpers {
@ -29,39 +32,23 @@ export class UpgradeTestHelpers {
stateVar: number = 17;
async deployMysteryMathUpgradeSetup(
deploy: Deploy,
signer: Signer,
isNewDeploy?: boolean,
ubc: UpgradeBeaconController,
): Promise<MysteryMathUpgrade> {
// deploy implementation
const mysteryMathFactory = new contracts.MysteryMathV1__factory(signer);
const mysteryMathFactory = new MysteryMathV1__factory(signer);
const mysteryMathImplementation = await mysteryMathFactory.deploy();
if (isNewDeploy) {
// deploy UpdaterManager
await deployUpdaterManager(deploy);
// deploy and set UpgradeBeaconController
await deployUpgradeBeaconController(deploy);
}
// deploy and set upgrade beacon
const beaconFactory = new contracts.UpgradeBeacon__factory(
deploy.chain.signer,
);
const beaconFactory = new UpgradeBeacon__factory(signer);
const beacon = await beaconFactory.deploy(
mysteryMathImplementation.address,
deploy.contracts.upgradeBeaconController!.address,
{ gasPrice: deploy.chain.gasPrice, gasLimit: 2_000_000 },
ubc.address,
);
// deploy proxy
let factory = new contracts.UpgradeBeaconProxy__factory(
deploy.chain.signer,
);
const upgradeBeaconProxy = await factory.deploy(beacon.address, [], {
gasPrice: deploy.chain.gasPrice,
gasLimit: 1_000_000,
});
const proxyFactory = new UpgradeBeaconProxy__factory(signer);
const upgradeBeaconProxy = await proxyFactory.deploy(beacon.address, []);
// set proxy
const proxy = mysteryMathFactory.attach(upgradeBeaconProxy.address);
@ -72,7 +59,7 @@ export class UpgradeTestHelpers {
return { proxy, beacon, implementation: mysteryMathImplementation };
}
async expectMysteryMathV1(mysteryMathProxy: contracts.MysteryMathV1) {
async expectMysteryMathV1(mysteryMathProxy: MysteryMathV1) {
const versionResult = await mysteryMathProxy.version();
expect(versionResult).to.equal(1);
@ -83,7 +70,7 @@ export class UpgradeTestHelpers {
expect(stateResult).to.equal(this.stateVar);
}
async expectMysteryMathV2(mysteryMathProxy: contracts.MysteryMathV2) {
async expectMysteryMathV2(mysteryMathProxy: MysteryMathV2) {
const versionResult = await mysteryMathProxy.version();
expect(versionResult).to.equal(2);
@ -94,11 +81,3 @@ export class UpgradeTestHelpers {
expect(stateResult).to.equal(this.stateVar);
}
}
export const stringToBytes32 = (s: string): string => {
const str = Buffer.from(s.slice(0, 32), 'utf-8');
const result = Buffer.alloc(32);
str.copy(result);
return '0x' + result.toString('hex');
};

@ -1,52 +1,62 @@
import { ethers, abacus } from 'hardhat';
import { expect } from 'chai';
import { getTestDeploy } from './testChain';
import { Updater } from '../lib/core';
import { Signer } from '../lib/types';
import { CoreDeploy as Deploy } from '@abacus-network/abacus-deploy/dist/src/core/CoreDeploy';
import * as deploys from '@abacus-network/abacus-deploy/dist/src/core';
import * as contracts from '@abacus-network/ts-interface/dist/abacus-core';
import {
TestHome__factory,
TestReplica__factory,
TestXAppConnectionManager,
TestXAppConnectionManager__factory,
TestReplica,
} from '../typechain';
import { Updater } from './lib/core';
import { Signer } from './lib/types';
const signedFailureTestCases = require('../../../vectors/signedFailure.json');
const ONLY_OWNER_REVERT_MSG = 'Ownable: caller is not the owner';
const localDomain = 1000;
const remoteDomain = 2000;
const processGas = 850000;
const reserveGas = 15000;
const optimisticSeconds = 3;
describe('XAppConnectionManager', async () => {
let localDeploy: Deploy,
remoteDeploy: Deploy,
connectionManager: contracts.TestXAppConnectionManager,
enrolledReplica: contracts.TestReplica,
let connectionManager: TestXAppConnectionManager,
enrolledReplica: TestReplica,
signer: Signer,
updater: Updater;
before(async () => {
[signer] = await ethers.getSigners();
updater = await Updater.fromSigner(signer, localDomain);
// get fresh test deploys
localDeploy = await getTestDeploy(localDomain, updater.address, []);
remoteDeploy = await getTestDeploy(remoteDomain, updater.address, []);
// deploy abacus on remote domain
// NB: as tests stand currently, this only needs to be done once
await deploys.deployAbacus(remoteDeploy);
});
beforeEach(async () => {
// deploy abacus on local domain
await deploys.deployAbacus(localDeploy);
// deploy replica and enroll on local deploy
await deploys.enrollRemote(localDeploy, remoteDeploy);
const homeFactory = new TestHome__factory(signer);
const home = await homeFactory.deploy(localDomain);
const replicaFactory = new TestReplica__factory(signer);
enrolledReplica = await replicaFactory.deploy(
localDomain,
processGas,
reserveGas,
);
await enrolledReplica.initialize(
remoteDomain,
updater.address,
ethers.constants.HashZero,
optimisticSeconds,
);
// set respective variables
connectionManager = localDeploy.contracts
.xAppConnectionManager! as contracts.TestXAppConnectionManager;
enrolledReplica = localDeploy.contracts.replicas[remoteDomain]
.proxy as contracts.TestReplica;
const connectionManagerFactory = new TestXAppConnectionManager__factory(
signer,
);
connectionManager = await connectionManagerFactory.deploy();
await connectionManager.setHome(home.address);
await connectionManager.ownerEnrollReplica(
enrolledReplica.address,
remoteDomain,
);
});
it('Returns the local domain', async () => {
@ -54,7 +64,7 @@ describe('XAppConnectionManager', async () => {
});
it('onlyOwner function rejects call from non-owner', async () => {
const [nonOwner, nonHome] = await ethers.getSigners();
const [nonHome, nonOwner] = await ethers.getSigners();
await expect(
connectionManager.connect(nonOwner).setHome(nonHome.address),
).to.be.revertedWith(ONLY_OWNER_REVERT_MSG);
@ -69,8 +79,8 @@ describe('XAppConnectionManager', async () => {
});
it('Allows owner to set the home', async () => {
await deploys.deployHome(localDeploy);
const newHome = localDeploy.contracts.home?.proxy as contracts.TestHome;
const homeFactory = new TestHome__factory(signer);
const newHome = await homeFactory.deploy(localDomain);
await connectionManager.setHome(newHome.address);
expect(await connectionManager.home()).to.equal(newHome.address);
@ -78,34 +88,27 @@ describe('XAppConnectionManager', async () => {
it('Owner can enroll a new replica', async () => {
const newRemoteDomain = 3000;
const newRemoteDeploy = await getTestDeploy(
newRemoteDomain,
updater.address,
[],
const replicaFactory = new TestReplica__factory(signer);
const newReplica = await replicaFactory.deploy(
localDomain,
processGas,
reserveGas,
);
await deploys.deployUnenrolledReplica(localDeploy, newRemoteDeploy);
const newReplicaProxy =
localDeploy.contracts.replicas[newRemoteDomain].proxy;
// Assert new replica not considered replica before enrolled
expect(await connectionManager.isReplica(newReplicaProxy.address)).to.be
.false;
expect(await connectionManager.isReplica(newReplica.address)).to.be.false;
await expect(
connectionManager.ownerEnrollReplica(
newReplicaProxy.address,
newRemoteDomain,
),
connectionManager.ownerEnrollReplica(newReplica.address, newRemoteDomain),
).to.emit(connectionManager, 'ReplicaEnrolled');
expect(await connectionManager.domainToReplica(newRemoteDomain)).to.equal(
newReplicaProxy.address,
newReplica.address,
);
expect(
await connectionManager.replicaToDomain(newReplicaProxy.address),
await connectionManager.replicaToDomain(newReplica.address),
).to.equal(newRemoteDomain);
expect(await connectionManager.isReplica(newReplicaProxy.address)).to.be
.true;
expect(await connectionManager.isReplica(newReplica.address)).to.be.true;
});
it('Owner can unenroll a replica', async () => {
@ -156,7 +159,7 @@ describe('XAppConnectionManager', async () => {
await abacus.signedFailureNotification(
watcher,
remoteDomain,
updater.signer.address,
await updater.signer.getAddress(),
);
// Assert new replica considered replica before unenrolled
@ -198,7 +201,7 @@ describe('XAppConnectionManager', async () => {
await abacus.signedFailureNotification(
watcher,
noReplicaDomain,
updater.signer.address,
await updater.signer.getAddress(),
);
// Expect unenrollReplica call to revert
@ -254,7 +257,7 @@ describe('XAppConnectionManager', async () => {
await abacus.signedFailureNotification(
nonWatcher,
remoteDomain,
updater.signer.address,
await updater.signer.getAddress(),
);
// Expect unenrollReplica call to revert

@ -0,0 +1,123 @@
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import {
ethers,
EventFilter,
Signer,
BigNumber,
BigNumberish,
PopulatedTransaction,
BaseContract,
ContractTransaction,
CallOverrides,
} from "ethers";
import { BytesLike } from "@ethersproject/bytes";
import { Listener, Provider } from "@ethersproject/providers";
import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi";
import { TypedEventFilter, TypedEvent, TypedListener } from "./commons";
interface BadRecipient1Interface extends ethers.utils.Interface {
functions: {
"handle(uint32,bytes32,bytes)": FunctionFragment;
};
encodeFunctionData(
functionFragment: "handle",
values: [BigNumberish, BytesLike, BytesLike]
): string;
decodeFunctionResult(functionFragment: "handle", data: BytesLike): Result;
events: {};
}
export class BadRecipient1 extends BaseContract {
connect(signerOrProvider: Signer | Provider | string): this;
attach(addressOrName: string): this;
deployed(): Promise<this>;
listeners<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter?: TypedEventFilter<EventArgsArray, EventArgsObject>
): Array<TypedListener<EventArgsArray, EventArgsObject>>;
off<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
on<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
once<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
removeListener<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
removeAllListeners<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>
): this;
listeners(eventName?: string): Array<Listener>;
off(eventName: string, listener: Listener): this;
on(eventName: string, listener: Listener): this;
once(eventName: string, listener: Listener): this;
removeListener(eventName: string, listener: Listener): this;
removeAllListeners(eventName?: string): this;
queryFilter<EventArgsArray extends Array<any>, EventArgsObject>(
event: TypedEventFilter<EventArgsArray, EventArgsObject>,
fromBlockOrBlockhash?: string | number | undefined,
toBlock?: string | number | undefined
): Promise<Array<TypedEvent<EventArgsArray & EventArgsObject>>>;
interface: BadRecipient1Interface;
functions: {
handle(
arg0: BigNumberish,
arg1: BytesLike,
arg2: BytesLike,
overrides?: CallOverrides
): Promise<[void]>;
};
handle(
arg0: BigNumberish,
arg1: BytesLike,
arg2: BytesLike,
overrides?: CallOverrides
): Promise<void>;
callStatic: {
handle(
arg0: BigNumberish,
arg1: BytesLike,
arg2: BytesLike,
overrides?: CallOverrides
): Promise<void>;
};
filters: {};
estimateGas: {
handle(
arg0: BigNumberish,
arg1: BytesLike,
arg2: BytesLike,
overrides?: CallOverrides
): Promise<BigNumber>;
};
populateTransaction: {
handle(
arg0: BigNumberish,
arg1: BytesLike,
arg2: BytesLike,
overrides?: CallOverrides
): Promise<PopulatedTransaction>;
};
}

@ -0,0 +1,123 @@
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import {
ethers,
EventFilter,
Signer,
BigNumber,
BigNumberish,
PopulatedTransaction,
BaseContract,
ContractTransaction,
CallOverrides,
} from "ethers";
import { BytesLike } from "@ethersproject/bytes";
import { Listener, Provider } from "@ethersproject/providers";
import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi";
import { TypedEventFilter, TypedEvent, TypedListener } from "./commons";
interface BadRecipient2Interface extends ethers.utils.Interface {
functions: {
"handle(uint32,bytes32,bytes)": FunctionFragment;
};
encodeFunctionData(
functionFragment: "handle",
values: [BigNumberish, BytesLike, BytesLike]
): string;
decodeFunctionResult(functionFragment: "handle", data: BytesLike): Result;
events: {};
}
export class BadRecipient2 extends BaseContract {
connect(signerOrProvider: Signer | Provider | string): this;
attach(addressOrName: string): this;
deployed(): Promise<this>;
listeners<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter?: TypedEventFilter<EventArgsArray, EventArgsObject>
): Array<TypedListener<EventArgsArray, EventArgsObject>>;
off<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
on<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
once<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
removeListener<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
removeAllListeners<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>
): this;
listeners(eventName?: string): Array<Listener>;
off(eventName: string, listener: Listener): this;
on(eventName: string, listener: Listener): this;
once(eventName: string, listener: Listener): this;
removeListener(eventName: string, listener: Listener): this;
removeAllListeners(eventName?: string): this;
queryFilter<EventArgsArray extends Array<any>, EventArgsObject>(
event: TypedEventFilter<EventArgsArray, EventArgsObject>,
fromBlockOrBlockhash?: string | number | undefined,
toBlock?: string | number | undefined
): Promise<Array<TypedEvent<EventArgsArray & EventArgsObject>>>;
interface: BadRecipient2Interface;
functions: {
handle(
arg0: BigNumberish,
arg1: BytesLike,
arg2: BytesLike,
overrides?: CallOverrides
): Promise<[void]>;
};
handle(
arg0: BigNumberish,
arg1: BytesLike,
arg2: BytesLike,
overrides?: CallOverrides
): Promise<void>;
callStatic: {
handle(
arg0: BigNumberish,
arg1: BytesLike,
arg2: BytesLike,
overrides?: CallOverrides
): Promise<void>;
};
filters: {};
estimateGas: {
handle(
arg0: BigNumberish,
arg1: BytesLike,
arg2: BytesLike,
overrides?: CallOverrides
): Promise<BigNumber>;
};
populateTransaction: {
handle(
arg0: BigNumberish,
arg1: BytesLike,
arg2: BytesLike,
overrides?: CallOverrides
): Promise<PopulatedTransaction>;
};
}

@ -0,0 +1,123 @@
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import {
ethers,
EventFilter,
Signer,
BigNumber,
BigNumberish,
PopulatedTransaction,
BaseContract,
ContractTransaction,
CallOverrides,
} from "ethers";
import { BytesLike } from "@ethersproject/bytes";
import { Listener, Provider } from "@ethersproject/providers";
import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi";
import { TypedEventFilter, TypedEvent, TypedListener } from "./commons";
interface BadRecipient3Interface extends ethers.utils.Interface {
functions: {
"handle(uint32,bytes32,bytes)": FunctionFragment;
};
encodeFunctionData(
functionFragment: "handle",
values: [BigNumberish, BytesLike, BytesLike]
): string;
decodeFunctionResult(functionFragment: "handle", data: BytesLike): Result;
events: {};
}
export class BadRecipient3 extends BaseContract {
connect(signerOrProvider: Signer | Provider | string): this;
attach(addressOrName: string): this;
deployed(): Promise<this>;
listeners<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter?: TypedEventFilter<EventArgsArray, EventArgsObject>
): Array<TypedListener<EventArgsArray, EventArgsObject>>;
off<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
on<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
once<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
removeListener<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
removeAllListeners<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>
): this;
listeners(eventName?: string): Array<Listener>;
off(eventName: string, listener: Listener): this;
on(eventName: string, listener: Listener): this;
once(eventName: string, listener: Listener): this;
removeListener(eventName: string, listener: Listener): this;
removeAllListeners(eventName?: string): this;
queryFilter<EventArgsArray extends Array<any>, EventArgsObject>(
event: TypedEventFilter<EventArgsArray, EventArgsObject>,
fromBlockOrBlockhash?: string | number | undefined,
toBlock?: string | number | undefined
): Promise<Array<TypedEvent<EventArgsArray & EventArgsObject>>>;
interface: BadRecipient3Interface;
functions: {
handle(
arg0: BigNumberish,
arg1: BytesLike,
arg2: BytesLike,
overrides?: CallOverrides
): Promise<[void]>;
};
handle(
arg0: BigNumberish,
arg1: BytesLike,
arg2: BytesLike,
overrides?: CallOverrides
): Promise<void>;
callStatic: {
handle(
arg0: BigNumberish,
arg1: BytesLike,
arg2: BytesLike,
overrides?: CallOverrides
): Promise<void>;
};
filters: {};
estimateGas: {
handle(
arg0: BigNumberish,
arg1: BytesLike,
arg2: BytesLike,
overrides?: CallOverrides
): Promise<BigNumber>;
};
populateTransaction: {
handle(
arg0: BigNumberish,
arg1: BytesLike,
arg2: BytesLike,
overrides?: CallOverrides
): Promise<PopulatedTransaction>;
};
}

@ -0,0 +1,123 @@
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import {
ethers,
EventFilter,
Signer,
BigNumber,
BigNumberish,
PopulatedTransaction,
BaseContract,
ContractTransaction,
CallOverrides,
} from "ethers";
import { BytesLike } from "@ethersproject/bytes";
import { Listener, Provider } from "@ethersproject/providers";
import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi";
import { TypedEventFilter, TypedEvent, TypedListener } from "./commons";
interface BadRecipient4Interface extends ethers.utils.Interface {
functions: {
"handle(uint32,bytes32,bytes)": FunctionFragment;
};
encodeFunctionData(
functionFragment: "handle",
values: [BigNumberish, BytesLike, BytesLike]
): string;
decodeFunctionResult(functionFragment: "handle", data: BytesLike): Result;
events: {};
}
export class BadRecipient4 extends BaseContract {
connect(signerOrProvider: Signer | Provider | string): this;
attach(addressOrName: string): this;
deployed(): Promise<this>;
listeners<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter?: TypedEventFilter<EventArgsArray, EventArgsObject>
): Array<TypedListener<EventArgsArray, EventArgsObject>>;
off<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
on<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
once<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
removeListener<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
removeAllListeners<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>
): this;
listeners(eventName?: string): Array<Listener>;
off(eventName: string, listener: Listener): this;
on(eventName: string, listener: Listener): this;
once(eventName: string, listener: Listener): this;
removeListener(eventName: string, listener: Listener): this;
removeAllListeners(eventName?: string): this;
queryFilter<EventArgsArray extends Array<any>, EventArgsObject>(
event: TypedEventFilter<EventArgsArray, EventArgsObject>,
fromBlockOrBlockhash?: string | number | undefined,
toBlock?: string | number | undefined
): Promise<Array<TypedEvent<EventArgsArray & EventArgsObject>>>;
interface: BadRecipient4Interface;
functions: {
handle(
arg0: BigNumberish,
arg1: BytesLike,
arg2: BytesLike,
overrides?: CallOverrides
): Promise<[void]>;
};
handle(
arg0: BigNumberish,
arg1: BytesLike,
arg2: BytesLike,
overrides?: CallOverrides
): Promise<void>;
callStatic: {
handle(
arg0: BigNumberish,
arg1: BytesLike,
arg2: BytesLike,
overrides?: CallOverrides
): Promise<void>;
};
filters: {};
estimateGas: {
handle(
arg0: BigNumberish,
arg1: BytesLike,
arg2: BytesLike,
overrides?: CallOverrides
): Promise<BigNumber>;
};
populateTransaction: {
handle(
arg0: BigNumberish,
arg1: BytesLike,
arg2: BytesLike,
overrides?: CallOverrides
): Promise<PopulatedTransaction>;
};
}

@ -0,0 +1,123 @@
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import {
ethers,
EventFilter,
Signer,
BigNumber,
BigNumberish,
PopulatedTransaction,
BaseContract,
ContractTransaction,
CallOverrides,
} from "ethers";
import { BytesLike } from "@ethersproject/bytes";
import { Listener, Provider } from "@ethersproject/providers";
import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi";
import { TypedEventFilter, TypedEvent, TypedListener } from "./commons";
interface BadRecipient5Interface extends ethers.utils.Interface {
functions: {
"handle(uint32,bytes32,bytes)": FunctionFragment;
};
encodeFunctionData(
functionFragment: "handle",
values: [BigNumberish, BytesLike, BytesLike]
): string;
decodeFunctionResult(functionFragment: "handle", data: BytesLike): Result;
events: {};
}
export class BadRecipient5 extends BaseContract {
connect(signerOrProvider: Signer | Provider | string): this;
attach(addressOrName: string): this;
deployed(): Promise<this>;
listeners<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter?: TypedEventFilter<EventArgsArray, EventArgsObject>
): Array<TypedListener<EventArgsArray, EventArgsObject>>;
off<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
on<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
once<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
removeListener<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
removeAllListeners<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>
): this;
listeners(eventName?: string): Array<Listener>;
off(eventName: string, listener: Listener): this;
on(eventName: string, listener: Listener): this;
once(eventName: string, listener: Listener): this;
removeListener(eventName: string, listener: Listener): this;
removeAllListeners(eventName?: string): this;
queryFilter<EventArgsArray extends Array<any>, EventArgsObject>(
event: TypedEventFilter<EventArgsArray, EventArgsObject>,
fromBlockOrBlockhash?: string | number | undefined,
toBlock?: string | number | undefined
): Promise<Array<TypedEvent<EventArgsArray & EventArgsObject>>>;
interface: BadRecipient5Interface;
functions: {
handle(
arg0: BigNumberish,
arg1: BytesLike,
arg2: BytesLike,
overrides?: CallOverrides
): Promise<[void]>;
};
handle(
arg0: BigNumberish,
arg1: BytesLike,
arg2: BytesLike,
overrides?: CallOverrides
): Promise<void>;
callStatic: {
handle(
arg0: BigNumberish,
arg1: BytesLike,
arg2: BytesLike,
overrides?: CallOverrides
): Promise<void>;
};
filters: {};
estimateGas: {
handle(
arg0: BigNumberish,
arg1: BytesLike,
arg2: BytesLike,
overrides?: CallOverrides
): Promise<BigNumber>;
};
populateTransaction: {
handle(
arg0: BigNumberish,
arg1: BytesLike,
arg2: BytesLike,
overrides?: CallOverrides
): Promise<PopulatedTransaction>;
};
}

@ -0,0 +1,123 @@
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import {
ethers,
EventFilter,
Signer,
BigNumber,
BigNumberish,
PopulatedTransaction,
BaseContract,
ContractTransaction,
CallOverrides,
} from "ethers";
import { BytesLike } from "@ethersproject/bytes";
import { Listener, Provider } from "@ethersproject/providers";
import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi";
import { TypedEventFilter, TypedEvent, TypedListener } from "./commons";
interface BadRecipient6Interface extends ethers.utils.Interface {
functions: {
"handle(uint32,bytes32,bytes)": FunctionFragment;
};
encodeFunctionData(
functionFragment: "handle",
values: [BigNumberish, BytesLike, BytesLike]
): string;
decodeFunctionResult(functionFragment: "handle", data: BytesLike): Result;
events: {};
}
export class BadRecipient6 extends BaseContract {
connect(signerOrProvider: Signer | Provider | string): this;
attach(addressOrName: string): this;
deployed(): Promise<this>;
listeners<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter?: TypedEventFilter<EventArgsArray, EventArgsObject>
): Array<TypedListener<EventArgsArray, EventArgsObject>>;
off<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
on<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
once<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
removeListener<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
removeAllListeners<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>
): this;
listeners(eventName?: string): Array<Listener>;
off(eventName: string, listener: Listener): this;
on(eventName: string, listener: Listener): this;
once(eventName: string, listener: Listener): this;
removeListener(eventName: string, listener: Listener): this;
removeAllListeners(eventName?: string): this;
queryFilter<EventArgsArray extends Array<any>, EventArgsObject>(
event: TypedEventFilter<EventArgsArray, EventArgsObject>,
fromBlockOrBlockhash?: string | number | undefined,
toBlock?: string | number | undefined
): Promise<Array<TypedEvent<EventArgsArray & EventArgsObject>>>;
interface: BadRecipient6Interface;
functions: {
handle(
arg0: BigNumberish,
arg1: BytesLike,
arg2: BytesLike,
overrides?: CallOverrides
): Promise<[void]>;
};
handle(
arg0: BigNumberish,
arg1: BytesLike,
arg2: BytesLike,
overrides?: CallOverrides
): Promise<void>;
callStatic: {
handle(
arg0: BigNumberish,
arg1: BytesLike,
arg2: BytesLike,
overrides?: CallOverrides
): Promise<void>;
};
filters: {};
estimateGas: {
handle(
arg0: BigNumberish,
arg1: BytesLike,
arg2: BytesLike,
overrides?: CallOverrides
): Promise<BigNumber>;
};
populateTransaction: {
handle(
arg0: BigNumberish,
arg1: BytesLike,
arg2: BytesLike,
overrides?: CallOverrides
): Promise<PopulatedTransaction>;
};
}

@ -0,0 +1,118 @@
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import {
ethers,
EventFilter,
Signer,
BigNumber,
BigNumberish,
PopulatedTransaction,
BaseContract,
ContractTransaction,
CallOverrides,
} from "ethers";
import { BytesLike } from "@ethersproject/bytes";
import { Listener, Provider } from "@ethersproject/providers";
import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi";
import { TypedEventFilter, TypedEvent, TypedListener } from "./commons";
interface BadRecipientHandleInterface extends ethers.utils.Interface {
functions: {
"handle(uint32,bytes32)": FunctionFragment;
};
encodeFunctionData(
functionFragment: "handle",
values: [BigNumberish, BytesLike]
): string;
decodeFunctionResult(functionFragment: "handle", data: BytesLike): Result;
events: {};
}
export class BadRecipientHandle extends BaseContract {
connect(signerOrProvider: Signer | Provider | string): this;
attach(addressOrName: string): this;
deployed(): Promise<this>;
listeners<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter?: TypedEventFilter<EventArgsArray, EventArgsObject>
): Array<TypedListener<EventArgsArray, EventArgsObject>>;
off<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
on<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
once<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
removeListener<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
removeAllListeners<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>
): this;
listeners(eventName?: string): Array<Listener>;
off(eventName: string, listener: Listener): this;
on(eventName: string, listener: Listener): this;
once(eventName: string, listener: Listener): this;
removeListener(eventName: string, listener: Listener): this;
removeAllListeners(eventName?: string): this;
queryFilter<EventArgsArray extends Array<any>, EventArgsObject>(
event: TypedEventFilter<EventArgsArray, EventArgsObject>,
fromBlockOrBlockhash?: string | number | undefined,
toBlock?: string | number | undefined
): Promise<Array<TypedEvent<EventArgsArray & EventArgsObject>>>;
interface: BadRecipientHandleInterface;
functions: {
handle(
arg0: BigNumberish,
arg1: BytesLike,
overrides?: CallOverrides
): Promise<[void]>;
};
handle(
arg0: BigNumberish,
arg1: BytesLike,
overrides?: CallOverrides
): Promise<void>;
callStatic: {
handle(
arg0: BigNumberish,
arg1: BytesLike,
overrides?: CallOverrides
): Promise<void>;
};
filters: {};
estimateGas: {
handle(
arg0: BigNumberish,
arg1: BytesLike,
overrides?: CallOverrides
): Promise<BigNumber>;
};
populateTransaction: {
handle(
arg0: BigNumberish,
arg1: BytesLike,
overrides?: CallOverrides
): Promise<PopulatedTransaction>;
};
}

@ -0,0 +1,255 @@
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import {
ethers,
EventFilter,
Signer,
BigNumber,
BigNumberish,
PopulatedTransaction,
BaseContract,
ContractTransaction,
Overrides,
CallOverrides,
} from "ethers";
import { BytesLike } from "@ethersproject/bytes";
import { Listener, Provider } from "@ethersproject/providers";
import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi";
import { TypedEventFilter, TypedEvent, TypedListener } from "./commons";
interface CommonInterface extends ethers.utils.Interface {
functions: {
"committedRoot()": FunctionFragment;
"doubleUpdate(bytes32,bytes32[2],bytes,bytes)": FunctionFragment;
"homeDomainHash()": FunctionFragment;
"localDomain()": FunctionFragment;
"state()": FunctionFragment;
"updater()": FunctionFragment;
};
encodeFunctionData(
functionFragment: "committedRoot",
values?: undefined
): string;
encodeFunctionData(
functionFragment: "doubleUpdate",
values: [BytesLike, [BytesLike, BytesLike], BytesLike, BytesLike]
): string;
encodeFunctionData(
functionFragment: "homeDomainHash",
values?: undefined
): string;
encodeFunctionData(
functionFragment: "localDomain",
values?: undefined
): string;
encodeFunctionData(functionFragment: "state", values?: undefined): string;
encodeFunctionData(functionFragment: "updater", values?: undefined): string;
decodeFunctionResult(
functionFragment: "committedRoot",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "doubleUpdate",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "homeDomainHash",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "localDomain",
data: BytesLike
): Result;
decodeFunctionResult(functionFragment: "state", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "updater", data: BytesLike): Result;
events: {
"DoubleUpdate(bytes32,bytes32[2],bytes,bytes)": EventFragment;
"NewUpdater(address)": EventFragment;
"Update(uint32,bytes32,bytes32,bytes)": EventFragment;
};
getEvent(nameOrSignatureOrTopic: "DoubleUpdate"): EventFragment;
getEvent(nameOrSignatureOrTopic: "NewUpdater"): EventFragment;
getEvent(nameOrSignatureOrTopic: "Update"): EventFragment;
}
export class Common extends BaseContract {
connect(signerOrProvider: Signer | Provider | string): this;
attach(addressOrName: string): this;
deployed(): Promise<this>;
listeners<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter?: TypedEventFilter<EventArgsArray, EventArgsObject>
): Array<TypedListener<EventArgsArray, EventArgsObject>>;
off<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
on<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
once<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
removeListener<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
removeAllListeners<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>
): this;
listeners(eventName?: string): Array<Listener>;
off(eventName: string, listener: Listener): this;
on(eventName: string, listener: Listener): this;
once(eventName: string, listener: Listener): this;
removeListener(eventName: string, listener: Listener): this;
removeAllListeners(eventName?: string): this;
queryFilter<EventArgsArray extends Array<any>, EventArgsObject>(
event: TypedEventFilter<EventArgsArray, EventArgsObject>,
fromBlockOrBlockhash?: string | number | undefined,
toBlock?: string | number | undefined
): Promise<Array<TypedEvent<EventArgsArray & EventArgsObject>>>;
interface: CommonInterface;
functions: {
committedRoot(overrides?: CallOverrides): Promise<[string]>;
doubleUpdate(
_oldRoot: BytesLike,
_newRoot: [BytesLike, BytesLike],
_signature: BytesLike,
_signature2: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
homeDomainHash(overrides?: CallOverrides): Promise<[string]>;
localDomain(overrides?: CallOverrides): Promise<[number]>;
state(overrides?: CallOverrides): Promise<[number]>;
updater(overrides?: CallOverrides): Promise<[string]>;
};
committedRoot(overrides?: CallOverrides): Promise<string>;
doubleUpdate(
_oldRoot: BytesLike,
_newRoot: [BytesLike, BytesLike],
_signature: BytesLike,
_signature2: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
homeDomainHash(overrides?: CallOverrides): Promise<string>;
localDomain(overrides?: CallOverrides): Promise<number>;
state(overrides?: CallOverrides): Promise<number>;
updater(overrides?: CallOverrides): Promise<string>;
callStatic: {
committedRoot(overrides?: CallOverrides): Promise<string>;
doubleUpdate(
_oldRoot: BytesLike,
_newRoot: [BytesLike, BytesLike],
_signature: BytesLike,
_signature2: BytesLike,
overrides?: CallOverrides
): Promise<void>;
homeDomainHash(overrides?: CallOverrides): Promise<string>;
localDomain(overrides?: CallOverrides): Promise<number>;
state(overrides?: CallOverrides): Promise<number>;
updater(overrides?: CallOverrides): Promise<string>;
};
filters: {
DoubleUpdate(
oldRoot?: null,
newRoot?: null,
signature?: null,
signature2?: null
): TypedEventFilter<
[string, [string, string], string, string],
{
oldRoot: string;
newRoot: [string, string];
signature: string;
signature2: string;
}
>;
NewUpdater(updater?: null): TypedEventFilter<[string], { updater: string }>;
Update(
homeDomain?: BigNumberish | null,
oldRoot?: BytesLike | null,
newRoot?: BytesLike | null,
signature?: null
): TypedEventFilter<
[number, string, string, string],
{
homeDomain: number;
oldRoot: string;
newRoot: string;
signature: string;
}
>;
};
estimateGas: {
committedRoot(overrides?: CallOverrides): Promise<BigNumber>;
doubleUpdate(
_oldRoot: BytesLike,
_newRoot: [BytesLike, BytesLike],
_signature: BytesLike,
_signature2: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
homeDomainHash(overrides?: CallOverrides): Promise<BigNumber>;
localDomain(overrides?: CallOverrides): Promise<BigNumber>;
state(overrides?: CallOverrides): Promise<BigNumber>;
updater(overrides?: CallOverrides): Promise<BigNumber>;
};
populateTransaction: {
committedRoot(overrides?: CallOverrides): Promise<PopulatedTransaction>;
doubleUpdate(
_oldRoot: BytesLike,
_newRoot: [BytesLike, BytesLike],
_signature: BytesLike,
_signature2: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
homeDomainHash(overrides?: CallOverrides): Promise<PopulatedTransaction>;
localDomain(overrides?: CallOverrides): Promise<PopulatedTransaction>;
state(overrides?: CallOverrides): Promise<PopulatedTransaction>;
updater(overrides?: CallOverrides): Promise<PopulatedTransaction>;
};
}

@ -0,0 +1,715 @@
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import {
ethers,
EventFilter,
Signer,
BigNumber,
BigNumberish,
PopulatedTransaction,
BaseContract,
ContractTransaction,
Overrides,
CallOverrides,
} from "ethers";
import { BytesLike } from "@ethersproject/bytes";
import { Listener, Provider } from "@ethersproject/providers";
import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi";
import { TypedEventFilter, TypedEvent, TypedListener } from "./commons";
interface GovernanceRouterInterface extends ethers.utils.Interface {
functions: {
"VERSION()": FunctionFragment;
"callLocal(tuple[])": FunctionFragment;
"callRemote(uint32,tuple[])": FunctionFragment;
"domains(uint256)": FunctionFragment;
"exitRecovery()": FunctionFragment;
"governor()": FunctionFragment;
"governorDomain()": FunctionFragment;
"handle(uint32,bytes32,bytes)": FunctionFragment;
"inRecovery()": FunctionFragment;
"initialize(address,address)": FunctionFragment;
"initiateRecoveryTimelock()": FunctionFragment;
"localDomain()": FunctionFragment;
"recoveryActiveAt()": FunctionFragment;
"recoveryManager()": FunctionFragment;
"recoveryTimelock()": FunctionFragment;
"routers(uint32)": FunctionFragment;
"setRouter(uint32,bytes32)": FunctionFragment;
"setRouterLocal(uint32,bytes32)": FunctionFragment;
"setXAppConnectionManager(address)": FunctionFragment;
"transferGovernor(uint32,address)": FunctionFragment;
"transferRecoveryManager(address)": FunctionFragment;
"xAppConnectionManager()": FunctionFragment;
};
encodeFunctionData(functionFragment: "VERSION", values?: undefined): string;
encodeFunctionData(
functionFragment: "callLocal",
values: [{ to: BytesLike; data: BytesLike }[]]
): string;
encodeFunctionData(
functionFragment: "callRemote",
values: [BigNumberish, { to: BytesLike; data: BytesLike }[]]
): string;
encodeFunctionData(
functionFragment: "domains",
values: [BigNumberish]
): string;
encodeFunctionData(
functionFragment: "exitRecovery",
values?: undefined
): string;
encodeFunctionData(functionFragment: "governor", values?: undefined): string;
encodeFunctionData(
functionFragment: "governorDomain",
values?: undefined
): string;
encodeFunctionData(
functionFragment: "handle",
values: [BigNumberish, BytesLike, BytesLike]
): string;
encodeFunctionData(
functionFragment: "inRecovery",
values?: undefined
): string;
encodeFunctionData(
functionFragment: "initialize",
values: [string, string]
): string;
encodeFunctionData(
functionFragment: "initiateRecoveryTimelock",
values?: undefined
): string;
encodeFunctionData(
functionFragment: "localDomain",
values?: undefined
): string;
encodeFunctionData(
functionFragment: "recoveryActiveAt",
values?: undefined
): string;
encodeFunctionData(
functionFragment: "recoveryManager",
values?: undefined
): string;
encodeFunctionData(
functionFragment: "recoveryTimelock",
values?: undefined
): string;
encodeFunctionData(
functionFragment: "routers",
values: [BigNumberish]
): string;
encodeFunctionData(
functionFragment: "setRouter",
values: [BigNumberish, BytesLike]
): string;
encodeFunctionData(
functionFragment: "setRouterLocal",
values: [BigNumberish, BytesLike]
): string;
encodeFunctionData(
functionFragment: "setXAppConnectionManager",
values: [string]
): string;
encodeFunctionData(
functionFragment: "transferGovernor",
values: [BigNumberish, string]
): string;
encodeFunctionData(
functionFragment: "transferRecoveryManager",
values: [string]
): string;
encodeFunctionData(
functionFragment: "xAppConnectionManager",
values?: undefined
): string;
decodeFunctionResult(functionFragment: "VERSION", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "callLocal", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "callRemote", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "domains", data: BytesLike): Result;
decodeFunctionResult(
functionFragment: "exitRecovery",
data: BytesLike
): Result;
decodeFunctionResult(functionFragment: "governor", data: BytesLike): Result;
decodeFunctionResult(
functionFragment: "governorDomain",
data: BytesLike
): Result;
decodeFunctionResult(functionFragment: "handle", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "inRecovery", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result;
decodeFunctionResult(
functionFragment: "initiateRecoveryTimelock",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "localDomain",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "recoveryActiveAt",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "recoveryManager",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "recoveryTimelock",
data: BytesLike
): Result;
decodeFunctionResult(functionFragment: "routers", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "setRouter", data: BytesLike): Result;
decodeFunctionResult(
functionFragment: "setRouterLocal",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "setXAppConnectionManager",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "transferGovernor",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "transferRecoveryManager",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "xAppConnectionManager",
data: BytesLike
): Result;
events: {
"ExitRecovery(address)": EventFragment;
"InitiateRecovery(address,uint256)": EventFragment;
"SetRouter(uint32,bytes32,bytes32)": EventFragment;
"TransferGovernor(uint32,uint32,address,address)": EventFragment;
"TransferRecoveryManager(address,address)": EventFragment;
};
getEvent(nameOrSignatureOrTopic: "ExitRecovery"): EventFragment;
getEvent(nameOrSignatureOrTopic: "InitiateRecovery"): EventFragment;
getEvent(nameOrSignatureOrTopic: "SetRouter"): EventFragment;
getEvent(nameOrSignatureOrTopic: "TransferGovernor"): EventFragment;
getEvent(nameOrSignatureOrTopic: "TransferRecoveryManager"): EventFragment;
}
export class GovernanceRouter extends BaseContract {
connect(signerOrProvider: Signer | Provider | string): this;
attach(addressOrName: string): this;
deployed(): Promise<this>;
listeners<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter?: TypedEventFilter<EventArgsArray, EventArgsObject>
): Array<TypedListener<EventArgsArray, EventArgsObject>>;
off<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
on<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
once<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
removeListener<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
removeAllListeners<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>
): this;
listeners(eventName?: string): Array<Listener>;
off(eventName: string, listener: Listener): this;
on(eventName: string, listener: Listener): this;
once(eventName: string, listener: Listener): this;
removeListener(eventName: string, listener: Listener): this;
removeAllListeners(eventName?: string): this;
queryFilter<EventArgsArray extends Array<any>, EventArgsObject>(
event: TypedEventFilter<EventArgsArray, EventArgsObject>,
fromBlockOrBlockhash?: string | number | undefined,
toBlock?: string | number | undefined
): Promise<Array<TypedEvent<EventArgsArray & EventArgsObject>>>;
interface: GovernanceRouterInterface;
functions: {
VERSION(overrides?: CallOverrides): Promise<[number]>;
callLocal(
_calls: { to: BytesLike; data: BytesLike }[],
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
callRemote(
_destination: BigNumberish,
_calls: { to: BytesLike; data: BytesLike }[],
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
domains(arg0: BigNumberish, overrides?: CallOverrides): Promise<[number]>;
exitRecovery(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
governor(overrides?: CallOverrides): Promise<[string]>;
governorDomain(overrides?: CallOverrides): Promise<[number]>;
handle(
_origin: BigNumberish,
_sender: BytesLike,
_message: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
inRecovery(overrides?: CallOverrides): Promise<[boolean]>;
initialize(
_xAppConnectionManager: string,
_recoveryManager: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
initiateRecoveryTimelock(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
localDomain(overrides?: CallOverrides): Promise<[number]>;
recoveryActiveAt(overrides?: CallOverrides): Promise<[BigNumber]>;
recoveryManager(overrides?: CallOverrides): Promise<[string]>;
recoveryTimelock(overrides?: CallOverrides): Promise<[BigNumber]>;
routers(arg0: BigNumberish, overrides?: CallOverrides): Promise<[string]>;
setRouter(
_domain: BigNumberish,
_router: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
setRouterLocal(
_domain: BigNumberish,
_router: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
setXAppConnectionManager(
_xAppConnectionManager: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
transferGovernor(
_newDomain: BigNumberish,
_newGovernor: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
transferRecoveryManager(
_newRecoveryManager: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
xAppConnectionManager(overrides?: CallOverrides): Promise<[string]>;
};
VERSION(overrides?: CallOverrides): Promise<number>;
callLocal(
_calls: { to: BytesLike; data: BytesLike }[],
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
callRemote(
_destination: BigNumberish,
_calls: { to: BytesLike; data: BytesLike }[],
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
domains(arg0: BigNumberish, overrides?: CallOverrides): Promise<number>;
exitRecovery(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
governor(overrides?: CallOverrides): Promise<string>;
governorDomain(overrides?: CallOverrides): Promise<number>;
handle(
_origin: BigNumberish,
_sender: BytesLike,
_message: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
inRecovery(overrides?: CallOverrides): Promise<boolean>;
initialize(
_xAppConnectionManager: string,
_recoveryManager: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
initiateRecoveryTimelock(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
localDomain(overrides?: CallOverrides): Promise<number>;
recoveryActiveAt(overrides?: CallOverrides): Promise<BigNumber>;
recoveryManager(overrides?: CallOverrides): Promise<string>;
recoveryTimelock(overrides?: CallOverrides): Promise<BigNumber>;
routers(arg0: BigNumberish, overrides?: CallOverrides): Promise<string>;
setRouter(
_domain: BigNumberish,
_router: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
setRouterLocal(
_domain: BigNumberish,
_router: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
setXAppConnectionManager(
_xAppConnectionManager: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
transferGovernor(
_newDomain: BigNumberish,
_newGovernor: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
transferRecoveryManager(
_newRecoveryManager: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
xAppConnectionManager(overrides?: CallOverrides): Promise<string>;
callStatic: {
VERSION(overrides?: CallOverrides): Promise<number>;
callLocal(
_calls: { to: BytesLike; data: BytesLike }[],
overrides?: CallOverrides
): Promise<void>;
callRemote(
_destination: BigNumberish,
_calls: { to: BytesLike; data: BytesLike }[],
overrides?: CallOverrides
): Promise<void>;
domains(arg0: BigNumberish, overrides?: CallOverrides): Promise<number>;
exitRecovery(overrides?: CallOverrides): Promise<void>;
governor(overrides?: CallOverrides): Promise<string>;
governorDomain(overrides?: CallOverrides): Promise<number>;
handle(
_origin: BigNumberish,
_sender: BytesLike,
_message: BytesLike,
overrides?: CallOverrides
): Promise<void>;
inRecovery(overrides?: CallOverrides): Promise<boolean>;
initialize(
_xAppConnectionManager: string,
_recoveryManager: string,
overrides?: CallOverrides
): Promise<void>;
initiateRecoveryTimelock(overrides?: CallOverrides): Promise<void>;
localDomain(overrides?: CallOverrides): Promise<number>;
recoveryActiveAt(overrides?: CallOverrides): Promise<BigNumber>;
recoveryManager(overrides?: CallOverrides): Promise<string>;
recoveryTimelock(overrides?: CallOverrides): Promise<BigNumber>;
routers(arg0: BigNumberish, overrides?: CallOverrides): Promise<string>;
setRouter(
_domain: BigNumberish,
_router: BytesLike,
overrides?: CallOverrides
): Promise<void>;
setRouterLocal(
_domain: BigNumberish,
_router: BytesLike,
overrides?: CallOverrides
): Promise<void>;
setXAppConnectionManager(
_xAppConnectionManager: string,
overrides?: CallOverrides
): Promise<void>;
transferGovernor(
_newDomain: BigNumberish,
_newGovernor: string,
overrides?: CallOverrides
): Promise<void>;
transferRecoveryManager(
_newRecoveryManager: string,
overrides?: CallOverrides
): Promise<void>;
xAppConnectionManager(overrides?: CallOverrides): Promise<string>;
};
filters: {
ExitRecovery(
recoveryManager?: null
): TypedEventFilter<[string], { recoveryManager: string }>;
InitiateRecovery(
recoveryManager?: string | null,
recoveryActiveAt?: null
): TypedEventFilter<
[string, BigNumber],
{ recoveryManager: string; recoveryActiveAt: BigNumber }
>;
SetRouter(
domain?: BigNumberish | null,
previousRouter?: null,
newRouter?: null
): TypedEventFilter<
[number, string, string],
{ domain: number; previousRouter: string; newRouter: string }
>;
TransferGovernor(
previousGovernorDomain?: null,
newGovernorDomain?: null,
previousGovernor?: string | null,
newGovernor?: string | null
): TypedEventFilter<
[number, number, string, string],
{
previousGovernorDomain: number;
newGovernorDomain: number;
previousGovernor: string;
newGovernor: string;
}
>;
TransferRecoveryManager(
previousRecoveryManager?: string | null,
newRecoveryManager?: string | null
): TypedEventFilter<
[string, string],
{ previousRecoveryManager: string; newRecoveryManager: string }
>;
};
estimateGas: {
VERSION(overrides?: CallOverrides): Promise<BigNumber>;
callLocal(
_calls: { to: BytesLike; data: BytesLike }[],
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
callRemote(
_destination: BigNumberish,
_calls: { to: BytesLike; data: BytesLike }[],
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
domains(arg0: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
exitRecovery(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
governor(overrides?: CallOverrides): Promise<BigNumber>;
governorDomain(overrides?: CallOverrides): Promise<BigNumber>;
handle(
_origin: BigNumberish,
_sender: BytesLike,
_message: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
inRecovery(overrides?: CallOverrides): Promise<BigNumber>;
initialize(
_xAppConnectionManager: string,
_recoveryManager: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
initiateRecoveryTimelock(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
localDomain(overrides?: CallOverrides): Promise<BigNumber>;
recoveryActiveAt(overrides?: CallOverrides): Promise<BigNumber>;
recoveryManager(overrides?: CallOverrides): Promise<BigNumber>;
recoveryTimelock(overrides?: CallOverrides): Promise<BigNumber>;
routers(arg0: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
setRouter(
_domain: BigNumberish,
_router: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
setRouterLocal(
_domain: BigNumberish,
_router: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
setXAppConnectionManager(
_xAppConnectionManager: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
transferGovernor(
_newDomain: BigNumberish,
_newGovernor: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
transferRecoveryManager(
_newRecoveryManager: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
xAppConnectionManager(overrides?: CallOverrides): Promise<BigNumber>;
};
populateTransaction: {
VERSION(overrides?: CallOverrides): Promise<PopulatedTransaction>;
callLocal(
_calls: { to: BytesLike; data: BytesLike }[],
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
callRemote(
_destination: BigNumberish,
_calls: { to: BytesLike; data: BytesLike }[],
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
domains(
arg0: BigNumberish,
overrides?: CallOverrides
): Promise<PopulatedTransaction>;
exitRecovery(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
governor(overrides?: CallOverrides): Promise<PopulatedTransaction>;
governorDomain(overrides?: CallOverrides): Promise<PopulatedTransaction>;
handle(
_origin: BigNumberish,
_sender: BytesLike,
_message: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
inRecovery(overrides?: CallOverrides): Promise<PopulatedTransaction>;
initialize(
_xAppConnectionManager: string,
_recoveryManager: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
initiateRecoveryTimelock(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
localDomain(overrides?: CallOverrides): Promise<PopulatedTransaction>;
recoveryActiveAt(overrides?: CallOverrides): Promise<PopulatedTransaction>;
recoveryManager(overrides?: CallOverrides): Promise<PopulatedTransaction>;
recoveryTimelock(overrides?: CallOverrides): Promise<PopulatedTransaction>;
routers(
arg0: BigNumberish,
overrides?: CallOverrides
): Promise<PopulatedTransaction>;
setRouter(
_domain: BigNumberish,
_router: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
setRouterLocal(
_domain: BigNumberish,
_router: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
setXAppConnectionManager(
_xAppConnectionManager: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
transferGovernor(
_newDomain: BigNumberish,
_newGovernor: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
transferRecoveryManager(
_newRecoveryManager: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
xAppConnectionManager(
overrides?: CallOverrides
): Promise<PopulatedTransaction>;
};
}

@ -0,0 +1,799 @@
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import {
ethers,
EventFilter,
Signer,
BigNumber,
BigNumberish,
PopulatedTransaction,
BaseContract,
ContractTransaction,
Overrides,
CallOverrides,
} from "ethers";
import { BytesLike } from "@ethersproject/bytes";
import { Listener, Provider } from "@ethersproject/providers";
import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi";
import { TypedEventFilter, TypedEvent, TypedListener } from "./commons";
interface HomeInterface extends ethers.utils.Interface {
functions: {
"MAX_MESSAGE_BODY_BYTES()": FunctionFragment;
"VERSION()": FunctionFragment;
"committedRoot()": FunctionFragment;
"count()": FunctionFragment;
"dispatch(uint32,bytes32,bytes)": FunctionFragment;
"doubleUpdate(bytes32,bytes32[2],bytes,bytes)": FunctionFragment;
"homeDomainHash()": FunctionFragment;
"improperUpdate(bytes32,bytes32,bytes)": FunctionFragment;
"initialize(address)": FunctionFragment;
"localDomain()": FunctionFragment;
"nonces(uint32)": FunctionFragment;
"owner()": FunctionFragment;
"queueContains(bytes32)": FunctionFragment;
"queueEnd()": FunctionFragment;
"queueLength()": FunctionFragment;
"renounceOwnership()": FunctionFragment;
"root()": FunctionFragment;
"setUpdater(address)": FunctionFragment;
"setUpdaterManager(address)": FunctionFragment;
"state()": FunctionFragment;
"suggestUpdate()": FunctionFragment;
"transferOwnership(address)": FunctionFragment;
"tree()": FunctionFragment;
"update(bytes32,bytes32,bytes)": FunctionFragment;
"updater()": FunctionFragment;
"updaterManager()": FunctionFragment;
};
encodeFunctionData(
functionFragment: "MAX_MESSAGE_BODY_BYTES",
values?: undefined
): string;
encodeFunctionData(functionFragment: "VERSION", values?: undefined): string;
encodeFunctionData(
functionFragment: "committedRoot",
values?: undefined
): string;
encodeFunctionData(functionFragment: "count", values?: undefined): string;
encodeFunctionData(
functionFragment: "dispatch",
values: [BigNumberish, BytesLike, BytesLike]
): string;
encodeFunctionData(
functionFragment: "doubleUpdate",
values: [BytesLike, [BytesLike, BytesLike], BytesLike, BytesLike]
): string;
encodeFunctionData(
functionFragment: "homeDomainHash",
values?: undefined
): string;
encodeFunctionData(
functionFragment: "improperUpdate",
values: [BytesLike, BytesLike, BytesLike]
): string;
encodeFunctionData(functionFragment: "initialize", values: [string]): string;
encodeFunctionData(
functionFragment: "localDomain",
values?: undefined
): string;
encodeFunctionData(
functionFragment: "nonces",
values: [BigNumberish]
): string;
encodeFunctionData(functionFragment: "owner", values?: undefined): string;
encodeFunctionData(
functionFragment: "queueContains",
values: [BytesLike]
): string;
encodeFunctionData(functionFragment: "queueEnd", values?: undefined): string;
encodeFunctionData(
functionFragment: "queueLength",
values?: undefined
): string;
encodeFunctionData(
functionFragment: "renounceOwnership",
values?: undefined
): string;
encodeFunctionData(functionFragment: "root", values?: undefined): string;
encodeFunctionData(functionFragment: "setUpdater", values: [string]): string;
encodeFunctionData(
functionFragment: "setUpdaterManager",
values: [string]
): string;
encodeFunctionData(functionFragment: "state", values?: undefined): string;
encodeFunctionData(
functionFragment: "suggestUpdate",
values?: undefined
): string;
encodeFunctionData(
functionFragment: "transferOwnership",
values: [string]
): string;
encodeFunctionData(functionFragment: "tree", values?: undefined): string;
encodeFunctionData(
functionFragment: "update",
values: [BytesLike, BytesLike, BytesLike]
): string;
encodeFunctionData(functionFragment: "updater", values?: undefined): string;
encodeFunctionData(
functionFragment: "updaterManager",
values?: undefined
): string;
decodeFunctionResult(
functionFragment: "MAX_MESSAGE_BODY_BYTES",
data: BytesLike
): Result;
decodeFunctionResult(functionFragment: "VERSION", data: BytesLike): Result;
decodeFunctionResult(
functionFragment: "committedRoot",
data: BytesLike
): Result;
decodeFunctionResult(functionFragment: "count", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "dispatch", data: BytesLike): Result;
decodeFunctionResult(
functionFragment: "doubleUpdate",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "homeDomainHash",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "improperUpdate",
data: BytesLike
): Result;
decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result;
decodeFunctionResult(
functionFragment: "localDomain",
data: BytesLike
): Result;
decodeFunctionResult(functionFragment: "nonces", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result;
decodeFunctionResult(
functionFragment: "queueContains",
data: BytesLike
): Result;
decodeFunctionResult(functionFragment: "queueEnd", data: BytesLike): Result;
decodeFunctionResult(
functionFragment: "queueLength",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "renounceOwnership",
data: BytesLike
): Result;
decodeFunctionResult(functionFragment: "root", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "setUpdater", data: BytesLike): Result;
decodeFunctionResult(
functionFragment: "setUpdaterManager",
data: BytesLike
): Result;
decodeFunctionResult(functionFragment: "state", data: BytesLike): Result;
decodeFunctionResult(
functionFragment: "suggestUpdate",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "transferOwnership",
data: BytesLike
): Result;
decodeFunctionResult(functionFragment: "tree", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "update", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "updater", data: BytesLike): Result;
decodeFunctionResult(
functionFragment: "updaterManager",
data: BytesLike
): Result;
events: {
"Dispatch(bytes32,uint256,uint64,bytes32,bytes)": EventFragment;
"DoubleUpdate(bytes32,bytes32[2],bytes,bytes)": EventFragment;
"ImproperUpdate(bytes32,bytes32,bytes)": EventFragment;
"NewUpdater(address)": EventFragment;
"NewUpdaterManager(address)": EventFragment;
"OwnershipTransferred(address,address)": EventFragment;
"Update(uint32,bytes32,bytes32,bytes)": EventFragment;
"UpdaterSlashed(address,address)": EventFragment;
};
getEvent(nameOrSignatureOrTopic: "Dispatch"): EventFragment;
getEvent(nameOrSignatureOrTopic: "DoubleUpdate"): EventFragment;
getEvent(nameOrSignatureOrTopic: "ImproperUpdate"): EventFragment;
getEvent(nameOrSignatureOrTopic: "NewUpdater"): EventFragment;
getEvent(nameOrSignatureOrTopic: "NewUpdaterManager"): EventFragment;
getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment;
getEvent(nameOrSignatureOrTopic: "Update"): EventFragment;
getEvent(nameOrSignatureOrTopic: "UpdaterSlashed"): EventFragment;
}
export class Home extends BaseContract {
connect(signerOrProvider: Signer | Provider | string): this;
attach(addressOrName: string): this;
deployed(): Promise<this>;
listeners<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter?: TypedEventFilter<EventArgsArray, EventArgsObject>
): Array<TypedListener<EventArgsArray, EventArgsObject>>;
off<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
on<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
once<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
removeListener<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
removeAllListeners<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>
): this;
listeners(eventName?: string): Array<Listener>;
off(eventName: string, listener: Listener): this;
on(eventName: string, listener: Listener): this;
once(eventName: string, listener: Listener): this;
removeListener(eventName: string, listener: Listener): this;
removeAllListeners(eventName?: string): this;
queryFilter<EventArgsArray extends Array<any>, EventArgsObject>(
event: TypedEventFilter<EventArgsArray, EventArgsObject>,
fromBlockOrBlockhash?: string | number | undefined,
toBlock?: string | number | undefined
): Promise<Array<TypedEvent<EventArgsArray & EventArgsObject>>>;
interface: HomeInterface;
functions: {
MAX_MESSAGE_BODY_BYTES(overrides?: CallOverrides): Promise<[BigNumber]>;
VERSION(overrides?: CallOverrides): Promise<[number]>;
committedRoot(overrides?: CallOverrides): Promise<[string]>;
count(overrides?: CallOverrides): Promise<[BigNumber]>;
dispatch(
_destinationDomain: BigNumberish,
_recipientAddress: BytesLike,
_messageBody: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
doubleUpdate(
_oldRoot: BytesLike,
_newRoot: [BytesLike, BytesLike],
_signature: BytesLike,
_signature2: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
homeDomainHash(overrides?: CallOverrides): Promise<[string]>;
improperUpdate(
_oldRoot: BytesLike,
_newRoot: BytesLike,
_signature: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
initialize(
_updaterManager: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
localDomain(overrides?: CallOverrides): Promise<[number]>;
nonces(arg0: BigNumberish, overrides?: CallOverrides): Promise<[number]>;
owner(overrides?: CallOverrides): Promise<[string]>;
queueContains(
_item: BytesLike,
overrides?: CallOverrides
): Promise<[boolean]>;
queueEnd(overrides?: CallOverrides): Promise<[string]>;
queueLength(overrides?: CallOverrides): Promise<[BigNumber]>;
renounceOwnership(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
root(overrides?: CallOverrides): Promise<[string]>;
setUpdater(
_updater: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
setUpdaterManager(
_updaterManager: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
state(overrides?: CallOverrides): Promise<[number]>;
suggestUpdate(
overrides?: CallOverrides
): Promise<[string, string] & { _committedRoot: string; _new: string }>;
transferOwnership(
newOwner: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
tree(
overrides?: CallOverrides
): Promise<[BigNumber] & { count: BigNumber }>;
update(
_committedRoot: BytesLike,
_newRoot: BytesLike,
_signature: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
updater(overrides?: CallOverrides): Promise<[string]>;
updaterManager(overrides?: CallOverrides): Promise<[string]>;
};
MAX_MESSAGE_BODY_BYTES(overrides?: CallOverrides): Promise<BigNumber>;
VERSION(overrides?: CallOverrides): Promise<number>;
committedRoot(overrides?: CallOverrides): Promise<string>;
count(overrides?: CallOverrides): Promise<BigNumber>;
dispatch(
_destinationDomain: BigNumberish,
_recipientAddress: BytesLike,
_messageBody: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
doubleUpdate(
_oldRoot: BytesLike,
_newRoot: [BytesLike, BytesLike],
_signature: BytesLike,
_signature2: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
homeDomainHash(overrides?: CallOverrides): Promise<string>;
improperUpdate(
_oldRoot: BytesLike,
_newRoot: BytesLike,
_signature: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
initialize(
_updaterManager: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
localDomain(overrides?: CallOverrides): Promise<number>;
nonces(arg0: BigNumberish, overrides?: CallOverrides): Promise<number>;
owner(overrides?: CallOverrides): Promise<string>;
queueContains(_item: BytesLike, overrides?: CallOverrides): Promise<boolean>;
queueEnd(overrides?: CallOverrides): Promise<string>;
queueLength(overrides?: CallOverrides): Promise<BigNumber>;
renounceOwnership(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
root(overrides?: CallOverrides): Promise<string>;
setUpdater(
_updater: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
setUpdaterManager(
_updaterManager: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
state(overrides?: CallOverrides): Promise<number>;
suggestUpdate(
overrides?: CallOverrides
): Promise<[string, string] & { _committedRoot: string; _new: string }>;
transferOwnership(
newOwner: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
tree(overrides?: CallOverrides): Promise<BigNumber>;
update(
_committedRoot: BytesLike,
_newRoot: BytesLike,
_signature: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
updater(overrides?: CallOverrides): Promise<string>;
updaterManager(overrides?: CallOverrides): Promise<string>;
callStatic: {
MAX_MESSAGE_BODY_BYTES(overrides?: CallOverrides): Promise<BigNumber>;
VERSION(overrides?: CallOverrides): Promise<number>;
committedRoot(overrides?: CallOverrides): Promise<string>;
count(overrides?: CallOverrides): Promise<BigNumber>;
dispatch(
_destinationDomain: BigNumberish,
_recipientAddress: BytesLike,
_messageBody: BytesLike,
overrides?: CallOverrides
): Promise<void>;
doubleUpdate(
_oldRoot: BytesLike,
_newRoot: [BytesLike, BytesLike],
_signature: BytesLike,
_signature2: BytesLike,
overrides?: CallOverrides
): Promise<void>;
homeDomainHash(overrides?: CallOverrides): Promise<string>;
improperUpdate(
_oldRoot: BytesLike,
_newRoot: BytesLike,
_signature: BytesLike,
overrides?: CallOverrides
): Promise<boolean>;
initialize(
_updaterManager: string,
overrides?: CallOverrides
): Promise<void>;
localDomain(overrides?: CallOverrides): Promise<number>;
nonces(arg0: BigNumberish, overrides?: CallOverrides): Promise<number>;
owner(overrides?: CallOverrides): Promise<string>;
queueContains(
_item: BytesLike,
overrides?: CallOverrides
): Promise<boolean>;
queueEnd(overrides?: CallOverrides): Promise<string>;
queueLength(overrides?: CallOverrides): Promise<BigNumber>;
renounceOwnership(overrides?: CallOverrides): Promise<void>;
root(overrides?: CallOverrides): Promise<string>;
setUpdater(_updater: string, overrides?: CallOverrides): Promise<void>;
setUpdaterManager(
_updaterManager: string,
overrides?: CallOverrides
): Promise<void>;
state(overrides?: CallOverrides): Promise<number>;
suggestUpdate(
overrides?: CallOverrides
): Promise<[string, string] & { _committedRoot: string; _new: string }>;
transferOwnership(
newOwner: string,
overrides?: CallOverrides
): Promise<void>;
tree(overrides?: CallOverrides): Promise<BigNumber>;
update(
_committedRoot: BytesLike,
_newRoot: BytesLike,
_signature: BytesLike,
overrides?: CallOverrides
): Promise<void>;
updater(overrides?: CallOverrides): Promise<string>;
updaterManager(overrides?: CallOverrides): Promise<string>;
};
filters: {
Dispatch(
messageHash?: BytesLike | null,
leafIndex?: BigNumberish | null,
destinationAndNonce?: BigNumberish | null,
committedRoot?: null,
message?: null
): TypedEventFilter<
[string, BigNumber, BigNumber, string, string],
{
messageHash: string;
leafIndex: BigNumber;
destinationAndNonce: BigNumber;
committedRoot: string;
message: string;
}
>;
DoubleUpdate(
oldRoot?: null,
newRoot?: null,
signature?: null,
signature2?: null
): TypedEventFilter<
[string, [string, string], string, string],
{
oldRoot: string;
newRoot: [string, string];
signature: string;
signature2: string;
}
>;
ImproperUpdate(
oldRoot?: null,
newRoot?: null,
signature?: null
): TypedEventFilter<
[string, string, string],
{ oldRoot: string; newRoot: string; signature: string }
>;
NewUpdater(updater?: null): TypedEventFilter<[string], { updater: string }>;
NewUpdaterManager(
updaterManager?: null
): TypedEventFilter<[string], { updaterManager: string }>;
OwnershipTransferred(
previousOwner?: string | null,
newOwner?: string | null
): TypedEventFilter<
[string, string],
{ previousOwner: string; newOwner: string }
>;
Update(
homeDomain?: BigNumberish | null,
oldRoot?: BytesLike | null,
newRoot?: BytesLike | null,
signature?: null
): TypedEventFilter<
[number, string, string, string],
{
homeDomain: number;
oldRoot: string;
newRoot: string;
signature: string;
}
>;
UpdaterSlashed(
updater?: string | null,
reporter?: string | null
): TypedEventFilter<
[string, string],
{ updater: string; reporter: string }
>;
};
estimateGas: {
MAX_MESSAGE_BODY_BYTES(overrides?: CallOverrides): Promise<BigNumber>;
VERSION(overrides?: CallOverrides): Promise<BigNumber>;
committedRoot(overrides?: CallOverrides): Promise<BigNumber>;
count(overrides?: CallOverrides): Promise<BigNumber>;
dispatch(
_destinationDomain: BigNumberish,
_recipientAddress: BytesLike,
_messageBody: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
doubleUpdate(
_oldRoot: BytesLike,
_newRoot: [BytesLike, BytesLike],
_signature: BytesLike,
_signature2: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
homeDomainHash(overrides?: CallOverrides): Promise<BigNumber>;
improperUpdate(
_oldRoot: BytesLike,
_newRoot: BytesLike,
_signature: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
initialize(
_updaterManager: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
localDomain(overrides?: CallOverrides): Promise<BigNumber>;
nonces(arg0: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
owner(overrides?: CallOverrides): Promise<BigNumber>;
queueContains(
_item: BytesLike,
overrides?: CallOverrides
): Promise<BigNumber>;
queueEnd(overrides?: CallOverrides): Promise<BigNumber>;
queueLength(overrides?: CallOverrides): Promise<BigNumber>;
renounceOwnership(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
root(overrides?: CallOverrides): Promise<BigNumber>;
setUpdater(
_updater: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
setUpdaterManager(
_updaterManager: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
state(overrides?: CallOverrides): Promise<BigNumber>;
suggestUpdate(overrides?: CallOverrides): Promise<BigNumber>;
transferOwnership(
newOwner: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
tree(overrides?: CallOverrides): Promise<BigNumber>;
update(
_committedRoot: BytesLike,
_newRoot: BytesLike,
_signature: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
updater(overrides?: CallOverrides): Promise<BigNumber>;
updaterManager(overrides?: CallOverrides): Promise<BigNumber>;
};
populateTransaction: {
MAX_MESSAGE_BODY_BYTES(
overrides?: CallOverrides
): Promise<PopulatedTransaction>;
VERSION(overrides?: CallOverrides): Promise<PopulatedTransaction>;
committedRoot(overrides?: CallOverrides): Promise<PopulatedTransaction>;
count(overrides?: CallOverrides): Promise<PopulatedTransaction>;
dispatch(
_destinationDomain: BigNumberish,
_recipientAddress: BytesLike,
_messageBody: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
doubleUpdate(
_oldRoot: BytesLike,
_newRoot: [BytesLike, BytesLike],
_signature: BytesLike,
_signature2: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
homeDomainHash(overrides?: CallOverrides): Promise<PopulatedTransaction>;
improperUpdate(
_oldRoot: BytesLike,
_newRoot: BytesLike,
_signature: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
initialize(
_updaterManager: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
localDomain(overrides?: CallOverrides): Promise<PopulatedTransaction>;
nonces(
arg0: BigNumberish,
overrides?: CallOverrides
): Promise<PopulatedTransaction>;
owner(overrides?: CallOverrides): Promise<PopulatedTransaction>;
queueContains(
_item: BytesLike,
overrides?: CallOverrides
): Promise<PopulatedTransaction>;
queueEnd(overrides?: CallOverrides): Promise<PopulatedTransaction>;
queueLength(overrides?: CallOverrides): Promise<PopulatedTransaction>;
renounceOwnership(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
root(overrides?: CallOverrides): Promise<PopulatedTransaction>;
setUpdater(
_updater: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
setUpdaterManager(
_updaterManager: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
state(overrides?: CallOverrides): Promise<PopulatedTransaction>;
suggestUpdate(overrides?: CallOverrides): Promise<PopulatedTransaction>;
transferOwnership(
newOwner: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
tree(overrides?: CallOverrides): Promise<PopulatedTransaction>;
update(
_committedRoot: BytesLike,
_newRoot: BytesLike,
_signature: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
updater(overrides?: CallOverrides): Promise<PopulatedTransaction>;
updaterManager(overrides?: CallOverrides): Promise<PopulatedTransaction>;
};
}

@ -0,0 +1,124 @@
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import {
ethers,
EventFilter,
Signer,
BigNumber,
BigNumberish,
PopulatedTransaction,
BaseContract,
ContractTransaction,
Overrides,
CallOverrides,
} from "ethers";
import { BytesLike } from "@ethersproject/bytes";
import { Listener, Provider } from "@ethersproject/providers";
import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi";
import { TypedEventFilter, TypedEvent, TypedListener } from "./commons";
interface IMessageRecipientInterface extends ethers.utils.Interface {
functions: {
"handle(uint32,bytes32,bytes)": FunctionFragment;
};
encodeFunctionData(
functionFragment: "handle",
values: [BigNumberish, BytesLike, BytesLike]
): string;
decodeFunctionResult(functionFragment: "handle", data: BytesLike): Result;
events: {};
}
export class IMessageRecipient extends BaseContract {
connect(signerOrProvider: Signer | Provider | string): this;
attach(addressOrName: string): this;
deployed(): Promise<this>;
listeners<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter?: TypedEventFilter<EventArgsArray, EventArgsObject>
): Array<TypedListener<EventArgsArray, EventArgsObject>>;
off<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
on<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
once<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
removeListener<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
removeAllListeners<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>
): this;
listeners(eventName?: string): Array<Listener>;
off(eventName: string, listener: Listener): this;
on(eventName: string, listener: Listener): this;
once(eventName: string, listener: Listener): this;
removeListener(eventName: string, listener: Listener): this;
removeAllListeners(eventName?: string): this;
queryFilter<EventArgsArray extends Array<any>, EventArgsObject>(
event: TypedEventFilter<EventArgsArray, EventArgsObject>,
fromBlockOrBlockhash?: string | number | undefined,
toBlock?: string | number | undefined
): Promise<Array<TypedEvent<EventArgsArray & EventArgsObject>>>;
interface: IMessageRecipientInterface;
functions: {
handle(
_origin: BigNumberish,
_sender: BytesLike,
_message: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
};
handle(
_origin: BigNumberish,
_sender: BytesLike,
_message: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
callStatic: {
handle(
_origin: BigNumberish,
_sender: BytesLike,
_message: BytesLike,
overrides?: CallOverrides
): Promise<void>;
};
filters: {};
estimateGas: {
handle(
_origin: BigNumberish,
_sender: BytesLike,
_message: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
};
populateTransaction: {
handle(
_origin: BigNumberish,
_sender: BytesLike,
_message: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
};
}

@ -0,0 +1,127 @@
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import {
ethers,
EventFilter,
Signer,
BigNumber,
BigNumberish,
PopulatedTransaction,
BaseContract,
ContractTransaction,
Overrides,
CallOverrides,
} from "ethers";
import { BytesLike } from "@ethersproject/bytes";
import { Listener, Provider } from "@ethersproject/providers";
import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi";
import { TypedEventFilter, TypedEvent, TypedListener } from "./commons";
interface IUpdaterManagerInterface extends ethers.utils.Interface {
functions: {
"slashUpdater(address)": FunctionFragment;
"updater()": FunctionFragment;
};
encodeFunctionData(
functionFragment: "slashUpdater",
values: [string]
): string;
encodeFunctionData(functionFragment: "updater", values?: undefined): string;
decodeFunctionResult(
functionFragment: "slashUpdater",
data: BytesLike
): Result;
decodeFunctionResult(functionFragment: "updater", data: BytesLike): Result;
events: {};
}
export class IUpdaterManager extends BaseContract {
connect(signerOrProvider: Signer | Provider | string): this;
attach(addressOrName: string): this;
deployed(): Promise<this>;
listeners<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter?: TypedEventFilter<EventArgsArray, EventArgsObject>
): Array<TypedListener<EventArgsArray, EventArgsObject>>;
off<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
on<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
once<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
removeListener<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
removeAllListeners<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>
): this;
listeners(eventName?: string): Array<Listener>;
off(eventName: string, listener: Listener): this;
on(eventName: string, listener: Listener): this;
once(eventName: string, listener: Listener): this;
removeListener(eventName: string, listener: Listener): this;
removeAllListeners(eventName?: string): this;
queryFilter<EventArgsArray extends Array<any>, EventArgsObject>(
event: TypedEventFilter<EventArgsArray, EventArgsObject>,
fromBlockOrBlockhash?: string | number | undefined,
toBlock?: string | number | undefined
): Promise<Array<TypedEvent<EventArgsArray & EventArgsObject>>>;
interface: IUpdaterManagerInterface;
functions: {
slashUpdater(
_reporter: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
updater(overrides?: CallOverrides): Promise<[string]>;
};
slashUpdater(
_reporter: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
updater(overrides?: CallOverrides): Promise<string>;
callStatic: {
slashUpdater(_reporter: string, overrides?: CallOverrides): Promise<void>;
updater(overrides?: CallOverrides): Promise<string>;
};
filters: {};
estimateGas: {
slashUpdater(
_reporter: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
updater(overrides?: CallOverrides): Promise<BigNumber>;
};
populateTransaction: {
slashUpdater(
_reporter: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
updater(overrides?: CallOverrides): Promise<PopulatedTransaction>;
};
}

@ -0,0 +1,246 @@
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import {
ethers,
EventFilter,
Signer,
BigNumber,
BigNumberish,
PopulatedTransaction,
BaseContract,
ContractTransaction,
CallOverrides,
} from "ethers";
import { BytesLike } from "@ethersproject/bytes";
import { Listener, Provider } from "@ethersproject/providers";
import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi";
import { TypedEventFilter, TypedEvent, TypedListener } from "./commons";
interface MerkleLibInterface extends ethers.utils.Interface {
functions: {
"zeroHashes()": FunctionFragment;
};
encodeFunctionData(
functionFragment: "zeroHashes",
values?: undefined
): string;
decodeFunctionResult(functionFragment: "zeroHashes", data: BytesLike): Result;
events: {};
}
export class MerkleLib extends BaseContract {
connect(signerOrProvider: Signer | Provider | string): this;
attach(addressOrName: string): this;
deployed(): Promise<this>;
listeners<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter?: TypedEventFilter<EventArgsArray, EventArgsObject>
): Array<TypedListener<EventArgsArray, EventArgsObject>>;
off<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
on<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
once<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
removeListener<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
removeAllListeners<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>
): this;
listeners(eventName?: string): Array<Listener>;
off(eventName: string, listener: Listener): this;
on(eventName: string, listener: Listener): this;
once(eventName: string, listener: Listener): this;
removeListener(eventName: string, listener: Listener): this;
removeAllListeners(eventName?: string): this;
queryFilter<EventArgsArray extends Array<any>, EventArgsObject>(
event: TypedEventFilter<EventArgsArray, EventArgsObject>,
fromBlockOrBlockhash?: string | number | undefined,
toBlock?: string | number | undefined
): Promise<Array<TypedEvent<EventArgsArray & EventArgsObject>>>;
interface: MerkleLibInterface;
functions: {
zeroHashes(
overrides?: CallOverrides
): Promise<
[
[
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string
]
] & {
_zeroes: [
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string
];
}
>;
};
zeroHashes(
overrides?: CallOverrides
): Promise<
[
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string
]
>;
callStatic: {
zeroHashes(
overrides?: CallOverrides
): Promise<
[
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string,
string
]
>;
};
filters: {};
estimateGas: {
zeroHashes(overrides?: CallOverrides): Promise<BigNumber>;
};
populateTransaction: {
zeroHashes(overrides?: CallOverrides): Promise<PopulatedTransaction>;
};
}

@ -0,0 +1,123 @@
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import {
ethers,
EventFilter,
Signer,
BigNumber,
BigNumberish,
PopulatedTransaction,
BaseContract,
ContractTransaction,
CallOverrides,
} from "ethers";
import { BytesLike } from "@ethersproject/bytes";
import { Listener, Provider } from "@ethersproject/providers";
import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi";
import { TypedEventFilter, TypedEvent, TypedListener } from "./commons";
interface MerkleTreeManagerInterface extends ethers.utils.Interface {
functions: {
"count()": FunctionFragment;
"root()": FunctionFragment;
"tree()": FunctionFragment;
};
encodeFunctionData(functionFragment: "count", values?: undefined): string;
encodeFunctionData(functionFragment: "root", values?: undefined): string;
encodeFunctionData(functionFragment: "tree", values?: undefined): string;
decodeFunctionResult(functionFragment: "count", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "root", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "tree", data: BytesLike): Result;
events: {};
}
export class MerkleTreeManager extends BaseContract {
connect(signerOrProvider: Signer | Provider | string): this;
attach(addressOrName: string): this;
deployed(): Promise<this>;
listeners<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter?: TypedEventFilter<EventArgsArray, EventArgsObject>
): Array<TypedListener<EventArgsArray, EventArgsObject>>;
off<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
on<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
once<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
removeListener<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
removeAllListeners<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>
): this;
listeners(eventName?: string): Array<Listener>;
off(eventName: string, listener: Listener): this;
on(eventName: string, listener: Listener): this;
once(eventName: string, listener: Listener): this;
removeListener(eventName: string, listener: Listener): this;
removeAllListeners(eventName?: string): this;
queryFilter<EventArgsArray extends Array<any>, EventArgsObject>(
event: TypedEventFilter<EventArgsArray, EventArgsObject>,
fromBlockOrBlockhash?: string | number | undefined,
toBlock?: string | number | undefined
): Promise<Array<TypedEvent<EventArgsArray & EventArgsObject>>>;
interface: MerkleTreeManagerInterface;
functions: {
count(overrides?: CallOverrides): Promise<[BigNumber]>;
root(overrides?: CallOverrides): Promise<[string]>;
tree(
overrides?: CallOverrides
): Promise<[BigNumber] & { count: BigNumber }>;
};
count(overrides?: CallOverrides): Promise<BigNumber>;
root(overrides?: CallOverrides): Promise<string>;
tree(overrides?: CallOverrides): Promise<BigNumber>;
callStatic: {
count(overrides?: CallOverrides): Promise<BigNumber>;
root(overrides?: CallOverrides): Promise<string>;
tree(overrides?: CallOverrides): Promise<BigNumber>;
};
filters: {};
estimateGas: {
count(overrides?: CallOverrides): Promise<BigNumber>;
root(overrides?: CallOverrides): Promise<BigNumber>;
tree(overrides?: CallOverrides): Promise<BigNumber>;
};
populateTransaction: {
count(overrides?: CallOverrides): Promise<PopulatedTransaction>;
root(overrides?: CallOverrides): Promise<PopulatedTransaction>;
tree(overrides?: CallOverrides): Promise<PopulatedTransaction>;
};
}

@ -0,0 +1,173 @@
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import {
ethers,
EventFilter,
Signer,
BigNumber,
BigNumberish,
PopulatedTransaction,
BaseContract,
ContractTransaction,
Overrides,
CallOverrides,
} from "ethers";
import { BytesLike } from "@ethersproject/bytes";
import { Listener, Provider } from "@ethersproject/providers";
import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi";
import { TypedEventFilter, TypedEvent, TypedListener } from "./commons";
interface MysteryMathInterface extends ethers.utils.Interface {
functions: {
"doMath(uint256,uint256)": FunctionFragment;
"getState()": FunctionFragment;
"setState(uint256)": FunctionFragment;
"stateVar()": FunctionFragment;
};
encodeFunctionData(
functionFragment: "doMath",
values: [BigNumberish, BigNumberish]
): string;
encodeFunctionData(functionFragment: "getState", values?: undefined): string;
encodeFunctionData(
functionFragment: "setState",
values: [BigNumberish]
): string;
encodeFunctionData(functionFragment: "stateVar", values?: undefined): string;
decodeFunctionResult(functionFragment: "doMath", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "getState", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "setState", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "stateVar", data: BytesLike): Result;
events: {};
}
export class MysteryMath extends BaseContract {
connect(signerOrProvider: Signer | Provider | string): this;
attach(addressOrName: string): this;
deployed(): Promise<this>;
listeners<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter?: TypedEventFilter<EventArgsArray, EventArgsObject>
): Array<TypedListener<EventArgsArray, EventArgsObject>>;
off<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
on<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
once<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
removeListener<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
removeAllListeners<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>
): this;
listeners(eventName?: string): Array<Listener>;
off(eventName: string, listener: Listener): this;
on(eventName: string, listener: Listener): this;
once(eventName: string, listener: Listener): this;
removeListener(eventName: string, listener: Listener): this;
removeAllListeners(eventName?: string): this;
queryFilter<EventArgsArray extends Array<any>, EventArgsObject>(
event: TypedEventFilter<EventArgsArray, EventArgsObject>,
fromBlockOrBlockhash?: string | number | undefined,
toBlock?: string | number | undefined
): Promise<Array<TypedEvent<EventArgsArray & EventArgsObject>>>;
interface: MysteryMathInterface;
functions: {
doMath(
a: BigNumberish,
b: BigNumberish,
overrides?: CallOverrides
): Promise<[BigNumber] & { _result: BigNumber }>;
getState(overrides?: CallOverrides): Promise<[BigNumber]>;
setState(
_var: BigNumberish,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
stateVar(overrides?: CallOverrides): Promise<[BigNumber]>;
};
doMath(
a: BigNumberish,
b: BigNumberish,
overrides?: CallOverrides
): Promise<BigNumber>;
getState(overrides?: CallOverrides): Promise<BigNumber>;
setState(
_var: BigNumberish,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
stateVar(overrides?: CallOverrides): Promise<BigNumber>;
callStatic: {
doMath(
a: BigNumberish,
b: BigNumberish,
overrides?: CallOverrides
): Promise<BigNumber>;
getState(overrides?: CallOverrides): Promise<BigNumber>;
setState(_var: BigNumberish, overrides?: CallOverrides): Promise<void>;
stateVar(overrides?: CallOverrides): Promise<BigNumber>;
};
filters: {};
estimateGas: {
doMath(
a: BigNumberish,
b: BigNumberish,
overrides?: CallOverrides
): Promise<BigNumber>;
getState(overrides?: CallOverrides): Promise<BigNumber>;
setState(
_var: BigNumberish,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
stateVar(overrides?: CallOverrides): Promise<BigNumber>;
};
populateTransaction: {
doMath(
a: BigNumberish,
b: BigNumberish,
overrides?: CallOverrides
): Promise<PopulatedTransaction>;
getState(overrides?: CallOverrides): Promise<PopulatedTransaction>;
setState(
_var: BigNumberish,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
stateVar(overrides?: CallOverrides): Promise<PopulatedTransaction>;
};
}

@ -0,0 +1,186 @@
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import {
ethers,
EventFilter,
Signer,
BigNumber,
BigNumberish,
PopulatedTransaction,
BaseContract,
ContractTransaction,
Overrides,
CallOverrides,
} from "ethers";
import { BytesLike } from "@ethersproject/bytes";
import { Listener, Provider } from "@ethersproject/providers";
import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi";
import { TypedEventFilter, TypedEvent, TypedListener } from "./commons";
interface MysteryMathV1Interface extends ethers.utils.Interface {
functions: {
"doMath(uint256,uint256)": FunctionFragment;
"getState()": FunctionFragment;
"setState(uint256)": FunctionFragment;
"stateVar()": FunctionFragment;
"version()": FunctionFragment;
};
encodeFunctionData(
functionFragment: "doMath",
values: [BigNumberish, BigNumberish]
): string;
encodeFunctionData(functionFragment: "getState", values?: undefined): string;
encodeFunctionData(
functionFragment: "setState",
values: [BigNumberish]
): string;
encodeFunctionData(functionFragment: "stateVar", values?: undefined): string;
encodeFunctionData(functionFragment: "version", values?: undefined): string;
decodeFunctionResult(functionFragment: "doMath", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "getState", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "setState", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "stateVar", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "version", data: BytesLike): Result;
events: {};
}
export class MysteryMathV1 extends BaseContract {
connect(signerOrProvider: Signer | Provider | string): this;
attach(addressOrName: string): this;
deployed(): Promise<this>;
listeners<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter?: TypedEventFilter<EventArgsArray, EventArgsObject>
): Array<TypedListener<EventArgsArray, EventArgsObject>>;
off<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
on<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
once<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
removeListener<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
removeAllListeners<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>
): this;
listeners(eventName?: string): Array<Listener>;
off(eventName: string, listener: Listener): this;
on(eventName: string, listener: Listener): this;
once(eventName: string, listener: Listener): this;
removeListener(eventName: string, listener: Listener): this;
removeAllListeners(eventName?: string): this;
queryFilter<EventArgsArray extends Array<any>, EventArgsObject>(
event: TypedEventFilter<EventArgsArray, EventArgsObject>,
fromBlockOrBlockhash?: string | number | undefined,
toBlock?: string | number | undefined
): Promise<Array<TypedEvent<EventArgsArray & EventArgsObject>>>;
interface: MysteryMathV1Interface;
functions: {
doMath(
a: BigNumberish,
b: BigNumberish,
overrides?: CallOverrides
): Promise<[BigNumber] & { _result: BigNumber }>;
getState(overrides?: CallOverrides): Promise<[BigNumber]>;
setState(
_var: BigNumberish,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
stateVar(overrides?: CallOverrides): Promise<[BigNumber]>;
version(overrides?: CallOverrides): Promise<[number]>;
};
doMath(
a: BigNumberish,
b: BigNumberish,
overrides?: CallOverrides
): Promise<BigNumber>;
getState(overrides?: CallOverrides): Promise<BigNumber>;
setState(
_var: BigNumberish,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
stateVar(overrides?: CallOverrides): Promise<BigNumber>;
version(overrides?: CallOverrides): Promise<number>;
callStatic: {
doMath(
a: BigNumberish,
b: BigNumberish,
overrides?: CallOverrides
): Promise<BigNumber>;
getState(overrides?: CallOverrides): Promise<BigNumber>;
setState(_var: BigNumberish, overrides?: CallOverrides): Promise<void>;
stateVar(overrides?: CallOverrides): Promise<BigNumber>;
version(overrides?: CallOverrides): Promise<number>;
};
filters: {};
estimateGas: {
doMath(
a: BigNumberish,
b: BigNumberish,
overrides?: CallOverrides
): Promise<BigNumber>;
getState(overrides?: CallOverrides): Promise<BigNumber>;
setState(
_var: BigNumberish,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
stateVar(overrides?: CallOverrides): Promise<BigNumber>;
version(overrides?: CallOverrides): Promise<BigNumber>;
};
populateTransaction: {
doMath(
a: BigNumberish,
b: BigNumberish,
overrides?: CallOverrides
): Promise<PopulatedTransaction>;
getState(overrides?: CallOverrides): Promise<PopulatedTransaction>;
setState(
_var: BigNumberish,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
stateVar(overrides?: CallOverrides): Promise<PopulatedTransaction>;
version(overrides?: CallOverrides): Promise<PopulatedTransaction>;
};
}

@ -0,0 +1,186 @@
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import {
ethers,
EventFilter,
Signer,
BigNumber,
BigNumberish,
PopulatedTransaction,
BaseContract,
ContractTransaction,
Overrides,
CallOverrides,
} from "ethers";
import { BytesLike } from "@ethersproject/bytes";
import { Listener, Provider } from "@ethersproject/providers";
import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi";
import { TypedEventFilter, TypedEvent, TypedListener } from "./commons";
interface MysteryMathV2Interface extends ethers.utils.Interface {
functions: {
"doMath(uint256,uint256)": FunctionFragment;
"getState()": FunctionFragment;
"setState(uint256)": FunctionFragment;
"stateVar()": FunctionFragment;
"version()": FunctionFragment;
};
encodeFunctionData(
functionFragment: "doMath",
values: [BigNumberish, BigNumberish]
): string;
encodeFunctionData(functionFragment: "getState", values?: undefined): string;
encodeFunctionData(
functionFragment: "setState",
values: [BigNumberish]
): string;
encodeFunctionData(functionFragment: "stateVar", values?: undefined): string;
encodeFunctionData(functionFragment: "version", values?: undefined): string;
decodeFunctionResult(functionFragment: "doMath", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "getState", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "setState", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "stateVar", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "version", data: BytesLike): Result;
events: {};
}
export class MysteryMathV2 extends BaseContract {
connect(signerOrProvider: Signer | Provider | string): this;
attach(addressOrName: string): this;
deployed(): Promise<this>;
listeners<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter?: TypedEventFilter<EventArgsArray, EventArgsObject>
): Array<TypedListener<EventArgsArray, EventArgsObject>>;
off<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
on<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
once<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
removeListener<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
removeAllListeners<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>
): this;
listeners(eventName?: string): Array<Listener>;
off(eventName: string, listener: Listener): this;
on(eventName: string, listener: Listener): this;
once(eventName: string, listener: Listener): this;
removeListener(eventName: string, listener: Listener): this;
removeAllListeners(eventName?: string): this;
queryFilter<EventArgsArray extends Array<any>, EventArgsObject>(
event: TypedEventFilter<EventArgsArray, EventArgsObject>,
fromBlockOrBlockhash?: string | number | undefined,
toBlock?: string | number | undefined
): Promise<Array<TypedEvent<EventArgsArray & EventArgsObject>>>;
interface: MysteryMathV2Interface;
functions: {
doMath(
a: BigNumberish,
b: BigNumberish,
overrides?: CallOverrides
): Promise<[BigNumber] & { _result: BigNumber }>;
getState(overrides?: CallOverrides): Promise<[BigNumber]>;
setState(
_var: BigNumberish,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
stateVar(overrides?: CallOverrides): Promise<[BigNumber]>;
version(overrides?: CallOverrides): Promise<[number]>;
};
doMath(
a: BigNumberish,
b: BigNumberish,
overrides?: CallOverrides
): Promise<BigNumber>;
getState(overrides?: CallOverrides): Promise<BigNumber>;
setState(
_var: BigNumberish,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
stateVar(overrides?: CallOverrides): Promise<BigNumber>;
version(overrides?: CallOverrides): Promise<number>;
callStatic: {
doMath(
a: BigNumberish,
b: BigNumberish,
overrides?: CallOverrides
): Promise<BigNumber>;
getState(overrides?: CallOverrides): Promise<BigNumber>;
setState(_var: BigNumberish, overrides?: CallOverrides): Promise<void>;
stateVar(overrides?: CallOverrides): Promise<BigNumber>;
version(overrides?: CallOverrides): Promise<number>;
};
filters: {};
estimateGas: {
doMath(
a: BigNumberish,
b: BigNumberish,
overrides?: CallOverrides
): Promise<BigNumber>;
getState(overrides?: CallOverrides): Promise<BigNumber>;
setState(
_var: BigNumberish,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
stateVar(overrides?: CallOverrides): Promise<BigNumber>;
version(overrides?: CallOverrides): Promise<BigNumber>;
};
populateTransaction: {
doMath(
a: BigNumberish,
b: BigNumberish,
overrides?: CallOverrides
): Promise<PopulatedTransaction>;
getState(overrides?: CallOverrides): Promise<PopulatedTransaction>;
setState(
_var: BigNumberish,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
stateVar(overrides?: CallOverrides): Promise<PopulatedTransaction>;
version(overrides?: CallOverrides): Promise<PopulatedTransaction>;
};
}

@ -0,0 +1,169 @@
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import {
ethers,
EventFilter,
Signer,
BigNumber,
BigNumberish,
PopulatedTransaction,
BaseContract,
ContractTransaction,
Overrides,
CallOverrides,
} from "ethers";
import { BytesLike } from "@ethersproject/bytes";
import { Listener, Provider } from "@ethersproject/providers";
import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi";
import { TypedEventFilter, TypedEvent, TypedListener } from "./commons";
interface OwnableInterface extends ethers.utils.Interface {
functions: {
"owner()": FunctionFragment;
"renounceOwnership()": FunctionFragment;
"transferOwnership(address)": FunctionFragment;
};
encodeFunctionData(functionFragment: "owner", values?: undefined): string;
encodeFunctionData(
functionFragment: "renounceOwnership",
values?: undefined
): string;
encodeFunctionData(
functionFragment: "transferOwnership",
values: [string]
): string;
decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result;
decodeFunctionResult(
functionFragment: "renounceOwnership",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "transferOwnership",
data: BytesLike
): Result;
events: {
"OwnershipTransferred(address,address)": EventFragment;
};
getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment;
}
export class Ownable extends BaseContract {
connect(signerOrProvider: Signer | Provider | string): this;
attach(addressOrName: string): this;
deployed(): Promise<this>;
listeners<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter?: TypedEventFilter<EventArgsArray, EventArgsObject>
): Array<TypedListener<EventArgsArray, EventArgsObject>>;
off<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
on<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
once<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
removeListener<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
removeAllListeners<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>
): this;
listeners(eventName?: string): Array<Listener>;
off(eventName: string, listener: Listener): this;
on(eventName: string, listener: Listener): this;
once(eventName: string, listener: Listener): this;
removeListener(eventName: string, listener: Listener): this;
removeAllListeners(eventName?: string): this;
queryFilter<EventArgsArray extends Array<any>, EventArgsObject>(
event: TypedEventFilter<EventArgsArray, EventArgsObject>,
fromBlockOrBlockhash?: string | number | undefined,
toBlock?: string | number | undefined
): Promise<Array<TypedEvent<EventArgsArray & EventArgsObject>>>;
interface: OwnableInterface;
functions: {
owner(overrides?: CallOverrides): Promise<[string]>;
renounceOwnership(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
transferOwnership(
newOwner: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
};
owner(overrides?: CallOverrides): Promise<string>;
renounceOwnership(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
transferOwnership(
newOwner: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
callStatic: {
owner(overrides?: CallOverrides): Promise<string>;
renounceOwnership(overrides?: CallOverrides): Promise<void>;
transferOwnership(
newOwner: string,
overrides?: CallOverrides
): Promise<void>;
};
filters: {
OwnershipTransferred(
previousOwner?: string | null,
newOwner?: string | null
): TypedEventFilter<
[string, string],
{ previousOwner: string; newOwner: string }
>;
};
estimateGas: {
owner(overrides?: CallOverrides): Promise<BigNumber>;
renounceOwnership(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
transferOwnership(
newOwner: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
};
populateTransaction: {
owner(overrides?: CallOverrides): Promise<PopulatedTransaction>;
renounceOwnership(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
transferOwnership(
newOwner: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
};
}

@ -0,0 +1,169 @@
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import {
ethers,
EventFilter,
Signer,
BigNumber,
BigNumberish,
PopulatedTransaction,
BaseContract,
ContractTransaction,
Overrides,
CallOverrides,
} from "ethers";
import { BytesLike } from "@ethersproject/bytes";
import { Listener, Provider } from "@ethersproject/providers";
import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi";
import { TypedEventFilter, TypedEvent, TypedListener } from "./commons";
interface OwnableUpgradeableInterface extends ethers.utils.Interface {
functions: {
"owner()": FunctionFragment;
"renounceOwnership()": FunctionFragment;
"transferOwnership(address)": FunctionFragment;
};
encodeFunctionData(functionFragment: "owner", values?: undefined): string;
encodeFunctionData(
functionFragment: "renounceOwnership",
values?: undefined
): string;
encodeFunctionData(
functionFragment: "transferOwnership",
values: [string]
): string;
decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result;
decodeFunctionResult(
functionFragment: "renounceOwnership",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "transferOwnership",
data: BytesLike
): Result;
events: {
"OwnershipTransferred(address,address)": EventFragment;
};
getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment;
}
export class OwnableUpgradeable extends BaseContract {
connect(signerOrProvider: Signer | Provider | string): this;
attach(addressOrName: string): this;
deployed(): Promise<this>;
listeners<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter?: TypedEventFilter<EventArgsArray, EventArgsObject>
): Array<TypedListener<EventArgsArray, EventArgsObject>>;
off<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
on<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
once<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
removeListener<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
removeAllListeners<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>
): this;
listeners(eventName?: string): Array<Listener>;
off(eventName: string, listener: Listener): this;
on(eventName: string, listener: Listener): this;
once(eventName: string, listener: Listener): this;
removeListener(eventName: string, listener: Listener): this;
removeAllListeners(eventName?: string): this;
queryFilter<EventArgsArray extends Array<any>, EventArgsObject>(
event: TypedEventFilter<EventArgsArray, EventArgsObject>,
fromBlockOrBlockhash?: string | number | undefined,
toBlock?: string | number | undefined
): Promise<Array<TypedEvent<EventArgsArray & EventArgsObject>>>;
interface: OwnableUpgradeableInterface;
functions: {
owner(overrides?: CallOverrides): Promise<[string]>;
renounceOwnership(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
transferOwnership(
newOwner: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
};
owner(overrides?: CallOverrides): Promise<string>;
renounceOwnership(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
transferOwnership(
newOwner: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
callStatic: {
owner(overrides?: CallOverrides): Promise<string>;
renounceOwnership(overrides?: CallOverrides): Promise<void>;
transferOwnership(
newOwner: string,
overrides?: CallOverrides
): Promise<void>;
};
filters: {
OwnershipTransferred(
previousOwner?: string | null,
newOwner?: string | null
): TypedEventFilter<
[string, string],
{ previousOwner: string; newOwner: string }
>;
};
estimateGas: {
owner(overrides?: CallOverrides): Promise<BigNumber>;
renounceOwnership(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
transferOwnership(
newOwner: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
};
populateTransaction: {
owner(overrides?: CallOverrides): Promise<PopulatedTransaction>;
renounceOwnership(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
transferOwnership(
newOwner: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
};
}

@ -0,0 +1,145 @@
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import {
ethers,
EventFilter,
Signer,
BigNumber,
BigNumberish,
PopulatedTransaction,
BaseContract,
ContractTransaction,
CallOverrides,
} from "ethers";
import { BytesLike } from "@ethersproject/bytes";
import { Listener, Provider } from "@ethersproject/providers";
import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi";
import { TypedEventFilter, TypedEvent, TypedListener } from "./commons";
interface QueueManagerInterface extends ethers.utils.Interface {
functions: {
"queueContains(bytes32)": FunctionFragment;
"queueEnd()": FunctionFragment;
"queueLength()": FunctionFragment;
};
encodeFunctionData(
functionFragment: "queueContains",
values: [BytesLike]
): string;
encodeFunctionData(functionFragment: "queueEnd", values?: undefined): string;
encodeFunctionData(
functionFragment: "queueLength",
values?: undefined
): string;
decodeFunctionResult(
functionFragment: "queueContains",
data: BytesLike
): Result;
decodeFunctionResult(functionFragment: "queueEnd", data: BytesLike): Result;
decodeFunctionResult(
functionFragment: "queueLength",
data: BytesLike
): Result;
events: {};
}
export class QueueManager extends BaseContract {
connect(signerOrProvider: Signer | Provider | string): this;
attach(addressOrName: string): this;
deployed(): Promise<this>;
listeners<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter?: TypedEventFilter<EventArgsArray, EventArgsObject>
): Array<TypedListener<EventArgsArray, EventArgsObject>>;
off<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
on<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
once<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
removeListener<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
removeAllListeners<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>
): this;
listeners(eventName?: string): Array<Listener>;
off(eventName: string, listener: Listener): this;
on(eventName: string, listener: Listener): this;
once(eventName: string, listener: Listener): this;
removeListener(eventName: string, listener: Listener): this;
removeAllListeners(eventName?: string): this;
queryFilter<EventArgsArray extends Array<any>, EventArgsObject>(
event: TypedEventFilter<EventArgsArray, EventArgsObject>,
fromBlockOrBlockhash?: string | number | undefined,
toBlock?: string | number | undefined
): Promise<Array<TypedEvent<EventArgsArray & EventArgsObject>>>;
interface: QueueManagerInterface;
functions: {
queueContains(
_item: BytesLike,
overrides?: CallOverrides
): Promise<[boolean]>;
queueEnd(overrides?: CallOverrides): Promise<[string]>;
queueLength(overrides?: CallOverrides): Promise<[BigNumber]>;
};
queueContains(_item: BytesLike, overrides?: CallOverrides): Promise<boolean>;
queueEnd(overrides?: CallOverrides): Promise<string>;
queueLength(overrides?: CallOverrides): Promise<BigNumber>;
callStatic: {
queueContains(
_item: BytesLike,
overrides?: CallOverrides
): Promise<boolean>;
queueEnd(overrides?: CallOverrides): Promise<string>;
queueLength(overrides?: CallOverrides): Promise<BigNumber>;
};
filters: {};
estimateGas: {
queueContains(
_item: BytesLike,
overrides?: CallOverrides
): Promise<BigNumber>;
queueEnd(overrides?: CallOverrides): Promise<BigNumber>;
queueLength(overrides?: CallOverrides): Promise<BigNumber>;
};
populateTransaction: {
queueContains(
_item: BytesLike,
overrides?: CallOverrides
): Promise<PopulatedTransaction>;
queueEnd(overrides?: CallOverrides): Promise<PopulatedTransaction>;
queueLength(overrides?: CallOverrides): Promise<PopulatedTransaction>;
};
}

File diff suppressed because it is too large Load Diff

@ -0,0 +1,324 @@
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import {
ethers,
EventFilter,
Signer,
BigNumber,
BigNumberish,
PopulatedTransaction,
BaseContract,
ContractTransaction,
Overrides,
CallOverrides,
} from "ethers";
import { BytesLike } from "@ethersproject/bytes";
import { Listener, Provider } from "@ethersproject/providers";
import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi";
import { TypedEventFilter, TypedEvent, TypedListener } from "./commons";
interface TestCommonInterface extends ethers.utils.Interface {
functions: {
"committedRoot()": FunctionFragment;
"doubleUpdate(bytes32,bytes32[2],bytes,bytes)": FunctionFragment;
"homeDomainHash()": FunctionFragment;
"localDomain()": FunctionFragment;
"setUpdater(address)": FunctionFragment;
"state()": FunctionFragment;
"testIsUpdaterSignature(bytes32,bytes32,bytes)": FunctionFragment;
"updater()": FunctionFragment;
};
encodeFunctionData(
functionFragment: "committedRoot",
values?: undefined
): string;
encodeFunctionData(
functionFragment: "doubleUpdate",
values: [BytesLike, [BytesLike, BytesLike], BytesLike, BytesLike]
): string;
encodeFunctionData(
functionFragment: "homeDomainHash",
values?: undefined
): string;
encodeFunctionData(
functionFragment: "localDomain",
values?: undefined
): string;
encodeFunctionData(functionFragment: "setUpdater", values: [string]): string;
encodeFunctionData(functionFragment: "state", values?: undefined): string;
encodeFunctionData(
functionFragment: "testIsUpdaterSignature",
values: [BytesLike, BytesLike, BytesLike]
): string;
encodeFunctionData(functionFragment: "updater", values?: undefined): string;
decodeFunctionResult(
functionFragment: "committedRoot",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "doubleUpdate",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "homeDomainHash",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "localDomain",
data: BytesLike
): Result;
decodeFunctionResult(functionFragment: "setUpdater", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "state", data: BytesLike): Result;
decodeFunctionResult(
functionFragment: "testIsUpdaterSignature",
data: BytesLike
): Result;
decodeFunctionResult(functionFragment: "updater", data: BytesLike): Result;
events: {
"DoubleUpdate(bytes32,bytes32[2],bytes,bytes)": EventFragment;
"NewUpdater(address)": EventFragment;
"Update(uint32,bytes32,bytes32,bytes)": EventFragment;
};
getEvent(nameOrSignatureOrTopic: "DoubleUpdate"): EventFragment;
getEvent(nameOrSignatureOrTopic: "NewUpdater"): EventFragment;
getEvent(nameOrSignatureOrTopic: "Update"): EventFragment;
}
export class TestCommon extends BaseContract {
connect(signerOrProvider: Signer | Provider | string): this;
attach(addressOrName: string): this;
deployed(): Promise<this>;
listeners<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter?: TypedEventFilter<EventArgsArray, EventArgsObject>
): Array<TypedListener<EventArgsArray, EventArgsObject>>;
off<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
on<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
once<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
removeListener<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
removeAllListeners<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>
): this;
listeners(eventName?: string): Array<Listener>;
off(eventName: string, listener: Listener): this;
on(eventName: string, listener: Listener): this;
once(eventName: string, listener: Listener): this;
removeListener(eventName: string, listener: Listener): this;
removeAllListeners(eventName?: string): this;
queryFilter<EventArgsArray extends Array<any>, EventArgsObject>(
event: TypedEventFilter<EventArgsArray, EventArgsObject>,
fromBlockOrBlockhash?: string | number | undefined,
toBlock?: string | number | undefined
): Promise<Array<TypedEvent<EventArgsArray & EventArgsObject>>>;
interface: TestCommonInterface;
functions: {
committedRoot(overrides?: CallOverrides): Promise<[string]>;
doubleUpdate(
_oldRoot: BytesLike,
_newRoot: [BytesLike, BytesLike],
_signature: BytesLike,
_signature2: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
homeDomainHash(overrides?: CallOverrides): Promise<[string]>;
localDomain(overrides?: CallOverrides): Promise<[number]>;
setUpdater(
_updater: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
state(overrides?: CallOverrides): Promise<[number]>;
testIsUpdaterSignature(
_oldRoot: BytesLike,
_newRoot: BytesLike,
_signature: BytesLike,
overrides?: CallOverrides
): Promise<[boolean]>;
updater(overrides?: CallOverrides): Promise<[string]>;
};
committedRoot(overrides?: CallOverrides): Promise<string>;
doubleUpdate(
_oldRoot: BytesLike,
_newRoot: [BytesLike, BytesLike],
_signature: BytesLike,
_signature2: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
homeDomainHash(overrides?: CallOverrides): Promise<string>;
localDomain(overrides?: CallOverrides): Promise<number>;
setUpdater(
_updater: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
state(overrides?: CallOverrides): Promise<number>;
testIsUpdaterSignature(
_oldRoot: BytesLike,
_newRoot: BytesLike,
_signature: BytesLike,
overrides?: CallOverrides
): Promise<boolean>;
updater(overrides?: CallOverrides): Promise<string>;
callStatic: {
committedRoot(overrides?: CallOverrides): Promise<string>;
doubleUpdate(
_oldRoot: BytesLike,
_newRoot: [BytesLike, BytesLike],
_signature: BytesLike,
_signature2: BytesLike,
overrides?: CallOverrides
): Promise<void>;
homeDomainHash(overrides?: CallOverrides): Promise<string>;
localDomain(overrides?: CallOverrides): Promise<number>;
setUpdater(_updater: string, overrides?: CallOverrides): Promise<void>;
state(overrides?: CallOverrides): Promise<number>;
testIsUpdaterSignature(
_oldRoot: BytesLike,
_newRoot: BytesLike,
_signature: BytesLike,
overrides?: CallOverrides
): Promise<boolean>;
updater(overrides?: CallOverrides): Promise<string>;
};
filters: {
DoubleUpdate(
oldRoot?: null,
newRoot?: null,
signature?: null,
signature2?: null
): TypedEventFilter<
[string, [string, string], string, string],
{
oldRoot: string;
newRoot: [string, string];
signature: string;
signature2: string;
}
>;
NewUpdater(updater?: null): TypedEventFilter<[string], { updater: string }>;
Update(
homeDomain?: BigNumberish | null,
oldRoot?: BytesLike | null,
newRoot?: BytesLike | null,
signature?: null
): TypedEventFilter<
[number, string, string, string],
{
homeDomain: number;
oldRoot: string;
newRoot: string;
signature: string;
}
>;
};
estimateGas: {
committedRoot(overrides?: CallOverrides): Promise<BigNumber>;
doubleUpdate(
_oldRoot: BytesLike,
_newRoot: [BytesLike, BytesLike],
_signature: BytesLike,
_signature2: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
homeDomainHash(overrides?: CallOverrides): Promise<BigNumber>;
localDomain(overrides?: CallOverrides): Promise<BigNumber>;
setUpdater(
_updater: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
state(overrides?: CallOverrides): Promise<BigNumber>;
testIsUpdaterSignature(
_oldRoot: BytesLike,
_newRoot: BytesLike,
_signature: BytesLike,
overrides?: CallOverrides
): Promise<BigNumber>;
updater(overrides?: CallOverrides): Promise<BigNumber>;
};
populateTransaction: {
committedRoot(overrides?: CallOverrides): Promise<PopulatedTransaction>;
doubleUpdate(
_oldRoot: BytesLike,
_newRoot: [BytesLike, BytesLike],
_signature: BytesLike,
_signature2: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
homeDomainHash(overrides?: CallOverrides): Promise<PopulatedTransaction>;
localDomain(overrides?: CallOverrides): Promise<PopulatedTransaction>;
setUpdater(
_updater: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
state(overrides?: CallOverrides): Promise<PopulatedTransaction>;
testIsUpdaterSignature(
_oldRoot: BytesLike,
_newRoot: BytesLike,
_signature: BytesLike,
overrides?: CallOverrides
): Promise<PopulatedTransaction>;
updater(overrides?: CallOverrides): Promise<PopulatedTransaction>;
};
}

@ -0,0 +1,788 @@
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import {
ethers,
EventFilter,
Signer,
BigNumber,
BigNumberish,
PopulatedTransaction,
BaseContract,
ContractTransaction,
Overrides,
CallOverrides,
} from "ethers";
import { BytesLike } from "@ethersproject/bytes";
import { Listener, Provider } from "@ethersproject/providers";
import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi";
import { TypedEventFilter, TypedEvent, TypedListener } from "./commons";
interface TestGovernanceRouterInterface extends ethers.utils.Interface {
functions: {
"VERSION()": FunctionFragment;
"callLocal(tuple[])": FunctionFragment;
"callRemote(uint32,tuple[])": FunctionFragment;
"containsDomain(uint32)": FunctionFragment;
"domains(uint256)": FunctionFragment;
"exitRecovery()": FunctionFragment;
"governor()": FunctionFragment;
"governorDomain()": FunctionFragment;
"handle(uint32,bytes32,bytes)": FunctionFragment;
"inRecovery()": FunctionFragment;
"initialize(address,address)": FunctionFragment;
"initiateRecoveryTimelock()": FunctionFragment;
"localDomain()": FunctionFragment;
"recoveryActiveAt()": FunctionFragment;
"recoveryManager()": FunctionFragment;
"recoveryTimelock()": FunctionFragment;
"routers(uint32)": FunctionFragment;
"setRouter(uint32,bytes32)": FunctionFragment;
"setRouterLocal(uint32,bytes32)": FunctionFragment;
"setXAppConnectionManager(address)": FunctionFragment;
"testSetRouter(uint32,bytes32)": FunctionFragment;
"transferGovernor(uint32,address)": FunctionFragment;
"transferRecoveryManager(address)": FunctionFragment;
"xAppConnectionManager()": FunctionFragment;
};
encodeFunctionData(functionFragment: "VERSION", values?: undefined): string;
encodeFunctionData(
functionFragment: "callLocal",
values: [{ to: BytesLike; data: BytesLike }[]]
): string;
encodeFunctionData(
functionFragment: "callRemote",
values: [BigNumberish, { to: BytesLike; data: BytesLike }[]]
): string;
encodeFunctionData(
functionFragment: "containsDomain",
values: [BigNumberish]
): string;
encodeFunctionData(
functionFragment: "domains",
values: [BigNumberish]
): string;
encodeFunctionData(
functionFragment: "exitRecovery",
values?: undefined
): string;
encodeFunctionData(functionFragment: "governor", values?: undefined): string;
encodeFunctionData(
functionFragment: "governorDomain",
values?: undefined
): string;
encodeFunctionData(
functionFragment: "handle",
values: [BigNumberish, BytesLike, BytesLike]
): string;
encodeFunctionData(
functionFragment: "inRecovery",
values?: undefined
): string;
encodeFunctionData(
functionFragment: "initialize",
values: [string, string]
): string;
encodeFunctionData(
functionFragment: "initiateRecoveryTimelock",
values?: undefined
): string;
encodeFunctionData(
functionFragment: "localDomain",
values?: undefined
): string;
encodeFunctionData(
functionFragment: "recoveryActiveAt",
values?: undefined
): string;
encodeFunctionData(
functionFragment: "recoveryManager",
values?: undefined
): string;
encodeFunctionData(
functionFragment: "recoveryTimelock",
values?: undefined
): string;
encodeFunctionData(
functionFragment: "routers",
values: [BigNumberish]
): string;
encodeFunctionData(
functionFragment: "setRouter",
values: [BigNumberish, BytesLike]
): string;
encodeFunctionData(
functionFragment: "setRouterLocal",
values: [BigNumberish, BytesLike]
): string;
encodeFunctionData(
functionFragment: "setXAppConnectionManager",
values: [string]
): string;
encodeFunctionData(
functionFragment: "testSetRouter",
values: [BigNumberish, BytesLike]
): string;
encodeFunctionData(
functionFragment: "transferGovernor",
values: [BigNumberish, string]
): string;
encodeFunctionData(
functionFragment: "transferRecoveryManager",
values: [string]
): string;
encodeFunctionData(
functionFragment: "xAppConnectionManager",
values?: undefined
): string;
decodeFunctionResult(functionFragment: "VERSION", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "callLocal", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "callRemote", data: BytesLike): Result;
decodeFunctionResult(
functionFragment: "containsDomain",
data: BytesLike
): Result;
decodeFunctionResult(functionFragment: "domains", data: BytesLike): Result;
decodeFunctionResult(
functionFragment: "exitRecovery",
data: BytesLike
): Result;
decodeFunctionResult(functionFragment: "governor", data: BytesLike): Result;
decodeFunctionResult(
functionFragment: "governorDomain",
data: BytesLike
): Result;
decodeFunctionResult(functionFragment: "handle", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "inRecovery", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result;
decodeFunctionResult(
functionFragment: "initiateRecoveryTimelock",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "localDomain",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "recoveryActiveAt",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "recoveryManager",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "recoveryTimelock",
data: BytesLike
): Result;
decodeFunctionResult(functionFragment: "routers", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "setRouter", data: BytesLike): Result;
decodeFunctionResult(
functionFragment: "setRouterLocal",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "setXAppConnectionManager",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "testSetRouter",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "transferGovernor",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "transferRecoveryManager",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "xAppConnectionManager",
data: BytesLike
): Result;
events: {
"ExitRecovery(address)": EventFragment;
"InitiateRecovery(address,uint256)": EventFragment;
"SetRouter(uint32,bytes32,bytes32)": EventFragment;
"TransferGovernor(uint32,uint32,address,address)": EventFragment;
"TransferRecoveryManager(address,address)": EventFragment;
};
getEvent(nameOrSignatureOrTopic: "ExitRecovery"): EventFragment;
getEvent(nameOrSignatureOrTopic: "InitiateRecovery"): EventFragment;
getEvent(nameOrSignatureOrTopic: "SetRouter"): EventFragment;
getEvent(nameOrSignatureOrTopic: "TransferGovernor"): EventFragment;
getEvent(nameOrSignatureOrTopic: "TransferRecoveryManager"): EventFragment;
}
export class TestGovernanceRouter extends BaseContract {
connect(signerOrProvider: Signer | Provider | string): this;
attach(addressOrName: string): this;
deployed(): Promise<this>;
listeners<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter?: TypedEventFilter<EventArgsArray, EventArgsObject>
): Array<TypedListener<EventArgsArray, EventArgsObject>>;
off<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
on<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
once<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
removeListener<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
removeAllListeners<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>
): this;
listeners(eventName?: string): Array<Listener>;
off(eventName: string, listener: Listener): this;
on(eventName: string, listener: Listener): this;
once(eventName: string, listener: Listener): this;
removeListener(eventName: string, listener: Listener): this;
removeAllListeners(eventName?: string): this;
queryFilter<EventArgsArray extends Array<any>, EventArgsObject>(
event: TypedEventFilter<EventArgsArray, EventArgsObject>,
fromBlockOrBlockhash?: string | number | undefined,
toBlock?: string | number | undefined
): Promise<Array<TypedEvent<EventArgsArray & EventArgsObject>>>;
interface: TestGovernanceRouterInterface;
functions: {
VERSION(overrides?: CallOverrides): Promise<[number]>;
callLocal(
_calls: { to: BytesLike; data: BytesLike }[],
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
callRemote(
_destination: BigNumberish,
_calls: { to: BytesLike; data: BytesLike }[],
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
containsDomain(
_domain: BigNumberish,
overrides?: CallOverrides
): Promise<[boolean]>;
domains(arg0: BigNumberish, overrides?: CallOverrides): Promise<[number]>;
exitRecovery(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
governor(overrides?: CallOverrides): Promise<[string]>;
governorDomain(overrides?: CallOverrides): Promise<[number]>;
handle(
_origin: BigNumberish,
_sender: BytesLike,
_message: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
inRecovery(overrides?: CallOverrides): Promise<[boolean]>;
initialize(
_xAppConnectionManager: string,
_recoveryManager: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
initiateRecoveryTimelock(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
localDomain(overrides?: CallOverrides): Promise<[number]>;
recoveryActiveAt(overrides?: CallOverrides): Promise<[BigNumber]>;
recoveryManager(overrides?: CallOverrides): Promise<[string]>;
recoveryTimelock(overrides?: CallOverrides): Promise<[BigNumber]>;
routers(arg0: BigNumberish, overrides?: CallOverrides): Promise<[string]>;
setRouter(
_domain: BigNumberish,
_router: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
setRouterLocal(
_domain: BigNumberish,
_router: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
setXAppConnectionManager(
_xAppConnectionManager: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
testSetRouter(
_domain: BigNumberish,
_router: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
transferGovernor(
_newDomain: BigNumberish,
_newGovernor: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
transferRecoveryManager(
_newRecoveryManager: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
xAppConnectionManager(overrides?: CallOverrides): Promise<[string]>;
};
VERSION(overrides?: CallOverrides): Promise<number>;
callLocal(
_calls: { to: BytesLike; data: BytesLike }[],
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
callRemote(
_destination: BigNumberish,
_calls: { to: BytesLike; data: BytesLike }[],
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
containsDomain(
_domain: BigNumberish,
overrides?: CallOverrides
): Promise<boolean>;
domains(arg0: BigNumberish, overrides?: CallOverrides): Promise<number>;
exitRecovery(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
governor(overrides?: CallOverrides): Promise<string>;
governorDomain(overrides?: CallOverrides): Promise<number>;
handle(
_origin: BigNumberish,
_sender: BytesLike,
_message: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
inRecovery(overrides?: CallOverrides): Promise<boolean>;
initialize(
_xAppConnectionManager: string,
_recoveryManager: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
initiateRecoveryTimelock(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
localDomain(overrides?: CallOverrides): Promise<number>;
recoveryActiveAt(overrides?: CallOverrides): Promise<BigNumber>;
recoveryManager(overrides?: CallOverrides): Promise<string>;
recoveryTimelock(overrides?: CallOverrides): Promise<BigNumber>;
routers(arg0: BigNumberish, overrides?: CallOverrides): Promise<string>;
setRouter(
_domain: BigNumberish,
_router: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
setRouterLocal(
_domain: BigNumberish,
_router: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
setXAppConnectionManager(
_xAppConnectionManager: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
testSetRouter(
_domain: BigNumberish,
_router: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
transferGovernor(
_newDomain: BigNumberish,
_newGovernor: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
transferRecoveryManager(
_newRecoveryManager: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
xAppConnectionManager(overrides?: CallOverrides): Promise<string>;
callStatic: {
VERSION(overrides?: CallOverrides): Promise<number>;
callLocal(
_calls: { to: BytesLike; data: BytesLike }[],
overrides?: CallOverrides
): Promise<void>;
callRemote(
_destination: BigNumberish,
_calls: { to: BytesLike; data: BytesLike }[],
overrides?: CallOverrides
): Promise<void>;
containsDomain(
_domain: BigNumberish,
overrides?: CallOverrides
): Promise<boolean>;
domains(arg0: BigNumberish, overrides?: CallOverrides): Promise<number>;
exitRecovery(overrides?: CallOverrides): Promise<void>;
governor(overrides?: CallOverrides): Promise<string>;
governorDomain(overrides?: CallOverrides): Promise<number>;
handle(
_origin: BigNumberish,
_sender: BytesLike,
_message: BytesLike,
overrides?: CallOverrides
): Promise<void>;
inRecovery(overrides?: CallOverrides): Promise<boolean>;
initialize(
_xAppConnectionManager: string,
_recoveryManager: string,
overrides?: CallOverrides
): Promise<void>;
initiateRecoveryTimelock(overrides?: CallOverrides): Promise<void>;
localDomain(overrides?: CallOverrides): Promise<number>;
recoveryActiveAt(overrides?: CallOverrides): Promise<BigNumber>;
recoveryManager(overrides?: CallOverrides): Promise<string>;
recoveryTimelock(overrides?: CallOverrides): Promise<BigNumber>;
routers(arg0: BigNumberish, overrides?: CallOverrides): Promise<string>;
setRouter(
_domain: BigNumberish,
_router: BytesLike,
overrides?: CallOverrides
): Promise<void>;
setRouterLocal(
_domain: BigNumberish,
_router: BytesLike,
overrides?: CallOverrides
): Promise<void>;
setXAppConnectionManager(
_xAppConnectionManager: string,
overrides?: CallOverrides
): Promise<void>;
testSetRouter(
_domain: BigNumberish,
_router: BytesLike,
overrides?: CallOverrides
): Promise<void>;
transferGovernor(
_newDomain: BigNumberish,
_newGovernor: string,
overrides?: CallOverrides
): Promise<void>;
transferRecoveryManager(
_newRecoveryManager: string,
overrides?: CallOverrides
): Promise<void>;
xAppConnectionManager(overrides?: CallOverrides): Promise<string>;
};
filters: {
ExitRecovery(
recoveryManager?: null
): TypedEventFilter<[string], { recoveryManager: string }>;
InitiateRecovery(
recoveryManager?: string | null,
recoveryActiveAt?: null
): TypedEventFilter<
[string, BigNumber],
{ recoveryManager: string; recoveryActiveAt: BigNumber }
>;
SetRouter(
domain?: BigNumberish | null,
previousRouter?: null,
newRouter?: null
): TypedEventFilter<
[number, string, string],
{ domain: number; previousRouter: string; newRouter: string }
>;
TransferGovernor(
previousGovernorDomain?: null,
newGovernorDomain?: null,
previousGovernor?: string | null,
newGovernor?: string | null
): TypedEventFilter<
[number, number, string, string],
{
previousGovernorDomain: number;
newGovernorDomain: number;
previousGovernor: string;
newGovernor: string;
}
>;
TransferRecoveryManager(
previousRecoveryManager?: string | null,
newRecoveryManager?: string | null
): TypedEventFilter<
[string, string],
{ previousRecoveryManager: string; newRecoveryManager: string }
>;
};
estimateGas: {
VERSION(overrides?: CallOverrides): Promise<BigNumber>;
callLocal(
_calls: { to: BytesLike; data: BytesLike }[],
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
callRemote(
_destination: BigNumberish,
_calls: { to: BytesLike; data: BytesLike }[],
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
containsDomain(
_domain: BigNumberish,
overrides?: CallOverrides
): Promise<BigNumber>;
domains(arg0: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
exitRecovery(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
governor(overrides?: CallOverrides): Promise<BigNumber>;
governorDomain(overrides?: CallOverrides): Promise<BigNumber>;
handle(
_origin: BigNumberish,
_sender: BytesLike,
_message: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
inRecovery(overrides?: CallOverrides): Promise<BigNumber>;
initialize(
_xAppConnectionManager: string,
_recoveryManager: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
initiateRecoveryTimelock(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
localDomain(overrides?: CallOverrides): Promise<BigNumber>;
recoveryActiveAt(overrides?: CallOverrides): Promise<BigNumber>;
recoveryManager(overrides?: CallOverrides): Promise<BigNumber>;
recoveryTimelock(overrides?: CallOverrides): Promise<BigNumber>;
routers(arg0: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
setRouter(
_domain: BigNumberish,
_router: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
setRouterLocal(
_domain: BigNumberish,
_router: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
setXAppConnectionManager(
_xAppConnectionManager: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
testSetRouter(
_domain: BigNumberish,
_router: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
transferGovernor(
_newDomain: BigNumberish,
_newGovernor: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
transferRecoveryManager(
_newRecoveryManager: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
xAppConnectionManager(overrides?: CallOverrides): Promise<BigNumber>;
};
populateTransaction: {
VERSION(overrides?: CallOverrides): Promise<PopulatedTransaction>;
callLocal(
_calls: { to: BytesLike; data: BytesLike }[],
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
callRemote(
_destination: BigNumberish,
_calls: { to: BytesLike; data: BytesLike }[],
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
containsDomain(
_domain: BigNumberish,
overrides?: CallOverrides
): Promise<PopulatedTransaction>;
domains(
arg0: BigNumberish,
overrides?: CallOverrides
): Promise<PopulatedTransaction>;
exitRecovery(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
governor(overrides?: CallOverrides): Promise<PopulatedTransaction>;
governorDomain(overrides?: CallOverrides): Promise<PopulatedTransaction>;
handle(
_origin: BigNumberish,
_sender: BytesLike,
_message: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
inRecovery(overrides?: CallOverrides): Promise<PopulatedTransaction>;
initialize(
_xAppConnectionManager: string,
_recoveryManager: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
initiateRecoveryTimelock(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
localDomain(overrides?: CallOverrides): Promise<PopulatedTransaction>;
recoveryActiveAt(overrides?: CallOverrides): Promise<PopulatedTransaction>;
recoveryManager(overrides?: CallOverrides): Promise<PopulatedTransaction>;
recoveryTimelock(overrides?: CallOverrides): Promise<PopulatedTransaction>;
routers(
arg0: BigNumberish,
overrides?: CallOverrides
): Promise<PopulatedTransaction>;
setRouter(
_domain: BigNumberish,
_router: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
setRouterLocal(
_domain: BigNumberish,
_router: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
setXAppConnectionManager(
_xAppConnectionManager: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
testSetRouter(
_domain: BigNumberish,
_router: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
transferGovernor(
_newDomain: BigNumberish,
_newGovernor: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
transferRecoveryManager(
_newRecoveryManager: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
xAppConnectionManager(
overrides?: CallOverrides
): Promise<PopulatedTransaction>;
};
}

@ -0,0 +1,859 @@
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import {
ethers,
EventFilter,
Signer,
BigNumber,
BigNumberish,
PopulatedTransaction,
BaseContract,
ContractTransaction,
Overrides,
CallOverrides,
} from "ethers";
import { BytesLike } from "@ethersproject/bytes";
import { Listener, Provider } from "@ethersproject/providers";
import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi";
import { TypedEventFilter, TypedEvent, TypedListener } from "./commons";
interface TestHomeInterface extends ethers.utils.Interface {
functions: {
"MAX_MESSAGE_BODY_BYTES()": FunctionFragment;
"VERSION()": FunctionFragment;
"committedRoot()": FunctionFragment;
"count()": FunctionFragment;
"destinationAndNonce(uint32,uint32)": FunctionFragment;
"dispatch(uint32,bytes32,bytes)": FunctionFragment;
"doubleUpdate(bytes32,bytes32[2],bytes,bytes)": FunctionFragment;
"homeDomainHash()": FunctionFragment;
"improperUpdate(bytes32,bytes32,bytes)": FunctionFragment;
"initialize(address)": FunctionFragment;
"localDomain()": FunctionFragment;
"nonces(uint32)": FunctionFragment;
"owner()": FunctionFragment;
"queueContains(bytes32)": FunctionFragment;
"queueEnd()": FunctionFragment;
"queueLength()": FunctionFragment;
"renounceOwnership()": FunctionFragment;
"root()": FunctionFragment;
"setFailed()": FunctionFragment;
"setUpdater(address)": FunctionFragment;
"setUpdaterManager(address)": FunctionFragment;
"state()": FunctionFragment;
"suggestUpdate()": FunctionFragment;
"transferOwnership(address)": FunctionFragment;
"tree()": FunctionFragment;
"update(bytes32,bytes32,bytes)": FunctionFragment;
"updater()": FunctionFragment;
"updaterManager()": FunctionFragment;
};
encodeFunctionData(
functionFragment: "MAX_MESSAGE_BODY_BYTES",
values?: undefined
): string;
encodeFunctionData(functionFragment: "VERSION", values?: undefined): string;
encodeFunctionData(
functionFragment: "committedRoot",
values?: undefined
): string;
encodeFunctionData(functionFragment: "count", values?: undefined): string;
encodeFunctionData(
functionFragment: "destinationAndNonce",
values: [BigNumberish, BigNumberish]
): string;
encodeFunctionData(
functionFragment: "dispatch",
values: [BigNumberish, BytesLike, BytesLike]
): string;
encodeFunctionData(
functionFragment: "doubleUpdate",
values: [BytesLike, [BytesLike, BytesLike], BytesLike, BytesLike]
): string;
encodeFunctionData(
functionFragment: "homeDomainHash",
values?: undefined
): string;
encodeFunctionData(
functionFragment: "improperUpdate",
values: [BytesLike, BytesLike, BytesLike]
): string;
encodeFunctionData(functionFragment: "initialize", values: [string]): string;
encodeFunctionData(
functionFragment: "localDomain",
values?: undefined
): string;
encodeFunctionData(
functionFragment: "nonces",
values: [BigNumberish]
): string;
encodeFunctionData(functionFragment: "owner", values?: undefined): string;
encodeFunctionData(
functionFragment: "queueContains",
values: [BytesLike]
): string;
encodeFunctionData(functionFragment: "queueEnd", values?: undefined): string;
encodeFunctionData(
functionFragment: "queueLength",
values?: undefined
): string;
encodeFunctionData(
functionFragment: "renounceOwnership",
values?: undefined
): string;
encodeFunctionData(functionFragment: "root", values?: undefined): string;
encodeFunctionData(functionFragment: "setFailed", values?: undefined): string;
encodeFunctionData(functionFragment: "setUpdater", values: [string]): string;
encodeFunctionData(
functionFragment: "setUpdaterManager",
values: [string]
): string;
encodeFunctionData(functionFragment: "state", values?: undefined): string;
encodeFunctionData(
functionFragment: "suggestUpdate",
values?: undefined
): string;
encodeFunctionData(
functionFragment: "transferOwnership",
values: [string]
): string;
encodeFunctionData(functionFragment: "tree", values?: undefined): string;
encodeFunctionData(
functionFragment: "update",
values: [BytesLike, BytesLike, BytesLike]
): string;
encodeFunctionData(functionFragment: "updater", values?: undefined): string;
encodeFunctionData(
functionFragment: "updaterManager",
values?: undefined
): string;
decodeFunctionResult(
functionFragment: "MAX_MESSAGE_BODY_BYTES",
data: BytesLike
): Result;
decodeFunctionResult(functionFragment: "VERSION", data: BytesLike): Result;
decodeFunctionResult(
functionFragment: "committedRoot",
data: BytesLike
): Result;
decodeFunctionResult(functionFragment: "count", data: BytesLike): Result;
decodeFunctionResult(
functionFragment: "destinationAndNonce",
data: BytesLike
): Result;
decodeFunctionResult(functionFragment: "dispatch", data: BytesLike): Result;
decodeFunctionResult(
functionFragment: "doubleUpdate",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "homeDomainHash",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "improperUpdate",
data: BytesLike
): Result;
decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result;
decodeFunctionResult(
functionFragment: "localDomain",
data: BytesLike
): Result;
decodeFunctionResult(functionFragment: "nonces", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result;
decodeFunctionResult(
functionFragment: "queueContains",
data: BytesLike
): Result;
decodeFunctionResult(functionFragment: "queueEnd", data: BytesLike): Result;
decodeFunctionResult(
functionFragment: "queueLength",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "renounceOwnership",
data: BytesLike
): Result;
decodeFunctionResult(functionFragment: "root", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "setFailed", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "setUpdater", data: BytesLike): Result;
decodeFunctionResult(
functionFragment: "setUpdaterManager",
data: BytesLike
): Result;
decodeFunctionResult(functionFragment: "state", data: BytesLike): Result;
decodeFunctionResult(
functionFragment: "suggestUpdate",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "transferOwnership",
data: BytesLike
): Result;
decodeFunctionResult(functionFragment: "tree", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "update", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "updater", data: BytesLike): Result;
decodeFunctionResult(
functionFragment: "updaterManager",
data: BytesLike
): Result;
events: {
"Dispatch(bytes32,uint256,uint64,bytes32,bytes)": EventFragment;
"DoubleUpdate(bytes32,bytes32[2],bytes,bytes)": EventFragment;
"ImproperUpdate(bytes32,bytes32,bytes)": EventFragment;
"NewUpdater(address)": EventFragment;
"NewUpdaterManager(address)": EventFragment;
"OwnershipTransferred(address,address)": EventFragment;
"Update(uint32,bytes32,bytes32,bytes)": EventFragment;
"UpdaterSlashed(address,address)": EventFragment;
};
getEvent(nameOrSignatureOrTopic: "Dispatch"): EventFragment;
getEvent(nameOrSignatureOrTopic: "DoubleUpdate"): EventFragment;
getEvent(nameOrSignatureOrTopic: "ImproperUpdate"): EventFragment;
getEvent(nameOrSignatureOrTopic: "NewUpdater"): EventFragment;
getEvent(nameOrSignatureOrTopic: "NewUpdaterManager"): EventFragment;
getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment;
getEvent(nameOrSignatureOrTopic: "Update"): EventFragment;
getEvent(nameOrSignatureOrTopic: "UpdaterSlashed"): EventFragment;
}
export class TestHome extends BaseContract {
connect(signerOrProvider: Signer | Provider | string): this;
attach(addressOrName: string): this;
deployed(): Promise<this>;
listeners<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter?: TypedEventFilter<EventArgsArray, EventArgsObject>
): Array<TypedListener<EventArgsArray, EventArgsObject>>;
off<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
on<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
once<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
removeListener<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
removeAllListeners<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>
): this;
listeners(eventName?: string): Array<Listener>;
off(eventName: string, listener: Listener): this;
on(eventName: string, listener: Listener): this;
once(eventName: string, listener: Listener): this;
removeListener(eventName: string, listener: Listener): this;
removeAllListeners(eventName?: string): this;
queryFilter<EventArgsArray extends Array<any>, EventArgsObject>(
event: TypedEventFilter<EventArgsArray, EventArgsObject>,
fromBlockOrBlockhash?: string | number | undefined,
toBlock?: string | number | undefined
): Promise<Array<TypedEvent<EventArgsArray & EventArgsObject>>>;
interface: TestHomeInterface;
functions: {
MAX_MESSAGE_BODY_BYTES(overrides?: CallOverrides): Promise<[BigNumber]>;
VERSION(overrides?: CallOverrides): Promise<[number]>;
committedRoot(overrides?: CallOverrides): Promise<[string]>;
count(overrides?: CallOverrides): Promise<[BigNumber]>;
destinationAndNonce(
_destination: BigNumberish,
_nonce: BigNumberish,
overrides?: CallOverrides
): Promise<[BigNumber]>;
dispatch(
_destinationDomain: BigNumberish,
_recipientAddress: BytesLike,
_messageBody: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
doubleUpdate(
_oldRoot: BytesLike,
_newRoot: [BytesLike, BytesLike],
_signature: BytesLike,
_signature2: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
homeDomainHash(overrides?: CallOverrides): Promise<[string]>;
improperUpdate(
_oldRoot: BytesLike,
_newRoot: BytesLike,
_signature: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
initialize(
_updaterManager: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
localDomain(overrides?: CallOverrides): Promise<[number]>;
nonces(arg0: BigNumberish, overrides?: CallOverrides): Promise<[number]>;
owner(overrides?: CallOverrides): Promise<[string]>;
queueContains(
_item: BytesLike,
overrides?: CallOverrides
): Promise<[boolean]>;
queueEnd(overrides?: CallOverrides): Promise<[string]>;
queueLength(overrides?: CallOverrides): Promise<[BigNumber]>;
renounceOwnership(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
root(overrides?: CallOverrides): Promise<[string]>;
setFailed(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
setUpdater(
_updater: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
setUpdaterManager(
_updaterManager: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
state(overrides?: CallOverrides): Promise<[number]>;
suggestUpdate(
overrides?: CallOverrides
): Promise<[string, string] & { _committedRoot: string; _new: string }>;
transferOwnership(
newOwner: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
tree(
overrides?: CallOverrides
): Promise<[BigNumber] & { count: BigNumber }>;
update(
_committedRoot: BytesLike,
_newRoot: BytesLike,
_signature: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
updater(overrides?: CallOverrides): Promise<[string]>;
updaterManager(overrides?: CallOverrides): Promise<[string]>;
};
MAX_MESSAGE_BODY_BYTES(overrides?: CallOverrides): Promise<BigNumber>;
VERSION(overrides?: CallOverrides): Promise<number>;
committedRoot(overrides?: CallOverrides): Promise<string>;
count(overrides?: CallOverrides): Promise<BigNumber>;
destinationAndNonce(
_destination: BigNumberish,
_nonce: BigNumberish,
overrides?: CallOverrides
): Promise<BigNumber>;
dispatch(
_destinationDomain: BigNumberish,
_recipientAddress: BytesLike,
_messageBody: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
doubleUpdate(
_oldRoot: BytesLike,
_newRoot: [BytesLike, BytesLike],
_signature: BytesLike,
_signature2: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
homeDomainHash(overrides?: CallOverrides): Promise<string>;
improperUpdate(
_oldRoot: BytesLike,
_newRoot: BytesLike,
_signature: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
initialize(
_updaterManager: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
localDomain(overrides?: CallOverrides): Promise<number>;
nonces(arg0: BigNumberish, overrides?: CallOverrides): Promise<number>;
owner(overrides?: CallOverrides): Promise<string>;
queueContains(_item: BytesLike, overrides?: CallOverrides): Promise<boolean>;
queueEnd(overrides?: CallOverrides): Promise<string>;
queueLength(overrides?: CallOverrides): Promise<BigNumber>;
renounceOwnership(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
root(overrides?: CallOverrides): Promise<string>;
setFailed(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
setUpdater(
_updater: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
setUpdaterManager(
_updaterManager: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
state(overrides?: CallOverrides): Promise<number>;
suggestUpdate(
overrides?: CallOverrides
): Promise<[string, string] & { _committedRoot: string; _new: string }>;
transferOwnership(
newOwner: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
tree(overrides?: CallOverrides): Promise<BigNumber>;
update(
_committedRoot: BytesLike,
_newRoot: BytesLike,
_signature: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
updater(overrides?: CallOverrides): Promise<string>;
updaterManager(overrides?: CallOverrides): Promise<string>;
callStatic: {
MAX_MESSAGE_BODY_BYTES(overrides?: CallOverrides): Promise<BigNumber>;
VERSION(overrides?: CallOverrides): Promise<number>;
committedRoot(overrides?: CallOverrides): Promise<string>;
count(overrides?: CallOverrides): Promise<BigNumber>;
destinationAndNonce(
_destination: BigNumberish,
_nonce: BigNumberish,
overrides?: CallOverrides
): Promise<BigNumber>;
dispatch(
_destinationDomain: BigNumberish,
_recipientAddress: BytesLike,
_messageBody: BytesLike,
overrides?: CallOverrides
): Promise<void>;
doubleUpdate(
_oldRoot: BytesLike,
_newRoot: [BytesLike, BytesLike],
_signature: BytesLike,
_signature2: BytesLike,
overrides?: CallOverrides
): Promise<void>;
homeDomainHash(overrides?: CallOverrides): Promise<string>;
improperUpdate(
_oldRoot: BytesLike,
_newRoot: BytesLike,
_signature: BytesLike,
overrides?: CallOverrides
): Promise<boolean>;
initialize(
_updaterManager: string,
overrides?: CallOverrides
): Promise<void>;
localDomain(overrides?: CallOverrides): Promise<number>;
nonces(arg0: BigNumberish, overrides?: CallOverrides): Promise<number>;
owner(overrides?: CallOverrides): Promise<string>;
queueContains(
_item: BytesLike,
overrides?: CallOverrides
): Promise<boolean>;
queueEnd(overrides?: CallOverrides): Promise<string>;
queueLength(overrides?: CallOverrides): Promise<BigNumber>;
renounceOwnership(overrides?: CallOverrides): Promise<void>;
root(overrides?: CallOverrides): Promise<string>;
setFailed(overrides?: CallOverrides): Promise<void>;
setUpdater(_updater: string, overrides?: CallOverrides): Promise<void>;
setUpdaterManager(
_updaterManager: string,
overrides?: CallOverrides
): Promise<void>;
state(overrides?: CallOverrides): Promise<number>;
suggestUpdate(
overrides?: CallOverrides
): Promise<[string, string] & { _committedRoot: string; _new: string }>;
transferOwnership(
newOwner: string,
overrides?: CallOverrides
): Promise<void>;
tree(overrides?: CallOverrides): Promise<BigNumber>;
update(
_committedRoot: BytesLike,
_newRoot: BytesLike,
_signature: BytesLike,
overrides?: CallOverrides
): Promise<void>;
updater(overrides?: CallOverrides): Promise<string>;
updaterManager(overrides?: CallOverrides): Promise<string>;
};
filters: {
Dispatch(
messageHash?: BytesLike | null,
leafIndex?: BigNumberish | null,
destinationAndNonce?: BigNumberish | null,
committedRoot?: null,
message?: null
): TypedEventFilter<
[string, BigNumber, BigNumber, string, string],
{
messageHash: string;
leafIndex: BigNumber;
destinationAndNonce: BigNumber;
committedRoot: string;
message: string;
}
>;
DoubleUpdate(
oldRoot?: null,
newRoot?: null,
signature?: null,
signature2?: null
): TypedEventFilter<
[string, [string, string], string, string],
{
oldRoot: string;
newRoot: [string, string];
signature: string;
signature2: string;
}
>;
ImproperUpdate(
oldRoot?: null,
newRoot?: null,
signature?: null
): TypedEventFilter<
[string, string, string],
{ oldRoot: string; newRoot: string; signature: string }
>;
NewUpdater(updater?: null): TypedEventFilter<[string], { updater: string }>;
NewUpdaterManager(
updaterManager?: null
): TypedEventFilter<[string], { updaterManager: string }>;
OwnershipTransferred(
previousOwner?: string | null,
newOwner?: string | null
): TypedEventFilter<
[string, string],
{ previousOwner: string; newOwner: string }
>;
Update(
homeDomain?: BigNumberish | null,
oldRoot?: BytesLike | null,
newRoot?: BytesLike | null,
signature?: null
): TypedEventFilter<
[number, string, string, string],
{
homeDomain: number;
oldRoot: string;
newRoot: string;
signature: string;
}
>;
UpdaterSlashed(
updater?: string | null,
reporter?: string | null
): TypedEventFilter<
[string, string],
{ updater: string; reporter: string }
>;
};
estimateGas: {
MAX_MESSAGE_BODY_BYTES(overrides?: CallOverrides): Promise<BigNumber>;
VERSION(overrides?: CallOverrides): Promise<BigNumber>;
committedRoot(overrides?: CallOverrides): Promise<BigNumber>;
count(overrides?: CallOverrides): Promise<BigNumber>;
destinationAndNonce(
_destination: BigNumberish,
_nonce: BigNumberish,
overrides?: CallOverrides
): Promise<BigNumber>;
dispatch(
_destinationDomain: BigNumberish,
_recipientAddress: BytesLike,
_messageBody: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
doubleUpdate(
_oldRoot: BytesLike,
_newRoot: [BytesLike, BytesLike],
_signature: BytesLike,
_signature2: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
homeDomainHash(overrides?: CallOverrides): Promise<BigNumber>;
improperUpdate(
_oldRoot: BytesLike,
_newRoot: BytesLike,
_signature: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
initialize(
_updaterManager: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
localDomain(overrides?: CallOverrides): Promise<BigNumber>;
nonces(arg0: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
owner(overrides?: CallOverrides): Promise<BigNumber>;
queueContains(
_item: BytesLike,
overrides?: CallOverrides
): Promise<BigNumber>;
queueEnd(overrides?: CallOverrides): Promise<BigNumber>;
queueLength(overrides?: CallOverrides): Promise<BigNumber>;
renounceOwnership(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
root(overrides?: CallOverrides): Promise<BigNumber>;
setFailed(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
setUpdater(
_updater: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
setUpdaterManager(
_updaterManager: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
state(overrides?: CallOverrides): Promise<BigNumber>;
suggestUpdate(overrides?: CallOverrides): Promise<BigNumber>;
transferOwnership(
newOwner: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
tree(overrides?: CallOverrides): Promise<BigNumber>;
update(
_committedRoot: BytesLike,
_newRoot: BytesLike,
_signature: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
updater(overrides?: CallOverrides): Promise<BigNumber>;
updaterManager(overrides?: CallOverrides): Promise<BigNumber>;
};
populateTransaction: {
MAX_MESSAGE_BODY_BYTES(
overrides?: CallOverrides
): Promise<PopulatedTransaction>;
VERSION(overrides?: CallOverrides): Promise<PopulatedTransaction>;
committedRoot(overrides?: CallOverrides): Promise<PopulatedTransaction>;
count(overrides?: CallOverrides): Promise<PopulatedTransaction>;
destinationAndNonce(
_destination: BigNumberish,
_nonce: BigNumberish,
overrides?: CallOverrides
): Promise<PopulatedTransaction>;
dispatch(
_destinationDomain: BigNumberish,
_recipientAddress: BytesLike,
_messageBody: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
doubleUpdate(
_oldRoot: BytesLike,
_newRoot: [BytesLike, BytesLike],
_signature: BytesLike,
_signature2: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
homeDomainHash(overrides?: CallOverrides): Promise<PopulatedTransaction>;
improperUpdate(
_oldRoot: BytesLike,
_newRoot: BytesLike,
_signature: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
initialize(
_updaterManager: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
localDomain(overrides?: CallOverrides): Promise<PopulatedTransaction>;
nonces(
arg0: BigNumberish,
overrides?: CallOverrides
): Promise<PopulatedTransaction>;
owner(overrides?: CallOverrides): Promise<PopulatedTransaction>;
queueContains(
_item: BytesLike,
overrides?: CallOverrides
): Promise<PopulatedTransaction>;
queueEnd(overrides?: CallOverrides): Promise<PopulatedTransaction>;
queueLength(overrides?: CallOverrides): Promise<PopulatedTransaction>;
renounceOwnership(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
root(overrides?: CallOverrides): Promise<PopulatedTransaction>;
setFailed(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
setUpdater(
_updater: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
setUpdaterManager(
_updaterManager: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
state(overrides?: CallOverrides): Promise<PopulatedTransaction>;
suggestUpdate(overrides?: CallOverrides): Promise<PopulatedTransaction>;
transferOwnership(
newOwner: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
tree(overrides?: CallOverrides): Promise<PopulatedTransaction>;
update(
_committedRoot: BytesLike,
_newRoot: BytesLike,
_signature: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
updater(overrides?: CallOverrides): Promise<PopulatedTransaction>;
updaterManager(overrides?: CallOverrides): Promise<PopulatedTransaction>;
};
}

@ -0,0 +1,392 @@
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import {
ethers,
EventFilter,
Signer,
BigNumber,
BigNumberish,
PopulatedTransaction,
BaseContract,
ContractTransaction,
Overrides,
CallOverrides,
} from "ethers";
import { BytesLike } from "@ethersproject/bytes";
import { Listener, Provider } from "@ethersproject/providers";
import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi";
import { TypedEventFilter, TypedEvent, TypedListener } from "./commons";
interface TestMerkleInterface extends ethers.utils.Interface {
functions: {
"branchRoot(bytes32,bytes32[32],uint256)": FunctionFragment;
"count()": FunctionFragment;
"insert(bytes32)": FunctionFragment;
"root()": FunctionFragment;
"tree()": FunctionFragment;
};
encodeFunctionData(
functionFragment: "branchRoot",
values: [
BytesLike,
[
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike
],
BigNumberish
]
): string;
encodeFunctionData(functionFragment: "count", values?: undefined): string;
encodeFunctionData(functionFragment: "insert", values: [BytesLike]): string;
encodeFunctionData(functionFragment: "root", values?: undefined): string;
encodeFunctionData(functionFragment: "tree", values?: undefined): string;
decodeFunctionResult(functionFragment: "branchRoot", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "count", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "insert", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "root", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "tree", data: BytesLike): Result;
events: {};
}
export class TestMerkle extends BaseContract {
connect(signerOrProvider: Signer | Provider | string): this;
attach(addressOrName: string): this;
deployed(): Promise<this>;
listeners<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter?: TypedEventFilter<EventArgsArray, EventArgsObject>
): Array<TypedListener<EventArgsArray, EventArgsObject>>;
off<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
on<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
once<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
removeListener<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
removeAllListeners<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>
): this;
listeners(eventName?: string): Array<Listener>;
off(eventName: string, listener: Listener): this;
on(eventName: string, listener: Listener): this;
once(eventName: string, listener: Listener): this;
removeListener(eventName: string, listener: Listener): this;
removeAllListeners(eventName?: string): this;
queryFilter<EventArgsArray extends Array<any>, EventArgsObject>(
event: TypedEventFilter<EventArgsArray, EventArgsObject>,
fromBlockOrBlockhash?: string | number | undefined,
toBlock?: string | number | undefined
): Promise<Array<TypedEvent<EventArgsArray & EventArgsObject>>>;
interface: TestMerkleInterface;
functions: {
branchRoot(
_leaf: BytesLike,
_proof: [
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike
],
_index: BigNumberish,
overrides?: CallOverrides
): Promise<[string] & { _node: string }>;
count(overrides?: CallOverrides): Promise<[BigNumber]>;
insert(
_node: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
root(overrides?: CallOverrides): Promise<[string]>;
tree(
overrides?: CallOverrides
): Promise<[BigNumber] & { count: BigNumber }>;
};
branchRoot(
_leaf: BytesLike,
_proof: [
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike
],
_index: BigNumberish,
overrides?: CallOverrides
): Promise<string>;
count(overrides?: CallOverrides): Promise<BigNumber>;
insert(
_node: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
root(overrides?: CallOverrides): Promise<string>;
tree(overrides?: CallOverrides): Promise<BigNumber>;
callStatic: {
branchRoot(
_leaf: BytesLike,
_proof: [
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike
],
_index: BigNumberish,
overrides?: CallOverrides
): Promise<string>;
count(overrides?: CallOverrides): Promise<BigNumber>;
insert(_node: BytesLike, overrides?: CallOverrides): Promise<void>;
root(overrides?: CallOverrides): Promise<string>;
tree(overrides?: CallOverrides): Promise<BigNumber>;
};
filters: {};
estimateGas: {
branchRoot(
_leaf: BytesLike,
_proof: [
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike
],
_index: BigNumberish,
overrides?: CallOverrides
): Promise<BigNumber>;
count(overrides?: CallOverrides): Promise<BigNumber>;
insert(
_node: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
root(overrides?: CallOverrides): Promise<BigNumber>;
tree(overrides?: CallOverrides): Promise<BigNumber>;
};
populateTransaction: {
branchRoot(
_leaf: BytesLike,
_proof: [
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike,
BytesLike
],
_index: BigNumberish,
overrides?: CallOverrides
): Promise<PopulatedTransaction>;
count(overrides?: CallOverrides): Promise<PopulatedTransaction>;
insert(
_node: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
root(overrides?: CallOverrides): Promise<PopulatedTransaction>;
tree(overrides?: CallOverrides): Promise<PopulatedTransaction>;
};
}

@ -0,0 +1,252 @@
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import {
ethers,
EventFilter,
Signer,
BigNumber,
BigNumberish,
PopulatedTransaction,
BaseContract,
ContractTransaction,
CallOverrides,
} from "ethers";
import { BytesLike } from "@ethersproject/bytes";
import { Listener, Provider } from "@ethersproject/providers";
import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi";
import { TypedEventFilter, TypedEvent, TypedListener } from "./commons";
interface TestMessageInterface extends ethers.utils.Interface {
functions: {
"body(bytes)": FunctionFragment;
"destination(bytes)": FunctionFragment;
"leaf(bytes)": FunctionFragment;
"nonce(bytes)": FunctionFragment;
"origin(bytes)": FunctionFragment;
"recipient(bytes)": FunctionFragment;
"recipientAddress(bytes)": FunctionFragment;
"sender(bytes)": FunctionFragment;
};
encodeFunctionData(functionFragment: "body", values: [BytesLike]): string;
encodeFunctionData(
functionFragment: "destination",
values: [BytesLike]
): string;
encodeFunctionData(functionFragment: "leaf", values: [BytesLike]): string;
encodeFunctionData(functionFragment: "nonce", values: [BytesLike]): string;
encodeFunctionData(functionFragment: "origin", values: [BytesLike]): string;
encodeFunctionData(
functionFragment: "recipient",
values: [BytesLike]
): string;
encodeFunctionData(
functionFragment: "recipientAddress",
values: [BytesLike]
): string;
encodeFunctionData(functionFragment: "sender", values: [BytesLike]): string;
decodeFunctionResult(functionFragment: "body", data: BytesLike): Result;
decodeFunctionResult(
functionFragment: "destination",
data: BytesLike
): Result;
decodeFunctionResult(functionFragment: "leaf", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "nonce", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "origin", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "recipient", data: BytesLike): Result;
decodeFunctionResult(
functionFragment: "recipientAddress",
data: BytesLike
): Result;
decodeFunctionResult(functionFragment: "sender", data: BytesLike): Result;
events: {};
}
export class TestMessage extends BaseContract {
connect(signerOrProvider: Signer | Provider | string): this;
attach(addressOrName: string): this;
deployed(): Promise<this>;
listeners<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter?: TypedEventFilter<EventArgsArray, EventArgsObject>
): Array<TypedListener<EventArgsArray, EventArgsObject>>;
off<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
on<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
once<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
removeListener<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
removeAllListeners<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>
): this;
listeners(eventName?: string): Array<Listener>;
off(eventName: string, listener: Listener): this;
on(eventName: string, listener: Listener): this;
once(eventName: string, listener: Listener): this;
removeListener(eventName: string, listener: Listener): this;
removeAllListeners(eventName?: string): this;
queryFilter<EventArgsArray extends Array<any>, EventArgsObject>(
event: TypedEventFilter<EventArgsArray, EventArgsObject>,
fromBlockOrBlockhash?: string | number | undefined,
toBlock?: string | number | undefined
): Promise<Array<TypedEvent<EventArgsArray & EventArgsObject>>>;
interface: TestMessageInterface;
functions: {
body(_message: BytesLike, overrides?: CallOverrides): Promise<[string]>;
destination(
_message: BytesLike,
overrides?: CallOverrides
): Promise<[number]>;
leaf(_message: BytesLike, overrides?: CallOverrides): Promise<[string]>;
nonce(_message: BytesLike, overrides?: CallOverrides): Promise<[number]>;
origin(_message: BytesLike, overrides?: CallOverrides): Promise<[number]>;
recipient(
_message: BytesLike,
overrides?: CallOverrides
): Promise<[string]>;
recipientAddress(
_message: BytesLike,
overrides?: CallOverrides
): Promise<[string]>;
sender(_message: BytesLike, overrides?: CallOverrides): Promise<[string]>;
};
body(_message: BytesLike, overrides?: CallOverrides): Promise<string>;
destination(_message: BytesLike, overrides?: CallOverrides): Promise<number>;
leaf(_message: BytesLike, overrides?: CallOverrides): Promise<string>;
nonce(_message: BytesLike, overrides?: CallOverrides): Promise<number>;
origin(_message: BytesLike, overrides?: CallOverrides): Promise<number>;
recipient(_message: BytesLike, overrides?: CallOverrides): Promise<string>;
recipientAddress(
_message: BytesLike,
overrides?: CallOverrides
): Promise<string>;
sender(_message: BytesLike, overrides?: CallOverrides): Promise<string>;
callStatic: {
body(_message: BytesLike, overrides?: CallOverrides): Promise<string>;
destination(
_message: BytesLike,
overrides?: CallOverrides
): Promise<number>;
leaf(_message: BytesLike, overrides?: CallOverrides): Promise<string>;
nonce(_message: BytesLike, overrides?: CallOverrides): Promise<number>;
origin(_message: BytesLike, overrides?: CallOverrides): Promise<number>;
recipient(_message: BytesLike, overrides?: CallOverrides): Promise<string>;
recipientAddress(
_message: BytesLike,
overrides?: CallOverrides
): Promise<string>;
sender(_message: BytesLike, overrides?: CallOverrides): Promise<string>;
};
filters: {};
estimateGas: {
body(_message: BytesLike, overrides?: CallOverrides): Promise<BigNumber>;
destination(
_message: BytesLike,
overrides?: CallOverrides
): Promise<BigNumber>;
leaf(_message: BytesLike, overrides?: CallOverrides): Promise<BigNumber>;
nonce(_message: BytesLike, overrides?: CallOverrides): Promise<BigNumber>;
origin(_message: BytesLike, overrides?: CallOverrides): Promise<BigNumber>;
recipient(
_message: BytesLike,
overrides?: CallOverrides
): Promise<BigNumber>;
recipientAddress(
_message: BytesLike,
overrides?: CallOverrides
): Promise<BigNumber>;
sender(_message: BytesLike, overrides?: CallOverrides): Promise<BigNumber>;
};
populateTransaction: {
body(
_message: BytesLike,
overrides?: CallOverrides
): Promise<PopulatedTransaction>;
destination(
_message: BytesLike,
overrides?: CallOverrides
): Promise<PopulatedTransaction>;
leaf(
_message: BytesLike,
overrides?: CallOverrides
): Promise<PopulatedTransaction>;
nonce(
_message: BytesLike,
overrides?: CallOverrides
): Promise<PopulatedTransaction>;
origin(
_message: BytesLike,
overrides?: CallOverrides
): Promise<PopulatedTransaction>;
recipient(
_message: BytesLike,
overrides?: CallOverrides
): Promise<PopulatedTransaction>;
recipientAddress(
_message: BytesLike,
overrides?: CallOverrides
): Promise<PopulatedTransaction>;
sender(
_message: BytesLike,
overrides?: CallOverrides
): Promise<PopulatedTransaction>;
};
}

@ -0,0 +1,363 @@
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import {
ethers,
EventFilter,
Signer,
BigNumber,
BigNumberish,
PopulatedTransaction,
BaseContract,
ContractTransaction,
Overrides,
CallOverrides,
} from "ethers";
import { BytesLike } from "@ethersproject/bytes";
import { Listener, Provider } from "@ethersproject/providers";
import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi";
import { TypedEventFilter, TypedEvent, TypedListener } from "./commons";
interface TestQueueInterface extends ethers.utils.Interface {
functions: {
"contains(bytes32)": FunctionFragment;
"dequeue()": FunctionFragment;
"dequeueMany(uint256)": FunctionFragment;
"drain()": FunctionFragment;
"enqueue(bytes32)": FunctionFragment;
"enqueueMany(bytes32[])": FunctionFragment;
"initializeAgain()": FunctionFragment;
"lastItem()": FunctionFragment;
"length()": FunctionFragment;
"peek()": FunctionFragment;
"queueContains(bytes32)": FunctionFragment;
"queueEnd()": FunctionFragment;
"queueLength()": FunctionFragment;
};
encodeFunctionData(functionFragment: "contains", values: [BytesLike]): string;
encodeFunctionData(functionFragment: "dequeue", values?: undefined): string;
encodeFunctionData(
functionFragment: "dequeueMany",
values: [BigNumberish]
): string;
encodeFunctionData(functionFragment: "drain", values?: undefined): string;
encodeFunctionData(functionFragment: "enqueue", values: [BytesLike]): string;
encodeFunctionData(
functionFragment: "enqueueMany",
values: [BytesLike[]]
): string;
encodeFunctionData(
functionFragment: "initializeAgain",
values?: undefined
): string;
encodeFunctionData(functionFragment: "lastItem", values?: undefined): string;
encodeFunctionData(functionFragment: "length", values?: undefined): string;
encodeFunctionData(functionFragment: "peek", values?: undefined): string;
encodeFunctionData(
functionFragment: "queueContains",
values: [BytesLike]
): string;
encodeFunctionData(functionFragment: "queueEnd", values?: undefined): string;
encodeFunctionData(
functionFragment: "queueLength",
values?: undefined
): string;
decodeFunctionResult(functionFragment: "contains", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "dequeue", data: BytesLike): Result;
decodeFunctionResult(
functionFragment: "dequeueMany",
data: BytesLike
): Result;
decodeFunctionResult(functionFragment: "drain", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "enqueue", data: BytesLike): Result;
decodeFunctionResult(
functionFragment: "enqueueMany",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "initializeAgain",
data: BytesLike
): Result;
decodeFunctionResult(functionFragment: "lastItem", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "length", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "peek", data: BytesLike): Result;
decodeFunctionResult(
functionFragment: "queueContains",
data: BytesLike
): Result;
decodeFunctionResult(functionFragment: "queueEnd", data: BytesLike): Result;
decodeFunctionResult(
functionFragment: "queueLength",
data: BytesLike
): Result;
events: {};
}
export class TestQueue extends BaseContract {
connect(signerOrProvider: Signer | Provider | string): this;
attach(addressOrName: string): this;
deployed(): Promise<this>;
listeners<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter?: TypedEventFilter<EventArgsArray, EventArgsObject>
): Array<TypedListener<EventArgsArray, EventArgsObject>>;
off<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
on<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
once<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
removeListener<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
removeAllListeners<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>
): this;
listeners(eventName?: string): Array<Listener>;
off(eventName: string, listener: Listener): this;
on(eventName: string, listener: Listener): this;
once(eventName: string, listener: Listener): this;
removeListener(eventName: string, listener: Listener): this;
removeAllListeners(eventName?: string): this;
queryFilter<EventArgsArray extends Array<any>, EventArgsObject>(
event: TypedEventFilter<EventArgsArray, EventArgsObject>,
fromBlockOrBlockhash?: string | number | undefined,
toBlock?: string | number | undefined
): Promise<Array<TypedEvent<EventArgsArray & EventArgsObject>>>;
interface: TestQueueInterface;
functions: {
contains(_item: BytesLike, overrides?: CallOverrides): Promise<[boolean]>;
dequeue(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
dequeueMany(
_number: BigNumberish,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
drain(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
enqueue(
_item: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
enqueueMany(
_items: BytesLike[],
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
initializeAgain(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
lastItem(overrides?: CallOverrides): Promise<[string]>;
length(overrides?: CallOverrides): Promise<[BigNumber]>;
peek(overrides?: CallOverrides): Promise<[string] & { _item: string }>;
queueContains(
_item: BytesLike,
overrides?: CallOverrides
): Promise<[boolean]>;
queueEnd(overrides?: CallOverrides): Promise<[string]>;
queueLength(overrides?: CallOverrides): Promise<[BigNumber]>;
};
contains(_item: BytesLike, overrides?: CallOverrides): Promise<boolean>;
dequeue(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
dequeueMany(
_number: BigNumberish,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
drain(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
enqueue(
_item: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
enqueueMany(
_items: BytesLike[],
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
initializeAgain(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
lastItem(overrides?: CallOverrides): Promise<string>;
length(overrides?: CallOverrides): Promise<BigNumber>;
peek(overrides?: CallOverrides): Promise<string>;
queueContains(_item: BytesLike, overrides?: CallOverrides): Promise<boolean>;
queueEnd(overrides?: CallOverrides): Promise<string>;
queueLength(overrides?: CallOverrides): Promise<BigNumber>;
callStatic: {
contains(_item: BytesLike, overrides?: CallOverrides): Promise<boolean>;
dequeue(overrides?: CallOverrides): Promise<string>;
dequeueMany(
_number: BigNumberish,
overrides?: CallOverrides
): Promise<string[]>;
drain(overrides?: CallOverrides): Promise<void>;
enqueue(_item: BytesLike, overrides?: CallOverrides): Promise<BigNumber>;
enqueueMany(
_items: BytesLike[],
overrides?: CallOverrides
): Promise<BigNumber>;
initializeAgain(overrides?: CallOverrides): Promise<void>;
lastItem(overrides?: CallOverrides): Promise<string>;
length(overrides?: CallOverrides): Promise<BigNumber>;
peek(overrides?: CallOverrides): Promise<string>;
queueContains(
_item: BytesLike,
overrides?: CallOverrides
): Promise<boolean>;
queueEnd(overrides?: CallOverrides): Promise<string>;
queueLength(overrides?: CallOverrides): Promise<BigNumber>;
};
filters: {};
estimateGas: {
contains(_item: BytesLike, overrides?: CallOverrides): Promise<BigNumber>;
dequeue(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
dequeueMany(
_number: BigNumberish,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
drain(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
enqueue(
_item: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
enqueueMany(
_items: BytesLike[],
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
initializeAgain(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
lastItem(overrides?: CallOverrides): Promise<BigNumber>;
length(overrides?: CallOverrides): Promise<BigNumber>;
peek(overrides?: CallOverrides): Promise<BigNumber>;
queueContains(
_item: BytesLike,
overrides?: CallOverrides
): Promise<BigNumber>;
queueEnd(overrides?: CallOverrides): Promise<BigNumber>;
queueLength(overrides?: CallOverrides): Promise<BigNumber>;
};
populateTransaction: {
contains(
_item: BytesLike,
overrides?: CallOverrides
): Promise<PopulatedTransaction>;
dequeue(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
dequeueMany(
_number: BigNumberish,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
drain(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
enqueue(
_item: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
enqueueMany(
_items: BytesLike[],
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
initializeAgain(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
lastItem(overrides?: CallOverrides): Promise<PopulatedTransaction>;
length(overrides?: CallOverrides): Promise<PopulatedTransaction>;
peek(overrides?: CallOverrides): Promise<PopulatedTransaction>;
queueContains(
_item: BytesLike,
overrides?: CallOverrides
): Promise<PopulatedTransaction>;
queueEnd(overrides?: CallOverrides): Promise<PopulatedTransaction>;
queueLength(overrides?: CallOverrides): Promise<PopulatedTransaction>;
};
}

@ -0,0 +1,206 @@
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import {
ethers,
EventFilter,
Signer,
BigNumber,
BigNumberish,
PopulatedTransaction,
BaseContract,
ContractTransaction,
Overrides,
CallOverrides,
} from "ethers";
import { BytesLike } from "@ethersproject/bytes";
import { Listener, Provider } from "@ethersproject/providers";
import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi";
import { TypedEventFilter, TypedEvent, TypedListener } from "./commons";
interface TestRecipientInterface extends ethers.utils.Interface {
functions: {
"handle(uint32,bytes32,bytes)": FunctionFragment;
"message()": FunctionFragment;
"processCall(bool)": FunctionFragment;
"processed()": FunctionFragment;
"receiveString(string)": FunctionFragment;
};
encodeFunctionData(
functionFragment: "handle",
values: [BigNumberish, BytesLike, BytesLike]
): string;
encodeFunctionData(functionFragment: "message", values?: undefined): string;
encodeFunctionData(
functionFragment: "processCall",
values: [boolean]
): string;
encodeFunctionData(functionFragment: "processed", values?: undefined): string;
encodeFunctionData(
functionFragment: "receiveString",
values: [string]
): string;
decodeFunctionResult(functionFragment: "handle", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "message", data: BytesLike): Result;
decodeFunctionResult(
functionFragment: "processCall",
data: BytesLike
): Result;
decodeFunctionResult(functionFragment: "processed", data: BytesLike): Result;
decodeFunctionResult(
functionFragment: "receiveString",
data: BytesLike
): Result;
events: {};
}
export class TestRecipient extends BaseContract {
connect(signerOrProvider: Signer | Provider | string): this;
attach(addressOrName: string): this;
deployed(): Promise<this>;
listeners<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter?: TypedEventFilter<EventArgsArray, EventArgsObject>
): Array<TypedListener<EventArgsArray, EventArgsObject>>;
off<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
on<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
once<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
removeListener<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
removeAllListeners<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>
): this;
listeners(eventName?: string): Array<Listener>;
off(eventName: string, listener: Listener): this;
on(eventName: string, listener: Listener): this;
once(eventName: string, listener: Listener): this;
removeListener(eventName: string, listener: Listener): this;
removeAllListeners(eventName?: string): this;
queryFilter<EventArgsArray extends Array<any>, EventArgsObject>(
event: TypedEventFilter<EventArgsArray, EventArgsObject>,
fromBlockOrBlockhash?: string | number | undefined,
toBlock?: string | number | undefined
): Promise<Array<TypedEvent<EventArgsArray & EventArgsObject>>>;
interface: TestRecipientInterface;
functions: {
handle(
arg0: BigNumberish,
arg1: BytesLike,
arg2: BytesLike,
overrides?: CallOverrides
): Promise<[void]>;
message(overrides?: CallOverrides): Promise<[string]>;
processCall(
callProcessed: boolean,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
processed(overrides?: CallOverrides): Promise<[boolean]>;
receiveString(_str: string, overrides?: CallOverrides): Promise<[string]>;
};
handle(
arg0: BigNumberish,
arg1: BytesLike,
arg2: BytesLike,
overrides?: CallOverrides
): Promise<void>;
message(overrides?: CallOverrides): Promise<string>;
processCall(
callProcessed: boolean,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
processed(overrides?: CallOverrides): Promise<boolean>;
receiveString(_str: string, overrides?: CallOverrides): Promise<string>;
callStatic: {
handle(
arg0: BigNumberish,
arg1: BytesLike,
arg2: BytesLike,
overrides?: CallOverrides
): Promise<void>;
message(overrides?: CallOverrides): Promise<string>;
processCall(
callProcessed: boolean,
overrides?: CallOverrides
): Promise<void>;
processed(overrides?: CallOverrides): Promise<boolean>;
receiveString(_str: string, overrides?: CallOverrides): Promise<string>;
};
filters: {};
estimateGas: {
handle(
arg0: BigNumberish,
arg1: BytesLike,
arg2: BytesLike,
overrides?: CallOverrides
): Promise<BigNumber>;
message(overrides?: CallOverrides): Promise<BigNumber>;
processCall(
callProcessed: boolean,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
processed(overrides?: CallOverrides): Promise<BigNumber>;
receiveString(_str: string, overrides?: CallOverrides): Promise<BigNumber>;
};
populateTransaction: {
handle(
arg0: BigNumberish,
arg1: BytesLike,
arg2: BytesLike,
overrides?: CallOverrides
): Promise<PopulatedTransaction>;
message(overrides?: CallOverrides): Promise<PopulatedTransaction>;
processCall(
callProcessed: boolean,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
processed(overrides?: CallOverrides): Promise<PopulatedTransaction>;
receiveString(
_str: string,
overrides?: CallOverrides
): Promise<PopulatedTransaction>;
};
}

File diff suppressed because it is too large Load Diff

@ -0,0 +1,575 @@
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import {
ethers,
EventFilter,
Signer,
BigNumber,
BigNumberish,
PopulatedTransaction,
BaseContract,
ContractTransaction,
Overrides,
CallOverrides,
} from "ethers";
import { BytesLike } from "@ethersproject/bytes";
import { Listener, Provider } from "@ethersproject/providers";
import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi";
import { TypedEventFilter, TypedEvent, TypedListener } from "./commons";
interface TestXAppConnectionManagerInterface extends ethers.utils.Interface {
functions: {
"domainToReplica(uint32)": FunctionFragment;
"home()": FunctionFragment;
"isReplica(address)": FunctionFragment;
"localDomain()": FunctionFragment;
"owner()": FunctionFragment;
"ownerEnrollReplica(address,uint32)": FunctionFragment;
"ownerUnenrollReplica(address)": FunctionFragment;
"renounceOwnership()": FunctionFragment;
"replicaToDomain(address)": FunctionFragment;
"setHome(address)": FunctionFragment;
"setWatcherPermission(address,uint32,bool)": FunctionFragment;
"testRecoverWatcherFromSig(uint32,address,address,bytes)": FunctionFragment;
"transferOwnership(address)": FunctionFragment;
"unenrollReplica(uint32,bytes32,bytes)": FunctionFragment;
"watcherPermission(address,uint32)": FunctionFragment;
};
encodeFunctionData(
functionFragment: "domainToReplica",
values: [BigNumberish]
): string;
encodeFunctionData(functionFragment: "home", values?: undefined): string;
encodeFunctionData(functionFragment: "isReplica", values: [string]): string;
encodeFunctionData(
functionFragment: "localDomain",
values?: undefined
): string;
encodeFunctionData(functionFragment: "owner", values?: undefined): string;
encodeFunctionData(
functionFragment: "ownerEnrollReplica",
values: [string, BigNumberish]
): string;
encodeFunctionData(
functionFragment: "ownerUnenrollReplica",
values: [string]
): string;
encodeFunctionData(
functionFragment: "renounceOwnership",
values?: undefined
): string;
encodeFunctionData(
functionFragment: "replicaToDomain",
values: [string]
): string;
encodeFunctionData(functionFragment: "setHome", values: [string]): string;
encodeFunctionData(
functionFragment: "setWatcherPermission",
values: [string, BigNumberish, boolean]
): string;
encodeFunctionData(
functionFragment: "testRecoverWatcherFromSig",
values: [BigNumberish, string, string, BytesLike]
): string;
encodeFunctionData(
functionFragment: "transferOwnership",
values: [string]
): string;
encodeFunctionData(
functionFragment: "unenrollReplica",
values: [BigNumberish, BytesLike, BytesLike]
): string;
encodeFunctionData(
functionFragment: "watcherPermission",
values: [string, BigNumberish]
): string;
decodeFunctionResult(
functionFragment: "domainToReplica",
data: BytesLike
): Result;
decodeFunctionResult(functionFragment: "home", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "isReplica", data: BytesLike): Result;
decodeFunctionResult(
functionFragment: "localDomain",
data: BytesLike
): Result;
decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result;
decodeFunctionResult(
functionFragment: "ownerEnrollReplica",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "ownerUnenrollReplica",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "renounceOwnership",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "replicaToDomain",
data: BytesLike
): Result;
decodeFunctionResult(functionFragment: "setHome", data: BytesLike): Result;
decodeFunctionResult(
functionFragment: "setWatcherPermission",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "testRecoverWatcherFromSig",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "transferOwnership",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "unenrollReplica",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "watcherPermission",
data: BytesLike
): Result;
events: {
"OwnershipTransferred(address,address)": EventFragment;
"ReplicaEnrolled(uint32,address)": EventFragment;
"ReplicaUnenrolled(uint32,address)": EventFragment;
"WatcherPermissionSet(uint32,address,bool)": EventFragment;
};
getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment;
getEvent(nameOrSignatureOrTopic: "ReplicaEnrolled"): EventFragment;
getEvent(nameOrSignatureOrTopic: "ReplicaUnenrolled"): EventFragment;
getEvent(nameOrSignatureOrTopic: "WatcherPermissionSet"): EventFragment;
}
export class TestXAppConnectionManager extends BaseContract {
connect(signerOrProvider: Signer | Provider | string): this;
attach(addressOrName: string): this;
deployed(): Promise<this>;
listeners<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter?: TypedEventFilter<EventArgsArray, EventArgsObject>
): Array<TypedListener<EventArgsArray, EventArgsObject>>;
off<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
on<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
once<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
removeListener<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
removeAllListeners<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>
): this;
listeners(eventName?: string): Array<Listener>;
off(eventName: string, listener: Listener): this;
on(eventName: string, listener: Listener): this;
once(eventName: string, listener: Listener): this;
removeListener(eventName: string, listener: Listener): this;
removeAllListeners(eventName?: string): this;
queryFilter<EventArgsArray extends Array<any>, EventArgsObject>(
event: TypedEventFilter<EventArgsArray, EventArgsObject>,
fromBlockOrBlockhash?: string | number | undefined,
toBlock?: string | number | undefined
): Promise<Array<TypedEvent<EventArgsArray & EventArgsObject>>>;
interface: TestXAppConnectionManagerInterface;
functions: {
domainToReplica(
arg0: BigNumberish,
overrides?: CallOverrides
): Promise<[string]>;
home(overrides?: CallOverrides): Promise<[string]>;
isReplica(_replica: string, overrides?: CallOverrides): Promise<[boolean]>;
localDomain(overrides?: CallOverrides): Promise<[number]>;
owner(overrides?: CallOverrides): Promise<[string]>;
ownerEnrollReplica(
_replica: string,
_domain: BigNumberish,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
ownerUnenrollReplica(
_replica: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
renounceOwnership(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
replicaToDomain(arg0: string, overrides?: CallOverrides): Promise<[number]>;
setHome(
_home: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
setWatcherPermission(
_watcher: string,
_domain: BigNumberish,
_access: boolean,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
testRecoverWatcherFromSig(
_domain: BigNumberish,
_replica: string,
_updater: string,
_signature: BytesLike,
overrides?: CallOverrides
): Promise<[string]>;
transferOwnership(
newOwner: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
unenrollReplica(
_domain: BigNumberish,
_updater: BytesLike,
_signature: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
watcherPermission(
_watcher: string,
_domain: BigNumberish,
overrides?: CallOverrides
): Promise<[boolean]>;
};
domainToReplica(
arg0: BigNumberish,
overrides?: CallOverrides
): Promise<string>;
home(overrides?: CallOverrides): Promise<string>;
isReplica(_replica: string, overrides?: CallOverrides): Promise<boolean>;
localDomain(overrides?: CallOverrides): Promise<number>;
owner(overrides?: CallOverrides): Promise<string>;
ownerEnrollReplica(
_replica: string,
_domain: BigNumberish,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
ownerUnenrollReplica(
_replica: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
renounceOwnership(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
replicaToDomain(arg0: string, overrides?: CallOverrides): Promise<number>;
setHome(
_home: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
setWatcherPermission(
_watcher: string,
_domain: BigNumberish,
_access: boolean,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
testRecoverWatcherFromSig(
_domain: BigNumberish,
_replica: string,
_updater: string,
_signature: BytesLike,
overrides?: CallOverrides
): Promise<string>;
transferOwnership(
newOwner: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
unenrollReplica(
_domain: BigNumberish,
_updater: BytesLike,
_signature: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
watcherPermission(
_watcher: string,
_domain: BigNumberish,
overrides?: CallOverrides
): Promise<boolean>;
callStatic: {
domainToReplica(
arg0: BigNumberish,
overrides?: CallOverrides
): Promise<string>;
home(overrides?: CallOverrides): Promise<string>;
isReplica(_replica: string, overrides?: CallOverrides): Promise<boolean>;
localDomain(overrides?: CallOverrides): Promise<number>;
owner(overrides?: CallOverrides): Promise<string>;
ownerEnrollReplica(
_replica: string,
_domain: BigNumberish,
overrides?: CallOverrides
): Promise<void>;
ownerUnenrollReplica(
_replica: string,
overrides?: CallOverrides
): Promise<void>;
renounceOwnership(overrides?: CallOverrides): Promise<void>;
replicaToDomain(arg0: string, overrides?: CallOverrides): Promise<number>;
setHome(_home: string, overrides?: CallOverrides): Promise<void>;
setWatcherPermission(
_watcher: string,
_domain: BigNumberish,
_access: boolean,
overrides?: CallOverrides
): Promise<void>;
testRecoverWatcherFromSig(
_domain: BigNumberish,
_replica: string,
_updater: string,
_signature: BytesLike,
overrides?: CallOverrides
): Promise<string>;
transferOwnership(
newOwner: string,
overrides?: CallOverrides
): Promise<void>;
unenrollReplica(
_domain: BigNumberish,
_updater: BytesLike,
_signature: BytesLike,
overrides?: CallOverrides
): Promise<void>;
watcherPermission(
_watcher: string,
_domain: BigNumberish,
overrides?: CallOverrides
): Promise<boolean>;
};
filters: {
OwnershipTransferred(
previousOwner?: string | null,
newOwner?: string | null
): TypedEventFilter<
[string, string],
{ previousOwner: string; newOwner: string }
>;
ReplicaEnrolled(
domain?: BigNumberish | null,
replica?: null
): TypedEventFilter<[number, string], { domain: number; replica: string }>;
ReplicaUnenrolled(
domain?: BigNumberish | null,
replica?: null
): TypedEventFilter<[number, string], { domain: number; replica: string }>;
WatcherPermissionSet(
domain?: BigNumberish | null,
watcher?: null,
access?: null
): TypedEventFilter<
[number, string, boolean],
{ domain: number; watcher: string; access: boolean }
>;
};
estimateGas: {
domainToReplica(
arg0: BigNumberish,
overrides?: CallOverrides
): Promise<BigNumber>;
home(overrides?: CallOverrides): Promise<BigNumber>;
isReplica(_replica: string, overrides?: CallOverrides): Promise<BigNumber>;
localDomain(overrides?: CallOverrides): Promise<BigNumber>;
owner(overrides?: CallOverrides): Promise<BigNumber>;
ownerEnrollReplica(
_replica: string,
_domain: BigNumberish,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
ownerUnenrollReplica(
_replica: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
renounceOwnership(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
replicaToDomain(
arg0: string,
overrides?: CallOverrides
): Promise<BigNumber>;
setHome(
_home: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
setWatcherPermission(
_watcher: string,
_domain: BigNumberish,
_access: boolean,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
testRecoverWatcherFromSig(
_domain: BigNumberish,
_replica: string,
_updater: string,
_signature: BytesLike,
overrides?: CallOverrides
): Promise<BigNumber>;
transferOwnership(
newOwner: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
unenrollReplica(
_domain: BigNumberish,
_updater: BytesLike,
_signature: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
watcherPermission(
_watcher: string,
_domain: BigNumberish,
overrides?: CallOverrides
): Promise<BigNumber>;
};
populateTransaction: {
domainToReplica(
arg0: BigNumberish,
overrides?: CallOverrides
): Promise<PopulatedTransaction>;
home(overrides?: CallOverrides): Promise<PopulatedTransaction>;
isReplica(
_replica: string,
overrides?: CallOverrides
): Promise<PopulatedTransaction>;
localDomain(overrides?: CallOverrides): Promise<PopulatedTransaction>;
owner(overrides?: CallOverrides): Promise<PopulatedTransaction>;
ownerEnrollReplica(
_replica: string,
_domain: BigNumberish,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
ownerUnenrollReplica(
_replica: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
renounceOwnership(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
replicaToDomain(
arg0: string,
overrides?: CallOverrides
): Promise<PopulatedTransaction>;
setHome(
_home: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
setWatcherPermission(
_watcher: string,
_domain: BigNumberish,
_access: boolean,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
testRecoverWatcherFromSig(
_domain: BigNumberish,
_replica: string,
_updater: string,
_signature: BytesLike,
overrides?: CallOverrides
): Promise<PopulatedTransaction>;
transferOwnership(
newOwner: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
unenrollReplica(
_domain: BigNumberish,
_updater: BytesLike,
_signature: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
watcherPermission(
_watcher: string,
_domain: BigNumberish,
overrides?: CallOverrides
): Promise<PopulatedTransaction>;
};
}

@ -0,0 +1,95 @@
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import {
ethers,
EventFilter,
Signer,
BigNumber,
BigNumberish,
PopulatedTransaction,
BaseContract,
ContractTransaction,
CallOverrides,
} from "ethers";
import { BytesLike } from "@ethersproject/bytes";
import { Listener, Provider } from "@ethersproject/providers";
import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi";
import { TypedEventFilter, TypedEvent, TypedListener } from "./commons";
interface TypedMemViewInterface extends ethers.utils.Interface {
functions: {
"NULL()": FunctionFragment;
};
encodeFunctionData(functionFragment: "NULL", values?: undefined): string;
decodeFunctionResult(functionFragment: "NULL", data: BytesLike): Result;
events: {};
}
export class TypedMemView extends BaseContract {
connect(signerOrProvider: Signer | Provider | string): this;
attach(addressOrName: string): this;
deployed(): Promise<this>;
listeners<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter?: TypedEventFilter<EventArgsArray, EventArgsObject>
): Array<TypedListener<EventArgsArray, EventArgsObject>>;
off<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
on<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
once<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
removeListener<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
removeAllListeners<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>
): this;
listeners(eventName?: string): Array<Listener>;
off(eventName: string, listener: Listener): this;
on(eventName: string, listener: Listener): this;
once(eventName: string, listener: Listener): this;
removeListener(eventName: string, listener: Listener): this;
removeAllListeners(eventName?: string): this;
queryFilter<EventArgsArray extends Array<any>, EventArgsObject>(
event: TypedEventFilter<EventArgsArray, EventArgsObject>,
fromBlockOrBlockhash?: string | number | undefined,
toBlock?: string | number | undefined
): Promise<Array<TypedEvent<EventArgsArray & EventArgsObject>>>;
interface: TypedMemViewInterface;
functions: {
NULL(overrides?: CallOverrides): Promise<[string]>;
};
NULL(overrides?: CallOverrides): Promise<string>;
callStatic: {
NULL(overrides?: CallOverrides): Promise<string>;
};
filters: {};
estimateGas: {
NULL(overrides?: CallOverrides): Promise<BigNumber>;
};
populateTransaction: {
NULL(overrides?: CallOverrides): Promise<PopulatedTransaction>;
};
}

@ -0,0 +1,276 @@
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import {
ethers,
EventFilter,
Signer,
BigNumber,
BigNumberish,
PopulatedTransaction,
BaseContract,
ContractTransaction,
Overrides,
CallOverrides,
} from "ethers";
import { BytesLike } from "@ethersproject/bytes";
import { Listener, Provider } from "@ethersproject/providers";
import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi";
import { TypedEventFilter, TypedEvent, TypedListener } from "./commons";
interface UpdaterManagerInterface extends ethers.utils.Interface {
functions: {
"owner()": FunctionFragment;
"renounceOwnership()": FunctionFragment;
"setHome(address)": FunctionFragment;
"setUpdater(address)": FunctionFragment;
"slashUpdater(address)": FunctionFragment;
"transferOwnership(address)": FunctionFragment;
"updater()": FunctionFragment;
};
encodeFunctionData(functionFragment: "owner", values?: undefined): string;
encodeFunctionData(
functionFragment: "renounceOwnership",
values?: undefined
): string;
encodeFunctionData(functionFragment: "setHome", values: [string]): string;
encodeFunctionData(functionFragment: "setUpdater", values: [string]): string;
encodeFunctionData(
functionFragment: "slashUpdater",
values: [string]
): string;
encodeFunctionData(
functionFragment: "transferOwnership",
values: [string]
): string;
encodeFunctionData(functionFragment: "updater", values?: undefined): string;
decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result;
decodeFunctionResult(
functionFragment: "renounceOwnership",
data: BytesLike
): Result;
decodeFunctionResult(functionFragment: "setHome", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "setUpdater", data: BytesLike): Result;
decodeFunctionResult(
functionFragment: "slashUpdater",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "transferOwnership",
data: BytesLike
): Result;
decodeFunctionResult(functionFragment: "updater", data: BytesLike): Result;
events: {
"FakeSlashed(address)": EventFragment;
"NewHome(address)": EventFragment;
"OwnershipTransferred(address,address)": EventFragment;
};
getEvent(nameOrSignatureOrTopic: "FakeSlashed"): EventFragment;
getEvent(nameOrSignatureOrTopic: "NewHome"): EventFragment;
getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment;
}
export class UpdaterManager extends BaseContract {
connect(signerOrProvider: Signer | Provider | string): this;
attach(addressOrName: string): this;
deployed(): Promise<this>;
listeners<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter?: TypedEventFilter<EventArgsArray, EventArgsObject>
): Array<TypedListener<EventArgsArray, EventArgsObject>>;
off<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
on<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
once<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
removeListener<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
removeAllListeners<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>
): this;
listeners(eventName?: string): Array<Listener>;
off(eventName: string, listener: Listener): this;
on(eventName: string, listener: Listener): this;
once(eventName: string, listener: Listener): this;
removeListener(eventName: string, listener: Listener): this;
removeAllListeners(eventName?: string): this;
queryFilter<EventArgsArray extends Array<any>, EventArgsObject>(
event: TypedEventFilter<EventArgsArray, EventArgsObject>,
fromBlockOrBlockhash?: string | number | undefined,
toBlock?: string | number | undefined
): Promise<Array<TypedEvent<EventArgsArray & EventArgsObject>>>;
interface: UpdaterManagerInterface;
functions: {
owner(overrides?: CallOverrides): Promise<[string]>;
renounceOwnership(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
setHome(
_home: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
setUpdater(
_updaterAddress: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
slashUpdater(
_reporter: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
transferOwnership(
newOwner: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
updater(overrides?: CallOverrides): Promise<[string]>;
};
owner(overrides?: CallOverrides): Promise<string>;
renounceOwnership(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
setHome(
_home: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
setUpdater(
_updaterAddress: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
slashUpdater(
_reporter: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
transferOwnership(
newOwner: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
updater(overrides?: CallOverrides): Promise<string>;
callStatic: {
owner(overrides?: CallOverrides): Promise<string>;
renounceOwnership(overrides?: CallOverrides): Promise<void>;
setHome(_home: string, overrides?: CallOverrides): Promise<void>;
setUpdater(
_updaterAddress: string,
overrides?: CallOverrides
): Promise<void>;
slashUpdater(_reporter: string, overrides?: CallOverrides): Promise<void>;
transferOwnership(
newOwner: string,
overrides?: CallOverrides
): Promise<void>;
updater(overrides?: CallOverrides): Promise<string>;
};
filters: {
FakeSlashed(
reporter?: null
): TypedEventFilter<[string], { reporter: string }>;
NewHome(home?: null): TypedEventFilter<[string], { home: string }>;
OwnershipTransferred(
previousOwner?: string | null,
newOwner?: string | null
): TypedEventFilter<
[string, string],
{ previousOwner: string; newOwner: string }
>;
};
estimateGas: {
owner(overrides?: CallOverrides): Promise<BigNumber>;
renounceOwnership(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
setHome(
_home: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
setUpdater(
_updaterAddress: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
slashUpdater(
_reporter: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
transferOwnership(
newOwner: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
updater(overrides?: CallOverrides): Promise<BigNumber>;
};
populateTransaction: {
owner(overrides?: CallOverrides): Promise<PopulatedTransaction>;
renounceOwnership(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
setHome(
_home: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
setUpdater(
_updaterAddress: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
slashUpdater(
_reporter: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
transferOwnership(
newOwner: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
updater(overrides?: CallOverrides): Promise<PopulatedTransaction>;
};
}

@ -0,0 +1,86 @@
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import {
ethers,
EventFilter,
Signer,
BigNumber,
BigNumberish,
PopulatedTransaction,
BaseContract,
ContractTransaction,
} from "ethers";
import { BytesLike } from "@ethersproject/bytes";
import { Listener, Provider } from "@ethersproject/providers";
import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi";
import { TypedEventFilter, TypedEvent, TypedListener } from "./commons";
interface UpgradeBeaconInterface extends ethers.utils.Interface {
functions: {};
events: {
"Upgrade(address)": EventFragment;
};
getEvent(nameOrSignatureOrTopic: "Upgrade"): EventFragment;
}
export class UpgradeBeacon extends BaseContract {
connect(signerOrProvider: Signer | Provider | string): this;
attach(addressOrName: string): this;
deployed(): Promise<this>;
listeners<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter?: TypedEventFilter<EventArgsArray, EventArgsObject>
): Array<TypedListener<EventArgsArray, EventArgsObject>>;
off<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
on<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
once<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
removeListener<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
removeAllListeners<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>
): this;
listeners(eventName?: string): Array<Listener>;
off(eventName: string, listener: Listener): this;
on(eventName: string, listener: Listener): this;
once(eventName: string, listener: Listener): this;
removeListener(eventName: string, listener: Listener): this;
removeAllListeners(eventName?: string): this;
queryFilter<EventArgsArray extends Array<any>, EventArgsObject>(
event: TypedEventFilter<EventArgsArray, EventArgsObject>,
fromBlockOrBlockhash?: string | number | undefined,
toBlock?: string | number | undefined
): Promise<Array<TypedEvent<EventArgsArray & EventArgsObject>>>;
interface: UpgradeBeaconInterface;
functions: {};
callStatic: {};
filters: {
Upgrade(
implementation?: string | null
): TypedEventFilter<[string], { implementation: string }>;
};
estimateGas: {};
populateTransaction: {};
}

@ -0,0 +1,215 @@
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import {
ethers,
EventFilter,
Signer,
BigNumber,
BigNumberish,
PopulatedTransaction,
BaseContract,
ContractTransaction,
Overrides,
CallOverrides,
} from "ethers";
import { BytesLike } from "@ethersproject/bytes";
import { Listener, Provider } from "@ethersproject/providers";
import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi";
import { TypedEventFilter, TypedEvent, TypedListener } from "./commons";
interface UpgradeBeaconControllerInterface extends ethers.utils.Interface {
functions: {
"owner()": FunctionFragment;
"renounceOwnership()": FunctionFragment;
"transferOwnership(address)": FunctionFragment;
"upgrade(address,address)": FunctionFragment;
};
encodeFunctionData(functionFragment: "owner", values?: undefined): string;
encodeFunctionData(
functionFragment: "renounceOwnership",
values?: undefined
): string;
encodeFunctionData(
functionFragment: "transferOwnership",
values: [string]
): string;
encodeFunctionData(
functionFragment: "upgrade",
values: [string, string]
): string;
decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result;
decodeFunctionResult(
functionFragment: "renounceOwnership",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "transferOwnership",
data: BytesLike
): Result;
decodeFunctionResult(functionFragment: "upgrade", data: BytesLike): Result;
events: {
"BeaconUpgraded(address,address)": EventFragment;
"OwnershipTransferred(address,address)": EventFragment;
};
getEvent(nameOrSignatureOrTopic: "BeaconUpgraded"): EventFragment;
getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment;
}
export class UpgradeBeaconController extends BaseContract {
connect(signerOrProvider: Signer | Provider | string): this;
attach(addressOrName: string): this;
deployed(): Promise<this>;
listeners<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter?: TypedEventFilter<EventArgsArray, EventArgsObject>
): Array<TypedListener<EventArgsArray, EventArgsObject>>;
off<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
on<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
once<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
removeListener<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
removeAllListeners<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>
): this;
listeners(eventName?: string): Array<Listener>;
off(eventName: string, listener: Listener): this;
on(eventName: string, listener: Listener): this;
once(eventName: string, listener: Listener): this;
removeListener(eventName: string, listener: Listener): this;
removeAllListeners(eventName?: string): this;
queryFilter<EventArgsArray extends Array<any>, EventArgsObject>(
event: TypedEventFilter<EventArgsArray, EventArgsObject>,
fromBlockOrBlockhash?: string | number | undefined,
toBlock?: string | number | undefined
): Promise<Array<TypedEvent<EventArgsArray & EventArgsObject>>>;
interface: UpgradeBeaconControllerInterface;
functions: {
owner(overrides?: CallOverrides): Promise<[string]>;
renounceOwnership(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
transferOwnership(
newOwner: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
upgrade(
_beacon: string,
_implementation: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
};
owner(overrides?: CallOverrides): Promise<string>;
renounceOwnership(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
transferOwnership(
newOwner: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
upgrade(
_beacon: string,
_implementation: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
callStatic: {
owner(overrides?: CallOverrides): Promise<string>;
renounceOwnership(overrides?: CallOverrides): Promise<void>;
transferOwnership(
newOwner: string,
overrides?: CallOverrides
): Promise<void>;
upgrade(
_beacon: string,
_implementation: string,
overrides?: CallOverrides
): Promise<void>;
};
filters: {
BeaconUpgraded(
beacon?: string | null,
implementation?: null
): TypedEventFilter<
[string, string],
{ beacon: string; implementation: string }
>;
OwnershipTransferred(
previousOwner?: string | null,
newOwner?: string | null
): TypedEventFilter<
[string, string],
{ previousOwner: string; newOwner: string }
>;
};
estimateGas: {
owner(overrides?: CallOverrides): Promise<BigNumber>;
renounceOwnership(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
transferOwnership(
newOwner: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
upgrade(
_beacon: string,
_implementation: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
};
populateTransaction: {
owner(overrides?: CallOverrides): Promise<PopulatedTransaction>;
renounceOwnership(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
transferOwnership(
newOwner: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
upgrade(
_beacon: string,
_implementation: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
};
}

@ -0,0 +1,78 @@
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import {
ethers,
EventFilter,
Signer,
BigNumber,
BigNumberish,
PopulatedTransaction,
BaseContract,
ContractTransaction,
} from "ethers";
import { BytesLike } from "@ethersproject/bytes";
import { Listener, Provider } from "@ethersproject/providers";
import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi";
import { TypedEventFilter, TypedEvent, TypedListener } from "./commons";
interface UpgradeBeaconProxyInterface extends ethers.utils.Interface {
functions: {};
events: {};
}
export class UpgradeBeaconProxy extends BaseContract {
connect(signerOrProvider: Signer | Provider | string): this;
attach(addressOrName: string): this;
deployed(): Promise<this>;
listeners<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter?: TypedEventFilter<EventArgsArray, EventArgsObject>
): Array<TypedListener<EventArgsArray, EventArgsObject>>;
off<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
on<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
once<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
removeListener<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
removeAllListeners<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>
): this;
listeners(eventName?: string): Array<Listener>;
off(eventName: string, listener: Listener): this;
on(eventName: string, listener: Listener): this;
once(eventName: string, listener: Listener): this;
removeListener(eventName: string, listener: Listener): this;
removeAllListeners(eventName?: string): this;
queryFilter<EventArgsArray extends Array<any>, EventArgsObject>(
event: TypedEventFilter<EventArgsArray, EventArgsObject>,
fromBlockOrBlockhash?: string | number | undefined,
toBlock?: string | number | undefined
): Promise<Array<TypedEvent<EventArgsArray & EventArgsObject>>>;
interface: UpgradeBeaconProxyInterface;
functions: {};
callStatic: {};
filters: {};
estimateGas: {};
populateTransaction: {};
}

@ -0,0 +1,95 @@
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import {
ethers,
EventFilter,
Signer,
BigNumber,
BigNumberish,
PopulatedTransaction,
BaseContract,
ContractTransaction,
CallOverrides,
} from "ethers";
import { BytesLike } from "@ethersproject/bytes";
import { Listener, Provider } from "@ethersproject/providers";
import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi";
import { TypedEventFilter, TypedEvent, TypedListener } from "./commons";
interface Version0Interface extends ethers.utils.Interface {
functions: {
"VERSION()": FunctionFragment;
};
encodeFunctionData(functionFragment: "VERSION", values?: undefined): string;
decodeFunctionResult(functionFragment: "VERSION", data: BytesLike): Result;
events: {};
}
export class Version0 extends BaseContract {
connect(signerOrProvider: Signer | Provider | string): this;
attach(addressOrName: string): this;
deployed(): Promise<this>;
listeners<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter?: TypedEventFilter<EventArgsArray, EventArgsObject>
): Array<TypedListener<EventArgsArray, EventArgsObject>>;
off<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
on<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
once<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
removeListener<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
removeAllListeners<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>
): this;
listeners(eventName?: string): Array<Listener>;
off(eventName: string, listener: Listener): this;
on(eventName: string, listener: Listener): this;
once(eventName: string, listener: Listener): this;
removeListener(eventName: string, listener: Listener): this;
removeAllListeners(eventName?: string): this;
queryFilter<EventArgsArray extends Array<any>, EventArgsObject>(
event: TypedEventFilter<EventArgsArray, EventArgsObject>,
fromBlockOrBlockhash?: string | number | undefined,
toBlock?: string | number | undefined
): Promise<Array<TypedEvent<EventArgsArray & EventArgsObject>>>;
interface: Version0Interface;
functions: {
VERSION(overrides?: CallOverrides): Promise<[number]>;
};
VERSION(overrides?: CallOverrides): Promise<number>;
callStatic: {
VERSION(overrides?: CallOverrides): Promise<number>;
};
filters: {};
estimateGas: {
VERSION(overrides?: CallOverrides): Promise<BigNumber>;
};
populateTransaction: {
VERSION(overrides?: CallOverrides): Promise<PopulatedTransaction>;
};
}

@ -0,0 +1,526 @@
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import {
ethers,
EventFilter,
Signer,
BigNumber,
BigNumberish,
PopulatedTransaction,
BaseContract,
ContractTransaction,
Overrides,
CallOverrides,
} from "ethers";
import { BytesLike } from "@ethersproject/bytes";
import { Listener, Provider } from "@ethersproject/providers";
import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi";
import { TypedEventFilter, TypedEvent, TypedListener } from "./commons";
interface XAppConnectionManagerInterface extends ethers.utils.Interface {
functions: {
"domainToReplica(uint32)": FunctionFragment;
"home()": FunctionFragment;
"isReplica(address)": FunctionFragment;
"localDomain()": FunctionFragment;
"owner()": FunctionFragment;
"ownerEnrollReplica(address,uint32)": FunctionFragment;
"ownerUnenrollReplica(address)": FunctionFragment;
"renounceOwnership()": FunctionFragment;
"replicaToDomain(address)": FunctionFragment;
"setHome(address)": FunctionFragment;
"setWatcherPermission(address,uint32,bool)": FunctionFragment;
"transferOwnership(address)": FunctionFragment;
"unenrollReplica(uint32,bytes32,bytes)": FunctionFragment;
"watcherPermission(address,uint32)": FunctionFragment;
};
encodeFunctionData(
functionFragment: "domainToReplica",
values: [BigNumberish]
): string;
encodeFunctionData(functionFragment: "home", values?: undefined): string;
encodeFunctionData(functionFragment: "isReplica", values: [string]): string;
encodeFunctionData(
functionFragment: "localDomain",
values?: undefined
): string;
encodeFunctionData(functionFragment: "owner", values?: undefined): string;
encodeFunctionData(
functionFragment: "ownerEnrollReplica",
values: [string, BigNumberish]
): string;
encodeFunctionData(
functionFragment: "ownerUnenrollReplica",
values: [string]
): string;
encodeFunctionData(
functionFragment: "renounceOwnership",
values?: undefined
): string;
encodeFunctionData(
functionFragment: "replicaToDomain",
values: [string]
): string;
encodeFunctionData(functionFragment: "setHome", values: [string]): string;
encodeFunctionData(
functionFragment: "setWatcherPermission",
values: [string, BigNumberish, boolean]
): string;
encodeFunctionData(
functionFragment: "transferOwnership",
values: [string]
): string;
encodeFunctionData(
functionFragment: "unenrollReplica",
values: [BigNumberish, BytesLike, BytesLike]
): string;
encodeFunctionData(
functionFragment: "watcherPermission",
values: [string, BigNumberish]
): string;
decodeFunctionResult(
functionFragment: "domainToReplica",
data: BytesLike
): Result;
decodeFunctionResult(functionFragment: "home", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "isReplica", data: BytesLike): Result;
decodeFunctionResult(
functionFragment: "localDomain",
data: BytesLike
): Result;
decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result;
decodeFunctionResult(
functionFragment: "ownerEnrollReplica",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "ownerUnenrollReplica",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "renounceOwnership",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "replicaToDomain",
data: BytesLike
): Result;
decodeFunctionResult(functionFragment: "setHome", data: BytesLike): Result;
decodeFunctionResult(
functionFragment: "setWatcherPermission",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "transferOwnership",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "unenrollReplica",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "watcherPermission",
data: BytesLike
): Result;
events: {
"OwnershipTransferred(address,address)": EventFragment;
"ReplicaEnrolled(uint32,address)": EventFragment;
"ReplicaUnenrolled(uint32,address)": EventFragment;
"WatcherPermissionSet(uint32,address,bool)": EventFragment;
};
getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment;
getEvent(nameOrSignatureOrTopic: "ReplicaEnrolled"): EventFragment;
getEvent(nameOrSignatureOrTopic: "ReplicaUnenrolled"): EventFragment;
getEvent(nameOrSignatureOrTopic: "WatcherPermissionSet"): EventFragment;
}
export class XAppConnectionManager extends BaseContract {
connect(signerOrProvider: Signer | Provider | string): this;
attach(addressOrName: string): this;
deployed(): Promise<this>;
listeners<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter?: TypedEventFilter<EventArgsArray, EventArgsObject>
): Array<TypedListener<EventArgsArray, EventArgsObject>>;
off<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
on<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
once<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
removeListener<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
listener: TypedListener<EventArgsArray, EventArgsObject>
): this;
removeAllListeners<EventArgsArray extends Array<any>, EventArgsObject>(
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>
): this;
listeners(eventName?: string): Array<Listener>;
off(eventName: string, listener: Listener): this;
on(eventName: string, listener: Listener): this;
once(eventName: string, listener: Listener): this;
removeListener(eventName: string, listener: Listener): this;
removeAllListeners(eventName?: string): this;
queryFilter<EventArgsArray extends Array<any>, EventArgsObject>(
event: TypedEventFilter<EventArgsArray, EventArgsObject>,
fromBlockOrBlockhash?: string | number | undefined,
toBlock?: string | number | undefined
): Promise<Array<TypedEvent<EventArgsArray & EventArgsObject>>>;
interface: XAppConnectionManagerInterface;
functions: {
domainToReplica(
arg0: BigNumberish,
overrides?: CallOverrides
): Promise<[string]>;
home(overrides?: CallOverrides): Promise<[string]>;
isReplica(_replica: string, overrides?: CallOverrides): Promise<[boolean]>;
localDomain(overrides?: CallOverrides): Promise<[number]>;
owner(overrides?: CallOverrides): Promise<[string]>;
ownerEnrollReplica(
_replica: string,
_domain: BigNumberish,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
ownerUnenrollReplica(
_replica: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
renounceOwnership(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
replicaToDomain(arg0: string, overrides?: CallOverrides): Promise<[number]>;
setHome(
_home: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
setWatcherPermission(
_watcher: string,
_domain: BigNumberish,
_access: boolean,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
transferOwnership(
newOwner: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
unenrollReplica(
_domain: BigNumberish,
_updater: BytesLike,
_signature: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
watcherPermission(
_watcher: string,
_domain: BigNumberish,
overrides?: CallOverrides
): Promise<[boolean]>;
};
domainToReplica(
arg0: BigNumberish,
overrides?: CallOverrides
): Promise<string>;
home(overrides?: CallOverrides): Promise<string>;
isReplica(_replica: string, overrides?: CallOverrides): Promise<boolean>;
localDomain(overrides?: CallOverrides): Promise<number>;
owner(overrides?: CallOverrides): Promise<string>;
ownerEnrollReplica(
_replica: string,
_domain: BigNumberish,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
ownerUnenrollReplica(
_replica: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
renounceOwnership(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
replicaToDomain(arg0: string, overrides?: CallOverrides): Promise<number>;
setHome(
_home: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
setWatcherPermission(
_watcher: string,
_domain: BigNumberish,
_access: boolean,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
transferOwnership(
newOwner: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
unenrollReplica(
_domain: BigNumberish,
_updater: BytesLike,
_signature: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
watcherPermission(
_watcher: string,
_domain: BigNumberish,
overrides?: CallOverrides
): Promise<boolean>;
callStatic: {
domainToReplica(
arg0: BigNumberish,
overrides?: CallOverrides
): Promise<string>;
home(overrides?: CallOverrides): Promise<string>;
isReplica(_replica: string, overrides?: CallOverrides): Promise<boolean>;
localDomain(overrides?: CallOverrides): Promise<number>;
owner(overrides?: CallOverrides): Promise<string>;
ownerEnrollReplica(
_replica: string,
_domain: BigNumberish,
overrides?: CallOverrides
): Promise<void>;
ownerUnenrollReplica(
_replica: string,
overrides?: CallOverrides
): Promise<void>;
renounceOwnership(overrides?: CallOverrides): Promise<void>;
replicaToDomain(arg0: string, overrides?: CallOverrides): Promise<number>;
setHome(_home: string, overrides?: CallOverrides): Promise<void>;
setWatcherPermission(
_watcher: string,
_domain: BigNumberish,
_access: boolean,
overrides?: CallOverrides
): Promise<void>;
transferOwnership(
newOwner: string,
overrides?: CallOverrides
): Promise<void>;
unenrollReplica(
_domain: BigNumberish,
_updater: BytesLike,
_signature: BytesLike,
overrides?: CallOverrides
): Promise<void>;
watcherPermission(
_watcher: string,
_domain: BigNumberish,
overrides?: CallOverrides
): Promise<boolean>;
};
filters: {
OwnershipTransferred(
previousOwner?: string | null,
newOwner?: string | null
): TypedEventFilter<
[string, string],
{ previousOwner: string; newOwner: string }
>;
ReplicaEnrolled(
domain?: BigNumberish | null,
replica?: null
): TypedEventFilter<[number, string], { domain: number; replica: string }>;
ReplicaUnenrolled(
domain?: BigNumberish | null,
replica?: null
): TypedEventFilter<[number, string], { domain: number; replica: string }>;
WatcherPermissionSet(
domain?: BigNumberish | null,
watcher?: null,
access?: null
): TypedEventFilter<
[number, string, boolean],
{ domain: number; watcher: string; access: boolean }
>;
};
estimateGas: {
domainToReplica(
arg0: BigNumberish,
overrides?: CallOverrides
): Promise<BigNumber>;
home(overrides?: CallOverrides): Promise<BigNumber>;
isReplica(_replica: string, overrides?: CallOverrides): Promise<BigNumber>;
localDomain(overrides?: CallOverrides): Promise<BigNumber>;
owner(overrides?: CallOverrides): Promise<BigNumber>;
ownerEnrollReplica(
_replica: string,
_domain: BigNumberish,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
ownerUnenrollReplica(
_replica: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
renounceOwnership(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
replicaToDomain(
arg0: string,
overrides?: CallOverrides
): Promise<BigNumber>;
setHome(
_home: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
setWatcherPermission(
_watcher: string,
_domain: BigNumberish,
_access: boolean,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
transferOwnership(
newOwner: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
unenrollReplica(
_domain: BigNumberish,
_updater: BytesLike,
_signature: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
watcherPermission(
_watcher: string,
_domain: BigNumberish,
overrides?: CallOverrides
): Promise<BigNumber>;
};
populateTransaction: {
domainToReplica(
arg0: BigNumberish,
overrides?: CallOverrides
): Promise<PopulatedTransaction>;
home(overrides?: CallOverrides): Promise<PopulatedTransaction>;
isReplica(
_replica: string,
overrides?: CallOverrides
): Promise<PopulatedTransaction>;
localDomain(overrides?: CallOverrides): Promise<PopulatedTransaction>;
owner(overrides?: CallOverrides): Promise<PopulatedTransaction>;
ownerEnrollReplica(
_replica: string,
_domain: BigNumberish,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
ownerUnenrollReplica(
_replica: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
renounceOwnership(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
replicaToDomain(
arg0: string,
overrides?: CallOverrides
): Promise<PopulatedTransaction>;
setHome(
_home: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
setWatcherPermission(
_watcher: string,
_domain: BigNumberish,
_access: boolean,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
transferOwnership(
newOwner: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
unenrollReplica(
_domain: BigNumberish,
_updater: BytesLike,
_signature: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
watcherPermission(
_watcher: string,
_domain: BigNumberish,
overrides?: CallOverrides
): Promise<PopulatedTransaction>;
};
}

@ -0,0 +1,36 @@
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import { EventFilter, Event } from "ethers";
import { Result } from "@ethersproject/abi";
export interface TypedEventFilter<_EventArgsArray, _EventArgsObject>
extends EventFilter {}
export interface TypedEvent<EventArgs extends Result> extends Event {
args: EventArgs;
}
export type TypedListener<
EventArgsArray extends Array<any>,
EventArgsObject
> = (
...listenerArg: [
...EventArgsArray,
TypedEvent<EventArgsArray & EventArgsObject>
]
) => void;
export type MinEthersFactory<C, ARGS> = {
deploy(...a: ARGS[]): Promise<C>;
};
export type GetContractTypeFromFactory<F> = F extends MinEthersFactory<
infer C,
any
>
? C
: never;
export type GetARGsTypeFromFactory<F> = F extends MinEthersFactory<any, any>
? Parameters<F["deploy"]>
: never;

@ -0,0 +1,70 @@
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers";
import { Provider, TransactionRequest } from "@ethersproject/providers";
import type { BadRecipient1, BadRecipient1Interface } from "../BadRecipient1";
const _abi = [
{
inputs: [
{
internalType: "uint32",
name: "",
type: "uint32",
},
{
internalType: "bytes32",
name: "",
type: "bytes32",
},
{
internalType: "bytes",
name: "",
type: "bytes",
},
],
name: "handle",
outputs: [],
stateMutability: "pure",
type: "function",
},
];
const _bytecode =
"0x608060405234801561001057600080fd5b50610117806100206000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c806356d5d47514602d575b600080fd5b60df60048036036060811015604157600080fd5b63ffffffff82351691602081013591810190606081016040820135640100000000811115606d57600080fd5b820183602082011115607e57600080fd5b80359060200191846001830284011164010000000083111715609f57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506028945050505050565b00fea26469706673582212203117ae1693eae5da24a6e5577157a0058bfb01a60a3d3d0a27a051482e0f787e64736f6c63430007060033";
export class BadRecipient1__factory extends ContractFactory {
constructor(signer?: Signer) {
super(_abi, _bytecode, signer);
}
deploy(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BadRecipient1> {
return super.deploy(overrides || {}) as Promise<BadRecipient1>;
}
getDeployTransaction(
overrides?: Overrides & { from?: string | Promise<string> }
): TransactionRequest {
return super.getDeployTransaction(overrides || {});
}
attach(address: string): BadRecipient1 {
return super.attach(address) as BadRecipient1;
}
connect(signer: Signer): BadRecipient1__factory {
return super.connect(signer) as BadRecipient1__factory;
}
static readonly bytecode = _bytecode;
static readonly abi = _abi;
static createInterface(): BadRecipient1Interface {
return new utils.Interface(_abi) as BadRecipient1Interface;
}
static connect(
address: string,
signerOrProvider: Signer | Provider
): BadRecipient1 {
return new Contract(address, _abi, signerOrProvider) as BadRecipient1;
}
}

@ -0,0 +1,70 @@
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers";
import { Provider, TransactionRequest } from "@ethersproject/providers";
import type { BadRecipient2, BadRecipient2Interface } from "../BadRecipient2";
const _abi = [
{
inputs: [
{
internalType: "uint32",
name: "",
type: "uint32",
},
{
internalType: "bytes32",
name: "",
type: "bytes32",
},
{
internalType: "bytes",
name: "",
type: "bytes",
},
],
name: "handle",
outputs: [],
stateMutability: "pure",
type: "function",
},
];
const _bytecode =
"0x608060405234801561001057600080fd5b50610117806100206000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c806356d5d47514602d575b600080fd5b60df60048036036060811015604157600080fd5b63ffffffff82351691602081013591810190606081016040820135640100000000811115606d57600080fd5b820183602082011115607e57600080fd5b80359060200191846001830284011164010000000083111715609f57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955060df945050505050565b00fea264697066735822122015f340edec8150a0a5acf888f811c882cb93e41d4c3439a3224ab159a251cd3a64736f6c63430007060033";
export class BadRecipient2__factory extends ContractFactory {
constructor(signer?: Signer) {
super(_abi, _bytecode, signer);
}
deploy(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BadRecipient2> {
return super.deploy(overrides || {}) as Promise<BadRecipient2>;
}
getDeployTransaction(
overrides?: Overrides & { from?: string | Promise<string> }
): TransactionRequest {
return super.getDeployTransaction(overrides || {});
}
attach(address: string): BadRecipient2 {
return super.attach(address) as BadRecipient2;
}
connect(signer: Signer): BadRecipient2__factory {
return super.connect(signer) as BadRecipient2__factory;
}
static readonly bytecode = _bytecode;
static readonly abi = _abi;
static createInterface(): BadRecipient2Interface {
return new utils.Interface(_abi) as BadRecipient2Interface;
}
static connect(
address: string,
signerOrProvider: Signer | Provider
): BadRecipient2 {
return new Contract(address, _abi, signerOrProvider) as BadRecipient2;
}
}

@ -0,0 +1,70 @@
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers";
import { Provider, TransactionRequest } from "@ethersproject/providers";
import type { BadRecipient3, BadRecipient3Interface } from "../BadRecipient3";
const _abi = [
{
inputs: [
{
internalType: "uint32",
name: "",
type: "uint32",
},
{
internalType: "bytes32",
name: "",
type: "bytes32",
},
{
internalType: "bytes",
name: "",
type: "bytes",
},
],
name: "handle",
outputs: [],
stateMutability: "pure",
type: "function",
},
];
const _bytecode =
"0x608060405234801561001057600080fd5b50610124806100206000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c806356d5d47514602d575b600080fd5b60df60048036036060811015604157600080fd5b63ffffffff82351691602081013591810190606081016040820135640100000000811115606d57600080fd5b820183602082011115607e57600080fd5b80359060200191846001830284011164010000000083111715609f57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955060e1945050505050565b005b62abcdef60005260206000fdfea2646970667358221220ebe6cd34d60c56fedb5458f11d4ed1a5a0954b199fd0cd646685a6dda46c497764736f6c63430007060033";
export class BadRecipient3__factory extends ContractFactory {
constructor(signer?: Signer) {
super(_abi, _bytecode, signer);
}
deploy(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BadRecipient3> {
return super.deploy(overrides || {}) as Promise<BadRecipient3>;
}
getDeployTransaction(
overrides?: Overrides & { from?: string | Promise<string> }
): TransactionRequest {
return super.getDeployTransaction(overrides || {});
}
attach(address: string): BadRecipient3 {
return super.attach(address) as BadRecipient3;
}
connect(signer: Signer): BadRecipient3__factory {
return super.connect(signer) as BadRecipient3__factory;
}
static readonly bytecode = _bytecode;
static readonly abi = _abi;
static createInterface(): BadRecipient3Interface {
return new utils.Interface(_abi) as BadRecipient3Interface;
}
static connect(
address: string,
signerOrProvider: Signer | Provider
): BadRecipient3 {
return new Contract(address, _abi, signerOrProvider) as BadRecipient3;
}
}

@ -0,0 +1,70 @@
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers";
import { Provider, TransactionRequest } from "@ethersproject/providers";
import type { BadRecipient4, BadRecipient4Interface } from "../BadRecipient4";
const _abi = [
{
inputs: [
{
internalType: "uint32",
name: "",
type: "uint32",
},
{
internalType: "bytes32",
name: "",
type: "bytes32",
},
{
internalType: "bytes",
name: "",
type: "bytes",
},
],
name: "handle",
outputs: [],
stateMutability: "pure",
type: "function",
},
];
const _bytecode =
"0x608060405234801561001057600080fd5b50610124806100206000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c806356d5d47514602d575b600080fd5b60df60048036036060811015604157600080fd5b63ffffffff82351691602081013591810190606081016040820135640100000000811115606d57600080fd5b820183602082011115607e57600080fd5b80359060200191846001830284011164010000000083111715609f57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955060e1945050505050565b005b62abcdef60005260206000f3fea2646970667358221220177e0626c8693836f2b6f508fb993cc339d3e4f2f9c9f13475d1af5f0bb34b4e64736f6c63430007060033";
export class BadRecipient4__factory extends ContractFactory {
constructor(signer?: Signer) {
super(_abi, _bytecode, signer);
}
deploy(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BadRecipient4> {
return super.deploy(overrides || {}) as Promise<BadRecipient4>;
}
getDeployTransaction(
overrides?: Overrides & { from?: string | Promise<string> }
): TransactionRequest {
return super.getDeployTransaction(overrides || {});
}
attach(address: string): BadRecipient4 {
return super.attach(address) as BadRecipient4;
}
connect(signer: Signer): BadRecipient4__factory {
return super.connect(signer) as BadRecipient4__factory;
}
static readonly bytecode = _bytecode;
static readonly abi = _abi;
static createInterface(): BadRecipient4Interface {
return new utils.Interface(_abi) as BadRecipient4Interface;
}
static connect(
address: string,
signerOrProvider: Signer | Provider
): BadRecipient4 {
return new Contract(address, _abi, signerOrProvider) as BadRecipient4;
}
}

@ -0,0 +1,70 @@
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers";
import { Provider, TransactionRequest } from "@ethersproject/providers";
import type { BadRecipient5, BadRecipient5Interface } from "../BadRecipient5";
const _abi = [
{
inputs: [
{
internalType: "uint32",
name: "",
type: "uint32",
},
{
internalType: "bytes32",
name: "",
type: "bytes32",
},
{
internalType: "bytes",
name: "",
type: "bytes",
},
],
name: "handle",
outputs: [],
stateMutability: "pure",
type: "function",
},
];
const _bytecode =
"0x608060405234801561001057600080fd5b50610187806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c806356d5d47514610030575b600080fd5b6100e86004803603606081101561004657600080fd5b63ffffffff8235169160208101359181019060608101604082013564010000000081111561007357600080fd5b82018360208201111561008557600080fd5b803590602001918460018302840111640100000000831117156100a757600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506100ea945050505050565b005b604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f6e6f2063616e20646f0000000000000000000000000000000000000000000000604482015290519081900360640190fdfea264697066735822122005bff28742770cfa349a79ff0d13671853ca6c36d1162f1dca3e148ca67b604364736f6c63430007060033";
export class BadRecipient5__factory extends ContractFactory {
constructor(signer?: Signer) {
super(_abi, _bytecode, signer);
}
deploy(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BadRecipient5> {
return super.deploy(overrides || {}) as Promise<BadRecipient5>;
}
getDeployTransaction(
overrides?: Overrides & { from?: string | Promise<string> }
): TransactionRequest {
return super.getDeployTransaction(overrides || {});
}
attach(address: string): BadRecipient5 {
return super.attach(address) as BadRecipient5;
}
connect(signer: Signer): BadRecipient5__factory {
return super.connect(signer) as BadRecipient5__factory;
}
static readonly bytecode = _bytecode;
static readonly abi = _abi;
static createInterface(): BadRecipient5Interface {
return new utils.Interface(_abi) as BadRecipient5Interface;
}
static connect(
address: string,
signerOrProvider: Signer | Provider
): BadRecipient5 {
return new Contract(address, _abi, signerOrProvider) as BadRecipient5;
}
}

@ -0,0 +1,70 @@
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers";
import { Provider, TransactionRequest } from "@ethersproject/providers";
import type { BadRecipient6, BadRecipient6Interface } from "../BadRecipient6";
const _abi = [
{
inputs: [
{
internalType: "uint32",
name: "",
type: "uint32",
},
{
internalType: "bytes32",
name: "",
type: "bytes32",
},
{
internalType: "bytes",
name: "",
type: "bytes",
},
],
name: "handle",
outputs: [],
stateMutability: "pure",
type: "function",
},
];
const _bytecode =
"0x608060405234801561001057600080fd5b50610117806100206000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c806356d5d47514602d575b600080fd5b60df60048036036060811015604157600080fd5b63ffffffff82351691602081013591810190606081016040820135640100000000811115606d57600080fd5b820183602082011115607e57600080fd5b80359060200191846001830284011164010000000083111715609f57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506028945050505050565b00fea2646970667358221220e4e58579306f6204f12ceaa33bf9d882837d909bf16a1d0feff175c36a8ec99064736f6c63430007060033";
export class BadRecipient6__factory extends ContractFactory {
constructor(signer?: Signer) {
super(_abi, _bytecode, signer);
}
deploy(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BadRecipient6> {
return super.deploy(overrides || {}) as Promise<BadRecipient6>;
}
getDeployTransaction(
overrides?: Overrides & { from?: string | Promise<string> }
): TransactionRequest {
return super.getDeployTransaction(overrides || {});
}
attach(address: string): BadRecipient6 {
return super.attach(address) as BadRecipient6;
}
connect(signer: Signer): BadRecipient6__factory {
return super.connect(signer) as BadRecipient6__factory;
}
static readonly bytecode = _bytecode;
static readonly abi = _abi;
static createInterface(): BadRecipient6Interface {
return new utils.Interface(_abi) as BadRecipient6Interface;
}
static connect(
address: string,
signerOrProvider: Signer | Provider
): BadRecipient6 {
return new Contract(address, _abi, signerOrProvider) as BadRecipient6;
}
}

@ -0,0 +1,68 @@
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers";
import { Provider, TransactionRequest } from "@ethersproject/providers";
import type {
BadRecipientHandle,
BadRecipientHandleInterface,
} from "../BadRecipientHandle";
const _abi = [
{
inputs: [
{
internalType: "uint32",
name: "",
type: "uint32",
},
{
internalType: "bytes32",
name: "",
type: "bytes32",
},
],
name: "handle",
outputs: [],
stateMutability: "pure",
type: "function",
},
];
const _bytecode =
"0x6080604052348015600f57600080fd5b50608f8061001e6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c8063c122ad8d14602d575b600080fd5b605360048036036040811015604157600080fd5b5063ffffffff81351690602001356055565b005b505056fea2646970667358221220f12eb0ee3b0ef6e5ecfb5840d141b289fb62ac8961ed2d136c581457e678076364736f6c63430007060033";
export class BadRecipientHandle__factory extends ContractFactory {
constructor(signer?: Signer) {
super(_abi, _bytecode, signer);
}
deploy(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BadRecipientHandle> {
return super.deploy(overrides || {}) as Promise<BadRecipientHandle>;
}
getDeployTransaction(
overrides?: Overrides & { from?: string | Promise<string> }
): TransactionRequest {
return super.getDeployTransaction(overrides || {});
}
attach(address: string): BadRecipientHandle {
return super.attach(address) as BadRecipientHandle;
}
connect(signer: Signer): BadRecipientHandle__factory {
return super.connect(signer) as BadRecipientHandle__factory;
}
static readonly bytecode = _bytecode;
static readonly abi = _abi;
static createInterface(): BadRecipientHandleInterface {
return new utils.Interface(_abi) as BadRecipientHandleInterface;
}
static connect(
address: string,
signerOrProvider: Signer | Provider
): BadRecipientHandle {
return new Contract(address, _abi, signerOrProvider) as BadRecipientHandle;
}
}

@ -0,0 +1,188 @@
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import { Contract, Signer, utils } from "ethers";
import { Provider } from "@ethersproject/providers";
import type { Common, CommonInterface } from "../Common";
const _abi = [
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "bytes32",
name: "oldRoot",
type: "bytes32",
},
{
indexed: false,
internalType: "bytes32[2]",
name: "newRoot",
type: "bytes32[2]",
},
{
indexed: false,
internalType: "bytes",
name: "signature",
type: "bytes",
},
{
indexed: false,
internalType: "bytes",
name: "signature2",
type: "bytes",
},
],
name: "DoubleUpdate",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "address",
name: "updater",
type: "address",
},
],
name: "NewUpdater",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "uint32",
name: "homeDomain",
type: "uint32",
},
{
indexed: true,
internalType: "bytes32",
name: "oldRoot",
type: "bytes32",
},
{
indexed: true,
internalType: "bytes32",
name: "newRoot",
type: "bytes32",
},
{
indexed: false,
internalType: "bytes",
name: "signature",
type: "bytes",
},
],
name: "Update",
type: "event",
},
{
inputs: [],
name: "committedRoot",
outputs: [
{
internalType: "bytes32",
name: "",
type: "bytes32",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "bytes32",
name: "_oldRoot",
type: "bytes32",
},
{
internalType: "bytes32[2]",
name: "_newRoot",
type: "bytes32[2]",
},
{
internalType: "bytes",
name: "_signature",
type: "bytes",
},
{
internalType: "bytes",
name: "_signature2",
type: "bytes",
},
],
name: "doubleUpdate",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [],
name: "homeDomainHash",
outputs: [
{
internalType: "bytes32",
name: "",
type: "bytes32",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "localDomain",
outputs: [
{
internalType: "uint32",
name: "",
type: "uint32",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "state",
outputs: [
{
internalType: "enum Common.States",
name: "",
type: "uint8",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "updater",
outputs: [
{
internalType: "address",
name: "",
type: "address",
},
],
stateMutability: "view",
type: "function",
},
];
export class Common__factory {
static readonly abi = _abi;
static createInterface(): CommonInterface {
return new utils.Interface(_abi) as CommonInterface;
}
static connect(address: string, signerOrProvider: Signer | Provider): Common {
return new Contract(address, _abi, signerOrProvider) as Common;
}
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1,49 @@
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import { Contract, Signer, utils } from "ethers";
import { Provider } from "@ethersproject/providers";
import type {
IMessageRecipient,
IMessageRecipientInterface,
} from "../IMessageRecipient";
const _abi = [
{
inputs: [
{
internalType: "uint32",
name: "_origin",
type: "uint32",
},
{
internalType: "bytes32",
name: "_sender",
type: "bytes32",
},
{
internalType: "bytes",
name: "_message",
type: "bytes",
},
],
name: "handle",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
];
export class IMessageRecipient__factory {
static readonly abi = _abi;
static createInterface(): IMessageRecipientInterface {
return new utils.Interface(_abi) as IMessageRecipientInterface;
}
static connect(
address: string,
signerOrProvider: Signer | Provider
): IMessageRecipient {
return new Contract(address, _abi, signerOrProvider) as IMessageRecipient;
}
}

@ -0,0 +1,52 @@
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import { Contract, Signer, utils } from "ethers";
import { Provider } from "@ethersproject/providers";
import type {
IUpdaterManager,
IUpdaterManagerInterface,
} from "../IUpdaterManager";
const _abi = [
{
inputs: [
{
internalType: "address payable",
name: "_reporter",
type: "address",
},
],
name: "slashUpdater",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [],
name: "updater",
outputs: [
{
internalType: "address",
name: "",
type: "address",
},
],
stateMutability: "view",
type: "function",
},
];
export class IUpdaterManager__factory {
static readonly abi = _abi;
static createInterface(): IUpdaterManagerInterface {
return new utils.Interface(_abi) as IUpdaterManagerInterface;
}
static connect(
address: string,
signerOrProvider: Signer | Provider
): IUpdaterManager {
return new Contract(address, _abi, signerOrProvider) as IUpdaterManager;
}
}

@ -0,0 +1,60 @@
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers";
import { Provider, TransactionRequest } from "@ethersproject/providers";
import type { MerkleLib, MerkleLibInterface } from "../MerkleLib";
const _abi = [
{
inputs: [],
name: "zeroHashes",
outputs: [
{
internalType: "bytes32[32]",
name: "_zeroes",
type: "bytes32[32]",
},
],
stateMutability: "pure",
type: "function",
},
];
const _bytecode =
"0x610591610026600b82828239805160001a60731461001957fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c8063b35658081461003a575b600080fd5b61004261007b565b604051808261040080838360005b83811015610068578181015183820152602001610050565b5050505090500191505060405180910390f35b61008361053c565b600081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb560208201527fb4c11951957c6f8f642c4af61cd6b24640fec6dc7fc607ee8206a99e92410d3060408201527f21ddb9a356815c3fac1026b6dec5df3124afbadb485c9ba5a3e3398a04b7ba8560608201527fe58769b32a1beaf1ea27375a44095a0d1fb664ce2dd358e7fcbfb78c26a1934460808201527f0eb01ebfc9ed27500cd4dfc979272d1f0913cc9f66540d7e8005811109e1cf2d60a08201527f887c22bd8750d34016ac3c66b5ff102dacdd73f6b014e710b51e8022af9a196860c08201527fffd70157e48063fc33c97a050f7f640233bf646cc98d9524c6b92bcf3ab56f8360e08201527f9867cc5f7f196b93bae1e27e6320742445d290f2263827498b54fec539f756af6101008201527fcefad4e508c098b9a7e1d8feb19955fb02ba9675585078710969d3440f5054e06101208201527ff9dc3e7fe016e050eff260334f18a5d4fe391d82092319f5964f2e2eb7c1c3a56101408201527ff8b13a49e282f609c317a833fb8d976d11517c571d1221a265d25af778ecf8926101608201527f3490c6ceeb450aecdc82e28293031d10c7d73bf85e57bf041a97360aa2c5d99c6101808201527fc1df82d9c4b87413eae2ef048f94b4d3554cea73d92b0f7af96e0271c691e2bb6101a08201527f5c67add7c6caf302256adedf7ab114da0acfe870d449a3a489f781d659e8becc6101c08201527fda7bce9f4e8618b6bd2f4132ce798cdc7a60e7e1460a7299e3c6342a579626d26101e08201527f2733e50f526ec2fa19a22b31e8ed50f23cd1fdf94c9154ed3a7609a2f1ff981f6102008201527fe1d3b5c807b281e4683cc6d6315cf95b9ade8641defcb32372f1c126e398ef7a6102208201527f5a2dce0a8a7f68bb74560f8f71837c2c2ebbcbf7fffb42ae1896f13f7c7479a06102408201527fb46a28b6f55540f89444f63de0378e3d121be09e06cc9ded1c20e65876d36aa06102608201527fc65e9645644786b620e2dd2ad648ddfcbf4a7e5b1a3a4ecfe7f64667a3f0b7e26102808201527ff4418588ed35a2458cffeb39b93d26f18d2ab13bdce6aee58e7b99359ec2dfd96102a08201527f5a9c16dc00d6ef18b7933a6f8dc65ccb55667138776f7dea101070dc8796e3776102c08201527f4df84f40ae0c8229d0d6069e5c8f39a7c299677a09d367fc7b05e3bc380ee6526102e08201527fcdc72595f74c7b1043d0e1ffbab734648c838dfb0527d971b602bc216c9619ef6103008201527f0abf5ac974a1ed57f4050aa510dd9c74f508277b39d7973bb2dfccc5eeb0618d6103208201527fb8cd74046ff337f0a7bf2c8e03e10f642c1886798d71806ab1e888d9e5ee87d06103408201527f838c5655cb21c6cb83313b5a631175dff4963772cce9108188b34ac87c81c41e6103608201527f662ee4dd2dd7b2bc707961b1e646c4047669dcb6584f0d8d770daf5d7e7deb2e6103808201527f388ab20e2573d171a88108e79d820e98f26c0b84aa8b2f4aa4968dbb818ea3226103a08201527f93237c50ba75ee485f4c22adf2f741400bdf8d6a9cc7df7ecae576221665d7356103c08201527f8448818bb4ae4562849e949e17ac16e0be16688e156b5cf15e098c627c0056a96103e082015290565b604051806104000160405280602090602082028036833750919291505056fea2646970667358221220ad3bfe4cefe5c51f17b8c40895bafc1076c16176a71ee813684032f85042016e64736f6c63430007060033";
export class MerkleLib__factory extends ContractFactory {
constructor(signer?: Signer) {
super(_abi, _bytecode, signer);
}
deploy(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<MerkleLib> {
return super.deploy(overrides || {}) as Promise<MerkleLib>;
}
getDeployTransaction(
overrides?: Overrides & { from?: string | Promise<string> }
): TransactionRequest {
return super.getDeployTransaction(overrides || {});
}
attach(address: string): MerkleLib {
return super.attach(address) as MerkleLib;
}
connect(signer: Signer): MerkleLib__factory {
return super.connect(signer) as MerkleLib__factory;
}
static readonly bytecode = _bytecode;
static readonly abi = _abi;
static createInterface(): MerkleLibInterface {
return new utils.Interface(_abi) as MerkleLibInterface;
}
static connect(
address: string,
signerOrProvider: Signer | Provider
): MerkleLib {
return new Contract(address, _abi, signerOrProvider) as MerkleLib;
}
}

@ -0,0 +1,89 @@
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers";
import { Provider, TransactionRequest } from "@ethersproject/providers";
import type {
MerkleTreeManager,
MerkleTreeManagerInterface,
} from "../MerkleTreeManager";
const _abi = [
{
inputs: [],
name: "count",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "root",
outputs: [
{
internalType: "bytes32",
name: "",
type: "bytes32",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "tree",
outputs: [
{
internalType: "uint256",
name: "count",
type: "uint256",
},
],
stateMutability: "view",
type: "function",
},
];
const _bytecode =
"0x608060405234801561001057600080fd5b5061067a806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806306661abd14610046578063ebf0c71714610060578063fd54b22814610068575b600080fd5b61004e610070565b60408051918252519081900360200190f35b61004e610076565b61004e610087565b60205490565b6000610082600061008d565b905090565b60205481565b60006100a08261009b6100a6565b610567565b92915050565b6100ae610625565b600081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb560208201527fb4c11951957c6f8f642c4af61cd6b24640fec6dc7fc607ee8206a99e92410d3060408201527f21ddb9a356815c3fac1026b6dec5df3124afbadb485c9ba5a3e3398a04b7ba8560608201527fe58769b32a1beaf1ea27375a44095a0d1fb664ce2dd358e7fcbfb78c26a1934460808201527f0eb01ebfc9ed27500cd4dfc979272d1f0913cc9f66540d7e8005811109e1cf2d60a08201527f887c22bd8750d34016ac3c66b5ff102dacdd73f6b014e710b51e8022af9a196860c08201527fffd70157e48063fc33c97a050f7f640233bf646cc98d9524c6b92bcf3ab56f8360e08201527f9867cc5f7f196b93bae1e27e6320742445d290f2263827498b54fec539f756af6101008201527fcefad4e508c098b9a7e1d8feb19955fb02ba9675585078710969d3440f5054e06101208201527ff9dc3e7fe016e050eff260334f18a5d4fe391d82092319f5964f2e2eb7c1c3a56101408201527ff8b13a49e282f609c317a833fb8d976d11517c571d1221a265d25af778ecf8926101608201527f3490c6ceeb450aecdc82e28293031d10c7d73bf85e57bf041a97360aa2c5d99c6101808201527fc1df82d9c4b87413eae2ef048f94b4d3554cea73d92b0f7af96e0271c691e2bb6101a08201527f5c67add7c6caf302256adedf7ab114da0acfe870d449a3a489f781d659e8becc6101c08201527fda7bce9f4e8618b6bd2f4132ce798cdc7a60e7e1460a7299e3c6342a579626d26101e08201527f2733e50f526ec2fa19a22b31e8ed50f23cd1fdf94c9154ed3a7609a2f1ff981f6102008201527fe1d3b5c807b281e4683cc6d6315cf95b9ade8641defcb32372f1c126e398ef7a6102208201527f5a2dce0a8a7f68bb74560f8f71837c2c2ebbcbf7fffb42ae1896f13f7c7479a06102408201527fb46a28b6f55540f89444f63de0378e3d121be09e06cc9ded1c20e65876d36aa06102608201527fc65e9645644786b620e2dd2ad648ddfcbf4a7e5b1a3a4ecfe7f64667a3f0b7e26102808201527ff4418588ed35a2458cffeb39b93d26f18d2ab13bdce6aee58e7b99359ec2dfd96102a08201527f5a9c16dc00d6ef18b7933a6f8dc65ccb55667138776f7dea101070dc8796e3776102c08201527f4df84f40ae0c8229d0d6069e5c8f39a7c299677a09d367fc7b05e3bc380ee6526102e08201527fcdc72595f74c7b1043d0e1ffbab734648c838dfb0527d971b602bc216c9619ef6103008201527f0abf5ac974a1ed57f4050aa510dd9c74f508277b39d7973bb2dfccc5eeb0618d6103208201527fb8cd74046ff337f0a7bf2c8e03e10f642c1886798d71806ab1e888d9e5ee87d06103408201527f838c5655cb21c6cb83313b5a631175dff4963772cce9108188b34ac87c81c41e6103608201527f662ee4dd2dd7b2bc707961b1e646c4047669dcb6584f0d8d770daf5d7e7deb2e6103808201527f388ab20e2573d171a88108e79d820e98f26c0b84aa8b2f4aa4968dbb818ea3226103a08201527f93237c50ba75ee485f4c22adf2f741400bdf8d6a9cc7df7ecae576221665d7356103c08201527f8448818bb4ae4562849e949e17ac16e0be16688e156b5cf15e098c627c0056a96103e082015290565b6020820154600090815b602081101561061d57600182821c16600086836020811061058e57fe5b0154905081600114156105d15780856040516020018083815260200182815260200192505050604051602081830303815290604052805190602001209450610613565b848684602081106105de57fe5b602002015160405160200180838152602001828152602001925050506040516020818303038152906040528051906020012094505b5050600101610571565b505092915050565b604051806104000160405280602090602082028036833750919291505056fea26469706673582212203a85471519851d2f70affe5fe6cefaad02a6b1f4b075bb70f894a0282509d1ad64736f6c63430007060033";
export class MerkleTreeManager__factory extends ContractFactory {
constructor(signer?: Signer) {
super(_abi, _bytecode, signer);
}
deploy(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<MerkleTreeManager> {
return super.deploy(overrides || {}) as Promise<MerkleTreeManager>;
}
getDeployTransaction(
overrides?: Overrides & { from?: string | Promise<string> }
): TransactionRequest {
return super.getDeployTransaction(overrides || {});
}
attach(address: string): MerkleTreeManager {
return super.attach(address) as MerkleTreeManager;
}
connect(signer: Signer): MerkleTreeManager__factory {
return super.connect(signer) as MerkleTreeManager__factory;
}
static readonly bytecode = _bytecode;
static readonly abi = _abi;
static createInterface(): MerkleTreeManagerInterface {
return new utils.Interface(_abi) as MerkleTreeManagerInterface;
}
static connect(
address: string,
signerOrProvider: Signer | Provider
): MerkleTreeManager {
return new Contract(address, _abi, signerOrProvider) as MerkleTreeManager;
}
}

@ -0,0 +1,128 @@
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers";
import { Provider, TransactionRequest } from "@ethersproject/providers";
import type { MysteryMathV1, MysteryMathV1Interface } from "../MysteryMathV1";
const _abi = [
{
inputs: [],
stateMutability: "nonpayable",
type: "constructor",
},
{
inputs: [
{
internalType: "uint256",
name: "a",
type: "uint256",
},
{
internalType: "uint256",
name: "b",
type: "uint256",
},
],
name: "doMath",
outputs: [
{
internalType: "uint256",
name: "_result",
type: "uint256",
},
],
stateMutability: "pure",
type: "function",
},
{
inputs: [],
name: "getState",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "uint256",
name: "_var",
type: "uint256",
},
],
name: "setState",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [],
name: "stateVar",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "version",
outputs: [
{
internalType: "uint32",
name: "",
type: "uint32",
},
],
stateMutability: "view",
type: "function",
},
];
const _bytecode =
"0x60a060405234801561001057600080fd5b50600160e01b60805260016101606100316000398060f952506101606000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c8063793816ec11610050578063793816ec146100a7578063a9e966b7146100af578063d6c4979c146100ce57610067565b80631865c57d1461006c57806354fd4d5014610086575b600080fd5b6100746100f1565b60408051918252519081900360200190f35b61008e6100f7565b6040805163ffffffff9092168252519081900360200190f35b61007461011b565b6100cc600480360360208110156100c557600080fd5b5035610121565b005b610074600480360360408110156100e457600080fd5b5080359060200135610126565b60005490565b7f000000000000000000000000000000000000000000000000000000000000000081565b60005481565b600055565b019056fea26469706673582212202cd3e240eb7513b7e99ad8aad10be88dc51153cca445d8263caebdc15674f10564736f6c63430007060033";
export class MysteryMathV1__factory extends ContractFactory {
constructor(signer?: Signer) {
super(_abi, _bytecode, signer);
}
deploy(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<MysteryMathV1> {
return super.deploy(overrides || {}) as Promise<MysteryMathV1>;
}
getDeployTransaction(
overrides?: Overrides & { from?: string | Promise<string> }
): TransactionRequest {
return super.getDeployTransaction(overrides || {});
}
attach(address: string): MysteryMathV1 {
return super.attach(address) as MysteryMathV1;
}
connect(signer: Signer): MysteryMathV1__factory {
return super.connect(signer) as MysteryMathV1__factory;
}
static readonly bytecode = _bytecode;
static readonly abi = _abi;
static createInterface(): MysteryMathV1Interface {
return new utils.Interface(_abi) as MysteryMathV1Interface;
}
static connect(
address: string,
signerOrProvider: Signer | Provider
): MysteryMathV1 {
return new Contract(address, _abi, signerOrProvider) as MysteryMathV1;
}
}

@ -0,0 +1,128 @@
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers";
import { Provider, TransactionRequest } from "@ethersproject/providers";
import type { MysteryMathV2, MysteryMathV2Interface } from "../MysteryMathV2";
const _abi = [
{
inputs: [],
stateMutability: "nonpayable",
type: "constructor",
},
{
inputs: [
{
internalType: "uint256",
name: "a",
type: "uint256",
},
{
internalType: "uint256",
name: "b",
type: "uint256",
},
],
name: "doMath",
outputs: [
{
internalType: "uint256",
name: "_result",
type: "uint256",
},
],
stateMutability: "pure",
type: "function",
},
{
inputs: [],
name: "getState",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "uint256",
name: "_var",
type: "uint256",
},
],
name: "setState",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [],
name: "stateVar",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "version",
outputs: [
{
internalType: "uint32",
name: "",
type: "uint32",
},
],
stateMutability: "view",
type: "function",
},
];
const _bytecode =
"0x60a060405234801561001057600080fd5b50600160e11b60805260026101606100316000398060f952506101606000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c8063793816ec11610050578063793816ec146100a7578063a9e966b7146100af578063d6c4979c146100ce57610067565b80631865c57d1461006c57806354fd4d5014610086575b600080fd5b6100746100f1565b60408051918252519081900360200190f35b61008e6100f7565b6040805163ffffffff9092168252519081900360200190f35b61007461011b565b6100cc600480360360208110156100c557600080fd5b5035610121565b005b610074600480360360408110156100e457600080fd5b5080359060200135610126565b60005490565b7f000000000000000000000000000000000000000000000000000000000000000081565b60005481565b600055565b029056fea264697066735822122034f6d0a8100e82e9f9e2453439dbf2c723da18fb2f703bfcfb8f313bc5d5b35164736f6c63430007060033";
export class MysteryMathV2__factory extends ContractFactory {
constructor(signer?: Signer) {
super(_abi, _bytecode, signer);
}
deploy(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<MysteryMathV2> {
return super.deploy(overrides || {}) as Promise<MysteryMathV2>;
}
getDeployTransaction(
overrides?: Overrides & { from?: string | Promise<string> }
): TransactionRequest {
return super.getDeployTransaction(overrides || {});
}
attach(address: string): MysteryMathV2 {
return super.attach(address) as MysteryMathV2;
}
connect(signer: Signer): MysteryMathV2__factory {
return super.connect(signer) as MysteryMathV2__factory;
}
static readonly bytecode = _bytecode;
static readonly abi = _abi;
static createInterface(): MysteryMathV2Interface {
return new utils.Interface(_abi) as MysteryMathV2Interface;
}
static connect(
address: string,
signerOrProvider: Signer | Provider
): MysteryMathV2 {
return new Contract(address, _abi, signerOrProvider) as MysteryMathV2;
}
}

@ -0,0 +1,86 @@
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import { Contract, Signer, utils } from "ethers";
import { Provider } from "@ethersproject/providers";
import type { MysteryMath, MysteryMathInterface } from "../MysteryMath";
const _abi = [
{
inputs: [
{
internalType: "uint256",
name: "a",
type: "uint256",
},
{
internalType: "uint256",
name: "b",
type: "uint256",
},
],
name: "doMath",
outputs: [
{
internalType: "uint256",
name: "_result",
type: "uint256",
},
],
stateMutability: "pure",
type: "function",
},
{
inputs: [],
name: "getState",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "uint256",
name: "_var",
type: "uint256",
},
],
name: "setState",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [],
name: "stateVar",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
stateMutability: "view",
type: "function",
},
];
export class MysteryMath__factory {
static readonly abi = _abi;
static createInterface(): MysteryMathInterface {
return new utils.Interface(_abi) as MysteryMathInterface;
}
static connect(
address: string,
signerOrProvider: Signer | Provider
): MysteryMath {
return new Contract(address, _abi, signerOrProvider) as MysteryMath;
}
}

@ -0,0 +1,78 @@
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import { Contract, Signer, utils } from "ethers";
import { Provider } from "@ethersproject/providers";
import type {
OwnableUpgradeable,
OwnableUpgradeableInterface,
} from "../OwnableUpgradeable";
const _abi = [
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "address",
name: "previousOwner",
type: "address",
},
{
indexed: true,
internalType: "address",
name: "newOwner",
type: "address",
},
],
name: "OwnershipTransferred",
type: "event",
},
{
inputs: [],
name: "owner",
outputs: [
{
internalType: "address",
name: "",
type: "address",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "renounceOwnership",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "address",
name: "newOwner",
type: "address",
},
],
name: "transferOwnership",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
];
export class OwnableUpgradeable__factory {
static readonly abi = _abi;
static createInterface(): OwnableUpgradeableInterface {
return new utils.Interface(_abi) as OwnableUpgradeableInterface;
}
static connect(
address: string,
signerOrProvider: Signer | Provider
): OwnableUpgradeable {
return new Contract(address, _abi, signerOrProvider) as OwnableUpgradeable;
}
}

@ -0,0 +1,75 @@
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import { Contract, Signer, utils } from "ethers";
import { Provider } from "@ethersproject/providers";
import type { Ownable, OwnableInterface } from "../Ownable";
const _abi = [
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "address",
name: "previousOwner",
type: "address",
},
{
indexed: true,
internalType: "address",
name: "newOwner",
type: "address",
},
],
name: "OwnershipTransferred",
type: "event",
},
{
inputs: [],
name: "owner",
outputs: [
{
internalType: "address",
name: "",
type: "address",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "renounceOwnership",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "address",
name: "newOwner",
type: "address",
},
],
name: "transferOwnership",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
];
export class Ownable__factory {
static readonly abi = _abi;
static createInterface(): OwnableInterface {
return new utils.Interface(_abi) as OwnableInterface;
}
static connect(
address: string,
signerOrProvider: Signer | Provider
): Ownable {
return new Contract(address, _abi, signerOrProvider) as Ownable;
}
}

@ -0,0 +1,92 @@
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers";
import { Provider, TransactionRequest } from "@ethersproject/providers";
import type { QueueManager, QueueManagerInterface } from "../QueueManager";
const _abi = [
{
inputs: [
{
internalType: "bytes32",
name: "_item",
type: "bytes32",
},
],
name: "queueContains",
outputs: [
{
internalType: "bool",
name: "",
type: "bool",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "queueEnd",
outputs: [
{
internalType: "bytes32",
name: "",
type: "bytes32",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "queueLength",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
stateMutability: "view",
type: "function",
},
];
const _bytecode =
"0x608060405234801561001057600080fd5b50610210806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80632bef289214610046578063ab91c7b014610077578063f6d1610214610091575b600080fd5b6100636004803603602081101561005c57600080fd5b5035610099565b604080519115158252519081900360200190f35b61007f6100ac565b60408051918252519081900360200190f35b61007f6100bd565b60006100a66001836100c9565b92915050565b60006100b86001610143565b905090565b60006100b86001610183565b81546000906fffffffffffffffffffffffffffffffff165b835470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1681116101395760008181526001850160205260409020548314156101315760019150506100a6565b6001016100e1565b5060009392505050565b80546000906fffffffffffffffffffffffffffffffff70010000000000000000000000000000000082048116911661017b82826101c0565b949350505050565b805470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1660009081526001909101602052604090205490565b60019103016fffffffffffffffffffffffffffffffff169056fea26469706673582212203986df16bf8151067b530f7c4dd7bfa6f63b1423d179f41091358a28bd2a54e564736f6c63430007060033";
export class QueueManager__factory extends ContractFactory {
constructor(signer?: Signer) {
super(_abi, _bytecode, signer);
}
deploy(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<QueueManager> {
return super.deploy(overrides || {}) as Promise<QueueManager>;
}
getDeployTransaction(
overrides?: Overrides & { from?: string | Promise<string> }
): TransactionRequest {
return super.getDeployTransaction(overrides || {});
}
attach(address: string): QueueManager {
return super.attach(address) as QueueManager;
}
connect(signer: Signer): QueueManager__factory {
return super.connect(signer) as QueueManager__factory;
}
static readonly bytecode = _bytecode;
static readonly abi = _abi;
static createInterface(): QueueManagerInterface {
return new utils.Interface(_abi) as QueueManagerInterface;
}
static connect(
address: string,
signerOrProvider: Signer | Provider
): QueueManager {
return new Contract(address, _abi, signerOrProvider) as QueueManager;
}
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1,133 @@
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers";
import { Provider, TransactionRequest } from "@ethersproject/providers";
import type { TestMerkle, TestMerkleInterface } from "../TestMerkle";
const _abi = [
{
inputs: [],
stateMutability: "nonpayable",
type: "constructor",
},
{
inputs: [
{
internalType: "bytes32",
name: "_leaf",
type: "bytes32",
},
{
internalType: "bytes32[32]",
name: "_proof",
type: "bytes32[32]",
},
{
internalType: "uint256",
name: "_index",
type: "uint256",
},
],
name: "branchRoot",
outputs: [
{
internalType: "bytes32",
name: "_node",
type: "bytes32",
},
],
stateMutability: "pure",
type: "function",
},
{
inputs: [],
name: "count",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "bytes32",
name: "_node",
type: "bytes32",
},
],
name: "insert",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [],
name: "root",
outputs: [
{
internalType: "bytes32",
name: "",
type: "bytes32",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "tree",
outputs: [
{
internalType: "uint256",
name: "count",
type: "uint256",
},
],
stateMutability: "view",
type: "function",
},
];
const _bytecode =
"0x608060405234801561001057600080fd5b506108ec806100206000396000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c806377d63d1d1161005057806377d63d1d146100a5578063ebf0c717146100cf578063fd54b228146100d757610067565b806306661abd1461006c5780632d287e4314610086575b600080fd5b6100746100df565b60408051918252519081900360200190f35b6100a36004803603602081101561009c57600080fd5b50356100e5565b005b61007460048036036104408110156100bc57600080fd5b50803590602081019061042001356100f3565b610074610131565b610074610142565b60205490565b6100f0600082610148565b50565b60006101298484602080602002604051908101604052809291908260208002808284376000920191909152508691506102549050565b949350505050565b600061013d60006102ff565b905090565b60205481565b602082015463ffffffff116101be57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f6d65726b6c6520747265652066756c6c00000000000000000000000000000000604482015290519081900360640190fd5b6020820180546001019081905560005b602081101561024d5781600116600114156101fa57828482602081106101f057fe5b0155506102509050565b83816020811061020657fe5b01548360405160200180838152602001828152602001925050506040516020818303038152906040528051906020012092506002828161024257fe5b0491506001016101ce565b50fe5b5050565b8260005b60208110156102f757600183821c16600085836020811061027557fe5b6020020151905081600114156102bb57808460405160200180838152602001828152602001925050506040516020818303038152906040528051906020012093506102ed565b838160405160200180838152602001828152602001925050506040516020818303038152906040528051906020012093505b5050600101610258565b509392505050565b60006103128261030d610318565b6107d9565b92915050565b610320610897565b600081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb560208201527fb4c11951957c6f8f642c4af61cd6b24640fec6dc7fc607ee8206a99e92410d3060408201527f21ddb9a356815c3fac1026b6dec5df3124afbadb485c9ba5a3e3398a04b7ba8560608201527fe58769b32a1beaf1ea27375a44095a0d1fb664ce2dd358e7fcbfb78c26a1934460808201527f0eb01ebfc9ed27500cd4dfc979272d1f0913cc9f66540d7e8005811109e1cf2d60a08201527f887c22bd8750d34016ac3c66b5ff102dacdd73f6b014e710b51e8022af9a196860c08201527fffd70157e48063fc33c97a050f7f640233bf646cc98d9524c6b92bcf3ab56f8360e08201527f9867cc5f7f196b93bae1e27e6320742445d290f2263827498b54fec539f756af6101008201527fcefad4e508c098b9a7e1d8feb19955fb02ba9675585078710969d3440f5054e06101208201527ff9dc3e7fe016e050eff260334f18a5d4fe391d82092319f5964f2e2eb7c1c3a56101408201527ff8b13a49e282f609c317a833fb8d976d11517c571d1221a265d25af778ecf8926101608201527f3490c6ceeb450aecdc82e28293031d10c7d73bf85e57bf041a97360aa2c5d99c6101808201527fc1df82d9c4b87413eae2ef048f94b4d3554cea73d92b0f7af96e0271c691e2bb6101a08201527f5c67add7c6caf302256adedf7ab114da0acfe870d449a3a489f781d659e8becc6101c08201527fda7bce9f4e8618b6bd2f4132ce798cdc7a60e7e1460a7299e3c6342a579626d26101e08201527f2733e50f526ec2fa19a22b31e8ed50f23cd1fdf94c9154ed3a7609a2f1ff981f6102008201527fe1d3b5c807b281e4683cc6d6315cf95b9ade8641defcb32372f1c126e398ef7a6102208201527f5a2dce0a8a7f68bb74560f8f71837c2c2ebbcbf7fffb42ae1896f13f7c7479a06102408201527fb46a28b6f55540f89444f63de0378e3d121be09e06cc9ded1c20e65876d36aa06102608201527fc65e9645644786b620e2dd2ad648ddfcbf4a7e5b1a3a4ecfe7f64667a3f0b7e26102808201527ff4418588ed35a2458cffeb39b93d26f18d2ab13bdce6aee58e7b99359ec2dfd96102a08201527f5a9c16dc00d6ef18b7933a6f8dc65ccb55667138776f7dea101070dc8796e3776102c08201527f4df84f40ae0c8229d0d6069e5c8f39a7c299677a09d367fc7b05e3bc380ee6526102e08201527fcdc72595f74c7b1043d0e1ffbab734648c838dfb0527d971b602bc216c9619ef6103008201527f0abf5ac974a1ed57f4050aa510dd9c74f508277b39d7973bb2dfccc5eeb0618d6103208201527fb8cd74046ff337f0a7bf2c8e03e10f642c1886798d71806ab1e888d9e5ee87d06103408201527f838c5655cb21c6cb83313b5a631175dff4963772cce9108188b34ac87c81c41e6103608201527f662ee4dd2dd7b2bc707961b1e646c4047669dcb6584f0d8d770daf5d7e7deb2e6103808201527f388ab20e2573d171a88108e79d820e98f26c0b84aa8b2f4aa4968dbb818ea3226103a08201527f93237c50ba75ee485f4c22adf2f741400bdf8d6a9cc7df7ecae576221665d7356103c08201527f8448818bb4ae4562849e949e17ac16e0be16688e156b5cf15e098c627c0056a96103e082015290565b6020820154600090815b602081101561088f57600182821c16600086836020811061080057fe5b0154905081600114156108435780856040516020018083815260200182815260200192505050604051602081830303815290604052805190602001209450610885565b8486846020811061085057fe5b602002015160405160200180838152602001828152602001925050506040516020818303038152906040528051906020012094505b50506001016107e3565b505092915050565b604051806104000160405280602090602082028036833750919291505056fea2646970667358221220fa2e7de552199308ae93bb99d5bbbcaf4a3beed6157b4da5ffbf4d2bc292f34a64736f6c63430007060033";
export class TestMerkle__factory extends ContractFactory {
constructor(signer?: Signer) {
super(_abi, _bytecode, signer);
}
deploy(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<TestMerkle> {
return super.deploy(overrides || {}) as Promise<TestMerkle>;
}
getDeployTransaction(
overrides?: Overrides & { from?: string | Promise<string> }
): TransactionRequest {
return super.getDeployTransaction(overrides || {});
}
attach(address: string): TestMerkle {
return super.attach(address) as TestMerkle;
}
connect(signer: Signer): TestMerkle__factory {
return super.connect(signer) as TestMerkle__factory;
}
static readonly bytecode = _bytecode;
static readonly abi = _abi;
static createInterface(): TestMerkleInterface {
return new utils.Interface(_abi) as TestMerkleInterface;
}
static connect(
address: string,
signerOrProvider: Signer | Provider
): TestMerkle {
return new Contract(address, _abi, signerOrProvider) as TestMerkle;
}
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1,132 @@
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers";
import { Provider, TransactionRequest } from "@ethersproject/providers";
import type { TestRecipient, TestRecipientInterface } from "../TestRecipient";
const _abi = [
{
stateMutability: "nonpayable",
type: "fallback",
},
{
inputs: [
{
internalType: "uint32",
name: "",
type: "uint32",
},
{
internalType: "bytes32",
name: "",
type: "bytes32",
},
{
internalType: "bytes",
name: "",
type: "bytes",
},
],
name: "handle",
outputs: [],
stateMutability: "pure",
type: "function",
},
{
inputs: [],
name: "message",
outputs: [
{
internalType: "string",
name: "",
type: "string",
},
],
stateMutability: "pure",
type: "function",
},
{
inputs: [
{
internalType: "bool",
name: "callProcessed",
type: "bool",
},
],
name: "processCall",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [],
name: "processed",
outputs: [
{
internalType: "bool",
name: "",
type: "bool",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "string",
name: "_str",
type: "string",
},
],
name: "receiveString",
outputs: [
{
internalType: "string",
name: "",
type: "string",
},
],
stateMutability: "pure",
type: "function",
},
];
const _bytecode =
"0x60806040526000805460ff1916905534801561001a57600080fd5b5061039c8061002a6000396000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c806356d5d4751161005057806356d5d475146101cf578063c0a58a4d14610289578063e21f37ce146102a857610067565b80632ce5c284146100ce5780634e376c5d146100ea575b604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f46616c6c6261636b000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6100d66102b0565b604080519115158252519081900360200190f35b61015a6004803603602081101561010057600080fd5b81019060208101813564010000000081111561011b57600080fd5b82018360208201111561012d57600080fd5b8035906020019184600183028401116401000000008311171561014f57600080fd5b5090925090506102b9565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561019457818101518382015260200161017c565b50505050905090810190601f1680156101c15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610287600480360360608110156101e557600080fd5b63ffffffff8235169160208101359181019060608101604082013564010000000081111561021257600080fd5b82018360208201111561022457600080fd5b8035906020019184600183028401116401000000008311171561024657600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506102f9945050505050565b005b6102876004803603602081101561029f57600080fd5b503515156102fe565b61015a61032f565b60005460ff1681565b606082828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929695505050505050565b505050565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b60408051808201909152601081527f6d6573736167652072656365697665640000000000000000000000000000000060208201529056fea264697066735822122097826225a1efb1c42f91488ad92d10ca3dba981ac77c1c66b5771b0446d732ef64736f6c63430007060033";
export class TestRecipient__factory extends ContractFactory {
constructor(signer?: Signer) {
super(_abi, _bytecode, signer);
}
deploy(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<TestRecipient> {
return super.deploy(overrides || {}) as Promise<TestRecipient>;
}
getDeployTransaction(
overrides?: Overrides & { from?: string | Promise<string> }
): TransactionRequest {
return super.getDeployTransaction(overrides || {});
}
attach(address: string): TestRecipient {
return super.attach(address) as TestRecipient;
}
connect(signer: Signer): TestRecipient__factory {
return super.connect(signer) as TestRecipient__factory;
}
static readonly bytecode = _bytecode;
static readonly abi = _abi;
static createInterface(): TestRecipientInterface {
return new utils.Interface(_abi) as TestRecipientInterface;
}
static connect(
address: string,
signerOrProvider: Signer | Provider
): TestRecipient {
return new Contract(address, _abi, signerOrProvider) as TestRecipient;
}
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1,60 @@
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers";
import { Provider, TransactionRequest } from "@ethersproject/providers";
import type { TypedMemView, TypedMemViewInterface } from "../TypedMemView";
const _abi = [
{
inputs: [],
name: "NULL",
outputs: [
{
internalType: "bytes29",
name: "",
type: "bytes29",
},
],
stateMutability: "view",
type: "function",
},
];
const _bytecode =
"0x60cd610025600b82828239805160001a60731461001857fe5b30600052607381538281f3fe730000000000000000000000000000000000000000301460806040526004361060335760003560e01c8063f26be3fc146038575b600080fd5b603e6073565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000009092168252519081900360200190f35b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008156fea2646970667358221220b07daa2cfa732a0712e14f333f7fb26a0736db4a4fce155c515a5dd1fc062de564736f6c63430007060033";
export class TypedMemView__factory extends ContractFactory {
constructor(signer?: Signer) {
super(_abi, _bytecode, signer);
}
deploy(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<TypedMemView> {
return super.deploy(overrides || {}) as Promise<TypedMemView>;
}
getDeployTransaction(
overrides?: Overrides & { from?: string | Promise<string> }
): TransactionRequest {
return super.getDeployTransaction(overrides || {});
}
attach(address: string): TypedMemView {
return super.attach(address) as TypedMemView;
}
connect(signer: Signer): TypedMemView__factory {
return super.connect(signer) as TypedMemView__factory;
}
static readonly bytecode = _bytecode;
static readonly abi = _abi;
static createInterface(): TypedMemViewInterface {
return new utils.Interface(_abi) as TypedMemViewInterface;
}
static connect(
address: string,
signerOrProvider: Signer | Provider
): TypedMemView {
return new Contract(address, _abi, signerOrProvider) as TypedMemView;
}
}

@ -0,0 +1,202 @@
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import {
Signer,
utils,
Contract,
ContractFactory,
PayableOverrides,
} from "ethers";
import { Provider, TransactionRequest } from "@ethersproject/providers";
import type {
UpdaterManager,
UpdaterManagerInterface,
} from "../UpdaterManager";
const _abi = [
{
inputs: [
{
internalType: "address",
name: "_updaterAddress",
type: "address",
},
],
stateMutability: "payable",
type: "constructor",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "address",
name: "reporter",
type: "address",
},
],
name: "FakeSlashed",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "address",
name: "home",
type: "address",
},
],
name: "NewHome",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "address",
name: "previousOwner",
type: "address",
},
{
indexed: true,
internalType: "address",
name: "newOwner",
type: "address",
},
],
name: "OwnershipTransferred",
type: "event",
},
{
inputs: [],
name: "owner",
outputs: [
{
internalType: "address",
name: "",
type: "address",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "renounceOwnership",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "address",
name: "_home",
type: "address",
},
],
name: "setHome",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "address",
name: "_updaterAddress",
type: "address",
},
],
name: "setUpdater",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "address payable",
name: "_reporter",
type: "address",
},
],
name: "slashUpdater",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "address",
name: "newOwner",
type: "address",
},
],
name: "transferOwnership",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [],
name: "updater",
outputs: [
{
internalType: "address",
name: "",
type: "address",
},
],
stateMutability: "view",
type: "function",
},
];
const _bytecode =
"0x60806040526040516109663803806109668339818101604052602081101561002657600080fd5b505160006100326100a1565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600280546001600160a01b0319166001600160a01b03929092169190911790556100a5565b3390565b6108b2806100b46000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80638da5cb5b1161005b5780638da5cb5b146100f25780639d54f41914610123578063df034cd014610156578063f2fde38b1461015e5761007d565b80635b3c2cbf146100825780636ef0f37f146100b7578063715018a6146100ea575b600080fd5b6100b56004803603602081101561009857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610191565b005b6100b5600480360360208110156100cd57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610263565b6100b56103f8565b6100fa61050f565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100b56004803603602081101561013957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661052b565b6100fa61068f565b6100b56004803603602081101561017457600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166106ab565b60015473ffffffffffffffffffffffffffffffffffffffff16331461021757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f21686f6d65000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6040805173ffffffffffffffffffffffffffffffffffffffff8316815290517f4180932f5f5f11458bcd408e42c54626987799e7c4c89f40f484fefdfdfff14f9181900360200190a150565b61026b61084c565b73ffffffffffffffffffffffffffffffffffffffff1661028961050f565b73ffffffffffffffffffffffffffffffffffffffff161461030b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61031481610850565b61037f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f21636f6e747261637420686f6d65000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915560408051918252517fa6c230e5615262e310dcb42eaf014e813e5d8580abf5b00d2186ca8e9833de219181900360200190a150565b61040061084c565b73ffffffffffffffffffffffffffffffffffffffff1661041e61050f565b73ffffffffffffffffffffffffffffffffffffffff16146104a057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b61053361084c565b73ffffffffffffffffffffffffffffffffffffffff1661055161050f565b73ffffffffffffffffffffffffffffffffffffffff16146105d357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff838116918217909255600154604080517f9d54f419000000000000000000000000000000000000000000000000000000008152600481019390935251921691639d54f4199160248082019260009290919082900301818387803b15801561067457600080fd5b505af1158015610688573d6000803e3d6000fd5b5050505050565b60025473ffffffffffffffffffffffffffffffffffffffff1690565b6106b361084c565b73ffffffffffffffffffffffffffffffffffffffff166106d161050f565b73ffffffffffffffffffffffffffffffffffffffff161461075357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff81166107bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806108576026913960400191505060405180910390fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b3390565b3b15159056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373a26469706673582212206a89c5c4e18144cd4168abe90868abf0d0cd57bdd92b36ff23b682243dda36c064736f6c63430007060033";
export class UpdaterManager__factory extends ContractFactory {
constructor(signer?: Signer) {
super(_abi, _bytecode, signer);
}
deploy(
_updaterAddress: string,
overrides?: PayableOverrides & { from?: string | Promise<string> }
): Promise<UpdaterManager> {
return super.deploy(
_updaterAddress,
overrides || {}
) as Promise<UpdaterManager>;
}
getDeployTransaction(
_updaterAddress: string,
overrides?: PayableOverrides & { from?: string | Promise<string> }
): TransactionRequest {
return super.getDeployTransaction(_updaterAddress, overrides || {});
}
attach(address: string): UpdaterManager {
return super.attach(address) as UpdaterManager;
}
connect(signer: Signer): UpdaterManager__factory {
return super.connect(signer) as UpdaterManager__factory;
}
static readonly bytecode = _bytecode;
static readonly abi = _abi;
static createInterface(): UpdaterManagerInterface {
return new utils.Interface(_abi) as UpdaterManagerInterface;
}
static connect(
address: string,
signerOrProvider: Signer | Provider
): UpdaterManager {
return new Contract(address, _abi, signerOrProvider) as UpdaterManager;
}
}

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save