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 { 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: { bsc: {
wormholeRelayerAddress: "0x80aC94316391752A193C1c47E27D382b507c93F3", wormholeRelayerAddress: "0x80aC94316391752A193C1c47E27D382b507c93F3",
mockDeliveryProviderAddress: "0x813AB43ab264362c55BF35A1448d0fd8135049a6", mockDeliveryProviderAddress: "0x813AB43ab264362c55BF35A1448d0fd8135049a6",
@ -30,9 +37,9 @@ const TESTNET: {[K in ChainName]?: AddressInfo} = {
mockDeliveryProviderAddress: "0xBF684878906629E72079D4f07D75Ef7165238092", mockDeliveryProviderAddress: "0xBF684878906629E72079D4f07D75Ef7165238092",
mockIntegrationAddress: "0x3bF0c43d88541BBCF92bE508ec41e540FbF28C56", mockIntegrationAddress: "0x3bF0c43d88541BBCF92bE508ec41e540FbF28C56",
}, },
} };
const DEVNET: {[K in ChainName]?: AddressInfo} = { const DEVNET: { [K in ChainName]?: AddressInfo } = {
ethereum: { ethereum: {
wormholeRelayerAddress: "0xE66C1Bc1b369EF4F376b84373E3Aa004E8F4C083", wormholeRelayerAddress: "0xE66C1Bc1b369EF4F376b84373E3Aa004E8F4C083",
mockDeliveryProviderAddress: "0x1ef9e15c3bbf0555860b5009B51722027134d53a", 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]; 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; return result;
} }
@ -60,7 +107,10 @@ export function getWormholeRelayerAddress(
env: Network env: Network
): string { ): string {
const result = getAddressInfo(chainName, env).wormholeRelayerAddress; 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; return result;
} }
@ -70,8 +120,12 @@ export function getWormholeRelayer(
provider: ethers.providers.Provider | ethers.Signer, provider: ethers.providers.Provider | ethers.Signer,
wormholeRelayerAddress?: string wormholeRelayerAddress?: string
): WormholeRelayer { ): WormholeRelayer {
const thisChainsRelayer = wormholeRelayerAddress || getWormholeRelayerAddress(chainName, env); const thisChainsRelayer =
const contract = WormholeRelayer__factory.connect(thisChainsRelayer, provider); wormholeRelayerAddress || getWormholeRelayerAddress(chainName, env);
const contract = WormholeRelayer__factory.connect(
thisChainsRelayer,
provider
);
return contract; return contract;
} }