diff --git a/packages/relayer/.default.env b/packages/relayer/.default.env index 5097c633e8..9b1e28b1e1 100644 --- a/packages/relayer/.default.env +++ b/packages/relayer/.default.env @@ -12,6 +12,8 @@ L1_BRIDGE_ADDRESS=0x3612E284D763f42f5E4CB72B1602b23DAEC3cA60 L2_BRIDGE_ADDRESS=0x0000777700000000000000000000000000000004 L1_TAIKO_ADDRESS=0x7B3AF414448ba906f02a1CA307C56c4ADFF27ce7 L2_TAIKO_ADDRESS=0x0000777700000000000000000000000000000001 +L1_SIGNAL_SERVICE_ADDRESS=0x403cc7802725928652a3d116Bb1781005e2e76d3 +L2_SIGNAL_SERVICE_ADDRESS=0x8BDa62dc6c0160Bce2C3a9360755dF030575985a L1_RPC_URL=wss://l1ws.a1.taiko.xyz L2_RPC_URL=wss://l2ws.a1.taiko.xyz CONFIRMATIONS_BEFORE_PROCESSING=13 diff --git a/packages/relayer/cli/cli.go b/packages/relayer/cli/cli.go index 989988d63d..0ea2690cf6 100644 --- a/packages/relayer/cli/cli.go +++ b/packages/relayer/cli/cli.go @@ -198,12 +198,12 @@ func makeIndexers( RPCClient: l1RpcClient, DestRPCClient: l2RpcClient, - ECDSAKey: os.Getenv("RELAYER_ECDSA_KEY"), - BridgeAddress: common.HexToAddress(os.Getenv("L1_BRIDGE_ADDRESS")), - DestBridgeAddress: common.HexToAddress(os.Getenv("L2_BRIDGE_ADDRESS")), - DestTaikoAddress: common.HexToAddress(os.Getenv("L2_TAIKO_ADDRESS")), - SrcTaikoAddress: common.HexToAddress(os.Getenv("L1_TAIKO_ADDRESS")), - + ECDSAKey: os.Getenv("RELAYER_ECDSA_KEY"), + BridgeAddress: common.HexToAddress(os.Getenv("L1_BRIDGE_ADDRESS")), + DestBridgeAddress: common.HexToAddress(os.Getenv("L2_BRIDGE_ADDRESS")), + DestTaikoAddress: common.HexToAddress(os.Getenv("L2_TAIKO_ADDRESS")), + SrcTaikoAddress: common.HexToAddress(os.Getenv("L1_TAIKO_ADDRESS")), + SrcSignalServiceAddress: common.HexToAddress(os.Getenv("L1_SIGNAL_SERVICE_ADDRESS")), BlockBatchSize: uint64(blockBatchSize), NumGoroutines: numGoroutines, SubscriptionBackoff: subscriptionBackoff, @@ -227,11 +227,11 @@ func makeIndexers( RPCClient: l2RpcClient, DestRPCClient: l1RpcClient, - ECDSAKey: os.Getenv("RELAYER_ECDSA_KEY"), - BridgeAddress: common.HexToAddress(os.Getenv("L2_BRIDGE_ADDRESS")), - DestBridgeAddress: common.HexToAddress(os.Getenv("L1_BRIDGE_ADDRESS")), - DestTaikoAddress: common.HexToAddress(os.Getenv("L1_TAIKO_ADDRESS")), - + ECDSAKey: os.Getenv("RELAYER_ECDSA_KEY"), + BridgeAddress: common.HexToAddress(os.Getenv("L2_BRIDGE_ADDRESS")), + DestBridgeAddress: common.HexToAddress(os.Getenv("L1_BRIDGE_ADDRESS")), + DestTaikoAddress: common.HexToAddress(os.Getenv("L1_TAIKO_ADDRESS")), + SrcSignalServiceAddress: common.HexToAddress(os.Getenv("L2_SIGNAL_SERVICE_ADDRESS")), BlockBatchSize: uint64(blockBatchSize), NumGoroutines: numGoroutines, SubscriptionBackoff: subscriptionBackoff, diff --git a/packages/relayer/indexer/service.go b/packages/relayer/indexer/service.go index b5a761f605..9d64482aae 100644 --- a/packages/relayer/indexer/service.go +++ b/packages/relayer/indexer/service.go @@ -63,6 +63,7 @@ type NewServiceOpts struct { DestBridgeAddress common.Address SrcTaikoAddress common.Address DestTaikoAddress common.Address + SrcSignalServiceAddress common.Address BlockBatchSize uint64 NumGoroutines int SubscriptionBackoff time.Duration @@ -159,6 +160,7 @@ func NewService(opts NewServiceOpts) (*Service, error) { SrcETHClient: opts.EthClient, ProfitableOnly: opts.ProfitableOnly, HeaderSyncIntervalSeconds: opts.HeaderSyncIntervalInSeconds, + SrcSignalServiceAddress: opts.SrcSignalServiceAddress, }) if err != nil { return nil, errors.Wrap(err, "message.NewProcessor") diff --git a/packages/relayer/message/process_message.go b/packages/relayer/message/process_message.go index 1b5a34ef50..00ef8499ca 100644 --- a/packages/relayer/message/process_message.go +++ b/packages/relayer/message/process_message.go @@ -50,9 +50,9 @@ func (p *Processor) ProcessMessage( key := hex.EncodeToString(hashed) - encodedSignalProof, err := p.prover.EncodedSignalProof(ctx, p.rpc, event.Raw.Address, key, latestSyncedHeader) + encodedSignalProof, err := p.prover.EncodedSignalProof(ctx, p.rpc, p.srcSignalServiceAddress, key, latestSyncedHeader) if err != nil { - log.Errorf("srcChainID: %v, destChainID: %v, txHash: %v: signal: %v, from: %v", + log.Errorf("srcChainID: %v, destChainID: %v, txHash: %v: msgHash: %v, from: %v", event.Message.SrcChainId, event.Message.DestChainId, event.Raw.TxHash.Hex(), diff --git a/packages/relayer/message/processor.go b/packages/relayer/message/processor.go index f25a69a962..a9dedaa1d7 100644 --- a/packages/relayer/message/processor.go +++ b/packages/relayer/message/processor.go @@ -32,9 +32,10 @@ type Processor struct { mu *sync.Mutex - destNonce uint64 - relayerAddr common.Address - confirmations uint64 + destNonce uint64 + relayerAddr common.Address + srcSignalServiceAddress common.Address + confirmations uint64 profitableOnly relayer.ProfitableOnly headerSyncIntervalSeconds int64 @@ -50,6 +51,7 @@ type NewProcessorOpts struct { EventRepo relayer.EventRepository DestHeaderSyncer relayer.HeaderSyncer RelayerAddress common.Address + SrcSignalServiceAddress common.Address Confirmations uint64 ProfitableOnly relayer.ProfitableOnly HeaderSyncIntervalSeconds int64 @@ -106,9 +108,10 @@ func NewProcessor(opts NewProcessorOpts) (*Processor, error) { mu: &sync.Mutex{}, - destNonce: 0, - relayerAddr: opts.RelayerAddress, - confirmations: opts.Confirmations, + destNonce: 0, + relayerAddr: opts.RelayerAddress, + srcSignalServiceAddress: opts.SrcSignalServiceAddress, + confirmations: opts.Confirmations, profitableOnly: opts.ProfitableOnly, headerSyncIntervalSeconds: opts.HeaderSyncIntervalSeconds, diff --git a/packages/relayer/proof/encoded_signal_proof.go b/packages/relayer/proof/encoded_signal_proof.go index 7de65ac3ea..4e7d26681e 100644 --- a/packages/relayer/proof/encoded_signal_proof.go +++ b/packages/relayer/proof/encoded_signal_proof.go @@ -19,7 +19,7 @@ import ( func (p *Prover) EncodedSignalProof( ctx context.Context, caller relayer.Caller, - bridgeAddress common.Address, + signalServiceAddress common.Address, key string, blockHash common.Hash, ) ([]byte, error) { @@ -28,7 +28,7 @@ func (p *Prover) EncodedSignalProof( return nil, errors.Wrap(err, "p.blockHeader") } - encodedStorageProof, err := p.encodedStorageProof(ctx, caller, bridgeAddress, key, blockHeader.Height.Int64()) + encodedStorageProof, err := p.encodedStorageProof(ctx, caller, signalServiceAddress, key, blockHeader.Height.Int64()) if err != nil { return nil, errors.Wrap(err, "p.getEncodedStorageProof") } @@ -52,18 +52,18 @@ func (p *Prover) EncodedSignalProof( func (p *Prover) encodedStorageProof( ctx context.Context, c relayer.Caller, - bridgeAddress common.Address, + signalServiceAddress common.Address, key string, blockNumber int64, ) ([]byte, error) { var ethProof StorageProof - log.Infof("getting proof for: %v, key: %v, blockNum: %v", bridgeAddress, key, blockNumber) + log.Infof("getting proof for: %v, key: %v, blockNum: %v", signalServiceAddress, key, blockNumber) err := c.CallContext(ctx, ðProof, "eth_getProof", - bridgeAddress, + signalServiceAddress, []string{key}, hexutil.EncodeBig(new(big.Int).SetInt64(blockNumber)), ) diff --git a/packages/status-page/src/App.svelte b/packages/status-page/src/App.svelte index 58088e0f6f..d44797de51 100644 --- a/packages/status-page/src/App.svelte +++ b/packages/status-page/src/App.svelte @@ -8,6 +8,7 @@ import { ethers } from "ethers"; setupI18n({ withLocale: "en" }); + console.log(import.meta.env.VITE_L1_RPC_URL); const l1Provider = new ethers.providers.JsonRpcProvider( import.meta.env.VITE_L1_RPC_URL ); diff --git a/packages/status-page/src/components/StatusIndicator.svelte b/packages/status-page/src/components/StatusIndicator.svelte index a9ffd9b982..a44c7e869b 100644 --- a/packages/status-page/src/components/StatusIndicator.svelte +++ b/packages/status-page/src/components/StatusIndicator.svelte @@ -50,7 +50,7 @@ statusValue = 0; } } catch (e) { - console.error(e); + console.error(header, e); } if (watchStatusFunc) { diff --git a/packages/status-page/src/domain/status.ts b/packages/status-page/src/domain/status.ts index 3e675488ea..972bb73522 100644 --- a/packages/status-page/src/domain/status.ts +++ b/packages/status-page/src/domain/status.ts @@ -1,6 +1,6 @@ -import type { ethers } from "ethers"; +import type { BigNumber, ethers } from "ethers"; -type Status = string | number | boolean; +type Status = string | number | boolean | BigNumber; type StatusIndicatorProp = { statusFunc?: ( diff --git a/packages/status-page/src/pages/home/Home.svelte b/packages/status-page/src/pages/home/Home.svelte index d7bcf3724f..1e2f8a5f4d 100644 --- a/packages/status-page/src/pages/home/Home.svelte +++ b/packages/status-page/src/pages/home/Home.svelte @@ -1,5 +1,5 @@