@axelar-network/axelar-cgp-sui
Version:
Axelar Sui Move contracts
67 lines • 2.88 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());
});
};
import { getFullnodeUrl } from '@mysten/sui/client';
import { getFaucetHost, requestSuiFromFaucetV0 } from '@mysten/sui/faucet';
import { arrayify, keccak256 } from 'ethers/lib/utils';
import secp256k1 from 'secp256k1';
import { STD_PACKAGE_ID } from './types';
export 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 requestSuiFromFaucetV0({
host: getFaucetHost(network),
recipient: address,
});
}));
return Promise.all(promises);
});
export 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: getFullnodeUrl(arg) };
default:
return JSON.parse(arg);
}
}
export function hashMessage(data, commandType) {
const toHash = new Uint8Array(data.length + 1);
toHash[0] = commandType;
toHash.set(data, 1);
return keccak256(toHash);
}
export function signMessage(privKeys, messageToSign) {
const signatures = [];
for (const privKey of privKeys) {
const { signature, recid } = secp256k1.ecdsaSign(arrayify(keccak256(messageToSign)), arrayify(privKey));
signatures.push(new Uint8Array([...signature, recid]));
}
return signatures;
}
export 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 === STD_PACKAGE_ID && asAny.module === 'ascii' && asAny.name === 'String';
const isStringString = asAny.address === STD_PACKAGE_ID && asAny.module === 'string' && asAny.name === 'String';
return isAsciiString || isStringString;
}
//# sourceMappingURL=utils.js.map