@ercworldio/blockchain-shared 1.0.3-dev.0-PROJ-1281.3 → 1.0.3-dev.0-PROJ-1281.4

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.
@@ -8,7 +8,8 @@ export declare enum RpcType {
8
8
  }
9
9
  export declare enum RpcProviderType {
10
10
  ANKR = "ankr",
11
- QUICKNODE = "quicknode"
11
+ QUICKNODE = "quicknode",
12
+ ALCHEMY = "alchemy"
12
13
  }
13
14
  declare class Provider extends BaseErrors {
14
15
  private config;
@@ -1 +1 @@
1
- {"version":3,"file":"Provider.d.ts","sourceRoot":"","sources":["../../src/chains/Provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,OAAO,UAAU,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEvD,oBAAY,OAAO;IACf,IAAI,IAAI;IACR,GAAG,IAAI;CACV;AAED,oBAAY,eAAe;IACvB,IAAI,SAAS;IACb,SAAS,cAAc;CAC1B;AAmBD,cAAM,QAAS,SAAQ,UAAU;IAE7B,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,6BAA6B,CAAsB;IAC3D,OAAO,CAAC,wBAAwB,CAAS;gBAC7B,MAAM,EAAE,OAAO;IAqB3B,eAAe,GAAI,UAAU,OAAO,YAoBnC;IAED,mBAAmB,GAAI,UAAU,OAAO,EAAE,cAAc,aAAa,EAAE,SAAS,OAAO,EAAE,eAAc,eAAsC;;MAyB5I;IAED;;;;;;;;;OASG;IACH,WAAW,GAAI,SAAS,MAAM,EAAE,SAAS,OAAO,EAAE,eAAc,eAAsC;;;;;;MAcrG;CAGJ;AAGD,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"Provider.d.ts","sourceRoot":"","sources":["../../src/chains/Provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,OAAO,UAAU,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGvD,oBAAY,OAAO;IACf,IAAI,IAAI;IACR,GAAG,IAAI;CACV;AAED,oBAAY,eAAe;IACvB,IAAI,SAAS;IACb,SAAS,cAAc;IACvB,OAAO,YAAY;CACtB;AAmBD,cAAM,QAAS,SAAQ,UAAU;IAE7B,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,6BAA6B,CAAsB;IAC3D,OAAO,CAAC,wBAAwB,CAAS;gBAC7B,MAAM,EAAE,OAAO;IAqB3B,eAAe,GAAI,UAAU,OAAO,YAoBnC;IAED,mBAAmB,GAAI,UAAU,OAAO,EAAE,cAAc,aAAa,EAAE,SAAS,OAAO,EAAE,eAAc,eAAsC;;MA8B5I;IAED;;;;;;;;;OASG;IACH,WAAW,GAAI,SAAS,MAAM,EAAE,SAAS,OAAO,EAAE,eAAc,eAAsC;;;;;;MAcrG;CAGJ;AAGD,eAAe,QAAQ,CAAC"}
@@ -7,6 +7,7 @@ exports.RpcProviderType = exports.RpcType = void 0;
7
7
  const ethers_1 = require("ethers");
8
8
  const ChainManager_1 = __importDefault(require("../services/ChainManager"));
9
9
  const errors_1 = __importDefault(require("../errors/errors"));
10
+ const alchemy_1 = require("../services/utils/alchemy");
10
11
  var RpcType;
11
12
  (function (RpcType) {
12
13
  RpcType[RpcType["HTTP"] = 0] = "HTTP";
@@ -16,6 +17,7 @@ var RpcProviderType;
16
17
  (function (RpcProviderType) {
17
18
  RpcProviderType["ANKR"] = "ankr";
18
19
  RpcProviderType["QUICKNODE"] = "quicknode";
20
+ RpcProviderType["ALCHEMY"] = "alchemy";
19
21
  })(RpcProviderType || (exports.RpcProviderType = RpcProviderType = {}));
20
22
  const avax_c_chain_rpc_path = '/ext/bc/C/rpc/';
21
23
  const quicknodeChainIdToName = {
@@ -62,6 +64,13 @@ class Provider extends errors_1.default {
62
64
  };
63
65
  this.getRpcUrlComponents = (chain_id, chain_config, rpcType, providerType = RpcProviderType.ANKR) => {
64
66
  switch (providerType) {
67
+ case RpcProviderType.ALCHEMY:
68
+ if (rpcType === RpcType.WSS)
69
+ throw new Error(`Alchemy Endpoints does not support WSS`);
70
+ if (!this.config.config.alchemyApiKey)
71
+ throw new Error(this.RequireParameter("secret: alchemyApiKey"));
72
+ const alchemy_network_name = (0, alchemy_1.get_alchemy_chain_name)(chain_id);
73
+ return { url: `https://${alchemy_network_name}.g.alchemy.com/${this.config.config.alchemyApiKey}` };
65
74
  case RpcProviderType.ANKR:
66
75
  if (!this.config.config.ankrApiKey)
67
76
  throw new Error(this.RequireParameter("secret: ankrApiKey"));
@@ -5,6 +5,7 @@ import { BlockchainType } from "../interfaces";
5
5
  import { IConfig } from "../interfaces/config";
6
6
  import { IDatabasePool } from "../interfaces/database";
7
7
  import { SweepJob } from "../entities/SweepJob";
8
+ import { RpcProviderType } from "../chains/Provider";
8
9
  export declare const min_solana_funding_lamports: number;
9
10
  export interface SweepSolanaResult {
10
11
  status: boolean;
@@ -72,8 +73,35 @@ export declare const handle_transfer_batch: (payloads: SolanaTransactionRequest[
72
73
  }>;
73
74
  export declare const find_transfer_instruction: (tx: SolanaTransactionLog, receiver?: string) => TransferInstructionRecord;
74
75
  export declare const find_transfer_instruction_depr: (tx: SolanaTransactionLog) => TransferInstructionRecord;
76
+ /**
77
+ * Return an ankr-based solana connection
78
+ * @param chainId
79
+ * @param config
80
+ * @returns
81
+ */
75
82
  export declare const getSolanaConnection: (chainId: string, config: IConfig) => web3.Connection;
76
- export declare const getSolanaArchivalConnection: (chainId: string, config: IConfig) => web3.Connection;
83
+ /**
84
+ * Return a Solana connection based on the provided rpc provider type.
85
+ * Default to use Quicknode provider
86
+ * @param chainId
87
+ * @param config
88
+ * @param rpcProvider
89
+ * @returns
90
+ */
91
+ export declare const getSolanaArchivalConnection: (chainId: string, config: IConfig, rpcProvider?: RpcProviderType) => web3.Connection;
92
+ /**
93
+ * Returns the respective RPC url for a given rpc provider type and chain id
94
+ * @param chainId
95
+ * @param config
96
+ * @param rpcProvider
97
+ * @returns
98
+ */
99
+ export declare const getRpcUrl: (chainId: string, config: IConfig, rpcProvider: RpcProviderType) => string;
100
+ /**
101
+ * Returns a public solana RPC url
102
+ * @param chainId
103
+ * @returns
104
+ */
77
105
  export declare const getSolanaConnectionPublic: (chainId: string) => web3.Connection;
78
106
  export declare const get_token_account_info: (chainId: string, mint_address: string, owner_address: string, config: IConfig) => Promise<{
79
107
  sol_balance_lamports: number | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"solana.d.ts","sourceRoot":"","sources":["../../src/utils/solana.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"solana.d.ts","sourceRoot":"","sources":["../../src/utils/solana.ts"],"names":[],"mappings":"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"}
@@ -45,7 +45,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
45
45
  return (mod && mod.__esModule) ? mod : { "default": mod };
46
46
  };
47
47
  Object.defineProperty(exports, "__esModule", { value: true });
48
- exports.check_approve_delegate = exports.handle_create_versioned_transaction_spl = exports.estimate_withdraw_gas_cost = exports.create_versioned_transaction_solana = exports.get_token_account_info = exports.getSolanaConnectionPublic = exports.getSolanaArchivalConnection = exports.getSolanaConnection = exports.find_transfer_instruction_depr = exports.find_transfer_instruction = exports.handle_transfer_batch = exports.handle_sweep = exports.SplTransferCheckedLayout = exports.SolTransferInstructionLayout = exports.usdc_program_address = exports.solana_program_address = exports.min_solana_funding_lamports = void 0;
48
+ exports.check_approve_delegate = exports.handle_create_versioned_transaction_spl = exports.estimate_withdraw_gas_cost = exports.create_versioned_transaction_solana = exports.get_token_account_info = exports.getSolanaConnectionPublic = exports.getRpcUrl = exports.getSolanaArchivalConnection = exports.getSolanaConnection = exports.find_transfer_instruction_depr = exports.find_transfer_instruction = exports.handle_transfer_batch = exports.handle_sweep = exports.SplTransferCheckedLayout = exports.SolTransferInstructionLayout = exports.usdc_program_address = exports.solana_program_address = exports.min_solana_funding_lamports = void 0;
49
49
  const buffer_layout_utils_1 = require("@solana/buffer-layout-utils");
50
50
  const buffer_layout_1 = require("@solana/buffer-layout");
51
51
  const web3_js_1 = __importStar(require("@solana/web3.js"));
@@ -56,6 +56,8 @@ const WalletManager_1 = __importDefault(require("../services/WalletManager"));
56
56
  const Wallets_1 = require("./Wallets");
57
57
  const WithdrawalManager_1 = __importDefault(require("../services/WithdrawalManager"));
58
58
  const constants_1 = require("../constants");
59
+ const Provider_1 = require("../chains/Provider");
60
+ const alchemy_1 = require("../services/utils/alchemy");
59
61
  exports.min_solana_funding_lamports = 0.001 * web3_js_1.LAMPORTS_PER_SOL;
60
62
  exports.solana_program_address = "11111111111111111111111111111111";
61
63
  exports.usdc_program_address = "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA";
@@ -216,28 +218,72 @@ const find_transfer_instruction_depr = (tx) => {
216
218
  return { instruction: target_instruction, is_native: tx.transaction[0].message[0].account_keys[parseInt(program_index)] === exports.solana_program_address };
217
219
  };
218
220
  exports.find_transfer_instruction_depr = find_transfer_instruction_depr;
221
+ /**
222
+ * Return an ankr-based solana connection
223
+ * @param chainId
224
+ * @param config
225
+ * @returns
226
+ */
219
227
  const getSolanaConnection = (chainId, config) => {
220
228
  const network = ChainManager_1.default.getInstance(config).getChainConfigForChainIdSync(parseInt(chainId));
221
229
  if (!network)
222
230
  throw new Error(`Network config not set for ${chainId}`);
223
231
  const url = `${network.rpcBaseUrl}/${config.config.ankrApiKey}`;
224
- // const url = `${config.config.quicknodeEndpointBaseUrl.replace('*', config.config.qnEndpointSolanaNetwork)}/${config.config.quicknodeEndpointApikey}`
225
232
  return new web3_js_1.Connection(url, 'confirmed');
226
233
  };
227
234
  exports.getSolanaConnection = getSolanaConnection;
228
- const getSolanaArchivalConnection = (chainId, config) => {
235
+ /**
236
+ * Return a Solana connection based on the provided rpc provider type.
237
+ * Default to use Quicknode provider
238
+ * @param chainId
239
+ * @param config
240
+ * @param rpcProvider
241
+ * @returns
242
+ */
243
+ const getSolanaArchivalConnection = (chainId, config, rpcProvider = Provider_1.RpcProviderType.QUICKNODE) => {
244
+ const url = (0, exports.getRpcUrl)(chainId, config, rpcProvider);
245
+ return new web3_js_1.Connection(url, 'confirmed');
246
+ };
247
+ exports.getSolanaArchivalConnection = getSolanaArchivalConnection;
248
+ /**
249
+ * Returns the respective RPC url for a given rpc provider type and chain id
250
+ * @param chainId
251
+ * @param config
252
+ * @param rpcProvider
253
+ * @returns
254
+ */
255
+ const getRpcUrl = (chainId, config, rpcProvider) => {
229
256
  const network = ChainManager_1.default.getInstance(config).getChainConfigForChainIdSync(parseInt(chainId));
230
257
  if (!network)
231
258
  throw new Error(`Network config not set for ${chainId}`);
232
- if (!config.config.quicknodeEndpointBaseUrl)
233
- throw new Error(`quicknodeEndpointBaseUrl is required`);
234
- if (!config.config.quicknodeEndpointApikey)
235
- throw new Error(`quicknodeEndpointApikey is required`);
236
- // const url = `${network.rpcBaseUrl}/${config.config.ankrApiKey}`;
237
- const url = `${config.config.quicknodeEndpointBaseUrl}/${config.config.quicknodeEndpointApikey}`;
238
- return new web3_js_1.Connection(url, 'confirmed');
259
+ switch (rpcProvider) {
260
+ case Provider_1.RpcProviderType.ALCHEMY:
261
+ const alchemy_network_name = (0, alchemy_1.get_alchemy_chain_name)(chainId);
262
+ if (!alchemy_network_name)
263
+ throw new Error(`Cannot find alchemy network name for chain id ${chainId}`);
264
+ return `https://${alchemy_network_name}.g.alchemy.com/v2/${config.config.alchemyApiKey}`;
265
+ case Provider_1.RpcProviderType.ANKR:
266
+ if (!config.config.ankrApiKey)
267
+ throw new Error(`ankrApiKey is required`);
268
+ if (!network.rpcBaseUrl)
269
+ throw new Error(`rpcBaseUrl is not set in network config`);
270
+ return `${network.rpcBaseUrl}/${config.config.ankrApiKey}`;
271
+ case Provider_1.RpcProviderType.QUICKNODE:
272
+ if (!config.config.quicknodeEndpointBaseUrl)
273
+ throw new Error(`quicknodeEndpointBaseUrl is required`);
274
+ if (!config.config.quicknodeEndpointApikey)
275
+ throw new Error(`quicknodeEndpointApikey is required`);
276
+ return `${config.config.quicknodeEndpointBaseUrl}/${config.config.quicknodeEndpointApikey}`;
277
+ default:
278
+ throw new Error(`Unsupported rpc provider type ${rpcProvider}`);
279
+ }
239
280
  };
240
- exports.getSolanaArchivalConnection = getSolanaArchivalConnection;
281
+ exports.getRpcUrl = getRpcUrl;
282
+ /**
283
+ * Returns a public solana RPC url
284
+ * @param chainId
285
+ * @returns
286
+ */
241
287
  const getSolanaConnectionPublic = (chainId) => {
242
288
  const url = chainId === '101'
243
289
  ? (0, web3_js_1.clusterApiUrl)('mainnet-beta')
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ercworldio/blockchain-shared",
3
- "version": "1.0.3-dev.0-PROJ-1281.3",
3
+ "version": "1.0.3-dev.0-PROJ-1281.4",
4
4
  "description": "Shared library for blockchain projects",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",