Add helper methods to parse gas, fees and gasPrice #29
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@cerc-io/registry-sdk",
|
||||
"version": "0.2.10",
|
||||
"version": "0.2.11",
|
||||
"main": "dist/index.js",
|
||||
"types": "dist/index.d.ts",
|
||||
"repository": "git@github.com:cerc-io/registry-sdk.git",
|
||||
|
@ -588,3 +588,4 @@ export { LaconicClient };
|
||||
export * from './constants';
|
||||
export * from './types/cerc/bond/message';
|
||||
export * from './types/cerc/onboarding/message';
|
||||
export { getGasPrice, parseGasAndFees } from './util';
|
||||
|
32
src/util.ts
32
src/util.ts
@ -1,6 +1,8 @@
|
||||
import * as Block from 'multiformats/block';
|
||||
import { sha256 as hasher } from 'multiformats/hashes/sha2';
|
||||
import assert from 'assert';
|
||||
|
||||
import { GasPrice, StdFee, parseCoins } from '@cosmjs/stargate';
|
||||
import * as dagCBOR from '@ipld/dag-cbor';
|
||||
import * as dagJSON from '@ipld/dag-json';
|
||||
|
||||
@ -119,3 +121,33 @@ export class Util {
|
||||
return block.cid.toString();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get gas in proper format
|
||||
*/
|
||||
export const parseGasAndFees = (gas?: string, fees?: string): StdFee | undefined | number => {
|
||||
// If fees is not given or a number, treat it as a gas estimation multiplier
|
||||
if (fees === null || fees === undefined) {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
const isFeesANumber = !isNaN(Number(fees));
|
||||
if (isFeesANumber) {
|
||||
return Number(fees);
|
||||
}
|
||||
|
||||
// If fees is not a gas estimation multiplier, gas is required
|
||||
assert(gas, 'Invalid gas.');
|
||||
|
||||
return {
|
||||
amount: parseCoins(String(fees)),
|
||||
gas: String(gas)
|
||||
};
|
||||
};
|
||||
|
||||
/**
|
||||
* Get gas price in proper format
|
||||
*/
|
||||
export const getGasPrice = (gasPrice: string | null): GasPrice | undefined => {
|
||||
return gasPrice != null ? GasPrice.fromString(String(gasPrice)) : undefined;
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user