@shapeshiftoss/unchained-client 9.0.1 → 9.1.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 (65) hide show
  1. package/dist/evm/avalanche/index.d.ts +2 -0
  2. package/dist/{ethereum → evm/avalanche}/index.js +1 -2
  3. package/dist/evm/avalanche/parser/index.d.ts +5 -0
  4. package/dist/evm/avalanche/parser/index.js +16 -0
  5. package/dist/evm/ethereum/index.d.ts +2 -0
  6. package/dist/evm/ethereum/index.js +18 -0
  7. package/dist/{ethereum → evm/ethereum}/parser/abi/foxyStaking.d.ts +0 -0
  8. package/dist/{ethereum → evm/ethereum}/parser/abi/foxyStaking.js +0 -0
  9. package/dist/{ethereum → evm/ethereum}/parser/abi/shapeShiftRouter.d.ts +0 -0
  10. package/dist/{ethereum → evm/ethereum}/parser/abi/shapeShiftRouter.js +0 -0
  11. package/dist/{ethereum → evm/ethereum}/parser/abi/thor.d.ts +0 -0
  12. package/dist/{ethereum → evm/ethereum}/parser/abi/thor.js +0 -0
  13. package/dist/{ethereum → evm/ethereum}/parser/abi/uniV2.d.ts +0 -0
  14. package/dist/{ethereum → evm/ethereum}/parser/abi/uniV2.js +0 -0
  15. package/dist/{ethereum → evm/ethereum}/parser/abi/uniV2StakingRewards.d.ts +0 -0
  16. package/dist/{ethereum → evm/ethereum}/parser/abi/uniV2StakingRewards.js +0 -0
  17. package/dist/{ethereum → evm/ethereum}/parser/abi/weth.d.ts +0 -0
  18. package/dist/{ethereum → evm/ethereum}/parser/abi/weth.js +0 -0
  19. package/dist/{ethereum → evm/ethereum}/parser/abi/yearnVault.d.ts +0 -0
  20. package/dist/{ethereum → evm/ethereum}/parser/abi/yearnVault.js +0 -0
  21. package/dist/{ethereum → evm/ethereum}/parser/constants.d.ts +0 -0
  22. package/dist/{ethereum → evm/ethereum}/parser/constants.js +0 -0
  23. package/dist/{ethereum → evm/ethereum}/parser/foxy.d.ts +3 -3
  24. package/dist/{ethereum → evm/ethereum}/parser/foxy.js +4 -4
  25. package/dist/evm/ethereum/parser/index.d.ts +5 -0
  26. package/dist/evm/ethereum/parser/index.js +55 -0
  27. package/dist/{ethereum → evm/ethereum}/parser/thor.d.ts +3 -3
  28. package/dist/{ethereum → evm/ethereum}/parser/thor.js +4 -4
  29. package/dist/{ethereum → evm/ethereum}/parser/uniV2.d.ts +3 -3
  30. package/dist/{ethereum → evm/ethereum}/parser/uniV2.js +8 -8
  31. package/dist/{ethereum → evm/ethereum}/parser/weth.d.ts +3 -3
  32. package/dist/{ethereum → evm/ethereum}/parser/weth.js +4 -4
  33. package/dist/{ethereum → evm/ethereum}/parser/yearn.d.ts +3 -3
  34. package/dist/{ethereum → evm/ethereum}/parser/yearn.js +3 -3
  35. package/dist/evm/ethereum/parser/zrx.d.ts +5 -0
  36. package/dist/{ethereum → evm/ethereum}/parser/zrx.js +3 -3
  37. package/dist/evm/index.d.ts +2 -0
  38. package/dist/evm/index.js +28 -0
  39. package/dist/{ethereum → evm}/parser/abi/erc20.d.ts +0 -0
  40. package/dist/{ethereum → evm}/parser/abi/erc20.js +0 -0
  41. package/dist/{ethereum → evm}/parser/erc20.d.ts +3 -4
  42. package/dist/{ethereum → evm}/parser/erc20.js +1 -1
  43. package/dist/evm/parser/index.d.ts +26 -0
  44. package/dist/{ethereum → evm}/parser/index.js +28 -38
  45. package/dist/{ethereum → evm/parser}/types.d.ts +6 -4
  46. package/dist/{ethereum → evm/parser}/types.js +0 -0
  47. package/dist/evm/parser/utils.d.ts +4 -0
  48. package/dist/{ethereum → evm}/parser/utils.js +0 -0
  49. package/dist/generated/avalanche/api.d.ts +766 -0
  50. package/dist/generated/avalanche/api.js +490 -0
  51. package/dist/generated/avalanche/base.d.ts +55 -0
  52. package/dist/generated/avalanche/base.js +64 -0
  53. package/dist/generated/avalanche/common.d.ts +65 -0
  54. package/dist/generated/avalanche/common.js +137 -0
  55. package/dist/generated/avalanche/configuration.d.ts +83 -0
  56. package/dist/generated/avalanche/configuration.js +42 -0
  57. package/dist/generated/avalanche/index.d.ts +13 -0
  58. package/dist/generated/avalanche/index.js +31 -0
  59. package/dist/index.d.ts +3 -3
  60. package/dist/index.js +7 -7
  61. package/package.json +5 -5
  62. package/dist/ethereum/index.d.ts +0 -3
  63. package/dist/ethereum/parser/index.d.ts +0 -23
  64. package/dist/ethereum/parser/utils.d.ts +0 -3
  65. package/dist/ethereum/parser/zrx.d.ts +0 -5
@@ -22,38 +22,36 @@ var __importStar = (this && this.__importStar) || function (mod) {
22
22
  __setModuleDefault(result, mod);
23
23
  return result;
24
24
  };
25
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
26
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
27
+ };
25
28
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.TransactionParser = void 0;
29
+ exports.BaseTransactionParser = void 0;
27
30
  const caip_1 = require("@shapeshiftoss/caip");
28
31
  const bignumber_js_1 = require("bignumber.js");
29
32
  const ethers_1 = require("ethers");
30
33
  const types_1 = require("../../types");
31
34
  const utils_1 = require("../../utils");
32
35
  const erc20 = __importStar(require("./erc20"));
33
- const foxy = __importStar(require("./foxy"));
34
- const thor = __importStar(require("./thor"));
35
- const uniV2 = __importStar(require("./uniV2"));
36
- const weth = __importStar(require("./weth"));
37
- const yearn = __importStar(require("./yearn"));
38
- const zrx = __importStar(require("./zrx"));
39
- class TransactionParser {
36
+ __exportStar(require("./types"), exports);
37
+ __exportStar(require("./utils"), exports);
38
+ class BaseTransactionParser {
40
39
  constructor(args) {
40
+ this.parsers = [];
41
41
  this.chainId = args.chainId;
42
- this.assetId = (0, caip_1.toAssetId)({
43
- ...(0, caip_1.fromChainId)(this.chainId),
44
- assetNamespace: 'slip44',
45
- assetReference: caip_1.ASSET_REFERENCE.Ethereum
46
- });
47
42
  const provider = new ethers_1.ethers.providers.JsonRpcProvider(args.rpcUrl);
48
- this.thor = new thor.Parser({ chainId: this.chainId, rpcUrl: args.rpcUrl });
49
- this.uniV2 = new uniV2.Parser({ chainId: this.chainId, provider });
50
- this.zrx = new zrx.Parser();
51
- this.yearn = new yearn.Parser({ provider, chainId: this.chainId });
52
- this.foxy = new foxy.Parser();
53
- this.weth = new weth.Parser({ chainId: this.chainId, provider });
54
- this.erc20 = new erc20.Parser({ chainId: this.chainId, provider });
55
- // order here matters currently as weth and yearn have the same sigHash for deposit() and the weth parser is stricter resulting in faster processing times
56
- this.parsers = [this.zrx, this.thor, this.uniV2, this.weth, this.foxy, this.yearn, this.erc20];
43
+ this.registerParser(new erc20.Parser({ chainId: this.chainId, provider }));
44
+ }
45
+ /**
46
+ * Register custom transaction sub parser to extract contract specific data
47
+ *
48
+ * _parsers should be registered from most generic first to most specific last_
49
+ */
50
+ registerParser(parser) {
51
+ this.parsers.unshift(parser);
52
+ }
53
+ registerParsers(parsers) {
54
+ parsers.forEach((parser) => this.registerParser(parser));
57
55
  }
58
56
  async parse(tx, address) {
59
57
  var _a;
@@ -67,7 +65,7 @@ class TransactionParser {
67
65
  blockTime: tx.timestamp,
68
66
  chainId: this.chainId,
69
67
  confirmations: tx.confirmations,
70
- status: TransactionParser.getStatus(tx),
68
+ status: this.getStatus(tx),
71
69
  trade: contractParserResult === null || contractParserResult === void 0 ? void 0 : contractParserResult.trade,
72
70
  transfers: (_a = contractParserResult === null || contractParserResult === void 0 ? void 0 : contractParserResult.transfers) !== null && _a !== void 0 ? _a : [],
73
71
  txid: tx.txid,
@@ -75,7 +73,7 @@ class TransactionParser {
75
73
  };
76
74
  return this.getParsedTxWithTransfers(tx, parsedTx, address);
77
75
  }
78
- static getStatus(tx) {
76
+ getStatus(tx) {
79
77
  const status = tx.status;
80
78
  if (status === -1 && tx.confirmations <= 0)
81
79
  return types_1.Status.Pending;
@@ -107,8 +105,9 @@ class TransactionParser {
107
105
  }
108
106
  }
109
107
  (_a = tx.tokenTransfers) === null || _a === void 0 ? void 0 : _a.forEach((transfer) => {
110
- // FTX Token (FTT) name and symbol was set backwards on the ERC20 contract
111
- if (transfer.contract === '0x50D1c9771902476076eCFc8B2A83Ad6b9355a4c9') {
108
+ // FTX Token (FTT) name and symbol was set backwards on the ERC20 contract (Ethereum Mainnet)
109
+ if (this.chainId === caip_1.ethChainId &&
110
+ transfer.contract === '0x50D1c9771902476076eCFc8B2A83Ad6b9355a4c9') {
112
111
  transfer.name = transfer.symbol;
113
112
  transfer.symbol = transfer.name;
114
113
  }
@@ -120,7 +119,7 @@ class TransactionParser {
120
119
  };
121
120
  const transferArgs = [
122
121
  (0, caip_1.toAssetId)({
123
- ...(0, caip_1.fromChainId)(this.chainId),
122
+ chainId: this.chainId,
124
123
  assetNamespace: 'erc20',
125
124
  assetReference: transfer.contract
126
125
  }),
@@ -139,16 +138,7 @@ class TransactionParser {
139
138
  }
140
139
  });
141
140
  (_b = tx.internalTxs) === null || _b === void 0 ? void 0 : _b.forEach((internalTx) => {
142
- const transferArgs = [
143
- (0, caip_1.toAssetId)({
144
- ...(0, caip_1.fromChainId)(this.chainId),
145
- assetNamespace: 'slip44',
146
- assetReference: caip_1.ASSET_REFERENCE.Ethereum
147
- }),
148
- internalTx.from,
149
- internalTx.to,
150
- internalTx.value
151
- ];
141
+ const transferArgs = [this.assetId, internalTx.from, internalTx.to, internalTx.value];
152
142
  // internal eth send
153
143
  if (address === internalTx.from) {
154
144
  parsedTx.transfers = (0, utils_1.aggregateTransfer)(parsedTx.transfers, types_1.TransferType.Send, ...transferArgs);
@@ -161,4 +151,4 @@ class TransactionParser {
161
151
  return parsedTx;
162
152
  }
163
153
  }
164
- exports.TransactionParser = TransactionParser;
154
+ exports.BaseTransactionParser = BaseTransactionParser;
@@ -1,5 +1,7 @@
1
- import { EthereumTx } from '../generated/ethereum';
2
- import { BaseTxMetadata, StandardTx, StandardTxMetadata } from '../types';
1
+ import { AvalancheTx } from '../../generated/avalanche';
2
+ import { EthereumTx } from '../../generated/ethereum';
3
+ import { BaseTxMetadata, StandardTx, StandardTxMetadata } from '../../types';
4
+ export declare type Tx = EthereumTx | AvalancheTx;
3
5
  export declare enum TxParser {
4
6
  ERC20 = "erc20"
5
7
  }
@@ -12,6 +14,6 @@ export interface ParsedTx extends StandardTx {
12
14
  data?: TxMetadata;
13
15
  }
14
16
  export declare type TxSpecific = Partial<Pick<ParsedTx, 'trade' | 'transfers' | 'data'>>;
15
- export interface SubParser {
16
- parse(tx: EthereumTx): Promise<TxSpecific | undefined>;
17
+ export interface SubParser<T extends Tx, U = TxSpecific> {
18
+ parse(tx: T): Promise<U | undefined>;
17
19
  }
File without changes
@@ -0,0 +1,4 @@
1
+ export declare const getSigHash: (inputData: string | undefined) => string | undefined;
2
+ export declare const txInteractsWithContract: (tx: {
3
+ to: string;
4
+ }, contract: string) => boolean;
File without changes