@axelar-network/axelar-cgp-sui
Version:
Axelar Sui Move contracts
78 lines • 3.38 kB
JavaScript
;
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