@defisaver/sdk 0.3.18 → 0.3.20

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@defisaver/sdk",
3
- "version": "0.3.18",
3
+ "version": "0.3.20",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -1,5 +1,7 @@
1
1
  const Action = require('./Action');
2
2
  const Dec = require('decimal.js');
3
+ const AbiCoder = require('web3-eth-abi');
4
+ const ActionAbi = require('./abis/Action.json');
3
5
 
4
6
  class ActionWithL2 extends Action {
5
7
  /**
@@ -10,7 +12,12 @@ class ActionWithL2 extends Action {
10
12
 
11
13
  encodeForL2Recipe() { return `0x${this.encodeInputs().slice(10)}`; } // cut the method id
12
14
 
13
- encodeInputs() { throw new Error('Use implementation from specific ActionWithL2'); }
15
+ encodeInputs() {
16
+ let _arg = this._replaceWithPlaceholders(this.args, this.paramTypes);
17
+ let _paramType = this._formatType(this.paramTypes);
18
+ const executeActionDirectAbi = ActionAbi.find(({ name }) => name === 'executeActionDirect');
19
+ return AbiCoder.encodeFunctionCall(executeActionDirectAbi, [AbiCoder.encodeParameter(_paramType, _arg)]);
20
+ }
14
21
 
15
22
  addressToBytes20(address) { return address.slice(2); }
16
23
 
@@ -1,10 +1,10 @@
1
- const Action = require("../../Action");
2
- const {getAddr} = require('../../addresses.js');
1
+ const ActionWithL2 = require('../../ActionWithL2');
2
+ const { getAddr } = require('../../addresses.js');
3
3
 
4
4
  /**
5
5
  * Collects fees earned by user on position identified by tokenId
6
6
  */
7
- class UniswapV3CollectAction extends Action {
7
+ class UniswapV3CollectAction extends ActionWithL2 {
8
8
  /**
9
9
  * @param {string} tokenId
10
10
  * @param {EthAddress} recipient
@@ -1,11 +1,12 @@
1
- const Action = require("../../Action");
2
- const {getAddr} = require('../../addresses.js');
3
- const {getAssetInfoByAddress} = require("@defisaver/tokens");
1
+ const { getAssetInfoByAddress } = require('@defisaver/tokens');
2
+
3
+ const ActionWithL2 = require('../../ActionWithL2');
4
+ const { getAddr } = require('../../addresses.js');
4
5
 
5
6
  /**
6
7
  * Create a uniswap v3 pool
7
8
  */
8
- class UniswapV3CreatePoolAction extends Action {
9
+ class UniswapV3CreatePoolAction extends ActionWithL2 {
9
10
  /**
10
11
  * @param {EthAddress} token0
11
12
  * @param {EthAddress} token1
@@ -1,12 +1,13 @@
1
- const Action = require("../../Action");
2
- const {getAddr} = require('../../addresses.js');
3
- const {getAssetInfoByAddress} = require("@defisaver/tokens");
1
+ const { getAssetInfoByAddress } = require('@defisaver/tokens');
2
+
3
+ const ActionWithL2 = require('../../ActionWithL2');
4
+ const { getAddr } = require('../../addresses.js');
4
5
 
5
6
 
6
7
  /**
7
8
  * Creates a new Uniswap v3 LP supply position
8
9
  */
9
- class UniswapV3MintAction extends Action {
10
+ class UniswapV3MintAction extends ActionWithL2 {
10
11
  /**
11
12
  * @param {EthAddress} token0
12
13
  * @param {EthAddress} token1
@@ -1,11 +1,12 @@
1
- const {getAssetInfoByAddress} = require("@defisaver/tokens");
2
- const Action = require("../../Action");
3
- const {getAddr} = require('../../addresses.js');
1
+ const { getAssetInfoByAddress } = require('@defisaver/tokens');
2
+
3
+ const ActionWithL2 = require('../../ActionWithL2');
4
+ const { getAddr } = require('../../addresses.js');
4
5
 
5
6
  /**
6
7
  * Supplies a pair of tokens to an existing Uniswap v3 position identified by tokenId
7
8
  */
8
- class UniswapV3SupplyAction extends Action {
9
+ class UniswapV3SupplyAction extends ActionWithL2 {
9
10
  /**
10
11
  * @param {string} tokenId
11
12
  * @param {string} amount0Desired
@@ -1,10 +1,10 @@
1
- const Action = require("../../Action");
2
- const {getAddr} = require('../../addresses.js');
1
+ const ActionWithL2 = require('../../ActionWithL2');
2
+ const { getAddr } = require('../../addresses.js');
3
3
 
4
4
  /**
5
5
  * Burns liquidity, and returns underlying tokens to recipient
6
6
  */
7
- class UniswapV3WithdrawAction extends Action {
7
+ class UniswapV3WithdrawAction extends ActionWithL2 {
8
8
  /**
9
9
  * @param {string} tokenId
10
10
  * @param {string} liquidity
package/src/addresses.js CHANGED
@@ -132,6 +132,8 @@ const actionAddresses = {
132
132
  CurveDeposit: '0x160225c24300bD9fAA03Bc007D5e72bDbbcA9257',
133
133
  CurveWithdraw: '0xA2A6D75417807ebAf8364613018D697f88021771',
134
134
 
135
+ TrailingStopTrigger: '0x0000000000000000000000000000000000000000',
136
+
135
137
  // Convex
136
138
  ConvexDeposit: '0x3Ecc4F1FD5aA09D2E13Ec9ebFdF102063d66F458',
137
139
  ConvexWithdraw: '0x2B2c235F9e27A121947c34A39d447bD4C585aA15',
@@ -156,6 +158,7 @@ const actionAddresses = {
156
158
  PullToken: '0x392579E020a688068422A925c85f28bFD12a7EBB',
157
159
  SendTokenAndUnwrap: '0x8000174366066923D554cb466e190258A6FF3b1f',
158
160
  ToggleSub: '0x988C5C24AE6348404196267e19962f36961CAc29',
161
+ TokenBalance: '0xC6FF5b01f7c7b35b6e093fF70D2332B361C5Be5A',
159
162
 
160
163
 
161
164
  // aave v3
@@ -170,10 +173,16 @@ const actionAddresses = {
170
173
  AaveV3ClaimRewards: '0xBE8e8cea67085F869C1C0040fD52F9F3115E962e',
171
174
 
172
175
  FLAaveV3: '0x352D4a1622f2DC34c738F542934372855f219F05',
173
-
174
176
  AaveV3RatioTrigger: '0xB76e3f7694589D0f34ba43b17AD0D15350Ab5f85',
175
177
  GasFeeTakerL2: '0xB3dB299622A9DB0E944ccda2Ef899d6fF365B082',
176
178
  AaveV3RatioCheck: '0x7A36779a7b5F1128B28932604057d5b63361297c',
179
+
180
+ // uniswap V3
181
+ UniCollectV3: '0xad1D55a73D6d8b2218a4aD599c88d9550fb54cd7',
182
+ UniMintV3: '0x7548E3923A9f9e4e182C939CC78FA30050414D12',
183
+ UniSupplyV3: '0x533aDec68Eed581F4a7F202493Eaf4Df77b89EC0',
184
+ UniWithdrawV3: '0xE920235ED2d52EcF6157BBAFedfB5bbbcF7c5825',
185
+ UniCreatePoolV3: '0xAF45d1380d89dB7260DC2684158c5dfA4E147d3e',
177
186
  },
178
187
  [NETWORKS.arbitrum.chainId]: {
179
188
  DFSSell: '0x77c02Bb7CbBb2F896c5Ea14e1b60D65f81e552db',
@@ -185,7 +194,7 @@ const actionAddresses = {
185
194
  PullToken: '0xD8B3769f74bd9F196C3416a42a91E786948898e6',
186
195
  SendTokenAndUnwrap: '0x0fb867A5Ee1CA9426D3dAb95e613Be166218b977',
187
196
  ToggleSub: '0x71015226EADFd4aC887fB56556F64338e352439b',
188
-
197
+ TokenBalance: '0x483B903E702F60698Dd8124558C6199922737f1F',
189
198
 
190
199
  // aave v3
191
200
  AaveV3ATokenPayback: '0x261906e5E0D0D38D9cBb5c10dB9c4031aabdf8C1',
@@ -200,12 +209,19 @@ const actionAddresses = {
200
209
  FLAaveV3: '0x3Cc0d5DAE1B94e294152C3150aA732b97af603E1',
201
210
  GasFeeTakerL2: '0x2F64f73B222B4978CAfd0295c0fa106cE5f34996',
202
211
  AaveV3RatioCheck: '0x4a5c2cbCFB921b596Dec049389899CC8Eb4678ED',
212
+
213
+ // uniswap V3
214
+ UniCollectV3: '0xd521cbEfE58440d1C31FD0baF41fdfE18D028704',
215
+ UniMintV3: '0x7AC778fB7CaB7D368f37d6E7CE3c293077969331',
216
+ UniSupplyV3: '0x55675C6041A33EE9BDd796Edaa0f098AC7F3534f',
217
+ UniWithdrawV3: '0xa004c22eFd0CD87847DE83Ce9ab92af5382c2efe',
218
+ UniCreatePoolV3: '0x334Ab3C12a4c0315566fd9308880Dad71F838Dc5',
203
219
  }
204
220
  };
205
221
 
206
222
  const otherAddresses = {
207
223
  [NETWORKS.ethereum.chainId]: {
208
- RecipeExecutor: '0xe822d76c2632FC52f3eaa686bDA9Cea3212579D8',
224
+ RecipeExecutor: '0x1D6DEdb49AF91A11B5C5F34954FD3E8cC4f03A86',
209
225
  DFSRegistry: '0x287778F121F134C66212FB16c9b53eC991D32f5b',
210
226
  DFSProxyRegistry: '0x29474FdaC7142f9aB7773B8e38264FA15E3805ed',
211
227
  ProxyRegistry: '0x4678f0a6958e4D2Bc4F1BAF7Bc52E8F3564f3fE4',
@@ -230,6 +246,8 @@ const otherAddresses = {
230
246
  AdminVault: '0x136b1bEAfff362530F98f10E3D8C38f3a3F3d38C',
231
247
  DefisaverLogger: '0xFc2f1355296ab7dd98a1260E3Ff5E906999d4Acb',
232
248
  Empty: '0x0000000000000000000000000000000000000000',
249
+
250
+ UniswapV3PositionManager : '0xC36442b4a4522E871399CD717aBDD847Ab11FE88',
233
251
  },
234
252
  [NETWORKS.arbitrum.chainId]: {
235
253
  RecipeExecutor: '0xe775c59e5662597bcE8aB4432C06380709554883',
@@ -240,6 +258,8 @@ const otherAddresses = {
240
258
  AdminVault: '0xd47D8D97cAd12A866900eEc6Cde1962529F25351',
241
259
  DefisaverLogger: '0xE6f9A5C850dbcD12bc64f40d692F537250aDEC38',
242
260
  Empty: '0x0000000000000000000000000000000000000000',
261
+
262
+ UniswapV3PositionManager : '0xC36442b4a4522E871399CD717aBDD847Ab11FE88',
243
263
  },
244
264
  };
245
265
 
@@ -0,0 +1,11 @@
1
+ const Action = require("../Action");
2
+ const { getAddr } = require("../addresses.js");
3
+
4
+ class TrailingStopTrigger extends Action {
5
+ constructor(tokenAddr, percentage, roundId) {
6
+ super("TrailingStopTrigger", getAddr("TrailingStopTrigger"), ["address", "uint256", "uint80"], [...arguments]);
7
+ }
8
+
9
+ }
10
+
11
+ module.exports = TrailingStopTrigger;
@@ -7,6 +7,7 @@ const CompoundRatioTrigger = require('./CompoundRatioTrigger');
7
7
  const ReflexerRatioTrigger = require('./ReflexerRatioTrigger');
8
8
  const LiquityRatioTrigger = require('./LiquityRatioTrigger');
9
9
  const AaveV3RatioTrigger = require('./AaveV3RatioTrigger');
10
+ const TrailingStopTrigger = require('./TrailingStopTrigger');
10
11
 
11
12
  module.exports = {
12
13
  MakerRatioTrigger,
@@ -18,4 +19,5 @@ module.exports = {
18
19
  ReflexerRatioTrigger,
19
20
  LiquityRatioTrigger,
20
21
  AaveV3RatioTrigger,
22
+ TrailingStopTrigger,
21
23
  }