@across-protocol/sdk 3.1.26 → 3.1.27

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.
Files changed (46) hide show
  1. package/dist/cjs/providers/alchemy.d.ts +2 -0
  2. package/dist/cjs/providers/alchemy.js +28 -0
  3. package/dist/cjs/providers/alchemy.js.map +1 -0
  4. package/dist/cjs/providers/index.d.ts +1 -0
  5. package/dist/cjs/providers/index.js +1 -0
  6. package/dist/cjs/providers/index.js.map +1 -1
  7. package/dist/cjs/providers/infura.d.ts +2 -0
  8. package/dist/cjs/providers/infura.js +23 -0
  9. package/dist/cjs/providers/infura.js.map +1 -0
  10. package/dist/cjs/providers/types.d.ts +2 -0
  11. package/dist/cjs/providers/types.js +3 -0
  12. package/dist/cjs/providers/types.js.map +1 -0
  13. package/dist/cjs/providers/utils.d.ts +3 -0
  14. package/dist/cjs/providers/utils.js +21 -2
  15. package/dist/cjs/providers/utils.js.map +1 -1
  16. package/dist/esm/providers/alchemy.d.ts +2 -0
  17. package/dist/esm/providers/alchemy.js +25 -0
  18. package/dist/esm/providers/alchemy.js.map +1 -0
  19. package/dist/esm/providers/index.d.ts +1 -0
  20. package/dist/esm/providers/index.js +1 -0
  21. package/dist/esm/providers/index.js.map +1 -1
  22. package/dist/esm/providers/infura.d.ts +2 -0
  23. package/dist/esm/providers/infura.js +20 -0
  24. package/dist/esm/providers/infura.js.map +1 -0
  25. package/dist/esm/providers/types.d.ts +2 -0
  26. package/dist/esm/providers/types.js +2 -0
  27. package/dist/esm/providers/types.js.map +1 -0
  28. package/dist/esm/providers/utils.d.ts +16 -0
  29. package/dist/esm/providers/utils.js +35 -2
  30. package/dist/esm/providers/utils.js.map +1 -1
  31. package/dist/types/providers/alchemy.d.ts +3 -0
  32. package/dist/types/providers/alchemy.d.ts.map +1 -0
  33. package/dist/types/providers/index.d.ts +1 -0
  34. package/dist/types/providers/index.d.ts.map +1 -1
  35. package/dist/types/providers/infura.d.ts +3 -0
  36. package/dist/types/providers/infura.d.ts.map +1 -0
  37. package/dist/types/providers/types.d.ts +3 -0
  38. package/dist/types/providers/types.d.ts.map +1 -0
  39. package/dist/types/providers/utils.d.ts +16 -0
  40. package/dist/types/providers/utils.d.ts.map +1 -1
  41. package/package.json +1 -1
  42. package/src/providers/alchemy.ts +28 -0
  43. package/src/providers/index.ts +1 -0
  44. package/src/providers/infura.ts +23 -0
  45. package/src/providers/types.ts +2 -0
  46. package/src/providers/utils.ts +42 -2
@@ -0,0 +1,2 @@
1
+ import { RPCTransport } from "./types";
2
+ export declare function getURL(chainId: number, apiKey: string, transport: RPCTransport): string;
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.getURL = void 0;
5
+ var constants_1 = require("../constants");
6
+ var MAINNET_CHAIN_IDs = Object.values(constants_1.MAINNET_CHAIN_IDs);
7
+ var endpoints = (_a = {},
8
+ _a[constants_1.CHAIN_IDs.ARBITRUM] = "arb",
9
+ _a[constants_1.CHAIN_IDs.ARBITRUM_SEPOLIA] = "arb-sepolia",
10
+ _a[constants_1.CHAIN_IDs.MAINNET] = "eth",
11
+ _a[constants_1.CHAIN_IDs.SEPOLIA] = "eth-sepolia",
12
+ _a[constants_1.CHAIN_IDs.OPTIMISM] = "opt",
13
+ _a[constants_1.CHAIN_IDs.OPTIMISM_SEPOLIA] = "opt-sepolia",
14
+ _a);
15
+ function getURL(chainId, apiKey, transport) {
16
+ var _a, _b;
17
+ var host = (_a = endpoints[chainId]) !== null && _a !== void 0 ? _a : (_b = constants_1.PUBLIC_NETWORKS[chainId]) === null || _b === void 0 ? void 0 : _b.name;
18
+ if (!host) {
19
+ throw new Error("No known Alchemy provider for chainId ".concat(chainId));
20
+ }
21
+ if (MAINNET_CHAIN_IDs.includes(chainId)) {
22
+ host = "".concat(host, "-mainnet");
23
+ }
24
+ host = host.toLowerCase().replace(" ", "-");
25
+ return "".concat(transport, "://").concat(host, ".g.alchemy.com/v2/").concat(apiKey);
26
+ }
27
+ exports.getURL = getURL;
28
+ //# sourceMappingURL=alchemy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alchemy.js","sourceRoot":"","sources":["../../../src/providers/alchemy.ts"],"names":[],"mappings":";;;;AAAA,0CAAmG;AAGnG,IAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,6BAAkB,CAAC,CAAC;AAG5D,IAAM,SAAS;IACb,GAAC,qBAAS,CAAC,QAAQ,IAAG,KAAK;IAC3B,GAAC,qBAAS,CAAC,gBAAgB,IAAG,aAAa;IAC3C,GAAC,qBAAS,CAAC,OAAO,IAAG,KAAK;IAC1B,GAAC,qBAAS,CAAC,OAAO,IAAG,aAAa;IAClC,GAAC,qBAAS,CAAC,QAAQ,IAAG,KAAK;IAC3B,GAAC,qBAAS,CAAC,gBAAgB,IAAG,aAAa;OAC5C,CAAC;AAEF,SAAgB,MAAM,CAAC,OAAe,EAAE,MAAc,EAAE,SAAuB;;IAC7E,IAAI,IAAI,GAAG,MAAA,SAAS,CAAC,OAAO,CAAC,mCAAI,MAAA,2BAAe,CAAC,OAAO,CAAC,0CAAE,IAAI,CAAC;IAChE,IAAI,CAAC,IAAI,EAAE;QACT,MAAM,IAAI,KAAK,CAAC,gDAAyC,OAAO,CAAE,CAAC,CAAC;KACrE;IAED,IAAI,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;QACvC,IAAI,GAAG,UAAG,IAAI,aAAU,CAAC;KAC1B;IACD,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAE5C,OAAO,UAAG,SAAS,gBAAM,IAAI,+BAAqB,MAAM,CAAE,CAAC;AAC7D,CAAC;AAZD,wBAYC"}
@@ -2,4 +2,5 @@ export * from "./rateLimitedProvider";
2
2
  export * from "./cachedProvider";
3
3
  export * from "./retryProvider";
4
4
  export * from "./constants";
5
+ export * from "./types";
5
6
  export * from "./utils";
@@ -5,5 +5,6 @@ tslib_1.__exportStar(require("./rateLimitedProvider"), exports);
5
5
  tslib_1.__exportStar(require("./cachedProvider"), exports);
6
6
  tslib_1.__exportStar(require("./retryProvider"), exports);
7
7
  tslib_1.__exportStar(require("./constants"), exports);
8
+ tslib_1.__exportStar(require("./types"), exports);
8
9
  tslib_1.__exportStar(require("./utils"), exports);
9
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/index.ts"],"names":[],"mappings":";;;AAAA,gEAAsC;AACtC,2DAAiC;AACjC,0DAAgC;AAChC,sDAA4B;AAC5B,kDAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/index.ts"],"names":[],"mappings":";;;AAAA,gEAAsC;AACtC,2DAAiC;AACjC,0DAAgC;AAChC,sDAA4B;AAC5B,kDAAwB;AACxB,kDAAwB"}
@@ -0,0 +1,2 @@
1
+ import { RPCTransport } from "./types";
2
+ export declare function getURL(chainId: number, apiKey: string, transport: RPCTransport): string;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.getURL = void 0;
5
+ var constants_1 = require("../constants");
6
+ var MAINNET_CHAIN_IDs = Object.values(constants_1.MAINNET_CHAIN_IDs);
7
+ var endpoints = (_a = {},
8
+ _a[constants_1.CHAIN_IDs.ARBITRUM] = "arbitrum",
9
+ _a);
10
+ function getURL(chainId, apiKey, transport) {
11
+ var _a, _b;
12
+ var host = (_a = endpoints[chainId]) !== null && _a !== void 0 ? _a : (_b = constants_1.PUBLIC_NETWORKS[chainId]) === null || _b === void 0 ? void 0 : _b.name;
13
+ if (!host) {
14
+ throw new Error("No known Infura provider for chainId ".concat(chainId));
15
+ }
16
+ if (chainId !== constants_1.CHAIN_IDs.MAINNET && MAINNET_CHAIN_IDs.includes(chainId)) {
17
+ host = "".concat(host, "-mainnet");
18
+ }
19
+ host = host.toLowerCase().replace(" ", "-");
20
+ return transport === "https" ? "https://".concat(host, ".infura.io/v3/").concat(apiKey) : "wss://".concat(host, ".infura.io/ws/v3/").concat(apiKey);
21
+ }
22
+ exports.getURL = getURL;
23
+ //# sourceMappingURL=infura.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"infura.js","sourceRoot":"","sources":["../../../src/providers/infura.ts"],"names":[],"mappings":";;;;AAAA,0CAAmG;AAGnG,IAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,6BAAkB,CAAC,CAAC;AAG5D,IAAM,SAAS;IACb,GAAC,qBAAS,CAAC,QAAQ,IAAG,UAAU;OACjC,CAAC;AAEF,SAAgB,MAAM,CAAC,OAAe,EAAE,MAAc,EAAE,SAAuB;;IAC7E,IAAI,IAAI,GAAG,MAAA,SAAS,CAAC,OAAO,CAAC,mCAAI,MAAA,2BAAe,CAAC,OAAO,CAAC,0CAAE,IAAI,CAAC;IAChE,IAAI,CAAC,IAAI,EAAE;QACT,MAAM,IAAI,KAAK,CAAC,+CAAwC,OAAO,CAAE,CAAC,CAAC;KACpE;IAED,IAAI,OAAO,KAAK,qBAAS,CAAC,OAAO,IAAI,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;QACxE,IAAI,GAAG,UAAG,IAAI,aAAU,CAAC;KAC1B;IACD,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAE5C,OAAO,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC,kBAAW,IAAI,2BAAiB,MAAM,CAAE,CAAC,CAAC,CAAC,gBAAS,IAAI,8BAAoB,MAAM,CAAE,CAAC;AACtH,CAAC;AAZD,wBAYC"}
@@ -0,0 +1,2 @@
1
+ export type RPCProvider = "INFURA" | "ALCHEMY";
2
+ export type RPCTransport = "https" | "wss";
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/providers/types.ts"],"names":[],"mappings":""}
@@ -1,4 +1,7 @@
1
1
  import { providers } from "ethers";
2
+ import { RPCProvider, RPCTransport } from "./types";
3
+ export declare function isSupportedProvider(provider: string): provider is RPCProvider;
4
+ export declare function getURL(provider: RPCProvider, chainId: number, apiKey: string, transport?: RPCTransport): string;
2
5
  export declare function compareResultsAndFilterIgnoredKeys(ignoredKeys: string[], _objA: Record<string, unknown>, _objB: Record<string, unknown>): boolean;
3
6
  export declare function compareArrayResultsWithIgnoredKeys(ignoredKeys: string[], objA: unknown[], objB: unknown[]): boolean;
4
7
  export interface RateLimitTask {
@@ -1,9 +1,28 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CacheType = exports.compareRpcResults = exports.createSendErrorWithMessage = exports.formatProviderError = exports.compareArrayResultsWithIgnoredKeys = exports.compareResultsAndFilterIgnoredKeys = void 0;
3
+ exports.CacheType = exports.compareRpcResults = exports.createSendErrorWithMessage = exports.formatProviderError = exports.compareArrayResultsWithIgnoredKeys = exports.compareResultsAndFilterIgnoredKeys = exports.getURL = exports.isSupportedProvider = void 0;
4
4
  var tslib_1 = require("tslib");
5
- var utils_1 = require("../utils");
5
+ var assert_1 = tslib_1.__importDefault(require("assert"));
6
6
  var lodash_1 = require("lodash");
7
+ var utils_1 = require("../utils");
8
+ var alchemy = tslib_1.__importStar(require("./alchemy"));
9
+ var infura = tslib_1.__importStar(require("./infura"));
10
+ var PROVIDERS = {
11
+ ALCHEMY: alchemy.getURL,
12
+ INFURA: infura.getURL,
13
+ INFURA_DIN: infura.getURL,
14
+ };
15
+ function isSupportedProvider(provider) {
16
+ return ["ALCHEMY", "INFURA", "INFURA_DIN"].includes(provider);
17
+ }
18
+ exports.isSupportedProvider = isSupportedProvider;
19
+ function getURL(provider, chainId, apiKey, transport) {
20
+ if (transport === void 0) { transport = "https"; }
21
+ var getURL = PROVIDERS[provider];
22
+ (0, assert_1.default)(getURL, "Unsupported RPC provider (".concat(provider, ")"));
23
+ return getURL(chainId, apiKey, transport);
24
+ }
25
+ exports.getURL = getURL;
7
26
  function deleteIgnoredKeys(ignoredKeys, obj) {
8
27
  if (!(0, utils_1.isDefined)(obj)) {
9
28
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/providers/utils.ts"],"names":[],"mappings":";;;;AAGA,kCAAqC;AACrC,iCAAiC;AAQjC,SAAS,iBAAiB,CAAC,WAAqB,EAAE,GAA4B;IAC5E,IAAI,CAAC,IAAA,iBAAS,EAAC,GAAG,CAAC,EAAE;QACnB,OAAO;KACR;IACD,IAAM,MAAM,wBAAQ,GAAG,CAAE,CAAC;IAC1B,KAAkB,UAAW,EAAX,2BAAW,EAAX,yBAAW,EAAX,IAAW,EAAE;QAA1B,IAAM,GAAG,oBAAA;QACZ,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;KACpB;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAgB,kCAAkC,CAChD,WAAqB,EACrB,KAA8B,EAC9B,KAA8B;IAG9B,IAAM,SAAS,GAAG,iBAAiB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IACxD,IAAM,SAAS,GAAG,iBAAiB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAGxD,OAAO,IAAA,gBAAO,EAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AACvC,CAAC;AAXD,gFAWC;AAED,SAAgB,kCAAkC,CAAC,WAAqB,EAAE,IAAe,EAAE,IAAe;IAExG,IAAM,SAAS,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,GAAG,CAAC,UAAC,GAAG,IAAK,OAAA,iBAAiB,CAAC,WAAW,EAAE,GAA8B,CAAC,EAA9D,CAA8D,CAAC,CAAC;IACrG,IAAM,SAAS,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,GAAG,CAAC,UAAC,GAAG,IAAK,OAAA,iBAAiB,CAAC,WAAW,EAAE,GAA8B,CAAC,EAA9D,CAA8D,CAAC,CAAC;IAGrG,OAAO,IAAA,iBAAS,EAAC,SAAS,CAAC,IAAI,IAAA,iBAAS,EAAC,SAAS,CAAC,IAAI,IAAA,gBAAO,EAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AACvF,CAAC;AAPD,gFAOC;AAMD,IAAM,cAAc,GAAG;IAOrB,oBAAoB,EAAE;QACpB,OAAO;QACP,eAAe;QACf,kBAAkB;QAClB,MAAM;QACN,iBAAiB;KAClB;IACD,WAAW,EAAE,CAAC,gBAAgB,EAAE,qBAAqB,EAAE,eAAe,EAAE,SAAS,CAAC;CACnF,CAAC;AAqBF,SAAgB,mBAAmB,CAAC,QAAyC,EAAE,YAAoB;IACjG,OAAO,mBAAY,QAAQ,CAAC,UAAU,CAAC,GAAG,iCAAuB,YAAY,CAAE,CAAC;AAClF,CAAC;AAFD,kDAEC;AAED,SAAgB,0BAA0B,CAAC,OAAe,EAAE,SAAkC;IAC5F,IAAM,KAAK,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;IACjC,6CAAY,SAAS,GAAK,KAAK,EAAG;AACpC,CAAC;AAHD,gEAGC;AAWD,SAAgB,iBAAiB,CAAC,MAAc,EAAE,UAAmB,EAAE,UAAmB;IACxF,IAAI,MAAM,KAAK,sBAAsB,EAAE;QAGrC,OAAO,kCAAkC,CACvC,cAAc,CAAC,oBAAoB,EACnC,UAAqC,EACrC,UAAqC,CACtC,CAAC;KACH;SAAM,IAAI,MAAM,KAAK,aAAa,EAAE;QACnC,OAAO,kCAAkC,CACvC,cAAc,CAAC,WAAW,EAC1B,UAAuB,EACvB,UAAuB,CACxB,CAAC;KACH;SAAM;QACL,OAAO,IAAA,gBAAO,EAAC,UAAU,EAAE,UAAU,CAAC,CAAC;KACxC;AACH,CAAC;AAlBD,8CAkBC;AAED,IAAY,SAIX;AAJD,WAAY,SAAS;IACnB,yCAAI,CAAA;IACJ,iDAAQ,CAAA;IACR,6CAAM,CAAA;AACR,CAAC,EAJW,SAAS,yBAAT,SAAS,QAIpB"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/providers/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { RPCTransport } from "./types";
2
+ export declare function getURL(chainId: number, apiKey: string, transport: RPCTransport): string;
@@ -0,0 +1,25 @@
1
+ var _a;
2
+ import { CHAIN_IDs, MAINNET_CHAIN_IDs as _MAINNET_CHAIN_IDs, PUBLIC_NETWORKS } from "../constants";
3
+ var MAINNET_CHAIN_IDs = Object.values(_MAINNET_CHAIN_IDs);
4
+ // Chain-specific overrides for when the Alchemy endpoint does not match the canonical chain name.
5
+ var endpoints = (_a = {},
6
+ _a[CHAIN_IDs.ARBITRUM] = "arb",
7
+ _a[CHAIN_IDs.ARBITRUM_SEPOLIA] = "arb-sepolia",
8
+ _a[CHAIN_IDs.MAINNET] = "eth",
9
+ _a[CHAIN_IDs.SEPOLIA] = "eth-sepolia",
10
+ _a[CHAIN_IDs.OPTIMISM] = "opt",
11
+ _a[CHAIN_IDs.OPTIMISM_SEPOLIA] = "opt-sepolia",
12
+ _a);
13
+ export function getURL(chainId, apiKey, transport) {
14
+ var _a, _b;
15
+ var host = (_a = endpoints[chainId]) !== null && _a !== void 0 ? _a : (_b = PUBLIC_NETWORKS[chainId]) === null || _b === void 0 ? void 0 : _b.name;
16
+ if (!host) {
17
+ throw new Error("No known Alchemy provider for chainId ".concat(chainId));
18
+ }
19
+ if (MAINNET_CHAIN_IDs.includes(chainId)) {
20
+ host = "".concat(host, "-mainnet");
21
+ }
22
+ host = host.toLowerCase().replace(" ", "-");
23
+ return "".concat(transport, "://").concat(host, ".g.alchemy.com/v2/").concat(apiKey);
24
+ }
25
+ //# sourceMappingURL=alchemy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alchemy.js","sourceRoot":"","sources":["../../../src/providers/alchemy.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,iBAAiB,IAAI,kBAAkB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAGnG,IAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAE5D,kGAAkG;AAClG,IAAM,SAAS;IACb,GAAC,SAAS,CAAC,QAAQ,IAAG,KAAK;IAC3B,GAAC,SAAS,CAAC,gBAAgB,IAAG,aAAa;IAC3C,GAAC,SAAS,CAAC,OAAO,IAAG,KAAK;IAC1B,GAAC,SAAS,CAAC,OAAO,IAAG,aAAa;IAClC,GAAC,SAAS,CAAC,QAAQ,IAAG,KAAK;IAC3B,GAAC,SAAS,CAAC,gBAAgB,IAAG,aAAa;OAC5C,CAAC;AAEF,MAAM,UAAU,MAAM,CAAC,OAAe,EAAE,MAAc,EAAE,SAAuB;;IAC7E,IAAI,IAAI,GAAG,MAAA,SAAS,CAAC,OAAO,CAAC,mCAAI,MAAA,eAAe,CAAC,OAAO,CAAC,0CAAE,IAAI,CAAC;IAChE,IAAI,CAAC,IAAI,EAAE;QACT,MAAM,IAAI,KAAK,CAAC,gDAAyC,OAAO,CAAE,CAAC,CAAC;KACrE;IAED,IAAI,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;QACvC,IAAI,GAAG,UAAG,IAAI,aAAU,CAAC;KAC1B;IACD,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAE5C,OAAO,UAAG,SAAS,gBAAM,IAAI,+BAAqB,MAAM,CAAE,CAAC;AAC7D,CAAC"}
@@ -2,4 +2,5 @@ export * from "./rateLimitedProvider";
2
2
  export * from "./cachedProvider";
3
3
  export * from "./retryProvider";
4
4
  export * from "./constants";
5
+ export * from "./types";
5
6
  export * from "./utils";
@@ -2,5 +2,6 @@ export * from "./rateLimitedProvider";
2
2
  export * from "./cachedProvider";
3
3
  export * from "./retryProvider";
4
4
  export * from "./constants";
5
+ export * from "./types";
5
6
  export * from "./utils";
6
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { RPCTransport } from "./types";
2
+ export declare function getURL(chainId: number, apiKey: string, transport: RPCTransport): string;
@@ -0,0 +1,20 @@
1
+ var _a;
2
+ import { CHAIN_IDs, MAINNET_CHAIN_IDs as _MAINNET_CHAIN_IDs, PUBLIC_NETWORKS } from "../constants";
3
+ var MAINNET_CHAIN_IDs = Object.values(_MAINNET_CHAIN_IDs);
4
+ // Chain-specific overrides for when the Infura endpoint does not match the canonical chain name.
5
+ var endpoints = (_a = {},
6
+ _a[CHAIN_IDs.ARBITRUM] = "arbitrum",
7
+ _a);
8
+ export function getURL(chainId, apiKey, transport) {
9
+ var _a, _b;
10
+ var host = (_a = endpoints[chainId]) !== null && _a !== void 0 ? _a : (_b = PUBLIC_NETWORKS[chainId]) === null || _b === void 0 ? void 0 : _b.name;
11
+ if (!host) {
12
+ throw new Error("No known Infura provider for chainId ".concat(chainId));
13
+ }
14
+ if (chainId !== CHAIN_IDs.MAINNET && MAINNET_CHAIN_IDs.includes(chainId)) {
15
+ host = "".concat(host, "-mainnet");
16
+ }
17
+ host = host.toLowerCase().replace(" ", "-");
18
+ return transport === "https" ? "https://".concat(host, ".infura.io/v3/").concat(apiKey) : "wss://".concat(host, ".infura.io/ws/v3/").concat(apiKey);
19
+ }
20
+ //# sourceMappingURL=infura.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"infura.js","sourceRoot":"","sources":["../../../src/providers/infura.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,iBAAiB,IAAI,kBAAkB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAGnG,IAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAE5D,iGAAiG;AACjG,IAAM,SAAS;IACb,GAAC,SAAS,CAAC,QAAQ,IAAG,UAAU;OACjC,CAAC;AAEF,MAAM,UAAU,MAAM,CAAC,OAAe,EAAE,MAAc,EAAE,SAAuB;;IAC7E,IAAI,IAAI,GAAG,MAAA,SAAS,CAAC,OAAO,CAAC,mCAAI,MAAA,eAAe,CAAC,OAAO,CAAC,0CAAE,IAAI,CAAC;IAChE,IAAI,CAAC,IAAI,EAAE;QACT,MAAM,IAAI,KAAK,CAAC,+CAAwC,OAAO,CAAE,CAAC,CAAC;KACpE;IAED,IAAI,OAAO,KAAK,SAAS,CAAC,OAAO,IAAI,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;QACxE,IAAI,GAAG,UAAG,IAAI,aAAU,CAAC;KAC1B;IACD,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAE5C,OAAO,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC,kBAAW,IAAI,2BAAiB,MAAM,CAAE,CAAC,CAAC,CAAC,gBAAS,IAAI,8BAAoB,MAAM,CAAE,CAAC;AACtH,CAAC"}
@@ -0,0 +1,2 @@
1
+ export type RPCProvider = "INFURA" | "ALCHEMY";
2
+ export type RPCTransport = "https" | "wss";
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/providers/types.ts"],"names":[],"mappings":""}
@@ -1,4 +1,20 @@
1
1
  import { providers } from "ethers";
2
+ import { RPCProvider, RPCTransport } from "./types";
3
+ /**
4
+ * Type predicate for RPCProvider type.
5
+ * @param provider Provider string (ALCHEMY, INFURA, ...).
6
+ * @returns True if the provider string is a supported provider.
7
+ */
8
+ export declare function isSupportedProvider(provider: string): provider is RPCProvider;
9
+ /**
10
+ * Produce an RPC for a given RPC provider, chainId API key and transport.
11
+ * @param provider RPC provider identifier (ALCHEMY, INFURA, ...)
12
+ * @param chainId Chain ID to obtain a URL for.
13
+ * @param apiKey API key for provider.
14
+ * @param transport Optional transport specifier (HTTPS or WSS).
15
+ * @returns An RPC URL confirming to the specified inputs.
16
+ */
17
+ export declare function getURL(provider: RPCProvider, chainId: number, apiKey: string, transport?: RPCTransport): string;
2
18
  export declare function compareResultsAndFilterIgnoredKeys(ignoredKeys: string[], _objA: Record<string, unknown>, _objB: Record<string, unknown>): boolean;
3
19
  export declare function compareArrayResultsWithIgnoredKeys(ignoredKeys: string[], objA: unknown[], objB: unknown[]): boolean;
4
20
  /**
@@ -1,7 +1,40 @@
1
- // The async/queue library has a task-based interface for building a concurrent queue.
2
1
  import { __assign } from "tslib";
3
- import { isDefined } from "../utils";
2
+ // The async/queue library has a task-based interface for building a concurrent queue.
3
+ import assert from "assert";
4
4
  import { isEqual } from "lodash";
5
+ import { isDefined } from "../utils";
6
+ import * as alchemy from "./alchemy";
7
+ import * as infura from "./infura";
8
+ /**
9
+ * Infura DIN is identified separately to allow it to be configured explicitly.
10
+ */
11
+ var PROVIDERS = {
12
+ ALCHEMY: alchemy.getURL,
13
+ INFURA: infura.getURL,
14
+ INFURA_DIN: infura.getURL,
15
+ };
16
+ /**
17
+ * Type predicate for RPCProvider type.
18
+ * @param provider Provider string (ALCHEMY, INFURA, ...).
19
+ * @returns True if the provider string is a supported provider.
20
+ */
21
+ export function isSupportedProvider(provider) {
22
+ return ["ALCHEMY", "INFURA", "INFURA_DIN"].includes(provider);
23
+ }
24
+ /**
25
+ * Produce an RPC for a given RPC provider, chainId API key and transport.
26
+ * @param provider RPC provider identifier (ALCHEMY, INFURA, ...)
27
+ * @param chainId Chain ID to obtain a URL for.
28
+ * @param apiKey API key for provider.
29
+ * @param transport Optional transport specifier (HTTPS or WSS).
30
+ * @returns An RPC URL confirming to the specified inputs.
31
+ */
32
+ export function getURL(provider, chainId, apiKey, transport) {
33
+ if (transport === void 0) { transport = "https"; }
34
+ var getURL = PROVIDERS[provider];
35
+ assert(getURL, "Unsupported RPC provider (".concat(provider, ")"));
36
+ return getURL(chainId, apiKey, transport);
37
+ }
5
38
  /**
6
39
  * Deletes keys from an object and returns new copy of object without ignored keys
7
40
  * @param ignoredKeys
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/providers/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/providers/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { RPCTransport } from "./types";
2
+ export declare function getURL(chainId: number, apiKey: string, transport: RPCTransport): string;
3
+ //# sourceMappingURL=alchemy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alchemy.d.ts","sourceRoot":"","sources":["../../../src/providers/alchemy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAcvC,wBAAgB,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,GAAG,MAAM,CAYvF"}
@@ -2,5 +2,6 @@ export * from "./rateLimitedProvider";
2
2
  export * from "./cachedProvider";
3
3
  export * from "./retryProvider";
4
4
  export * from "./constants";
5
+ export * from "./types";
5
6
  export * from "./utils";
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { RPCTransport } from "./types";
2
+ export declare function getURL(chainId: number, apiKey: string, transport: RPCTransport): string;
3
+ //# sourceMappingURL=infura.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"infura.d.ts","sourceRoot":"","sources":["../../../src/providers/infura.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AASvC,wBAAgB,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,GAAG,MAAM,CAYvF"}
@@ -0,0 +1,3 @@
1
+ export type RPCProvider = "INFURA" | "ALCHEMY";
2
+ export type RPCTransport = "https" | "wss";
3
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/providers/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;AAC/C,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,KAAK,CAAC"}
@@ -1,4 +1,20 @@
1
1
  import { providers } from "ethers";
2
+ import { RPCProvider, RPCTransport } from "./types";
3
+ /**
4
+ * Type predicate for RPCProvider type.
5
+ * @param provider Provider string (ALCHEMY, INFURA, ...).
6
+ * @returns True if the provider string is a supported provider.
7
+ */
8
+ export declare function isSupportedProvider(provider: string): provider is RPCProvider;
9
+ /**
10
+ * Produce an RPC for a given RPC provider, chainId API key and transport.
11
+ * @param provider RPC provider identifier (ALCHEMY, INFURA, ...)
12
+ * @param chainId Chain ID to obtain a URL for.
13
+ * @param apiKey API key for provider.
14
+ * @param transport Optional transport specifier (HTTPS or WSS).
15
+ * @returns An RPC URL confirming to the specified inputs.
16
+ */
17
+ export declare function getURL(provider: RPCProvider, chainId: number, apiKey: string, transport?: RPCTransport): string;
2
18
  export declare function compareResultsAndFilterIgnoredKeys(ignoredKeys: string[], _objA: Record<string, unknown>, _objB: Record<string, unknown>): boolean;
3
19
  export declare function compareArrayResultsWithIgnoredKeys(ignoredKeys: string[], objA: unknown[], objB: unknown[]): boolean;
4
20
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/providers/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAqBnC,wBAAgB,kCAAkC,CAChD,WAAW,EAAE,MAAM,EAAE,EACrB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,OAAO,CAOT;AAED,wBAAgB,kCAAkC,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAOnH;AAuBD;;GAEG;AACH,MAAM,WAAW,aAAa;IAE5B,QAAQ,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAInC,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,MAAM,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;CAChC;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,SAAS,CAAC,qBAAqB,EAAE,YAAY,EAAE,MAAM,UAElG;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;;;EAG7F;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,GAAG,OAAO,CAkBnG;AAED,oBAAY,SAAS;IACnB,IAAI,IAAA;IACJ,QAAQ,IAAA;IACR,MAAM,IAAA;CACP"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/providers/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAGnC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAapD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,IAAI,WAAW,CAE7E;AAED;;;;;;;GAOG;AACH,wBAAgB,MAAM,CACpB,QAAQ,EAAE,WAAW,EACrB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,SAAS,GAAE,YAAsB,GAChC,MAAM,CAIR;AAmBD,wBAAgB,kCAAkC,CAChD,WAAW,EAAE,MAAM,EAAE,EACrB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,OAAO,CAOT;AAED,wBAAgB,kCAAkC,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAOnH;AAuBD;;GAEG;AACH,MAAM,WAAW,aAAa;IAE5B,QAAQ,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAInC,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,MAAM,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;CAChC;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,SAAS,CAAC,qBAAqB,EAAE,YAAY,EAAE,MAAM,UAElG;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;;;EAG7F;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,GAAG,OAAO,CAkBnG;AAED,oBAAY,SAAS;IACnB,IAAI,IAAA;IACJ,QAAQ,IAAA;IACR,MAAM,IAAA;CACP"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@across-protocol/sdk",
3
3
  "author": "UMA Team",
4
- "version": "3.1.26",
4
+ "version": "3.1.27",
5
5
  "license": "AGPL-3.0",
6
6
  "homepage": "https://docs.across.to/reference/sdk",
7
7
  "files": [
@@ -0,0 +1,28 @@
1
+ import { CHAIN_IDs, MAINNET_CHAIN_IDs as _MAINNET_CHAIN_IDs, PUBLIC_NETWORKS } from "../constants";
2
+ import { RPCTransport } from "./types";
3
+
4
+ const MAINNET_CHAIN_IDs = Object.values(_MAINNET_CHAIN_IDs);
5
+
6
+ // Chain-specific overrides for when the Alchemy endpoint does not match the canonical chain name.
7
+ const endpoints: { [chainId: string]: string } = {
8
+ [CHAIN_IDs.ARBITRUM]: "arb",
9
+ [CHAIN_IDs.ARBITRUM_SEPOLIA]: "arb-sepolia",
10
+ [CHAIN_IDs.MAINNET]: "eth",
11
+ [CHAIN_IDs.SEPOLIA]: "eth-sepolia",
12
+ [CHAIN_IDs.OPTIMISM]: "opt",
13
+ [CHAIN_IDs.OPTIMISM_SEPOLIA]: "opt-sepolia",
14
+ };
15
+
16
+ export function getURL(chainId: number, apiKey: string, transport: RPCTransport): string {
17
+ let host = endpoints[chainId] ?? PUBLIC_NETWORKS[chainId]?.name;
18
+ if (!host) {
19
+ throw new Error(`No known Alchemy provider for chainId ${chainId}`);
20
+ }
21
+
22
+ if (MAINNET_CHAIN_IDs.includes(chainId)) {
23
+ host = `${host}-mainnet`;
24
+ }
25
+ host = host.toLowerCase().replace(" ", "-");
26
+
27
+ return `${transport}://${host}.g.alchemy.com/v2/${apiKey}`;
28
+ }
@@ -2,4 +2,5 @@ export * from "./rateLimitedProvider";
2
2
  export * from "./cachedProvider";
3
3
  export * from "./retryProvider";
4
4
  export * from "./constants";
5
+ export * from "./types";
5
6
  export * from "./utils";
@@ -0,0 +1,23 @@
1
+ import { CHAIN_IDs, MAINNET_CHAIN_IDs as _MAINNET_CHAIN_IDs, PUBLIC_NETWORKS } from "../constants";
2
+ import { RPCTransport } from "./types";
3
+
4
+ const MAINNET_CHAIN_IDs = Object.values(_MAINNET_CHAIN_IDs);
5
+
6
+ // Chain-specific overrides for when the Infura endpoint does not match the canonical chain name.
7
+ const endpoints: { [chainId: string]: string } = {
8
+ [CHAIN_IDs.ARBITRUM]: "arbitrum",
9
+ };
10
+
11
+ export function getURL(chainId: number, apiKey: string, transport: RPCTransport): string {
12
+ let host = endpoints[chainId] ?? PUBLIC_NETWORKS[chainId]?.name;
13
+ if (!host) {
14
+ throw new Error(`No known Infura provider for chainId ${chainId}`);
15
+ }
16
+
17
+ if (chainId !== CHAIN_IDs.MAINNET && MAINNET_CHAIN_IDs.includes(chainId)) {
18
+ host = `${host}-mainnet`;
19
+ }
20
+ host = host.toLowerCase().replace(" ", "-");
21
+
22
+ return transport === "https" ? `https://${host}.infura.io/v3/${apiKey}` : `wss://${host}.infura.io/ws/v3/${apiKey}`;
23
+ }
@@ -0,0 +1,2 @@
1
+ export type RPCProvider = "INFURA" | "ALCHEMY";
2
+ export type RPCTransport = "https" | "wss";
@@ -1,8 +1,48 @@
1
1
  // The async/queue library has a task-based interface for building a concurrent queue.
2
-
2
+ import assert from "assert";
3
3
  import { providers } from "ethers";
4
- import { isDefined } from "../utils";
5
4
  import { isEqual } from "lodash";
5
+ import { isDefined } from "../utils";
6
+ import { RPCProvider, RPCTransport } from "./types";
7
+ import * as alchemy from "./alchemy";
8
+ import * as infura from "./infura";
9
+
10
+ /**
11
+ * Infura DIN is identified separately to allow it to be configured explicitly.
12
+ */
13
+ const PROVIDERS = {
14
+ ALCHEMY: alchemy.getURL,
15
+ INFURA: infura.getURL,
16
+ INFURA_DIN: infura.getURL,
17
+ };
18
+
19
+ /**
20
+ * Type predicate for RPCProvider type.
21
+ * @param provider Provider string (ALCHEMY, INFURA, ...).
22
+ * @returns True if the provider string is a supported provider.
23
+ */
24
+ export function isSupportedProvider(provider: string): provider is RPCProvider {
25
+ return ["ALCHEMY", "INFURA", "INFURA_DIN"].includes(provider);
26
+ }
27
+
28
+ /**
29
+ * Produce an RPC for a given RPC provider, chainId API key and transport.
30
+ * @param provider RPC provider identifier (ALCHEMY, INFURA, ...)
31
+ * @param chainId Chain ID to obtain a URL for.
32
+ * @param apiKey API key for provider.
33
+ * @param transport Optional transport specifier (HTTPS or WSS).
34
+ * @returns An RPC URL confirming to the specified inputs.
35
+ */
36
+ export function getURL(
37
+ provider: RPCProvider,
38
+ chainId: number,
39
+ apiKey: string,
40
+ transport: RPCTransport = "https"
41
+ ): string {
42
+ const getURL = PROVIDERS[provider];
43
+ assert(getURL, `Unsupported RPC provider (${provider})`);
44
+ return getURL(chainId, apiKey, transport);
45
+ }
6
46
 
7
47
  /**
8
48
  * Deletes keys from an object and returns new copy of object without ignored keys