UNPKG

@ericnordelo/cross-chain-bridge-helpers

Version:

This package is intented to be used alongside the Openzeppelin cross-chain libraries, to create the corresponding required bridge config for multiple bridges.

52 lines 2.33 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.L2Bridge = void 0; const ethers_1 = require("ethers"); const constants_1 = require("../../constants"); class L2Bridge { constructor(bridge) { this.bridge = bridge; // bridge Id is the firts 4 bytes of the keccak256 of the bridge (without the testnet) this.bridgeId = ethers_1.utils.id(this._formatBridgeForId(bridge)).slice(0, 10); } loadProviders(providers) { return __awaiter(this, void 0, void 0, function* () { this.l1Provider = providers.l1Provider; this.l2Provider = providers.l2Provider; // check the chain Id to avoid using the wrong providers const l1Network = yield this.l1Provider.getNetwork(); const l2Network = yield this.l2Provider.getNetwork(); this._checkNetworks(l1Network, l2Network); }); } _checkNetworks(l1Network, l2Network) { if (l1Network.chainId != constants_1.bridges[this.bridge].l1ChainId) { console.log('Error: Invalid l1 provider chain Id'); process.exit(0); } if (l2Network.chainId != constants_1.bridges[this.bridge].l2ChainId) { console.log('Error: Invalid l2 provider chain Id'); process.exit(0); } } _formatBridgeForId(bridge) { if (bridge.endsWith('-Rinkeby')) { return bridge.slice(0, -8); } else if (bridge.endsWith('-Kovan')) { return bridge.slice(0, -6); } return bridge; } } exports.L2Bridge = L2Bridge; //# sourceMappingURL=L2Bridge.js.map