|
| 1 | +import { PublicKey } from "@solana/web3.js"; |
| 2 | +import { homedir } from "os"; |
| 3 | +import { loadKeypair } from "../../../tests/utils/keys"; |
| 4 | +import { contracts } from "@wormhole-foundation/sdk-base"; |
| 5 | + |
| 6 | +export const RPC_NODE = "https://api.mainnet-beta.solana.com"; |
| 7 | + |
| 8 | +/// Wormhole Token (W) (mainnet solana address) |
| 9 | +export const WORMHOLE_TOKEN = new PublicKey( |
| 10 | + "85VBFQZC9TZkfaptBWjvUw7YbZjy52A6mjtPGjstQAmQ", |
| 11 | +); |
| 12 | + |
| 13 | +export const STAKING_ADDRESS = new PublicKey( |
| 14 | + "AFuHPdrQGsW8rNQ4oEFF35sm5fg36gwrxyqjkjKvi6ap", |
| 15 | +); |
| 16 | + |
| 17 | +export const CORE_BRIDGE_PID = new PublicKey( |
| 18 | + contracts.coreBridge.get("Mainnet", "Solana")!, // worm2ZoG2kUd4vFXhvjh93UUH596ayRfgQ2MgjNMTth |
| 19 | +); |
| 20 | +console.log(CORE_BRIDGE_PID); |
| 21 | + |
| 22 | +/// Wormhole Hub Proposal Metadata Contract (mainnet ethereum address) |
| 23 | +export const HUB_PROPOSAL_METADATA_ADDRESS = |
| 24 | + "0x1a3e5624769c3dc9106347a239523e4a08d85c38"; // TODO: needs to be updated after a deployment to ethereum mainnet |
| 25 | +export const hubProposalMetadataUint8Array = new Uint8Array( |
| 26 | + HUB_PROPOSAL_METADATA_ADDRESS.slice(2) |
| 27 | + .toLowerCase() |
| 28 | + .match(/.{1,2}/g) |
| 29 | + ?.map((byte) => parseInt(byte, 16)), |
| 30 | +); |
| 31 | + |
| 32 | +/// Wormhole Hub Chain ID |
| 33 | +// https://wormhole.com/docs/build/reference/chain-ids/#__tabbed_1_1 |
| 34 | +export const HUB_CHAIN_ID = 2; // Mainnet |
| 35 | + |
| 36 | +export const CHECKPOINTS_ACCOUNT_LIMIT = 654998; |
| 37 | + |
| 38 | +/// Wormhole hubSolanaMessageDispatcher Contract (mainnet ethereum address) |
| 39 | +export const HUB_SOLANA_MESSAGE_DISPATCHER_ADDRESS = |
| 40 | + "0xaeb78fb7ddedbbcab908e91e94f1fb04a23fbce5"; // TODO: needs to be updated after a deployment to ethereum mainnet |
| 41 | +const hubSolanaMessageDispatcherHex20 = |
| 42 | + HUB_SOLANA_MESSAGE_DISPATCHER_ADDRESS.slice(2); |
| 43 | +const hubSolanaMessageDispatcherHex32 = |
| 44 | + "000000000000000000000000" + hubSolanaMessageDispatcherHex20.toLowerCase(); |
| 45 | +const hubSolanaMessageDispatcherUint8Array32 = new Uint8Array( |
| 46 | + hubSolanaMessageDispatcherHex32 |
| 47 | + .match(/.{1,2}/g) |
| 48 | + ?.map((byte) => parseInt(byte, 16)), |
| 49 | +); |
| 50 | +export const hubSolanaMessageDispatcherUint8Array20 = |
| 51 | + hubSolanaMessageDispatcherUint8Array32.slice(-20); |
| 52 | +export const hubSolanaMessageDispatcherPublicKey = new PublicKey( |
| 53 | + hubSolanaMessageDispatcherUint8Array32, |
| 54 | +); |
| 55 | +// console.log("hubSolanaMessageDispatcherPublicKey:", hubSolanaMessageDispatcherPublicKey); |
| 56 | + |
| 57 | +export const DEPLOYER_AUTHORITY_PATH = "/.config/solana/deployer.json"; |
| 58 | +export const DEPLOYER_AUTHORITY_KEYPAIR = loadKeypair( |
| 59 | + homedir() + DEPLOYER_AUTHORITY_PATH, |
| 60 | +); |
| 61 | + |
| 62 | +export const GOVERNANCE_AUTHORITY_PATH = |
| 63 | + "/.config/solana/governanceAuthority.json"; |
| 64 | +export const GOVERNANCE_AUTHORITY_KEYPAIR = loadKeypair( |
| 65 | + homedir() + GOVERNANCE_AUTHORITY_PATH, |
| 66 | +); |
| 67 | + |
| 68 | +export const VESTING_ADMIN_PATH = "/.config/solana/vestingAdmin.json"; |
| 69 | +export const VESTING_ADMIN_KEYPAIR = loadKeypair( |
| 70 | + homedir() + VESTING_ADMIN_PATH, |
| 71 | +); |
| 72 | + |
| 73 | +export const VOTE_WEIGHT_WINDOW_LENGTHS = 10 * 60; // 10 minutes |
0 commit comments