feat(contract_manager): script for EVM feeds contract deployment (#1254)

* feat(contract_manager): script for EVM feeds contract deployment

This change adds a script to replace truffle deployment scripts. This
gives us more control and flexibility over the deployment process.

* chore: address comments

---------

Co-authored-by: Dev Kalra <kalradev@outlook.com>
This commit is contained in:
Ali Behjati 2024-01-30 12:11:19 +01:00 committed by GitHub
parent 16b60d426e
commit 9c6bdfdcf9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
102 changed files with 343 additions and 1590 deletions

View File

@ -8,7 +8,7 @@ import { toPrivateKey } from "../src";
const parser = yargs(hideBin(process.argv))
.scriptName("deploy_evm_contract.ts")
.usage(
"Usage: $0 --code <path/to/std-output.json> --private-key <private-key> --chain <chain> [--deploy-args <arg> [... <args>]]"
"Usage: $0 --std-output <path/to/std-output.json> --private-key <private-key> --chain <chain> [--deploy-args <arg> [... <args>]]"
)
.options({
"std-output": {

View File

@ -0,0 +1,299 @@
import yargs from "yargs";
import { hideBin } from "yargs/helpers";
import { EvmChain } from "../src/chains";
import { DefaultStore } from "../src/store";
import { existsSync, readFileSync, writeFileSync } from "fs";
import {
DeploymentType,
EvmPriceFeedContract,
getDefaultDeploymentConfig,
PrivateKey,
toDeploymentType,
toPrivateKey,
WormholeEvmContract,
} from "../src";
import { join } from "path";
import Web3 from "web3";
import { Contract } from "web3-eth-contract";
type DeploymentConfig = {
type: DeploymentType;
validTimePeriodSeconds: number;
singleUpdateFeeInWei: number;
gasMultiplier: number;
gasPriceMultiplier: number;
privateKey: PrivateKey;
jsonOutputDir: string;
saveContract: boolean;
};
const CACHE_FILE = ".cache-deploy-evm";
const parser = yargs(hideBin(process.argv))
.scriptName("deploy_evm_pricefeed_contracts.ts")
.usage(
"Usage: $0 --std-output-dir <path/to/std-output-dir/> --private-key <private-key> --chain <chain0> --chain <chain1>"
)
.options({
"std-output-dir": {
type: "string",
demandOption: true,
desc: "Path to the standard JSON output of the contracts (build artifact) directory",
},
"private-key": {
type: "string",
demandOption: true,
desc: "Private key to use for the deployment",
},
chain: {
type: "array",
demandOption: true,
desc: "Chain to upload the contract on. Can be one of the evm chains available in the store",
},
"deployment-type": {
type: "string",
demandOption: false,
default: "stable",
desc: "Deployment type to use. Can be 'stable' or 'beta'",
},
"valid-time-period-seconds": {
type: "number",
demandOption: false,
default: 60,
desc: "Valid time period in seconds for the price feed staleness",
},
"single-update-fee-in-wei": {
type: "number",
demandOption: false,
default: 1,
desc: "Single update fee in wei for the price feed",
},
"gas-multiplier": {
type: "number",
demandOption: false,
// Pyth Proxy (ERC1967) gas estimate is insufficient in many networks and thus we use 2 by default to make it work.
default: 2,
desc: "Gas multiplier to use for the deployment. This is useful when gas estimates are not accurate",
},
"gas-price-multiplier": {
type: "number",
demandOption: false,
default: 1,
desc: "Gas price multiplier to use for the deployment. This is useful when gas price estimates are not accurate",
},
"save-contract": {
type: "boolean",
demandOption: false,
default: true,
desc: "Save the contract to the store",
},
});
async function deployIfNotCached(
chain: EvmChain,
config: DeploymentConfig,
artifactName: string,
deployArgs: any[] // eslint-disable-line @typescript-eslint/no-explicit-any
): Promise<string> {
const cache = existsSync(CACHE_FILE)
? JSON.parse(readFileSync(CACHE_FILE, "utf8"))
: {};
const cacheKey = `${chain.getId()}-${artifactName}`;
if (cache[cacheKey]) {
const address = cache[cacheKey];
console.log(
`Using cached deployment of ${artifactName} on ${chain.getId()} at ${address}`
);
return address;
}
const artifact = JSON.parse(
readFileSync(join(config.jsonOutputDir, `${artifactName}.json`), "utf8")
);
console.log(`Deploying ${artifactName} on ${chain.getId()}...`);
const addr = await chain.deploy(
config.privateKey,
artifact["abi"],
artifact["bytecode"],
deployArgs,
config.gasMultiplier,
config.gasPriceMultiplier
);
console.log(`✅ Deployed ${artifactName} on ${chain.getId()} at ${addr}`);
cache[cacheKey] = addr;
writeFileSync(CACHE_FILE, JSON.stringify(cache, null, 2));
return addr;
}
function getWeb3Contract(
config: DeploymentConfig,
artifactName: string,
address: string
): Contract {
const artifact = JSON.parse(
readFileSync(join(config.jsonOutputDir, `${artifactName}.json`), "utf8")
);
const web3 = new Web3();
return new web3.eth.Contract(artifact["abi"], address);
}
async function deployWormholeReceiverContracts(
chain: EvmChain,
config: DeploymentConfig
): Promise<string> {
const receiverSetupAddr = await deployIfNotCached(
chain,
config,
"ReceiverSetup",
[]
);
const receiverImplAddr = await deployIfNotCached(
chain,
config,
"ReceiverImplementation",
[]
);
// Craft the init data for the proxy contract
const setupContract = getWeb3Contract(
config,
"ReceiverSetup",
receiverSetupAddr
);
const { wormholeConfig } = getDefaultDeploymentConfig(config.type);
const initData = setupContract.methods
.setup(
receiverImplAddr,
wormholeConfig.initialGuardianSet.map((addr: string) => "0x" + addr),
chain.getWormholeChainId(),
wormholeConfig.governanceChainId,
"0x" + wormholeConfig.governanceContract
)
.encodeABI();
const wormholeReceiverAddr = await deployIfNotCached(
chain,
config,
"WormholeReceiver",
[receiverSetupAddr, initData]
);
const wormholeEvmContract = new WormholeEvmContract(
chain,
wormholeReceiverAddr
);
if (config.type === "stable") {
console.log(`Syncing mainnet guardian sets for ${chain.getId()}...`);
// TODO: Add a way to pass gas configs to this
await wormholeEvmContract.syncMainnetGuardianSets(config.privateKey);
console.log(`✅ Synced mainnet guardian sets for ${chain.getId()}`);
}
return wormholeReceiverAddr;
}
async function deployPriceFeedContracts(
chain: EvmChain,
config: DeploymentConfig,
wormholeAddr: string
): Promise<string> {
const pythImplAddr = await deployIfNotCached(
chain,
config,
"PythUpgradable",
[]
);
// Craft the init data for the proxy contract
const { dataSources, governanceDataSource } = getDefaultDeploymentConfig(
config.type
);
const pythImplContract = getWeb3Contract(
config,
"PythUpgradable",
pythImplAddr
);
const pythInitData = pythImplContract.methods
.initialize(
wormholeAddr,
dataSources.map((ds) => ds.emitterChain),
dataSources.map((ds) => "0x" + ds.emitterAddress),
governanceDataSource.emitterChain,
"0x" + governanceDataSource.emitterAddress,
0, // governanceInitialSequence
config.validTimePeriodSeconds,
config.singleUpdateFeeInWei
)
.encodeABI();
return await deployIfNotCached(chain, config, "ERC1967Proxy", [
pythImplAddr,
pythInitData,
]);
}
async function main() {
const argv = await parser.argv;
const deploymentConfig: DeploymentConfig = {
type: toDeploymentType(argv.deploymentType),
validTimePeriodSeconds: argv.validTimePeriodSeconds,
singleUpdateFeeInWei: argv.singleUpdateFeeInWei,
gasMultiplier: argv.gasMultiplier,
gasPriceMultiplier: argv.gasPriceMultiplier,
privateKey: toPrivateKey(argv.privateKey),
jsonOutputDir: argv.stdOutputDir,
saveContract: argv.saveContract,
};
console.log(
`Deployment config: ${JSON.stringify(deploymentConfig, null, 2)}\n`
);
const chainNames = argv.chain;
for (const chainName of chainNames) {
const chain = DefaultStore.chains[chainName];
if (!chain) {
throw new Error(`Chain ${chain} not found`);
} else if (!(chain instanceof EvmChain)) {
throw new Error(`Chain ${chain} is not an EVM chain`);
}
console.log(`Deploying price feed contracts on ${chain.getId()}...`);
const wormholeAddr = await deployWormholeReceiverContracts(
chain,
deploymentConfig
);
const priceFeedAddr = await deployPriceFeedContracts(
chain,
deploymentConfig,
wormholeAddr
);
if (deploymentConfig.saveContract) {
console.log("Saving the contract in the store...");
const contract = new EvmPriceFeedContract(chain, priceFeedAddr);
DefaultStore.contracts[contract.getId()] = contract;
DefaultStore.saveAllContracts();
}
console.log(
`✅ Deployed price feed contracts on ${chain.getId()} at ${priceFeedAddr}\n\n`
);
}
}
main();

View File

@ -44,18 +44,18 @@ const parser = yargs(hideBin(process.argv))
},
});
async function run_if_not_cached(
cache_key: string,
async function runIfNotCached(
cacheKey: string,
fn: () => Promise<string>
): Promise<string> {
const cache = existsSync(CACHE_FILE)
? JSON.parse(readFileSync(CACHE_FILE, "utf8"))
: {};
if (cache[cache_key]) {
return cache[cache_key];
if (cache[cacheKey]) {
return cache[cacheKey];
}
const result = await fn();
cache[cache_key] = result;
cache[cacheKey] = result;
writeFileSync(CACHE_FILE, JSON.stringify(cache, null, 2));
return result;
}
@ -102,7 +102,7 @@ async function main() {
for (const chain of selectedChains) {
const artifact = JSON.parse(readFileSync(argv["std-output"], "utf8"));
console.log("Deploying contract to", chain.getId());
const address = await run_if_not_cached(`deploy-${chain.getId()}`, () => {
const address = await runIfNotCached(`deploy-${chain.getId()}`, () => {
return chain.deploy(
toPrivateKey(argv["private-key"]),
artifact["abi"],

View File

@ -8,15 +8,22 @@ export interface TxResult {
export type DeploymentType = "stable" | "beta";
export type PrivateKey = string & { __type: "PrivateKey" };
function checkIsPrivateKey(key: string): asserts key is PrivateKey {
if (Buffer.from(key, "hex").length !== 32)
throw new Error("Invalid private key, must be 64 hex chars");
}
export function toPrivateKey(key: string): PrivateKey {
checkIsPrivateKey(key);
return key;
}
export function toDeploymentType(type: string): DeploymentType {
if (type === "stable" || type === "beta") return type;
throw new Error(`Invalid deployment type ${type}`);
}
export type KeyValueConfig = Record<string, string | number | boolean>;
export abstract class Storable {

View File

@ -403,15 +403,17 @@ export class EvmChain extends Chain {
privateKey: PrivateKey,
abi: any, // eslint-disable-line @typescript-eslint/no-explicit-any
bytecode: string,
deployArgs: any[] // eslint-disable-line @typescript-eslint/no-explicit-any
deployArgs: any[], // eslint-disable-line @typescript-eslint/no-explicit-any
gasMultiplier = 1,
gasPriceMultiplier = 1
): Promise<string> {
const web3 = new Web3(this.getRpcUrl());
const signer = web3.eth.accounts.privateKeyToAccount(privateKey);
web3.eth.accounts.wallet.add(signer);
const contract = new web3.eth.Contract(abi);
const deployTx = contract.deploy({ data: bytecode, arguments: deployArgs });
const gas = await deployTx.estimateGas();
const gasPrice = await this.getGasPrice();
const gas = (await deployTx.estimateGas()) * gasMultiplier;
const gasPrice = Number(await this.getGasPrice()) * gasPriceMultiplier;
const deployerBalance = await web3.eth.getBalance(signer.address);
const gasDiff = BigInt(gas) * BigInt(gasPrice) - BigInt(deployerBalance);
if (gasDiff > 0n) {
@ -427,7 +429,7 @@ export class EvmChain extends Chain {
const deployedContract = await deployTx.send({
from: signer.address,
gas,
gasPrice,
gasPrice: gasPrice.toString(),
});
return deployedContract.options.address;
}

View File

@ -311,7 +311,7 @@ export class WormholeEvmContract extends WormholeContract {
);
const gasEstiamte = await transactionObject.estimateGas({
from: address,
gas: 100000000,
gas: 15000000,
});
// Some networks like Filecoin do not support the normal transaction type and need a type 2 transaction.
// To send a type 2 transaction, remove the ``gasPrice`` field and add the `type` field with the value
@ -404,7 +404,7 @@ export class EvmEntropyContract extends Storable {
return {
chain: this.chain.getId(),
address: this.address,
type: EvmPriceFeedContract.type,
type: EvmEntropyContract.type,
};
}
@ -596,15 +596,15 @@ export class EvmPriceFeedContract extends PriceFeedContract {
.call();
const transactionObject =
pythContract.methods.updatePriceFeeds(priceFeedUpdateData);
const gasEstiamte = await transactionObject.estimateGas({
const gasEstimate = await transactionObject.estimateGas({
from: address,
gas: 100000000,
gas: 15000000,
value: updateFee,
});
const result = await transactionObject.send({
from: address,
value: updateFee,
gas: gasEstiamte * GAS_ESTIMATE_MULTIPLIER,
gas: gasEstimate * GAS_ESTIMATE_MULTIPLIER,
gasPrice: await this.chain.getGasPrice(),
});
return { id: result.transactionHash, info: result };
@ -622,7 +622,7 @@ export class EvmPriceFeedContract extends PriceFeedContract {
);
const gasEstiamte = await transactionObject.estimateGas({
from: address,
gas: 100000000,
gas: 15000000,
});
const result = await transactionObject.send({
from: address,

View File

@ -333,6 +333,11 @@
rpcUrl: https://zetachain-athens-evm.blockpi.network/v1/rpc/public
networkId: 7001
type: EvmChain
- id: zetachain
mainnet: true
rpcUrl: https://zetachain-evm.blockpi.network/v1/rpc/public
networkId: 7000
type: EvmChain
- id: astar_testnet
mainnet: false
rpcUrl: https://rpc.zkatana.gelato.digital

View File

@ -250,3 +250,12 @@
- chain: filecoin
address: "0xA2aa501b19aff244D90cc15a4Cf739D2725B5729"
type: EvmPriceFeedContract
- chain: zetachain
address: "0x2880aB155794e7179c9eE2e38200202908C17B43"
type: EvmPriceFeedContract
- chain: hedera_testnet
address: "0x7a7F2493c578796ABfBA15Ce2e914A7A819979B7"
type: EvmPriceFeedContract
- chain: sei_evm_devnet
address: "0x23f0e8FAeE7bbb405E7A7C3d60138FCfd43d7509"
type: EvmPriceFeedContract

View File

@ -1,6 +0,0 @@
# Migrations Metadata
MIGRATIONS_DIR=./migrations/prod-receiver
MIGRATIONS_NETWORK=development
WORMHOLE_CHAIN_NAME=ethereum
CLUSTER=testnet
VALID_TIME_PERIOD_SECONDS=60

View File

@ -1,30 +0,0 @@
/**
* This script is used to generate the .env file for a specific network.
* You can call it like this:
* node create-env.js <chain-id>
*/
const { DefaultStore, EvmChain } = require("contract_manager");
const { writeFileSync } = require("fs");
async function main() {
const chainId = process.argv[2];
const chain = DefaultStore.chains[chainId];
if (!chain) {
throw new Error(`Chain ${chainId} not found`);
}
if (!(chain instanceof EvmChain)) {
throw new Error(`${chainId} is not an EVM chain`);
}
writeFileSync(
`.env`,
`MIGRATIONS_DIR=./migrations/prod-receiver\n` +
`MIGRATIONS_NETWORK=${chain.getId()}\n` +
`VALID_TIME_PERIOD_SECONDS=60\n` +
`SINGLE_UPDATE_FEE_IN_WEI=1\n` +
`NETWORK_ID=${chain.networkId}\n` +
`RPC_URL=${chain.getRpcUrl()}\n`
);
}
main();

View File

@ -21,44 +21,12 @@ if [[ -e contracts/pyth/PythUpgradable_merged.sol ]]; then
rm contracts/pyth/PythUpgradable_merged.sol
fi
echo "Building the contract..."
echo "Building the contracts..."
# Ensure that we deploy a fresh build with up-to-date dependencies.
rm -rf build && npx truffle compile --all
echo "Adding network metadata to the contract"
# Merge the network addresses into the artifacts, if some contracts are already deployed.
npx apply-registry
echo "Deploying the contracts..."
# The channel to use for the price sources. Can be `stable` or `beta`.
export CHANNEL=stable
pushd ../../../contract_manager/
while [[ $# -ne 0 ]]; do
NETWORK=$1
shift
echo "=========== Deploying to ${NETWORK} (if not deployed) ==========="
# Load the configuration environment variables for deploying your network. make sure to use right env file.
# If it is a new chain you are deploying to, create a new env file and commit it to the repo.
if [[ $NETWORK != development ]]; then
node create-env.js $NETWORK
else
echo "Skipping env file creation for development network"
fi
set -o allexport && source .env set && set +o allexport
if [[ $NETWORK == zksync* ]]; then
echo "Skipping truffle migration on $NETWORK. If you wish to deploy a fresh contract read Deploying.md."
else
echo "Migrating..."
npx truffle migrate --network $MIGRATIONS_NETWORK --compile-none
echo "Deployment to $NETWORK finished successfully"
fi
if [[ $CHANNEL == stable ]]; then
echo "=========== Syncing guardian sets to ${NETWORK} ==========="
npm run receiver-submit-guardian-sets -- --network $NETWORK
fi
done
echo "=========== Finished ==========="
npx ts-node scripts/deploy_evm_pricefeed_contracts.ts --std-output-dir ../target_chains/ethereum/contracts/build/contracts --private-key $PK --chain "$@"

View File

@ -1,12 +0,0 @@
const Migrations = artifacts.require("Migrations");
const tdr = require("truffle-deploy-registry");
module.exports = async function (deployer, network) {
await deployer.deploy(Migrations);
let migrationsInstance = await Migrations.deployed();
if (!tdr.isDryRunNetworkName(network)) {
await tdr.appendInstance(migrationsInstance);
}
};

View File

@ -1,54 +0,0 @@
require("dotenv").config({ path: ".env" });
const tdr = require("truffle-deploy-registry");
const governance = require("xc_admin_common");
const { assert } = require("chai");
const ReceiverSetup = artifacts.require("ReceiverSetup");
const ReceiverImplementation = artifacts.require("ReceiverImplementation");
const WormholeReceiver = artifacts.require("WormholeReceiver");
const { getDefaultConfig } = require("../../scripts/contractManagerConfig");
// CONFIG
const chainName = process.env.MIGRATIONS_NETWORK;
assert(chainName !== undefined);
const wormholeReceiverChainId = governance.CHAINS[chainName];
assert(wormholeReceiverChainId !== undefined);
const {
wormholeGovernanceChainId,
wormholeGovernanceContract,
wormholeInitialSigners,
} = getDefaultConfig(process.env.MIGRATIONS_NETWORK);
module.exports = async function (deployer, network) {
// deploy setup
await deployer.deploy(ReceiverSetup);
// deploy implementation
await deployer.deploy(ReceiverImplementation);
// encode initialisation data
const setup = new web3.eth.Contract(ReceiverSetup.abi, ReceiverSetup.address);
const initData = setup.methods
.setup(
ReceiverImplementation.address,
wormholeInitialSigners,
wormholeReceiverChainId,
wormholeGovernanceChainId,
wormholeGovernanceContract
)
.encodeABI();
// deploy proxy
const wormholeReceiver = await deployer.deploy(
WormholeReceiver,
ReceiverSetup.address,
initData
);
if (!tdr.isDryRunNetworkName(network)) {
await tdr.appendInstance(wormholeReceiver);
}
};

View File

@ -1,61 +0,0 @@
require("dotenv").config({ path: ".env" });
const PythUpgradable = artifacts.require("PythUpgradable");
const WormholeReceiver = artifacts.require("WormholeReceiver");
const { deployProxy } = require("@openzeppelin/truffle-upgrades");
const tdr = require("truffle-deploy-registry");
const {
saveConfig,
getDefaultConfig,
} = require("../../scripts/contractManagerConfig");
const {
governanceEmitter,
governanceChainId,
emitterAddresses,
emitterChainIds,
} = getDefaultConfig(process.env.MIGRATIONS_NETWORK);
// Default value for this field is 0
const governanceInitialSequence = Number(
process.env.GOVERNANCE_INITIAL_SEQUENCE ?? "0"
);
const validTimePeriodSeconds = Number(process.env.VALID_TIME_PERIOD_SECONDS);
const singleUpdateFeeInWei = Number(process.env.SINGLE_UPDATE_FEE_IN_WEI);
console.log("emitterChainIds: " + emitterChainIds);
console.log("emitterAddresses: " + emitterAddresses);
console.log("governanceEmitter: " + governanceEmitter);
console.log("governanceChainId: " + governanceChainId);
console.log("governanceInitialSequence: " + governanceInitialSequence);
console.log("validTimePeriodSeconds: " + validTimePeriodSeconds);
console.log("singleUpdateFeeInWei: " + singleUpdateFeeInWei);
module.exports = async function (deployer, network) {
// Deploy the proxy. This will return an instance of PythUpgradable,
// with the address field corresponding to the fronting ERC1967Proxy.
let proxyInstance = await deployProxy(
PythUpgradable,
[
(await WormholeReceiver.deployed()).address,
emitterChainIds,
emitterAddresses,
governanceChainId,
governanceEmitter,
governanceInitialSequence,
validTimePeriodSeconds,
singleUpdateFeeInWei,
],
{ deployer }
);
// Add the ERC1967Proxy address to the PythUpgradable contract's
// entry in the registry. This allows us to call upgradeProxy
// functions with the value of PythUpgradable.deployed().address:
// e.g. upgradeProxy(PythUpgradable.deployed().address, NewImplementation)
if (!tdr.isDryRunNetworkName(network)) {
await tdr.appendInstance(proxyInstance);
}
saveConfig(process.env.MIGRATIONS_NETWORK, proxyInstance.address);
};

View File

@ -1,11 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0x1c6Cd107fB71768FBc46F8B6180Eec155C03eEb5"
},
{
"contractName": "PythUpgradable",
"address": "0x4305FB66699C3B2702D4d05CF36551390A4c69C6",
"transactionHash": "0xa5d57f2a33f7890850ffe9ce867ffb169d59c6ec2e96d1902363d1f670302892"
}
]

View File

@ -1,11 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0x1c6Cd107fB71768FBc46F8B6180Eec155C03eEb5"
},
{
"contractName": "PythUpgradable",
"address": "0xff1a0f4744e8582DF1aE09D5611b887B6a12925C",
"transactionHash": "0xfa85e9031cc6f186079eb1721376cad2f71a3bc8dffdc40b22875be38b2629f8"
}
]

View File

@ -1,16 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0xf5BBe9558F4Bf37F1eB82fb2CEdb1C775FA56832"
},
{
"contractName": "WormholeReceiver",
"address": "0x41955476936DdA8d0fA98b8d1778172F7E4fCcA1",
"transactionHash": "0xb8646928ebd93b8b989c7c5d72552648571d4a75db017759ed717cc6d9219030"
},
{
"contractName": "PythUpgradable",
"address": "0x2880aB155794e7179c9eE2e38200202908C17B43",
"transactionHash": "0x5eb9f7f8829fd6459d5a56851123886a5dacb64c62c0125af05d514b96e6c013"
}
]

View File

@ -1,16 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0x35a58BeeE77a2Ad547FcDed7e8CB1c6e19746b13"
},
{
"contractName": "WormholeReceiver",
"address": "0x87047526937246727E4869C5f76A347160e08672",
"transactionHash": "0xbc6d1cc33f3077a6b5099060beef717cc833844ddafea072041f86737380574c"
},
{
"contractName": "PythUpgradable",
"address": "0x98046Bd286715D3B0BC227Dd7a956b83D8978603",
"transactionHash": "0xeb4346bd2b13abcf532137f2191206a30d5d7eae22344322fd4f570fa33730f0"
}
]

View File

@ -1,16 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0xf5BBe9558F4Bf37F1eB82fb2CEdb1C775FA56832"
},
{
"contractName": "WormholeReceiver",
"address": "0x8250f4aF4B972684F7b336503E2D6dFeDeB1487a",
"transactionHash": "0x81c70e14de2e8d75377ebb68e4085061cc96a8928b9bca4f64c5e893c1f76494"
},
{
"contractName": "PythUpgradable",
"address": "0xA2aa501b19aff244D90cc15a4Cf739D2725B5729",
"transactionHash": "0xd1b65bcd805807114f238be5b12c145a6e5e66a9e3d396ea771716e3712285f5"
}
]

View File

@ -1,16 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0x6E3A2a644eeDCf6007d3c7d85F0094Cc1B25B2AE"
},
{
"contractName": "WormholeReceiver",
"address": "0x35a58BeeE77a2Ad547FcDed7e8CB1c6e19746b13",
"transactionHash": "0x5129ad7e84e32284aa69a907a545c23f29ea7dcdd396b0c5fd72df676085a2e8"
},
{
"contractName": "PythUpgradable",
"address": "0xe9d69CdD6Fe41e7B621B4A688C5D1a68cB5c8ADc",
"transactionHash": "0x29d679b9794471ea56c856a361b185d443ad23ff04274aca467a41aaa3c37ad8"
}
]

View File

@ -1,16 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0xe9d69CdD6Fe41e7B621B4A688C5D1a68cB5c8ADc"
},
{
"contractName": "WormholeReceiver",
"address": "0x98046Bd286715D3B0BC227Dd7a956b83D8978603",
"transactionHash": "0xa12c1634163715bf649e58ba87bec9599a1787f9c5fbdd22f30ff828822d05c3"
},
{
"contractName": "PythUpgradable",
"address": "0x8D254a21b3C86D32F7179855531CE99164721933",
"transactionHash": "0x8bbcc6cc84f444f48239896e1a18cb2550d95c1c7efbbdcd832c3f5092137bcd"
}
]

View File

@ -1,16 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0xc0a2008C6639913c0a4b07C1B6A5F4b46b3e6faF"
},
{
"contractName": "WormholeReceiver",
"address": "0x7e8fe3Cad4Bc3762D245f91E4e058Abc79F27B66",
"transactionHash": "0x5a12c09896da8b94aac4a0b1f848c3e9ec1f46d4ad44dd2ae72a01bfbef7d184"
},
{
"contractName": "PythUpgradable",
"address": "0xC5E56d6b40F3e3B5fbfa266bCd35C37426537c65",
"transactionHash": "0x9b11895cf3a4bdc6b7d4f5c9dba7dcad5199618422dac379ed9799f16849a8f6"
}
]

View File

@ -1,16 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0xf5BBe9558F4Bf37F1eB82fb2CEdb1C775FA56832"
},
{
"contractName": "WormholeReceiver",
"address": "0x8250f4aF4B972684F7b336503E2D6dFeDeB1487a",
"transactionHash": "0xb3168a99749474402d4a6763f207736fcdd7fa8b7326e6a1ae0a74b84773be57"
},
{
"contractName": "PythUpgradable",
"address": "0xA2aa501b19aff244D90cc15a4Cf739D2725B5729",
"transactionHash": "0xe5d3f6b77e5a7694929a3a2017f65b2607d5e003d1fea6d58f27cf32fa1f462f"
}
]

View File

@ -1,16 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0x98046Bd286715D3B0BC227Dd7a956b83D8978603"
},
{
"contractName": "WormholeReceiver",
"address": "0x41c9e39574F40Ad34c79f1C99B66A45eFB830d4c",
"transactionHash": "0xc6531878453796022bd14c286ba9a26208b6557f50590c0f01f042278448e348"
},
{
"contractName": "PythUpgradable",
"address": "0x26DD80569a8B23768A1d80869Ed7339e07595E85",
"transactionHash": "0x4c6106263f6a587ebda9838c61e067a2952e77d139d76f2e13e22f452d6957f8"
}
]

View File

@ -1,16 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0xe9d69CdD6Fe41e7B621B4A688C5D1a68cB5c8ADc"
},
{
"contractName": "WormholeReceiver",
"address": "0x98046Bd286715D3B0BC227Dd7a956b83D8978603",
"transactionHash": "0x48682bd84a7bcaba532a036130a04c0c9fe66c18e31207c1120eea166ed331f9"
},
{
"contractName": "PythUpgradable",
"address": "0x8D254a21b3C86D32F7179855531CE99164721933",
"transactionHash": "0xa0dab7ba877b9bbe1fa0403db6163d7e05ac912fc361bbe67b03e96fc580db50"
}
]

View File

@ -1,16 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0x98046Bd286715D3B0BC227Dd7a956b83D8978603"
},
{
"contractName": "WormholeReceiver",
"address": "0x41c9e39574F40Ad34c79f1C99B66A45eFB830d4c",
"transactionHash": "0xa93e10d18246cf152926319a7fa8957300d9a1b895c663e75691f6b46289f8a7"
},
{
"contractName": "PythUpgradable",
"address": "0xDd24F84d36BF92C65F92307595335bdFab5Bbd21",
"transactionHash": "0x4b54d32c459afe094c5eb01f0b9b19136aca13d4e7394c191c42d86c4215714a"
}
]

View File

@ -1,16 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0x5744Cbf430D99456a0A8771208b674F27f8EF0Fb"
},
{
"contractName": "WormholeReceiver",
"address": "0x8D254a21b3C86D32F7179855531CE99164721933",
"transactionHash": "0xc193ef989308a09b5e7a56289ea6a6601b27af5478eb6f97e3ec4809f58a1700"
},
{
"contractName": "PythUpgradable",
"address": "0x0708325268dF9F66270F1401206434524814508b",
"transactionHash": "0xaefb4292c87e92304c26d3c43272c2292b7abfe784983c59a62d3675b1746185"
}
]

View File

@ -1,16 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0xf5BBe9558F4Bf37F1eB82fb2CEdb1C775FA56832"
},
{
"contractName": "WormholeReceiver",
"address": "0x8250f4aF4B972684F7b336503E2D6dFeDeB1487a",
"transactionHash": "0x1aee7ccd3d3e984d0bc9bd10ec977f0f571342fa795d6ae9866221f33e6b6af6"
},
{
"contractName": "PythUpgradable",
"address": "0xA2aa501b19aff244D90cc15a4Cf739D2725B5729",
"transactionHash": "0x21037c335b04244a8798397bc3b0bc3b69f245982e19710eadb0ca42a7c6368c"
}
]

View File

@ -1,16 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0xe9d69CdD6Fe41e7B621B4A688C5D1a68cB5c8ADc"
},
{
"contractName": "WormholeReceiver",
"address": "0x98046Bd286715D3B0BC227Dd7a956b83D8978603",
"transactionHash": "0x5d41ba70dcf52111255dab5576009f74ca8dc5a1ddf5a87640163ee8dac8b8e6"
},
{
"contractName": "PythUpgradable",
"address": "0x8D254a21b3C86D32F7179855531CE99164721933",
"transactionHash": "0xb74415b1073640187084a41882ddcefe5fb3b7c8dfd1fe90aefc78c721dfb708"
}
]

View File

@ -1,11 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0xE5483Bf7fc740675B44dCd4b0f90983F8689D804"
},
{
"contractName": "PythUpgradable",
"address": "0xF89C7b475821EC3fDC2dC8099032c05c6c0c9AB9",
"transactionHash": "0x450d5c254a196cf2432f742f3b74e4a8d93b0e32794f9c8ed725d6e7d515fdef"
}
]

View File

@ -1,16 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0x8250f4aF4B972684F7b336503E2D6dFeDeB1487a"
},
{
"contractName": "WormholeReceiver",
"address": "0x2880aB155794e7179c9eE2e38200202908C17B43",
"transactionHash": "0x6f1da99d424eb99eccf4dca531ecd0fed747ebce25223a42857b12e24439a570"
},
{
"contractName": "PythUpgradable",
"address": "0x74f09cb3c7e2A01865f424FD14F6dc9A14E3e94E",
"transactionHash": "0xa2849532db5637cceac08b12ac068c7e4862234c6dcd00b92bb70c11fe462938"
}
]

View File

@ -1,11 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0x1c6Cd107fB71768FBc46F8B6180Eec155C03eEb5"
},
{
"contractName": "PythUpgradable",
"address": "0xff1a0f4744e8582DF1aE09D5611b887B6a12925C",
"transactionHash": "0xb90ac65ea4fbfa6f9f6c5a3652bd0a2f29f185283212f9510f20b8ad7a3f3be1"
}
]

View File

@ -1,16 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0x4374e5a8b9C22271E9EB878A2AA31DE97DF15DAF"
},
{
"contractName": "WormholeReceiver",
"address": "0x0402833A00e734821f74fA4bbdeD2F1759540519",
"transactionHash": "0x894de8593700b975a9064febbd6e073d8366f9bc78ccd9f4e4d68f50231daa9c"
},
{
"contractName": "PythUpgradable",
"address": "0xFf255f800044225f54Af4510332Aa3D67CC77635",
"transactionHash": "0xcc1dea8dd6cc57592ea403b13d6edb388c0772a8d55232ccec40fedc1f93b5d7"
}
]

View File

@ -1,16 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0xf5BBe9558F4Bf37F1eB82fb2CEdb1C775FA56832"
},
{
"contractName": "WormholeReceiver",
"address": "0x8250f4aF4B972684F7b336503E2D6dFeDeB1487a",
"transactionHash": "0xa93ac369876e6a9b747bc6d58efafd5c153270dec70392a0e952ec23c1eae9d6"
},
{
"contractName": "PythUpgradable",
"address": "0xA2aa501b19aff244D90cc15a4Cf739D2725B5729",
"transactionHash": "0x6b7a7d057cf1773986e2b513431b4f0a88bff8cdcc9525a555c409e5e9b82d48"
}
]

View File

@ -1,16 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0x5744Cbf430D99456a0A8771208b674F27f8EF0Fb"
},
{
"contractName": "WormholeReceiver",
"address": "0x8D254a21b3C86D32F7179855531CE99164721933",
"transactionHash": "0x47a411798d48350de0aed9af46e1f588ef4cf5ef32f0fca0900aa4bfc281afda"
},
{
"contractName": "PythUpgradable",
"address": "0x0708325268dF9F66270F1401206434524814508b",
"transactionHash": "0x9b2263cbeee8d56c43b9023c7920b1b8a358d7654a288e5d8ac8edb06b47fc36"
}
]

View File

@ -1,11 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0xe9d69CdD6Fe41e7B621B4A688C5D1a68cB5c8ADc"
},
{
"contractName": "WormholeReceiver",
"address": "0x98046Bd286715D3B0BC227Dd7a956b83D8978603",
"transactionHash": "0xebc479bfe47741111b45d28cf03fd487034d93ebe617a62048704715f6e308be"
}
]

View File

@ -1,16 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0xf5BBe9558F4Bf37F1eB82fb2CEdb1C775FA56832"
},
{
"contractName": "WormholeReceiver",
"address": "0x8250f4aF4B972684F7b336503E2D6dFeDeB1487a",
"transactionHash": "0x01a75677f015f51f9904f81b3531b460096c9c5684225e44275f1652a455e931"
},
{
"contractName": "PythUpgradable",
"address": "0xA2aa501b19aff244D90cc15a4Cf739D2725B5729",
"transactionHash": "0xec42a246ba4893f52ff07d7173cf065171d3efffb4f89c07b849a15ac93d43b5"
}
]

View File

@ -1,16 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0xf5BBe9558F4Bf37F1eB82fb2CEdb1C775FA56832"
},
{
"contractName": "WormholeReceiver",
"address": "0x8250f4aF4B972684F7b336503E2D6dFeDeB1487a",
"transactionHash": "0xe3f6afa412b17bec6aedd51aefc3a13f1d1a42e671ab69f41c89044d8c35e7a4"
},
{
"contractName": "PythUpgradable",
"address": "0xA2aa501b19aff244D90cc15a4Cf739D2725B5729",
"transactionHash": "0x5476b2316299aaccf9762bfd3f694c207b61df0a6bfb888a8ccbcb21e2e53810"
}
]

View File

@ -1,16 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0xf5BBe9558F4Bf37F1eB82fb2CEdb1C775FA56832"
},
{
"contractName": "WormholeReceiver",
"address": "0x8250f4aF4B972684F7b336503E2D6dFeDeB1487a",
"transactionHash": "0xccc60abb83d028d4a7fe5fa680d2940a7f6af9fef0b3e887b1575d2453eb3d0a"
},
{
"contractName": "PythUpgradable",
"address": "0xA2aa501b19aff244D90cc15a4Cf739D2725B5729",
"transactionHash": "0x8cc4fda0f7ab37175ebe4464c7ffe6b91747abe54c7627327df4c87011d02c0a"
}
]

View File

@ -1,16 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0xf5BBe9558F4Bf37F1eB82fb2CEdb1C775FA56832"
},
{
"contractName": "WormholeReceiver",
"address": "0x8250f4aF4B972684F7b336503E2D6dFeDeB1487a",
"transactionHash": "0xddce4e39eb328ad88883cebff7f73e3062e797d5d47c12ba4b670da969863df3"
},
{
"contractName": "PythUpgradable",
"address": "0xA2aa501b19aff244D90cc15a4Cf739D2725B5729",
"transactionHash": "0xd0075226cd6f3b7295f28572c5d2b58c3225cc5cf806ac6aaa2fd1cd70d326ec"
}
]

View File

@ -1,10 +0,0 @@
[
{
"contractName": "WormholeReceiver",
"address": "0x056f829183Ec806A78c26C98961678c24faB71af"
},
{
"contractName": "PythUpgradable",
"address": "0x8739d5024B5143278E2b15Bd9e7C26f6CEc658F1"
}
]

View File

@ -1,16 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0x87047526937246727E4869C5f76A347160e08672"
},
{
"contractName": "WormholeReceiver",
"address": "0x36825bf3Fbdf5a29E2d5148bfe7Dcf7B5639e320",
"transactionHash": "0x4d8d2c552d17816299e34a07a6ba03be79c6e903b72b2808b3e4eac9e95f7f2c"
},
{
"contractName": "PythUpgradable",
"address": "0xEbe57e8045F2F230872523bbff7374986E45C486",
"transactionHash": "0x5b125ddcfbce9256ba2fc396be3413c81901cb4cf029c10e991dbb4e3bad07e8"
}
]

View File

@ -1,16 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0x0708325268dF9F66270F1401206434524814508b"
},
{
"contractName": "WormholeReceiver",
"address": "0xD458261E832415CFd3BAE5E416FdF3230ce6F134",
"transactionHash": "0x35287fecad1b02f192c6876d0b796a8d2d29f9f202d035a0225965366d491902"
},
{
"contractName": "PythUpgradable",
"address": "0xfA25E653b44586dBbe27eE9d252192F0e4956683",
"transactionHash": "0x8a60d851502e15a54e06ae8687b6dc0f76aa5a398d71bff28fa59b5da65436f0"
}
]

View File

@ -1,16 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0xf5BBe9558F4Bf37F1eB82fb2CEdb1C775FA56832"
},
{
"contractName": "WormholeReceiver",
"address": "0x8250f4aF4B972684F7b336503E2D6dFeDeB1487a",
"transactionHash": "0x6f95cf4e82cff4ba1dbeb5f2d24dd80e1958ee2416b71c8e4ddc06892ebdc9bb"
},
{
"contractName": "PythUpgradable",
"address": "0xA2aa501b19aff244D90cc15a4Cf739D2725B5729",
"transactionHash": "0x1326c69422ada82201339b9443ffe6d6b16dc0a04865ab2e78fd528081ed2745"
}
]

View File

@ -1,16 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0x74f09cb3c7e2A01865f424FD14F6dc9A14E3e94E"
},
{
"contractName": "WormholeReceiver",
"address": "0x23f0e8FAeE7bbb405E7A7C3d60138FCfd43d7509",
"transactionHash": "0xfe4234e6a90b1e71943c632fa601d60cbf3ac3c37d78bacc07ed4c11c18ab20f"
},
{
"contractName": "PythUpgradable",
"address": "0x0708325268dF9F66270F1401206434524814508b",
"transactionHash": "0x8dac71b0f9c54fc38b757a2408e5c5fc24925a3d7b5f6319057f60e0dbbc757d"
}
]

View File

@ -1,16 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0x7a7F2493c578796ABfBA15Ce2e914A7A819979B7"
},
{
"contractName": "WormholeReceiver",
"address": "0x621330D0ECd449A06b72f41C1A93626cCEC53ccA",
"transactionHash": "0x4dc725831f247e91759fb1d09a8962f9f533c57ae468630e6848b918bf92c9a6"
},
{
"contractName": "PythUpgradable",
"address": "0x7f2dB085eFC3560AFF33865dD727225d91B4f9A5",
"transactionHash": "0x276282e22f4ea59a8eeec5223ce34b560e4e34e65b7fc503ade05878e73521ef"
}
]

View File

@ -1,16 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0x1c6Cd107fB71768FBc46F8B6180Eec155C03eEb5"
},
{
"contractName": "WormholeReceiver",
"address": "0x939C0e902FF5B3F7BA666Cc8F6aC75EE76d3f900",
"transactionHash": "0x698d0216ca776a4f773bdadfa7ad7727116bf6c218ca37829c7c40b936a51323"
},
{
"contractName": "PythUpgradable",
"address": "0xE0d0e68297772Dd5a1f1D99897c581E2082dbA5B",
"transactionHash": "0x229f14684a49c10c4184009bfcf7a324e8f7ec0211deee51899c8afdeaa37fe5"
}
]

View File

@ -1,11 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0x1c6Cd107fB71768FBc46F8B6180Eec155C03eEb5"
},
{
"contractName": "PythUpgradable",
"address": "0xff1a0f4744e8582DF1aE09D5611b887B6a12925C",
"transactionHash": "0xcdf870767c72e384c9cc70d8843e6b2eb5d412058bd3040c6a6cf3711c1297f9"
}
]

View File

@ -1,10 +0,0 @@
[
{
"contractName": "WormholeReceiver",
"address": "0x056f829183Ec806A78c26C98961678c24faB71af"
},
{
"contractName": "PythUpgradable",
"address": "0x8739d5024B5143278E2b15Bd9e7C26f6CEc658F1"
}
]

View File

@ -1,16 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0x8D254a21b3C86D32F7179855531CE99164721933"
},
{
"contractName": "WormholeReceiver",
"address": "0x26DD80569a8B23768A1d80869Ed7339e07595E85",
"transactionHash": "0x4aad7eec099d532a9f789e9aea66f618c5caffd90e020f4b932fbe1aa4e97399"
},
{
"contractName": "PythUpgradable",
"address": "0x4374e5a8b9C22271E9EB878A2AA31DE97DF15DAF",
"transactionHash": "0x474abad5df7ea8e990f84f66de2a176849b59138060db24546baf886d0b95034"
}
]

View File

@ -1,16 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0xe9d69CdD6Fe41e7B621B4A688C5D1a68cB5c8ADc"
},
{
"contractName": "WormholeReceiver",
"address": "0x98046Bd286715D3B0BC227Dd7a956b83D8978603",
"transactionHash": "0x817fa34d680300ca2e5e59f22bf0597b8ddf62e179ddb295dfe0bd7021b252bc"
},
{
"contractName": "PythUpgradable",
"address": "0x8D254a21b3C86D32F7179855531CE99164721933",
"transactionHash": "0x0aadc4b009aaa6b38ab3a8c92f374405bc0d1d3bf61e9d7ca084a6762102406a"
}
]

View File

@ -1,10 +0,0 @@
[
{
"contractName": "WormholeReceiver",
"address": "0xc10F5BE78E464BB0E1f534D66E5A6ecaB150aEFa"
},
{
"contractName": "PythUpgradable",
"address": "0x056f829183Ec806A78c26C98961678c24faB71af"
}
]

View File

@ -1,16 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0xf5BBe9558F4Bf37F1eB82fb2CEdb1C775FA56832"
},
{
"contractName": "WormholeReceiver",
"address": "0x8250f4aF4B972684F7b336503E2D6dFeDeB1487a",
"transactionHash": "0x8c7c1bbecc72d29e7a025b855a384f685efc3089078a21096dd3157a4fdb5882"
},
{
"contractName": "PythUpgradable",
"address": "0xA2aa501b19aff244D90cc15a4Cf739D2725B5729",
"transactionHash": "0x8afbfdc3e7669d76d25453bf0c8c6b8f5e1751eb9fc6d35bbd300541fd63b9d3"
}
]

View File

@ -1,16 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0xf5BBe9558F4Bf37F1eB82fb2CEdb1C775FA56832"
},
{
"contractName": "WormholeReceiver",
"address": "0x8250f4aF4B972684F7b336503E2D6dFeDeB1487a",
"transactionHash": "0xa504e9db88b136aaed24cc3fdcab56af757f1d7772ea2f7eb029ffaeb8ebb3e8"
},
{
"contractName": "PythUpgradable",
"address": "0xA2aa501b19aff244D90cc15a4Cf739D2725B5729",
"transactionHash": "0xe8d4788b95f3c6418e4300b7e671f83a0bdc2872bba0ead6daeda1ac7ac45e41"
}
]

View File

@ -1,16 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0x1c6Cd107fB71768FBc46F8B6180Eec155C03eEb5"
},
{
"contractName": "WormholeReceiver",
"address": "0x4305FB66699C3B2702D4d05CF36551390A4c69C6",
"transactionHash": "0xbac763ee666a66e61597cc4e356b731fe9caa7165d76edcb797432da47dc8454"
},
{
"contractName": "PythUpgradable",
"address": "0xE0d0e68297772Dd5a1f1D99897c581E2082dbA5B",
"transactionHash": "0xba07e137830ee2ab629e480f32f6a3e751e75fe2dd4bc2f59854820129485668"
}
]

View File

@ -1,16 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0x8250f4aF4B972684F7b336503E2D6dFeDeB1487a"
},
{
"contractName": "WormholeReceiver",
"address": "0x2880aB155794e7179c9eE2e38200202908C17B43",
"transactionHash": "0x3380ebabfb9aa1478cf1ab3366d587e7a911cbc0a96e9244f1999a8611481b45"
},
{
"contractName": "PythUpgradable",
"address": "0x74f09cb3c7e2A01865f424FD14F6dc9A14E3e94E",
"transactionHash": "0xb2dfa8ff30423867b2c49bf8b7efbbd8b92786c93272695e2736e962707cfa01"
}
]

View File

@ -1,10 +0,0 @@
[
{
"contractName": "WormholeReceiver",
"address": "0x8c1F69195793B93e8114FB1E8e11FBAB2BC8484A"
},
{
"contractName": "PythUpgradable",
"address": "0xf087c864AEccFb6A2Bf1Af6A0382B0d0f6c5D834"
}
]

View File

@ -1,16 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0xf5BBe9558F4Bf37F1eB82fb2CEdb1C775FA56832"
},
{
"contractName": "WormholeReceiver",
"address": "0x8250f4aF4B972684F7b336503E2D6dFeDeB1487a",
"transactionHash": "0x9e86ade70d9383cb16171450d6047f60d9df8061a165988abd52735e66d35126"
},
{
"contractName": "PythUpgradable",
"address": "0xA2aa501b19aff244D90cc15a4Cf739D2725B5729",
"transactionHash": "0xc5a932f9bf50032493843be32939929f6bd9ec848ff8aa52f91489d31f403145"
}
]

View File

@ -1,16 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0x8250f4aF4B972684F7b336503E2D6dFeDeB1487a"
},
{
"contractName": "WormholeReceiver",
"address": "0x74f09cb3c7e2A01865f424FD14F6dc9A14E3e94E",
"transactionHash": "0xafa1d9477bc2503be1bdc3bde6867d1d11084472232ffb26c8d21285736b6d04"
},
{
"contractName": "PythUpgradable",
"address": "0x36825bf3Fbdf5a29E2d5148bfe7Dcf7B5639e320",
"transactionHash": "0x5bb4d330cd83e7acfaf3cf2bbf7ffd78b95c4853f9fff00e903e558ffc117734"
}
]

View File

@ -1,16 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0xe9d69CdD6Fe41e7B621B4A688C5D1a68cB5c8ADc"
},
{
"contractName": "WormholeReceiver",
"address": "0x98046Bd286715D3B0BC227Dd7a956b83D8978603",
"transactionHash": "0xf1b781574f0371b45dfee549de7731b465964a0d5e26066a2f6bd6e0824cc62e"
},
{
"contractName": "PythUpgradable",
"address": "0x41c9e39574F40Ad34c79f1C99B66A45eFB830d4c",
"transactionHash": "0x85613f8f1f9c39a85c9c99eac70df97c0d79b334a0912bf509a178567b4acb79"
}
]

View File

@ -1,16 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0xf5BBe9558F4Bf37F1eB82fb2CEdb1C775FA56832"
},
{
"contractName": "WormholeReceiver",
"address": "0x8250f4aF4B972684F7b336503E2D6dFeDeB1487a",
"transactionHash": "0x6289888cfac33003026a9b494ed264dd4b1d1060fc9018a5d32dead56687c8df"
},
{
"contractName": "PythUpgradable",
"address": "0xA2aa501b19aff244D90cc15a4Cf739D2725B5729",
"transactionHash": "0x69a88f817c249d920d6ca3999163f49b18e69f162b52bedba8a9ba35b926ad08"
}
]

View File

@ -1,16 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0x41955476936DdA8d0fA98b8d1778172F7E4fCcA1"
},
{
"contractName": "WormholeReceiver",
"address": "0xe9d69CdD6Fe41e7B621B4A688C5D1a68cB5c8ADc",
"transactionHash": "0x4d6cf22cccbbba0a3af77179139d4dd5886d3eca9f191be67d713618aeeeba16"
},
{
"contractName": "PythUpgradable",
"address": "0x5744Cbf430D99456a0A8771208b674F27f8EF0Fb",
"transactionHash": "0xb38c29b87c0747cd4b0df12bbc9ca36c62420c389b89df3f757c9e24a5d2e65b"
}
]

View File

@ -1,16 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0x74f09cb3c7e2A01865f424FD14F6dc9A14E3e94E"
},
{
"contractName": "WormholeReceiver",
"address": "0x23f0e8FAeE7bbb405E7A7C3d60138FCfd43d7509",
"transactionHash": "0x9c10c5a34b70cc318810ffae04ced8ca5987f25bffb3105ce7a46ea2f7741ac0"
},
{
"contractName": "PythUpgradable",
"address": "0xEbe57e8045F2F230872523bbff7374986E45C486",
"transactionHash": "0xaea4b8fe15e7c9db22236904a59dfc8ef2329f4c5db07c17f9afedc0404e4fb4"
}
]

View File

@ -1,21 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0x74f09cb3c7e2A01865f424FD14F6dc9A14E3e94E"
},
{
"contractName": "WormholeReceiver",
"address": "0x23f0e8FAeE7bbb405E7A7C3d60138FCfd43d7509",
"transactionHash": "0x2a601d5328b24e05eea22049020388484513ce0759edce7a1226abbe7d787903"
},
{
"contractName": "WormholeReceiver",
"address": "0xEbe57e8045F2F230872523bbff7374986E45C486",
"transactionHash": "0x77819f07af5e5141344f0fbe749b3268ce20f2c54a62faa4fb7351e7be04c46a"
},
{
"contractName": "PythUpgradable",
"address": "0xDd24F84d36BF92C65F92307595335bdFab5Bbd21",
"transactionHash": "0x3a9eee905754690f65bfb9fa5bc79ff47c043f005f601522e097556510b75481"
}
]

View File

@ -1,11 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0x1c6Cd107fB71768FBc46F8B6180Eec155C03eEb5"
},
{
"contractName": "PythUpgradable",
"address": "0xff1a0f4744e8582DF1aE09D5611b887B6a12925C",
"transactionHash": "0x79273fba06b87496db4ceccd65ff2106c1807ff82ec4a53f75ba83d48f8fe3e1"
}
]

View File

@ -1,16 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0x1c6Cd107fB71768FBc46F8B6180Eec155C03eEb5"
},
{
"contractName": "PythUpgradable",
"address": "0xff1a0f4744e8582DF1aE09D5611b887B6a12925C",
"transactionHash": "0x6607a105ce4026177c4a2876df0d5965c895b4664be76733e2c791e323aafd0e"
},
{
"contractName": "PythUpgradable",
"address": "0x939C0e902FF5B3F7BA666Cc8F6aC75EE76d3f900",
"transactionHash": "0x6524ab2ded6d40c74fd5a008a84813c196325a2baca64bcb989528acef499b31"
}
]

View File

@ -1,16 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0x5f3c61944CEb01B3eAef861251Fb1E0f14b848fb"
},
{
"contractName": "WormholeReceiver",
"address": "0xfA25E653b44586dBbe27eE9d252192F0e4956683",
"transactionHash": "0x6e1c7cf58c64c698fcece663ea053883c404f6b37f26526138e7cd5decbef34d"
},
{
"contractName": "PythUpgradable",
"address": "0x4374e5a8b9C22271E9EB878A2AA31DE97DF15DAF",
"transactionHash": "0xdc8988d4ab07e42a739044378489d419918f365143d09445a249abe949b6e75b"
}
]

View File

@ -1,11 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0x1c6Cd107fB71768FBc46F8B6180Eec155C03eEb5"
},
{
"contractName": "PythUpgradable",
"address": "0xff1a0f4744e8582DF1aE09D5611b887B6a12925C",
"transactionHash": "0x8ddfe7fb844bd3b409689e1f44716e72667dacd803c3bc9fc6a36ec5d710cdf6"
}
]

View File

@ -1,16 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0xf5BBe9558F4Bf37F1eB82fb2CEdb1C775FA56832"
},
{
"contractName": "WormholeReceiver",
"address": "0x8250f4aF4B972684F7b336503E2D6dFeDeB1487a",
"transactionHash": "0x943f980bc16cce4348e4b4c0d7a3f28641d8e26c875465d8f587ff1d2aa0d06c"
},
{
"contractName": "PythUpgradable",
"address": "0xA2aa501b19aff244D90cc15a4Cf739D2725B5729",
"transactionHash": "0x8da3bbc61900bc7c53a4a3a93f45cea4a1c9e1c55d417b4b0ab8d4492cf246da"
}
]

View File

@ -1,16 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0x2880aB155794e7179c9eE2e38200202908C17B43"
},
{
"contractName": "WormholeReceiver",
"address": "0x5744Cbf430D99456a0A8771208b674F27f8EF0Fb",
"transactionHash": "0x7ba228903a38458af0fc2d460993f047b5d94718cc152a7bd01bd8167dbe9e5b"
},
{
"contractName": "PythUpgradable",
"address": "0x23f0e8FAeE7bbb405E7A7C3d60138FCfd43d7509",
"transactionHash": "0xe02ba437c33e4df4f1652c464ff354105438b983feee0a74d2ae788fdd2911a8"
}
]

View File

@ -1,11 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0x855628BA0A654D083AF01ceaC1C4361848F7cB5d"
},
{
"contractName": "PythUpgradable",
"address": "0x4305FB66699C3B2702D4d05CF36551390A4c69C6",
"transactionHash": "0xf843fe900c4d2e412830c42949d39dd52200918a20394d3661fd1b5980112c08"
}
]

View File

@ -1,16 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0xf5BBe9558F4Bf37F1eB82fb2CEdb1C775FA56832"
},
{
"contractName": "WormholeReceiver",
"address": "0x8250f4aF4B972684F7b336503E2D6dFeDeB1487a",
"transactionHash": "0xf77395968dab274c8a701b8f27fa6ca0a2ee578a5b6d8ed8953e59d2fca1d31e"
},
{
"contractName": "PythUpgradable",
"address": "0xA2aa501b19aff244D90cc15a4Cf739D2725B5729",
"transactionHash": "0x1d92bc1e80eb990fb1aef081983d7aa4b572b02911187cf8388e9f195e48ca1c"
}
]

View File

@ -1,16 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0x8250f4aF4B972684F7b336503E2D6dFeDeB1487a"
},
{
"contractName": "WormholeReceiver",
"address": "0x2880aB155794e7179c9eE2e38200202908C17B43",
"transactionHash": "0x881bc2882c438578927915f39a9765ec979c7b67ec32e4e06b28ad4efc8053da"
},
{
"contractName": "PythUpgradable",
"address": "0x74f09cb3c7e2A01865f424FD14F6dc9A14E3e94E",
"transactionHash": "0x8a0fb4a2bbffc26daebd6f3ac999ab4443bc5da198f6e60b4a4e7423ab63d0b4"
}
]

View File

@ -1,11 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0x1c6Cd107fB71768FBc46F8B6180Eec155C03eEb5"
},
{
"contractName": "PythUpgradable",
"address": "0xff1a0f4744e8582DF1aE09D5611b887B6a12925C",
"transactionHash": "0x04cfb919fca33bf75dc7626a1ede69fde0a409e9eb26f1e6dac1b7702f92d567"
}
]

View File

@ -1,16 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0xf5BBe9558F4Bf37F1eB82fb2CEdb1C775FA56832"
},
{
"contractName": "WormholeReceiver",
"address": "0x8250f4aF4B972684F7b336503E2D6dFeDeB1487a",
"transactionHash": "0x74fcf0406b6b0b2d93e81a7ebe83eba74a0560f31f675ec501184b47945f06b8"
},
{
"contractName": "PythUpgradable",
"address": "0xA2aa501b19aff244D90cc15a4Cf739D2725B5729",
"transactionHash": "0x241715a1651bee91cf82935e492de44946a47aacdbd0b9acad41ece0f3365da4"
}
]

View File

@ -1,16 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0x36825bf3Fbdf5a29E2d5148bfe7Dcf7B5639e320"
},
{
"contractName": "WormholeReceiver",
"address": "0xEbe57e8045F2F230872523bbff7374986E45C486",
"transactionHash": "0x072913deeddfa7214d9a8411bf7c427b02e2d8631933a1e495705715a39c48d8"
},
{
"contractName": "PythUpgradable",
"address": "0xDd24F84d36BF92C65F92307595335bdFab5Bbd21",
"transactionHash": "0xc55603d13811e4834255208cbdab5ad0960f4f3c10065960870c28fd9ff3c355"
}
]

View File

@ -1,16 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0x87047526937246727E4869C5f76A347160e08672"
},
{
"contractName": "WormholeReceiver",
"address": "0x36825bf3Fbdf5a29E2d5148bfe7Dcf7B5639e320",
"transactionHash": "0x6f12923b7a7049e4fa226605db5565e11792866395b7a05bda18ceb9405bd141"
},
{
"contractName": "PythUpgradable",
"address": "0x41c9e39574F40Ad34c79f1C99B66A45eFB830d4c",
"transactionHash": "0x9a3da9264864df38f3d7e63689a26bdb791975193af08c244f589fdec49998ae"
}
]

View File

@ -1,16 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0xf5BBe9558F4Bf37F1eB82fb2CEdb1C775FA56832"
},
{
"contractName": "WormholeReceiver",
"address": "0x8250f4aF4B972684F7b336503E2D6dFeDeB1487a",
"transactionHash": "0xb70fd2b743968025d5b3f530dec7f90dadd18ef5f9f205d2ad2a4af3f4995f29"
},
{
"contractName": "PythUpgradable",
"address": "0xA2aa501b19aff244D90cc15a4Cf739D2725B5729",
"transactionHash": "0xd0e750c5c3ee0e162fa5224bca905683e218a774fd91f5b3da982ffa7c89a18f"
}
]

View File

@ -1,11 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0x8D08ec3713789bB5788228A4f76eE80dE8A86a17"
},
{
"contractName": "PythUpgradable",
"address": "0x4D7E825f80bDf85e913E0DD2A2D54927e9dE1594",
"transactionHash": "0x2529280562720c28983eefbb9cb6d3d9334b2c315aaf43ff5d81e7914f097c85"
}
]

View File

@ -1,16 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0x26DD80569a8B23768A1d80869Ed7339e07595E85"
},
{
"contractName": "WormholeReceiver",
"address": "0xfA25E653b44586dBbe27eE9d252192F0e4956683",
"transactionHash": "0xe42e4e56f81ad11df6e37ba77a288a6867bda27af5d05bbc7fa56814f379a5d2"
},
{
"contractName": "PythUpgradable",
"address": "0xdF21D137Aadc95588205586636710ca2890538d5",
"transactionHash": "0xb082fd7e8c8b8272ba346631ffbedb9cf874a99cacc51256e1e0b184a43cb096"
}
]

View File

@ -1,16 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0xf5BBe9558F4Bf37F1eB82fb2CEdb1C775FA56832"
},
{
"contractName": "WormholeReceiver",
"address": "0x8250f4aF4B972684F7b336503E2D6dFeDeB1487a",
"transactionHash": "0x1abb6fa68d85acb2f23835c54e6475014173ee29aa7594d9c66a99bba9e570ad"
},
{
"contractName": "PythUpgradable",
"address": "0xA2aa501b19aff244D90cc15a4Cf739D2725B5729",
"transactionHash": "0x2d68f659f650ff9a16c66e0b6dea012f054ea4a8b33c6be53934cf6686134c49"
}
]

View File

@ -1,16 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0x5744Cbf430D99456a0A8771208b674F27f8EF0Fb"
},
{
"contractName": "WormholeReceiver",
"address": "0x8D254a21b3C86D32F7179855531CE99164721933",
"transactionHash": "0x3605b7bd2003f35b608638d8487bd0704b9ef677be21a7a68bd181ba368507a0"
},
{
"contractName": "PythUpgradable",
"address": "0x0708325268dF9F66270F1401206434524814508b",
"transactionHash": "0x5cc83266f3ff7dcaab194fb3ca0786edccd862d535f806c7c2eda3cb0f55f61b"
}
]

View File

@ -1,16 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0x36825bf3Fbdf5a29E2d5148bfe7Dcf7B5639e320"
},
{
"contractName": "WormholeReceiver",
"address": "0xEbe57e8045F2F230872523bbff7374986E45C486",
"transactionHash": "0xb6c5309267db189e05599bd6f782e8f7a2b8e3d917e6c3030e673a782720e36d"
},
{
"contractName": "PythUpgradable",
"address": "0xDd24F84d36BF92C65F92307595335bdFab5Bbd21",
"transactionHash": "0x436a6f0207c57e980b0517bc27779bed018a74ba1b815eb6a0bba4c03b4543c2"
}
]

View File

@ -1,16 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0xf5BBe9558F4Bf37F1eB82fb2CEdb1C775FA56832"
},
{
"contractName": "WormholeReceiver",
"address": "0x8250f4aF4B972684F7b336503E2D6dFeDeB1487a",
"transactionHash": "0x96eb3a836e1eba67da2193699d88e339fe3440aea3a30210a1640c587c1d4452"
},
{
"contractName": "PythUpgradable",
"address": "0xA2aa501b19aff244D90cc15a4Cf739D2725B5729",
"transactionHash": "0xf16df1060f68930ed43a0ff47d91f3f17faf39273cd0357ff02783b4fe9e1622"
}
]

View File

@ -1,16 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0x35a58BeeE77a2Ad547FcDed7e8CB1c6e19746b13"
},
{
"contractName": "WormholeReceiver",
"address": "0x87047526937246727E4869C5f76A347160e08672",
"transactionHash": "0xe5eddf3e86dbbfff23e61bfb5e4abe5371877fd0383d506e5f428ffaaf70425b"
},
{
"contractName": "PythUpgradable",
"address": "0x98046Bd286715D3B0BC227Dd7a956b83D8978603",
"transactionHash": "0x76b646e974d2017101cc65a278cf1c306c401fb85d126eede11703d18c1c86ef"
}
]

View File

@ -1,16 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0x98046Bd286715D3B0BC227Dd7a956b83D8978603"
},
{
"contractName": "WormholeReceiver",
"address": "0x41c9e39574F40Ad34c79f1C99B66A45eFB830d4c",
"transactionHash": "0xabd2f43ea8c0e4d351127a803f0c7dbbd8f89df0ecdbfa237d9d50fbca8abc1b"
},
{
"contractName": "PythUpgradable",
"address": "0x26DD80569a8B23768A1d80869Ed7339e07595E85",
"transactionHash": "0x0e2f895eaa73e933de4b683b3b9c0d3aca694c613db1f01e098358ec0d6ba891"
}
]

View File

@ -1,16 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0xCd76c50c3210C5AaA9c39D53A4f95BFd8b1a3a19"
},
{
"contractName": "WormholeReceiver",
"address": "0x876A4e56A51386aBb1a5ab5d62f77E814372f0C7",
"transactionHash": "0x0aed002802f1a18c24ca981c9aa8fff23dc088e3f0d047016b3dc4bc5b7bd910"
},
{
"contractName": "PythUpgradable",
"address": "0xFC6bd9F9f0c6481c6Af3A7Eb46b296A5B85ed379",
"transactionHash": "0x5c2ce50e010da0e38cd8def8492bf1a0a469fe6a58ea39872c3c66a0b7f08b8a"
}
]

View File

@ -1,16 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0x838D664DcEbc6f1a0D50E99d8A8f28Fa2DDFFdd9"
},
{
"contractName": "WormholeReceiver",
"address": "0xd890EF14cbA5899B0ffa97D5c83dc10c3d24baCb",
"transactionHash": "0x3913d5b1c8802a79e5ac4116678c9b83a7d139baf005b29f0151f085bce2cf5e"
},
{
"contractName": "PythUpgradable",
"address": "0xbFe3f445653f2136b2FD1e6DdDb5676392E3AF16",
"transactionHash": "0x58571799a1e93a330c804eb3bfda17e4b4aad6eac43f1338075eceef83aea29f"
}
]

View File

@ -1,16 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0x49b8d3872661602A81086F5d663934c9Ffb1FB5C"
},
{
"contractName": "WormholeReceiver",
"address": "0x257c3B61102442C1c3286Efbd24242322d002920",
"transactionHash": "0xe486c887035a7c958e4d2ab82682583f57290edf72550b09b69e367c894b5741"
},
{
"contractName": "PythUpgradable",
"address": "0x5a71C07a0588074443545eE0c08fb0375564c3E4",
"transactionHash": "0xe1efb01c6b9b79db431eaa80fda2c1e542c4edbc19b8e620143c26efc69fb57a"
}
]

View File

@ -1,11 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0x6E3A2a644eeDCf6007d3c7d85F0094Cc1B25B2AE"
},
{
"contractName": "PythUpgradable",
"address": "0x8250f4aF4B972684F7b336503E2D6dFeDeB1487a",
"transactionHash": "0x7a0c11c07c3885f1aa5f5a63048098e24ba64925ca03f8e7e22262fe8f29c248"
}
]

View File

@ -1,16 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0x74f09cb3c7e2A01865f424FD14F6dc9A14E3e94E"
},
{
"contractName": "WormholeReceiver",
"address": "0x23f0e8FAeE7bbb405E7A7C3d60138FCfd43d7509",
"transactionHash": "0xba50c9096c1d377ad9e55796f9b3ab6de443fa7cedb0bf2da18de1e6f0555fcf"
},
{
"contractName": "PythUpgradable",
"address": "0xEbe57e8045F2F230872523bbff7374986E45C486",
"transactionHash": "0x56c117bde49b045461fff0b7304425f22a476e79b11cfde617a19914ee697db0"
}
]

View File

@ -1,16 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0xf5BBe9558F4Bf37F1eB82fb2CEdb1C775FA56832"
},
{
"contractName": "WormholeReceiver",
"address": "0x8250f4aF4B972684F7b336503E2D6dFeDeB1487a",
"transactionHash": "0x713a6e34378ce7c5df18c9876f4ae37af41f9edc1267cf5f90054150920ba9d8"
},
{
"contractName": "PythUpgradable",
"address": "0xA2aa501b19aff244D90cc15a4Cf739D2725B5729",
"transactionHash": "0xf9818e35635b8f1b26557a4844c2d5a02578a0e667b28fab60d1a50a1b87c0bd"
}
]

View File

@ -1,16 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0xf5BBe9558F4Bf37F1eB82fb2CEdb1C775FA56832"
},
{
"contractName": "WormholeReceiver",
"address": "0x8250f4aF4B972684F7b336503E2D6dFeDeB1487a",
"transactionHash": "0xb6f85817783bd5127cfc462131f049b202eef30681a9a09109cbdb071e501001"
},
{
"contractName": "PythUpgradable",
"address": "0xA2aa501b19aff244D90cc15a4Cf739D2725B5729",
"transactionHash": "0x77ed4e03e897a5134dba0a81be64f851049cb837d36bda8fbe401d275d32d1b4"
}
]

View File

@ -1,16 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0xe9d69CdD6Fe41e7B621B4A688C5D1a68cB5c8ADc"
},
{
"contractName": "WormholeReceiver",
"address": "0x98046Bd286715D3B0BC227Dd7a956b83D8978603",
"transactionHash": "0x56b330316a4a0f0c8b444eb700dc072ae0428f85475154c5e080991df948e4a8"
},
{
"contractName": "PythUpgradable",
"address": "0x23f0e8FAeE7bbb405E7A7C3d60138FCfd43d7509",
"transactionHash": "0xdca738f295b40e287a726ee63ac55db42191ba21bfe3de139d0f2f51a5bd4f8f"
}
]

View File

@ -1,16 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0xf5BBe9558F4Bf37F1eB82fb2CEdb1C775FA56832"
},
{
"contractName": "WormholeReceiver",
"address": "0x8250f4aF4B972684F7b336503E2D6dFeDeB1487a",
"transactionHash": "0xa1338aa7eef3edc794e606a612aeea6c8181e14ea048518dfda67030d4e889bb"
},
{
"contractName": "PythUpgradable",
"address": "0xA2aa501b19aff244D90cc15a4Cf739D2725B5729",
"transactionHash": "0x756e855da4efffacd9f42ba1bb779c9165d33f3ad8c4ff86baaa158f883bfead"
}
]

View File

@ -1,16 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0x41c9e39574F40Ad34c79f1C99B66A45eFB830d4c"
},
{
"contractName": "WormholeReceiver",
"address": "0xDd24F84d36BF92C65F92307595335bdFab5Bbd21",
"transactionHash": "0x7293fac6bc998243ee9c7e8154d8dd94627f4747a8f6dbb08d905f1b5aeb1247"
},
{
"contractName": "PythUpgradable",
"address": "0x5D289Ad1CE59fCC25b6892e7A303dfFf3a9f7167",
"transactionHash": "0xe4f40d2c58ba7d248bf56dffc982fe3791c1c3f1396b9189c66957a24dc9c97e"
}
]

View File

@ -1,16 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0x8250f4aF4B972684F7b336503E2D6dFeDeB1487a"
},
{
"contractName": "WormholeReceiver",
"address": "0x2880aB155794e7179c9eE2e38200202908C17B43",
"transactionHash": "0x668110a253820aeb61b4becbdf423f80e91b4b3b72c81fa1bb985d0bf467c1a7"
},
{
"contractName": "PythUpgradable",
"address": "0x74f09cb3c7e2A01865f424FD14F6dc9A14E3e94E",
"transactionHash": "0x5550d5d071da46d6e3b08eeec33cf04e7121b68c1d86bc653c0558e582884169"
}
]

View File

@ -1,16 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0x5e92a04Cb8591cb7d9FD40B77B474cde0fE44D36"
},
{
"contractName": "WormholeReceiver",
"address": "0xfD4EC459371580925319059306388D9753f72405",
"transactionHash": "0xa85f92549c2bc0d20f7452e32473435c3ff80967377c7be6987923f56e92325e"
},
{
"contractName": "PythUpgradable",
"address": "0x354bF866A4B006C9AF9d9e06d9364217A8616E12",
"transactionHash": "0x150a048d508050fe6ff19a01a1ec97621995ccc477d4042def73de138ed92894"
}
]

View File

@ -1,16 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0xf5BBe9558F4Bf37F1eB82fb2CEdb1C775FA56832"
},
{
"contractName": "WormholeReceiver",
"address": "0x8250f4aF4B972684F7b336503E2D6dFeDeB1487a",
"transactionHash": "0x180a12973aab9ffe8efbe7b922c01d77385961517807a1efa3594880f3c1d483"
},
{
"contractName": "PythUpgradable",
"address": "0xA2aa501b19aff244D90cc15a4Cf739D2725B5729",
"transactionHash": "0xcfe6058dd1d1d10b06e20efd553d6cb3dcf239a0bf70b512e31c0937caf718b6"
}
]

View File

@ -1,16 +0,0 @@
[
{
"contractName": "Migrations",
"address": "0x41955476936DdA8d0fA98b8d1778172F7E4fCcA1"
},
{
"contractName": "WormholeReceiver",
"address": "0xe9d69CdD6Fe41e7B621B4A688C5D1a68cB5c8ADc",
"transactionHash": "0x9da1611466ed1b67d12aacfe9779cd9ed554399d62845b8d24abadf1ed624967"
},
{
"contractName": "PythUpgradable",
"address": "0x5744Cbf430D99456a0A8771208b674F27f8EF0Fb",
"transactionHash": "0x5051ed4fb3de92e45523567c4f9081d6681d0d03db09186d8e03866a6ed5d193"
}
]

Some files were not shown because too many files have changed in this diff Show More