@railgun-community/shared-models 4.2.0 → 4.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -39,7 +39,6 @@ export declare type RelayerRawParamsPreAuthorize = RelayerRawParamsShared & {
39
39
  commitmentHash: string;
40
40
  };
41
41
  export declare type RelayerPreAuthorization = {
42
- chainID: number;
43
42
  gasLimit: string;
44
43
  commitmentHash: string;
45
44
  expiration: number;
@@ -1 +1 @@
1
- {"version":3,"file":"relayer.js","sourceRoot":"","sources":["../../src/models/relayer.ts"],"names":[],"mappings":";;;AAwEA,IAAY,uBAMX;AAND,WAAY,uBAAuB;IACjC,0CAAe,CAAA;IACf,kDAAuB,CAAA;IACvB,kDAAuB,CAAA;IACvB,wDAA6B,CAAA;IAC7B,4DAAiC,CAAA;AACnC,CAAC,EANW,uBAAuB,GAAvB,+BAAuB,KAAvB,+BAAuB,QAMlC","sourcesContent":["import { ChainType, CommitmentCiphertext } from './response-types';\n\nexport type RelayerFeeMessageData = {\n fees: MapType<string>;\n feeExpiration: number;\n feesID: string;\n railgunAddress: string;\n identifier: Optional<string>;\n availableWallets: number;\n version: string;\n relayAdapt: string;\n};\n\nexport type RelayerFeeMessage = {\n data: string; // hex-encoded FeeMessageData\n signature: string; // hex-encoded signature\n};\n\ntype EncryptedData = [string, string];\n\nexport type RelayerEncryptedMethodParams = {\n pubkey: string;\n encryptedData: EncryptedData;\n};\n\ntype RelayerRawParamsShared = {\n chainID: number;\n chainType: ChainType;\n feesID: string;\n relayerViewingKey: string;\n devLog: boolean;\n minVersion: string;\n maxVersion: string;\n};\n\nexport type RelayerRawParamsTransact = RelayerRawParamsShared & {\n serializedTransaction: string;\n minGasPrice: string;\n useRelayAdapt: boolean;\n};\n\nexport type RelayerRawParamsPreAuthorize = RelayerRawParamsShared & {\n gasLimit: string;\n commitmentCiphertext: CommitmentCiphertext;\n commitmentHash: string;\n};\n\nexport type RelayerPreAuthorization = {\n chainID: number;\n gasLimit: string;\n commitmentHash: string;\n expiration: number;\n};\n\nexport type RelayerSignedPreAuthorization = RelayerPreAuthorization & {\n signature: string;\n};\n\nexport type CachedTokenFee = {\n feePerUnitGas: string;\n expiration: number;\n feesID: string;\n availableWallets: number;\n relayAdapt: string;\n};\n\nexport type SelectedRelayer = {\n railgunAddress: string;\n tokenAddress: string;\n tokenFee: CachedTokenFee;\n};\n\nexport enum RelayerConnectionStatus {\n Error = 'Error',\n Searching = 'Searching',\n Connected = 'Connected',\n Disconnected = 'Disconnected',\n AllUnavailable = 'AllUnavailable',\n}\n"]}
1
+ {"version":3,"file":"relayer.js","sourceRoot":"","sources":["../../src/models/relayer.ts"],"names":[],"mappings":";;;AAuEA,IAAY,uBAMX;AAND,WAAY,uBAAuB;IACjC,0CAAe,CAAA;IACf,kDAAuB,CAAA;IACvB,kDAAuB,CAAA;IACvB,wDAA6B,CAAA;IAC7B,4DAAiC,CAAA;AACnC,CAAC,EANW,uBAAuB,GAAvB,+BAAuB,KAAvB,+BAAuB,QAMlC","sourcesContent":["import { ChainType, CommitmentCiphertext } from './response-types';\n\nexport type RelayerFeeMessageData = {\n fees: MapType<string>;\n feeExpiration: number;\n feesID: string;\n railgunAddress: string;\n identifier: Optional<string>;\n availableWallets: number;\n version: string;\n relayAdapt: string;\n};\n\nexport type RelayerFeeMessage = {\n data: string; // hex-encoded FeeMessageData\n signature: string; // hex-encoded signature\n};\n\ntype EncryptedData = [string, string];\n\nexport type RelayerEncryptedMethodParams = {\n pubkey: string;\n encryptedData: EncryptedData;\n};\n\ntype RelayerRawParamsShared = {\n chainID: number;\n chainType: ChainType;\n feesID: string;\n relayerViewingKey: string;\n devLog: boolean;\n minVersion: string;\n maxVersion: string;\n};\n\nexport type RelayerRawParamsTransact = RelayerRawParamsShared & {\n serializedTransaction: string;\n minGasPrice: string;\n useRelayAdapt: boolean;\n};\n\nexport type RelayerRawParamsPreAuthorize = RelayerRawParamsShared & {\n gasLimit: string;\n commitmentCiphertext: CommitmentCiphertext;\n commitmentHash: string;\n};\n\nexport type RelayerPreAuthorization = {\n gasLimit: string;\n commitmentHash: string;\n expiration: number;\n};\n\nexport type RelayerSignedPreAuthorization = RelayerPreAuthorization & {\n signature: string;\n};\n\nexport type CachedTokenFee = {\n feePerUnitGas: string;\n expiration: number;\n feesID: string;\n availableWallets: number;\n relayAdapt: string;\n};\n\nexport type SelectedRelayer = {\n railgunAddress: string;\n tokenAddress: string;\n tokenFee: CachedTokenFee;\n};\n\nexport enum RelayerConnectionStatus {\n Error = 'Error',\n Searching = 'Searching',\n Connected = 'Connected',\n Disconnected = 'Disconnected',\n AllUnavailable = 'AllUnavailable',\n}\n"]}
@@ -57,13 +57,13 @@ var getAvailableProviderJSONs = function (providerJsons, logError) { return __aw
57
57
  }); }); }))];
58
58
  case 1:
59
59
  blockNumbers = _a.sent();
60
- nonZeroBlockNumbers = blockNumbers.filter(function (blockNumber) { return blockNumber > 0; });
60
+ nonZeroBlockNumbers = blockNumbers.filter(function (blockNumber) { return blockNumber != null && blockNumber > 0; });
61
61
  medianBlockNumber = (0, median_1.getUpperBoundMedian)(nonZeroBlockNumbers);
62
62
  lowerBoundRange = medianBlockNumber - 100;
63
63
  upperBoundRange = medianBlockNumber + 100;
64
64
  return [2 /*return*/, providerJsons.filter(function (providerJson, index) {
65
65
  var blockNumber = blockNumbers[index];
66
- if (blockNumber === 0) {
66
+ if (blockNumber == null) {
67
67
  logError("RPC Health Check failed for ".concat(providerJson.provider, ": No Block Number"));
68
68
  return false;
69
69
  }
@@ -98,7 +98,7 @@ var getBlockNumber = function (provider, logError) { return __awaiter(void 0, vo
98
98
  throw err_1;
99
99
  }
100
100
  logError(err_1.message);
101
- return [2 /*return*/, 0];
101
+ return [2 /*return*/, undefined];
102
102
  case 3: return [2 /*return*/];
103
103
  }
104
104
  });
@@ -1 +1 @@
1
- {"version":3,"file":"available-rpc.js","sourceRoot":"","sources":["../../src/utils/available-rpc.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sDAA2D;AAE3D,mCAA+C;AAC/C,uCAA4C;AAI5C,IAAM,uBAAuB,GAAG,IAAI,CAAC;AAErC;;;GAGG;AACI,IAAM,yBAAyB,GAAG,UACvC,aAA6B,EAC7B,QAAkB;;;;oBAEa,qBAAM,OAAO,CAAC,GAAG,CAC9C,aAAa,CAAC,GAAG,CACf,UAAM,YAAY;;gCAChB,qBAAM,cAAc,CAAC,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAA;gCAArD,sBAAA,SAAqD,EAAA;;yBAAA,CACxD,CACF,EAAA;;gBALK,YAAY,GAAa,SAK9B;gBAEK,mBAAmB,GAAG,YAAY,CAAC,MAAM,CAC7C,UAAA,WAAW,IAAI,OAAA,WAAW,GAAG,CAAC,EAAf,CAAe,CAC/B,CAAC;gBACI,iBAAiB,GAAG,IAAA,4BAAmB,EAAC,mBAAmB,CAAC,CAAC;gBAC7D,eAAe,GAAG,iBAAiB,GAAG,GAAG,CAAC;gBAC1C,eAAe,GAAG,iBAAiB,GAAG,GAAG,CAAC;gBAEhD,sBAAO,aAAa,CAAC,MAAM,CAAC,UAAC,YAAY,EAAE,KAAK;wBAC9C,IAAM,WAAW,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;wBACxC,IAAI,WAAW,KAAK,CAAC,EAAE;4BACrB,QAAQ,CACN,sCAA+B,YAAY,CAAC,QAAQ,sBAAmB,CACxE,CAAC;4BACF,OAAO,KAAK,CAAC;yBACd;wBACD,IAAI,WAAW,GAAG,eAAe,EAAE;4BACjC,QAAQ,CACN,sCAA+B,YAAY,CAAC,QAAQ,6BAClD,iBAAiB,GAAG,WAAW,iBACnB,CACf,CAAC;4BACF,OAAO,KAAK,CAAC;yBACd;wBACD,IAAI,WAAW,GAAG,eAAe,EAAE;4BACjC,QAAQ,CACN,sCAA+B,YAAY,CAAC,QAAQ,6BAClD,WAAW,GAAG,iBAAiB,iBACnB,CACf,CAAC;4BACF,OAAO,KAAK,CAAC;yBACd;wBACD,OAAO,IAAI,CAAC;oBACd,CAAC,CAAC,EAAC;;;KACJ,CAAC;AA5CW,QAAA,yBAAyB,6BA4CpC;AAEF,IAAM,cAAc,GAAG,UACrB,QAAgB,EAChB,QAAkB;;;;;;gBAGV,WAAW,GAAG,IAAI,2BAAe,CAAC,QAAQ,CAAC,CAAC;gBAC9B,qBAAM,IAAA,yBAAc,EACtC,WAAW,CAAC,cAAc,EAAE,EAC5B,uBAAuB,CACxB,EAAA;;gBAHK,WAAW,GAAG,SAGnB;gBACD,sBAAO,WAAW,EAAC;;;gBAEnB,IAAI,CAAC,CAAC,KAAG,YAAY,KAAK,CAAC,EAAE;oBAC3B,MAAM,KAAG,CAAC;iBACX;gBACD,QAAQ,CAAC,KAAG,CAAC,OAAO,CAAC,CAAC;gBACtB,sBAAO,CAAC,EAAC;;;;KAEZ,CAAC","sourcesContent":["import { JsonRpcProvider } from '@ethersproject/providers';\nimport { ProviderJson } from './fallback-provider';\nimport { getUpperBoundMedian } from './median';\nimport { promiseTimeout } from './promises';\n\ntype LogError = (err: string) => void;\n\nconst BLOCK_NUMBER_TIMEOUT_MS = 5000;\n\n/**\n * Health checks ProviderJson inputs, and returns an array of available RPC providers.\n * Available means that they respond to getBlockNumber(), and they are +/- 100 blocks from the median.\n */\nexport const getAvailableProviderJSONs = async (\n providerJsons: ProviderJson[],\n logError: LogError,\n): Promise<ProviderJson[]> => {\n const blockNumbers: number[] = await Promise.all(\n providerJsons.map(\n async providerJson =>\n await getBlockNumber(providerJson.provider, logError),\n ),\n );\n\n const nonZeroBlockNumbers = blockNumbers.filter(\n blockNumber => blockNumber > 0,\n );\n const medianBlockNumber = getUpperBoundMedian(nonZeroBlockNumbers);\n const lowerBoundRange = medianBlockNumber - 100;\n const upperBoundRange = medianBlockNumber + 100;\n\n return providerJsons.filter((providerJson, index) => {\n const blockNumber = blockNumbers[index];\n if (blockNumber === 0) {\n logError(\n `RPC Health Check failed for ${providerJson.provider}: No Block Number`,\n );\n return false;\n }\n if (blockNumber < lowerBoundRange) {\n logError(\n `RPC Health Check failed for ${providerJson.provider}: Block Number -${\n medianBlockNumber - blockNumber\n } from median`,\n );\n return false;\n }\n if (blockNumber > upperBoundRange) {\n logError(\n `RPC Health Check failed for ${providerJson.provider}: Block Number +${\n blockNumber - medianBlockNumber\n } from median`,\n );\n return false;\n }\n return true;\n });\n};\n\nconst getBlockNumber = async (\n provider: string,\n logError: LogError,\n): Promise<number> => {\n try {\n const rpcProvider = new JsonRpcProvider(provider);\n const blockNumber = await promiseTimeout(\n rpcProvider.getBlockNumber(),\n BLOCK_NUMBER_TIMEOUT_MS,\n );\n return blockNumber;\n } catch (err) {\n if (!(err instanceof Error)) {\n throw err;\n }\n logError(err.message);\n return 0;\n }\n};\n"]}
1
+ {"version":3,"file":"available-rpc.js","sourceRoot":"","sources":["../../src/utils/available-rpc.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sDAA2D;AAE3D,mCAA+C;AAC/C,uCAA4C;AAI5C,IAAM,uBAAuB,GAAG,IAAI,CAAC;AAErC;;;GAGG;AACI,IAAM,yBAAyB,GAAG,UACvC,aAA6B,EAC7B,QAAkB;;;;oBAEuB,qBAAM,OAAO,CAAC,GAAG,CACxD,aAAa,CAAC,GAAG,CACf,UAAM,YAAY;;gCAChB,qBAAM,cAAc,CAAC,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAA;gCAArD,sBAAA,SAAqD,EAAA;;yBAAA,CACxD,CACF,EAAA;;gBALK,YAAY,GAAuB,SAKxC;gBAEK,mBAAmB,GAAG,YAAY,CAAC,MAAM,CAC7C,UAAA,WAAW,IAAI,OAAA,WAAW,IAAI,IAAI,IAAI,WAAW,GAAG,CAAC,EAAtC,CAAsC,CAC1C,CAAC;gBACR,iBAAiB,GAAG,IAAA,4BAAmB,EAAC,mBAAmB,CAAC,CAAC;gBAC7D,eAAe,GAAG,iBAAiB,GAAG,GAAG,CAAC;gBAC1C,eAAe,GAAG,iBAAiB,GAAG,GAAG,CAAC;gBAEhD,sBAAO,aAAa,CAAC,MAAM,CAAC,UAAC,YAAY,EAAE,KAAK;wBAC9C,IAAM,WAAW,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;wBACxC,IAAI,WAAW,IAAI,IAAI,EAAE;4BACvB,QAAQ,CACN,sCAA+B,YAAY,CAAC,QAAQ,sBAAmB,CACxE,CAAC;4BACF,OAAO,KAAK,CAAC;yBACd;wBACD,IAAI,WAAW,GAAG,eAAe,EAAE;4BACjC,QAAQ,CACN,sCAA+B,YAAY,CAAC,QAAQ,6BAClD,iBAAiB,GAAG,WAAW,iBACnB,CACf,CAAC;4BACF,OAAO,KAAK,CAAC;yBACd;wBACD,IAAI,WAAW,GAAG,eAAe,EAAE;4BACjC,QAAQ,CACN,sCAA+B,YAAY,CAAC,QAAQ,6BAClD,WAAW,GAAG,iBAAiB,iBACnB,CACf,CAAC;4BACF,OAAO,KAAK,CAAC;yBACd;wBACD,OAAO,IAAI,CAAC;oBACd,CAAC,CAAC,EAAC;;;KACJ,CAAC;AA5CW,QAAA,yBAAyB,6BA4CpC;AAEF,IAAM,cAAc,GAAG,UACrB,QAAgB,EAChB,QAAkB;;;;;;gBAGV,WAAW,GAAG,IAAI,2BAAe,CAAC,QAAQ,CAAC,CAAC;gBAC9B,qBAAM,IAAA,yBAAc,EACtC,WAAW,CAAC,cAAc,EAAE,EAC5B,uBAAuB,CACxB,EAAA;;gBAHK,WAAW,GAAG,SAGnB;gBACD,sBAAO,WAAW,EAAC;;;gBAEnB,IAAI,CAAC,CAAC,KAAG,YAAY,KAAK,CAAC,EAAE;oBAC3B,MAAM,KAAG,CAAC;iBACX;gBACD,QAAQ,CAAC,KAAG,CAAC,OAAO,CAAC,CAAC;gBACtB,sBAAO,SAAS,EAAC;;;;KAEpB,CAAC","sourcesContent":["import { JsonRpcProvider } from '@ethersproject/providers';\nimport { ProviderJson } from './fallback-provider';\nimport { getUpperBoundMedian } from './median';\nimport { promiseTimeout } from './promises';\n\ntype LogError = (err: string) => void;\n\nconst BLOCK_NUMBER_TIMEOUT_MS = 5000;\n\n/**\n * Health checks ProviderJson inputs, and returns an array of available RPC providers.\n * Available means that they respond to getBlockNumber(), and they are +/- 100 blocks from the median.\n */\nexport const getAvailableProviderJSONs = async (\n providerJsons: ProviderJson[],\n logError: LogError,\n): Promise<ProviderJson[]> => {\n const blockNumbers: Optional<number>[] = await Promise.all(\n providerJsons.map(\n async providerJson =>\n await getBlockNumber(providerJson.provider, logError),\n ),\n );\n\n const nonZeroBlockNumbers = blockNumbers.filter(\n blockNumber => blockNumber != null && blockNumber > 0,\n ) as number[];\n const medianBlockNumber = getUpperBoundMedian(nonZeroBlockNumbers);\n const lowerBoundRange = medianBlockNumber - 100;\n const upperBoundRange = medianBlockNumber + 100;\n\n return providerJsons.filter((providerJson, index) => {\n const blockNumber = blockNumbers[index];\n if (blockNumber == null) {\n logError(\n `RPC Health Check failed for ${providerJson.provider}: No Block Number`,\n );\n return false;\n }\n if (blockNumber < lowerBoundRange) {\n logError(\n `RPC Health Check failed for ${providerJson.provider}: Block Number -${\n medianBlockNumber - blockNumber\n } from median`,\n );\n return false;\n }\n if (blockNumber > upperBoundRange) {\n logError(\n `RPC Health Check failed for ${providerJson.provider}: Block Number +${\n blockNumber - medianBlockNumber\n } from median`,\n );\n return false;\n }\n return true;\n });\n};\n\nconst getBlockNumber = async (\n provider: string,\n logError: LogError,\n): Promise<Optional<number>> => {\n try {\n const rpcProvider = new JsonRpcProvider(provider);\n const blockNumber = await promiseTimeout(\n rpcProvider.getBlockNumber(),\n BLOCK_NUMBER_TIMEOUT_MS,\n );\n return blockNumber;\n } catch (err) {\n if (!(err instanceof Error)) {\n throw err;\n }\n logError(err.message);\n return undefined;\n }\n};\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@railgun-community/shared-models",
3
- "version": "4.2.0",
3
+ "version": "4.2.2",
4
4
  "license": "MIT",
5
5
  "main": "dist/index.js",
6
6
  "files": [