From b901610c77d846be731aac5b42a06e8557a3c285 Mon Sep 17 00:00:00 2001 From: bearni95 Date: Thu, 2 May 2024 09:12:06 +0200 Subject: [PATCH 1/5] geo-blocking polished --- .../taikoon-ui/src/generated/abi/index.ts | 10 +++--- .../src/routes/blocked/+page.svelte | 4 +++ .../src/routes/mint/+page.server.ts | 35 +++++++++++++++++++ 3 files changed, 44 insertions(+), 5 deletions(-) create mode 100644 packages/taikoon-ui/src/routes/blocked/+page.svelte create mode 100644 packages/taikoon-ui/src/routes/mint/+page.server.ts diff --git a/packages/taikoon-ui/src/generated/abi/index.ts b/packages/taikoon-ui/src/generated/abi/index.ts index fae30cd385..c54f3b6b19 100644 --- a/packages/taikoon-ui/src/generated/abi/index.ts +++ b/packages/taikoon-ui/src/generated/abi/index.ts @@ -3,7 +3,7 @@ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /** - * - [__View Contract on Holesky Etherscan__](https://holesky.etherscan.io/address/0x0874bD201a33bff5Ebd4f8200c6482A72457FeF0) + * - [__View Contract on Holesky Etherscan__](https://holesky.etherscan.io/address/0xfDbaA6d6c382A2555856bFaB315D5E6F3CDA1393) * - */ export const taikoonTokenAbi = [ @@ -544,16 +544,16 @@ export const taikoonTokenAbi = [ ] as const; /** - * - [__View Contract on Holesky Etherscan__](https://holesky.etherscan.io/address/0x0874bD201a33bff5Ebd4f8200c6482A72457FeF0) + * - [__View Contract on Holesky Etherscan__](https://holesky.etherscan.io/address/0xfDbaA6d6c382A2555856bFaB315D5E6F3CDA1393) * - */ export const taikoonTokenAddress = { - 17000: '0x0874bD201a33bff5Ebd4f8200c6482A72457FeF0', - 31337: '0x0DCd1Bf9A1b36cE34237eEaFef220932846BCD82', + 17000: '0xfDbaA6d6c382A2555856bFaB315D5E6F3CDA1393', + 31337: '0x3Aa5ebB10DC797CAC828524e59A333d0A371443c', } as const; /** - * - [__View Contract on Holesky Etherscan__](https://holesky.etherscan.io/address/0x0874bD201a33bff5Ebd4f8200c6482A72457FeF0) + * - [__View Contract on Holesky Etherscan__](https://holesky.etherscan.io/address/0xfDbaA6d6c382A2555856bFaB315D5E6F3CDA1393) * - */ export const taikoonTokenConfig = { diff --git a/packages/taikoon-ui/src/routes/blocked/+page.svelte b/packages/taikoon-ui/src/routes/blocked/+page.svelte new file mode 100644 index 0000000000..ef92af775b --- /dev/null +++ b/packages/taikoon-ui/src/routes/blocked/+page.svelte @@ -0,0 +1,4 @@ + + +

Seems that you have been blocked

diff --git a/packages/taikoon-ui/src/routes/mint/+page.server.ts b/packages/taikoon-ui/src/routes/mint/+page.server.ts new file mode 100644 index 0000000000..30484c2aa2 --- /dev/null +++ b/packages/taikoon-ui/src/routes/mint/+page.server.ts @@ -0,0 +1,35 @@ +import { redirect } from '@sveltejs/kit'; + +const blacklistedCountries = [ + 'AF', // Afghanistan (AF) + 'BY', // Belarus (BY) + 'MM', // Burma/Myanmar (MM) + 'CF', // Central African Republic (CF) + 'CN', // China (CN) + 'CU', // Cuba (CU) + 'CD', // Democratic Republic of the Congo (CD) + 'ET', // Ethiopia (ET) + 'IR', // Iran (IR) + 'IQ', // Iraq (IQ) + 'LB', // Lebanon (LB) + 'LY', // Libya (LY) + 'ML', // Mali (ML) + 'NI', // Nicaragua (NI) + 'KP', // North Korea (KP) + 'RU', // Russia (RU) + 'SO', // Somalia (SO) + 'SS', // South Sudan (SS) + 'SD', // Sudan (SD) + 'SY', // Syria (SY) + 'VE', // Venezuela (VE) +]; + +export function load(event) { + const country = event.request.headers.get('x-vercel-ip-country') ?? 'dev'; + + if (blacklistedCountries.includes(country)) { + // revoke access + redirect(302, '/blocked'); + } + return {}; +} From 5a35f812c7a163df85c1436626755f39664dc77d Mon Sep 17 00:00:00 2001 From: bearni95 Date: Mon, 13 May 2024 13:29:39 +0200 Subject: [PATCH 2/5] swapping branches --- .../contracts/Blacklist/IMinimalBlacklist.sol | 7 ++++++ packages/taikoon/contracts/TaikoonToken.sol | 1 + packages/taikoon/test/Blacklist.sol | 24 +++++++++++++++++++ 3 files changed, 32 insertions(+) create mode 100644 packages/taikoon/contracts/Blacklist/IMinimalBlacklist.sol create mode 100644 packages/taikoon/test/Blacklist.sol diff --git a/packages/taikoon/contracts/Blacklist/IMinimalBlacklist.sol b/packages/taikoon/contracts/Blacklist/IMinimalBlacklist.sol new file mode 100644 index 0000000000..327b7cc306 --- /dev/null +++ b/packages/taikoon/contracts/Blacklist/IMinimalBlacklist.sol @@ -0,0 +1,7 @@ +// SPDX-License-Identifier: UNLICENSED + +pragma solidity ^0.8.0; + +interface IMinimalBlacklist { + function isBlacklisted(address _account) external view returns (bool); +} diff --git a/packages/taikoon/contracts/TaikoonToken.sol b/packages/taikoon/contracts/TaikoonToken.sol index bde8faa689..abfe6adb64 100644 --- a/packages/taikoon/contracts/TaikoonToken.sol +++ b/packages/taikoon/contracts/TaikoonToken.sol @@ -7,6 +7,7 @@ import { ERC721EnumerableUpgradeable } from "@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721EnumerableUpgradeable.sol"; import { MerkleWhitelist } from "./MerkleWhitelist.sol"; +import { IMinimalBlacklist } from "./Blacklist/IMinimalBlacklist.sol"; /// @title TaikoonToken /// @dev The Taikoons ERC-721 token diff --git a/packages/taikoon/test/Blacklist.sol b/packages/taikoon/test/Blacklist.sol new file mode 100644 index 0000000000..fd214060c4 --- /dev/null +++ b/packages/taikoon/test/Blacklist.sol @@ -0,0 +1,24 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.24; + +// Blaclist contract mock +contract MockBlacklist { + address[] public blacklist; + constructor() { + // hardhat accounts, #5 to #9 + blacklist.push(0x9965507D1a55bcC2695C58ba16FB37d819B0A4dc); + blacklist.push(0x976EA74026E726554dB657fA54763abd0C3a0aa9); + blacklist.push(0x14dC79964da2C08b23698B3D3cc7Ca32193d9955); + blacklist.push(0x23618e81E3f5cdF7f54C3d65f7FBc0aBf5B21E8f); + blacklist.push(0xa0Ee7A142d267C1f36714E4a8F75612F20a79720); + } + + function isBlacklisted(address _address) public view returns (bool) { + for (uint256 i = 0; i < blacklist.length; i++) { + if (blacklist[i] == _address) { + return true; + } + } + return false; + } +} From 69385f81ff4b878c5f73c457aeadb92f273ce0de Mon Sep 17 00:00:00 2001 From: bearni95 Date: Mon, 13 May 2024 14:22:15 +0200 Subject: [PATCH 3/5] smart contract blacklist, with scripts and tests --- .../contracts/Blacklist/IMinimalBlacklist.sol | 7 ---- .../taikoon/contracts/IMinimalBlacklist.sol | 8 +++++ .../taikoon/contracts/MerkleWhitelist.sol | 34 ++++++++++++++++--- packages/taikoon/contracts/TaikoonToken.sol | 8 +++-- packages/taikoon/script/sol/Deploy.s.sol | 7 +++- packages/taikoon/script/sol/Utils.s.sol | 14 ++++++++ packages/taikoon/test/Blacklist.sol | 5 ++- packages/taikoon/test/MerkleWhitelist.t.sol | 16 ++++++++- packages/taikoon/test/TaikoonToken.t.sol | 20 ++++++++++- packages/taikoon/test/Upgradeable.t.sol | 10 +++++- 10 files changed, 110 insertions(+), 19 deletions(-) delete mode 100644 packages/taikoon/contracts/Blacklist/IMinimalBlacklist.sol create mode 100644 packages/taikoon/contracts/IMinimalBlacklist.sol diff --git a/packages/taikoon/contracts/Blacklist/IMinimalBlacklist.sol b/packages/taikoon/contracts/Blacklist/IMinimalBlacklist.sol deleted file mode 100644 index 327b7cc306..0000000000 --- a/packages/taikoon/contracts/Blacklist/IMinimalBlacklist.sol +++ /dev/null @@ -1,7 +0,0 @@ -// SPDX-License-Identifier: UNLICENSED - -pragma solidity ^0.8.0; - -interface IMinimalBlacklist { - function isBlacklisted(address _account) external view returns (bool); -} diff --git a/packages/taikoon/contracts/IMinimalBlacklist.sol b/packages/taikoon/contracts/IMinimalBlacklist.sol new file mode 100644 index 0000000000..af184cd430 --- /dev/null +++ b/packages/taikoon/contracts/IMinimalBlacklist.sol @@ -0,0 +1,8 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.24; + +/// @title Minimal Blacklist Interface +/// @dev Mainnet blacklist: 0x97044531D0fD5B84438499A49629488105Dc58e6 +interface IMinimalBlacklist { + function isBlacklisted(address _account) external view returns (bool); +} diff --git a/packages/taikoon/contracts/MerkleWhitelist.sol b/packages/taikoon/contracts/MerkleWhitelist.sol index 5c50b0759a..e88881354c 100644 --- a/packages/taikoon/contracts/MerkleWhitelist.sol +++ b/packages/taikoon/contracts/MerkleWhitelist.sol @@ -8,6 +8,7 @@ import { Ownable2StepUpgradeable } from import { MerkleProof } from "@openzeppelin/contracts/utils/cryptography/MerkleProof.sol"; import { ContextUpgradeable } from "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol"; +import { IMinimalBlacklist } from "./IMinimalBlacklist.sol"; /// @title MerkleWhitelist /// @dev Merkle Tree Whitelist @@ -19,12 +20,15 @@ contract MerkleWhitelist is ContextUpgradeable, UUPSUpgradeable, Ownable2StepUpg error MINTS_EXCEEDED(); error INVALID_PROOF(); error INVALID_TOKEN_AMOUNT(); + error ADDRESS_BLACKLISTED(); /// @notice Merkle Tree Root bytes32 public root; /// @notice Tracker for minted leaves mapping(bytes32 leaf => bool hasMinted) public minted; - + /// @notice Blackist address + IMinimalBlacklist public blacklist; + /// @notice Gap for upgrade safety uint256[48] private __gap; /// @custom:oz-upgrades-unsafe-allow constructor @@ -32,10 +36,23 @@ contract MerkleWhitelist is ContextUpgradeable, UUPSUpgradeable, Ownable2StepUpg _disableInitializers(); } + /// @notice Update the blacklist address + /// @param _blacklist The new blacklist address + function updateBlacklist(IMinimalBlacklist _blacklist) external onlyOwner { + blacklist = _blacklist; + } + /// @notice Contract initializer /// @param _root Merkle Tree root - function initialize(address _owner, bytes32 _root) external initializer { - __MerkleWhitelist_init(_owner, _root); + function initialize( + address _owner, + bytes32 _root, + IMinimalBlacklist _blacklist + ) + external + initializer + { + __MerkleWhitelist_init(_owner, _root, _blacklist); } /// @notice Check if a wallet can free mint @@ -43,6 +60,7 @@ contract MerkleWhitelist is ContextUpgradeable, UUPSUpgradeable, Ownable2StepUpg /// @param _maxMints Max amount of free mints /// @return Whether the wallet can mint function canMint(address _minter, uint256 _maxMints) public view returns (bool) { + if (blacklist.isBlacklisted(_minter)) revert ADDRESS_BLACKLISTED(); bytes32 _leaf = leaf(_minter, _maxMints); return !minted[_leaf]; } @@ -57,10 +75,18 @@ contract MerkleWhitelist is ContextUpgradeable, UUPSUpgradeable, Ownable2StepUpg /// @notice Internal initializer /// @param _root Merkle Tree root - function __MerkleWhitelist_init(address _owner, bytes32 _root) internal initializer { + function __MerkleWhitelist_init( + address _owner, + bytes32 _root, + IMinimalBlacklist _blacklist + ) + internal + initializer + { _transferOwnership(_owner == address(0) ? msg.sender : _owner); __Context_init(); root = _root; + blacklist = _blacklist; } /// @notice Update the merkle tree's root diff --git a/packages/taikoon/contracts/TaikoonToken.sol b/packages/taikoon/contracts/TaikoonToken.sol index abfe6adb64..fb0de495e1 100644 --- a/packages/taikoon/contracts/TaikoonToken.sol +++ b/packages/taikoon/contracts/TaikoonToken.sol @@ -7,7 +7,7 @@ import { ERC721EnumerableUpgradeable } from "@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721EnumerableUpgradeable.sol"; import { MerkleWhitelist } from "./MerkleWhitelist.sol"; -import { IMinimalBlacklist } from "./Blacklist/IMinimalBlacklist.sol"; +import { IMinimalBlacklist } from "./IMinimalBlacklist.sol"; /// @title TaikoonToken /// @dev The Taikoons ERC-721 token @@ -18,6 +18,7 @@ contract TaikoonToken is ERC721EnumerableUpgradeable, MerkleWhitelist { // Base URI required to interact with IPFS string private _baseURIExtended; + /// @notice Gap for upgrade safety uint256[48] private __gap; error MAX_MINTS_EXCEEDED(); @@ -31,13 +32,14 @@ contract TaikoonToken is ERC721EnumerableUpgradeable, MerkleWhitelist { function initialize( address _owner, string memory _rootURI, - bytes32 _merkleRoot + bytes32 _merkleRoot, + IMinimalBlacklist _blacklistAddress ) external initializer { __ERC721_init("Taikoon", "TKOON"); - __MerkleWhitelist_init(_owner, _merkleRoot); + __MerkleWhitelist_init(_owner, _merkleRoot, _blacklistAddress); _baseURIExtended = _rootURI; } diff --git a/packages/taikoon/script/sol/Deploy.s.sol b/packages/taikoon/script/sol/Deploy.s.sol index b66028f57f..be749eca9f 100644 --- a/packages/taikoon/script/sol/Deploy.s.sol +++ b/packages/taikoon/script/sol/Deploy.s.sol @@ -43,7 +43,12 @@ contract DeployScript is Script { // deploy token with empty root address impl = address(new TaikoonToken()); address proxy = address( - new ERC1967Proxy(impl, abi.encodeCall(TaikoonToken.initialize, (owner, baseURI, root))) + new ERC1967Proxy( + impl, + abi.encodeCall( + TaikoonToken.initialize, (owner, baseURI, root, utils.getBlacklist()) + ) + ) ); TaikoonToken token = TaikoonToken(proxy); diff --git a/packages/taikoon/script/sol/Utils.s.sol b/packages/taikoon/script/sol/Utils.s.sol index 753e02b384..ed0a5c6d76 100644 --- a/packages/taikoon/script/sol/Utils.s.sol +++ b/packages/taikoon/script/sol/Utils.s.sol @@ -3,6 +3,8 @@ pragma solidity 0.8.24; import { Script, console } from "forge-std/src/Script.sol"; import "forge-std/src/StdJson.sol"; +import { IMinimalBlacklist } from "../../contracts/IMinimalBlacklist.sol"; +import { MockBlacklist } from "../../test/Blacklist.sol"; contract UtilsScript is Script { using stdJson for string; @@ -57,5 +59,17 @@ contract UtilsScript is Script { return vm.envString("IPFS_BASE_URI"); } + function getBlacklist() public returns (IMinimalBlacklist blacklistAddress) { + if (block.chainid == 1) { + // mainnet blacklist address + blacklistAddress = IMinimalBlacklist(0x97044531D0fD5B84438499A49629488105Dc58e6); + } else { + // deploy a mock blacklist otherwise + blacklistAddress = IMinimalBlacklist(new MockBlacklist()); + } + + return blacklistAddress; + } + function run() public { } } diff --git a/packages/taikoon/test/Blacklist.sol b/packages/taikoon/test/Blacklist.sol index fd214060c4..dcec682447 100644 --- a/packages/taikoon/test/Blacklist.sol +++ b/packages/taikoon/test/Blacklist.sol @@ -1,9 +1,12 @@ // SPDX-License-Identifier: MIT pragma solidity 0.8.24; +import { IMinimalBlacklist } from "../contracts/IMinimalBlacklist.sol"; // Blaclist contract mock -contract MockBlacklist { + +contract MockBlacklist is IMinimalBlacklist { address[] public blacklist; + constructor() { // hardhat accounts, #5 to #9 blacklist.push(0x9965507D1a55bcC2695C58ba16FB37d819B0A4dc); diff --git a/packages/taikoon/test/MerkleWhitelist.t.sol b/packages/taikoon/test/MerkleWhitelist.t.sol index 60232521a8..8f6061f493 100644 --- a/packages/taikoon/test/MerkleWhitelist.t.sol +++ b/packages/taikoon/test/MerkleWhitelist.t.sol @@ -6,6 +6,7 @@ import "forge-std/src/StdJson.sol"; import { Merkle } from "murky/Merkle.sol"; import { MerkleWhitelist } from "../contracts/MerkleWhitelist.sol"; import { ERC1967Proxy } from "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol"; +import { UtilsScript } from "../script/sol/Utils.s.sol"; /// @custom:oz-upgrades-from MerkleWhitelist contract MerkleWhitelistForTest is MerkleWhitelist { @@ -20,6 +21,7 @@ contract MerkleWhitelistForTest is MerkleWhitelist { contract MerkleWhitelistTest is Test { Merkle tree; + UtilsScript public utils; using stdJson for string; @@ -38,6 +40,8 @@ contract MerkleWhitelistTest is Test { address[3] minters = [address(0x1), address(0x2), address(0x3)]; function setUp() public { + utils = new UtilsScript(); + utils.setUp(); vm.startBroadcast(owner); tree = new Merkle(); @@ -51,7 +55,10 @@ contract MerkleWhitelistTest is Test { address impl = address(new MerkleWhitelistForTest()); address proxy = address( - new ERC1967Proxy(impl, abi.encodeCall(MerkleWhitelist.initialize, (address(0), root))) + new ERC1967Proxy( + impl, + abi.encodeCall(MerkleWhitelist.initialize, (address(0), root, utils.getBlacklist())) + ) ); whitelist = MerkleWhitelistForTest(proxy); @@ -113,4 +120,11 @@ contract MerkleWhitelistTest is Test { vm.stopBroadcast(); } + + function test_revert_canMint_blacklisted() public { + address blacklisted = + vm.addr(0x2a871d0798f97d79848a013d4936a73bf4cc922c825d33c1cf7073dff6d409c6); + vm.expectRevert(); + whitelist.canMint(blacklisted, MAX_MINTS); + } } diff --git a/packages/taikoon/test/TaikoonToken.t.sol b/packages/taikoon/test/TaikoonToken.t.sol index 5dadd1c422..d7286a6681 100644 --- a/packages/taikoon/test/TaikoonToken.t.sol +++ b/packages/taikoon/test/TaikoonToken.t.sol @@ -6,8 +6,11 @@ import { Test } from "forge-std/src/Test.sol"; import { TaikoonToken } from "../contracts/TaikoonToken.sol"; import { Merkle } from "murky/Merkle.sol"; import { ERC1967Proxy } from "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol"; +import { UtilsScript } from "../script/sol/Utils.s.sol"; contract TaikoonTokenTest is Test { + UtilsScript public utils; + TaikoonToken public token; address public owner = vm.addr(0x5); @@ -20,6 +23,8 @@ contract TaikoonTokenTest is Test { Merkle tree = new Merkle(); function setUp() public { + utils = new UtilsScript(); + utils.setUp(); // create whitelist merkle tree vm.startBroadcast(owner); bytes32 root = tree.getRoot(leaves); @@ -28,7 +33,10 @@ contract TaikoonTokenTest is Test { address impl = address(new TaikoonToken()); address proxy = address( new ERC1967Proxy( - impl, abi.encodeCall(TaikoonToken.initialize, (address(0), "ipfs://", root)) + impl, + abi.encodeCall( + TaikoonToken.initialize, (address(0), "ipfs://", root, utils.getBlacklist()) + ) ) ); @@ -97,4 +105,14 @@ contract TaikoonTokenTest is Test { assertEq(token.balanceOf(owner), 5); assertEq(tokenIds.length, 5); } + + function test_revert_mint_blacklisted() public { + address blacklisted = + vm.addr(0x2a871d0798f97d79848a013d4936a73bf4cc922c825d33c1cf7073dff6d409c6); + vm.startBroadcast(blacklisted); + bytes32[] memory fakeProof = tree.getProof(leaves, 0); + vm.expectRevert(); + token.mint(fakeProof, MAX_MINTS); + vm.stopBroadcast(); + } } diff --git a/packages/taikoon/test/Upgradeable.t.sol b/packages/taikoon/test/Upgradeable.t.sol index 0f2b42d87c..b67f0875f5 100644 --- a/packages/taikoon/test/Upgradeable.t.sol +++ b/packages/taikoon/test/Upgradeable.t.sol @@ -6,12 +6,15 @@ import { TaikoonToken } from "../contracts/TaikoonToken.sol"; import { Merkle } from "murky/Merkle.sol"; import { MerkleMintersScript } from "../script/sol/MerkleMinters.s.sol"; import "forge-std/src/StdJson.sol"; +import { UtilsScript } from "../script/sol/Utils.s.sol"; import { ERC1967Proxy } from "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol"; contract UpgradeableTest is Test { using stdJson for string; + UtilsScript public utils; + TaikoonToken public token; address public owner = vm.addr(0x5); @@ -26,6 +29,8 @@ contract UpgradeableTest is Test { Merkle tree = new Merkle(); function setUp() public { + utils = new UtilsScript(); + utils.setUp(); // create whitelist merkle tree vm.startPrank(owner); bytes32 root = tree.getRoot(leaves); @@ -34,7 +39,10 @@ contract UpgradeableTest is Test { address impl = address(new TaikoonToken()); address proxy = address( new ERC1967Proxy( - impl, abi.encodeCall(TaikoonToken.initialize, (address(0), "ipfs://", root)) + impl, + abi.encodeCall( + TaikoonToken.initialize, (address(0), "ipfs://", root, utils.getBlacklist()) + ) ) ); From ec58e1cd5c20ba8db57d80dcccdb4db428f74e8e Mon Sep 17 00:00:00 2001 From: bearni95 Date: Mon, 13 May 2024 14:25:30 +0200 Subject: [PATCH 4/5] Typo fix --- packages/taikoon/test/Blacklist.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/taikoon/test/Blacklist.sol b/packages/taikoon/test/Blacklist.sol index dcec682447..05f74425d7 100644 --- a/packages/taikoon/test/Blacklist.sol +++ b/packages/taikoon/test/Blacklist.sol @@ -2,7 +2,7 @@ pragma solidity 0.8.24; import { IMinimalBlacklist } from "../contracts/IMinimalBlacklist.sol"; -// Blaclist contract mock +// Blacklist contract mock contract MockBlacklist is IMinimalBlacklist { address[] public blacklist; From 30fe223244893fb8b9e43a2c33e6fb481cc3cae7 Mon Sep 17 00:00:00 2001 From: bearni95 Date: Wed, 15 May 2024 14:33:07 +0200 Subject: [PATCH 5/5] reverted lefthook format changes --- .../docs/network-reference/addresses.md | 68 +- .../docs/resources/prover-marketplace.md | 4 +- packages/protocol/contract_layout.md | 725 +++++++++--------- packages/protocol/script/DeployOnL1.s.sol | 6 +- .../taikoon-ui/src/generated/abi/index.ts | 43 +- .../src/routes/blocked/+page.svelte | 4 - .../src/routes/mint/+page.server.ts | 35 - 7 files changed, 397 insertions(+), 488 deletions(-) delete mode 100644 packages/taikoon-ui/src/routes/blocked/+page.svelte delete mode 100644 packages/taikoon-ui/src/routes/mint/+page.server.ts diff --git a/packages/docs-site/src/content/docs/network-reference/addresses.md b/packages/docs-site/src/content/docs/network-reference/addresses.md index 26b72b25ba..72a378d11c 100644 --- a/packages/docs-site/src/content/docs/network-reference/addresses.md +++ b/packages/docs-site/src/content/docs/network-reference/addresses.md @@ -5,42 +5,44 @@ description: Network reference page describing various important addresses on Ta ## Ethereum (Holesky) contracts -| Contract Name (Shared) | Address | -| ---------------------- | -------------------------------------------- | -| SharedAddressManager | `0x7D3338FD5e654CAC5B10028088624CA1D64e74f7` | -| TaikoToken | `0x6490E12d480549D333499236fF2Ba6676C296011` | -| SignalService | `0x6Fc2fe9D9dd0251ec5E0727e826Afbb0Db2CBe0D` | -| Bridge | `0xA098b76a3Dd499D3F6D58D8AcCaFC8efBFd06807` | -| ERC20Vault | `0x2259662ed5dE0E09943Abe701bc5f5a108eABBAa` | -| ERC721Vault | `0x046b82D9010b534c716742BE98ac3FEf3f2EC99f` | -| ERC1155Vault | `0x9Ae5945Ab34f6182F75E16B73e037421F341fEe3` | - -| Contract Name (Rollup-Specific) | Address | -| ------------------------------- | -------------------------------------------- | -| TaikoL1 | `0x79C9109b764609df928d16fC4a91e9081F7e87DB` | -| RollupAddressManager | `0x1F027871F286Cf4B7F898B21298E7B3e090a8403` | -| GuardianProver | `0x92F195a8702da2104aE8E3E10779176E7C35d6BC` | -| AssignmentHook | `0x9e640a6aadf4f664CF467B795c31332f44AcBe6c` | -| SgxVerifier | `0x532EFBf6D62720D0B2a2Bb9d11066E8588cAE6D9` | -| AutomataDcapAttestation | `0xC6cD3878Fc56F2b2BaB0769C580fc230A95e1398` | -| PemCertChainLib | `0x08d7865e7F534d743Aba5874A9AD04bcB223a92E` | + +| Contract Name (Shared) | Address | +| ----------------------- | -------------------------------------------- | +| SharedAddressManager | `0x7D3338FD5e654CAC5B10028088624CA1D64e74f7` | +| TaikoToken | `0x6490E12d480549D333499236fF2Ba6676C296011` | +| SignalService | `0x6Fc2fe9D9dd0251ec5E0727e826Afbb0Db2CBe0D` | +| Bridge | `0xA098b76a3Dd499D3F6D58D8AcCaFC8efBFd06807` | +| ERC20Vault | `0x2259662ed5dE0E09943Abe701bc5f5a108eABBAa` | +| ERC721Vault | `0x046b82D9010b534c716742BE98ac3FEf3f2EC99f` | +| ERC1155Vault | `0x9Ae5945Ab34f6182F75E16B73e037421F341fEe3` | + + +| Contract Name (Rollup-Specific) | Address | +| ----------------------- | -------------------------------------------- | +| TaikoL1 | `0x79C9109b764609df928d16fC4a91e9081F7e87DB` | +| RollupAddressManager | `0x1F027871F286Cf4B7F898B21298E7B3e090a8403` | +| GuardianProver | `0x92F195a8702da2104aE8E3E10779176E7C35d6BC` | +| AssignmentHook | `0x9e640a6aadf4f664CF467B795c31332f44AcBe6c` | +| SgxVerifier | `0x532EFBf6D62720D0B2a2Bb9d11066E8588cAE6D9` | +| AutomataDcapAttestation | `0xC6cD3878Fc56F2b2BaB0769C580fc230A95e1398` | +| PemCertChainLib | `0x08d7865e7F534d743Aba5874A9AD04bcB223a92E` | ## Taiko (Hekla) contracts -| Contract Name (Shared) | Address | -| ---------------------- | -------------------------------------------- | -| Bridge | `0x1670090000000000000000000000000000000001` | -| ERC20Vault | `0x1670090000000000000000000000000000000002` | -| ERC721Vault | `0x1670090000000000000000000000000000000003` | -| ERC1155Vault | `0x1670090000000000000000000000000000000004` | -| SignalService | `0x1670090000000000000000000000000000000005` | -| SharedAddressManager | `0x1670090000000000000000000000000000000006` | - -| Contract Name (Rollup-Specific) | Address | -| ------------------------------- | -------------------------------------------- | -| TaikoL2 | `0x1670090000000000000000000000000000010001` | -| RollupAddressManager | `0x1670090000000000000000000000000000010002` | -| BridgedTaikoToken | `0xebf1f662bf092ff0d913a9fe9d7179b0efef1611` | +| Contract Name (Shared) | Address | +| -------------------- | -------------------------------------------- | +| Bridge | `0x1670090000000000000000000000000000000001` | +| ERC20Vault | `0x1670090000000000000000000000000000000002` | +| ERC721Vault | `0x1670090000000000000000000000000000000003` | +| ERC1155Vault | `0x1670090000000000000000000000000000000004` | +| SignalService | `0x1670090000000000000000000000000000000005` | +| SharedAddressManager | `0x1670090000000000000000000000000000000006` | + +| Contract Name (Rollup-Specific) | Address | +| -------------------- | -------------------------------------------- | +| TaikoL2 | `0x1670090000000000000000000000000000010001` | +| RollupAddressManager | `0x1670090000000000000000000000000000010002` | +| BridgedTaikoToken | `0xebf1f662bf092ff0d913a9fe9d7179b0efef1611` | ## Rollup contracts owner diff --git a/packages/docs-site/src/content/docs/resources/prover-marketplace.md b/packages/docs-site/src/content/docs/resources/prover-marketplace.md index bef0724840..7aa1fa84af 100644 --- a/packages/docs-site/src/content/docs/resources/prover-marketplace.md +++ b/packages/docs-site/src/content/docs/resources/prover-marketplace.md @@ -9,5 +9,5 @@ Any provers added to this page must be tested by the team to ensure they have go ## Prover marketplace list -| Name | Endpoint | -| ---- | -------- | +| Name | Endpoint | +| ------ | ------------------------------------- | diff --git a/packages/protocol/contract_layout.md b/packages/protocol/contract_layout.md index fd30d2e9fd..da91a01b84 100644 --- a/packages/protocol/contract_layout.md +++ b/packages/protocol/contract_layout.md @@ -1,439 +1,422 @@ ## TaikoL1 - | Name | Type | Slot | Offset | Bytes | Contract | -| -------------- | ---------------------- | ---- | ------ | ----- | -------------------------------- | -| \_initialized | uint8 | 0 | 0 | 1 | contracts/L1/TaikoL1.sol:TaikoL1 | -| \_initializing | bool | 0 | 1 | 1 | contracts/L1/TaikoL1.sol:TaikoL1 | -| \_\_gap | uint256[50] | 1 | 0 | 1600 | contracts/L1/TaikoL1.sol:TaikoL1 | -| \_owner | address | 51 | 0 | 20 | contracts/L1/TaikoL1.sol:TaikoL1 | -| \_\_gap | uint256[49] | 52 | 0 | 1568 | contracts/L1/TaikoL1.sol:TaikoL1 | -| \_pendingOwner | address | 101 | 0 | 20 | contracts/L1/TaikoL1.sol:TaikoL1 | -| \_\_gap | uint256[49] | 102 | 0 | 1568 | contracts/L1/TaikoL1.sol:TaikoL1 | +|----------------|------------------------|------|--------|-------|----------------------------------| +| _initialized | uint8 | 0 | 0 | 1 | contracts/L1/TaikoL1.sol:TaikoL1 | +| _initializing | bool | 0 | 1 | 1 | contracts/L1/TaikoL1.sol:TaikoL1 | +| __gap | uint256[50] | 1 | 0 | 1600 | contracts/L1/TaikoL1.sol:TaikoL1 | +| _owner | address | 51 | 0 | 20 | contracts/L1/TaikoL1.sol:TaikoL1 | +| __gap | uint256[49] | 52 | 0 | 1568 | contracts/L1/TaikoL1.sol:TaikoL1 | +| _pendingOwner | address | 101 | 0 | 20 | contracts/L1/TaikoL1.sol:TaikoL1 | +| __gap | uint256[49] | 102 | 0 | 1568 | contracts/L1/TaikoL1.sol:TaikoL1 | | addressManager | address | 151 | 0 | 20 | contracts/L1/TaikoL1.sol:TaikoL1 | -| \_\_gap | uint256[49] | 152 | 0 | 1568 | contracts/L1/TaikoL1.sol:TaikoL1 | -| \_\_reentry | uint8 | 201 | 0 | 1 | contracts/L1/TaikoL1.sol:TaikoL1 | -| \_\_paused | uint8 | 201 | 1 | 1 | contracts/L1/TaikoL1.sol:TaikoL1 | +| __gap | uint256[49] | 152 | 0 | 1568 | contracts/L1/TaikoL1.sol:TaikoL1 | +| __reentry | uint8 | 201 | 0 | 1 | contracts/L1/TaikoL1.sol:TaikoL1 | +| __paused | uint8 | 201 | 1 | 1 | contracts/L1/TaikoL1.sol:TaikoL1 | | lastUnpausedAt | uint64 | 201 | 2 | 8 | contracts/L1/TaikoL1.sol:TaikoL1 | -| \_\_gap | uint256[49] | 202 | 0 | 1568 | contracts/L1/TaikoL1.sol:TaikoL1 | +| __gap | uint256[49] | 202 | 0 | 1568 | contracts/L1/TaikoL1.sol:TaikoL1 | | state | struct TaikoData.State | 251 | 0 | 1600 | contracts/L1/TaikoL1.sol:TaikoL1 | -| \_\_gap | uint256[50] | 301 | 0 | 1600 | contracts/L1/TaikoL1.sol:TaikoL1 | +| __gap | uint256[50] | 301 | 0 | 1600 | contracts/L1/TaikoL1.sol:TaikoL1 | ## TaikoL2 - | Name | Type | Slot | Offset | Bytes | Contract | -| --------------- | --------------------------- | ---- | ------ | ----- | -------------------------------- | -| \_initialized | uint8 | 0 | 0 | 1 | contracts/L2/TaikoL2.sol:TaikoL2 | -| \_initializing | bool | 0 | 1 | 1 | contracts/L2/TaikoL2.sol:TaikoL2 | -| \_\_gap | uint256[50] | 1 | 0 | 1600 | contracts/L2/TaikoL2.sol:TaikoL2 | -| \_owner | address | 51 | 0 | 20 | contracts/L2/TaikoL2.sol:TaikoL2 | -| \_\_gap | uint256[49] | 52 | 0 | 1568 | contracts/L2/TaikoL2.sol:TaikoL2 | -| \_pendingOwner | address | 101 | 0 | 20 | contracts/L2/TaikoL2.sol:TaikoL2 | -| \_\_gap | uint256[49] | 102 | 0 | 1568 | contracts/L2/TaikoL2.sol:TaikoL2 | +|-----------------|-----------------------------|------|--------|-------|----------------------------------| +| _initialized | uint8 | 0 | 0 | 1 | contracts/L2/TaikoL2.sol:TaikoL2 | +| _initializing | bool | 0 | 1 | 1 | contracts/L2/TaikoL2.sol:TaikoL2 | +| __gap | uint256[50] | 1 | 0 | 1600 | contracts/L2/TaikoL2.sol:TaikoL2 | +| _owner | address | 51 | 0 | 20 | contracts/L2/TaikoL2.sol:TaikoL2 | +| __gap | uint256[49] | 52 | 0 | 1568 | contracts/L2/TaikoL2.sol:TaikoL2 | +| _pendingOwner | address | 101 | 0 | 20 | contracts/L2/TaikoL2.sol:TaikoL2 | +| __gap | uint256[49] | 102 | 0 | 1568 | contracts/L2/TaikoL2.sol:TaikoL2 | | addressManager | address | 151 | 0 | 20 | contracts/L2/TaikoL2.sol:TaikoL2 | -| \_\_gap | uint256[49] | 152 | 0 | 1568 | contracts/L2/TaikoL2.sol:TaikoL2 | -| \_\_reentry | uint8 | 201 | 0 | 1 | contracts/L2/TaikoL2.sol:TaikoL2 | -| \_\_paused | uint8 | 201 | 1 | 1 | contracts/L2/TaikoL2.sol:TaikoL2 | +| __gap | uint256[49] | 152 | 0 | 1568 | contracts/L2/TaikoL2.sol:TaikoL2 | +| __reentry | uint8 | 201 | 0 | 1 | contracts/L2/TaikoL2.sol:TaikoL2 | +| __paused | uint8 | 201 | 1 | 1 | contracts/L2/TaikoL2.sol:TaikoL2 | | lastUnpausedAt | uint64 | 201 | 2 | 8 | contracts/L2/TaikoL2.sol:TaikoL2 | -| \_\_gap | uint256[49] | 202 | 0 | 1568 | contracts/L2/TaikoL2.sol:TaikoL2 | +| __gap | uint256[49] | 202 | 0 | 1568 | contracts/L2/TaikoL2.sol:TaikoL2 | | l2Hashes | mapping(uint256 => bytes32) | 251 | 0 | 32 | contracts/L2/TaikoL2.sol:TaikoL2 | | publicInputHash | bytes32 | 252 | 0 | 32 | contracts/L2/TaikoL2.sol:TaikoL2 | | gasExcess | uint64 | 253 | 0 | 8 | contracts/L2/TaikoL2.sol:TaikoL2 | | lastSyncedBlock | uint64 | 253 | 8 | 8 | contracts/L2/TaikoL2.sol:TaikoL2 | -| \_\_deprecated1 | uint64 | 253 | 16 | 8 | contracts/L2/TaikoL2.sol:TaikoL2 | -| \_\_deprecated2 | uint64 | 253 | 24 | 8 | contracts/L2/TaikoL2.sol:TaikoL2 | +| __deprecated1 | uint64 | 253 | 16 | 8 | contracts/L2/TaikoL2.sol:TaikoL2 | +| __deprecated2 | uint64 | 253 | 24 | 8 | contracts/L2/TaikoL2.sol:TaikoL2 | | l1ChainId | uint64 | 254 | 0 | 8 | contracts/L2/TaikoL2.sol:TaikoL2 | -| \_\_gap | uint256[46] | 255 | 0 | 1472 | contracts/L2/TaikoL2.sol:TaikoL2 | +| __gap | uint256[46] | 255 | 0 | 1472 | contracts/L2/TaikoL2.sol:TaikoL2 | ## SignalService - | Name | Type | Slot | Offset | Bytes | Contract | -| -------------- | --------------------------------------------- | ---- | ------ | ----- | ------------------------------------------------ | -| \_initialized | uint8 | 0 | 0 | 1 | contracts/signal/SignalService.sol:SignalService | -| \_initializing | bool | 0 | 1 | 1 | contracts/signal/SignalService.sol:SignalService | -| \_\_gap | uint256[50] | 1 | 0 | 1600 | contracts/signal/SignalService.sol:SignalService | -| \_owner | address | 51 | 0 | 20 | contracts/signal/SignalService.sol:SignalService | -| \_\_gap | uint256[49] | 52 | 0 | 1568 | contracts/signal/SignalService.sol:SignalService | -| \_pendingOwner | address | 101 | 0 | 20 | contracts/signal/SignalService.sol:SignalService | -| \_\_gap | uint256[49] | 102 | 0 | 1568 | contracts/signal/SignalService.sol:SignalService | +|----------------|-----------------------------------------------|------|--------|-------|--------------------------------------------------| +| _initialized | uint8 | 0 | 0 | 1 | contracts/signal/SignalService.sol:SignalService | +| _initializing | bool | 0 | 1 | 1 | contracts/signal/SignalService.sol:SignalService | +| __gap | uint256[50] | 1 | 0 | 1600 | contracts/signal/SignalService.sol:SignalService | +| _owner | address | 51 | 0 | 20 | contracts/signal/SignalService.sol:SignalService | +| __gap | uint256[49] | 52 | 0 | 1568 | contracts/signal/SignalService.sol:SignalService | +| _pendingOwner | address | 101 | 0 | 20 | contracts/signal/SignalService.sol:SignalService | +| __gap | uint256[49] | 102 | 0 | 1568 | contracts/signal/SignalService.sol:SignalService | | addressManager | address | 151 | 0 | 20 | contracts/signal/SignalService.sol:SignalService | -| \_\_gap | uint256[49] | 152 | 0 | 1568 | contracts/signal/SignalService.sol:SignalService | -| \_\_reentry | uint8 | 201 | 0 | 1 | contracts/signal/SignalService.sol:SignalService | -| \_\_paused | uint8 | 201 | 1 | 1 | contracts/signal/SignalService.sol:SignalService | +| __gap | uint256[49] | 152 | 0 | 1568 | contracts/signal/SignalService.sol:SignalService | +| __reentry | uint8 | 201 | 0 | 1 | contracts/signal/SignalService.sol:SignalService | +| __paused | uint8 | 201 | 1 | 1 | contracts/signal/SignalService.sol:SignalService | | lastUnpausedAt | uint64 | 201 | 2 | 8 | contracts/signal/SignalService.sol:SignalService | -| \_\_gap | uint256[49] | 202 | 0 | 1568 | contracts/signal/SignalService.sol:SignalService | +| __gap | uint256[49] | 202 | 0 | 1568 | contracts/signal/SignalService.sol:SignalService | | topBlockId | mapping(uint64 => mapping(bytes32 => uint64)) | 251 | 0 | 32 | contracts/signal/SignalService.sol:SignalService | | isAuthorized | mapping(address => bool) | 252 | 0 | 32 | contracts/signal/SignalService.sol:SignalService | -| \_\_gap | uint256[48] | 253 | 0 | 1536 | contracts/signal/SignalService.sol:SignalService | +| __gap | uint256[48] | 253 | 0 | 1536 | contracts/signal/SignalService.sol:SignalService | ## Bridge - | Name | Type | Slot | Offset | Bytes | Contract | -| -------------- | --------------------------------------- | ---- | ------ | ----- | ---------------------------------- | -| \_initialized | uint8 | 0 | 0 | 1 | contracts/bridge/Bridge.sol:Bridge | -| \_initializing | bool | 0 | 1 | 1 | contracts/bridge/Bridge.sol:Bridge | -| \_\_gap | uint256[50] | 1 | 0 | 1600 | contracts/bridge/Bridge.sol:Bridge | -| \_owner | address | 51 | 0 | 20 | contracts/bridge/Bridge.sol:Bridge | -| \_\_gap | uint256[49] | 52 | 0 | 1568 | contracts/bridge/Bridge.sol:Bridge | -| \_pendingOwner | address | 101 | 0 | 20 | contracts/bridge/Bridge.sol:Bridge | -| \_\_gap | uint256[49] | 102 | 0 | 1568 | contracts/bridge/Bridge.sol:Bridge | +|----------------|-----------------------------------------|------|--------|-------|------------------------------------| +| _initialized | uint8 | 0 | 0 | 1 | contracts/bridge/Bridge.sol:Bridge | +| _initializing | bool | 0 | 1 | 1 | contracts/bridge/Bridge.sol:Bridge | +| __gap | uint256[50] | 1 | 0 | 1600 | contracts/bridge/Bridge.sol:Bridge | +| _owner | address | 51 | 0 | 20 | contracts/bridge/Bridge.sol:Bridge | +| __gap | uint256[49] | 52 | 0 | 1568 | contracts/bridge/Bridge.sol:Bridge | +| _pendingOwner | address | 101 | 0 | 20 | contracts/bridge/Bridge.sol:Bridge | +| __gap | uint256[49] | 102 | 0 | 1568 | contracts/bridge/Bridge.sol:Bridge | | addressManager | address | 151 | 0 | 20 | contracts/bridge/Bridge.sol:Bridge | -| \_\_gap | uint256[49] | 152 | 0 | 1568 | contracts/bridge/Bridge.sol:Bridge | -| \_\_reentry | uint8 | 201 | 0 | 1 | contracts/bridge/Bridge.sol:Bridge | -| \_\_paused | uint8 | 201 | 1 | 1 | contracts/bridge/Bridge.sol:Bridge | +| __gap | uint256[49] | 152 | 0 | 1568 | contracts/bridge/Bridge.sol:Bridge | +| __reentry | uint8 | 201 | 0 | 1 | contracts/bridge/Bridge.sol:Bridge | +| __paused | uint8 | 201 | 1 | 1 | contracts/bridge/Bridge.sol:Bridge | | lastUnpausedAt | uint64 | 201 | 2 | 8 | contracts/bridge/Bridge.sol:Bridge | -| \_\_gap | uint256[49] | 202 | 0 | 1568 | contracts/bridge/Bridge.sol:Bridge | -| \_\_reserved1 | uint64 | 251 | 0 | 8 | contracts/bridge/Bridge.sol:Bridge | +| __gap | uint256[49] | 202 | 0 | 1568 | contracts/bridge/Bridge.sol:Bridge | +| __reserved1 | uint64 | 251 | 0 | 8 | contracts/bridge/Bridge.sol:Bridge | | nextMessageId | uint64 | 251 | 8 | 8 | contracts/bridge/Bridge.sol:Bridge | | messageStatus | mapping(bytes32 => enum IBridge.Status) | 252 | 0 | 32 | contracts/bridge/Bridge.sol:Bridge | -| \_\_ctx | struct IBridge.Context | 253 | 0 | 64 | contracts/bridge/Bridge.sol:Bridge | -| \_\_reserved2 | uint256 | 255 | 0 | 32 | contracts/bridge/Bridge.sol:Bridge | -| \_\_reserved3 | uint256 | 256 | 0 | 32 | contracts/bridge/Bridge.sol:Bridge | -| \_\_gap | uint256[44] | 257 | 0 | 1408 | contracts/bridge/Bridge.sol:Bridge | +| __ctx | struct IBridge.Context | 253 | 0 | 64 | contracts/bridge/Bridge.sol:Bridge | +| __reserved2 | uint256 | 255 | 0 | 32 | contracts/bridge/Bridge.sol:Bridge | +| __reserved3 | uint256 | 256 | 0 | 32 | contracts/bridge/Bridge.sol:Bridge | +| __gap | uint256[44] | 257 | 0 | 1408 | contracts/bridge/Bridge.sol:Bridge | ## DelegateOwner - | Name | Type | Slot | Offset | Bytes | Contract | -| -------------- | ----------- | ---- | ------ | ----- | -------------------------------------------- | -| \_initialized | uint8 | 0 | 0 | 1 | contracts/L2/DelegateOwner.sol:DelegateOwner | -| \_initializing | bool | 0 | 1 | 1 | contracts/L2/DelegateOwner.sol:DelegateOwner | -| \_\_gap | uint256[50] | 1 | 0 | 1600 | contracts/L2/DelegateOwner.sol:DelegateOwner | -| \_owner | address | 51 | 0 | 20 | contracts/L2/DelegateOwner.sol:DelegateOwner | -| \_\_gap | uint256[49] | 52 | 0 | 1568 | contracts/L2/DelegateOwner.sol:DelegateOwner | -| \_pendingOwner | address | 101 | 0 | 20 | contracts/L2/DelegateOwner.sol:DelegateOwner | -| \_\_gap | uint256[49] | 102 | 0 | 1568 | contracts/L2/DelegateOwner.sol:DelegateOwner | +|----------------|-------------|------|--------|-------|----------------------------------------------| +| _initialized | uint8 | 0 | 0 | 1 | contracts/L2/DelegateOwner.sol:DelegateOwner | +| _initializing | bool | 0 | 1 | 1 | contracts/L2/DelegateOwner.sol:DelegateOwner | +| __gap | uint256[50] | 1 | 0 | 1600 | contracts/L2/DelegateOwner.sol:DelegateOwner | +| _owner | address | 51 | 0 | 20 | contracts/L2/DelegateOwner.sol:DelegateOwner | +| __gap | uint256[49] | 52 | 0 | 1568 | contracts/L2/DelegateOwner.sol:DelegateOwner | +| _pendingOwner | address | 101 | 0 | 20 | contracts/L2/DelegateOwner.sol:DelegateOwner | +| __gap | uint256[49] | 102 | 0 | 1568 | contracts/L2/DelegateOwner.sol:DelegateOwner | | addressManager | address | 151 | 0 | 20 | contracts/L2/DelegateOwner.sol:DelegateOwner | -| \_\_gap | uint256[49] | 152 | 0 | 1568 | contracts/L2/DelegateOwner.sol:DelegateOwner | -| \_\_reentry | uint8 | 201 | 0 | 1 | contracts/L2/DelegateOwner.sol:DelegateOwner | -| \_\_paused | uint8 | 201 | 1 | 1 | contracts/L2/DelegateOwner.sol:DelegateOwner | +| __gap | uint256[49] | 152 | 0 | 1568 | contracts/L2/DelegateOwner.sol:DelegateOwner | +| __reentry | uint8 | 201 | 0 | 1 | contracts/L2/DelegateOwner.sol:DelegateOwner | +| __paused | uint8 | 201 | 1 | 1 | contracts/L2/DelegateOwner.sol:DelegateOwner | | lastUnpausedAt | uint64 | 201 | 2 | 8 | contracts/L2/DelegateOwner.sol:DelegateOwner | -| \_\_gap | uint256[49] | 202 | 0 | 1568 | contracts/L2/DelegateOwner.sol:DelegateOwner | +| __gap | uint256[49] | 202 | 0 | 1568 | contracts/L2/DelegateOwner.sol:DelegateOwner | | l1ChainId | uint64 | 251 | 0 | 8 | contracts/L2/DelegateOwner.sol:DelegateOwner | | nextTxId | uint64 | 251 | 8 | 8 | contracts/L2/DelegateOwner.sol:DelegateOwner | | realOwner | address | 252 | 0 | 20 | contracts/L2/DelegateOwner.sol:DelegateOwner | -| \_\_gap | uint256[48] | 253 | 0 | 1536 | contracts/L2/DelegateOwner.sol:DelegateOwner | +| __gap | uint256[48] | 253 | 0 | 1536 | contracts/L2/DelegateOwner.sol:DelegateOwner | ## GuardianProver - | Name | Type | Slot | Offset | Bytes | Contract | -| -------------- | ---------------------------------------------- | ---- | ------ | ----- | ------------------------------------------------------ | -| \_initialized | uint8 | 0 | 0 | 1 | contracts/L1/provers/GuardianProver.sol:GuardianProver | -| \_initializing | bool | 0 | 1 | 1 | contracts/L1/provers/GuardianProver.sol:GuardianProver | -| \_\_gap | uint256[50] | 1 | 0 | 1600 | contracts/L1/provers/GuardianProver.sol:GuardianProver | -| \_owner | address | 51 | 0 | 20 | contracts/L1/provers/GuardianProver.sol:GuardianProver | -| \_\_gap | uint256[49] | 52 | 0 | 1568 | contracts/L1/provers/GuardianProver.sol:GuardianProver | -| \_pendingOwner | address | 101 | 0 | 20 | contracts/L1/provers/GuardianProver.sol:GuardianProver | -| \_\_gap | uint256[49] | 102 | 0 | 1568 | contracts/L1/provers/GuardianProver.sol:GuardianProver | +|----------------|------------------------------------------------|------|--------|-------|--------------------------------------------------------| +| _initialized | uint8 | 0 | 0 | 1 | contracts/L1/provers/GuardianProver.sol:GuardianProver | +| _initializing | bool | 0 | 1 | 1 | contracts/L1/provers/GuardianProver.sol:GuardianProver | +| __gap | uint256[50] | 1 | 0 | 1600 | contracts/L1/provers/GuardianProver.sol:GuardianProver | +| _owner | address | 51 | 0 | 20 | contracts/L1/provers/GuardianProver.sol:GuardianProver | +| __gap | uint256[49] | 52 | 0 | 1568 | contracts/L1/provers/GuardianProver.sol:GuardianProver | +| _pendingOwner | address | 101 | 0 | 20 | contracts/L1/provers/GuardianProver.sol:GuardianProver | +| __gap | uint256[49] | 102 | 0 | 1568 | contracts/L1/provers/GuardianProver.sol:GuardianProver | | addressManager | address | 151 | 0 | 20 | contracts/L1/provers/GuardianProver.sol:GuardianProver | -| \_\_gap | uint256[49] | 152 | 0 | 1568 | contracts/L1/provers/GuardianProver.sol:GuardianProver | -| \_\_reentry | uint8 | 201 | 0 | 1 | contracts/L1/provers/GuardianProver.sol:GuardianProver | -| \_\_paused | uint8 | 201 | 1 | 1 | contracts/L1/provers/GuardianProver.sol:GuardianProver | +| __gap | uint256[49] | 152 | 0 | 1568 | contracts/L1/provers/GuardianProver.sol:GuardianProver | +| __reentry | uint8 | 201 | 0 | 1 | contracts/L1/provers/GuardianProver.sol:GuardianProver | +| __paused | uint8 | 201 | 1 | 1 | contracts/L1/provers/GuardianProver.sol:GuardianProver | | lastUnpausedAt | uint64 | 201 | 2 | 8 | contracts/L1/provers/GuardianProver.sol:GuardianProver | -| \_\_gap | uint256[49] | 202 | 0 | 1568 | contracts/L1/provers/GuardianProver.sol:GuardianProver | +| __gap | uint256[49] | 202 | 0 | 1568 | contracts/L1/provers/GuardianProver.sol:GuardianProver | | guardianIds | mapping(address => uint256) | 251 | 0 | 32 | contracts/L1/provers/GuardianProver.sol:GuardianProver | -| \_approvals | mapping(uint32 => mapping(bytes32 => uint256)) | 252 | 0 | 32 | contracts/L1/provers/GuardianProver.sol:GuardianProver | +| _approvals | mapping(uint32 => mapping(bytes32 => uint256)) | 252 | 0 | 32 | contracts/L1/provers/GuardianProver.sol:GuardianProver | | guardians | address[] | 253 | 0 | 32 | contracts/L1/provers/GuardianProver.sol:GuardianProver | | version | uint32 | 254 | 0 | 4 | contracts/L1/provers/GuardianProver.sol:GuardianProver | | minGuardians | uint32 | 254 | 4 | 4 | contracts/L1/provers/GuardianProver.sol:GuardianProver | -| \_\_gap | uint256[46] | 255 | 0 | 1472 | contracts/L1/provers/GuardianProver.sol:GuardianProver | -| \_\_gap | uint256[50] | 301 | 0 | 1600 | contracts/L1/provers/GuardianProver.sol:GuardianProver | +| __gap | uint256[46] | 255 | 0 | 1472 | contracts/L1/provers/GuardianProver.sol:GuardianProver | +| __gap | uint256[50] | 301 | 0 | 1600 | contracts/L1/provers/GuardianProver.sol:GuardianProver | ## TaikoToken - -| Name | Type | Slot | Offset | Bytes | Contract | -| ----------------------------------------------------- | ------------------------------------------------------------- | ---- | ------ | ----- | --------------------------------------- | -| \_initialized | uint8 | 0 | 0 | 1 | contracts/tko/TaikoToken.sol:TaikoToken | -| \_initializing | bool | 0 | 1 | 1 | contracts/tko/TaikoToken.sol:TaikoToken | -| \_\_gap | uint256[50] | 1 | 0 | 1600 | contracts/tko/TaikoToken.sol:TaikoToken | -| \_owner | address | 51 | 0 | 20 | contracts/tko/TaikoToken.sol:TaikoToken | -| \_\_gap | uint256[49] | 52 | 0 | 1568 | contracts/tko/TaikoToken.sol:TaikoToken | -| \_pendingOwner | address | 101 | 0 | 20 | contracts/tko/TaikoToken.sol:TaikoToken | -| \_\_gap | uint256[49] | 102 | 0 | 1568 | contracts/tko/TaikoToken.sol:TaikoToken | -| addressManager | address | 151 | 0 | 20 | contracts/tko/TaikoToken.sol:TaikoToken | -| \_\_gap | uint256[49] | 152 | 0 | 1568 | contracts/tko/TaikoToken.sol:TaikoToken | -| \_\_reentry | uint8 | 201 | 0 | 1 | contracts/tko/TaikoToken.sol:TaikoToken | -| \_\_paused | uint8 | 201 | 1 | 1 | contracts/tko/TaikoToken.sol:TaikoToken | -| lastUnpausedAt | uint64 | 201 | 2 | 8 | contracts/tko/TaikoToken.sol:TaikoToken | -| \_\_gap | uint256[49] | 202 | 0 | 1568 | contracts/tko/TaikoToken.sol:TaikoToken | -| \_\_slots_previously_used_by_ERC20SnapshotUpgradeable | uint256[50] | 251 | 0 | 1600 | contracts/tko/TaikoToken.sol:TaikoToken | -| \_balances | mapping(address => uint256) | 301 | 0 | 32 | contracts/tko/TaikoToken.sol:TaikoToken | -| \_allowances | mapping(address => mapping(address => uint256)) | 302 | 0 | 32 | contracts/tko/TaikoToken.sol:TaikoToken | -| \_totalSupply | uint256 | 303 | 0 | 32 | contracts/tko/TaikoToken.sol:TaikoToken | -| \_name | string | 304 | 0 | 32 | contracts/tko/TaikoToken.sol:TaikoToken | -| \_symbol | string | 305 | 0 | 32 | contracts/tko/TaikoToken.sol:TaikoToken | -| \_\_gap | uint256[45] | 306 | 0 | 1440 | contracts/tko/TaikoToken.sol:TaikoToken | -| \_hashedName | bytes32 | 351 | 0 | 32 | contracts/tko/TaikoToken.sol:TaikoToken | -| \_hashedVersion | bytes32 | 352 | 0 | 32 | contracts/tko/TaikoToken.sol:TaikoToken | -| \_name | string | 353 | 0 | 32 | contracts/tko/TaikoToken.sol:TaikoToken | -| \_version | string | 354 | 0 | 32 | contracts/tko/TaikoToken.sol:TaikoToken | -| \_\_gap | uint256[48] | 355 | 0 | 1536 | contracts/tko/TaikoToken.sol:TaikoToken | -| \_nonces | mapping(address => struct CountersUpgradeable.Counter) | 403 | 0 | 32 | contracts/tko/TaikoToken.sol:TaikoToken | -| \_PERMIT_TYPEHASH_DEPRECATED_SLOT | bytes32 | 404 | 0 | 32 | contracts/tko/TaikoToken.sol:TaikoToken | -| \_\_gap | uint256[49] | 405 | 0 | 1568 | contracts/tko/TaikoToken.sol:TaikoToken | -| \_delegates | mapping(address => address) | 454 | 0 | 32 | contracts/tko/TaikoToken.sol:TaikoToken | -| \_checkpoints | mapping(address => struct ERC20VotesUpgradeable.Checkpoint[]) | 455 | 0 | 32 | contracts/tko/TaikoToken.sol:TaikoToken | -| \_totalSupplyCheckpoints | struct ERC20VotesUpgradeable.Checkpoint[] | 456 | 0 | 32 | contracts/tko/TaikoToken.sol:TaikoToken | -| \_\_gap | uint256[47] | 457 | 0 | 1504 | contracts/tko/TaikoToken.sol:TaikoToken | -| \_\_gap | uint256[50] | 504 | 0 | 1600 | contracts/tko/TaikoToken.sol:TaikoToken | +| Name | Type | Slot | Offset | Bytes | Contract | +|-----------------------------------------------------|---------------------------------------------------------------|------|--------|-------|-----------------------------------------| +| _initialized | uint8 | 0 | 0 | 1 | contracts/tko/TaikoToken.sol:TaikoToken | +| _initializing | bool | 0 | 1 | 1 | contracts/tko/TaikoToken.sol:TaikoToken | +| __gap | uint256[50] | 1 | 0 | 1600 | contracts/tko/TaikoToken.sol:TaikoToken | +| _owner | address | 51 | 0 | 20 | contracts/tko/TaikoToken.sol:TaikoToken | +| __gap | uint256[49] | 52 | 0 | 1568 | contracts/tko/TaikoToken.sol:TaikoToken | +| _pendingOwner | address | 101 | 0 | 20 | contracts/tko/TaikoToken.sol:TaikoToken | +| __gap | uint256[49] | 102 | 0 | 1568 | contracts/tko/TaikoToken.sol:TaikoToken | +| addressManager | address | 151 | 0 | 20 | contracts/tko/TaikoToken.sol:TaikoToken | +| __gap | uint256[49] | 152 | 0 | 1568 | contracts/tko/TaikoToken.sol:TaikoToken | +| __reentry | uint8 | 201 | 0 | 1 | contracts/tko/TaikoToken.sol:TaikoToken | +| __paused | uint8 | 201 | 1 | 1 | contracts/tko/TaikoToken.sol:TaikoToken | +| lastUnpausedAt | uint64 | 201 | 2 | 8 | contracts/tko/TaikoToken.sol:TaikoToken | +| __gap | uint256[49] | 202 | 0 | 1568 | contracts/tko/TaikoToken.sol:TaikoToken | +| __slots_previously_used_by_ERC20SnapshotUpgradeable | uint256[50] | 251 | 0 | 1600 | contracts/tko/TaikoToken.sol:TaikoToken | +| _balances | mapping(address => uint256) | 301 | 0 | 32 | contracts/tko/TaikoToken.sol:TaikoToken | +| _allowances | mapping(address => mapping(address => uint256)) | 302 | 0 | 32 | contracts/tko/TaikoToken.sol:TaikoToken | +| _totalSupply | uint256 | 303 | 0 | 32 | contracts/tko/TaikoToken.sol:TaikoToken | +| _name | string | 304 | 0 | 32 | contracts/tko/TaikoToken.sol:TaikoToken | +| _symbol | string | 305 | 0 | 32 | contracts/tko/TaikoToken.sol:TaikoToken | +| __gap | uint256[45] | 306 | 0 | 1440 | contracts/tko/TaikoToken.sol:TaikoToken | +| _hashedName | bytes32 | 351 | 0 | 32 | contracts/tko/TaikoToken.sol:TaikoToken | +| _hashedVersion | bytes32 | 352 | 0 | 32 | contracts/tko/TaikoToken.sol:TaikoToken | +| _name | string | 353 | 0 | 32 | contracts/tko/TaikoToken.sol:TaikoToken | +| _version | string | 354 | 0 | 32 | contracts/tko/TaikoToken.sol:TaikoToken | +| __gap | uint256[48] | 355 | 0 | 1536 | contracts/tko/TaikoToken.sol:TaikoToken | +| _nonces | mapping(address => struct CountersUpgradeable.Counter) | 403 | 0 | 32 | contracts/tko/TaikoToken.sol:TaikoToken | +| _PERMIT_TYPEHASH_DEPRECATED_SLOT | bytes32 | 404 | 0 | 32 | contracts/tko/TaikoToken.sol:TaikoToken | +| __gap | uint256[49] | 405 | 0 | 1568 | contracts/tko/TaikoToken.sol:TaikoToken | +| _delegates | mapping(address => address) | 454 | 0 | 32 | contracts/tko/TaikoToken.sol:TaikoToken | +| _checkpoints | mapping(address => struct ERC20VotesUpgradeable.Checkpoint[]) | 455 | 0 | 32 | contracts/tko/TaikoToken.sol:TaikoToken | +| _totalSupplyCheckpoints | struct ERC20VotesUpgradeable.Checkpoint[] | 456 | 0 | 32 | contracts/tko/TaikoToken.sol:TaikoToken | +| __gap | uint256[47] | 457 | 0 | 1504 | contracts/tko/TaikoToken.sol:TaikoToken | +| __gap | uint256[50] | 504 | 0 | 1600 | contracts/tko/TaikoToken.sol:TaikoToken | ## BridgedTaikoToken - -| Name | Type | Slot | Offset | Bytes | Contract | -| ----------------------------------------------------- | ------------------------------------------------------------- | ---- | ------ | ----- | ----------------------------------------------------- | -| \_initialized | uint8 | 0 | 0 | 1 | contracts/tko/BridgedTaikoToken.sol:BridgedTaikoToken | -| \_initializing | bool | 0 | 1 | 1 | contracts/tko/BridgedTaikoToken.sol:BridgedTaikoToken | -| \_\_gap | uint256[50] | 1 | 0 | 1600 | contracts/tko/BridgedTaikoToken.sol:BridgedTaikoToken | -| \_owner | address | 51 | 0 | 20 | contracts/tko/BridgedTaikoToken.sol:BridgedTaikoToken | -| \_\_gap | uint256[49] | 52 | 0 | 1568 | contracts/tko/BridgedTaikoToken.sol:BridgedTaikoToken | -| \_pendingOwner | address | 101 | 0 | 20 | contracts/tko/BridgedTaikoToken.sol:BridgedTaikoToken | -| \_\_gap | uint256[49] | 102 | 0 | 1568 | contracts/tko/BridgedTaikoToken.sol:BridgedTaikoToken | -| addressManager | address | 151 | 0 | 20 | contracts/tko/BridgedTaikoToken.sol:BridgedTaikoToken | -| \_\_gap | uint256[49] | 152 | 0 | 1568 | contracts/tko/BridgedTaikoToken.sol:BridgedTaikoToken | -| \_\_reentry | uint8 | 201 | 0 | 1 | contracts/tko/BridgedTaikoToken.sol:BridgedTaikoToken | -| \_\_paused | uint8 | 201 | 1 | 1 | contracts/tko/BridgedTaikoToken.sol:BridgedTaikoToken | -| lastUnpausedAt | uint64 | 201 | 2 | 8 | contracts/tko/BridgedTaikoToken.sol:BridgedTaikoToken | -| \_\_gap | uint256[49] | 202 | 0 | 1568 | contracts/tko/BridgedTaikoToken.sol:BridgedTaikoToken | -| \_\_slots_previously_used_by_ERC20SnapshotUpgradeable | uint256[50] | 251 | 0 | 1600 | contracts/tko/BridgedTaikoToken.sol:BridgedTaikoToken | -| \_balances | mapping(address => uint256) | 301 | 0 | 32 | contracts/tko/BridgedTaikoToken.sol:BridgedTaikoToken | -| \_allowances | mapping(address => mapping(address => uint256)) | 302 | 0 | 32 | contracts/tko/BridgedTaikoToken.sol:BridgedTaikoToken | -| \_totalSupply | uint256 | 303 | 0 | 32 | contracts/tko/BridgedTaikoToken.sol:BridgedTaikoToken | -| \_name | string | 304 | 0 | 32 | contracts/tko/BridgedTaikoToken.sol:BridgedTaikoToken | -| \_symbol | string | 305 | 0 | 32 | contracts/tko/BridgedTaikoToken.sol:BridgedTaikoToken | -| \_\_gap | uint256[45] | 306 | 0 | 1440 | contracts/tko/BridgedTaikoToken.sol:BridgedTaikoToken | -| \_hashedName | bytes32 | 351 | 0 | 32 | contracts/tko/BridgedTaikoToken.sol:BridgedTaikoToken | -| \_hashedVersion | bytes32 | 352 | 0 | 32 | contracts/tko/BridgedTaikoToken.sol:BridgedTaikoToken | -| \_name | string | 353 | 0 | 32 | contracts/tko/BridgedTaikoToken.sol:BridgedTaikoToken | -| \_version | string | 354 | 0 | 32 | contracts/tko/BridgedTaikoToken.sol:BridgedTaikoToken | -| \_\_gap | uint256[48] | 355 | 0 | 1536 | contracts/tko/BridgedTaikoToken.sol:BridgedTaikoToken | -| \_nonces | mapping(address => struct CountersUpgradeable.Counter) | 403 | 0 | 32 | contracts/tko/BridgedTaikoToken.sol:BridgedTaikoToken | -| \_PERMIT_TYPEHASH_DEPRECATED_SLOT | bytes32 | 404 | 0 | 32 | contracts/tko/BridgedTaikoToken.sol:BridgedTaikoToken | -| \_\_gap | uint256[49] | 405 | 0 | 1568 | contracts/tko/BridgedTaikoToken.sol:BridgedTaikoToken | -| \_delegates | mapping(address => address) | 454 | 0 | 32 | contracts/tko/BridgedTaikoToken.sol:BridgedTaikoToken | -| \_checkpoints | mapping(address => struct ERC20VotesUpgradeable.Checkpoint[]) | 455 | 0 | 32 | contracts/tko/BridgedTaikoToken.sol:BridgedTaikoToken | -| \_totalSupplyCheckpoints | struct ERC20VotesUpgradeable.Checkpoint[] | 456 | 0 | 32 | contracts/tko/BridgedTaikoToken.sol:BridgedTaikoToken | -| \_\_gap | uint256[47] | 457 | 0 | 1504 | contracts/tko/BridgedTaikoToken.sol:BridgedTaikoToken | -| \_\_gap | uint256[50] | 504 | 0 | 1600 | contracts/tko/BridgedTaikoToken.sol:BridgedTaikoToken | +| Name | Type | Slot | Offset | Bytes | Contract | +|-----------------------------------------------------|---------------------------------------------------------------|------|--------|-------|-------------------------------------------------------| +| _initialized | uint8 | 0 | 0 | 1 | contracts/tko/BridgedTaikoToken.sol:BridgedTaikoToken | +| _initializing | bool | 0 | 1 | 1 | contracts/tko/BridgedTaikoToken.sol:BridgedTaikoToken | +| __gap | uint256[50] | 1 | 0 | 1600 | contracts/tko/BridgedTaikoToken.sol:BridgedTaikoToken | +| _owner | address | 51 | 0 | 20 | contracts/tko/BridgedTaikoToken.sol:BridgedTaikoToken | +| __gap | uint256[49] | 52 | 0 | 1568 | contracts/tko/BridgedTaikoToken.sol:BridgedTaikoToken | +| _pendingOwner | address | 101 | 0 | 20 | contracts/tko/BridgedTaikoToken.sol:BridgedTaikoToken | +| __gap | uint256[49] | 102 | 0 | 1568 | contracts/tko/BridgedTaikoToken.sol:BridgedTaikoToken | +| addressManager | address | 151 | 0 | 20 | contracts/tko/BridgedTaikoToken.sol:BridgedTaikoToken | +| __gap | uint256[49] | 152 | 0 | 1568 | contracts/tko/BridgedTaikoToken.sol:BridgedTaikoToken | +| __reentry | uint8 | 201 | 0 | 1 | contracts/tko/BridgedTaikoToken.sol:BridgedTaikoToken | +| __paused | uint8 | 201 | 1 | 1 | contracts/tko/BridgedTaikoToken.sol:BridgedTaikoToken | +| lastUnpausedAt | uint64 | 201 | 2 | 8 | contracts/tko/BridgedTaikoToken.sol:BridgedTaikoToken | +| __gap | uint256[49] | 202 | 0 | 1568 | contracts/tko/BridgedTaikoToken.sol:BridgedTaikoToken | +| __slots_previously_used_by_ERC20SnapshotUpgradeable | uint256[50] | 251 | 0 | 1600 | contracts/tko/BridgedTaikoToken.sol:BridgedTaikoToken | +| _balances | mapping(address => uint256) | 301 | 0 | 32 | contracts/tko/BridgedTaikoToken.sol:BridgedTaikoToken | +| _allowances | mapping(address => mapping(address => uint256)) | 302 | 0 | 32 | contracts/tko/BridgedTaikoToken.sol:BridgedTaikoToken | +| _totalSupply | uint256 | 303 | 0 | 32 | contracts/tko/BridgedTaikoToken.sol:BridgedTaikoToken | +| _name | string | 304 | 0 | 32 | contracts/tko/BridgedTaikoToken.sol:BridgedTaikoToken | +| _symbol | string | 305 | 0 | 32 | contracts/tko/BridgedTaikoToken.sol:BridgedTaikoToken | +| __gap | uint256[45] | 306 | 0 | 1440 | contracts/tko/BridgedTaikoToken.sol:BridgedTaikoToken | +| _hashedName | bytes32 | 351 | 0 | 32 | contracts/tko/BridgedTaikoToken.sol:BridgedTaikoToken | +| _hashedVersion | bytes32 | 352 | 0 | 32 | contracts/tko/BridgedTaikoToken.sol:BridgedTaikoToken | +| _name | string | 353 | 0 | 32 | contracts/tko/BridgedTaikoToken.sol:BridgedTaikoToken | +| _version | string | 354 | 0 | 32 | contracts/tko/BridgedTaikoToken.sol:BridgedTaikoToken | +| __gap | uint256[48] | 355 | 0 | 1536 | contracts/tko/BridgedTaikoToken.sol:BridgedTaikoToken | +| _nonces | mapping(address => struct CountersUpgradeable.Counter) | 403 | 0 | 32 | contracts/tko/BridgedTaikoToken.sol:BridgedTaikoToken | +| _PERMIT_TYPEHASH_DEPRECATED_SLOT | bytes32 | 404 | 0 | 32 | contracts/tko/BridgedTaikoToken.sol:BridgedTaikoToken | +| __gap | uint256[49] | 405 | 0 | 1568 | contracts/tko/BridgedTaikoToken.sol:BridgedTaikoToken | +| _delegates | mapping(address => address) | 454 | 0 | 32 | contracts/tko/BridgedTaikoToken.sol:BridgedTaikoToken | +| _checkpoints | mapping(address => struct ERC20VotesUpgradeable.Checkpoint[]) | 455 | 0 | 32 | contracts/tko/BridgedTaikoToken.sol:BridgedTaikoToken | +| _totalSupplyCheckpoints | struct ERC20VotesUpgradeable.Checkpoint[] | 456 | 0 | 32 | contracts/tko/BridgedTaikoToken.sol:BridgedTaikoToken | +| __gap | uint256[47] | 457 | 0 | 1504 | contracts/tko/BridgedTaikoToken.sol:BridgedTaikoToken | +| __gap | uint256[50] | 504 | 0 | 1600 | contracts/tko/BridgedTaikoToken.sol:BridgedTaikoToken | ## ERC20Vault - | Name | Type | Slot | Offset | Bytes | Contract | -| ------------------ | ---------------------------------------------------- | ---- | ------ | ----- | ---------------------------------------------- | -| \_initialized | uint8 | 0 | 0 | 1 | contracts/tokenvault/ERC20Vault.sol:ERC20Vault | -| \_initializing | bool | 0 | 1 | 1 | contracts/tokenvault/ERC20Vault.sol:ERC20Vault | -| \_\_gap | uint256[50] | 1 | 0 | 1600 | contracts/tokenvault/ERC20Vault.sol:ERC20Vault | -| \_owner | address | 51 | 0 | 20 | contracts/tokenvault/ERC20Vault.sol:ERC20Vault | -| \_\_gap | uint256[49] | 52 | 0 | 1568 | contracts/tokenvault/ERC20Vault.sol:ERC20Vault | -| \_pendingOwner | address | 101 | 0 | 20 | contracts/tokenvault/ERC20Vault.sol:ERC20Vault | -| \_\_gap | uint256[49] | 102 | 0 | 1568 | contracts/tokenvault/ERC20Vault.sol:ERC20Vault | +|--------------------|------------------------------------------------------|------|--------|-------|------------------------------------------------| +| _initialized | uint8 | 0 | 0 | 1 | contracts/tokenvault/ERC20Vault.sol:ERC20Vault | +| _initializing | bool | 0 | 1 | 1 | contracts/tokenvault/ERC20Vault.sol:ERC20Vault | +| __gap | uint256[50] | 1 | 0 | 1600 | contracts/tokenvault/ERC20Vault.sol:ERC20Vault | +| _owner | address | 51 | 0 | 20 | contracts/tokenvault/ERC20Vault.sol:ERC20Vault | +| __gap | uint256[49] | 52 | 0 | 1568 | contracts/tokenvault/ERC20Vault.sol:ERC20Vault | +| _pendingOwner | address | 101 | 0 | 20 | contracts/tokenvault/ERC20Vault.sol:ERC20Vault | +| __gap | uint256[49] | 102 | 0 | 1568 | contracts/tokenvault/ERC20Vault.sol:ERC20Vault | | addressManager | address | 151 | 0 | 20 | contracts/tokenvault/ERC20Vault.sol:ERC20Vault | -| \_\_gap | uint256[49] | 152 | 0 | 1568 | contracts/tokenvault/ERC20Vault.sol:ERC20Vault | -| \_\_reentry | uint8 | 201 | 0 | 1 | contracts/tokenvault/ERC20Vault.sol:ERC20Vault | -| \_\_paused | uint8 | 201 | 1 | 1 | contracts/tokenvault/ERC20Vault.sol:ERC20Vault | +| __gap | uint256[49] | 152 | 0 | 1568 | contracts/tokenvault/ERC20Vault.sol:ERC20Vault | +| __reentry | uint8 | 201 | 0 | 1 | contracts/tokenvault/ERC20Vault.sol:ERC20Vault | +| __paused | uint8 | 201 | 1 | 1 | contracts/tokenvault/ERC20Vault.sol:ERC20Vault | | lastUnpausedAt | uint64 | 201 | 2 | 8 | contracts/tokenvault/ERC20Vault.sol:ERC20Vault | -| \_\_gap | uint256[49] | 202 | 0 | 1568 | contracts/tokenvault/ERC20Vault.sol:ERC20Vault | -| \_\_gap | uint256[50] | 251 | 0 | 1600 | contracts/tokenvault/ERC20Vault.sol:ERC20Vault | +| __gap | uint256[49] | 202 | 0 | 1568 | contracts/tokenvault/ERC20Vault.sol:ERC20Vault | +| __gap | uint256[50] | 251 | 0 | 1600 | contracts/tokenvault/ERC20Vault.sol:ERC20Vault | | bridgedToCanonical | mapping(address => struct ERC20Vault.CanonicalERC20) | 301 | 0 | 32 | contracts/tokenvault/ERC20Vault.sol:ERC20Vault | | canonicalToBridged | mapping(uint256 => mapping(address => address)) | 302 | 0 | 32 | contracts/tokenvault/ERC20Vault.sol:ERC20Vault | | btokenBlacklist | mapping(address => bool) | 303 | 0 | 32 | contracts/tokenvault/ERC20Vault.sol:ERC20Vault | | lastMigrationStart | mapping(uint256 => mapping(address => uint256)) | 304 | 0 | 32 | contracts/tokenvault/ERC20Vault.sol:ERC20Vault | -| \_\_gap | uint256[46] | 305 | 0 | 1472 | contracts/tokenvault/ERC20Vault.sol:ERC20Vault | +| __gap | uint256[46] | 305 | 0 | 1472 | contracts/tokenvault/ERC20Vault.sol:ERC20Vault | ## ERC721Vault - | Name | Type | Slot | Offset | Bytes | Contract | -| ------------------ | ---------------------------------------------------- | ---- | ------ | ----- | ------------------------------------------------ | -| \_initialized | uint8 | 0 | 0 | 1 | contracts/tokenvault/ERC721Vault.sol:ERC721Vault | -| \_initializing | bool | 0 | 1 | 1 | contracts/tokenvault/ERC721Vault.sol:ERC721Vault | -| \_\_gap | uint256[50] | 1 | 0 | 1600 | contracts/tokenvault/ERC721Vault.sol:ERC721Vault | -| \_owner | address | 51 | 0 | 20 | contracts/tokenvault/ERC721Vault.sol:ERC721Vault | -| \_\_gap | uint256[49] | 52 | 0 | 1568 | contracts/tokenvault/ERC721Vault.sol:ERC721Vault | -| \_pendingOwner | address | 101 | 0 | 20 | contracts/tokenvault/ERC721Vault.sol:ERC721Vault | -| \_\_gap | uint256[49] | 102 | 0 | 1568 | contracts/tokenvault/ERC721Vault.sol:ERC721Vault | +|--------------------|------------------------------------------------------|------|--------|-------|--------------------------------------------------| +| _initialized | uint8 | 0 | 0 | 1 | contracts/tokenvault/ERC721Vault.sol:ERC721Vault | +| _initializing | bool | 0 | 1 | 1 | contracts/tokenvault/ERC721Vault.sol:ERC721Vault | +| __gap | uint256[50] | 1 | 0 | 1600 | contracts/tokenvault/ERC721Vault.sol:ERC721Vault | +| _owner | address | 51 | 0 | 20 | contracts/tokenvault/ERC721Vault.sol:ERC721Vault | +| __gap | uint256[49] | 52 | 0 | 1568 | contracts/tokenvault/ERC721Vault.sol:ERC721Vault | +| _pendingOwner | address | 101 | 0 | 20 | contracts/tokenvault/ERC721Vault.sol:ERC721Vault | +| __gap | uint256[49] | 102 | 0 | 1568 | contracts/tokenvault/ERC721Vault.sol:ERC721Vault | | addressManager | address | 151 | 0 | 20 | contracts/tokenvault/ERC721Vault.sol:ERC721Vault | -| \_\_gap | uint256[49] | 152 | 0 | 1568 | contracts/tokenvault/ERC721Vault.sol:ERC721Vault | -| \_\_reentry | uint8 | 201 | 0 | 1 | contracts/tokenvault/ERC721Vault.sol:ERC721Vault | -| \_\_paused | uint8 | 201 | 1 | 1 | contracts/tokenvault/ERC721Vault.sol:ERC721Vault | +| __gap | uint256[49] | 152 | 0 | 1568 | contracts/tokenvault/ERC721Vault.sol:ERC721Vault | +| __reentry | uint8 | 201 | 0 | 1 | contracts/tokenvault/ERC721Vault.sol:ERC721Vault | +| __paused | uint8 | 201 | 1 | 1 | contracts/tokenvault/ERC721Vault.sol:ERC721Vault | | lastUnpausedAt | uint64 | 201 | 2 | 8 | contracts/tokenvault/ERC721Vault.sol:ERC721Vault | -| \_\_gap | uint256[49] | 202 | 0 | 1568 | contracts/tokenvault/ERC721Vault.sol:ERC721Vault | -| \_\_gap | uint256[50] | 251 | 0 | 1600 | contracts/tokenvault/ERC721Vault.sol:ERC721Vault | +| __gap | uint256[49] | 202 | 0 | 1568 | contracts/tokenvault/ERC721Vault.sol:ERC721Vault | +| __gap | uint256[50] | 251 | 0 | 1600 | contracts/tokenvault/ERC721Vault.sol:ERC721Vault | | bridgedToCanonical | mapping(address => struct BaseNFTVault.CanonicalNFT) | 301 | 0 | 32 | contracts/tokenvault/ERC721Vault.sol:ERC721Vault | | canonicalToBridged | mapping(uint256 => mapping(address => address)) | 302 | 0 | 32 | contracts/tokenvault/ERC721Vault.sol:ERC721Vault | -| \_\_gap | uint256[48] | 303 | 0 | 1536 | contracts/tokenvault/ERC721Vault.sol:ERC721Vault | -| \_\_gap | uint256[50] | 351 | 0 | 1600 | contracts/tokenvault/ERC721Vault.sol:ERC721Vault | +| __gap | uint256[48] | 303 | 0 | 1536 | contracts/tokenvault/ERC721Vault.sol:ERC721Vault | +| __gap | uint256[50] | 351 | 0 | 1600 | contracts/tokenvault/ERC721Vault.sol:ERC721Vault | ## ERC1155Vault - | Name | Type | Slot | Offset | Bytes | Contract | -| ------------------ | ---------------------------------------------------- | ---- | ------ | ----- | -------------------------------------------------- | -| \_initialized | uint8 | 0 | 0 | 1 | contracts/tokenvault/ERC1155Vault.sol:ERC1155Vault | -| \_initializing | bool | 0 | 1 | 1 | contracts/tokenvault/ERC1155Vault.sol:ERC1155Vault | -| \_\_gap | uint256[50] | 1 | 0 | 1600 | contracts/tokenvault/ERC1155Vault.sol:ERC1155Vault | -| \_owner | address | 51 | 0 | 20 | contracts/tokenvault/ERC1155Vault.sol:ERC1155Vault | -| \_\_gap | uint256[49] | 52 | 0 | 1568 | contracts/tokenvault/ERC1155Vault.sol:ERC1155Vault | -| \_pendingOwner | address | 101 | 0 | 20 | contracts/tokenvault/ERC1155Vault.sol:ERC1155Vault | -| \_\_gap | uint256[49] | 102 | 0 | 1568 | contracts/tokenvault/ERC1155Vault.sol:ERC1155Vault | +|--------------------|------------------------------------------------------|------|--------|-------|----------------------------------------------------| +| _initialized | uint8 | 0 | 0 | 1 | contracts/tokenvault/ERC1155Vault.sol:ERC1155Vault | +| _initializing | bool | 0 | 1 | 1 | contracts/tokenvault/ERC1155Vault.sol:ERC1155Vault | +| __gap | uint256[50] | 1 | 0 | 1600 | contracts/tokenvault/ERC1155Vault.sol:ERC1155Vault | +| _owner | address | 51 | 0 | 20 | contracts/tokenvault/ERC1155Vault.sol:ERC1155Vault | +| __gap | uint256[49] | 52 | 0 | 1568 | contracts/tokenvault/ERC1155Vault.sol:ERC1155Vault | +| _pendingOwner | address | 101 | 0 | 20 | contracts/tokenvault/ERC1155Vault.sol:ERC1155Vault | +| __gap | uint256[49] | 102 | 0 | 1568 | contracts/tokenvault/ERC1155Vault.sol:ERC1155Vault | | addressManager | address | 151 | 0 | 20 | contracts/tokenvault/ERC1155Vault.sol:ERC1155Vault | -| \_\_gap | uint256[49] | 152 | 0 | 1568 | contracts/tokenvault/ERC1155Vault.sol:ERC1155Vault | -| \_\_reentry | uint8 | 201 | 0 | 1 | contracts/tokenvault/ERC1155Vault.sol:ERC1155Vault | -| \_\_paused | uint8 | 201 | 1 | 1 | contracts/tokenvault/ERC1155Vault.sol:ERC1155Vault | +| __gap | uint256[49] | 152 | 0 | 1568 | contracts/tokenvault/ERC1155Vault.sol:ERC1155Vault | +| __reentry | uint8 | 201 | 0 | 1 | contracts/tokenvault/ERC1155Vault.sol:ERC1155Vault | +| __paused | uint8 | 201 | 1 | 1 | contracts/tokenvault/ERC1155Vault.sol:ERC1155Vault | | lastUnpausedAt | uint64 | 201 | 2 | 8 | contracts/tokenvault/ERC1155Vault.sol:ERC1155Vault | -| \_\_gap | uint256[49] | 202 | 0 | 1568 | contracts/tokenvault/ERC1155Vault.sol:ERC1155Vault | -| \_\_gap | uint256[50] | 251 | 0 | 1600 | contracts/tokenvault/ERC1155Vault.sol:ERC1155Vault | +| __gap | uint256[49] | 202 | 0 | 1568 | contracts/tokenvault/ERC1155Vault.sol:ERC1155Vault | +| __gap | uint256[50] | 251 | 0 | 1600 | contracts/tokenvault/ERC1155Vault.sol:ERC1155Vault | | bridgedToCanonical | mapping(address => struct BaseNFTVault.CanonicalNFT) | 301 | 0 | 32 | contracts/tokenvault/ERC1155Vault.sol:ERC1155Vault | | canonicalToBridged | mapping(uint256 => mapping(address => address)) | 302 | 0 | 32 | contracts/tokenvault/ERC1155Vault.sol:ERC1155Vault | -| \_\_gap | uint256[48] | 303 | 0 | 1536 | contracts/tokenvault/ERC1155Vault.sol:ERC1155Vault | -| \_\_gap | uint256[50] | 351 | 0 | 1600 | contracts/tokenvault/ERC1155Vault.sol:ERC1155Vault | -| \_\_gap | uint256[50] | 401 | 0 | 1600 | contracts/tokenvault/ERC1155Vault.sol:ERC1155Vault | -| \_\_gap | uint256[50] | 451 | 0 | 1600 | contracts/tokenvault/ERC1155Vault.sol:ERC1155Vault | +| __gap | uint256[48] | 303 | 0 | 1536 | contracts/tokenvault/ERC1155Vault.sol:ERC1155Vault | +| __gap | uint256[50] | 351 | 0 | 1600 | contracts/tokenvault/ERC1155Vault.sol:ERC1155Vault | +| __gap | uint256[50] | 401 | 0 | 1600 | contracts/tokenvault/ERC1155Vault.sol:ERC1155Vault | +| __gap | uint256[50] | 451 | 0 | 1600 | contracts/tokenvault/ERC1155Vault.sol:ERC1155Vault | ## BridgedERC20 - | Name | Type | Slot | Offset | Bytes | Contract | -| ---------------- | ----------------------------------------------- | ---- | ------ | ----- | -------------------------------------------------- | -| \_initialized | uint8 | 0 | 0 | 1 | contracts/tokenvault/BridgedERC20.sol:BridgedERC20 | -| \_initializing | bool | 0 | 1 | 1 | contracts/tokenvault/BridgedERC20.sol:BridgedERC20 | -| \_\_gap | uint256[50] | 1 | 0 | 1600 | contracts/tokenvault/BridgedERC20.sol:BridgedERC20 | -| \_owner | address | 51 | 0 | 20 | contracts/tokenvault/BridgedERC20.sol:BridgedERC20 | -| \_\_gap | uint256[49] | 52 | 0 | 1568 | contracts/tokenvault/BridgedERC20.sol:BridgedERC20 | -| \_pendingOwner | address | 101 | 0 | 20 | contracts/tokenvault/BridgedERC20.sol:BridgedERC20 | -| \_\_gap | uint256[49] | 102 | 0 | 1568 | contracts/tokenvault/BridgedERC20.sol:BridgedERC20 | +|------------------|-------------------------------------------------|------|--------|-------|----------------------------------------------------| +| _initialized | uint8 | 0 | 0 | 1 | contracts/tokenvault/BridgedERC20.sol:BridgedERC20 | +| _initializing | bool | 0 | 1 | 1 | contracts/tokenvault/BridgedERC20.sol:BridgedERC20 | +| __gap | uint256[50] | 1 | 0 | 1600 | contracts/tokenvault/BridgedERC20.sol:BridgedERC20 | +| _owner | address | 51 | 0 | 20 | contracts/tokenvault/BridgedERC20.sol:BridgedERC20 | +| __gap | uint256[49] | 52 | 0 | 1568 | contracts/tokenvault/BridgedERC20.sol:BridgedERC20 | +| _pendingOwner | address | 101 | 0 | 20 | contracts/tokenvault/BridgedERC20.sol:BridgedERC20 | +| __gap | uint256[49] | 102 | 0 | 1568 | contracts/tokenvault/BridgedERC20.sol:BridgedERC20 | | addressManager | address | 151 | 0 | 20 | contracts/tokenvault/BridgedERC20.sol:BridgedERC20 | -| \_\_gap | uint256[49] | 152 | 0 | 1568 | contracts/tokenvault/BridgedERC20.sol:BridgedERC20 | -| \_\_reentry | uint8 | 201 | 0 | 1 | contracts/tokenvault/BridgedERC20.sol:BridgedERC20 | -| \_\_paused | uint8 | 201 | 1 | 1 | contracts/tokenvault/BridgedERC20.sol:BridgedERC20 | +| __gap | uint256[49] | 152 | 0 | 1568 | contracts/tokenvault/BridgedERC20.sol:BridgedERC20 | +| __reentry | uint8 | 201 | 0 | 1 | contracts/tokenvault/BridgedERC20.sol:BridgedERC20 | +| __paused | uint8 | 201 | 1 | 1 | contracts/tokenvault/BridgedERC20.sol:BridgedERC20 | | lastUnpausedAt | uint64 | 201 | 2 | 8 | contracts/tokenvault/BridgedERC20.sol:BridgedERC20 | -| \_\_gap | uint256[49] | 202 | 0 | 1568 | contracts/tokenvault/BridgedERC20.sol:BridgedERC20 | -| \_balances | mapping(address => uint256) | 251 | 0 | 32 | contracts/tokenvault/BridgedERC20.sol:BridgedERC20 | -| \_allowances | mapping(address => mapping(address => uint256)) | 252 | 0 | 32 | contracts/tokenvault/BridgedERC20.sol:BridgedERC20 | -| \_totalSupply | uint256 | 253 | 0 | 32 | contracts/tokenvault/BridgedERC20.sol:BridgedERC20 | -| \_name | string | 254 | 0 | 32 | contracts/tokenvault/BridgedERC20.sol:BridgedERC20 | -| \_symbol | string | 255 | 0 | 32 | contracts/tokenvault/BridgedERC20.sol:BridgedERC20 | -| \_\_gap | uint256[45] | 256 | 0 | 1440 | contracts/tokenvault/BridgedERC20.sol:BridgedERC20 | +| __gap | uint256[49] | 202 | 0 | 1568 | contracts/tokenvault/BridgedERC20.sol:BridgedERC20 | +| _balances | mapping(address => uint256) | 251 | 0 | 32 | contracts/tokenvault/BridgedERC20.sol:BridgedERC20 | +| _allowances | mapping(address => mapping(address => uint256)) | 252 | 0 | 32 | contracts/tokenvault/BridgedERC20.sol:BridgedERC20 | +| _totalSupply | uint256 | 253 | 0 | 32 | contracts/tokenvault/BridgedERC20.sol:BridgedERC20 | +| _name | string | 254 | 0 | 32 | contracts/tokenvault/BridgedERC20.sol:BridgedERC20 | +| _symbol | string | 255 | 0 | 32 | contracts/tokenvault/BridgedERC20.sol:BridgedERC20 | +| __gap | uint256[45] | 256 | 0 | 1440 | contracts/tokenvault/BridgedERC20.sol:BridgedERC20 | | srcToken | address | 301 | 0 | 20 | contracts/tokenvault/BridgedERC20.sol:BridgedERC20 | -| \_\_srcDecimals | uint8 | 301 | 20 | 1 | contracts/tokenvault/BridgedERC20.sol:BridgedERC20 | +| __srcDecimals | uint8 | 301 | 20 | 1 | contracts/tokenvault/BridgedERC20.sol:BridgedERC20 | | srcChainId | uint256 | 302 | 0 | 32 | contracts/tokenvault/BridgedERC20.sol:BridgedERC20 | | migratingAddress | address | 303 | 0 | 20 | contracts/tokenvault/BridgedERC20.sol:BridgedERC20 | | migratingInbound | bool | 303 | 20 | 1 | contracts/tokenvault/BridgedERC20.sol:BridgedERC20 | -| \_\_gap | uint256[47] | 304 | 0 | 1504 | contracts/tokenvault/BridgedERC20.sol:BridgedERC20 | +| __gap | uint256[47] | 304 | 0 | 1504 | contracts/tokenvault/BridgedERC20.sol:BridgedERC20 | ## BridgedERC721 - -| Name | Type | Slot | Offset | Bytes | Contract | -| ------------------- | -------------------------------------------- | ---- | ------ | ----- | ---------------------------------------------------- | -| \_initialized | uint8 | 0 | 0 | 1 | contracts/tokenvault/BridgedERC721.sol:BridgedERC721 | -| \_initializing | bool | 0 | 1 | 1 | contracts/tokenvault/BridgedERC721.sol:BridgedERC721 | -| \_\_gap | uint256[50] | 1 | 0 | 1600 | contracts/tokenvault/BridgedERC721.sol:BridgedERC721 | -| \_owner | address | 51 | 0 | 20 | contracts/tokenvault/BridgedERC721.sol:BridgedERC721 | -| \_\_gap | uint256[49] | 52 | 0 | 1568 | contracts/tokenvault/BridgedERC721.sol:BridgedERC721 | -| \_pendingOwner | address | 101 | 0 | 20 | contracts/tokenvault/BridgedERC721.sol:BridgedERC721 | -| \_\_gap | uint256[49] | 102 | 0 | 1568 | contracts/tokenvault/BridgedERC721.sol:BridgedERC721 | -| addressManager | address | 151 | 0 | 20 | contracts/tokenvault/BridgedERC721.sol:BridgedERC721 | -| \_\_gap | uint256[49] | 152 | 0 | 1568 | contracts/tokenvault/BridgedERC721.sol:BridgedERC721 | -| \_\_reentry | uint8 | 201 | 0 | 1 | contracts/tokenvault/BridgedERC721.sol:BridgedERC721 | -| \_\_paused | uint8 | 201 | 1 | 1 | contracts/tokenvault/BridgedERC721.sol:BridgedERC721 | -| lastUnpausedAt | uint64 | 201 | 2 | 8 | contracts/tokenvault/BridgedERC721.sol:BridgedERC721 | -| \_\_gap | uint256[49] | 202 | 0 | 1568 | contracts/tokenvault/BridgedERC721.sol:BridgedERC721 | -| \_\_gap | uint256[50] | 251 | 0 | 1600 | contracts/tokenvault/BridgedERC721.sol:BridgedERC721 | -| \_name | string | 301 | 0 | 32 | contracts/tokenvault/BridgedERC721.sol:BridgedERC721 | -| \_symbol | string | 302 | 0 | 32 | contracts/tokenvault/BridgedERC721.sol:BridgedERC721 | -| \_owners | mapping(uint256 => address) | 303 | 0 | 32 | contracts/tokenvault/BridgedERC721.sol:BridgedERC721 | -| \_balances | mapping(address => uint256) | 304 | 0 | 32 | contracts/tokenvault/BridgedERC721.sol:BridgedERC721 | -| \_tokenApprovals | mapping(uint256 => address) | 305 | 0 | 32 | contracts/tokenvault/BridgedERC721.sol:BridgedERC721 | -| \_operatorApprovals | mapping(address => mapping(address => bool)) | 306 | 0 | 32 | contracts/tokenvault/BridgedERC721.sol:BridgedERC721 | -| \_\_gap | uint256[44] | 307 | 0 | 1408 | contracts/tokenvault/BridgedERC721.sol:BridgedERC721 | -| srcToken | address | 351 | 0 | 20 | contracts/tokenvault/BridgedERC721.sol:BridgedERC721 | -| srcChainId | uint256 | 352 | 0 | 32 | contracts/tokenvault/BridgedERC721.sol:BridgedERC721 | -| \_\_gap | uint256[48] | 353 | 0 | 1536 | contracts/tokenvault/BridgedERC721.sol:BridgedERC721 | +| Name | Type | Slot | Offset | Bytes | Contract | +|--------------------|----------------------------------------------|------|--------|-------|------------------------------------------------------| +| _initialized | uint8 | 0 | 0 | 1 | contracts/tokenvault/BridgedERC721.sol:BridgedERC721 | +| _initializing | bool | 0 | 1 | 1 | contracts/tokenvault/BridgedERC721.sol:BridgedERC721 | +| __gap | uint256[50] | 1 | 0 | 1600 | contracts/tokenvault/BridgedERC721.sol:BridgedERC721 | +| _owner | address | 51 | 0 | 20 | contracts/tokenvault/BridgedERC721.sol:BridgedERC721 | +| __gap | uint256[49] | 52 | 0 | 1568 | contracts/tokenvault/BridgedERC721.sol:BridgedERC721 | +| _pendingOwner | address | 101 | 0 | 20 | contracts/tokenvault/BridgedERC721.sol:BridgedERC721 | +| __gap | uint256[49] | 102 | 0 | 1568 | contracts/tokenvault/BridgedERC721.sol:BridgedERC721 | +| addressManager | address | 151 | 0 | 20 | contracts/tokenvault/BridgedERC721.sol:BridgedERC721 | +| __gap | uint256[49] | 152 | 0 | 1568 | contracts/tokenvault/BridgedERC721.sol:BridgedERC721 | +| __reentry | uint8 | 201 | 0 | 1 | contracts/tokenvault/BridgedERC721.sol:BridgedERC721 | +| __paused | uint8 | 201 | 1 | 1 | contracts/tokenvault/BridgedERC721.sol:BridgedERC721 | +| lastUnpausedAt | uint64 | 201 | 2 | 8 | contracts/tokenvault/BridgedERC721.sol:BridgedERC721 | +| __gap | uint256[49] | 202 | 0 | 1568 | contracts/tokenvault/BridgedERC721.sol:BridgedERC721 | +| __gap | uint256[50] | 251 | 0 | 1600 | contracts/tokenvault/BridgedERC721.sol:BridgedERC721 | +| _name | string | 301 | 0 | 32 | contracts/tokenvault/BridgedERC721.sol:BridgedERC721 | +| _symbol | string | 302 | 0 | 32 | contracts/tokenvault/BridgedERC721.sol:BridgedERC721 | +| _owners | mapping(uint256 => address) | 303 | 0 | 32 | contracts/tokenvault/BridgedERC721.sol:BridgedERC721 | +| _balances | mapping(address => uint256) | 304 | 0 | 32 | contracts/tokenvault/BridgedERC721.sol:BridgedERC721 | +| _tokenApprovals | mapping(uint256 => address) | 305 | 0 | 32 | contracts/tokenvault/BridgedERC721.sol:BridgedERC721 | +| _operatorApprovals | mapping(address => mapping(address => bool)) | 306 | 0 | 32 | contracts/tokenvault/BridgedERC721.sol:BridgedERC721 | +| __gap | uint256[44] | 307 | 0 | 1408 | contracts/tokenvault/BridgedERC721.sol:BridgedERC721 | +| srcToken | address | 351 | 0 | 20 | contracts/tokenvault/BridgedERC721.sol:BridgedERC721 | +| srcChainId | uint256 | 352 | 0 | 32 | contracts/tokenvault/BridgedERC721.sol:BridgedERC721 | +| __gap | uint256[48] | 353 | 0 | 1536 | contracts/tokenvault/BridgedERC721.sol:BridgedERC721 | ## BridgedERC1155 - -| Name | Type | Slot | Offset | Bytes | Contract | -| ------------------- | ----------------------------------------------- | ---- | ------ | ----- | ------------------------------------------------------ | -| \_initialized | uint8 | 0 | 0 | 1 | contracts/tokenvault/BridgedERC1155.sol:BridgedERC1155 | -| \_initializing | bool | 0 | 1 | 1 | contracts/tokenvault/BridgedERC1155.sol:BridgedERC1155 | -| \_\_gap | uint256[50] | 1 | 0 | 1600 | contracts/tokenvault/BridgedERC1155.sol:BridgedERC1155 | -| \_owner | address | 51 | 0 | 20 | contracts/tokenvault/BridgedERC1155.sol:BridgedERC1155 | -| \_\_gap | uint256[49] | 52 | 0 | 1568 | contracts/tokenvault/BridgedERC1155.sol:BridgedERC1155 | -| \_pendingOwner | address | 101 | 0 | 20 | contracts/tokenvault/BridgedERC1155.sol:BridgedERC1155 | -| \_\_gap | uint256[49] | 102 | 0 | 1568 | contracts/tokenvault/BridgedERC1155.sol:BridgedERC1155 | -| addressManager | address | 151 | 0 | 20 | contracts/tokenvault/BridgedERC1155.sol:BridgedERC1155 | -| \_\_gap | uint256[49] | 152 | 0 | 1568 | contracts/tokenvault/BridgedERC1155.sol:BridgedERC1155 | -| \_\_reentry | uint8 | 201 | 0 | 1 | contracts/tokenvault/BridgedERC1155.sol:BridgedERC1155 | -| \_\_paused | uint8 | 201 | 1 | 1 | contracts/tokenvault/BridgedERC1155.sol:BridgedERC1155 | -| lastUnpausedAt | uint64 | 201 | 2 | 8 | contracts/tokenvault/BridgedERC1155.sol:BridgedERC1155 | -| \_\_gap | uint256[49] | 202 | 0 | 1568 | contracts/tokenvault/BridgedERC1155.sol:BridgedERC1155 | -| \_\_gap | uint256[50] | 251 | 0 | 1600 | contracts/tokenvault/BridgedERC1155.sol:BridgedERC1155 | -| \_balances | mapping(uint256 => mapping(address => uint256)) | 301 | 0 | 32 | contracts/tokenvault/BridgedERC1155.sol:BridgedERC1155 | -| \_operatorApprovals | mapping(address => mapping(address => bool)) | 302 | 0 | 32 | contracts/tokenvault/BridgedERC1155.sol:BridgedERC1155 | -| \_uri | string | 303 | 0 | 32 | contracts/tokenvault/BridgedERC1155.sol:BridgedERC1155 | -| \_\_gap | uint256[47] | 304 | 0 | 1504 | contracts/tokenvault/BridgedERC1155.sol:BridgedERC1155 | -| srcToken | address | 351 | 0 | 20 | contracts/tokenvault/BridgedERC1155.sol:BridgedERC1155 | -| srcChainId | uint256 | 352 | 0 | 32 | contracts/tokenvault/BridgedERC1155.sol:BridgedERC1155 | -| symbol | string | 353 | 0 | 32 | contracts/tokenvault/BridgedERC1155.sol:BridgedERC1155 | -| name | string | 354 | 0 | 32 | contracts/tokenvault/BridgedERC1155.sol:BridgedERC1155 | -| \_\_gap | uint256[46] | 355 | 0 | 1472 | contracts/tokenvault/BridgedERC1155.sol:BridgedERC1155 | +| Name | Type | Slot | Offset | Bytes | Contract | +|--------------------|-------------------------------------------------|------|--------|-------|--------------------------------------------------------| +| _initialized | uint8 | 0 | 0 | 1 | contracts/tokenvault/BridgedERC1155.sol:BridgedERC1155 | +| _initializing | bool | 0 | 1 | 1 | contracts/tokenvault/BridgedERC1155.sol:BridgedERC1155 | +| __gap | uint256[50] | 1 | 0 | 1600 | contracts/tokenvault/BridgedERC1155.sol:BridgedERC1155 | +| _owner | address | 51 | 0 | 20 | contracts/tokenvault/BridgedERC1155.sol:BridgedERC1155 | +| __gap | uint256[49] | 52 | 0 | 1568 | contracts/tokenvault/BridgedERC1155.sol:BridgedERC1155 | +| _pendingOwner | address | 101 | 0 | 20 | contracts/tokenvault/BridgedERC1155.sol:BridgedERC1155 | +| __gap | uint256[49] | 102 | 0 | 1568 | contracts/tokenvault/BridgedERC1155.sol:BridgedERC1155 | +| addressManager | address | 151 | 0 | 20 | contracts/tokenvault/BridgedERC1155.sol:BridgedERC1155 | +| __gap | uint256[49] | 152 | 0 | 1568 | contracts/tokenvault/BridgedERC1155.sol:BridgedERC1155 | +| __reentry | uint8 | 201 | 0 | 1 | contracts/tokenvault/BridgedERC1155.sol:BridgedERC1155 | +| __paused | uint8 | 201 | 1 | 1 | contracts/tokenvault/BridgedERC1155.sol:BridgedERC1155 | +| lastUnpausedAt | uint64 | 201 | 2 | 8 | contracts/tokenvault/BridgedERC1155.sol:BridgedERC1155 | +| __gap | uint256[49] | 202 | 0 | 1568 | contracts/tokenvault/BridgedERC1155.sol:BridgedERC1155 | +| __gap | uint256[50] | 251 | 0 | 1600 | contracts/tokenvault/BridgedERC1155.sol:BridgedERC1155 | +| _balances | mapping(uint256 => mapping(address => uint256)) | 301 | 0 | 32 | contracts/tokenvault/BridgedERC1155.sol:BridgedERC1155 | +| _operatorApprovals | mapping(address => mapping(address => bool)) | 302 | 0 | 32 | contracts/tokenvault/BridgedERC1155.sol:BridgedERC1155 | +| _uri | string | 303 | 0 | 32 | contracts/tokenvault/BridgedERC1155.sol:BridgedERC1155 | +| __gap | uint256[47] | 304 | 0 | 1504 | contracts/tokenvault/BridgedERC1155.sol:BridgedERC1155 | +| srcToken | address | 351 | 0 | 20 | contracts/tokenvault/BridgedERC1155.sol:BridgedERC1155 | +| srcChainId | uint256 | 352 | 0 | 32 | contracts/tokenvault/BridgedERC1155.sol:BridgedERC1155 | +| symbol | string | 353 | 0 | 32 | contracts/tokenvault/BridgedERC1155.sol:BridgedERC1155 | +| name | string | 354 | 0 | 32 | contracts/tokenvault/BridgedERC1155.sol:BridgedERC1155 | +| __gap | uint256[46] | 355 | 0 | 1472 | contracts/tokenvault/BridgedERC1155.sol:BridgedERC1155 | ## AssignmentHook - | Name | Type | Slot | Offset | Bytes | Contract | -| -------------- | ----------- | ---- | ------ | ----- | ---------------------------------------------------- | -| \_initialized | uint8 | 0 | 0 | 1 | contracts/L1/hooks/AssignmentHook.sol:AssignmentHook | -| \_initializing | bool | 0 | 1 | 1 | contracts/L1/hooks/AssignmentHook.sol:AssignmentHook | -| \_\_gap | uint256[50] | 1 | 0 | 1600 | contracts/L1/hooks/AssignmentHook.sol:AssignmentHook | -| \_owner | address | 51 | 0 | 20 | contracts/L1/hooks/AssignmentHook.sol:AssignmentHook | -| \_\_gap | uint256[49] | 52 | 0 | 1568 | contracts/L1/hooks/AssignmentHook.sol:AssignmentHook | -| \_pendingOwner | address | 101 | 0 | 20 | contracts/L1/hooks/AssignmentHook.sol:AssignmentHook | -| \_\_gap | uint256[49] | 102 | 0 | 1568 | contracts/L1/hooks/AssignmentHook.sol:AssignmentHook | +|----------------|-------------|------|--------|-------|------------------------------------------------------| +| _initialized | uint8 | 0 | 0 | 1 | contracts/L1/hooks/AssignmentHook.sol:AssignmentHook | +| _initializing | bool | 0 | 1 | 1 | contracts/L1/hooks/AssignmentHook.sol:AssignmentHook | +| __gap | uint256[50] | 1 | 0 | 1600 | contracts/L1/hooks/AssignmentHook.sol:AssignmentHook | +| _owner | address | 51 | 0 | 20 | contracts/L1/hooks/AssignmentHook.sol:AssignmentHook | +| __gap | uint256[49] | 52 | 0 | 1568 | contracts/L1/hooks/AssignmentHook.sol:AssignmentHook | +| _pendingOwner | address | 101 | 0 | 20 | contracts/L1/hooks/AssignmentHook.sol:AssignmentHook | +| __gap | uint256[49] | 102 | 0 | 1568 | contracts/L1/hooks/AssignmentHook.sol:AssignmentHook | | addressManager | address | 151 | 0 | 20 | contracts/L1/hooks/AssignmentHook.sol:AssignmentHook | -| \_\_gap | uint256[49] | 152 | 0 | 1568 | contracts/L1/hooks/AssignmentHook.sol:AssignmentHook | -| \_\_reentry | uint8 | 201 | 0 | 1 | contracts/L1/hooks/AssignmentHook.sol:AssignmentHook | -| \_\_paused | uint8 | 201 | 1 | 1 | contracts/L1/hooks/AssignmentHook.sol:AssignmentHook | +| __gap | uint256[49] | 152 | 0 | 1568 | contracts/L1/hooks/AssignmentHook.sol:AssignmentHook | +| __reentry | uint8 | 201 | 0 | 1 | contracts/L1/hooks/AssignmentHook.sol:AssignmentHook | +| __paused | uint8 | 201 | 1 | 1 | contracts/L1/hooks/AssignmentHook.sol:AssignmentHook | | lastUnpausedAt | uint64 | 201 | 2 | 8 | contracts/L1/hooks/AssignmentHook.sol:AssignmentHook | -| \_\_gap | uint256[49] | 202 | 0 | 1568 | contracts/L1/hooks/AssignmentHook.sol:AssignmentHook | -| \_\_gap | uint256[50] | 251 | 0 | 1600 | contracts/L1/hooks/AssignmentHook.sol:AssignmentHook | +| __gap | uint256[49] | 202 | 0 | 1568 | contracts/L1/hooks/AssignmentHook.sol:AssignmentHook | +| __gap | uint256[50] | 251 | 0 | 1600 | contracts/L1/hooks/AssignmentHook.sol:AssignmentHook | ## ERC20Airdrop - | Name | Type | Slot | Offset | Bytes | Contract | -| -------------- | ------------------------ | ---- | ------ | ----- | ---------------------------------------------------- | -| \_initialized | uint8 | 0 | 0 | 1 | contracts/team/airdrop/ERC20Airdrop.sol:ERC20Airdrop | -| \_initializing | bool | 0 | 1 | 1 | contracts/team/airdrop/ERC20Airdrop.sol:ERC20Airdrop | -| \_\_gap | uint256[50] | 1 | 0 | 1600 | contracts/team/airdrop/ERC20Airdrop.sol:ERC20Airdrop | -| \_owner | address | 51 | 0 | 20 | contracts/team/airdrop/ERC20Airdrop.sol:ERC20Airdrop | -| \_\_gap | uint256[49] | 52 | 0 | 1568 | contracts/team/airdrop/ERC20Airdrop.sol:ERC20Airdrop | -| \_pendingOwner | address | 101 | 0 | 20 | contracts/team/airdrop/ERC20Airdrop.sol:ERC20Airdrop | -| \_\_gap | uint256[49] | 102 | 0 | 1568 | contracts/team/airdrop/ERC20Airdrop.sol:ERC20Airdrop | +|----------------|--------------------------|------|--------|-------|------------------------------------------------------| +| _initialized | uint8 | 0 | 0 | 1 | contracts/team/airdrop/ERC20Airdrop.sol:ERC20Airdrop | +| _initializing | bool | 0 | 1 | 1 | contracts/team/airdrop/ERC20Airdrop.sol:ERC20Airdrop | +| __gap | uint256[50] | 1 | 0 | 1600 | contracts/team/airdrop/ERC20Airdrop.sol:ERC20Airdrop | +| _owner | address | 51 | 0 | 20 | contracts/team/airdrop/ERC20Airdrop.sol:ERC20Airdrop | +| __gap | uint256[49] | 52 | 0 | 1568 | contracts/team/airdrop/ERC20Airdrop.sol:ERC20Airdrop | +| _pendingOwner | address | 101 | 0 | 20 | contracts/team/airdrop/ERC20Airdrop.sol:ERC20Airdrop | +| __gap | uint256[49] | 102 | 0 | 1568 | contracts/team/airdrop/ERC20Airdrop.sol:ERC20Airdrop | | addressManager | address | 151 | 0 | 20 | contracts/team/airdrop/ERC20Airdrop.sol:ERC20Airdrop | -| \_\_gap | uint256[49] | 152 | 0 | 1568 | contracts/team/airdrop/ERC20Airdrop.sol:ERC20Airdrop | -| \_\_reentry | uint8 | 201 | 0 | 1 | contracts/team/airdrop/ERC20Airdrop.sol:ERC20Airdrop | -| \_\_paused | uint8 | 201 | 1 | 1 | contracts/team/airdrop/ERC20Airdrop.sol:ERC20Airdrop | +| __gap | uint256[49] | 152 | 0 | 1568 | contracts/team/airdrop/ERC20Airdrop.sol:ERC20Airdrop | +| __reentry | uint8 | 201 | 0 | 1 | contracts/team/airdrop/ERC20Airdrop.sol:ERC20Airdrop | +| __paused | uint8 | 201 | 1 | 1 | contracts/team/airdrop/ERC20Airdrop.sol:ERC20Airdrop | | lastUnpausedAt | uint64 | 201 | 2 | 8 | contracts/team/airdrop/ERC20Airdrop.sol:ERC20Airdrop | -| \_\_gap | uint256[49] | 202 | 0 | 1568 | contracts/team/airdrop/ERC20Airdrop.sol:ERC20Airdrop | +| __gap | uint256[49] | 202 | 0 | 1568 | contracts/team/airdrop/ERC20Airdrop.sol:ERC20Airdrop | | isClaimed | mapping(bytes32 => bool) | 251 | 0 | 32 | contracts/team/airdrop/ERC20Airdrop.sol:ERC20Airdrop | | merkleRoot | bytes32 | 252 | 0 | 32 | contracts/team/airdrop/ERC20Airdrop.sol:ERC20Airdrop | | claimStart | uint64 | 253 | 0 | 8 | contracts/team/airdrop/ERC20Airdrop.sol:ERC20Airdrop | | claimEnd | uint64 | 253 | 8 | 8 | contracts/team/airdrop/ERC20Airdrop.sol:ERC20Airdrop | -| \_\_gap | uint256[47] | 254 | 0 | 1504 | contracts/team/airdrop/ERC20Airdrop.sol:ERC20Airdrop | +| __gap | uint256[47] | 254 | 0 | 1504 | contracts/team/airdrop/ERC20Airdrop.sol:ERC20Airdrop | | token | address | 301 | 0 | 20 | contracts/team/airdrop/ERC20Airdrop.sol:ERC20Airdrop | | vault | address | 302 | 0 | 20 | contracts/team/airdrop/ERC20Airdrop.sol:ERC20Airdrop | -| \_\_gap | uint256[48] | 303 | 0 | 1536 | contracts/team/airdrop/ERC20Airdrop.sol:ERC20Airdrop | +| __gap | uint256[48] | 303 | 0 | 1536 | contracts/team/airdrop/ERC20Airdrop.sol:ERC20Airdrop | ## AutomataDcapV3Attestation - | Name | Type | Slot | Offset | Bytes | Contract | -| ----------------------- | ----------------------------------------------- | ---- | ------ | ----- | -------------------------------------------------------------------------------------- | -| \_initialized | uint8 | 0 | 0 | 1 | contracts/automata-attestation/AutomataDcapV3Attestation.sol:AutomataDcapV3Attestation | -| \_initializing | bool | 0 | 1 | 1 | contracts/automata-attestation/AutomataDcapV3Attestation.sol:AutomataDcapV3Attestation | -| \_\_gap | uint256[50] | 1 | 0 | 1600 | contracts/automata-attestation/AutomataDcapV3Attestation.sol:AutomataDcapV3Attestation | -| \_owner | address | 51 | 0 | 20 | contracts/automata-attestation/AutomataDcapV3Attestation.sol:AutomataDcapV3Attestation | -| \_\_gap | uint256[49] | 52 | 0 | 1568 | contracts/automata-attestation/AutomataDcapV3Attestation.sol:AutomataDcapV3Attestation | -| \_pendingOwner | address | 101 | 0 | 20 | contracts/automata-attestation/AutomataDcapV3Attestation.sol:AutomataDcapV3Attestation | -| \_\_gap | uint256[49] | 102 | 0 | 1568 | contracts/automata-attestation/AutomataDcapV3Attestation.sol:AutomataDcapV3Attestation | +|-------------------------|-------------------------------------------------|------|--------|-------|----------------------------------------------------------------------------------------| +| _initialized | uint8 | 0 | 0 | 1 | contracts/automata-attestation/AutomataDcapV3Attestation.sol:AutomataDcapV3Attestation | +| _initializing | bool | 0 | 1 | 1 | contracts/automata-attestation/AutomataDcapV3Attestation.sol:AutomataDcapV3Attestation | +| __gap | uint256[50] | 1 | 0 | 1600 | contracts/automata-attestation/AutomataDcapV3Attestation.sol:AutomataDcapV3Attestation | +| _owner | address | 51 | 0 | 20 | contracts/automata-attestation/AutomataDcapV3Attestation.sol:AutomataDcapV3Attestation | +| __gap | uint256[49] | 52 | 0 | 1568 | contracts/automata-attestation/AutomataDcapV3Attestation.sol:AutomataDcapV3Attestation | +| _pendingOwner | address | 101 | 0 | 20 | contracts/automata-attestation/AutomataDcapV3Attestation.sol:AutomataDcapV3Attestation | +| __gap | uint256[49] | 102 | 0 | 1568 | contracts/automata-attestation/AutomataDcapV3Attestation.sol:AutomataDcapV3Attestation | | addressManager | address | 151 | 0 | 20 | contracts/automata-attestation/AutomataDcapV3Attestation.sol:AutomataDcapV3Attestation | -| \_\_gap | uint256[49] | 152 | 0 | 1568 | contracts/automata-attestation/AutomataDcapV3Attestation.sol:AutomataDcapV3Attestation | -| \_\_reentry | uint8 | 201 | 0 | 1 | contracts/automata-attestation/AutomataDcapV3Attestation.sol:AutomataDcapV3Attestation | -| \_\_paused | uint8 | 201 | 1 | 1 | contracts/automata-attestation/AutomataDcapV3Attestation.sol:AutomataDcapV3Attestation | +| __gap | uint256[49] | 152 | 0 | 1568 | contracts/automata-attestation/AutomataDcapV3Attestation.sol:AutomataDcapV3Attestation | +| __reentry | uint8 | 201 | 0 | 1 | contracts/automata-attestation/AutomataDcapV3Attestation.sol:AutomataDcapV3Attestation | +| __paused | uint8 | 201 | 1 | 1 | contracts/automata-attestation/AutomataDcapV3Attestation.sol:AutomataDcapV3Attestation | | lastUnpausedAt | uint64 | 201 | 2 | 8 | contracts/automata-attestation/AutomataDcapV3Attestation.sol:AutomataDcapV3Attestation | -| \_\_gap | uint256[49] | 202 | 0 | 1568 | contracts/automata-attestation/AutomataDcapV3Attestation.sol:AutomataDcapV3Attestation | +| __gap | uint256[49] | 202 | 0 | 1568 | contracts/automata-attestation/AutomataDcapV3Attestation.sol:AutomataDcapV3Attestation | | sigVerifyLib | contract ISigVerifyLib | 251 | 0 | 20 | contracts/automata-attestation/AutomataDcapV3Attestation.sol:AutomataDcapV3Attestation | | pemCertLib | contract IPEMCertChainLib | 252 | 0 | 20 | contracts/automata-attestation/AutomataDcapV3Attestation.sol:AutomataDcapV3Attestation | | checkLocalEnclaveReport | bool | 252 | 20 | 1 | contracts/automata-attestation/AutomataDcapV3Attestation.sol:AutomataDcapV3Attestation | @@ -442,68 +425,66 @@ | serialNumIsRevoked | mapping(uint256 => mapping(bytes => bool)) | 255 | 0 | 32 | contracts/automata-attestation/AutomataDcapV3Attestation.sol:AutomataDcapV3Attestation | | tcbInfo | mapping(string => struct TCBInfoStruct.TCBInfo) | 256 | 0 | 32 | contracts/automata-attestation/AutomataDcapV3Attestation.sol:AutomataDcapV3Attestation | | qeIdentity | struct EnclaveIdStruct.EnclaveId | 257 | 0 | 128 | contracts/automata-attestation/AutomataDcapV3Attestation.sol:AutomataDcapV3Attestation | -| \_\_gap | uint256[39] | 261 | 0 | 1248 | contracts/automata-attestation/AutomataDcapV3Attestation.sol:AutomataDcapV3Attestation | +| __gap | uint256[39] | 261 | 0 | 1248 | contracts/automata-attestation/AutomataDcapV3Attestation.sol:AutomataDcapV3Attestation | ## SgxVerifier - | Name | Type | Slot | Offset | Bytes | Contract | -| ----------------- | ----------------------------------------------- | ---- | ------ | ----- | ----------------------------------------------- | -| \_initialized | uint8 | 0 | 0 | 1 | contracts/verifiers/SgxVerifier.sol:SgxVerifier | -| \_initializing | bool | 0 | 1 | 1 | contracts/verifiers/SgxVerifier.sol:SgxVerifier | -| \_\_gap | uint256[50] | 1 | 0 | 1600 | contracts/verifiers/SgxVerifier.sol:SgxVerifier | -| \_owner | address | 51 | 0 | 20 | contracts/verifiers/SgxVerifier.sol:SgxVerifier | -| \_\_gap | uint256[49] | 52 | 0 | 1568 | contracts/verifiers/SgxVerifier.sol:SgxVerifier | -| \_pendingOwner | address | 101 | 0 | 20 | contracts/verifiers/SgxVerifier.sol:SgxVerifier | -| \_\_gap | uint256[49] | 102 | 0 | 1568 | contracts/verifiers/SgxVerifier.sol:SgxVerifier | +|-------------------|-------------------------------------------------|------|--------|-------|-------------------------------------------------| +| _initialized | uint8 | 0 | 0 | 1 | contracts/verifiers/SgxVerifier.sol:SgxVerifier | +| _initializing | bool | 0 | 1 | 1 | contracts/verifiers/SgxVerifier.sol:SgxVerifier | +| __gap | uint256[50] | 1 | 0 | 1600 | contracts/verifiers/SgxVerifier.sol:SgxVerifier | +| _owner | address | 51 | 0 | 20 | contracts/verifiers/SgxVerifier.sol:SgxVerifier | +| __gap | uint256[49] | 52 | 0 | 1568 | contracts/verifiers/SgxVerifier.sol:SgxVerifier | +| _pendingOwner | address | 101 | 0 | 20 | contracts/verifiers/SgxVerifier.sol:SgxVerifier | +| __gap | uint256[49] | 102 | 0 | 1568 | contracts/verifiers/SgxVerifier.sol:SgxVerifier | | addressManager | address | 151 | 0 | 20 | contracts/verifiers/SgxVerifier.sol:SgxVerifier | -| \_\_gap | uint256[49] | 152 | 0 | 1568 | contracts/verifiers/SgxVerifier.sol:SgxVerifier | -| \_\_reentry | uint8 | 201 | 0 | 1 | contracts/verifiers/SgxVerifier.sol:SgxVerifier | -| \_\_paused | uint8 | 201 | 1 | 1 | contracts/verifiers/SgxVerifier.sol:SgxVerifier | +| __gap | uint256[49] | 152 | 0 | 1568 | contracts/verifiers/SgxVerifier.sol:SgxVerifier | +| __reentry | uint8 | 201 | 0 | 1 | contracts/verifiers/SgxVerifier.sol:SgxVerifier | +| __paused | uint8 | 201 | 1 | 1 | contracts/verifiers/SgxVerifier.sol:SgxVerifier | | lastUnpausedAt | uint64 | 201 | 2 | 8 | contracts/verifiers/SgxVerifier.sol:SgxVerifier | -| \_\_gap | uint256[49] | 202 | 0 | 1568 | contracts/verifiers/SgxVerifier.sol:SgxVerifier | +| __gap | uint256[49] | 202 | 0 | 1568 | contracts/verifiers/SgxVerifier.sol:SgxVerifier | | nextInstanceId | uint256 | 251 | 0 | 32 | contracts/verifiers/SgxVerifier.sol:SgxVerifier | | instances | mapping(uint256 => struct SgxVerifier.Instance) | 252 | 0 | 32 | contracts/verifiers/SgxVerifier.sol:SgxVerifier | | addressRegistered | mapping(address => bool) | 253 | 0 | 32 | contracts/verifiers/SgxVerifier.sol:SgxVerifier | -| \_\_gap | uint256[47] | 254 | 0 | 1504 | contracts/verifiers/SgxVerifier.sol:SgxVerifier | +| __gap | uint256[47] | 254 | 0 | 1504 | contracts/verifiers/SgxVerifier.sol:SgxVerifier | ## RiscZeroVerifier - | Name | Type | Slot | Offset | Bytes | Contract | -| --------------- | --------------------------------- | ---- | ------ | ----- | --------------------------------------------------------- | -| \_initialized | uint8 | 0 | 0 | 1 | contracts/verifiers/RiscZeroVerifier.sol:RiscZeroVerifier | -| \_initializing | bool | 0 | 1 | 1 | contracts/verifiers/RiscZeroVerifier.sol:RiscZeroVerifier | -| \_\_gap | uint256[50] | 1 | 0 | 1600 | contracts/verifiers/RiscZeroVerifier.sol:RiscZeroVerifier | -| \_owner | address | 51 | 0 | 20 | contracts/verifiers/RiscZeroVerifier.sol:RiscZeroVerifier | -| \_\_gap | uint256[49] | 52 | 0 | 1568 | contracts/verifiers/RiscZeroVerifier.sol:RiscZeroVerifier | -| \_pendingOwner | address | 101 | 0 | 20 | contracts/verifiers/RiscZeroVerifier.sol:RiscZeroVerifier | -| \_\_gap | uint256[49] | 102 | 0 | 1568 | contracts/verifiers/RiscZeroVerifier.sol:RiscZeroVerifier | +|-----------------|-----------------------------------|------|--------|-------|-----------------------------------------------------------| +| _initialized | uint8 | 0 | 0 | 1 | contracts/verifiers/RiscZeroVerifier.sol:RiscZeroVerifier | +| _initializing | bool | 0 | 1 | 1 | contracts/verifiers/RiscZeroVerifier.sol:RiscZeroVerifier | +| __gap | uint256[50] | 1 | 0 | 1600 | contracts/verifiers/RiscZeroVerifier.sol:RiscZeroVerifier | +| _owner | address | 51 | 0 | 20 | contracts/verifiers/RiscZeroVerifier.sol:RiscZeroVerifier | +| __gap | uint256[49] | 52 | 0 | 1568 | contracts/verifiers/RiscZeroVerifier.sol:RiscZeroVerifier | +| _pendingOwner | address | 101 | 0 | 20 | contracts/verifiers/RiscZeroVerifier.sol:RiscZeroVerifier | +| __gap | uint256[49] | 102 | 0 | 1568 | contracts/verifiers/RiscZeroVerifier.sol:RiscZeroVerifier | | addressManager | address | 151 | 0 | 20 | contracts/verifiers/RiscZeroVerifier.sol:RiscZeroVerifier | -| \_\_gap | uint256[49] | 152 | 0 | 1568 | contracts/verifiers/RiscZeroVerifier.sol:RiscZeroVerifier | -| \_\_reentry | uint8 | 201 | 0 | 1 | contracts/verifiers/RiscZeroVerifier.sol:RiscZeroVerifier | -| \_\_paused | uint8 | 201 | 1 | 1 | contracts/verifiers/RiscZeroVerifier.sol:RiscZeroVerifier | +| __gap | uint256[49] | 152 | 0 | 1568 | contracts/verifiers/RiscZeroVerifier.sol:RiscZeroVerifier | +| __reentry | uint8 | 201 | 0 | 1 | contracts/verifiers/RiscZeroVerifier.sol:RiscZeroVerifier | +| __paused | uint8 | 201 | 1 | 1 | contracts/verifiers/RiscZeroVerifier.sol:RiscZeroVerifier | | lastUnpausedAt | uint64 | 201 | 2 | 8 | contracts/verifiers/RiscZeroVerifier.sol:RiscZeroVerifier | -| \_\_gap | uint256[49] | 202 | 0 | 1568 | contracts/verifiers/RiscZeroVerifier.sol:RiscZeroVerifier | +| __gap | uint256[49] | 202 | 0 | 1568 | contracts/verifiers/RiscZeroVerifier.sol:RiscZeroVerifier | | receiptVerifier | contract IRiscZeroReceiptVerifier | 251 | 0 | 20 | contracts/verifiers/RiscZeroVerifier.sol:RiscZeroVerifier | | isImageTrusted | mapping(bytes32 => bool) | 252 | 0 | 32 | contracts/verifiers/RiscZeroVerifier.sol:RiscZeroVerifier | -| \_\_gap | uint256[48] | 253 | 0 | 1536 | contracts/verifiers/RiscZeroVerifier.sol:RiscZeroVerifier | +| __gap | uint256[48] | 253 | 0 | 1536 | contracts/verifiers/RiscZeroVerifier.sol:RiscZeroVerifier | ## QuotaManager - | Name | Type | Slot | Offset | Bytes | Contract | -| -------------- | --------------------------------------------- | ---- | ------ | ----- | ---------------------------------------------- | -| \_initialized | uint8 | 0 | 0 | 1 | contracts/bridge/QuotaManager.sol:QuotaManager | -| \_initializing | bool | 0 | 1 | 1 | contracts/bridge/QuotaManager.sol:QuotaManager | -| \_\_gap | uint256[50] | 1 | 0 | 1600 | contracts/bridge/QuotaManager.sol:QuotaManager | -| \_owner | address | 51 | 0 | 20 | contracts/bridge/QuotaManager.sol:QuotaManager | -| \_\_gap | uint256[49] | 52 | 0 | 1568 | contracts/bridge/QuotaManager.sol:QuotaManager | -| \_pendingOwner | address | 101 | 0 | 20 | contracts/bridge/QuotaManager.sol:QuotaManager | -| \_\_gap | uint256[49] | 102 | 0 | 1568 | contracts/bridge/QuotaManager.sol:QuotaManager | +|----------------|-----------------------------------------------|------|--------|-------|------------------------------------------------| +| _initialized | uint8 | 0 | 0 | 1 | contracts/bridge/QuotaManager.sol:QuotaManager | +| _initializing | bool | 0 | 1 | 1 | contracts/bridge/QuotaManager.sol:QuotaManager | +| __gap | uint256[50] | 1 | 0 | 1600 | contracts/bridge/QuotaManager.sol:QuotaManager | +| _owner | address | 51 | 0 | 20 | contracts/bridge/QuotaManager.sol:QuotaManager | +| __gap | uint256[49] | 52 | 0 | 1568 | contracts/bridge/QuotaManager.sol:QuotaManager | +| _pendingOwner | address | 101 | 0 | 20 | contracts/bridge/QuotaManager.sol:QuotaManager | +| __gap | uint256[49] | 102 | 0 | 1568 | contracts/bridge/QuotaManager.sol:QuotaManager | | addressManager | address | 151 | 0 | 20 | contracts/bridge/QuotaManager.sol:QuotaManager | -| \_\_gap | uint256[49] | 152 | 0 | 1568 | contracts/bridge/QuotaManager.sol:QuotaManager | -| \_\_reentry | uint8 | 201 | 0 | 1 | contracts/bridge/QuotaManager.sol:QuotaManager | -| \_\_paused | uint8 | 201 | 1 | 1 | contracts/bridge/QuotaManager.sol:QuotaManager | +| __gap | uint256[49] | 152 | 0 | 1568 | contracts/bridge/QuotaManager.sol:QuotaManager | +| __reentry | uint8 | 201 | 0 | 1 | contracts/bridge/QuotaManager.sol:QuotaManager | +| __paused | uint8 | 201 | 1 | 1 | contracts/bridge/QuotaManager.sol:QuotaManager | | lastUnpausedAt | uint64 | 201 | 2 | 8 | contracts/bridge/QuotaManager.sol:QuotaManager | -| \_\_gap | uint256[49] | 202 | 0 | 1568 | contracts/bridge/QuotaManager.sol:QuotaManager | +| __gap | uint256[49] | 202 | 0 | 1568 | contracts/bridge/QuotaManager.sol:QuotaManager | | tokenQuota | mapping(address => struct QuotaManager.Quota) | 251 | 0 | 32 | contracts/bridge/QuotaManager.sol:QuotaManager | | quotaPeriod | uint24 | 252 | 0 | 3 | contracts/bridge/QuotaManager.sol:QuotaManager | -| \_\_gap | uint256[48] | 253 | 0 | 1536 | contracts/bridge/QuotaManager.sol:QuotaManager | +| __gap | uint256[48] | 253 | 0 | 1536 | contracts/bridge/QuotaManager.sol:QuotaManager | + diff --git a/packages/protocol/script/DeployOnL1.s.sol b/packages/protocol/script/DeployOnL1.s.sol index f6a142be48..452df521fe 100644 --- a/packages/protocol/script/DeployOnL1.s.sol +++ b/packages/protocol/script/DeployOnL1.s.sol @@ -155,7 +155,7 @@ contract DeployOnL1 is DeployCapability { impl: address(new TaikoToken()), data: abi.encodeCall( TaikoToken.init, (owner, vm.envAddress("TAIKO_TOKEN_PREMINT_RECIPIENT")) - ), + ), registerTo: sharedAddressManager }); } @@ -266,7 +266,7 @@ contract DeployOnL1 is DeployCapability { vm.envBytes32("L2_GENESIS_HASH"), vm.envBool("PAUSE_TAIKO_L1") ) - ), + ), registerTo: rollupAddressManager }); @@ -327,7 +327,7 @@ contract DeployOnL1 is DeployCapability { impl: automateDcapV3AttestationImpl, data: abi.encodeCall( AutomataDcapV3Attestation.init, (owner, address(sigVerifyLib), address(pemCertChainLib)) - ), + ), registerTo: rollupAddressManager }); diff --git a/packages/taikoon-ui/src/generated/abi/index.ts b/packages/taikoon-ui/src/generated/abi/index.ts index 459a146532..276d4ce8e7 100644 --- a/packages/taikoon-ui/src/generated/abi/index.ts +++ b/packages/taikoon-ui/src/generated/abi/index.ts @@ -38,15 +38,6 @@ export const taikoonTokenAbi = [ outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], stateMutability: 'view', }, - { - type: 'function', - inputs: [], - name: 'blacklist', - outputs: [ - { name: '', internalType: 'contract IMinimalBlacklist', type: 'address' }, - ], - stateMutability: 'view', - }, { type: 'function', inputs: [ @@ -69,11 +60,6 @@ export const taikoonTokenAbi = [ inputs: [ { name: '_owner', internalType: 'address', type: 'address' }, { name: '_root', internalType: 'bytes32', type: 'bytes32' }, - { - name: '_blacklist', - internalType: 'contract IMinimalBlacklist', - type: 'address', - }, ], name: 'initialize', outputs: [], @@ -85,11 +71,6 @@ export const taikoonTokenAbi = [ { name: '_owner', internalType: 'address', type: 'address' }, { name: '_rootURI', internalType: 'string', type: 'string' }, { name: '_merkleRoot', internalType: 'bytes32', type: 'bytes32' }, - { - name: '_blacklistAddress', - internalType: 'contract IMinimalBlacklist', - type: 'address', - }, ], name: 'initialize', outputs: [], @@ -294,19 +275,6 @@ export const taikoonTokenAbi = [ outputs: [], stateMutability: 'nonpayable', }, - { - type: 'function', - inputs: [ - { - name: '_blacklist', - internalType: 'contract IMinimalBlacklist', - type: 'address', - }, - ], - name: 'updateBlacklist', - outputs: [], - stateMutability: 'nonpayable', - }, { type: 'function', inputs: [{ name: '_root', internalType: 'bytes32', type: 'bytes32' }], @@ -480,7 +448,6 @@ export const taikoonTokenAbi = [ ], name: 'Upgraded', }, - { type: 'error', inputs: [], name: 'ADDRESS_BLACKLISTED' }, { type: 'error', inputs: [{ name: 'target', internalType: 'address', type: 'address' }], @@ -488,9 +455,7 @@ export const taikoonTokenAbi = [ }, { type: 'error', - inputs: [ - { name: 'implementation', internalType: 'address', type: 'address' }, - ], + inputs: [{ name: 'implementation', internalType: 'address', type: 'address' }], name: 'ERC1967InvalidImplementation', }, { type: 'error', inputs: [], name: 'ERC1967NonPayable' }, @@ -576,7 +541,7 @@ export const taikoonTokenAbi = [ inputs: [{ name: 'slot', internalType: 'bytes32', type: 'bytes32' }], name: 'UUPSUnsupportedProxiableUUID', }, -] as const +] as const; /** * - [__View Contract on Holesky Etherscan__](https://holesky.etherscan.io/address/0xfDbaA6d6c382A2555856bFaB315D5E6F3CDA1393) @@ -585,7 +550,7 @@ export const taikoonTokenAbi = [ export const taikoonTokenAddress = { 17000: '0xfDbaA6d6c382A2555856bFaB315D5E6F3CDA1393', 31337: '0xe7f1725E7734CE288F8367e1Bb143E90bb3F0512', -} as const +} as const; /** * - [__View Contract on Holesky Etherscan__](https://holesky.etherscan.io/address/0xfDbaA6d6c382A2555856bFaB315D5E6F3CDA1393) @@ -594,4 +559,4 @@ export const taikoonTokenAddress = { export const taikoonTokenConfig = { address: taikoonTokenAddress, abi: taikoonTokenAbi, -} as const +} as const; diff --git a/packages/taikoon-ui/src/routes/blocked/+page.svelte b/packages/taikoon-ui/src/routes/blocked/+page.svelte deleted file mode 100644 index ef92af775b..0000000000 --- a/packages/taikoon-ui/src/routes/blocked/+page.svelte +++ /dev/null @@ -1,4 +0,0 @@ - - -

Seems that you have been blocked

diff --git a/packages/taikoon-ui/src/routes/mint/+page.server.ts b/packages/taikoon-ui/src/routes/mint/+page.server.ts deleted file mode 100644 index 30484c2aa2..0000000000 --- a/packages/taikoon-ui/src/routes/mint/+page.server.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { redirect } from '@sveltejs/kit'; - -const blacklistedCountries = [ - 'AF', // Afghanistan (AF) - 'BY', // Belarus (BY) - 'MM', // Burma/Myanmar (MM) - 'CF', // Central African Republic (CF) - 'CN', // China (CN) - 'CU', // Cuba (CU) - 'CD', // Democratic Republic of the Congo (CD) - 'ET', // Ethiopia (ET) - 'IR', // Iran (IR) - 'IQ', // Iraq (IQ) - 'LB', // Lebanon (LB) - 'LY', // Libya (LY) - 'ML', // Mali (ML) - 'NI', // Nicaragua (NI) - 'KP', // North Korea (KP) - 'RU', // Russia (RU) - 'SO', // Somalia (SO) - 'SS', // South Sudan (SS) - 'SD', // Sudan (SD) - 'SY', // Syria (SY) - 'VE', // Venezuela (VE) -]; - -export function load(event) { - const country = event.request.headers.get('x-vercel-ip-country') ?? 'dev'; - - if (blacklistedCountries.includes(country)) { - // revoke access - redirect(302, '/blocked'); - } - return {}; -}