@defisaver/sdk 0.2.4 → 0.2.5

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 (132) hide show
  1. package/ACTIONS.md +21 -379
  2. package/DEV.md +298 -0
  3. package/index.js +11 -2
  4. package/package.json +2 -2
  5. package/src/Action.js +20 -8
  6. package/src/ActionWithL2.js +36 -0
  7. package/src/actions/aave/AaveBorrowAction.js +11 -2
  8. package/src/actions/aave/AaveClaimStkAaveAction.js +5 -5
  9. package/src/actions/aave/AaveCollateralSwitchAction.js +5 -4
  10. package/src/actions/aave/AavePaybackAction.js +11 -2
  11. package/src/actions/aave/AaveSupplyAction.js +6 -6
  12. package/src/actions/aave/AaveWithdrawAction.js +8 -1
  13. package/src/actions/aaveV3/AaveV3ATokenPaybackAction.js +58 -0
  14. package/src/actions/aaveV3/AaveV3BorrowAction.js +59 -0
  15. package/src/actions/aaveV3/AaveV3ClaimRewardsAction.js +45 -0
  16. package/src/actions/aaveV3/AaveV3CollateralSwitchAction.js +45 -0
  17. package/src/actions/aaveV3/AaveV3PaybackAction.js +68 -0
  18. package/src/actions/aaveV3/AaveV3SetEModeAction.js +40 -0
  19. package/src/actions/aaveV3/AaveV3SupplyAction.js +69 -0
  20. package/src/actions/aaveV3/AaveV3SwapBorrowRateModeAction.js +43 -0
  21. package/src/actions/aaveV3/AaveV3WithdrawAction.js +46 -0
  22. package/src/actions/aaveV3/index.js +21 -0
  23. package/src/actions/balancer/BalancerV2ClaimAction.js +12 -10
  24. package/src/actions/balancer/BalancerV2SupplyAction.js +16 -14
  25. package/src/actions/balancer/BalancerV2WithdrawAction.js +17 -15
  26. package/src/actions/basic/AutomationV2Unsub.js +3 -3
  27. package/src/actions/basic/ChangeProxyOwnerAction.js +4 -2
  28. package/src/actions/basic/GasFeeAction.js +6 -6
  29. package/src/actions/basic/PullTokenAction.js +9 -3
  30. package/src/actions/basic/SellAction.js +6 -5
  31. package/src/actions/basic/SendTokenAction.js +9 -4
  32. package/src/actions/basic/SubInputsAction.js +8 -3
  33. package/src/actions/basic/SumInputsAction.js +8 -3
  34. package/src/actions/basic/TokenBalanceAction.js +3 -3
  35. package/src/actions/basic/UnwrapEthAction.js +18 -5
  36. package/src/actions/basic/WrapEthAction.js +15 -5
  37. package/src/actions/basic/index.js +0 -6
  38. package/src/actions/checkers/MakerRatioCheckAction.js +5 -5
  39. package/src/actions/compound/CompoundBorrowAction.js +7 -1
  40. package/src/actions/compound/CompoundClaimAction.js +3 -3
  41. package/src/actions/compound/CompoundCollateralSwitchAction.js +4 -2
  42. package/src/actions/compound/CompoundGetDebtAction.js +3 -3
  43. package/src/actions/compound/CompoundPaybackAction.js +7 -1
  44. package/src/actions/compound/CompoundSupplyAction.js +4 -4
  45. package/src/actions/compound/CompoundWithdrawAction.js +7 -1
  46. package/src/actions/curve/CurveClaimFeesAction.js +4 -4
  47. package/src/actions/curve/CurveDepositAction.js +7 -7
  48. package/src/actions/curve/CurveGaugeDepositAction.js +6 -6
  49. package/src/actions/curve/CurveGaugeWithdrawAction.js +4 -4
  50. package/src/actions/curve/CurveMintCrvAction.js +3 -3
  51. package/src/actions/curve/CurveStethPoolDepositAction.js +9 -9
  52. package/src/actions/curve/CurveStethPoolWithdrawAction.js +9 -11
  53. package/src/actions/curve/CurveSwapAction.js +15 -15
  54. package/src/actions/curve/CurveWithdrawAction.js +7 -7
  55. package/src/actions/dydx/DyDxWithdrawAction.js +7 -1
  56. package/src/actions/flashloan/AaveV2FlashLoanAction.js +2 -2
  57. package/src/actions/flashloan/AaveV3FlashLoanAction.js +26 -0
  58. package/src/actions/flashloan/AaveV3FlashLoanPaybackAction.js +17 -0
  59. package/src/actions/flashloan/BalancerFlashLoanAction.js +2 -2
  60. package/src/actions/flashloan/DyDxFlashLoanAction.js +1 -5
  61. package/src/actions/flashloan/MakerFlashLoanAction.js +2 -2
  62. package/src/actions/flashloan/index.js +4 -0
  63. package/src/actions/guni/GUniDeposit.js +9 -9
  64. package/src/actions/guni/GUniWithdraw.js +5 -5
  65. package/src/actions/index.js +2 -0
  66. package/src/actions/insta/InstPullTokensAction.js +4 -4
  67. package/src/actions/lido/LidoStakeAction.js +7 -2
  68. package/src/actions/lido/LidoUnwrapAction.js +7 -2
  69. package/src/actions/lido/LidoWrapAction.js +7 -7
  70. package/src/actions/liquity/LiquityBorrowAction.js +5 -5
  71. package/src/actions/liquity/LiquityClaimAction.js +3 -3
  72. package/src/actions/liquity/LiquityCloseAction.js +4 -4
  73. package/src/actions/liquity/LiquityEthGainToTroveAction.js +3 -3
  74. package/src/actions/liquity/LiquityOpenAction.js +8 -8
  75. package/src/actions/liquity/LiquityPaybackAction.js +5 -5
  76. package/src/actions/liquity/LiquityRedeemAction.js +7 -7
  77. package/src/actions/liquity/LiquitySPDepositAction.js +7 -7
  78. package/src/actions/liquity/LiquitySPWithdrawAction.js +6 -6
  79. package/src/actions/liquity/LiquityStakeAction.js +7 -7
  80. package/src/actions/liquity/LiquitySupplyAction.js +5 -5
  81. package/src/actions/liquity/LiquityUnstakeAction.js +6 -6
  82. package/src/actions/liquity/LiquityWithdrawAction.js +4 -4
  83. package/src/actions/maker/MakerClaimAction.js +4 -4
  84. package/src/actions/maker/MakerGenerateAction.js +8 -1
  85. package/src/actions/maker/MakerGiveAction.js +4 -4
  86. package/src/actions/maker/MakerMergeAction.js +7 -1
  87. package/src/actions/maker/MakerOpenVaultAction.js +6 -1
  88. package/src/actions/maker/MakerPaybackAction.js +9 -2
  89. package/src/actions/maker/MakerRatioAction.js +5 -1
  90. package/src/actions/maker/MakerSupplyAction.js +9 -1
  91. package/src/actions/maker/MakerWithdrawAction.js +9 -1
  92. package/src/actions/mstable/MStableClaimAction.js +4 -4
  93. package/src/actions/mstable/MStableDepositAction.js +16 -16
  94. package/src/actions/mstable/MStableWithdrawAction.js +15 -15
  95. package/src/actions/rari/RariDepositAction.js +5 -5
  96. package/src/actions/rari/RariWithdrawAction.js +6 -6
  97. package/src/actions/reflexer/ReflexerGenerateAction.js +7 -1
  98. package/src/actions/reflexer/ReflexerNativeUniV2SaviourDepositAction.js +5 -5
  99. package/src/actions/reflexer/ReflexerNativeUniV2SaviourGetReservesAction.js +8 -3
  100. package/src/actions/reflexer/ReflexerNativeUniV2SaviourWithdrawAction.js +9 -4
  101. package/src/actions/reflexer/ReflexerOpenSafeAction.js +5 -1
  102. package/src/actions/reflexer/ReflexerPaybackAction.js +7 -1
  103. package/src/actions/reflexer/ReflexerSupplyAction.js +8 -1
  104. package/src/actions/reflexer/ReflexerWithdrawAction.js +8 -1
  105. package/src/actions/uniswap/UniswapSupplyAction.js +22 -20
  106. package/src/actions/uniswap/UniswapWithdrawAction.js +18 -16
  107. package/src/actions/uniswapV3/UniswapV3CollectAction.js +9 -7
  108. package/src/actions/uniswapV3/UniswapV3CreatePoolAction.js +22 -20
  109. package/src/actions/uniswapV3/UniswapV3MintAction.js +21 -19
  110. package/src/actions/uniswapV3/UniswapV3SupplyAction.js +19 -17
  111. package/src/actions/uniswapV3/UniswapV3WithdrawAction.js +14 -12
  112. package/src/actions/yearn/YearnSupplyAction.js +6 -6
  113. package/src/actions/yearn/YearnWithdrawAction.js +6 -6
  114. package/src/addresses.js +187 -146
  115. package/src/config.js +83 -0
  116. package/src/triggers/ChainLinkPriceTrigger.js +2 -2
  117. package/src/triggers/CompoundRatioTrigger.js +1 -1
  118. package/src/triggers/GasPriceTrigger.js +1 -1
  119. package/src/triggers/LiquityRatioTrigger.js +2 -2
  120. package/src/triggers/MakerRatioTrigger.js +5 -1
  121. package/src/triggers/ReflexerRatioTrigger.js +1 -1
  122. package/src/triggers/TimestampTrigger.js +1 -1
  123. package/src/triggers/UniV3CurrentTickTrigger.js +1 -1
  124. package/src/types.js +33 -0
  125. package/test/Action.js +1 -2
  126. package/test/accessLists/access-lists.js +2 -1
  127. package/test/actions/maker/MakerPaybackAction.js +2 -2
  128. package/test/index.js +4 -1
  129. package/src/actions/basic/SendTokenAndUnwrapAction.js +0 -30
  130. package/src/actions/basic/ToggleSubAction.js +0 -19
  131. package/src/actions/basic/UpdateSubAction.js +0 -19
  132. package/test/Strategy.js +0 -44
@@ -4,7 +4,7 @@ const {getAddr} = require("../addresses");
4
4
  class ReflexerRatioTrigger extends Action {
5
5
 
6
6
  constructor(vaultId, ratio, state) {
7
- super("ReflexerRatioTrigger", getAddr("ReflexerRatioTrigger"), ["uint256", "uint256", "uint8"], [...arguments]);
7
+ super("ReflexerRatioTrigger", getAddr("ReflexerRatioTrigger"), [["uint256", "uint256", "uint8"]], [[...arguments]]);
8
8
  }
9
9
  }
10
10
 
@@ -4,7 +4,7 @@ const {getAddr} = require("../addresses.js");
4
4
  class TimestampTrigger extends Action {
5
5
 
6
6
  constructor(nextTimestamp) {
7
- super("TimestampTrigger", getAddr("TimestampTrigger"), ["uint256"], [...arguments]);
7
+ super("TimestampTrigger", getAddr("TimestampTrigger"), [["uint256"]], [[...arguments]]);
8
8
  }
9
9
  }
10
10
 
@@ -4,7 +4,7 @@ const {getAddr} = require("../addresses.js");
4
4
  class UniV3CurrentTickTrigger extends Action {
5
5
 
6
6
  constructor(tokenId, state) {
7
- super("UniV3CurrentTickTrigger", getAddr("UniV3CurrentTickTrigger"), ["uint256", "uint8"], [...arguments]);
7
+ super("UniV3CurrentTickTrigger", getAddr("UniV3CurrentTickTrigger"), [["uint256", "uint8"]], [[...arguments]]);
8
8
  }
9
9
 
10
10
  }
package/src/types.js CHANGED
@@ -3,6 +3,11 @@
3
3
  * @typedef {string} EthAddress
4
4
  */
5
5
 
6
+ /**
7
+ * Chain ID number of the Network
8
+ * @typedef {number} chainId
9
+ */
10
+
6
11
  /**
7
12
  * Maker vault ID
8
13
  * @typedef {(string|number)} VaultId
@@ -18,3 +23,31 @@
18
23
  /**
19
24
  * @typedef {Array<AccessListItem>} AccessList
20
25
  */
26
+
27
+ /**
28
+ * Global configuration object
29
+ * @typedef {Object.<string, any>} Config
30
+ * @property {chainId}
31
+ */
32
+
33
+ /**
34
+ * @typedef {object} NativeCurrency
35
+ * @property {string} name
36
+ * @property {string} symbol
37
+ * @property {number} decimals
38
+ */
39
+
40
+ /**
41
+ * @typedef {object} Network
42
+ * @property {chainId} chainId
43
+ * @property {string} chainName
44
+ * @property {array<string>} blockExplorerUrls
45
+ * @property {array<string>} iconUrls
46
+ * @property {array<string>} rpcUrls
47
+ * @property {NativeCurrency} nativeCurrency
48
+ */
49
+
50
+ /**
51
+ * @typedef Networks
52
+ * @type {Object.<string, Network>}
53
+ */
package/test/Action.js CHANGED
@@ -39,7 +39,6 @@ describe('Action', () => {
39
39
  let action;
40
40
  it('Constructor', () => {
41
41
  action = new dfs.Action('MockSwap', '0x0a80C3C540eEF99811f4579fa7b1A0617294e06f', ['uint256', 'address'], ['$1', '0x6b175474e89094c44da98b954eedeac495271d0f']);
42
- action.mappableArgs = [action.args[0][0], action.args[0][1]];
43
42
  })
44
43
  it('encodeForDsProxyCall', () => encodeForDsProxyCall(action));
45
44
  it('encodeForRecipe', () => encodeForRecipe(action));
@@ -55,7 +54,7 @@ describe('Action', () => {
55
54
  assert.throws(() => encodeForRecipe(action));
56
55
  });
57
56
  it('encodeForRecipe with custom mappableArgs', () => {
58
- action.mappableArgs = [action.args[0][0][0], action.args[0][1]];
57
+ action.mappableArgs = [action.args[0][0], action.args[1]];
59
58
  encodeForRecipe(action)
60
59
  });
61
60
  })
@@ -85,7 +85,8 @@ describe('Access-Lists', () => {
85
85
  sampleRecipes.forEach((recipe) => {
86
86
  it(`... should make an access list for recipe ${recipe.name}`, () => {
87
87
  const recipeAccessList = recipe.getAccessList();
88
- testDuplicates(recipeAccessList);
88
+ console.log(recipeAccessList);
89
+ testDuplicates(recipeAccessList);
89
90
  testInclusion(recipe, recipeAccessList);
90
91
  });
91
92
  });
@@ -14,7 +14,7 @@ describe('Action: MakerPaybackAction', () => {
14
14
  assetAmountInWei(1, 'DAI'),
15
15
  '0x0a80C3C540eEF99811f4579fa7b1A0617294e06f'
16
16
  );
17
- assert.equal(action.args[3], getAddr('McdCdpManager'));
17
+ assert.equal(action.args[0][3], getAddr('McdCdpManager'));
18
18
  })
19
19
  it('encodeForDsProxyCall', () => encodeForDsProxyCall(action));
20
20
  it('encodeForRecipe', () => encodeForRecipe(action));
@@ -38,7 +38,7 @@ describe('Action: MakerPaybackAction', () => {
38
38
  '0x0a80C3C540eEF99811f4579fa7b1A0617294e06f',
39
39
  getAddr('BCdpManager'),
40
40
  );
41
- assert.equal(action.args[3], getAddr('BCdpManager'));
41
+ assert.equal(action.args[0][3], getAddr('BCdpManager'));
42
42
  })
43
43
  it('encodeForDsProxyCall', () => encodeForDsProxyCall(action));
44
44
  it('encodeForRecipe', () => encodeForRecipe(action));
package/test/index.js CHANGED
@@ -3,6 +3,9 @@ const {assert} = require('chai');
3
3
 
4
4
  describe('DFS', () => {
5
5
  it('Exports constructors', () => {
6
- assert.containsAllKeys(dfs, ['Action', 'Recipe', 'actions', 'actionAddresses', 'utils', 'DfsWeb3']);
6
+ assert.containsAllKeys(dfs, [
7
+ 'Action', 'Recipe', 'actions', 'actionAddresses', 'utils', 'DfsWeb3', 'configure', 'getNetworkData', 'networks',
8
+ 'actionAddressesAllChains',
9
+ ]);
7
10
  })
8
11
  })
@@ -1,30 +0,0 @@
1
- const Action = require("../../Action");
2
- const {requireAddress} = require("../../utils/general");
3
- const {getAssetInfoByAddress} = require("@defisaver/tokens");
4
- const { getAddr } = require('../../addresses.js');
5
-
6
- /**
7
- * Transfers specified token from recipe (DsProxy) to specified address unwraps if Weth address
8
- */
9
- class SendTokenAndUnwrapAction extends Action {
10
- /**
11
- * @param token {string} Token address
12
- * @param to {string} Transfer recipient
13
- * @param amount {string} Transfer amount (-1 for whole Recipe (DsProxy) balance)
14
- */
15
- constructor(token, to, amount) {
16
- requireAddress(to);
17
- super(
18
- 'SendTokenAndUnwrap',
19
- getAddr('SendTokenAndUnwrap'),
20
- [
21
- "address",
22
- "address",
23
- "uint",
24
- ],
25
- [...arguments]
26
- );
27
- }
28
- }
29
-
30
- module.exports = SendTokenAndUnwrapAction;
@@ -1,19 +0,0 @@
1
- const Action = require("../../Action");
2
- const {getAddr} = require("../../addresses.js");
3
-
4
- /**
5
- * Sets the state of the sub to active or deactivated
6
- */
7
- class ToggleSubAction extends Action {
8
- /**
9
- * @param subId Id of the subscription in the SubStorage contract
10
- * @param active Set to true to activate action, to false to deactivate
11
- */
12
- constructor(subId, active) {
13
- super("ToggleSub", getAddr("ToggleSub"), ["uint256", "bool"], [...arguments]);
14
-
15
- }
16
-
17
- }
18
-
19
- module.exports = ToggleSubAction;
@@ -1,19 +0,0 @@
1
- const Action = require("../../Action");
2
- const {getAddr} = require("../../addresses.js");
3
-
4
- /**
5
- * Action for updating sub data
6
- */
7
- class UpdateSubAction extends Action {
8
- /**
9
- * @param subId id of the subscription in the SubStorage contract
10
- * @param sub object that contains new sub information
11
- */
12
- constructor(subId, sub) {
13
- super("UpdateSub", getAddr("UpdateSub"), ["uint256", "(uint64,bool,bytes[],bytes32[])"], [...arguments]);
14
-
15
- }
16
-
17
- }
18
-
19
- module.exports = UpdateSubAction;
package/test/Strategy.js DELETED
@@ -1,44 +0,0 @@
1
- const dfs = require('../index.js');
2
-
3
- describe('Strategy', () => {
4
-
5
- context('Yearn Repay', () => {
6
- let repayStrategy;
7
-
8
- it('Constructor', () => {
9
- repayStrategy = new dfs.Strategy('McdYearnRepayStrategy');
10
-
11
- repayStrategy.addSubSlot('&vaultId', 'uint256');
12
- repayStrategy.addSubSlot('&targetRatio', 'uint256');
13
- repayStrategy.addSubSlot('&daiAddr', 'address');
14
- repayStrategy.addSubSlot('&mcdManager', 'address');
15
-
16
- const mcdRatioTrigger = new dfs.triggers.MakerRatioTrigger('0', '0', '0');
17
- repayStrategy.addTrigger(mcdRatioTrigger);
18
-
19
- const yearnWithdrawAction = new dfs.actions.yearn.YearnWithdrawAction(
20
- '%yDaiAddr',
21
- '%amount',
22
- '&proxy',
23
- '&proxy',
24
- );
25
-
26
- const feeTakingAction = new dfs.actions.basic.GasFeeAction(
27
- '0', '&daiAddr', '$1',
28
- );
29
-
30
- const mcdPaybackAction = new dfs.actions.maker.MakerPaybackAction(
31
- '&vaultId',
32
- '$2',
33
- '&proxy',
34
- '&mcdManager',
35
- );
36
-
37
- repayStrategy.addAction(yearnWithdrawAction);
38
- repayStrategy.addAction(feeTakingAction);
39
- repayStrategy.addAction(mcdPaybackAction);
40
- })
41
-
42
- it('encodeForDsProxyCall', () => repayStrategy.encodeForDsProxyCall());
43
- })
44
- })