UNPKG

@axelar-network/axelar-cgp-sui

Version:
78 lines 3.38 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()); }); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.fundAccountsFromFaucet = void 0; exports.parseEnv = parseEnv; exports.hashMessage = hashMessage; exports.signMessage = signMessage; exports.isString = isString; const client_1 = require("@mysten/sui/client"); const faucet_1 = require("@mysten/sui/faucet"); const utils_1 = require("ethers/lib/utils"); const secp256k1_1 = __importDefault(require("secp256k1")); const types_1 = require("./types"); const fundAccountsFromFaucet = (addresses) => __awaiter(void 0, void 0, void 0, function* () { const promises = addresses.map((address) => __awaiter(void 0, void 0, void 0, function* () { const network = process.env.NETWORK || 'localnet'; return (0, faucet_1.requestSuiFromFaucetV0)({ host: (0, faucet_1.getFaucetHost)(network), recipient: address, }); })); return Promise.all(promises); }); exports.fundAccountsFromFaucet = fundAccountsFromFaucet; function parseEnv(arg) { switch (arg === null || arg === void 0 ? void 0 : arg.toLowerCase()) { case 'localnet': case 'devnet': case 'testnet': case 'mainnet': return { alias: arg, url: (0, client_1.getFullnodeUrl)(arg) }; default: return JSON.parse(arg); } } function hashMessage(data, commandType) { const toHash = new Uint8Array(data.length + 1); toHash[0] = commandType; toHash.set(data, 1); return (0, utils_1.keccak256)(toHash); } function signMessage(privKeys, messageToSign) { const signatures = []; for (const privKey of privKeys) { const { signature, recid } = secp256k1_1.default.ecdsaSign((0, utils_1.arrayify)((0, utils_1.keccak256)(messageToSign)), (0, utils_1.arrayify)(privKey)); signatures.push(new Uint8Array([...signature, recid])); } return signatures; } function isString(parameter) { // eslint-disable-next-line @typescript-eslint/no-explicit-any let asAny = parameter; if (asAny.MutableReference) { parameter = asAny.MutableReference; } if (asAny.Reference) { asAny = asAny.Reference; } asAny = asAny.Struct; if (!asAny) { return false; } const isAsciiString = asAny.address === types_1.STD_PACKAGE_ID && asAny.module === 'ascii' && asAny.name === 'String'; const isStringString = asAny.address === types_1.STD_PACKAGE_ID && asAny.module === 'string' && asAny.name === 'String'; return isAsciiString || isStringString; } //# sourceMappingURL=utils.js.map