@edgeandnode/common
Advanced tools
Comparing version 4.10.0 to 4.10.1
export declare const SECONDS_IN_DAY: number; |
declare const _default: string[]; | ||
export default _default; |
export declare const ETHEREUM_BLOCK_TIME = 13.2; |
import { BigNumber } from 'ethers'; | ||
export declare const TenTrillion: BigNumber; | ||
export declare const GRTBufferedMaxUint256: BigNumber; |
@@ -0,0 +0,0 @@ export * from './ethereum'; |
@@ -0,0 +0,0 @@ export declare const NETWORKS: { |
export * from './utils'; | ||
export * from './models'; | ||
export * from './constants'; |
@@ -1,2 +0,2 @@ | ||
import gql from 'graphql-tag'; | ||
import { gql } from 'graphql-tag'; | ||
import { parse, print } from 'graphql'; | ||
@@ -11,2 +11,64 @@ import pluralize from 'pluralize'; | ||
// These utils are functions to convert the rust Inflector lib into typescript. | ||
const INJECTABLE_CHAR = ' '; | ||
function charIsSeparator(char) { | ||
return /([_-\s])/g.test(char); | ||
} | ||
function charIsAlphaNumeric(char) { | ||
return /([a-zA-Z0-9])/g.test(char); | ||
} | ||
function charIsNotAlphaNumeric(char) { | ||
return !charIsAlphaNumeric(char); | ||
} | ||
function charIsNumeric(char) { | ||
return /(\d)/g.test(char); | ||
} | ||
function charIsLowercase(char) { | ||
return /([a-z])/g.test(char); | ||
} | ||
function charIsUppercase(char) { | ||
return /([A-Z])/g.test(char); | ||
} | ||
function lastCharIsLowercaseCurrCharIsUppercaseOrNewWord(last, curr, newWord) { | ||
return newWord || (charIsLowercase(last) && charIsUppercase(curr) && last !== INJECTABLE_CHAR); | ||
} | ||
/** | ||
* @see https://github.com/whatisinternet/Inflector/blob/master/src/cases/case/mod.rs | ||
* @param str the string to camel case | ||
* @returns camel-cased string matching the rust Inflection crate logic | ||
*/ | ||
function toCamelCase(str) { | ||
let newWord = false; | ||
let foundRealChar = false; | ||
let lastChar = ' '; | ||
let result = ''; | ||
for (const char of str.trimRight()) { | ||
if (charIsSeparator(char) && foundRealChar) { | ||
newWord = true; | ||
} | ||
else if (!foundRealChar && charIsNotAlphaNumeric(char)) { | ||
continue; | ||
} | ||
else if (charIsNumeric(char)) { | ||
foundRealChar = true; | ||
newWord = true; | ||
result = `${result}${char}`; | ||
} | ||
else if (lastCharIsLowercaseCurrCharIsUppercaseOrNewWord(lastChar, char, newWord)) { | ||
foundRealChar = true; | ||
newWord = false; | ||
result = `${result}${char.toUpperCase()}`; | ||
} | ||
else { | ||
foundRealChar = true; | ||
lastChar = char; | ||
result = `${result}${char.toLowerCase()}`; | ||
} | ||
} | ||
return result; | ||
} | ||
function toPlural(str) { | ||
return pluralize.plural(str); | ||
} | ||
// Example query for a subgraph, generated from its schema | ||
@@ -37,7 +99,7 @@ const pickExampleTypes = (definitions) => { | ||
// Generate collection query field | ||
let rootField = pluralize.plural(typeDef.name.value); | ||
let rootField = toPlural(typeDef.name.value); | ||
if (rootField === typeDef.name.value) { | ||
return null; | ||
} | ||
rootField = rootField.charAt(0).toLowerCase() + rootField.slice(1); | ||
rootField = toCamelCase(rootField); | ||
return `${rootField}(first: 5) { ${fieldQueries.join(' ')} }`; | ||
@@ -980,3 +1042,3 @@ }; | ||
export { AllocationStatus, DisputeStatus, DisputeType, ETHEREUM_BLOCK_TIME, EventType, GRTBufferedMaxUint256, MAX_WEIGHT, NETWORKS, NetworkEnum, PPM, Revocability, SECONDS_IN_DAY, SIGNAL_PER_MINIMUM_DEPOSIT, SubgraphIndexHealth, TenTrillion, TransactionType, ZERO, addrShortener, appendEth, appendQueryParam, bigNumberify, blocksToDays, buildEnsDataLoader, buildEventInterfaceList, buildSubgraphId, checkAllowance, connectProvider, convertSubgraphId, convertSubgraphIdtoBase58, dateFromNow, dateStringFromNow, dateUntilNow, decToBigNumber, delegatorCooldownToDays, ensLookup, ensLookups, ensNameBuilder, formatDayHourMin, formatDays, formatDuration, formatHourMin, formatNameHash, formatUnits, formatUnitsToNumber, formatWithNumeral, generateExampleQuery, generateExampleQueryForField, generateExampleQueryForFieldWithNamedType, generateExampleQueryForFieldWithType, generateExampleQueryForType, getContract, getDate, getERC20Balance, getEventInterface, getEventTypeFromTypename, getGnosisTxLink, getNetworkId, getNetworkName, getTxLink, increaseGas, isV1SubgraphId, nSignalToTokens, nSignalToVSignal, overrides, pickExampleFields, pickExampleTypes, purchaseTargetAmount, saleTargetAmount, signalToTokens, toGRT, toWei, tokensToNSignal, tokensToSignal, unixDateFromNow, vSignalToNSignal }; | ||
export { AllocationStatus, DisputeStatus, DisputeType, ETHEREUM_BLOCK_TIME, EventType, GRTBufferedMaxUint256, MAX_WEIGHT, NETWORKS, NetworkEnum, PPM, Revocability, SECONDS_IN_DAY, SIGNAL_PER_MINIMUM_DEPOSIT, SubgraphIndexHealth, TenTrillion, TransactionType, ZERO, addrShortener, appendEth, appendQueryParam, bigNumberify, blocksToDays, buildEnsDataLoader, buildEventInterfaceList, buildSubgraphId, checkAllowance, connectProvider, convertSubgraphId, convertSubgraphIdtoBase58, dateFromNow, dateStringFromNow, dateUntilNow, decToBigNumber, delegatorCooldownToDays, ensLookup, ensLookups, ensNameBuilder, formatDayHourMin, formatDays, formatDuration, formatHourMin, formatNameHash, formatUnits, formatUnitsToNumber, formatWithNumeral, generateExampleQuery, generateExampleQueryForField, generateExampleQueryForFieldWithNamedType, generateExampleQueryForFieldWithType, generateExampleQueryForType, getContract, getDate, getERC20Balance, getEventInterface, getEventTypeFromTypename, getGnosisTxLink, getNetworkId, getNetworkName, getTxLink, increaseGas, isV1SubgraphId, nSignalToTokens, nSignalToVSignal, overrides, pickExampleFields, pickExampleTypes, purchaseTargetAmount, saleTargetAmount, signalToTokens, toCamelCase, toGRT, toPlural, toWei, tokensToNSignal, tokensToSignal, unixDateFromNow, vSignalToNSignal }; | ||
//# sourceMappingURL=index.esm.js.map |
@@ -5,3 +5,3 @@ 'use strict'; | ||
var gql = require('graphql-tag'); | ||
var graphqlTag = require('graphql-tag'); | ||
var graphql = require('graphql'); | ||
@@ -18,3 +18,2 @@ var pluralize = require('pluralize'); | ||
var gql__default = /*#__PURE__*/_interopDefaultLegacy(gql); | ||
var pluralize__default = /*#__PURE__*/_interopDefaultLegacy(pluralize); | ||
@@ -27,2 +26,64 @@ var DataLoader__default = /*#__PURE__*/_interopDefaultLegacy(DataLoader); | ||
// These utils are functions to convert the rust Inflector lib into typescript. | ||
const INJECTABLE_CHAR = ' '; | ||
function charIsSeparator(char) { | ||
return /([_-\s])/g.test(char); | ||
} | ||
function charIsAlphaNumeric(char) { | ||
return /([a-zA-Z0-9])/g.test(char); | ||
} | ||
function charIsNotAlphaNumeric(char) { | ||
return !charIsAlphaNumeric(char); | ||
} | ||
function charIsNumeric(char) { | ||
return /(\d)/g.test(char); | ||
} | ||
function charIsLowercase(char) { | ||
return /([a-z])/g.test(char); | ||
} | ||
function charIsUppercase(char) { | ||
return /([A-Z])/g.test(char); | ||
} | ||
function lastCharIsLowercaseCurrCharIsUppercaseOrNewWord(last, curr, newWord) { | ||
return newWord || (charIsLowercase(last) && charIsUppercase(curr) && last !== INJECTABLE_CHAR); | ||
} | ||
/** | ||
* @see https://github.com/whatisinternet/Inflector/blob/master/src/cases/case/mod.rs | ||
* @param str the string to camel case | ||
* @returns camel-cased string matching the rust Inflection crate logic | ||
*/ | ||
function toCamelCase(str) { | ||
let newWord = false; | ||
let foundRealChar = false; | ||
let lastChar = ' '; | ||
let result = ''; | ||
for (const char of str.trimRight()) { | ||
if (charIsSeparator(char) && foundRealChar) { | ||
newWord = true; | ||
} | ||
else if (!foundRealChar && charIsNotAlphaNumeric(char)) { | ||
continue; | ||
} | ||
else if (charIsNumeric(char)) { | ||
foundRealChar = true; | ||
newWord = true; | ||
result = `${result}${char}`; | ||
} | ||
else if (lastCharIsLowercaseCurrCharIsUppercaseOrNewWord(lastChar, char, newWord)) { | ||
foundRealChar = true; | ||
newWord = false; | ||
result = `${result}${char.toUpperCase()}`; | ||
} | ||
else { | ||
foundRealChar = true; | ||
lastChar = char; | ||
result = `${result}${char.toLowerCase()}`; | ||
} | ||
} | ||
return result; | ||
} | ||
function toPlural(str) { | ||
return pluralize__default["default"].plural(str); | ||
} | ||
// Example query for a subgraph, generated from its schema | ||
@@ -53,7 +114,7 @@ const pickExampleTypes = (definitions) => { | ||
// Generate collection query field | ||
let rootField = pluralize__default['default'].plural(typeDef.name.value); | ||
let rootField = toPlural(typeDef.name.value); | ||
if (rootField === typeDef.name.value) { | ||
return null; | ||
} | ||
rootField = rootField.charAt(0).toLowerCase() + rootField.slice(1); | ||
rootField = toCamelCase(rootField); | ||
return `${rootField}(first: 5) { ${fieldQueries.join(' ')} }`; | ||
@@ -68,3 +129,3 @@ }; | ||
.filter((query) => query !== null); | ||
const query = gql__default['default'] ` | ||
const query = graphqlTag.gql ` | ||
{ | ||
@@ -196,3 +257,3 @@ ${typeQueries.join('\n')} | ||
*/ | ||
const buildEnsDataLoader = (provider, opts) => new DataLoader__default['default']((keys) => ensLookups(provider, keys), opts); | ||
const buildEnsDataLoader = (provider, opts) => new DataLoader__default["default"]((keys) => ensLookups(provider, keys), opts); | ||
/** | ||
@@ -281,3 +342,3 @@ * Convert a number to a BigNumber | ||
Object.assign(numeral__default['default'].localeData('en'), { | ||
Object.assign(numeral__default["default"].localeData('en'), { | ||
abbreviations: { | ||
@@ -312,6 +373,6 @@ thousand: 'K', | ||
else { | ||
return (options === null || options === void 0 ? void 0 : options.format) ? numeral__default['default'](num).format(options === null || options === void 0 ? void 0 : options.format) : num.toString(); | ||
return (options === null || options === void 0 ? void 0 : options.format) ? numeral__default["default"](num).format(options === null || options === void 0 ? void 0 : options.format) : num.toString(); | ||
} | ||
} | ||
return numeral__default['default'](num).format(mergedOptions.format); | ||
return numeral__default["default"](num).format(mergedOptions.format); | ||
}; | ||
@@ -342,3 +403,3 @@ /** | ||
else { | ||
result = mergedOptions.skipFormat ? value : numeral__default['default'](value).format(mergedOptions.format); | ||
result = mergedOptions.skipFormat ? value : numeral__default["default"](value).format(mergedOptions.format); | ||
} | ||
@@ -378,3 +439,3 @@ } | ||
const parsed = formatUnitsToNumber(num); | ||
const result = parsed === 0 ? '0' : parsed > 0 && parsed < precision ? '~ 0' : numeral__default['default'](parsed).format(mergedOptions.format); | ||
const result = parsed === 0 ? '0' : parsed > 0 && parsed < precision ? '~ 0' : numeral__default["default"](parsed).format(mergedOptions.format); | ||
return result; | ||
@@ -440,3 +501,3 @@ }; | ||
dayjs__default['default'].extend(relativeTime__default['default']); | ||
dayjs__default["default"].extend(relativeTime__default["default"]); | ||
/** | ||
@@ -448,3 +509,3 @@ * Get time between now and a given timestamp | ||
const unixDateFromNow = (unixTime) => { | ||
const time = dayjs__default['default'].unix(unixTime); | ||
const time = dayjs__default["default"].unix(unixTime); | ||
return time.fromNow(); | ||
@@ -459,5 +520,5 @@ }; | ||
if (seconds < 0) { | ||
return dayjs__default['default']().subtract(-seconds, 'second').fromNow(); | ||
return dayjs__default["default"]().subtract(-seconds, 'second').fromNow(); | ||
} | ||
return dayjs__default['default']().add(seconds, 'second').fromNow(); | ||
return dayjs__default["default"]().add(seconds, 'second').fromNow(); | ||
}; | ||
@@ -470,3 +531,3 @@ /** | ||
const dateStringFromNow = (date) => { | ||
return dayjs__default['default'](date).fromNow(); | ||
return dayjs__default["default"](date).fromNow(); | ||
}; | ||
@@ -480,5 +541,5 @@ /** | ||
if (seconds < 0) { | ||
return dayjs__default['default']().subtract(-seconds, 'second').fromNow(); | ||
return dayjs__default["default"]().subtract(-seconds, 'second').fromNow(); | ||
} | ||
return dayjs__default['default']().subtract(seconds, 'second').fromNow(); | ||
return dayjs__default["default"]().subtract(seconds, 'second').fromNow(); | ||
}; | ||
@@ -527,3 +588,3 @@ /** | ||
const getDate = (unixTime) => { | ||
const time = dayjs__default['default'].unix(unixTime); | ||
const time = dayjs__default["default"].unix(unixTime); | ||
return `${time.year()}-${time.month() + 1}-${time.date()}`; | ||
@@ -639,3 +700,3 @@ }; | ||
const TWO = ethers.BigNumber.from(2); | ||
const ONE_D = new Decimal__default['default'](1); | ||
const ONE_D = new Decimal__default["default"](1); | ||
const ZERO = ethers.constants.Zero; | ||
@@ -685,11 +746,11 @@ const MAX_WEIGHT = ethers.BigNumber.from(1000000); | ||
// normal case | ||
const supplyD = new Decimal__default['default'](supply.toString()); | ||
const amountD = new Decimal__default['default'](depositAmount.toString()); | ||
const reserveBalanceD = new Decimal__default['default'](reserveBalance.toString()); | ||
const supplyD = new Decimal__default["default"](supply.toString()); | ||
const amountD = new Decimal__default["default"](depositAmount.toString()); | ||
const reserveBalanceD = new Decimal__default["default"](reserveBalance.toString()); | ||
// make it a bit more efficient for current network stats. But can handle a change in default reserve ratio | ||
const exp = MAX_WEIGHT.eq(reserveRatio.mul(TWO)) | ||
? new Decimal__default['default'](0.5) | ||
: new Decimal__default['default'](reserveRatio.toString()).div(new Decimal__default['default'](MAX_WEIGHT.toString())); | ||
? new Decimal__default["default"](0.5) | ||
: new Decimal__default["default"](reserveRatio.toString()).div(new Decimal__default["default"](MAX_WEIGHT.toString())); | ||
const purchaseAmount = supplyD.mul(ONE_D.add(amountD.div(reserveBalanceD)).pow(exp).sub(ONE_D)); | ||
return bigNumberify(purchaseAmount.toDP(0, Decimal__default['default'].ROUND_DOWN).toString()); | ||
return bigNumberify(purchaseAmount.toDP(0, Decimal__default["default"].ROUND_DOWN).toString()); | ||
}; | ||
@@ -724,9 +785,9 @@ /** | ||
// normal case | ||
const reserveBalanceD = new Decimal__default['default'](reserveBalance.toString()); | ||
const amountD = new Decimal__default['default'](sellAmount.toString()); | ||
const supplyD = new Decimal__default['default'](supply.toString()); | ||
const reserveBalanceD = new Decimal__default["default"](reserveBalance.toString()); | ||
const amountD = new Decimal__default["default"](sellAmount.toString()); | ||
const supplyD = new Decimal__default["default"](supply.toString()); | ||
// make it a bit more efficient for current network stats. But can handle a change in default reserve ratio | ||
const exp = MAX_WEIGHT.eq(reserveRatio.mul(TWO)) | ||
? new Decimal__default['default'](2) | ||
: new Decimal__default['default'](MAX_WEIGHT.toString()).div(new Decimal__default['default'](reserveRatio.toString())); | ||
? new Decimal__default["default"](2) | ||
: new Decimal__default["default"](MAX_WEIGHT.toString()).div(new Decimal__default["default"](reserveRatio.toString())); | ||
const saleAmount = reserveBalanceD.mul(ONE_D.sub(ONE_D.sub(amountD.div(supplyD)).pow(exp))); | ||
@@ -1072,3 +1133,5 @@ let finalSaleAmount = saleAmount.toString(); | ||
exports.signalToTokens = signalToTokens; | ||
exports.toCamelCase = toCamelCase; | ||
exports.toGRT = toGRT; | ||
exports.toPlural = toPlural; | ||
exports.toWei = toWei; | ||
@@ -1075,0 +1138,0 @@ exports.tokensToNSignal = tokensToNSignal; |
@@ -0,0 +0,0 @@ import { TranslateBigInt, TranslateBigDecimal } from '../big-number.model'; |
export * from './delegator.analytics.model'; | ||
export * from './indexer.analytics.model'; |
@@ -0,0 +0,0 @@ import { TranslateBigInt, TranslateBigDecimal } from '../big-number.model'; |
export declare type TranslateBigInt = string; | ||
export declare type TranslateBigDecimal = string; | ||
export declare type TranslateBytes = string; |
@@ -0,0 +0,0 @@ import { TranslateBigInt } from './big-number.model'; |
@@ -0,0 +0,0 @@ import { TranslateBigInt, TranslateBytes } from '../big-number.model'; |
@@ -0,0 +0,0 @@ import { TranslateBytes, TranslateBigInt, TranslateBigDecimal } from '../big-number.model'; |
@@ -0,0 +0,0 @@ import { TranslateBigInt } from '../big-number.model'; |
@@ -0,0 +0,0 @@ import { TranslateBigInt, TranslateBigDecimal } from '../big-number.model'; |
@@ -0,0 +0,0 @@ import { TranslateBigInt, TranslateBigDecimal } from '../big-number.model'; |
@@ -0,0 +0,0 @@ import { TranslateBigInt, TranslateBigDecimal } from '../big-number.model'; |
@@ -0,0 +0,0 @@ import { GraphAccount } from './account.model'; |
@@ -0,0 +0,0 @@ import { TranslateBigInt } from '../big-number.model'; |
@@ -0,0 +0,0 @@ import type { TranslateBigInt } from '../big-number.model'; |
@@ -0,0 +0,0 @@ export * from './account.model'; |
@@ -0,0 +0,0 @@ import { TranslateBigInt, TranslateBigDecimal } from '../big-number.model'; |
@@ -0,0 +0,0 @@ export interface IndexingProgressChain { |
@@ -0,0 +0,0 @@ export interface IpfsResponse { |
@@ -0,0 +0,0 @@ import { TranslateBigDecimal, TranslateBigInt, TranslateBytes } from '../big-number.model'; |
@@ -0,0 +0,0 @@ import { TranslateBigInt } from '../big-number.model'; |
@@ -0,0 +0,0 @@ import { TranslateBigInt, TranslateBigDecimal } from '../big-number.model'; |
@@ -0,0 +0,0 @@ import type { TranslateBigInt, TranslateBigDecimal, TranslateBytes } from '../big-number.model'; |
@@ -0,0 +0,0 @@ import { TranslateBigInt, TranslateBytes } from '../big-number.model'; |
export * from './subgraph-error.model'; | ||
export * from './indexing-status.model'; |
@@ -0,0 +0,0 @@ import type { TranslateBigInt } from '../big-number.model'; |
@@ -0,0 +0,0 @@ import type { Block } from '../block.model'; |
@@ -0,0 +0,0 @@ export * from './big-number.model'; |
@@ -0,0 +0,0 @@ /** |
@@ -0,0 +0,0 @@ import { BigNumber, BigNumberish, Contract } from 'ethers'; |
@@ -0,0 +0,0 @@ /** |
@@ -0,0 +0,0 @@ import { GraphAccount } from './../models/explorer/account.model'; |
@@ -0,0 +0,0 @@ import DataLoader from 'dataloader'; |
@@ -0,0 +0,0 @@ import { EventType, Event, EventUnion } from '../models'; |
@@ -0,0 +0,0 @@ import { BigNumberish, BigNumber } from 'ethers'; |
@@ -0,0 +0,0 @@ import { DefinitionNode, ObjectTypeDefinitionNode, FieldDefinitionNode, TypeNode, DocumentNode } from 'graphql'; |
@@ -11,1 +11,2 @@ export * from './graphql.utils'; | ||
export * from './url.utils'; | ||
export * from './string.utils'; |
@@ -0,0 +0,0 @@ /** |
@@ -0,0 +0,0 @@ /** |
{ | ||
"name": "@edgeandnode/common", | ||
"version": "4.10.0", | ||
"version": "4.10.1", | ||
"description": "Common Edge & Node utils and types", | ||
@@ -22,6 +22,7 @@ "main": "build/index.js", | ||
"lint": "eslint . --ext .ts", | ||
"clean": "rimraf ./build", | ||
"prebuild": "yarn clean", | ||
"build": "rollup -c", | ||
"prepublishOnly": "npm run clean && npm run build", | ||
"npm:publish": "yarn publish && git push", | ||
"clean": "rimraf ./build", | ||
"prepare": "husky install" | ||
@@ -40,6 +41,6 @@ }, | ||
"devDependencies": { | ||
"@rollup/plugin-commonjs": "^19.0.0", | ||
"@rollup/plugin-commonjs": "^21.0.1", | ||
"@rollup/plugin-eslint": "^8.0.1", | ||
"@rollup/plugin-json": "^4.1.0", | ||
"@rollup/plugin-typescript": "^8.2.1", | ||
"@rollup/plugin-typescript": "^8.3.0", | ||
"@types/jest": "^26.0.23", | ||
@@ -59,7 +60,6 @@ "@types/numeral": "^2.0.1", | ||
"rimraf": "^3.0.2", | ||
"rollup": "^2.51.2", | ||
"rollup-plugin-typescript2": "^0.30.0", | ||
"rollup": "^2.66.1", | ||
"ts-jest": "^27.0.3", | ||
"ts-node": "^10.4.0", | ||
"typescript": "^4.3.2" | ||
"typescript": "^4.5.5" | ||
}, | ||
@@ -71,4 +71,4 @@ "dependencies": { | ||
"ethers": "^5.4.3", | ||
"graphql": "^15.5.0", | ||
"graphql-tag": "^2.12.4", | ||
"graphql": "^16.3.0", | ||
"graphql-tag": "^2.12.6", | ||
"numeral": "^2.0.6", | ||
@@ -75,0 +75,0 @@ "pluralize": "^8.0.0" |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
22
3414
180431
52
+ Addedgraphql@16.10.0(transitive)
- Removedgraphql@15.10.1(transitive)
Updatedgraphql@^16.3.0
Updatedgraphql-tag@^2.12.6