@shapeshiftoss/unchained-client 10.15.0 → 10.17.0

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 (159) hide show
  1. package/dist/cjs/.tsbuildinfo +1 -1
  2. package/dist/cjs/evm/arbitrum/parser/index.js +1 -1
  3. package/dist/cjs/evm/avalanche/parser/index.js +1 -1
  4. package/dist/cjs/evm/base/parser/index.js +1 -1
  5. package/dist/cjs/evm/bnbsmartchain/parser/index.js +1 -1
  6. package/dist/cjs/evm/ethereum/parser/__tests__/ethereum.test.js +13 -13
  7. package/dist/cjs/evm/ethereum/parser/index.js +12 -3
  8. package/dist/cjs/evm/ethereum/parser/uniV2.d.ts +4 -3
  9. package/dist/cjs/evm/ethereum/parser/uniV2.js +13 -10
  10. package/dist/cjs/evm/ethereum/parser/weth.d.ts +0 -2
  11. package/dist/cjs/evm/ethereum/parser/weth.js +0 -2
  12. package/dist/cjs/evm/gnosis/parser/index.js +1 -1
  13. package/dist/cjs/evm/optimism/parser/index.js +1 -1
  14. package/dist/cjs/evm/parser/erc20.d.ts +0 -2
  15. package/dist/cjs/evm/parser/erc20.js +0 -2
  16. package/dist/cjs/evm/parser/index.d.ts +1 -2
  17. package/dist/cjs/evm/parser/index.js +2 -2
  18. package/dist/cjs/evm/polygon/parser/index.js +1 -1
  19. package/dist/cjs/generated/arbitrum/models/NotFoundError.d.ts +31 -0
  20. package/dist/cjs/generated/arbitrum/models/NotFoundError.js +51 -0
  21. package/dist/cjs/generated/arbitrum/models/index.d.ts +1 -0
  22. package/dist/cjs/generated/arbitrum/models/index.js +1 -0
  23. package/dist/cjs/generated/avalanche/models/NotFoundError.d.ts +31 -0
  24. package/dist/cjs/generated/avalanche/models/NotFoundError.js +51 -0
  25. package/dist/cjs/generated/avalanche/models/index.d.ts +1 -0
  26. package/dist/cjs/generated/avalanche/models/index.js +1 -0
  27. package/dist/cjs/generated/base/models/NotFoundError.d.ts +31 -0
  28. package/dist/cjs/generated/base/models/NotFoundError.js +51 -0
  29. package/dist/cjs/generated/base/models/index.d.ts +1 -0
  30. package/dist/cjs/generated/base/models/index.js +1 -0
  31. package/dist/cjs/generated/bitcoin/models/NotFoundError.d.ts +31 -0
  32. package/dist/cjs/generated/bitcoin/models/NotFoundError.js +51 -0
  33. package/dist/cjs/generated/bitcoin/models/index.d.ts +1 -0
  34. package/dist/cjs/generated/bitcoin/models/index.js +1 -0
  35. package/dist/cjs/generated/bitcoincash/models/NotFoundError.d.ts +31 -0
  36. package/dist/cjs/generated/bitcoincash/models/NotFoundError.js +51 -0
  37. package/dist/cjs/generated/bitcoincash/models/index.d.ts +1 -0
  38. package/dist/cjs/generated/bitcoincash/models/index.js +1 -0
  39. package/dist/cjs/generated/bnbsmartchain/models/NotFoundError.d.ts +31 -0
  40. package/dist/cjs/generated/bnbsmartchain/models/NotFoundError.js +51 -0
  41. package/dist/cjs/generated/bnbsmartchain/models/index.d.ts +1 -0
  42. package/dist/cjs/generated/bnbsmartchain/models/index.js +1 -0
  43. package/dist/cjs/generated/dogecoin/models/NotFoundError.d.ts +31 -0
  44. package/dist/cjs/generated/dogecoin/models/NotFoundError.js +51 -0
  45. package/dist/cjs/generated/dogecoin/models/index.d.ts +1 -0
  46. package/dist/cjs/generated/dogecoin/models/index.js +1 -0
  47. package/dist/cjs/generated/ethereum/apis/V1Api.d.ts +15 -0
  48. package/dist/cjs/generated/ethereum/apis/V1Api.js +24 -0
  49. package/dist/cjs/generated/ethereum/models/NotFoundError.d.ts +31 -0
  50. package/dist/cjs/generated/ethereum/models/NotFoundError.js +51 -0
  51. package/dist/cjs/generated/ethereum/models/index.d.ts +1 -0
  52. package/dist/cjs/generated/ethereum/models/index.js +1 -0
  53. package/dist/cjs/generated/gnosis/models/NotFoundError.d.ts +31 -0
  54. package/dist/cjs/generated/gnosis/models/NotFoundError.js +51 -0
  55. package/dist/cjs/generated/gnosis/models/index.d.ts +1 -0
  56. package/dist/cjs/generated/gnosis/models/index.js +1 -0
  57. package/dist/cjs/generated/litecoin/models/NotFoundError.d.ts +31 -0
  58. package/dist/cjs/generated/litecoin/models/NotFoundError.js +51 -0
  59. package/dist/cjs/generated/litecoin/models/index.d.ts +1 -0
  60. package/dist/cjs/generated/litecoin/models/index.js +1 -0
  61. package/dist/cjs/generated/optimism/models/NotFoundError.d.ts +31 -0
  62. package/dist/cjs/generated/optimism/models/NotFoundError.js +51 -0
  63. package/dist/cjs/generated/optimism/models/index.d.ts +1 -0
  64. package/dist/cjs/generated/optimism/models/index.js +1 -0
  65. package/dist/cjs/generated/polygon/models/NotFoundError.d.ts +31 -0
  66. package/dist/cjs/generated/polygon/models/NotFoundError.js +51 -0
  67. package/dist/cjs/generated/polygon/models/index.d.ts +1 -0
  68. package/dist/cjs/generated/polygon/models/index.js +1 -0
  69. package/dist/cjs/generated/solana/models/NotFoundError.d.ts +31 -0
  70. package/dist/cjs/generated/solana/models/NotFoundError.js +51 -0
  71. package/dist/cjs/generated/solana/models/index.d.ts +1 -0
  72. package/dist/cjs/generated/solana/models/index.js +1 -0
  73. package/dist/cjs/generated/zcash/models/NotFoundError.d.ts +31 -0
  74. package/dist/cjs/generated/zcash/models/NotFoundError.js +51 -0
  75. package/dist/cjs/generated/zcash/models/index.d.ts +1 -0
  76. package/dist/cjs/generated/zcash/models/index.js +1 -0
  77. package/dist/cjs/tron/__tests__/api.test.js +125 -0
  78. package/dist/cjs/tron/api.d.ts +7 -0
  79. package/dist/cjs/tron/api.js +39 -3
  80. package/dist/esm/.tsbuildinfo +1 -1
  81. package/dist/esm/evm/arbitrum/parser/index.js +1 -1
  82. package/dist/esm/evm/avalanche/parser/index.js +1 -1
  83. package/dist/esm/evm/base/parser/index.js +1 -1
  84. package/dist/esm/evm/bnbsmartchain/parser/index.js +1 -1
  85. package/dist/esm/evm/ethereum/parser/__tests__/ethereum.test.js +13 -13
  86. package/dist/esm/evm/ethereum/parser/index.js +12 -3
  87. package/dist/esm/evm/ethereum/parser/uniV2.d.ts +4 -3
  88. package/dist/esm/evm/ethereum/parser/uniV2.js +14 -11
  89. package/dist/esm/evm/ethereum/parser/weth.d.ts +0 -2
  90. package/dist/esm/evm/ethereum/parser/weth.js +0 -2
  91. package/dist/esm/evm/gnosis/parser/index.js +1 -1
  92. package/dist/esm/evm/optimism/parser/index.js +1 -1
  93. package/dist/esm/evm/parser/erc20.d.ts +0 -2
  94. package/dist/esm/evm/parser/erc20.js +0 -2
  95. package/dist/esm/evm/parser/index.d.ts +1 -2
  96. package/dist/esm/evm/parser/index.js +3 -3
  97. package/dist/esm/evm/polygon/parser/index.js +1 -1
  98. package/dist/esm/generated/arbitrum/models/NotFoundError.d.ts +31 -0
  99. package/dist/esm/generated/arbitrum/models/NotFoundError.js +44 -0
  100. package/dist/esm/generated/arbitrum/models/index.d.ts +1 -0
  101. package/dist/esm/generated/arbitrum/models/index.js +1 -0
  102. package/dist/esm/generated/avalanche/models/NotFoundError.d.ts +31 -0
  103. package/dist/esm/generated/avalanche/models/NotFoundError.js +44 -0
  104. package/dist/esm/generated/avalanche/models/index.d.ts +1 -0
  105. package/dist/esm/generated/avalanche/models/index.js +1 -0
  106. package/dist/esm/generated/base/models/NotFoundError.d.ts +31 -0
  107. package/dist/esm/generated/base/models/NotFoundError.js +44 -0
  108. package/dist/esm/generated/base/models/index.d.ts +1 -0
  109. package/dist/esm/generated/base/models/index.js +1 -0
  110. package/dist/esm/generated/bitcoin/models/NotFoundError.d.ts +31 -0
  111. package/dist/esm/generated/bitcoin/models/NotFoundError.js +44 -0
  112. package/dist/esm/generated/bitcoin/models/index.d.ts +1 -0
  113. package/dist/esm/generated/bitcoin/models/index.js +1 -0
  114. package/dist/esm/generated/bitcoincash/models/NotFoundError.d.ts +31 -0
  115. package/dist/esm/generated/bitcoincash/models/NotFoundError.js +44 -0
  116. package/dist/esm/generated/bitcoincash/models/index.d.ts +1 -0
  117. package/dist/esm/generated/bitcoincash/models/index.js +1 -0
  118. package/dist/esm/generated/bnbsmartchain/models/NotFoundError.d.ts +31 -0
  119. package/dist/esm/generated/bnbsmartchain/models/NotFoundError.js +44 -0
  120. package/dist/esm/generated/bnbsmartchain/models/index.d.ts +1 -0
  121. package/dist/esm/generated/bnbsmartchain/models/index.js +1 -0
  122. package/dist/esm/generated/dogecoin/models/NotFoundError.d.ts +31 -0
  123. package/dist/esm/generated/dogecoin/models/NotFoundError.js +44 -0
  124. package/dist/esm/generated/dogecoin/models/index.d.ts +1 -0
  125. package/dist/esm/generated/dogecoin/models/index.js +1 -0
  126. package/dist/esm/generated/ethereum/apis/V1Api.d.ts +15 -0
  127. package/dist/esm/generated/ethereum/apis/V1Api.js +24 -0
  128. package/dist/esm/generated/ethereum/models/NotFoundError.d.ts +31 -0
  129. package/dist/esm/generated/ethereum/models/NotFoundError.js +44 -0
  130. package/dist/esm/generated/ethereum/models/index.d.ts +1 -0
  131. package/dist/esm/generated/ethereum/models/index.js +1 -0
  132. package/dist/esm/generated/gnosis/models/NotFoundError.d.ts +31 -0
  133. package/dist/esm/generated/gnosis/models/NotFoundError.js +44 -0
  134. package/dist/esm/generated/gnosis/models/index.d.ts +1 -0
  135. package/dist/esm/generated/gnosis/models/index.js +1 -0
  136. package/dist/esm/generated/litecoin/models/NotFoundError.d.ts +31 -0
  137. package/dist/esm/generated/litecoin/models/NotFoundError.js +44 -0
  138. package/dist/esm/generated/litecoin/models/index.d.ts +1 -0
  139. package/dist/esm/generated/litecoin/models/index.js +1 -0
  140. package/dist/esm/generated/optimism/models/NotFoundError.d.ts +31 -0
  141. package/dist/esm/generated/optimism/models/NotFoundError.js +44 -0
  142. package/dist/esm/generated/optimism/models/index.d.ts +1 -0
  143. package/dist/esm/generated/optimism/models/index.js +1 -0
  144. package/dist/esm/generated/polygon/models/NotFoundError.d.ts +31 -0
  145. package/dist/esm/generated/polygon/models/NotFoundError.js +44 -0
  146. package/dist/esm/generated/polygon/models/index.d.ts +1 -0
  147. package/dist/esm/generated/polygon/models/index.js +1 -0
  148. package/dist/esm/generated/solana/models/NotFoundError.d.ts +31 -0
  149. package/dist/esm/generated/solana/models/NotFoundError.js +44 -0
  150. package/dist/esm/generated/solana/models/index.d.ts +1 -0
  151. package/dist/esm/generated/solana/models/index.js +1 -0
  152. package/dist/esm/generated/zcash/models/NotFoundError.d.ts +31 -0
  153. package/dist/esm/generated/zcash/models/NotFoundError.js +44 -0
  154. package/dist/esm/generated/zcash/models/index.d.ts +1 -0
  155. package/dist/esm/generated/zcash/models/index.js +1 -0
  156. package/dist/esm/tron/__tests__/api.test.js +125 -0
  157. package/dist/esm/tron/api.d.ts +7 -0
  158. package/dist/esm/tron/api.js +39 -3
  159. package/package.json +4 -4
@@ -36,7 +36,7 @@ class TransactionParser extends parser_1.BaseTransactionParser {
36
36
  constructor(args) {
37
37
  super(args);
38
38
  this.registerParsers([
39
- new erc20.Parser({ chainId: this.chainId, provider: this.provider }),
39
+ new erc20.Parser({ chainId: this.chainId }),
40
40
  new mayachain.Parser({
41
41
  chainId: this.chainId,
42
42
  midgardUrl: args.mayaMidgardUrl,
@@ -33,7 +33,7 @@ class TransactionParser extends parser_1.BaseTransactionParser {
33
33
  constructor(args) {
34
34
  super(args);
35
35
  this.registerParsers([
36
- new erc20.Parser({ chainId: this.chainId, provider: this.provider }),
36
+ new erc20.Parser({ chainId: this.chainId }),
37
37
  new thorchain.Parser({
38
38
  chainId: this.chainId,
39
39
  midgardUrl: args.midgardUrl,
@@ -32,7 +32,7 @@ class TransactionParser extends parser_1.BaseTransactionParser {
32
32
  constructor(args) {
33
33
  super(args);
34
34
  this.registerParsers([
35
- new erc20.Parser({ chainId: this.chainId, provider: this.provider }),
35
+ new erc20.Parser({ chainId: this.chainId }),
36
36
  new zrx.Parser({ proxyContract: contracts_1.ZRX_ETHEREUM_PROXY_CONTRACT }),
37
37
  ]);
38
38
  }
@@ -33,7 +33,7 @@ class TransactionParser extends parser_1.BaseTransactionParser {
33
33
  constructor(args) {
34
34
  super(args);
35
35
  this.registerParsers([
36
- new erc20.Parser({ chainId: this.chainId, provider: this.provider }),
36
+ new erc20.Parser({ chainId: this.chainId }),
37
37
  new thorchain.Parser({
38
38
  chainId: this.chainId,
39
39
  midgardUrl: args.midgardUrl,
@@ -110,21 +110,21 @@ const mockTokenData = {
110
110
  symbol: 'UNI-V2',
111
111
  },
112
112
  };
113
- vitest_1.vi.mock('ethers', async () => {
114
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
115
- const actual = await vitest_1.vi.importActual('ethers');
116
- const MockContract = vitest_1.vi.fn().mockImplementation(function (address) {
117
- const checksumAddress = actual.getAddress(address.toLowerCase());
118
- const data = mockTokenData[checksumAddress] ?? { decimals: 18, name: 'Unknown', symbol: 'UNK' };
119
- return {
120
- decimals: vitest_1.vi.fn().mockResolvedValue(data.decimals),
121
- name: vitest_1.vi.fn().mockResolvedValue(data.name),
122
- symbol: vitest_1.vi.fn().mockResolvedValue(data.symbol),
123
- };
124
- });
113
+ vitest_1.vi.mock('viem', async () => {
114
+ const actual = await vitest_1.vi.importActual('viem');
125
115
  return {
126
116
  ...actual,
127
- Contract: MockContract,
117
+ createPublicClient: vitest_1.vi.fn(() => ({
118
+ readContract: vitest_1.vi.fn(({ address, functionName, }) => {
119
+ const checksumAddress = actual.getAddress(address.toLowerCase());
120
+ const data = mockTokenData[checksumAddress] ?? {
121
+ decimals: 18,
122
+ name: 'Unknown',
123
+ symbol: 'UNK',
124
+ };
125
+ return Promise.resolve(data[functionName]);
126
+ }),
127
+ })),
128
128
  };
129
129
  });
130
130
  const makeTxParser = vitest_1.vi.fn(async () => new index_1.TransactionParser({
@@ -26,6 +26,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.TransactionParser = void 0;
27
27
  const caip_1 = require("@shapeshiftoss/caip");
28
28
  const contracts_1 = require("@shapeshiftoss/contracts");
29
+ const viem_1 = require("viem");
30
+ const chains_1 = require("viem/chains");
29
31
  const parser_1 = require("../../parser");
30
32
  const arbitrumBridge = __importStar(require("../../parser/arbitrumBridge"));
31
33
  const erc20 = __importStar(require("../../parser/erc20"));
@@ -42,10 +44,17 @@ class TransactionParser extends parser_1.BaseTransactionParser {
42
44
  super(args);
43
45
  // due to the current parser logic, order here matters (register most generic first to most specific last)
44
46
  this.registerParsers([
45
- new erc20.Parser({ chainId: this.chainId, provider: this.provider }),
47
+ new erc20.Parser({ chainId: this.chainId }),
46
48
  new foxy.Parser(),
47
- new weth.Parser({ chainId: this.chainId, provider: this.provider }),
48
- new uniV2.Parser({ chainId: this.chainId, provider: this.provider }),
49
+ new weth.Parser({ chainId: this.chainId }),
50
+ new uniV2.Parser({
51
+ chainId: this.chainId,
52
+ client: (0, viem_1.createPublicClient)({
53
+ chain: chains_1.mainnet,
54
+ transport: (0, viem_1.http)(this.rpcUrl),
55
+ batch: { multicall: true },
56
+ }),
57
+ }),
49
58
  new mayachain.Parser({
50
59
  chainId: this.chainId,
51
60
  midgardUrl: args.mayaMidgardUrl,
@@ -1,6 +1,6 @@
1
1
  import type { ChainId } from '@shapeshiftoss/caip';
2
- import type { JsonRpcProvider } from 'ethers';
3
2
  import { Interface } from 'ethers';
3
+ import type { PublicClient } from 'viem';
4
4
  import type { Tx } from '../../../generated/ethereum';
5
5
  import type { BaseTxMetadata } from '../../../types';
6
6
  import type { SubParser, TxSpecific } from '../../parser';
@@ -9,10 +9,10 @@ export interface TxMetadata extends BaseTxMetadata {
9
9
  }
10
10
  export interface ParserArgs {
11
11
  chainId: ChainId;
12
- provider: JsonRpcProvider;
12
+ client: PublicClient;
13
13
  }
14
14
  export declare class Parser implements SubParser<Tx> {
15
- provider: JsonRpcProvider;
15
+ client: PublicClient;
16
16
  readonly chainId: ChainId;
17
17
  readonly wethContract: string;
18
18
  readonly abiInterface: Interface;
@@ -23,5 +23,6 @@ export declare class Parser implements SubParser<Tx> {
23
23
  parseUniV2(tx: Tx): Promise<TxSpecific | undefined>;
24
24
  parseStakingRewards(tx: Tx): TxSpecific | undefined;
25
25
  parse(tx: Tx): Promise<TxSpecific | undefined>;
26
+ private getTokenMetadata;
26
27
  private static pairFor;
27
28
  }
@@ -12,7 +12,7 @@ const viem_1 = require("viem");
12
12
  const types_1 = require("../../../types");
13
13
  const parser_1 = require("../../parser");
14
14
  class Parser {
15
- provider;
15
+ client;
16
16
  chainId;
17
17
  wethContract;
18
18
  abiInterface = new ethers_1.Interface(contracts_1.UNISWAP_V2_ROUTER_02_ABI);
@@ -21,7 +21,7 @@ class Parser {
21
21
  supportedStakingRewardsFunctions;
22
22
  constructor(args) {
23
23
  this.chainId = args.chainId;
24
- this.provider = args.provider;
24
+ this.client = args.client;
25
25
  (0, assert_1.default)(args.chainId === 'eip155:1', `chainId '${args.chainId}' is not supported`);
26
26
  this.wethContract = contracts_1.WETH_TOKEN_CONTRACT;
27
27
  const addLiquidityEthSigHash = this.abiInterface.getFunction('addLiquidityETH')?.selector;
@@ -67,10 +67,7 @@ class Parser {
67
67
  const transfers = await (async () => {
68
68
  switch ((0, parser_1.getSigHash)(tx.inputData)) {
69
69
  case this.supportedFunctions.addLiquidityEthSigHash: {
70
- const contract = new ethers_1.Contract(tokenAddress, viem_1.erc20Abi, this.provider);
71
- const decimals = await contract.decimals();
72
- const name = await contract.name();
73
- const symbol = await contract.symbol();
70
+ const { decimals, name, symbol } = await this.getTokenMetadata(tokenAddress);
74
71
  const value = decoded.args.amountTokenDesired.toString();
75
72
  const assetId = (0, caip_1.toAssetId)({
76
73
  ...(0, caip_1.fromChainId)(this.chainId),
@@ -90,10 +87,7 @@ class Parser {
90
87
  ];
91
88
  }
92
89
  case this.supportedFunctions.removeLiquidityEthSigHash: {
93
- const contract = new ethers_1.Contract(lpTokenAddress, viem_1.erc20Abi, this.provider);
94
- const decimals = await contract.decimals();
95
- const name = await contract.name();
96
- const symbol = await contract.symbol();
90
+ const { decimals, name, symbol } = await this.getTokenMetadata(lpTokenAddress);
97
91
  const value = decoded.args.liquidity.toString();
98
92
  const assetId = (0, caip_1.toAssetId)({
99
93
  ...(0, caip_1.fromChainId)(this.chainId),
@@ -152,6 +146,15 @@ class Parser {
152
146
  if (isFoxStakingRewards)
153
147
  return await Promise.resolve(this.parseStakingRewards(tx));
154
148
  }
149
+ async getTokenMetadata(address) {
150
+ const contract = { address: address, abi: viem_1.erc20Abi };
151
+ const [decimals, name, symbol] = await Promise.all([
152
+ this.client.readContract({ ...contract, functionName: 'decimals' }),
153
+ this.client.readContract({ ...contract, functionName: 'name' }),
154
+ this.client.readContract({ ...contract, functionName: 'symbol' }),
155
+ ]);
156
+ return { decimals, name, symbol };
157
+ }
155
158
  static pairFor(tokenA, tokenB) {
156
159
  const [token0, token1] = tokenA < tokenB ? [tokenA, tokenB] : [tokenB, tokenA];
157
160
  const salt = (0, ethers_1.solidityPackedKeccak256)(['address', 'address'], [token0, token1]);
@@ -8,10 +8,8 @@ export interface TxMetadata extends BaseTxMetadata {
8
8
  }
9
9
  export interface ParserArgs {
10
10
  chainId: ChainId;
11
- provider: ethers.JsonRpcProvider;
12
11
  }
13
12
  export declare class Parser implements SubParser<Tx> {
14
- provider: ethers.JsonRpcProvider;
15
13
  readonly chainId: ChainId;
16
14
  readonly wethContract: string;
17
15
  readonly abiInterface: ethers.Interface;
@@ -11,14 +11,12 @@ const ethers_1 = require("ethers");
11
11
  const types_1 = require("../../../types");
12
12
  const parser_1 = require("../../parser");
13
13
  class Parser {
14
- provider;
15
14
  chainId;
16
15
  wethContract;
17
16
  abiInterface = new ethers_1.ethers.Interface(contracts_1.WETH_ABI);
18
17
  supportedFunctions;
19
18
  constructor(args) {
20
19
  this.chainId = args.chainId;
21
- this.provider = args.provider;
22
20
  (0, assert_1.default)(args.chainId === 'eip155:1', `chainId '${args.chainId}' is not supported`);
23
21
  this.wethContract = contracts_1.WETH_TOKEN_CONTRACT;
24
22
  const depositSigHash = this.abiInterface.getFunction('deposit')?.selector;
@@ -29,7 +29,7 @@ const erc20 = __importStar(require("../../parser/erc20"));
29
29
  class TransactionParser extends parser_1.BaseTransactionParser {
30
30
  constructor(args) {
31
31
  super(args);
32
- this.registerParsers([new erc20.Parser({ chainId: this.chainId, provider: this.provider })]);
32
+ this.registerParsers([new erc20.Parser({ chainId: this.chainId })]);
33
33
  }
34
34
  }
35
35
  exports.TransactionParser = TransactionParser;
@@ -32,7 +32,7 @@ class TransactionParser extends parser_1.BaseTransactionParser {
32
32
  constructor(args) {
33
33
  super(args);
34
34
  this.registerParsers([
35
- new erc20.Parser({ chainId: this.chainId, provider: this.provider }),
35
+ new erc20.Parser({ chainId: this.chainId }),
36
36
  new zrx.Parser({ proxyContract: contracts_1.ZRX_OPTIMISM_PROXY_CONTRACT }),
37
37
  ]);
38
38
  }
@@ -9,10 +9,8 @@ export interface TxMetadata extends BaseTxMetadata {
9
9
  }
10
10
  interface ParserArgs {
11
11
  chainId: ChainId;
12
- provider: ethers.JsonRpcProvider;
13
12
  }
14
13
  export declare class Parser<T extends Tx> implements SubParser<T> {
15
- provider: ethers.JsonRpcProvider;
16
14
  readonly chainId: ChainId;
17
15
  readonly abiInterface: ethers.Interface;
18
16
  private readonly supportedFunctions;
@@ -6,12 +6,10 @@ const ethers_1 = require("ethers");
6
6
  const viem_1 = require("viem");
7
7
  const utils_1 = require("./utils");
8
8
  class Parser {
9
- provider;
10
9
  chainId;
11
10
  abiInterface = new ethers_1.ethers.Interface(viem_1.erc20Abi);
12
11
  supportedFunctions;
13
12
  constructor(args) {
14
- this.provider = args.provider;
15
13
  this.chainId = args.chainId;
16
14
  const approveSigHash = this.abiInterface.getFunction('approve')?.selector;
17
15
  if (!approveSigHash)
@@ -1,5 +1,4 @@
1
1
  import type { AssetId, ChainId } from '@shapeshiftoss/caip';
2
- import { JsonRpcProvider } from 'ethers';
3
2
  import type { Api } from '..';
4
3
  import type { ParsedTx, SubParser, Tx } from './types';
5
4
  export * from './types';
@@ -14,7 +13,7 @@ export declare class BaseTransactionParser<T extends Tx> {
14
13
  chainId: ChainId;
15
14
  assetId: AssetId;
16
15
  protected readonly api: Api;
17
- protected readonly provider: JsonRpcProvider;
16
+ protected readonly rpcUrl: string;
18
17
  private parsers;
19
18
  constructor(args: BaseTransactionParserArgs);
20
19
  /**
@@ -27,13 +27,13 @@ class BaseTransactionParser {
27
27
  chainId;
28
28
  assetId;
29
29
  api;
30
- provider;
30
+ rpcUrl;
31
31
  parsers = [];
32
32
  constructor(args) {
33
33
  this.chainId = args.chainId;
34
34
  this.assetId = args.assetId;
35
35
  this.api = args.api;
36
- this.provider = new ethers_1.JsonRpcProvider(args.rpcUrl, undefined, { staticNetwork: true });
36
+ this.rpcUrl = args.rpcUrl;
37
37
  }
38
38
  /**
39
39
  * Register custom transaction sub parser to extract contract specific data
@@ -32,7 +32,7 @@ class TransactionParser extends parser_1.BaseTransactionParser {
32
32
  constructor(args) {
33
33
  super(args);
34
34
  this.registerParsers([
35
- new erc20.Parser({ chainId: this.chainId, provider: this.provider }),
35
+ new erc20.Parser({ chainId: this.chainId }),
36
36
  new zrx.Parser({ proxyContract: contracts_1.ZRX_ETHEREUM_PROXY_CONTRACT }),
37
37
  ]);
38
38
  }
@@ -0,0 +1,31 @@
1
+ /**
2
+ * @shapeshiftoss/arbitrum-api
3
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
4
+ *
5
+ * The version of the OpenAPI document: 10.0.0
6
+ *
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ /**
13
+ * Contains info about a 404 Not Found response
14
+ * @export
15
+ * @interface NotFoundError
16
+ */
17
+ export interface NotFoundError {
18
+ /**
19
+ *
20
+ * @type {string}
21
+ * @memberof NotFoundError
22
+ */
23
+ message: string;
24
+ }
25
+ /**
26
+ * Check if a given object implements the NotFoundError interface.
27
+ */
28
+ export declare function instanceOfNotFoundError(value: object): boolean;
29
+ export declare function NotFoundErrorFromJSON(json: any): NotFoundError;
30
+ export declare function NotFoundErrorFromJSONTyped(json: any, ignoreDiscriminator: boolean): NotFoundError;
31
+ export declare function NotFoundErrorToJSON(value?: NotFoundError | null): any;
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ // @ts-nocheck
3
+ /* tslint:disable */
4
+ /* eslint-disable */
5
+ /**
6
+ * @shapeshiftoss/arbitrum-api
7
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
8
+ *
9
+ * The version of the OpenAPI document: 10.0.0
10
+ *
11
+ *
12
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
13
+ * https://openapi-generator.tech
14
+ * Do not edit the class manually.
15
+ */
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.NotFoundErrorToJSON = exports.NotFoundErrorFromJSONTyped = exports.NotFoundErrorFromJSON = exports.instanceOfNotFoundError = void 0;
18
+ /**
19
+ * Check if a given object implements the NotFoundError interface.
20
+ */
21
+ function instanceOfNotFoundError(value) {
22
+ let isInstance = true;
23
+ isInstance = isInstance && "message" in value;
24
+ return isInstance;
25
+ }
26
+ exports.instanceOfNotFoundError = instanceOfNotFoundError;
27
+ function NotFoundErrorFromJSON(json) {
28
+ return NotFoundErrorFromJSONTyped(json, false);
29
+ }
30
+ exports.NotFoundErrorFromJSON = NotFoundErrorFromJSON;
31
+ function NotFoundErrorFromJSONTyped(json, ignoreDiscriminator) {
32
+ if ((json === undefined) || (json === null)) {
33
+ return json;
34
+ }
35
+ return {
36
+ 'message': json['message'],
37
+ };
38
+ }
39
+ exports.NotFoundErrorFromJSONTyped = NotFoundErrorFromJSONTyped;
40
+ function NotFoundErrorToJSON(value) {
41
+ if (value === undefined) {
42
+ return undefined;
43
+ }
44
+ if (value === null) {
45
+ return null;
46
+ }
47
+ return {
48
+ 'message': value.message,
49
+ };
50
+ }
51
+ exports.NotFoundErrorToJSON = NotFoundErrorToJSON;
@@ -10,6 +10,7 @@ export * from './GasEstimate';
10
10
  export * from './GasFees';
11
11
  export * from './InternalServerError';
12
12
  export * from './InternalTx';
13
+ export * from './NotFoundError';
13
14
  export * from './RPCRequest';
14
15
  export * from './RPCResponse';
15
16
  export * from './RPCResponseError';
@@ -29,6 +29,7 @@ __exportStar(require("./GasEstimate"), exports);
29
29
  __exportStar(require("./GasFees"), exports);
30
30
  __exportStar(require("./InternalServerError"), exports);
31
31
  __exportStar(require("./InternalTx"), exports);
32
+ __exportStar(require("./NotFoundError"), exports);
32
33
  __exportStar(require("./RPCRequest"), exports);
33
34
  __exportStar(require("./RPCResponse"), exports);
34
35
  __exportStar(require("./RPCResponseError"), exports);
@@ -0,0 +1,31 @@
1
+ /**
2
+ * @shapeshiftoss/avalanche-api
3
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
4
+ *
5
+ * The version of the OpenAPI document: 10.0.0
6
+ *
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ /**
13
+ * Contains info about a 404 Not Found response
14
+ * @export
15
+ * @interface NotFoundError
16
+ */
17
+ export interface NotFoundError {
18
+ /**
19
+ *
20
+ * @type {string}
21
+ * @memberof NotFoundError
22
+ */
23
+ message: string;
24
+ }
25
+ /**
26
+ * Check if a given object implements the NotFoundError interface.
27
+ */
28
+ export declare function instanceOfNotFoundError(value: object): boolean;
29
+ export declare function NotFoundErrorFromJSON(json: any): NotFoundError;
30
+ export declare function NotFoundErrorFromJSONTyped(json: any, ignoreDiscriminator: boolean): NotFoundError;
31
+ export declare function NotFoundErrorToJSON(value?: NotFoundError | null): any;
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ // @ts-nocheck
3
+ /* tslint:disable */
4
+ /* eslint-disable */
5
+ /**
6
+ * @shapeshiftoss/avalanche-api
7
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
8
+ *
9
+ * The version of the OpenAPI document: 10.0.0
10
+ *
11
+ *
12
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
13
+ * https://openapi-generator.tech
14
+ * Do not edit the class manually.
15
+ */
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.NotFoundErrorToJSON = exports.NotFoundErrorFromJSONTyped = exports.NotFoundErrorFromJSON = exports.instanceOfNotFoundError = void 0;
18
+ /**
19
+ * Check if a given object implements the NotFoundError interface.
20
+ */
21
+ function instanceOfNotFoundError(value) {
22
+ let isInstance = true;
23
+ isInstance = isInstance && "message" in value;
24
+ return isInstance;
25
+ }
26
+ exports.instanceOfNotFoundError = instanceOfNotFoundError;
27
+ function NotFoundErrorFromJSON(json) {
28
+ return NotFoundErrorFromJSONTyped(json, false);
29
+ }
30
+ exports.NotFoundErrorFromJSON = NotFoundErrorFromJSON;
31
+ function NotFoundErrorFromJSONTyped(json, ignoreDiscriminator) {
32
+ if ((json === undefined) || (json === null)) {
33
+ return json;
34
+ }
35
+ return {
36
+ 'message': json['message'],
37
+ };
38
+ }
39
+ exports.NotFoundErrorFromJSONTyped = NotFoundErrorFromJSONTyped;
40
+ function NotFoundErrorToJSON(value) {
41
+ if (value === undefined) {
42
+ return undefined;
43
+ }
44
+ if (value === null) {
45
+ return null;
46
+ }
47
+ return {
48
+ 'message': value.message,
49
+ };
50
+ }
51
+ exports.NotFoundErrorToJSON = NotFoundErrorToJSON;
@@ -10,6 +10,7 @@ export * from './GasEstimate';
10
10
  export * from './GasFees';
11
11
  export * from './InternalServerError';
12
12
  export * from './InternalTx';
13
+ export * from './NotFoundError';
13
14
  export * from './RPCRequest';
14
15
  export * from './RPCResponse';
15
16
  export * from './RPCResponseError';
@@ -29,6 +29,7 @@ __exportStar(require("./GasEstimate"), exports);
29
29
  __exportStar(require("./GasFees"), exports);
30
30
  __exportStar(require("./InternalServerError"), exports);
31
31
  __exportStar(require("./InternalTx"), exports);
32
+ __exportStar(require("./NotFoundError"), exports);
32
33
  __exportStar(require("./RPCRequest"), exports);
33
34
  __exportStar(require("./RPCResponse"), exports);
34
35
  __exportStar(require("./RPCResponseError"), exports);
@@ -0,0 +1,31 @@
1
+ /**
2
+ * @shapeshiftoss/base-api
3
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
4
+ *
5
+ * The version of the OpenAPI document: 10.0.0
6
+ *
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ /**
13
+ * Contains info about a 404 Not Found response
14
+ * @export
15
+ * @interface NotFoundError
16
+ */
17
+ export interface NotFoundError {
18
+ /**
19
+ *
20
+ * @type {string}
21
+ * @memberof NotFoundError
22
+ */
23
+ message: string;
24
+ }
25
+ /**
26
+ * Check if a given object implements the NotFoundError interface.
27
+ */
28
+ export declare function instanceOfNotFoundError(value: object): boolean;
29
+ export declare function NotFoundErrorFromJSON(json: any): NotFoundError;
30
+ export declare function NotFoundErrorFromJSONTyped(json: any, ignoreDiscriminator: boolean): NotFoundError;
31
+ export declare function NotFoundErrorToJSON(value?: NotFoundError | null): any;
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ // @ts-nocheck
3
+ /* tslint:disable */
4
+ /* eslint-disable */
5
+ /**
6
+ * @shapeshiftoss/base-api
7
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
8
+ *
9
+ * The version of the OpenAPI document: 10.0.0
10
+ *
11
+ *
12
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
13
+ * https://openapi-generator.tech
14
+ * Do not edit the class manually.
15
+ */
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.NotFoundErrorToJSON = exports.NotFoundErrorFromJSONTyped = exports.NotFoundErrorFromJSON = exports.instanceOfNotFoundError = void 0;
18
+ /**
19
+ * Check if a given object implements the NotFoundError interface.
20
+ */
21
+ function instanceOfNotFoundError(value) {
22
+ let isInstance = true;
23
+ isInstance = isInstance && "message" in value;
24
+ return isInstance;
25
+ }
26
+ exports.instanceOfNotFoundError = instanceOfNotFoundError;
27
+ function NotFoundErrorFromJSON(json) {
28
+ return NotFoundErrorFromJSONTyped(json, false);
29
+ }
30
+ exports.NotFoundErrorFromJSON = NotFoundErrorFromJSON;
31
+ function NotFoundErrorFromJSONTyped(json, ignoreDiscriminator) {
32
+ if ((json === undefined) || (json === null)) {
33
+ return json;
34
+ }
35
+ return {
36
+ 'message': json['message'],
37
+ };
38
+ }
39
+ exports.NotFoundErrorFromJSONTyped = NotFoundErrorFromJSONTyped;
40
+ function NotFoundErrorToJSON(value) {
41
+ if (value === undefined) {
42
+ return undefined;
43
+ }
44
+ if (value === null) {
45
+ return null;
46
+ }
47
+ return {
48
+ 'message': value.message,
49
+ };
50
+ }
51
+ exports.NotFoundErrorToJSON = NotFoundErrorToJSON;
@@ -10,6 +10,7 @@ export * from './EstimateGasBody';
10
10
  export * from './Fees';
11
11
  export * from './InternalServerError';
12
12
  export * from './InternalTx';
13
+ export * from './NotFoundError';
13
14
  export * from './RPCRequest';
14
15
  export * from './RPCResponse';
15
16
  export * from './RPCResponseError';
@@ -29,6 +29,7 @@ __exportStar(require("./EstimateGasBody"), exports);
29
29
  __exportStar(require("./Fees"), exports);
30
30
  __exportStar(require("./InternalServerError"), exports);
31
31
  __exportStar(require("./InternalTx"), exports);
32
+ __exportStar(require("./NotFoundError"), exports);
32
33
  __exportStar(require("./RPCRequest"), exports);
33
34
  __exportStar(require("./RPCResponse"), exports);
34
35
  __exportStar(require("./RPCResponseError"), exports);
@@ -0,0 +1,31 @@
1
+ /**
2
+ * @shapeshiftoss/bitcoin-api
3
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
4
+ *
5
+ * The version of the OpenAPI document: 10.0.0
6
+ *
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ /**
13
+ * Contains info about a 404 Not Found response
14
+ * @export
15
+ * @interface NotFoundError
16
+ */
17
+ export interface NotFoundError {
18
+ /**
19
+ *
20
+ * @type {string}
21
+ * @memberof NotFoundError
22
+ */
23
+ message: string;
24
+ }
25
+ /**
26
+ * Check if a given object implements the NotFoundError interface.
27
+ */
28
+ export declare function instanceOfNotFoundError(value: object): boolean;
29
+ export declare function NotFoundErrorFromJSON(json: any): NotFoundError;
30
+ export declare function NotFoundErrorFromJSONTyped(json: any, ignoreDiscriminator: boolean): NotFoundError;
31
+ export declare function NotFoundErrorToJSON(value?: NotFoundError | null): any;