Эх сурвалжийг харах

Add prod deployment migrations

Tom Pointon 3 жил өмнө
parent
commit
f3a4fb4360

+ 13 - 0
ethereum/migrations/prod/1_initial_migration.js

@@ -0,0 +1,13 @@
+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();
+  console.log("Migrations instance: " + migrationsInstance);
+
+  if (!tdr.isDryRunNetworkName(network)) {
+      await tdr.appendInstance(migrationsInstance);
+  }
+};

+ 35 - 0
ethereum/migrations/prod/2_deploy_pyth.js

@@ -0,0 +1,35 @@
+require('dotenv').config({ path: "../.env" });
+const bs58 = require("bs58");
+
+const PythUpgradable = artifacts.require("PythUpgradable");
+
+const wormholeBridgeAddress = process.env.WORMHOME_BRIDGE_ADDRESS;
+const pyth2WormholeChainId = process.env.PYTH_TO_WORMHOLE_CHAIN_ID;
+const pyth2WormholeEmitter = process.env.PYTH_TO_WORMHOLE_EMITTER;
+
+const { deployProxy } = require("@openzeppelin/truffle-upgrades");
+const tdr = require('truffle-deploy-registry');
+
+console.log("Wormhole bridge address: " + wormholeBridgeAddress)
+console.log("pyth2WormholeEmitter: " + pyth2WormholeEmitter)
+console.log("pyth2WormholeChainId: " + pyth2WormholeChainId)
+
+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(PythUpgra§dable,
+        [
+            wormholeBridgeAddress,
+            pyth2WormholeChainId,
+            pyth2WormholeEmitter.toString()
+        ],
+        { 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);
+    }
+};

+ 20 - 0
ethereum/package-lock.json

@@ -29780,6 +29780,26 @@
         }
       }
     },
+    "truffle-deploy-registry": {
+      "version": "0.5.1",
+      "resolved": "https://registry.npmjs.org/truffle-deploy-registry/-/truffle-deploy-registry-0.5.1.tgz",
+      "integrity": "sha512-ZvyRpn67J67cWTfN5Z+sIryOirzxOuvpS7WO1WJYx3V1GcJR0gWWEM38KTBoPQ5L98/n7XxWC8+TtkOypKEp6A==",
+      "dev": true,
+      "requires": {
+        "chalk": "^2.4.2",
+        "commander": "^2.19.0",
+        "mkdirp": "^0.5.1",
+        "rimraf": "^2.6.3"
+      },
+      "dependencies": {
+        "commander": {
+          "version": "2.20.3",
+          "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
+          "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
+          "dev": true
+        }
+      }
+    },
     "truffle-error": {
       "version": "0.0.5",
       "resolved": "https://registry.npmjs.org/truffle-error/-/truffle-error-0.0.5.tgz",

+ 1 - 0
ethereum/package.json

@@ -15,6 +15,7 @@
     "mocha": "^8.2.1",
     "truffle": "^5.5.5",
     "truffle-assertions": "^0.9.2",
+    "truffle-deploy-registry": "^0.5.1",
     "truffle-plugin-verify": "^0.5.11"
   },
   "scripts": {