UNPKG

myria-core-sdk

Version:

Latest version SDK

88 lines 6.94 kB
import BN from 'bn.js'; export var OUTCOMES; (function (OUTCOMES) { OUTCOMES[OUTCOMES["INITIAL"] = 0] = "INITIAL"; OUTCOMES[OUTCOMES["RESOLVED"] = 1] = "RESOLVED"; OUTCOMES[OUTCOMES["REJECTED"] = 2] = "REJECTED"; })(OUTCOMES || (OUTCOMES = {})); export async function sendGaslessTransaction(contractCall) { let hashOutcome = OUTCOMES.INITIAL; /* eslint-disable @typescript-eslint/no-floating-promises */ const transactionHash = await new Promise((resolve, reject) => { contractCall.on('error', (error) => { // has not reached a transactionHash or error yet if (hashOutcome === OUTCOMES.INITIAL) { hashOutcome = OUTCOMES.REJECTED; reject(error); contractCall.off(); } }); contractCall.on('transactionHash', (txHash) => { // has not reached a transactionHash or error yet if (hashOutcome === OUTCOMES.INITIAL) { hashOutcome = OUTCOMES.RESOLVED; resolve(txHash); contractCall.off(); } }); }); /* eslint-disable @typescript-eslint/no-floating-promises */ return normalizeResponse({ transactionHash }); } export function hexToBytes(hex) { if (typeof hex !== 'string') { throw new TypeError('hexToBytes: expected string, got ' + typeof hex); } if (hex.length % 2) throw new Error('hexToBytes: received invalid unpadded hex'); const array = new Uint8Array(hex.length / 2); for (let i = 0; i < array.length; i++) { const j = i * 2; const hexByte = hex.slice(j, j + 2); const byte = Number.parseInt(hexByte, 16); if (Number.isNaN(byte)) throw new Error('Invalid byte sequence'); array[i] = byte; } return array; } export function stripHexPrefix(hex) { const HEX_RE = /^[0-9a-fA-F]+$/; const hexNoPrefix = hex.replace(/^0x/, ''); if (!hexNoPrefix.match(HEX_RE)) { throw new Error('stripHexPrefix: Input is not a hex string'); } return hexNoPrefix; } export function normalizeResponse(txResult) { const txHash = txResult.transactionHash; if (txHash === false) return; if (txHash) { const { transactionHash: internalHash, nonce: internalNonce, message: internalMessage } = txHash; if (internalHash) { txResult.transactionHash = internalHash; } if (internalNonce) { txResult.nonce = internalNonce; } if (internalMessage) { txResult.message = internalMessage; } } return txResult; } export function normalizeHex32(hex) { const paddedHex = stripHexPrefix(hex).toLowerCase().padStart(64, '0'); if (paddedHex.length !== 64) { throw new Error('normalizeHex32: Input does not fit in 32 bytes'); } return paddedHex; } export function bnTohex32(bn) { return normalizeHex32(bn.toString(16)); } export function hexToBn(hex) { return new BN(stripHexPrefix(hex), 16); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb3JlL2hlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBTXZCLE1BQU0sQ0FBTixJQUFZLFFBSVg7QUFKRCxXQUFZLFFBQVE7SUFDbEIsNkNBQVcsQ0FBQTtJQUNYLCtDQUFZLENBQUE7SUFDWiwrQ0FBWSxDQUFBO0FBQ2QsQ0FBQyxFQUpXLFFBQVEsS0FBUixRQUFRLFFBSW5CO0FBRUQsTUFBTSxDQUFDLEtBQUssVUFBVSxzQkFBc0IsQ0FBQyxZQUFrQztJQUM3RSxJQUFJLFdBQVcsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDO0lBRW5DLDREQUE0RDtJQUM1RCxNQUFNLGVBQWUsR0FBRyxNQUFNLElBQUksT0FBTyxDQUN2QyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtRQUNsQixZQUFZLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQVksRUFBUSxFQUFFO1lBQzlDLGlEQUFpRDtZQUNqRCxJQUFJLFdBQVcsS0FBSyxRQUFRLENBQUMsT0FBTyxFQUFFO2dCQUNwQyxXQUFXLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQztnQkFDaEMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNiLFlBQW9CLENBQUMsR0FBRyxFQUFFLENBQUM7YUFDN0I7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILFlBQVksQ0FBQyxFQUFFLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxNQUFjLEVBQVEsRUFBRTtZQUMxRCxpREFBaUQ7WUFDakQsSUFBSSxXQUFXLEtBQUssUUFBUSxDQUFDLE9BQU8sRUFBRTtnQkFDcEMsV0FBVyxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUM7Z0JBQ2hDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDZixZQUFvQixDQUFDLEdBQUcsRUFBRSxDQUFDO2FBQzdCO1FB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