Add helper methods to parse gas, fees and gasPrice (#29)
Part of [Service provider auctions for web deployments](https://www.notion.so/Service-provider-auctions-for-web-deployments-104a6b22d47280dbad51d28aa3a91d75) Co-authored-by: IshaVenikar <ishavenikar7@gmail.com> Reviewed-on: #29 Co-authored-by: Prathamesh Musale <prathamesh@noreply.git.vdb.to> Co-committed-by: Prathamesh Musale <prathamesh@noreply.git.vdb.to>
This commit is contained in:
parent
1147b83f8c
commit
9152d09c66
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@cerc-io/registry-sdk",
|
"name": "@cerc-io/registry-sdk",
|
||||||
"version": "0.2.10",
|
"version": "0.2.11",
|
||||||
"main": "dist/index.js",
|
"main": "dist/index.js",
|
||||||
"types": "dist/index.d.ts",
|
"types": "dist/index.d.ts",
|
||||||
"repository": "git@github.com:cerc-io/registry-sdk.git",
|
"repository": "git@github.com:cerc-io/registry-sdk.git",
|
||||||
|
@ -588,3 +588,4 @@ export { LaconicClient };
|
|||||||
export * from './constants';
|
export * from './constants';
|
||||||
export * from './types/cerc/bond/message';
|
export * from './types/cerc/bond/message';
|
||||||
export * from './types/cerc/onboarding/message';
|
export * from './types/cerc/onboarding/message';
|
||||||
|
export { getGasPrice, parseGasAndFees } from './util';
|
||||||
|
36
src/util.ts
36
src/util.ts
@ -1,6 +1,8 @@
|
|||||||
import * as Block from 'multiformats/block';
|
import * as Block from 'multiformats/block';
|
||||||
import { sha256 as hasher } from 'multiformats/hashes/sha2';
|
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 dagCBOR from '@ipld/dag-cbor';
|
||||||
import * as dagJSON from '@ipld/dag-json';
|
import * as dagJSON from '@ipld/dag-json';
|
||||||
|
|
||||||
@ -22,7 +24,7 @@ export class Util {
|
|||||||
|
|
||||||
let keys = Object.keys(obj);
|
let keys = Object.keys(obj);
|
||||||
keys = keys.sort();
|
keys = keys.sort();
|
||||||
const newObject: {[key: string]: any} = {};
|
const newObject: { [key: string]: any } = {};
|
||||||
|
|
||||||
for (let i = 0; i < keys.length; i++) {
|
for (let i = 0; i < keys.length; i++) {
|
||||||
newObject[keys[i]] = Util.sortJSON(obj[keys[i]]);
|
newObject[keys[i]] = Util.sortJSON(obj[keys[i]]);
|
||||||
@ -77,7 +79,7 @@ export class Util {
|
|||||||
* Unmarshal attributes array to object.
|
* Unmarshal attributes array to object.
|
||||||
*/
|
*/
|
||||||
static fromGQLAttributes (attributes: any[] = []) {
|
static fromGQLAttributes (attributes: any[] = []) {
|
||||||
const res: {[key: string]: any} = {};
|
const res: { [key: string]: any } = {};
|
||||||
|
|
||||||
attributes.forEach(attr => {
|
attributes.forEach(attr => {
|
||||||
res[attr.key] = (attr.value === null) ? null : this.fromGQLValue(attr.value);
|
res[attr.key] = (attr.value === null) ? null : this.fromGQLValue(attr.value);
|
||||||
@ -119,3 +121,33 @@ export class Util {
|
|||||||
return block.cid.toString();
|
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