diff --git a/packages/bridge-ui/src/components/InsufficientBalanceTooltip.svelte b/packages/bridge-ui/src/components/InsufficientBalanceTooltip.svelte index 3697b54bf3..f5a5dc6064 100644 --- a/packages/bridge-ui/src/components/InsufficientBalanceTooltip.svelte +++ b/packages/bridge-ui/src/components/InsufficientBalanceTooltip.svelte @@ -4,13 +4,15 @@ export let show: boolean; - +
- You have insufficient balance to claim this transaction. Please wait for the relayer to claim the transaction for you. + + This will happen automatically. Depending on network congestion, this can + take up to several hours.
diff --git a/packages/bridge-ui/src/components/MessageStatusTooltip.svelte b/packages/bridge-ui/src/components/MessageStatusTooltip.svelte index 4100d4f8a9..e98c856b45 100644 --- a/packages/bridge-ui/src/components/MessageStatusTooltip.svelte +++ b/packages/bridge-ui/src/components/MessageStatusTooltip.svelte @@ -22,7 +22,7 @@ : 'Taiko A2'} should be available to claim within minutes.
  • - Claimable: Your asset is ready to be claimed on the + Claim: Your asset is ready to be claimed on the destination chain and requires a transaction.
  • diff --git a/packages/relayer/http/server.go b/packages/relayer/http/server.go index 8f8f888a9a..b2244a96dc 100644 --- a/packages/relayer/http/server.go +++ b/packages/relayer/http/server.go @@ -109,7 +109,7 @@ func LogSkipper(c echo.Context) bool { case "/metrics": return true default: - return false + return true } } diff --git a/packages/relayer/message/process_message.go b/packages/relayer/message/process_message.go index c75fc518c1..de1af7689a 100644 --- a/packages/relayer/message/process_message.go +++ b/packages/relayer/message/process_message.go @@ -4,6 +4,7 @@ import ( "context" "encoding/hex" "fmt" + "math/big" "strings" "github.com/ethereum/go-ethereum/accounts/abi" @@ -170,6 +171,15 @@ func (p *Processor) sendProcessMessageCall( } } + gasPrice, err := p.destEthClient.SuggestGasPrice(context.Background()) + if err != nil { + return nil, errors.Wrap(err, "p.destBridge.SuggestGasPrice") + } + + gasPrice = gasPrice.Mul(gasPrice, big.NewInt(2)) + + auth.GasPrice = gasPrice + // process the message on the destination bridge. tx, err := p.destBridge.ProcessMessage(auth, event.Message, proof) if err != nil { diff --git a/packages/relayer/message/processor.go b/packages/relayer/message/processor.go index 7f5fb2e3ef..e17e050a1f 100644 --- a/packages/relayer/message/processor.go +++ b/packages/relayer/message/processor.go @@ -3,6 +3,7 @@ package message import ( "context" "crypto/ecdsa" + "math/big" "sync" "github.com/ethereum/go-ethereum/common" @@ -17,6 +18,7 @@ type ethClient interface { TransactionReceipt(ctx context.Context, txHash common.Hash) (*types.Receipt, error) BlockNumber(ctx context.Context) (uint64, error) HeaderByHash(ctx context.Context, hash common.Hash) (*types.Header, error) + SuggestGasPrice(ctx context.Context) (*big.Int, error) } type Processor struct { eventRepo relayer.EventRepository diff --git a/packages/relayer/mock/eth_client.go b/packages/relayer/mock/eth_client.go index dcfdc993a3..3e598886d2 100644 --- a/packages/relayer/mock/eth_client.go +++ b/packages/relayer/mock/eth_client.go @@ -25,6 +25,10 @@ var ( type EthClient struct { } +func (c *EthClient) SuggestGasPrice(ctx context.Context) (*big.Int, error) { + return big.NewInt(100), nil +} + func (c *EthClient) ChainID(ctx context.Context) (*big.Int, error) { return MockChainID, nil } diff --git a/packages/starter-dapp/src/components/MessageStatusTooltip.svelte b/packages/starter-dapp/src/components/MessageStatusTooltip.svelte index d4e6be85d7..11905df6db 100644 --- a/packages/starter-dapp/src/components/MessageStatusTooltip.svelte +++ b/packages/starter-dapp/src/components/MessageStatusTooltip.svelte @@ -1,6 +1,6 @@ @@ -16,11 +16,14 @@ : "Ethereum A2"} bridging can take several hours before being ready. {import.meta.env ? import.meta.env.VITE_MAINNET_CHAIN_NAME - : "Ethereum A2"} => {import.meta.env ? import.meta.env.VITE_TAIKO_CHAIN_NAME : "Taiko A2"} should be available to claim within minutes. + : "Ethereum A2"} => {import.meta.env + ? import.meta.env.VITE_TAIKO_CHAIN_NAME + : "Taiko A2"} should be available to claim within minutes.
  • - Claimable: Your asset is ready to be claimed on the - destination chain and requires a transaction. + Claim: Your asset is ready to be claimed on the + destination chain and requires a transaction, or if a processing fee + is set, relayer will pick it up.
  • Claimed: Your asset has finished bridging and is