UNPKG

@celo-tools/celo-ethers-wrapper

Version:

A minimal wrapper to make Ethers.JS compatible with the Celo network.

49 lines (48 loc) 3.86 kB
import { hexlify, isBytesLike, toBeHex } from "ethers"; import { GAS_INFLATION_FACTOR } from "../../consts"; export function isEmpty(value) { if (value === undefined || value === null || value === "0" || value === 0n) { return true; } if (isBytesLike(value)) { return hexlify(value) === "0x0"; } return toBeHex(value) === "0x0"; } export function isPresent(value) { return !isEmpty(value); } export function isCIP64(tx) { return (isPresent(tx.feeCurrency) && isEmpty(tx.maxFeeInFeeCurrency)); } export function isCIP66(tx) { return (isPresent(tx.feeCurrency) && isPresent(tx.maxFeeInFeeCurrency)); } export function concatHex(values) { return `0x${values.reduce((acc, x) => acc + x.replace("0x", ""), "")}`; } export function omit(object, ...keys) { return Object.keys(object) .filter((key) => !keys.includes(key)) .reduce((acc, key) => { acc[key] = object[key]; return acc; }, {}); } export function adjustForGasInflation(gas) { // NOTE: prevent floating point math return (gas * GAS_INFLATION_FACTOR) / 100n; } /** * * @param param0 @ConversionParams * ratioTOKEN will come from the first position (or numerator) of tuple returned from SortedOracles.medianRate * ratioCELO will come from the second position (or denominator) of tuple returned from SortedOracles.medianRate * @returns amount in token equal in value to the amountInCelo given. */ export function convertFromCeloToToken({ amountInCelo, ratioCELO, ratioTOKEN, }) { return (amountInCelo * ratioCELO) / ratioTOKEN; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3RyYW5zYWN0aW9uL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQWdCLFdBQVcsRUFBRSxPQUFPLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDckUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBT3BELE1BQU0sVUFBVSxPQUFPLENBQUMsS0FBK0M7SUFDckUsSUFBSSxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLEdBQUcsSUFBSSxLQUFLLEtBQUssRUFBRSxFQUFFO1FBQzFFLE9BQU8sSUFBSSxDQUFDO0tBQ2I7SUFDRCxJQUFJLFdBQVcsQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUN0QixPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxLQUFLLENBQUM7S0FDakM7SUFDRCxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxLQUFLLENBQUM7QUFDbEMsQ0FBQztBQUVELE1BQU0sVUFBVSxTQUFTLENBQUMsS0FBK0M7SUFDdkUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUN6QixDQUFDO0FBRUQsTUFBTSxVQUFVLE9BQU8sQ0FBQyxFQUFtQjtJQUN6QyxPQUFPLENBQ0wsU0FBUyxDQUFFLEVBQTJCLENBQUMsV0FBVyxDQUFDO1FBQ25ELE9BQU8sQ0FBRSxFQUEyQixDQUFDLG1CQUFtQixDQUFDLENBQzFELENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLE9BQU8sQ0FBQyxFQUFtQjtJQUN6QyxPQUFPLENBQ0wsU0FBUyxDQUFFLEVBQTJCLENBQUMsV0FBVyxDQUFDO1FBQ25ELFNBQVMsQ0FBRSxFQUEyQixDQUFDLG1CQUFtQixDQUFDLENBQzVELENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLFNBQVMsQ0FBQyxNQUFnQjtJQUN4QyxPQUFPLEtBQUssTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDO0FBQ3pFLENBQUM7QUFFRCxNQUFNLFVBQVUsSUFBSSxDQUNsQixNQUFTLEVBQ1QsR0FBRyxJQUFPO0lBSVYsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztTQUN2QixNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFjLENBQUMsQ0FBQztTQUMvQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUU7UUFDbkIsR0FBRyxDQUFDLEdBQWMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxHQUFjLENBQUMsQ0FBQztRQUM3QyxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUMsRUFBRSxFQUFPLENBQUMsQ0FBQztBQUNoQixDQUFDO0FBRUQsTUFBTSxVQUFVLHFCQUFxQixDQUFDLEdBQVc7SUFDL0Msb0NBQW9DO0lBQ3BDLE9BQU8sQ0FBQyxHQUFHLEdBQUcsb0JBQW9CLENBQUMsR0FBRyxJQUFJLENBQUM7QUFDN0MsQ0FBQztBQU9EOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLFVBQVUsc0JBQXNCLENBQUMsRUFDckMsWUFBWSxFQUNaLFNBQVMsRUFDVCxVQUFVLEdBQ087SUFDakIsT0FBTyxDQUFDLFlBQVksR0FBRyxTQUFTLENBQUMsR0FBRyxVQUFVLENBQUM7QUFDakQsQ0FBQyJ9