@shapeshiftoss/unchained-client 6.10.0 → 6.11.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 (68) hide show
  1. package/dist/bitcoin/parser/index.d.ts.map +1 -1
  2. package/dist/bitcoin/parser/index.js +4 -3
  3. package/dist/bitcoin/parser/index.js.map +1 -1
  4. package/dist/cosmos/parser/index.d.ts +4 -4
  5. package/dist/cosmos/parser/index.d.ts.map +1 -1
  6. package/dist/cosmos/parser/index.js +27 -14
  7. package/dist/cosmos/parser/index.js.map +1 -1
  8. package/dist/cosmos/parser/utils.d.ts +1 -1
  9. package/dist/cosmos/parser/utils.d.ts.map +1 -1
  10. package/dist/cosmos/parser/utils.js +13 -9
  11. package/dist/cosmos/parser/utils.js.map +1 -1
  12. package/dist/cosmos/types.d.ts +4 -0
  13. package/dist/cosmos/types.d.ts.map +1 -1
  14. package/dist/ethereum/parser/foxy.d.ts +7 -7
  15. package/dist/ethereum/parser/foxy.d.ts.map +1 -1
  16. package/dist/ethereum/parser/foxy.js +11 -31
  17. package/dist/ethereum/parser/foxy.js.map +1 -1
  18. package/dist/ethereum/parser/index.d.ts.map +1 -1
  19. package/dist/ethereum/parser/index.js +4 -3
  20. package/dist/ethereum/parser/index.js.map +1 -1
  21. package/dist/ethereum/parser/thor.d.ts +5 -3
  22. package/dist/ethereum/parser/thor.d.ts.map +1 -1
  23. package/dist/ethereum/parser/thor.js +15 -19
  24. package/dist/ethereum/parser/thor.js.map +1 -1
  25. package/dist/ethereum/parser/uniV2.d.ts +5 -4
  26. package/dist/ethereum/parser/uniV2.d.ts.map +1 -1
  27. package/dist/ethereum/parser/uniV2.js +78 -73
  28. package/dist/ethereum/parser/uniV2.js.map +1 -1
  29. package/dist/ethereum/parser/weth.d.ts +6 -4
  30. package/dist/ethereum/parser/weth.d.ts.map +1 -1
  31. package/dist/ethereum/parser/weth.js +44 -55
  32. package/dist/ethereum/parser/weth.js.map +1 -1
  33. package/dist/ethereum/parser/yearn.d.ts +10 -10
  34. package/dist/ethereum/parser/yearn.d.ts.map +1 -1
  35. package/dist/ethereum/parser/yearn.js +23 -22
  36. package/dist/ethereum/parser/yearn.js.map +1 -1
  37. package/dist/generated/bitcoin/api.d.ts +1 -1
  38. package/dist/generated/bitcoin/api.js +1 -1
  39. package/dist/generated/bitcoin/base.d.ts +1 -1
  40. package/dist/generated/bitcoin/base.js +1 -1
  41. package/dist/generated/bitcoin/common.d.ts +1 -1
  42. package/dist/generated/bitcoin/common.js +1 -1
  43. package/dist/generated/bitcoin/configuration.d.ts +1 -1
  44. package/dist/generated/bitcoin/configuration.js +1 -1
  45. package/dist/generated/bitcoin/index.d.ts +1 -1
  46. package/dist/generated/bitcoin/index.js +1 -1
  47. package/dist/generated/ethereum/api.d.ts +1 -1
  48. package/dist/generated/ethereum/api.js +1 -1
  49. package/dist/generated/ethereum/base.d.ts +1 -1
  50. package/dist/generated/ethereum/base.js +1 -1
  51. package/dist/generated/ethereum/common.d.ts +1 -1
  52. package/dist/generated/ethereum/common.js +1 -1
  53. package/dist/generated/ethereum/configuration.d.ts +1 -1
  54. package/dist/generated/ethereum/configuration.js +1 -1
  55. package/dist/generated/ethereum/index.d.ts +1 -1
  56. package/dist/generated/ethereum/index.js +1 -1
  57. package/dist/tsconfig.tsbuildinfo +165 -149
  58. package/dist/types.d.ts +12 -1
  59. package/dist/types.d.ts.map +1 -1
  60. package/dist/types.js.map +1 -1
  61. package/dist/utils.d.ts +1 -1
  62. package/dist/utils.d.ts.map +1 -1
  63. package/dist/utils.js +6 -3
  64. package/dist/utils.js.map +1 -1
  65. package/dist/websocket.d.ts.map +1 -1
  66. package/dist/websocket.js +5 -1
  67. package/dist/websocket.js.map +1 -1
  68. package/package.json +5 -5
@@ -24,26 +24,96 @@ const constants_1 = require("./constants");
24
24
  class Parser {
25
25
  constructor(args) {
26
26
  this.abiInterface = new ethers_1.ethers.utils.Interface(uniV2_1.default);
27
+ this.supportedFunctions = {
28
+ addLiquidityEthSigHash: this.abiInterface.getSighash('addLiquidityETH'),
29
+ removeLiquidityEthSigHash: this.abiInterface.getSighash('removeLiquidityETH'),
30
+ };
27
31
  this.network = args.network;
28
32
  this.provider = args.provider;
29
- this.addLiquidityEthSigHash = this.abiInterface.getSighash('addLiquidityETH');
30
- this.removeLiquidityEthSigHash = this.abiInterface.getSighash('removeLiquidityETH');
31
33
  this.wethContract = {
32
34
  mainnet: constants_1.WETH_CONTRACT_MAINNET,
33
35
  ropsten: constants_1.WETH_CONTRACT_ROPSTEN,
34
36
  }[this.network];
35
37
  }
36
38
  parse(tx) {
37
- var _a;
39
+ var _a, _b, _c;
38
40
  return __awaiter(this, void 0, void 0, function* () {
39
- if (!((_a = tx.ethereumSpecific) === null || _a === void 0 ? void 0 : _a.data))
40
- return;
41
+ const txData = (_a = tx.ethereumSpecific) === null || _a === void 0 ? void 0 : _a.data;
41
42
  if (!utils_1.txInteractsWithContract(tx, constants_1.UNI_V2_ROUTER_CONTRACT))
42
43
  return;
43
- if (!(tx.confirmations === 0))
44
+ if (!txData)
45
+ return;
46
+ if (tx.confirmations)
47
+ return;
48
+ const txSigHash = utils_1.getSigHash(txData);
49
+ if (!Object.values(this.supportedFunctions).some((hash) => hash === txSigHash))
50
+ return;
51
+ const decoded = this.abiInterface.parseTransaction({ data: txData });
52
+ // failed to decode input data
53
+ if (!decoded)
54
+ return;
55
+ const sendAddress = (_c = (_b = tx.vin[0].addresses) === null || _b === void 0 ? void 0 : _b[0]) !== null && _c !== void 0 ? _c : '';
56
+ const tokenAddress = ethers_1.ethers.utils.getAddress(decoded.args.token.toLowerCase());
57
+ const lpTokenAddress = Parser.pairFor(tokenAddress, this.wethContract);
58
+ const transfers = yield (() => __awaiter(this, void 0, void 0, function* () {
59
+ switch (utils_1.getSigHash(txData)) {
60
+ case this.supportedFunctions.addLiquidityEthSigHash: {
61
+ const contract = new ethers_1.ethers.Contract(tokenAddress, erc20_1.default, this.provider);
62
+ const decimals = yield contract.decimals();
63
+ const name = yield contract.name();
64
+ const symbol = yield contract.symbol();
65
+ const value = decoded.args.amountTokenDesired.toString();
66
+ const assetId = caip_1.caip19.toCAIP19({
67
+ chain: types_1.ChainTypes.Ethereum,
68
+ network: utils_1.toNetworkType(this.network),
69
+ assetNamespace: caip_1.AssetNamespace.ERC20,
70
+ assetReference: tokenAddress,
71
+ });
72
+ return [
73
+ {
74
+ type: types_2.TransferType.Send,
75
+ from: sendAddress,
76
+ to: lpTokenAddress,
77
+ caip19: assetId,
78
+ assetId: assetId,
79
+ totalValue: value,
80
+ components: [{ value }],
81
+ token: { contract: tokenAddress, decimals, name, symbol },
82
+ },
83
+ ];
84
+ }
85
+ case this.supportedFunctions.removeLiquidityEthSigHash: {
86
+ const contract = new ethers_1.ethers.Contract(lpTokenAddress, erc20_1.default, this.provider);
87
+ const decimals = yield contract.decimals();
88
+ const name = yield contract.name();
89
+ const symbol = yield contract.symbol();
90
+ const value = decoded.args.liquidity.toString();
91
+ const assetId = caip_1.caip19.toCAIP19({
92
+ chain: types_1.ChainTypes.Ethereum,
93
+ network: utils_1.toNetworkType(this.network),
94
+ assetNamespace: caip_1.AssetNamespace.ERC20,
95
+ assetReference: lpTokenAddress,
96
+ });
97
+ return [
98
+ {
99
+ type: types_2.TransferType.Send,
100
+ from: sendAddress,
101
+ to: lpTokenAddress,
102
+ caip19: assetId,
103
+ assetId: assetId,
104
+ totalValue: value,
105
+ components: [{ value }],
106
+ token: { contract: lpTokenAddress, decimals, name, symbol },
107
+ },
108
+ ];
109
+ }
110
+ default:
111
+ return;
112
+ }
113
+ }))();
114
+ // no supported function detected
115
+ if (!transfers)
44
116
  return;
45
- const transfers = yield this.getTransfers(tx);
46
- const decoded = this.abiInterface.parseTransaction({ data: tx.ethereumSpecific.data });
47
117
  return {
48
118
  transfers,
49
119
  data: {
@@ -60,71 +130,6 @@ class Parser {
60
130
  const initCodeHash = '0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f'; // https://github.com/Uniswap/v2-periphery/blob/dda62473e2da448bc9cb8f4514dadda4aeede5f4/contracts/libraries/UniswapV2Library.sol#L24
61
131
  return ethers_1.ethers.utils.getCreate2Address(factoryContract, salt, initCodeHash);
62
132
  }
63
- getTransfers(tx) {
64
- var _a, _b, _c;
65
- return __awaiter(this, void 0, void 0, function* () {
66
- const data = (_a = tx.ethereumSpecific) === null || _a === void 0 ? void 0 : _a.data;
67
- if (!data)
68
- return;
69
- const sendAddress = (_c = (_b = tx.vin[0].addresses) === null || _b === void 0 ? void 0 : _b[0]) !== null && _c !== void 0 ? _c : '';
70
- switch (utils_1.getSigHash(data)) {
71
- case this.addLiquidityEthSigHash: {
72
- const result = this.abiInterface.decodeFunctionData(this.addLiquidityEthSigHash, data);
73
- const tokenAddress = ethers_1.ethers.utils.getAddress(result.token.toLowerCase());
74
- const lpTokenAddress = Parser.pairFor(tokenAddress, this.wethContract);
75
- const contract = new ethers_1.ethers.Contract(tokenAddress, erc20_1.default, this.provider);
76
- const decimals = yield contract.decimals();
77
- const name = yield contract.name();
78
- const symbol = yield contract.symbol();
79
- const value = result.amountTokenDesired.toString();
80
- return [
81
- {
82
- type: types_2.TransferType.Send,
83
- from: sendAddress,
84
- to: lpTokenAddress,
85
- caip19: caip_1.caip19.toCAIP19({
86
- chain: types_1.ChainTypes.Ethereum,
87
- network: utils_1.toNetworkType(this.network),
88
- assetNamespace: caip_1.AssetNamespace.ERC20,
89
- assetReference: tokenAddress,
90
- }),
91
- totalValue: value,
92
- components: [{ value }],
93
- token: { contract: tokenAddress, decimals, name, symbol },
94
- },
95
- ];
96
- }
97
- case this.removeLiquidityEthSigHash: {
98
- const result = this.abiInterface.decodeFunctionData(this.removeLiquidityEthSigHash, data);
99
- const tokenAddress = ethers_1.ethers.utils.getAddress(result.token.toLowerCase());
100
- const lpTokenAddress = Parser.pairFor(tokenAddress, this.wethContract);
101
- const contract = new ethers_1.ethers.Contract(lpTokenAddress, erc20_1.default, this.provider);
102
- const decimals = yield contract.decimals();
103
- const name = yield contract.name();
104
- const symbol = yield contract.symbol();
105
- const value = result.liquidity.toString();
106
- return [
107
- {
108
- type: types_2.TransferType.Send,
109
- from: sendAddress,
110
- to: lpTokenAddress,
111
- caip19: caip_1.caip19.toCAIP19({
112
- chain: types_1.ChainTypes.Ethereum,
113
- network: utils_1.toNetworkType(this.network),
114
- assetNamespace: caip_1.AssetNamespace.ERC20,
115
- assetReference: lpTokenAddress,
116
- }),
117
- totalValue: value,
118
- components: [{ value }],
119
- token: { contract: lpTokenAddress, decimals, name, symbol },
120
- },
121
- ];
122
- }
123
- default:
124
- return;
125
- }
126
- });
127
- }
128
133
  }
129
134
  exports.Parser = Parser;
130
135
  //# sourceMappingURL=uniV2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"uniV2.js","sourceRoot":"","sources":["../../../src/ethereum/parser/uniV2.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"uniV2.js","sourceRoot":"","sources":["../../../src/ethereum/parser/uniV2.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,8CAA4D;AAC5D,gDAAiD;AAEjD,mCAA+B;AAC/B,uCAAoD;AAEpD,wDAAmC;AACnC,wDAAmC;AACnC,mCAA4E;AAC5E,2CAAkG;AAOlG,MAAa,MAAM;IAYjB,YAAY,IAAgB;QAPnB,iBAAY,GAAG,IAAI,eAAM,CAAC,KAAK,CAAC,SAAS,CAAC,eAAS,CAAC,CAAA;QAEpD,uBAAkB,GAAG;YAC5B,sBAAsB,EAAE,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,iBAAiB,CAAC;YACvE,yBAAyB,EAAE,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,oBAAoB,CAAC;SAC9E,CAAA;QAGC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;QAC3B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;QAE7B,IAAI,CAAC,YAAY,GAAG;YAClB,OAAO,EAAE,iCAAqB;YAC9B,OAAO,EAAE,iCAAqB;SAC/B,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACjB,CAAC;IAEK,KAAK,CAAC,EAAe;;;YACzB,MAAM,MAAM,GAAG,MAAA,EAAE,CAAC,gBAAgB,0CAAE,IAAI,CAAA;YAExC,IAAI,CAAC,+BAAuB,CAAC,EAAE,EAAE,kCAAsB,CAAC;gBAAE,OAAM;YAChE,IAAI,CAAC,MAAM;gBAAE,OAAM;YACnB,IAAI,EAAE,CAAC,aAAa;gBAAE,OAAM;YAE5B,MAAM,SAAS,GAAG,kBAAU,CAAC,MAAM,CAAC,CAAA;YAEpC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC;gBAAE,OAAM;YAEtF,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;YAEpE,8BAA8B;YAC9B,IAAI,CAAC,OAAO;gBAAE,OAAM;YAEpB,MAAM,WAAW,GAAG,MAAA,MAAA,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,0CAAG,CAAC,CAAC,mCAAI,EAAE,CAAA;YAClD,MAAM,YAAY,GAAG,eAAM,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAA;YAC9E,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,CAAA;YAEtE,MAAM,SAAS,GAAG,MAAM,CAAC,GAAS,EAAE;gBAClC,QAAQ,kBAAU,CAAC,MAAM,CAAC,EAAE;oBAC1B,KAAK,IAAI,CAAC,kBAAkB,CAAC,sBAAsB,CAAC,CAAC;wBACnD,MAAM,QAAQ,GAAG,IAAI,eAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,eAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;wBAC5E,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,CAAA;wBAC1C,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;wBAClC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,EAAE,CAAA;wBACtC,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,CAAA;wBAExD,MAAM,OAAO,GAAG,aAAM,CAAC,QAAQ,CAAC;4BAC9B,KAAK,EAAE,kBAAU,CAAC,QAAQ;4BAC1B,OAAO,EAAE,qBAAa,CAAC,IAAI,CAAC,OAAO,CAAC;4BACpC,cAAc,EAAE,qBAAc,CAAC,KAAK;4BACpC,cAAc,EAAE,YAAY;yBAC7B,CAAC,CAAA;wBAEF,OAAO;4BACL;gCACE,IAAI,EAAE,oBAAY,CAAC,IAAI;gCACvB,IAAI,EAAE,WAAW;gCACjB,EAAE,EAAE,cAAc;gCAClB,MAAM,EAAE,OAAO;gCACf,OAAO,EAAE,OAAO;gCAChB,UAAU,EAAE,KAAK;gCACjB,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;gCACvB,KAAK,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE;6BAC1D;yBACF,CAAA;qBACF;oBACD,KAAK,IAAI,CAAC,kBAAkB,CAAC,yBAAyB,CAAC,CAAC;wBACtD,MAAM,QAAQ,GAAG,IAAI,eAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,eAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;wBAC9E,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,CAAA;wBAC1C,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;wBAClC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,EAAE,CAAA;wBACtC,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAA;wBAE/C,MAAM,OAAO,GAAG,aAAM,CAAC,QAAQ,CAAC;4BAC9B,KAAK,EAAE,kBAAU,CAAC,QAAQ;4BAC1B,OAAO,EAAE,qBAAa,CAAC,IAAI,CAAC,OAAO,CAAC;4BACpC,cAAc,EAAE,qBAAc,CAAC,KAAK;4BACpC,cAAc,EAAE,cAAc;yBAC/B,CAAC,CAAA;wBAEF,OAAO;4BACL;gCACE,IAAI,EAAE,oBAAY,CAAC,IAAI;gCACvB,IAAI,EAAE,WAAW;gCACjB,EAAE,EAAE,cAAc;gCAClB,MAAM,EAAE,OAAO;gCACf,OAAO,EAAE,OAAO;gCAChB,UAAU,EAAE,KAAK;gCACjB,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;gCACvB,KAAK,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE;6BAC5D;yBACF,CAAA;qBACF;oBACD;wBACE,OAAM;iBACT;YACH,CAAC,CAAA,CAAC,EAAE,CAAA;YAEJ,iCAAiC;YACjC,IAAI,CAAC,SAAS;gBAAE,OAAM;YAEtB,OAAO;gBACL,SAAS;gBACT,IAAI,EAAE;oBACJ,MAAM,EAAE,gBAAQ,CAAC,KAAK;oBACtB,MAAM,EAAE,OAAO,CAAC,IAAI;iBACrB;aACF,CAAA;;KACF;IAEO,MAAM,CAAC,OAAO,CAAC,MAAc,EAAE,MAAc;QACnD,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAC9E,MAAM,eAAe,GAAG,4CAA4C,CAAA;QACpE,MAAM,IAAI,GAAG,eAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;QACrF,MAAM,YAAY,GAAG,oEAAoE,CAAA,CAAC,qIAAqI;QAC/N,OAAO,eAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,eAAe,EAAE,IAAI,EAAE,YAAY,CAAC,CAAA;IAC5E,CAAC;CACF;AA1HD,wBA0HC"}
@@ -6,12 +6,14 @@ export interface ParserArgs {
6
6
  provider: ethers.providers.JsonRpcProvider;
7
7
  }
8
8
  export declare class Parser implements SubParser {
9
- abiInterface: ethers.utils.Interface;
10
- network: Network;
11
9
  provider: ethers.providers.JsonRpcProvider;
12
- readonly depositSigHash: string;
13
- readonly withdrawalSigHash: string;
10
+ readonly network: Network;
14
11
  readonly wethContract: string;
12
+ readonly abiInterface: ethers.utils.Interface;
13
+ readonly supportedFunctions: {
14
+ depositSigHash: string;
15
+ withdrawalSigHash: string;
16
+ };
15
17
  constructor(args: ParserArgs);
16
18
  parse(tx: BlockbookTx): Promise<TxSpecific | undefined>;
17
19
  }
@@ -1 +1 @@
1
- {"version":3,"file":"weth.d.ts","sourceRoot":"","sources":["../../../src/ethereum/parser/weth.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,IAAI,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAMzD,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,eAAe,CAAA;CAC3C;AAED,qBAAa,MAAO,YAAW,SAAS;IACtC,YAAY,yBAAuC;IACnD,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,eAAe,CAAA;IAE1C,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAA;IAClC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;gBAEjB,IAAI,EAAE,UAAU;IAYtB,KAAK,CAAC,EAAE,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;CAqF9D"}
1
+ {"version":3,"file":"weth.d.ts","sourceRoot":"","sources":["../../../src/ethereum/parser/weth.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,IAAI,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAMzD,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,eAAe,CAAA;CAC3C;AAED,qBAAa,MAAO,YAAW,SAAS;IACtC,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,eAAe,CAAA;IAE1C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,YAAY,yBAAuC;IAE5D,QAAQ,CAAC,kBAAkB;;;MAG1B;gBAEW,IAAI,EAAE,UAAU;IAUtB,KAAK,CAAC,EAAE,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;CA6E9D"}
@@ -17,106 +17,95 @@ const caip_1 = require("@shapeshiftoss/caip");
17
17
  const types_1 = require("@shapeshiftoss/types");
18
18
  const ethers_1 = require("ethers");
19
19
  const types_2 = require("../../types");
20
+ const erc20_1 = __importDefault(require("./abi/erc20"));
20
21
  const weth_1 = __importDefault(require("./abi/weth"));
21
22
  const utils_1 = require("./utils");
22
23
  const constants_1 = require("./constants");
23
- const erc20_1 = __importDefault(require("./abi/erc20"));
24
24
  class Parser {
25
25
  constructor(args) {
26
26
  this.abiInterface = new ethers_1.ethers.utils.Interface(weth_1.default);
27
+ this.supportedFunctions = {
28
+ depositSigHash: this.abiInterface.getSighash('deposit'),
29
+ withdrawalSigHash: this.abiInterface.getSighash('withdraw'),
30
+ };
27
31
  this.network = args.network;
28
32
  this.provider = args.provider;
29
- this.depositSigHash = this.abiInterface.getSighash('deposit');
30
- this.withdrawalSigHash = this.abiInterface.getSighash('withdraw');
31
33
  this.wethContract = {
32
34
  mainnet: constants_1.WETH_CONTRACT_MAINNET,
33
35
  ropsten: constants_1.WETH_CONTRACT_ROPSTEN,
34
36
  }[this.network];
35
37
  }
36
38
  parse(tx) {
37
- var _a, _b, _c, _d, _e, _f;
39
+ var _a, _b, _c;
38
40
  return __awaiter(this, void 0, void 0, function* () {
39
41
  const txData = (_a = tx.ethereumSpecific) === null || _a === void 0 ? void 0 : _a.data;
40
42
  if (!utils_1.txInteractsWithContract(tx, this.wethContract))
41
43
  return;
42
44
  if (!txData)
43
45
  return;
46
+ const txSigHash = utils_1.getSigHash(txData);
47
+ if (!Object.values(this.supportedFunctions).some((hash) => hash === txSigHash))
48
+ return;
44
49
  const decoded = this.abiInterface.parseTransaction({ data: txData });
45
- const contract = new ethers_1.ethers.Contract(this.wethContract, erc20_1.default, this.provider);
50
+ // failed to decode input data
51
+ if (!decoded)
52
+ return;
46
53
  const sendAddress = (_c = (_b = tx.vin[0].addresses) === null || _b === void 0 ? void 0 : _b[0]) !== null && _c !== void 0 ? _c : '';
47
- const receiveAddress = (_f = (_e = (_d = tx.vout) === null || _d === void 0 ? void 0 : _d[0].addresses) === null || _e === void 0 ? void 0 : _e[0]) !== null && _f !== void 0 ? _f : '';
48
- const decimals = yield contract.decimals();
49
- const name = yield contract.name();
50
- const symbol = yield contract.symbol();
54
+ const contract = new ethers_1.ethers.Contract(this.wethContract, erc20_1.default, this.provider);
55
+ const assetId = caip_1.caip19.toCAIP19({
56
+ chain: types_1.ChainTypes.Ethereum,
57
+ network: utils_1.toNetworkType(this.network),
58
+ assetNamespace: caip_1.AssetNamespace.ERC20,
59
+ assetReference: this.wethContract,
60
+ });
61
+ const token = {
62
+ contract: this.wethContract,
63
+ decimals: yield contract.decimals(),
64
+ name: yield contract.name(),
65
+ symbol: yield contract.symbol(),
66
+ };
51
67
  const transfers = (() => {
52
- switch (utils_1.getSigHash(txData)) {
53
- case this.depositSigHash: {
54
- if (receiveAddress !== this.wethContract)
55
- return undefined;
56
- const value = tx.value;
68
+ switch (txSigHash) {
69
+ case this.supportedFunctions.depositSigHash: {
57
70
  return [
58
71
  {
59
72
  type: types_2.TransferType.Receive,
60
73
  from: this.wethContract,
61
74
  to: sendAddress,
62
- caip19: caip_1.caip19.toCAIP19({
63
- chain: types_1.ChainTypes.Ethereum,
64
- network: utils_1.toNetworkType(this.network),
65
- assetNamespace: caip_1.AssetNamespace.ERC20,
66
- assetReference: this.wethContract,
67
- }),
68
- totalValue: value,
69
- components: [{ value }],
70
- token: {
71
- contract: this.wethContract,
72
- decimals,
73
- name,
74
- symbol,
75
- },
75
+ caip19: assetId,
76
+ assetId: assetId,
77
+ totalValue: tx.value,
78
+ components: [{ value: tx.value }],
79
+ token: token,
76
80
  },
77
81
  ];
78
82
  }
79
- case this.withdrawalSigHash: {
80
- if (receiveAddress !== this.wethContract)
81
- return undefined;
82
- const result = this.abiInterface.decodeFunctionData(this.withdrawalSigHash, txData);
83
- const value = result.wad.toString();
83
+ case this.supportedFunctions.withdrawalSigHash:
84
84
  return [
85
85
  {
86
86
  type: types_2.TransferType.Send,
87
87
  from: sendAddress,
88
88
  to: this.wethContract,
89
- caip19: caip_1.caip19.toCAIP19({
90
- chain: types_1.ChainTypes.Ethereum,
91
- network: utils_1.toNetworkType(this.network),
92
- assetNamespace: caip_1.AssetNamespace.ERC20,
93
- assetReference: this.wethContract,
94
- }),
95
- totalValue: value,
96
- components: [{ value }],
97
- token: {
98
- contract: this.wethContract,
99
- decimals,
100
- name,
101
- symbol,
102
- },
89
+ caip19: assetId,
90
+ assetId: assetId,
91
+ totalValue: decoded.args.wad.toString(),
92
+ components: [{ value: decoded.args.wad.toString() }],
93
+ token: token,
103
94
  },
104
95
  ];
105
- }
106
96
  default:
107
- return undefined;
97
+ return;
108
98
  }
109
99
  })();
110
- // We didn't recognise the sigHash - exit
100
+ // no supported function detected
111
101
  if (!transfers)
112
102
  return;
113
- const data = {
114
- parser: types_2.TxParser.WETH,
115
- method: decoded.name,
116
- };
117
103
  return {
118
104
  transfers,
119
- data,
105
+ data: {
106
+ parser: types_2.TxParser.WETH,
107
+ method: decoded.name,
108
+ },
120
109
  };
121
110
  });
122
111
  }
@@ -1 +1 @@
1
- {"version":3,"file":"weth.js","sourceRoot":"","sources":["../../../src/ethereum/parser/weth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"weth.js","sourceRoot":"","sources":["../../../src/ethereum/parser/weth.ts"],"names":[],"mappings":"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"}
@@ -10,17 +10,17 @@ export declare class Parser implements SubParser {
10
10
  provider: ethers.providers.JsonRpcProvider;
11
11
  yearnSdk: Yearn<ChainId> | undefined;
12
12
  yearnTokenVaultAddresses: string[] | undefined;
13
- shapeShiftInterface: ethers.utils.Interface;
14
- yearnInterface: ethers.utils.Interface;
15
- supportedYearnFunctions: {
16
- yearnApprovalSigHash: string;
17
- yearnDepositSigHash: string;
18
- yearnDepositWithAmountSigHash: string;
19
- yearnDepositWithAmountAndRecipientSigHash: string;
20
- yearnWithdrawSigHash: string;
13
+ readonly shapeShiftInterface: ethers.utils.Interface;
14
+ readonly yearnInterface: ethers.utils.Interface;
15
+ readonly supportedYearnFunctions: {
16
+ approveSigHash: string;
17
+ depositSigHash: string;
18
+ depositAmountSigHash: string;
19
+ depositAmountAndRecipientSigHash: string;
20
+ withdrawSigHash: string;
21
21
  };
22
- supportedShapeShiftFunctions: {
23
- shapeShiftDepositSigHash: string;
22
+ readonly supportedShapeShiftFunctions: {
23
+ depositSigHash: string;
24
24
  };
25
25
  constructor(args: ParserArgs);
26
26
  parse(tx: BlockbookTx): Promise<TxSpecific | undefined>;
@@ -1 +1 @@
1
- {"version":3,"file":"yearn.d.ts","sourceRoot":"","sources":["../../../src/ethereum/parser/yearn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AACzC,OAAO,EAAE,EAAE,IAAI,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAOzD,UAAU,UAAU;IAClB,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,eAAe,CAAA;CAC3C;AAED,qBAAa,MAAO,YAAW,SAAS;IACtC,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,eAAe,CAAA;IAC1C,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,SAAS,CAAA;IAEpC,wBAAwB,EAAE,MAAM,EAAE,GAAG,SAAS,CAAA;IAC9C,mBAAmB,yBAA+C;IAClE,cAAc,yBAAyC;IAEvD,uBAAuB;;;;;;MAMtB;IAED,4BAA4B;;MAE3B;gBAEW,IAAI,EAAE,UAAU;IAUtB,KAAK,CAAC,EAAE,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IAiD7D,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,SAAS;CAMnF"}
1
+ {"version":3,"file":"yearn.d.ts","sourceRoot":"","sources":["../../../src/ethereum/parser/yearn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AACzC,OAAO,EAAE,EAAE,IAAI,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAOzD,UAAU,UAAU;IAClB,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,eAAe,CAAA;CAC3C;AAED,qBAAa,MAAO,YAAW,SAAS;IACtC,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,eAAe,CAAA;IAC1C,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,SAAS,CAAA;IACpC,wBAAwB,EAAE,MAAM,EAAE,GAAG,SAAS,CAAA;IAE9C,QAAQ,CAAC,mBAAmB,yBAA+C;IAC3E,QAAQ,CAAC,cAAc,yBAAyC;IAEhE,QAAQ,CAAC,uBAAuB;;;;;;MAM/B;IAED,QAAQ,CAAC,4BAA4B;;MAEpC;gBAEW,IAAI,EAAE,UAAU;IAUtB,KAAK,CAAC,EAAE,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IA+C7D,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,SAAS;CAMnF"}
@@ -25,18 +25,18 @@ class Parser {
25
25
  this.shapeShiftInterface = new ethers_1.ethers.utils.Interface(shapeShiftRouter_1.default);
26
26
  this.yearnInterface = new ethers_1.ethers.utils.Interface(yearnVault_1.default);
27
27
  this.supportedYearnFunctions = {
28
- yearnApprovalSigHash: this.yearnInterface.getSighash('approve'),
29
- yearnDepositSigHash: '0xd0e30db0',
30
- yearnDepositWithAmountSigHash: '0xb6b55f25',
31
- yearnDepositWithAmountAndRecipientSigHash: '0x6e553f65',
32
- yearnWithdrawSigHash: '0x00f714ce',
28
+ approveSigHash: this.yearnInterface.getSighash('approve'),
29
+ depositSigHash: this.yearnInterface.getSighash('deposit()'),
30
+ depositAmountSigHash: this.yearnInterface.getSighash('deposit(uint256)'),
31
+ depositAmountAndRecipientSigHash: this.yearnInterface.getSighash('deposit(uint256,address)'),
32
+ withdrawSigHash: this.yearnInterface.getSighash('withdraw(uint256,address)'),
33
33
  };
34
34
  this.supportedShapeShiftFunctions = {
35
- shapeShiftDepositSigHash: '0x20e8c565',
35
+ depositSigHash: this.shapeShiftInterface.getSighash('deposit(address,address,uint256,uint256)'),
36
36
  };
37
37
  this.provider = args.provider;
38
38
  // The only Yearn-supported chain we currently support is mainnet
39
- if (args.network == 'mainnet') {
39
+ if (args.network === 'mainnet') {
40
40
  // 1 for EthMain (@yfi/sdk/dist/chain.d.ts)
41
41
  this.yearnSdk = new sdk_1.Yearn(1, { provider: this.provider, disableAllowlist: true });
42
42
  }
@@ -44,34 +44,35 @@ class Parser {
44
44
  parse(tx) {
45
45
  var _a, _b, _c, _d, _e;
46
46
  return __awaiter(this, void 0, void 0, function* () {
47
- const { yearnApprovalSigHash, yearnWithdrawSigHash, yearnDepositSigHash, yearnDepositWithAmountSigHash, yearnDepositWithAmountAndRecipientSigHash, } = this.supportedYearnFunctions;
48
- const { shapeShiftDepositSigHash } = this.supportedShapeShiftFunctions;
49
- const data = (_a = tx.ethereumSpecific) === null || _a === void 0 ? void 0 : _a.data;
50
- if (!data)
47
+ const txData = (_a = tx.ethereumSpecific) === null || _a === void 0 ? void 0 : _a.data;
48
+ if (!txData)
51
49
  return;
52
- const txSigHash = utils_1.getSigHash(data);
50
+ const txSigHash = utils_1.getSigHash(txData);
53
51
  const abiInterface = this.getAbiInterface(txSigHash);
54
52
  if (!abiInterface)
55
53
  return;
56
- const decoded = abiInterface.parseTransaction({ data });
57
- const receiveAddress = (_c = (_b = tx.vout) === null || _b === void 0 ? void 0 : _b[0].addresses) === null || _c === void 0 ? void 0 : _c[0];
58
54
  if (!this.yearnTokenVaultAddresses) {
59
- const vaults = yield ((_d = this.yearnSdk) === null || _d === void 0 ? void 0 : _d.vaults.get());
55
+ const vaults = yield ((_b = this.yearnSdk) === null || _b === void 0 ? void 0 : _b.vaults.get());
60
56
  this.yearnTokenVaultAddresses = vaults === null || vaults === void 0 ? void 0 : vaults.map((vault) => vault.address);
61
57
  }
58
+ const decoded = abiInterface.parseTransaction({ data: txData });
59
+ // failed to decode input data
60
+ if (!decoded)
61
+ return;
62
+ const receiveAddress = (_d = (_c = tx.vout) === null || _c === void 0 ? void 0 : _c[0].addresses) === null || _d === void 0 ? void 0 : _d[0];
62
63
  switch (txSigHash) {
63
- case yearnApprovalSigHash:
64
+ case this.supportedYearnFunctions.approveSigHash:
64
65
  if ((decoded === null || decoded === void 0 ? void 0 : decoded.args._spender) !== constants_1.SHAPE_SHIFT_ROUTER_CONTRACT)
65
66
  return;
66
67
  break;
67
- case shapeShiftDepositSigHash:
68
+ case this.supportedShapeShiftFunctions.depositSigHash:
68
69
  if (receiveAddress !== constants_1.SHAPE_SHIFT_ROUTER_CONTRACT)
69
70
  return;
70
71
  break;
71
- case yearnWithdrawSigHash:
72
- case yearnDepositSigHash:
73
- case yearnDepositWithAmountSigHash:
74
- case yearnDepositWithAmountAndRecipientSigHash:
72
+ case this.supportedYearnFunctions.withdrawSigHash:
73
+ case this.supportedYearnFunctions.depositSigHash:
74
+ case this.supportedYearnFunctions.depositAmountSigHash:
75
+ case this.supportedYearnFunctions.depositAmountAndRecipientSigHash:
75
76
  if (receiveAddress && !((_e = this.yearnTokenVaultAddresses) === null || _e === void 0 ? void 0 : _e.includes(receiveAddress)))
76
77
  return;
77
78
  break;
@@ -80,7 +81,7 @@ class Parser {
80
81
  }
81
82
  return {
82
83
  data: {
83
- method: decoded === null || decoded === void 0 ? void 0 : decoded.name,
84
+ method: decoded.name,
84
85
  parser: types_1.TxParser.Yearn,
85
86
  },
86
87
  };
@@ -1 +1 @@
1
- {"version":3,"file":"yearn.js","sourceRoot":"","sources":["../../../src/ethereum/parser/yearn.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"yearn.js","sourceRoot":"","sources":["../../../src/ethereum/parser/yearn.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  * @shapeshiftoss/bitcoin-api
3
3
  * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
4
4
  *
5
- * The version of the OpenAPI document: 6.10.0
5
+ * The version of the OpenAPI document: 6.11.0
6
6
  *
7
7
  *
8
8
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -5,7 +5,7 @@
5
5
  * @shapeshiftoss/bitcoin-api
6
6
  * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
7
7
  *
8
- * The version of the OpenAPI document: 6.10.0
8
+ * The version of the OpenAPI document: 6.11.0
9
9
  *
10
10
  *
11
11
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -2,7 +2,7 @@
2
2
  * @shapeshiftoss/bitcoin-api
3
3
  * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
4
4
  *
5
- * The version of the OpenAPI document: 6.10.0
5
+ * The version of the OpenAPI document: 6.11.0
6
6
  *
7
7
  *
8
8
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -5,7 +5,7 @@
5
5
  * @shapeshiftoss/bitcoin-api
6
6
  * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
7
7
  *
8
- * The version of the OpenAPI document: 6.10.0
8
+ * The version of the OpenAPI document: 6.11.0
9
9
  *
10
10
  *
11
11
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -2,7 +2,7 @@
2
2
  * @shapeshiftoss/bitcoin-api
3
3
  * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
4
4
  *
5
- * The version of the OpenAPI document: 6.10.0
5
+ * The version of the OpenAPI document: 6.11.0
6
6
  *
7
7
  *
8
8
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -5,7 +5,7 @@
5
5
  * @shapeshiftoss/bitcoin-api
6
6
  * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
7
7
  *
8
- * The version of the OpenAPI document: 6.10.0
8
+ * The version of the OpenAPI document: 6.11.0
9
9
  *
10
10
  *
11
11
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -2,7 +2,7 @@
2
2
  * @shapeshiftoss/bitcoin-api
3
3
  * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
4
4
  *
5
- * The version of the OpenAPI document: 6.10.0
5
+ * The version of the OpenAPI document: 6.11.0
6
6
  *
7
7
  *
8
8
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).