Commit 3fd956f4 authored by smartcontracts's avatar smartcontracts Committed by GitHub

Merge pull request #8155 from ethereum-optimism/sc/sdk-bridge-check-bug

fix(sdk): bug in supportsTokenPair
parents 38c102aa 2534eabb
---
'@eth-optimism/sdk': patch
---
Fixed bug with tokenBridge checks throwing
......@@ -156,7 +156,6 @@ export class StandardBridgeAdapter implements IBridgeAdapter {
l1Token: AddressLike,
l2Token: AddressLike
): Promise<boolean> {
try {
const contract = new Contract(
toAddress(l2Token),
optimismMintableERC20.abi,
......@@ -184,18 +183,6 @@ export class StandardBridgeAdapter implements IBridgeAdapter {
}
return true
} catch (err) {
// If the L2 token is not an L2StandardERC20, it may throw an error. If there's a call
// exception then we assume that the token is not supported. Other errors are thrown. Since
// the JSON-RPC API is not well-specified, we need to handle multiple possible error codes.
if (
!err?.message?.toString().includes('CALL_EXCEPTION') &&
!err?.stack?.toString().includes('execution reverted')
) {
console.error('Unexpected error when checking bridge', err)
}
return false
}
}
public async approval(
......
......@@ -490,9 +490,18 @@ export class CrossChainMessenger {
): Promise<IBridgeAdapter> {
const bridges: IBridgeAdapter[] = []
for (const bridge of Object.values(this.bridges)) {
try {
if (await bridge.supportsTokenPair(l1Token, l2Token)) {
bridges.push(bridge)
}
} catch (err) {
if (
!err?.message?.toString().includes('CALL_EXCEPTION') &&
!err?.stack?.toString().includes('execution reverted')
) {
console.error('Unexpected error when checking bridge', err)
}
}
}
if (bridges.length === 0) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment