sdk: WormholeRelayer mainnet addresses (#3108)

* basic delivery helpers done

* reorganize

* sdk: WormholeRelayer mainnet addresses

* acala and karura

* sdk: include manual delivery in relayer tests

* fix test

* sdk: Fix deliveryProvider -> wormholeRelayer

* fix

* SDK fixes

* add l2s

---------

Co-authored-by: derpy-duck <115193320+derpy-duck@users.noreply.github.com>
This commit is contained in:
Joe Howarth 2023-06-22 15:13:30 -05:00 committed by GitHub
parent 002bfd7f8a
commit 74e53beac7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 67 additions and 13 deletions

View File

@ -1,10 +1,17 @@
import { ChainId, Network, ChainName, CHAIN_ID_TO_NAME,} from "../";
import { ChainId, Network, ChainName, CHAIN_ID_TO_NAME } from "../";
import { ethers } from "ethers";
import { WormholeRelayer__factory, WormholeRelayer } from "../ethers-contracts/";
import {
WormholeRelayer__factory,
WormholeRelayer,
} from "../ethers-contracts/";
type AddressInfo = {wormholeRelayerAddress?: string, mockDeliveryProviderAddress?: string, mockIntegrationAddress?: string}
type AddressInfo = {
wormholeRelayerAddress?: string;
mockDeliveryProviderAddress?: string;
mockIntegrationAddress?: string;
};
const TESTNET: {[K in ChainName]?: AddressInfo} = {
const TESTNET: { [K in ChainName]?: AddressInfo } = {
bsc: {
wormholeRelayerAddress: "0x80aC94316391752A193C1c47E27D382b507c93F3",
mockDeliveryProviderAddress: "0x813AB43ab264362c55BF35A1448d0fd8135049a6",
@ -30,9 +37,9 @@ const TESTNET: {[K in ChainName]?: AddressInfo} = {
mockDeliveryProviderAddress: "0xBF684878906629E72079D4f07D75Ef7165238092",
mockIntegrationAddress: "0x3bF0c43d88541BBCF92bE508ec41e540FbF28C56",
},
}
};
const DEVNET: {[K in ChainName]?: AddressInfo} = {
const DEVNET: { [K in ChainName]?: AddressInfo } = {
ethereum: {
wormholeRelayerAddress: "0xE66C1Bc1b369EF4F376b84373E3Aa004E8F4C083",
mockDeliveryProviderAddress: "0x1ef9e15c3bbf0555860b5009B51722027134d53a",
@ -45,13 +52,53 @@ const DEVNET: {[K in ChainName]?: AddressInfo} = {
},
};
const MAINNET: {[K in ChainName]?: AddressInfo} = {};
const MAINNET: { [K in ChainName]?: AddressInfo } = {
ethereum: {
wormholeRelayerAddress: "0x27428DD2d3DD32A4D7f7C497eAaa23130d894911",
},
bsc: {
wormholeRelayerAddress: "0x27428DD2d3DD32A4D7f7C497eAaa23130d894911",
},
polygon: {
wormholeRelayerAddress: "0x27428DD2d3DD32A4D7f7C497eAaa23130d894911",
},
avalanche: {
wormholeRelayerAddress: "0x27428DD2d3DD32A4D7f7C497eAaa23130d894911",
},
fantom: {
wormholeRelayerAddress: "0x27428DD2d3DD32A4D7f7C497eAaa23130d894911",
},
klaytn: {
wormholeRelayerAddress: "0x27428DD2d3DD32A4D7f7C497eAaa23130d894911",
},
celo: {
wormholeRelayerAddress: "0x27428DD2d3DD32A4D7f7C497eAaa23130d894911",
},
acala: {
wormholeRelayerAddress: "0x27428DD2d3DD32A4D7f7C497eAaa23130d894911",
},
karura: {
wormholeRelayerAddress: "0x27428DD2d3DD32A4D7f7C497eAaa23130d894911",
},
moonbeam: {
wormholeRelayerAddress: "0x27428DD2d3DD32A4D7f7C497eAaa23130d894911",
},
arbitrum: {
wormholeRelayerAddress: "0x27428DD2d3DD32A4D7f7C497eAaa23130d894911",
},
optimism: {
wormholeRelayerAddress: "0x27428DD2d3DD32A4D7f7C497eAaa23130d894911",
},
};
export const RELAYER_CONTRACTS = {MAINNET, TESTNET, DEVNET};
export const RELAYER_CONTRACTS = { MAINNET, TESTNET, DEVNET };
export function getAddressInfo(chainName: ChainName, env: Network): AddressInfo {
export function getAddressInfo(
chainName: ChainName,
env: Network
): AddressInfo {
const result: AddressInfo | undefined = RELAYER_CONTRACTS[env][chainName];
if(!result) throw Error(`No address info for chain ${chainName} on ${env}`);
if (!result) throw Error(`No address info for chain ${chainName} on ${env}`);
return result;
}
@ -60,7 +107,10 @@ export function getWormholeRelayerAddress(
env: Network
): string {
const result = getAddressInfo(chainName, env).wormholeRelayerAddress;
if(!result) throw Error(`No Wormhole Relayer Address for chain ${chainName}, network ${env}`);
if (!result)
throw Error(
`No Wormhole Relayer Address for chain ${chainName}, network ${env}`
);
return result;
}
@ -70,8 +120,12 @@ export function getWormholeRelayer(
provider: ethers.providers.Provider | ethers.Signer,
wormholeRelayerAddress?: string
): WormholeRelayer {
const thisChainsRelayer = wormholeRelayerAddress || getWormholeRelayerAddress(chainName, env);
const contract = WormholeRelayer__factory.connect(thisChainsRelayer, provider);
const thisChainsRelayer =
wormholeRelayerAddress || getWormholeRelayerAddress(chainName, env);
const contract = WormholeRelayer__factory.connect(
thisChainsRelayer,
provider
);
return contract;
}