@across-protocol/sdk 4.3.32 → 4.3.33
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.
- package/dist/cjs/providers/quicknode.d.ts +2 -0
- package/dist/cjs/providers/quicknode.js +25 -0
- package/dist/cjs/providers/quicknode.js.map +1 -0
- package/dist/cjs/providers/utils.js +3 -1
- package/dist/cjs/providers/utils.js.map +1 -1
- package/dist/esm/providers/quicknode.d.ts +2 -0
- package/dist/esm/providers/quicknode.js +22 -0
- package/dist/esm/providers/quicknode.js.map +1 -0
- package/dist/esm/providers/utils.js +3 -1
- package/dist/esm/providers/utils.js.map +1 -1
- package/dist/types/providers/quicknode.d.ts +3 -0
- package/dist/types/providers/quicknode.d.ts.map +1 -0
- package/dist/types/providers/utils.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/providers/quicknode.ts +26 -0
- package/src/providers/utils.ts +3 -1
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getURL = void 0;
|
|
4
|
+
var constants_1 = require("../constants");
|
|
5
|
+
function getURL(chainId, apiKey, transport) {
|
|
6
|
+
var _a, _b;
|
|
7
|
+
var envVar = "RPC_PROVIDER_KEY_QUICKNODE_PREFIX";
|
|
8
|
+
var prefix = (_a = process.env["".concat(envVar, "_").concat(chainId)]) !== null && _a !== void 0 ? _a : process.env[envVar];
|
|
9
|
+
if (!prefix) {
|
|
10
|
+
throw new Error("No API key prefix supplied for QuickNode (".concat(envVar, ")"));
|
|
11
|
+
}
|
|
12
|
+
if (chainId === constants_1.CHAIN_IDs.MAINNET) {
|
|
13
|
+
return "".concat(transport, "://").concat(prefix, ".quicknode.pro/").concat(apiKey);
|
|
14
|
+
}
|
|
15
|
+
if (chainId === constants_1.CHAIN_IDs.OPTIMISM) {
|
|
16
|
+
return "".concat(transport, "://").concat(prefix, ".optimism.quicknode.pro/").concat(apiKey);
|
|
17
|
+
}
|
|
18
|
+
var chain = (_b = constants_1.PUBLIC_NETWORKS[chainId]) === null || _b === void 0 ? void 0 : _b.name.toLowerCase().replace(" ", "-");
|
|
19
|
+
if (!chain) {
|
|
20
|
+
throw new Error("No known QuickNode provider for chainId ".concat(chainId));
|
|
21
|
+
}
|
|
22
|
+
return "".concat(transport, "://").concat(prefix, ".").concat(chain, ".quicknode.pro/").concat(apiKey);
|
|
23
|
+
}
|
|
24
|
+
exports.getURL = getURL;
|
|
25
|
+
//# sourceMappingURL=quicknode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quicknode.js","sourceRoot":"","sources":["../../../src/providers/quicknode.ts"],"names":[],"mappings":";;;AAAA,0CAA0D;AAG1D,SAAgB,MAAM,CAAC,OAAe,EAAE,MAAc,EAAE,SAAuB;;IAC7E,IAAM,MAAM,GAAG,mCAAmC,CAAC;IACnD,IAAM,MAAM,GAAG,MAAA,OAAO,CAAC,GAAG,CAAC,UAAG,MAAM,cAAI,OAAO,CAAE,CAAC,mCAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1E,IAAI,CAAC,MAAM,EAAE;QACX,MAAM,IAAI,KAAK,CAAC,oDAA6C,MAAM,MAAG,CAAC,CAAC;KACzE;IAGD,IAAI,OAAO,KAAK,qBAAS,CAAC,OAAO,EAAE;QACjC,OAAO,UAAG,SAAS,gBAAM,MAAM,4BAAkB,MAAM,CAAE,CAAC;KAC3D;IAED,IAAI,OAAO,KAAK,qBAAS,CAAC,QAAQ,EAAE;QAClC,OAAO,UAAG,SAAS,gBAAM,MAAM,qCAA2B,MAAM,CAAE,CAAC;KACpE;IAED,IAAM,KAAK,GAAG,MAAA,2BAAe,CAAC,OAAO,CAAC,0CAAE,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC7E,IAAI,CAAC,KAAK,EAAE;QACV,MAAM,IAAI,KAAK,CAAC,kDAA2C,OAAO,CAAE,CAAC,CAAC;KACvE;IAED,OAAO,UAAG,SAAS,gBAAM,MAAM,cAAI,KAAK,4BAAkB,MAAM,CAAE,CAAC;AACrE,CAAC;AAtBD,wBAsBC"}
|
|
@@ -8,14 +8,16 @@ var utils_1 = require("../utils");
|
|
|
8
8
|
var alchemy = tslib_1.__importStar(require("./alchemy"));
|
|
9
9
|
var infura = tslib_1.__importStar(require("./infura"));
|
|
10
10
|
var drpc = tslib_1.__importStar(require("./drpc"));
|
|
11
|
+
var quicknode = tslib_1.__importStar(require("./quicknode"));
|
|
11
12
|
var PROVIDERS = {
|
|
12
13
|
ALCHEMY: alchemy.getURL,
|
|
13
14
|
INFURA: infura.getURL,
|
|
14
15
|
INFURA_DIN: infura.getURL,
|
|
15
16
|
DRPC: drpc.getURL,
|
|
17
|
+
QUICKNODE: quicknode.getURL,
|
|
16
18
|
};
|
|
17
19
|
function isSupportedProvider(provider) {
|
|
18
|
-
return
|
|
20
|
+
return Object.keys(PROVIDERS).includes(provider);
|
|
19
21
|
}
|
|
20
22
|
exports.isSupportedProvider = isSupportedProvider;
|
|
21
23
|
function getURL(provider, chainId, apiKey, transport) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/providers/utils.ts"],"names":[],"mappings":";;;;AACA,0DAA4B;AAE5B,iCAAiC;AACjC,kCAAqC;AAErC,yDAAqC;AACrC,uDAAmC;AACnC,mDAA+B;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/providers/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { CHAIN_IDs, PUBLIC_NETWORKS } from "../constants";
|
|
2
|
+
export function getURL(chainId, apiKey, transport) {
|
|
3
|
+
var _a, _b;
|
|
4
|
+
var envVar = "RPC_PROVIDER_KEY_QUICKNODE_PREFIX";
|
|
5
|
+
var prefix = (_a = process.env["".concat(envVar, "_").concat(chainId)]) !== null && _a !== void 0 ? _a : process.env[envVar];
|
|
6
|
+
if (!prefix) {
|
|
7
|
+
throw new Error("No API key prefix supplied for QuickNode (".concat(envVar, ")"));
|
|
8
|
+
}
|
|
9
|
+
/* Ethereum and Optimism are special snowflakes */
|
|
10
|
+
if (chainId === CHAIN_IDs.MAINNET) {
|
|
11
|
+
return "".concat(transport, "://").concat(prefix, ".quicknode.pro/").concat(apiKey);
|
|
12
|
+
}
|
|
13
|
+
if (chainId === CHAIN_IDs.OPTIMISM) {
|
|
14
|
+
return "".concat(transport, "://").concat(prefix, ".optimism.quicknode.pro/").concat(apiKey);
|
|
15
|
+
}
|
|
16
|
+
var chain = (_b = PUBLIC_NETWORKS[chainId]) === null || _b === void 0 ? void 0 : _b.name.toLowerCase().replace(" ", "-");
|
|
17
|
+
if (!chain) {
|
|
18
|
+
throw new Error("No known QuickNode provider for chainId ".concat(chainId));
|
|
19
|
+
}
|
|
20
|
+
return "".concat(transport, "://").concat(prefix, ".").concat(chain, ".quicknode.pro/").concat(apiKey);
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=quicknode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quicknode.js","sourceRoot":"","sources":["../../../src/providers/quicknode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAG1D,MAAM,UAAU,MAAM,CAAC,OAAe,EAAE,MAAc,EAAE,SAAuB;;IAC7E,IAAM,MAAM,GAAG,mCAAmC,CAAC;IACnD,IAAM,MAAM,GAAG,MAAA,OAAO,CAAC,GAAG,CAAC,UAAG,MAAM,cAAI,OAAO,CAAE,CAAC,mCAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1E,IAAI,CAAC,MAAM,EAAE;QACX,MAAM,IAAI,KAAK,CAAC,oDAA6C,MAAM,MAAG,CAAC,CAAC;KACzE;IAED,kDAAkD;IAClD,IAAI,OAAO,KAAK,SAAS,CAAC,OAAO,EAAE;QACjC,OAAO,UAAG,SAAS,gBAAM,MAAM,4BAAkB,MAAM,CAAE,CAAC;KAC3D;IAED,IAAI,OAAO,KAAK,SAAS,CAAC,QAAQ,EAAE;QAClC,OAAO,UAAG,SAAS,gBAAM,MAAM,qCAA2B,MAAM,CAAE,CAAC;KACpE;IAED,IAAM,KAAK,GAAG,MAAA,eAAe,CAAC,OAAO,CAAC,0CAAE,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC7E,IAAI,CAAC,KAAK,EAAE;QACV,MAAM,IAAI,KAAK,CAAC,kDAA2C,OAAO,CAAE,CAAC,CAAC;KACvE;IAED,OAAO,UAAG,SAAS,gBAAM,MAAM,cAAI,KAAK,4BAAkB,MAAM,CAAE,CAAC;AACrE,CAAC"}
|
|
@@ -6,6 +6,7 @@ import { isDefined } from "../utils";
|
|
|
6
6
|
import * as alchemy from "./alchemy";
|
|
7
7
|
import * as infura from "./infura";
|
|
8
8
|
import * as drpc from "./drpc";
|
|
9
|
+
import * as quicknode from "./quicknode";
|
|
9
10
|
/**
|
|
10
11
|
* Infura DIN is identified separately to allow it to be configured explicitly.
|
|
11
12
|
*/
|
|
@@ -14,6 +15,7 @@ var PROVIDERS = {
|
|
|
14
15
|
INFURA: infura.getURL,
|
|
15
16
|
INFURA_DIN: infura.getURL,
|
|
16
17
|
DRPC: drpc.getURL,
|
|
18
|
+
QUICKNODE: quicknode.getURL,
|
|
17
19
|
};
|
|
18
20
|
/**
|
|
19
21
|
* Type predicate for RPCProvider type.
|
|
@@ -21,7 +23,7 @@ var PROVIDERS = {
|
|
|
21
23
|
* @returns True if the provider string is a supported provider.
|
|
22
24
|
*/
|
|
23
25
|
export function isSupportedProvider(provider) {
|
|
24
|
-
return
|
|
26
|
+
return Object.keys(PROVIDERS).includes(provider);
|
|
25
27
|
}
|
|
26
28
|
/**
|
|
27
29
|
* Produce an RPC for a given RPC provider, chainId API key and transport.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/providers/utils.ts"],"names":[],"mappings":";AAAA,sFAAsF;AACtF,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/providers/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quicknode.d.ts","sourceRoot":"","sources":["../../../src/providers/quicknode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,wBAAgB,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,GAAG,MAAM,CAsBvF"}
|
|
@@ -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;AAGnC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;
|
|
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;AAiBpD;;;;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;AA4BD;;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;IACN,oBAAoB,IAAA;CACrB"}
|
package/package.json
CHANGED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { CHAIN_IDs, PUBLIC_NETWORKS } from "../constants";
|
|
2
|
+
import { RPCTransport } from "./types";
|
|
3
|
+
|
|
4
|
+
export function getURL(chainId: number, apiKey: string, transport: RPCTransport): string {
|
|
5
|
+
const envVar = "RPC_PROVIDER_KEY_QUICKNODE_PREFIX";
|
|
6
|
+
const prefix = process.env[`${envVar}_${chainId}`] ?? process.env[envVar];
|
|
7
|
+
if (!prefix) {
|
|
8
|
+
throw new Error(`No API key prefix supplied for QuickNode (${envVar})`);
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
/* Ethereum and Optimism are special snowflakes */
|
|
12
|
+
if (chainId === CHAIN_IDs.MAINNET) {
|
|
13
|
+
return `${transport}://${prefix}.quicknode.pro/${apiKey}`;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
if (chainId === CHAIN_IDs.OPTIMISM) {
|
|
17
|
+
return `${transport}://${prefix}.optimism.quicknode.pro/${apiKey}`;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
const chain = PUBLIC_NETWORKS[chainId]?.name.toLowerCase().replace(" ", "-");
|
|
21
|
+
if (!chain) {
|
|
22
|
+
throw new Error(`No known QuickNode provider for chainId ${chainId}`);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
return `${transport}://${prefix}.${chain}.quicknode.pro/${apiKey}`;
|
|
26
|
+
}
|
package/src/providers/utils.ts
CHANGED
|
@@ -7,6 +7,7 @@ import { RPCProvider, RPCTransport } from "./types";
|
|
|
7
7
|
import * as alchemy from "./alchemy";
|
|
8
8
|
import * as infura from "./infura";
|
|
9
9
|
import * as drpc from "./drpc";
|
|
10
|
+
import * as quicknode from "./quicknode";
|
|
10
11
|
|
|
11
12
|
/**
|
|
12
13
|
* Infura DIN is identified separately to allow it to be configured explicitly.
|
|
@@ -16,6 +17,7 @@ const PROVIDERS = {
|
|
|
16
17
|
INFURA: infura.getURL,
|
|
17
18
|
INFURA_DIN: infura.getURL,
|
|
18
19
|
DRPC: drpc.getURL,
|
|
20
|
+
QUICKNODE: quicknode.getURL,
|
|
19
21
|
};
|
|
20
22
|
|
|
21
23
|
/**
|
|
@@ -24,7 +26,7 @@ const PROVIDERS = {
|
|
|
24
26
|
* @returns True if the provider string is a supported provider.
|
|
25
27
|
*/
|
|
26
28
|
export function isSupportedProvider(provider: string): provider is RPCProvider {
|
|
27
|
-
return
|
|
29
|
+
return Object.keys(PROVIDERS).includes(provider);
|
|
28
30
|
}
|
|
29
31
|
|
|
30
32
|
/**
|