@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.
- package/ACTIONS.md +21 -379
- package/DEV.md +298 -0
- package/index.js +11 -2
- package/package.json +2 -2
- package/src/Action.js +20 -8
- package/src/ActionWithL2.js +36 -0
- package/src/actions/aave/AaveBorrowAction.js +11 -2
- package/src/actions/aave/AaveClaimStkAaveAction.js +5 -5
- package/src/actions/aave/AaveCollateralSwitchAction.js +5 -4
- package/src/actions/aave/AavePaybackAction.js +11 -2
- package/src/actions/aave/AaveSupplyAction.js +6 -6
- package/src/actions/aave/AaveWithdrawAction.js +8 -1
- package/src/actions/aaveV3/AaveV3ATokenPaybackAction.js +58 -0
- package/src/actions/aaveV3/AaveV3BorrowAction.js +59 -0
- package/src/actions/aaveV3/AaveV3ClaimRewardsAction.js +45 -0
- package/src/actions/aaveV3/AaveV3CollateralSwitchAction.js +45 -0
- package/src/actions/aaveV3/AaveV3PaybackAction.js +68 -0
- package/src/actions/aaveV3/AaveV3SetEModeAction.js +40 -0
- package/src/actions/aaveV3/AaveV3SupplyAction.js +69 -0
- package/src/actions/aaveV3/AaveV3SwapBorrowRateModeAction.js +43 -0
- package/src/actions/aaveV3/AaveV3WithdrawAction.js +46 -0
- package/src/actions/aaveV3/index.js +21 -0
- package/src/actions/balancer/BalancerV2ClaimAction.js +12 -10
- package/src/actions/balancer/BalancerV2SupplyAction.js +16 -14
- package/src/actions/balancer/BalancerV2WithdrawAction.js +17 -15
- package/src/actions/basic/AutomationV2Unsub.js +3 -3
- package/src/actions/basic/ChangeProxyOwnerAction.js +4 -2
- package/src/actions/basic/GasFeeAction.js +6 -6
- package/src/actions/basic/PullTokenAction.js +9 -3
- package/src/actions/basic/SellAction.js +6 -5
- package/src/actions/basic/SendTokenAction.js +9 -4
- package/src/actions/basic/SubInputsAction.js +8 -3
- package/src/actions/basic/SumInputsAction.js +8 -3
- package/src/actions/basic/TokenBalanceAction.js +3 -3
- package/src/actions/basic/UnwrapEthAction.js +18 -5
- package/src/actions/basic/WrapEthAction.js +15 -5
- package/src/actions/basic/index.js +0 -6
- package/src/actions/checkers/MakerRatioCheckAction.js +5 -5
- package/src/actions/compound/CompoundBorrowAction.js +7 -1
- package/src/actions/compound/CompoundClaimAction.js +3 -3
- package/src/actions/compound/CompoundCollateralSwitchAction.js +4 -2
- package/src/actions/compound/CompoundGetDebtAction.js +3 -3
- package/src/actions/compound/CompoundPaybackAction.js +7 -1
- package/src/actions/compound/CompoundSupplyAction.js +4 -4
- package/src/actions/compound/CompoundWithdrawAction.js +7 -1
- package/src/actions/curve/CurveClaimFeesAction.js +4 -4
- package/src/actions/curve/CurveDepositAction.js +7 -7
- package/src/actions/curve/CurveGaugeDepositAction.js +6 -6
- package/src/actions/curve/CurveGaugeWithdrawAction.js +4 -4
- package/src/actions/curve/CurveMintCrvAction.js +3 -3
- package/src/actions/curve/CurveStethPoolDepositAction.js +9 -9
- package/src/actions/curve/CurveStethPoolWithdrawAction.js +9 -11
- package/src/actions/curve/CurveSwapAction.js +15 -15
- package/src/actions/curve/CurveWithdrawAction.js +7 -7
- package/src/actions/dydx/DyDxWithdrawAction.js +7 -1
- package/src/actions/flashloan/AaveV2FlashLoanAction.js +2 -2
- package/src/actions/flashloan/AaveV3FlashLoanAction.js +26 -0
- package/src/actions/flashloan/AaveV3FlashLoanPaybackAction.js +17 -0
- package/src/actions/flashloan/BalancerFlashLoanAction.js +2 -2
- package/src/actions/flashloan/DyDxFlashLoanAction.js +1 -5
- package/src/actions/flashloan/MakerFlashLoanAction.js +2 -2
- package/src/actions/flashloan/index.js +4 -0
- package/src/actions/guni/GUniDeposit.js +9 -9
- package/src/actions/guni/GUniWithdraw.js +5 -5
- package/src/actions/index.js +2 -0
- package/src/actions/insta/InstPullTokensAction.js +4 -4
- package/src/actions/lido/LidoStakeAction.js +7 -2
- package/src/actions/lido/LidoUnwrapAction.js +7 -2
- package/src/actions/lido/LidoWrapAction.js +7 -7
- package/src/actions/liquity/LiquityBorrowAction.js +5 -5
- package/src/actions/liquity/LiquityClaimAction.js +3 -3
- package/src/actions/liquity/LiquityCloseAction.js +4 -4
- package/src/actions/liquity/LiquityEthGainToTroveAction.js +3 -3
- package/src/actions/liquity/LiquityOpenAction.js +8 -8
- package/src/actions/liquity/LiquityPaybackAction.js +5 -5
- package/src/actions/liquity/LiquityRedeemAction.js +7 -7
- package/src/actions/liquity/LiquitySPDepositAction.js +7 -7
- package/src/actions/liquity/LiquitySPWithdrawAction.js +6 -6
- package/src/actions/liquity/LiquityStakeAction.js +7 -7
- package/src/actions/liquity/LiquitySupplyAction.js +5 -5
- package/src/actions/liquity/LiquityUnstakeAction.js +6 -6
- package/src/actions/liquity/LiquityWithdrawAction.js +4 -4
- package/src/actions/maker/MakerClaimAction.js +4 -4
- package/src/actions/maker/MakerGenerateAction.js +8 -1
- package/src/actions/maker/MakerGiveAction.js +4 -4
- package/src/actions/maker/MakerMergeAction.js +7 -1
- package/src/actions/maker/MakerOpenVaultAction.js +6 -1
- package/src/actions/maker/MakerPaybackAction.js +9 -2
- package/src/actions/maker/MakerRatioAction.js +5 -1
- package/src/actions/maker/MakerSupplyAction.js +9 -1
- package/src/actions/maker/MakerWithdrawAction.js +9 -1
- package/src/actions/mstable/MStableClaimAction.js +4 -4
- package/src/actions/mstable/MStableDepositAction.js +16 -16
- package/src/actions/mstable/MStableWithdrawAction.js +15 -15
- package/src/actions/rari/RariDepositAction.js +5 -5
- package/src/actions/rari/RariWithdrawAction.js +6 -6
- package/src/actions/reflexer/ReflexerGenerateAction.js +7 -1
- package/src/actions/reflexer/ReflexerNativeUniV2SaviourDepositAction.js +5 -5
- package/src/actions/reflexer/ReflexerNativeUniV2SaviourGetReservesAction.js +8 -3
- package/src/actions/reflexer/ReflexerNativeUniV2SaviourWithdrawAction.js +9 -4
- package/src/actions/reflexer/ReflexerOpenSafeAction.js +5 -1
- package/src/actions/reflexer/ReflexerPaybackAction.js +7 -1
- package/src/actions/reflexer/ReflexerSupplyAction.js +8 -1
- package/src/actions/reflexer/ReflexerWithdrawAction.js +8 -1
- package/src/actions/uniswap/UniswapSupplyAction.js +22 -20
- package/src/actions/uniswap/UniswapWithdrawAction.js +18 -16
- package/src/actions/uniswapV3/UniswapV3CollectAction.js +9 -7
- package/src/actions/uniswapV3/UniswapV3CreatePoolAction.js +22 -20
- package/src/actions/uniswapV3/UniswapV3MintAction.js +21 -19
- package/src/actions/uniswapV3/UniswapV3SupplyAction.js +19 -17
- package/src/actions/uniswapV3/UniswapV3WithdrawAction.js +14 -12
- package/src/actions/yearn/YearnSupplyAction.js +6 -6
- package/src/actions/yearn/YearnWithdrawAction.js +6 -6
- package/src/addresses.js +187 -146
- package/src/config.js +83 -0
- package/src/triggers/ChainLinkPriceTrigger.js +2 -2
- package/src/triggers/CompoundRatioTrigger.js +1 -1
- package/src/triggers/GasPriceTrigger.js +1 -1
- package/src/triggers/LiquityRatioTrigger.js +2 -2
- package/src/triggers/MakerRatioTrigger.js +5 -1
- package/src/triggers/ReflexerRatioTrigger.js +1 -1
- package/src/triggers/TimestampTrigger.js +1 -1
- package/src/triggers/UniV3CurrentTickTrigger.js +1 -1
- package/src/types.js +33 -0
- package/test/Action.js +1 -2
- package/test/accessLists/access-lists.js +2 -1
- package/test/actions/maker/MakerPaybackAction.js +2 -2
- package/test/index.js +4 -1
- package/src/actions/basic/SendTokenAndUnwrapAction.js +0 -30
- package/src/actions/basic/ToggleSubAction.js +0 -19
- package/src/actions/basic/UpdateSubAction.js +0 -19
- 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]
|
|
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
|
-
|
|
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, [
|
|
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
|
-
})
|