@shapeshiftoss/unchained-client 6.8.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 (82) 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 +33 -20
  7. package/dist/cosmos/parser/index.js.map +1 -1
  8. package/dist/cosmos/parser/utils.d.ts +10 -1
  9. package/dist/cosmos/parser/utils.d.ts.map +1 -1
  10. package/dist/cosmos/parser/utils.js +79 -21
  11. package/dist/cosmos/parser/utils.js.map +1 -1
  12. package/dist/cosmos/types.d.ts +6 -0
  13. package/dist/cosmos/types.d.ts.map +1 -1
  14. package/dist/ethereum/parser/abi/foxyStaking.d.ts +4 -0
  15. package/dist/ethereum/parser/abi/foxyStaking.d.ts.map +1 -0
  16. package/dist/ethereum/parser/abi/foxyStaking.js +721 -0
  17. package/dist/ethereum/parser/abi/foxyStaking.js.map +1 -0
  18. package/dist/ethereum/parser/abi/weth.d.ts +4 -0
  19. package/dist/ethereum/parser/abi/weth.d.ts.map +1 -0
  20. package/dist/ethereum/parser/abi/weth.js +283 -0
  21. package/dist/ethereum/parser/abi/weth.js.map +1 -0
  22. package/dist/ethereum/parser/constants.d.ts +3 -0
  23. package/dist/ethereum/parser/constants.d.ts.map +1 -1
  24. package/dist/ethereum/parser/constants.js +4 -1
  25. package/dist/ethereum/parser/constants.js.map +1 -1
  26. package/dist/ethereum/parser/foxy.d.ts +14 -0
  27. package/dist/ethereum/parser/foxy.d.ts.map +1 -0
  28. package/dist/ethereum/parser/foxy.js +56 -0
  29. package/dist/ethereum/parser/foxy.js.map +1 -0
  30. package/dist/ethereum/parser/index.d.ts +2 -0
  31. package/dist/ethereum/parser/index.d.ts.map +1 -1
  32. package/dist/ethereum/parser/index.js +9 -4
  33. package/dist/ethereum/parser/index.js.map +1 -1
  34. package/dist/ethereum/parser/thor.d.ts +5 -3
  35. package/dist/ethereum/parser/thor.d.ts.map +1 -1
  36. package/dist/ethereum/parser/thor.js +15 -19
  37. package/dist/ethereum/parser/thor.js.map +1 -1
  38. package/dist/ethereum/parser/uniV2.d.ts +5 -4
  39. package/dist/ethereum/parser/uniV2.d.ts.map +1 -1
  40. package/dist/ethereum/parser/uniV2.js +80 -75
  41. package/dist/ethereum/parser/uniV2.js.map +1 -1
  42. package/dist/ethereum/parser/weth.d.ts +20 -0
  43. package/dist/ethereum/parser/weth.d.ts.map +1 -0
  44. package/dist/ethereum/parser/weth.js +114 -0
  45. package/dist/ethereum/parser/weth.js.map +1 -0
  46. package/dist/ethereum/parser/yearn.d.ts +10 -10
  47. package/dist/ethereum/parser/yearn.d.ts.map +1 -1
  48. package/dist/ethereum/parser/yearn.js +35 -23
  49. package/dist/ethereum/parser/yearn.js.map +1 -1
  50. package/dist/generated/bitcoin/api.d.ts +1 -1
  51. package/dist/generated/bitcoin/api.js +1 -1
  52. package/dist/generated/bitcoin/base.d.ts +1 -1
  53. package/dist/generated/bitcoin/base.js +1 -1
  54. package/dist/generated/bitcoin/common.d.ts +1 -1
  55. package/dist/generated/bitcoin/common.js +1 -1
  56. package/dist/generated/bitcoin/configuration.d.ts +1 -1
  57. package/dist/generated/bitcoin/configuration.js +1 -1
  58. package/dist/generated/bitcoin/index.d.ts +1 -1
  59. package/dist/generated/bitcoin/index.js +1 -1
  60. package/dist/generated/ethereum/api.d.ts +1 -1
  61. package/dist/generated/ethereum/api.js +1 -1
  62. package/dist/generated/ethereum/base.d.ts +1 -1
  63. package/dist/generated/ethereum/base.js +1 -1
  64. package/dist/generated/ethereum/common.d.ts +1 -1
  65. package/dist/generated/ethereum/common.js +1 -1
  66. package/dist/generated/ethereum/configuration.d.ts +1 -1
  67. package/dist/generated/ethereum/configuration.js +1 -1
  68. package/dist/generated/ethereum/index.d.ts +1 -1
  69. package/dist/generated/ethereum/index.js +1 -1
  70. package/dist/tsconfig.tsbuildinfo +142 -56
  71. package/dist/types.d.ts +15 -2
  72. package/dist/types.d.ts.map +1 -1
  73. package/dist/types.js +2 -0
  74. package/dist/types.js.map +1 -1
  75. package/dist/utils.d.ts +1 -1
  76. package/dist/utils.d.ts.map +1 -1
  77. package/dist/utils.js +6 -3
  78. package/dist/utils.js.map +1 -1
  79. package/dist/websocket.d.ts.map +1 -1
  80. package/dist/websocket.js +5 -1
  81. package/dist/websocket.js.map +1 -1
  82. package/package.json +5 -5
@@ -6,15 +6,16 @@ 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
9
  network: Network;
11
10
  provider: ethers.providers.JsonRpcProvider;
12
- readonly addLiquidityEthSigHash: string;
13
- readonly removeLiquidityEthSigHash: string;
14
11
  readonly wethContract: string;
12
+ readonly abiInterface: ethers.utils.Interface;
13
+ readonly supportedFunctions: {
14
+ addLiquidityEthSigHash: string;
15
+ removeLiquidityEthSigHash: string;
16
+ };
15
17
  constructor(args: ParserArgs);
16
18
  parse(tx: BlockbookTx): Promise<TxSpecific | undefined>;
17
19
  private static pairFor;
18
- private getTransfers;
19
20
  }
20
21
  //# sourceMappingURL=uniV2.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"uniV2.d.ts","sourceRoot":"","sources":["../../../src/ethereum/parser/uniV2.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,yBAAwC;IACpD,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,eAAe,CAAA;IAE1C,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAA;IACvC,QAAQ,CAAC,yBAAyB,EAAE,MAAM,CAAA;IAC1C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;gBAEjB,IAAI,EAAE,UAAU;IAYtB,KAAK,CAAC,EAAE,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IAiB7D,OAAO,CAAC,MAAM,CAAC,OAAO;YAQR,YAAY;CAiE3B"}
1
+ {"version":3,"file":"uniV2.d.ts","sourceRoot":"","sources":["../../../src/ethereum/parser/uniV2.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,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,eAAe,CAAA;IAE1C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,YAAY,yBAAwC;IAE7D,QAAQ,CAAC,kBAAkB;;;MAG1B;gBAEW,IAAI,EAAE,UAAU;IAUtB,KAAK,CAAC,EAAE,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IA6F7D,OAAO,CAAC,MAAM,CAAC,OAAO;CAOvB"}
@@ -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
- mainnet: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2',
33
- ropsten: '0xc778417E063141139Fce010982780140Aa0cD5Ab',
34
+ mainnet: constants_1.WETH_CONTRACT_MAINNET,
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":"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"}
@@ -0,0 +1,20 @@
1
+ import { Tx as BlockbookTx } from '@shapeshiftoss/blockbook';
2
+ import { ethers } from 'ethers';
3
+ import { Network, SubParser, TxSpecific } from '../types';
4
+ export interface ParserArgs {
5
+ network: Network;
6
+ provider: ethers.providers.JsonRpcProvider;
7
+ }
8
+ export declare class Parser implements SubParser {
9
+ provider: ethers.providers.JsonRpcProvider;
10
+ readonly network: Network;
11
+ readonly wethContract: string;
12
+ readonly abiInterface: ethers.utils.Interface;
13
+ readonly supportedFunctions: {
14
+ depositSigHash: string;
15
+ withdrawalSigHash: string;
16
+ };
17
+ constructor(args: ParserArgs);
18
+ parse(tx: BlockbookTx): Promise<TxSpecific | undefined>;
19
+ }
20
+ //# sourceMappingURL=weth.d.ts.map
@@ -0,0 +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,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"}
@@ -0,0 +1,114 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.Parser = void 0;
16
+ const caip_1 = require("@shapeshiftoss/caip");
17
+ const types_1 = require("@shapeshiftoss/types");
18
+ const ethers_1 = require("ethers");
19
+ const types_2 = require("../../types");
20
+ const erc20_1 = __importDefault(require("./abi/erc20"));
21
+ const weth_1 = __importDefault(require("./abi/weth"));
22
+ const utils_1 = require("./utils");
23
+ const constants_1 = require("./constants");
24
+ class Parser {
25
+ constructor(args) {
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
+ };
31
+ this.network = args.network;
32
+ this.provider = args.provider;
33
+ this.wethContract = {
34
+ mainnet: constants_1.WETH_CONTRACT_MAINNET,
35
+ ropsten: constants_1.WETH_CONTRACT_ROPSTEN,
36
+ }[this.network];
37
+ }
38
+ parse(tx) {
39
+ var _a, _b, _c;
40
+ return __awaiter(this, void 0, void 0, function* () {
41
+ const txData = (_a = tx.ethereumSpecific) === null || _a === void 0 ? void 0 : _a.data;
42
+ if (!utils_1.txInteractsWithContract(tx, this.wethContract))
43
+ return;
44
+ if (!txData)
45
+ return;
46
+ const txSigHash = utils_1.getSigHash(txData);
47
+ if (!Object.values(this.supportedFunctions).some((hash) => hash === txSigHash))
48
+ return;
49
+ const decoded = this.abiInterface.parseTransaction({ data: txData });
50
+ // failed to decode input data
51
+ if (!decoded)
52
+ return;
53
+ const sendAddress = (_c = (_b = tx.vin[0].addresses) === null || _b === void 0 ? void 0 : _b[0]) !== null && _c !== void 0 ? _c : '';
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
+ };
67
+ const transfers = (() => {
68
+ switch (txSigHash) {
69
+ case this.supportedFunctions.depositSigHash: {
70
+ return [
71
+ {
72
+ type: types_2.TransferType.Receive,
73
+ from: this.wethContract,
74
+ to: sendAddress,
75
+ caip19: assetId,
76
+ assetId: assetId,
77
+ totalValue: tx.value,
78
+ components: [{ value: tx.value }],
79
+ token: token,
80
+ },
81
+ ];
82
+ }
83
+ case this.supportedFunctions.withdrawalSigHash:
84
+ return [
85
+ {
86
+ type: types_2.TransferType.Send,
87
+ from: sendAddress,
88
+ to: this.wethContract,
89
+ caip19: assetId,
90
+ assetId: assetId,
91
+ totalValue: decoded.args.wad.toString(),
92
+ components: [{ value: decoded.args.wad.toString() }],
93
+ token: token,
94
+ },
95
+ ];
96
+ default:
97
+ return;
98
+ }
99
+ })();
100
+ // no supported function detected
101
+ if (!transfers)
102
+ return;
103
+ return {
104
+ transfers,
105
+ data: {
106
+ parser: types_2.TxParser.WETH,
107
+ method: decoded.name,
108
+ },
109
+ };
110
+ });
111
+ }
112
+ }
113
+ exports.Parser = Parser;
114
+ //# sourceMappingURL=weth.js.map
@@ -0,0 +1 @@
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;IAmC7D,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,32 +44,44 @@ 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 } = 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
  }
62
- if (txSigHash === yearnApprovalSigHash && (decoded === null || decoded === void 0 ? void 0 : decoded.args._spender) !== constants_1.SHAPE_SHIFT_ROUTER_CONTRACT)
63
- return;
64
- if (txSigHash === shapeShiftDepositSigHash && receiveAddress !== constants_1.SHAPE_SHIFT_ROUTER_CONTRACT)
65
- return;
66
- if (txSigHash === yearnWithdrawSigHash &&
67
- receiveAddress &&
68
- !((_e = this.yearnTokenVaultAddresses) === null || _e === void 0 ? void 0 : _e.includes(receiveAddress)))
58
+ const decoded = abiInterface.parseTransaction({ data: txData });
59
+ // failed to decode input data
60
+ if (!decoded)
69
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];
63
+ switch (txSigHash) {
64
+ case this.supportedYearnFunctions.approveSigHash:
65
+ if ((decoded === null || decoded === void 0 ? void 0 : decoded.args._spender) !== constants_1.SHAPE_SHIFT_ROUTER_CONTRACT)
66
+ return;
67
+ break;
68
+ case this.supportedShapeShiftFunctions.depositSigHash:
69
+ if (receiveAddress !== constants_1.SHAPE_SHIFT_ROUTER_CONTRACT)
70
+ return;
71
+ break;
72
+ case this.supportedYearnFunctions.withdrawSigHash:
73
+ case this.supportedYearnFunctions.depositSigHash:
74
+ case this.supportedYearnFunctions.depositAmountSigHash:
75
+ case this.supportedYearnFunctions.depositAmountAndRecipientSigHash:
76
+ if (receiveAddress && !((_e = this.yearnTokenVaultAddresses) === null || _e === void 0 ? void 0 : _e.includes(receiveAddress)))
77
+ return;
78
+ break;
79
+ default:
80
+ return;
81
+ }
70
82
  return {
71
83
  data: {
72
- method: decoded === null || decoded === void 0 ? void 0 : decoded.name,
84
+ method: decoded.name,
73
85
  parser: types_1.TxParser.Yearn,
74
86
  },
75
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.8.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.8.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.8.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.8.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.8.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.8.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.8.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.8.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.8.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.8.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).