diff --git a/packages/protocol/contracts/layer1/automata-attestation/AttestationVerifier.sol b/packages/protocol/contracts/layer1/automata-attestation/AttestationVerifier.sol index 290bd900dce..21a3bbe6f39 100644 --- a/packages/protocol/contracts/layer1/automata-attestation/AttestationVerifier.sol +++ b/packages/protocol/contracts/layer1/automata-attestation/AttestationVerifier.sol @@ -7,7 +7,7 @@ import "./interfaces/IAttestationVerifier.sol"; /// @title AttestationVerifier contract AttestationVerifier is IAttestationVerifier, EssentialContract { - IAttestation public attestationVerifier; // slot 1 + IAttestationV2 public automataDcapAttestation; // slot 1 mapping(bytes32 pcr10 => bool trusted) public trustedPcr10; // slot 2 bool checkPcr10; // slot3 @@ -15,14 +15,14 @@ contract AttestationVerifier is IAttestationVerifier, EssentialContract { function init( address _owner, - address _attestationVerifier, + address _automataDcapAttestation, bool _checkPcr10 ) external initializer { __Essential_init(_owner); - attestationVerifier = IAttestation(_attestationVerifier); + automataDcapAttestation = IAttestationV2(_automataDcapAttestation); checkPcr10 = _checkPcr10; } @@ -41,9 +41,9 @@ contract AttestationVerifier is IAttestationVerifier, EssentialContract { ) external { - if (address(attestationVerifier) == address(0)) return; + if (address(automataDcapAttestation) == address(0)) return; - (bool succ, bytes memory output) = attestationVerifier + (bool succ, bytes memory output) = automataDcapAttestation .verifyAndAttestOnChain(_report); if (!succ) revert INVALID_REPORT(); diff --git a/packages/protocol/contracts/layer1/automata-attestation/interfaces/IAttestationV2.sol b/packages/protocol/contracts/layer1/automata-attestation/interfaces/IAttestationV2.sol index ff43c0285a0..502c9b80326 100644 --- a/packages/protocol/contracts/layer1/automata-attestation/interfaces/IAttestationV2.sol +++ b/packages/protocol/contracts/layer1/automata-attestation/interfaces/IAttestationV2.sol @@ -11,7 +11,7 @@ pragma solidity ^0.8.24; * @dev should also implement Risc0 Guest Program to use this interface. * See https://dev.risczero.com/api/blockchain-integration/bonsai-on-eth to learn more */ -interface IAttestation { +interface IAttestationV2 { /** * @notice full on-chain verification for an attestation * @dev must further specify the structure of inputs/outputs, to be serialized and passed to this method diff --git a/packages/protocol/script/layer1/DeployAttesattionVerifier.s.sol b/packages/protocol/script/layer1/DeployAttestationVerifier.sol similarity index 98% rename from packages/protocol/script/layer1/DeployAttesattionVerifier.s.sol rename to packages/protocol/script/layer1/DeployAttestationVerifier.sol index 003510e66ed..123be79db12 100644 --- a/packages/protocol/script/layer1/DeployAttesattionVerifier.s.sol +++ b/packages/protocol/script/layer1/DeployAttestationVerifier.sol @@ -6,12 +6,12 @@ import "../../contracts/layer1/automata-attestation/AttestationVerifier.sol"; import "../../contracts/layer1/automata-attestation/interfaces/IAttestationVerifier.sol"; contract DeployAttestationVerifier is DeployCapability { - address public automataDcapAttesattion = vm.envAddress("AUTOMATA_DCAP_ATTESTATION"); + address public automataDcapAttestation = vm.envAddress("AUTOMATA_DCAP_ATTESTATION"); bool public checkPCR10 = vm.envOr("CHECK_PRC10", true); bool public simulateVerify = vm.envOr("SIMULATE_VERIFY", false); function run() external { - require(automataDcapAttesattion != address(0), "invalid automata DCAP attestation address"); + require(automataDcapAttestation != address(0), "invalid automata DCAP attestation address"); vm.startBroadcast(); @@ -21,7 +21,7 @@ contract DeployAttestationVerifier is DeployCapability { address proxy = deployProxy({ name: "attestation_verifier", impl: address(attesatationVerifier), - data: abi.encodeCall(AttestationVerifier.init, (msg.sender, automataDcapAttesattion, true)) + data: abi.encodeCall(AttestationVerifier.init, (msg.sender, automataDcapAttestation, true)) }); vm.stopBroadcast(); diff --git a/packages/protocol/script/layer1/DeployProtocolOnL1.s.sol b/packages/protocol/script/layer1/DeployProtocolOnL1.s.sol index 050baab77c2..9d95c44be06 100644 --- a/packages/protocol/script/layer1/DeployProtocolOnL1.s.sol +++ b/packages/protocol/script/layer1/DeployProtocolOnL1.s.sol @@ -63,6 +63,7 @@ contract DeployProtocolOnL1 is DeployCapability { addressNotNull(vm.envAddress("TAIKO_L2_ADDRESS"), "TAIKO_L2_ADDRESS"); addressNotNull(vm.envAddress("L2_SIGNAL_SERVICE"), "L2_SIGNAL_SERVICE"); addressNotNull(vm.envAddress("CONTRACT_OWNER"), "CONTRACT_OWNER"); + addressNotNull(vm.envAddress("AUTOMATA_DCAP_ATTESTATION"), "AUTOMATA_DCAP_ATTESTATION"); require(vm.envBytes32("L2_GENESIS_HASH") != 0, "L2_GENESIS_HASH"); address contractOwner = vm.envAddress("CONTRACT_OWNER"); @@ -335,7 +336,7 @@ contract DeployProtocolOnL1 is DeployCapability { address attestationVerifier = deployProxy({ name: "attestation_verifier", impl: address(new AttestationVerifier()), - data: abi.encodeCall(AttestationVerifier.init, (owner, address(0))) + data: abi.encodeCall(AttestationVerifier.init, (owner, vm.envAddress("AUTOMATA_DCAP_ATTESTATION"), true)) }); deployProxy({ diff --git a/packages/protocol/script/layer1/deploy_protocol_on_l1.sh b/packages/protocol/script/layer1/deploy_protocol_on_l1.sh index b225c2279a6..07c20665713 100755 --- a/packages/protocol/script/layer1/deploy_protocol_on_l1.sh +++ b/packages/protocol/script/layer1/deploy_protocol_on_l1.sh @@ -17,6 +17,7 @@ TAIKO_TOKEN_NAME="Taiko Token Test" \ TAIKO_TOKEN_SYMBOL=TTKOk \ SHARED_ADDRESS_MANAGER=0x0000000000000000000000000000000000000000 \ L2_GENESIS_HASH=0xee1950562d42f0da28bd4550d88886bc90894c77c9c9eaefef775d4c8223f259 \ +AUTOMATA_DCAP_ATTESTATION=0x0000000000000000000000000000000000000000 \ PAUSE_TAIKO_L1=true \ PAUSE_BRIDGE=true \ NUM_MIN_MAJORITY_GUARDIANS=7 \