@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
|
@@ -22,34 +22,36 @@ class UniswapV3SupplyAction extends Action {
|
|
|
22
22
|
'UniSupplyV3',
|
|
23
23
|
getAddr('UniSupplyV3'),
|
|
24
24
|
[
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
25
|
+
[
|
|
26
|
+
"uint256",
|
|
27
|
+
"uint256",
|
|
28
|
+
"uint256",
|
|
29
|
+
"uint256",
|
|
30
|
+
"uint256",
|
|
31
|
+
"uint256",
|
|
32
|
+
"address",
|
|
33
|
+
"address",
|
|
34
|
+
"address",
|
|
35
|
+
],
|
|
34
36
|
],
|
|
35
|
-
[...arguments]
|
|
37
|
+
[[...arguments]]
|
|
36
38
|
);
|
|
37
39
|
|
|
38
40
|
this.mappableArgs = [
|
|
39
|
-
this.args[0],
|
|
40
|
-
this.args[1],
|
|
41
|
-
this.args[2],
|
|
41
|
+
this.args[0][0],
|
|
42
|
+
this.args[0][1],
|
|
43
|
+
this.args[0][2],
|
|
42
44
|
];
|
|
43
45
|
}
|
|
44
46
|
|
|
45
47
|
async getAssetsToApprove() {
|
|
46
|
-
const assetA = getAssetInfoByAddress(this.args[7]);
|
|
47
|
-
const assetB = getAssetInfoByAddress(this.args[8]);
|
|
48
|
+
const assetA = getAssetInfoByAddress(this.args[0][7]);
|
|
49
|
+
const assetB = getAssetInfoByAddress(this.args[0][8]);
|
|
48
50
|
|
|
49
51
|
const approveArr = [];
|
|
50
52
|
|
|
51
|
-
if (assetA.symbol !== 'ETH') approveArr.push({asset: this.args[7], owner: this.args[6], specialApproveLabel: 'uniswap v3'});
|
|
52
|
-
if (assetB.symbol !== 'ETH') approveArr.push({asset: this.args[8], owner: this.args[6], specialApproveLabel: 'uniswap v3'});
|
|
53
|
+
if (assetA.symbol !== 'ETH') approveArr.push({asset: this.args[0][7], owner: this.args[0][6], specialApproveLabel: 'uniswap v3'});
|
|
54
|
+
if (assetB.symbol !== 'ETH') approveArr.push({asset: this.args[0][8], owner: this.args[0][6], specialApproveLabel: 'uniswap v3'});
|
|
53
55
|
|
|
54
56
|
return approveArr;
|
|
55
57
|
}
|
|
@@ -21,30 +21,32 @@ class UniswapV3WithdrawAction extends Action {
|
|
|
21
21
|
'UniWithdrawV3',
|
|
22
22
|
getAddr('UniWithdrawV3'),
|
|
23
23
|
[
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
24
|
+
[
|
|
25
|
+
"uint256",
|
|
26
|
+
"uint128",
|
|
27
|
+
"uint256",
|
|
28
|
+
"uint256",
|
|
29
|
+
"uint256",
|
|
30
|
+
"address",
|
|
31
|
+
"uint128",
|
|
32
|
+
"uint128",
|
|
33
|
+
],
|
|
32
34
|
],
|
|
33
|
-
[tokenId, liquidity, amount0Min, amount1Min, deadline, recipient, amount0Max, amount1Max]
|
|
35
|
+
[[tokenId, liquidity, amount0Min, amount1Min, deadline, recipient, amount0Max, amount1Max]]
|
|
34
36
|
);
|
|
35
37
|
|
|
36
38
|
this.from = from;
|
|
37
39
|
|
|
38
40
|
this.mappableArgs = [
|
|
39
|
-
this.args[0],
|
|
40
|
-
this.args[1],
|
|
41
|
+
this.args[0][0],
|
|
42
|
+
this.args[0][1],
|
|
41
43
|
];
|
|
42
44
|
}
|
|
43
45
|
|
|
44
46
|
async getAssetsToApprove() {
|
|
45
47
|
return [{
|
|
46
48
|
nft: getAddr('UniswapV3PositionManager'),
|
|
47
|
-
tokenId: this.args[0],
|
|
49
|
+
tokenId: this.args[0][0],
|
|
48
50
|
owner: this.from,
|
|
49
51
|
specialApproveLabel: 'uniswap v3'
|
|
50
52
|
}];
|
|
@@ -13,17 +13,17 @@ class YearnSupplyAction extends Action {
|
|
|
13
13
|
* @param to {ETHAddress} yTokens will be sent to this address
|
|
14
14
|
*/
|
|
15
15
|
constructor(tokenAddr, amount, from, to) {
|
|
16
|
-
super('YearnSupply', getAddr('YearnSupply'), ['address','uint256','address', 'address'], [tokenAddr, amount, from, to]);
|
|
16
|
+
super('YearnSupply', getAddr('YearnSupply'), [['address','uint256','address', 'address']], [[tokenAddr, amount, from, to]]);
|
|
17
17
|
this.mappableArgs = [
|
|
18
|
-
this.args[1],
|
|
19
|
-
this.args[2],
|
|
20
|
-
this.args[3],
|
|
18
|
+
this.args[0][1],
|
|
19
|
+
this.args[0][2],
|
|
20
|
+
this.args[0][3],
|
|
21
21
|
];
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
async getAssetsToApprove() {
|
|
25
|
-
const asset = getAssetInfoByAddress(this.args[0]);
|
|
26
|
-
if (asset.symbol !== 'ETH') return [{asset: this.args[0], owner: this.args[2], specialApproveLabel: 'yearn'}];
|
|
25
|
+
const asset = getAssetInfoByAddress(this.args[0][0]);
|
|
26
|
+
if (asset.symbol !== 'ETH') return [{asset: this.args[0][0], owner: this.args[0][2], specialApproveLabel: 'yearn'}];
|
|
27
27
|
return [];
|
|
28
28
|
}
|
|
29
29
|
}
|
|
@@ -13,17 +13,17 @@ class YearnWithdrawAction extends Action {
|
|
|
13
13
|
* @param to {ETHAddress} underlying tokens will be sent to this address
|
|
14
14
|
*/
|
|
15
15
|
constructor(tokenAddr, amount, from, to) {
|
|
16
|
-
super('YearnWithdraw', getAddr('YearnWithdraw'), ['address','uint256','address', 'address'], [tokenAddr, amount, from, to]);
|
|
16
|
+
super('YearnWithdraw', getAddr('YearnWithdraw'), [['address','uint256','address', 'address']], [[tokenAddr, amount, from, to]]);
|
|
17
17
|
this.mappableArgs = [
|
|
18
|
-
this.args[1],
|
|
19
|
-
this.args[2],
|
|
20
|
-
this.args[3],
|
|
18
|
+
this.args[0][1],
|
|
19
|
+
this.args[0][2],
|
|
20
|
+
this.args[0][3],
|
|
21
21
|
];
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
async getAssetsToApprove() {
|
|
25
|
-
const asset = getAssetInfoByAddress(this.args[0]);
|
|
26
|
-
if (asset.symbol !== 'ETH') return [{asset: this.args[0], owner: this.args[2], specialApproveLabel: 'yearn'}];
|
|
25
|
+
const asset = getAssetInfoByAddress(this.args[0][0]);
|
|
26
|
+
if (asset.symbol !== 'ETH') return [{asset: this.args[0][0], owner: this.args[0][2], specialApproveLabel: 'yearn'}];
|
|
27
27
|
return [];
|
|
28
28
|
}
|
|
29
29
|
}
|
package/src/addresses.js
CHANGED
|
@@ -1,157 +1,198 @@
|
|
|
1
|
-
|
|
1
|
+
const { CONFIG, NETWORKS } = require('./config');
|
|
2
2
|
|
|
3
3
|
const actionAddresses = {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
4
|
+
[NETWORKS.ethereum.chainId]: {
|
|
5
|
+
// utils
|
|
6
|
+
WrapEth: '0x8EbBd35f84D7f0DFCBEf08fD30CD09176133251A',
|
|
7
|
+
UnwrapEth: '0xDB6C8cFDd7c1C0F8895CDBC01Dbf4A6D4B6d2a29',
|
|
8
|
+
PullToken: '0x254cA89a00d53ab61de2Ba5641DBDC01aE48aed4',
|
|
9
|
+
SendToken: '0x5612e490c9549486dF16b34EBfD0E8b6cF6a1717',
|
|
10
|
+
SumInputs: '0x70907d840aBBc984Fd949311d2f005e6aC4a4D7a',
|
|
11
|
+
SubInputs: '0xe1804b756188F63f723d2FECc02988D0Cc1aB823',
|
|
12
|
+
ChangeProxyOwner: '0x81cA52CfE66421d0ceF82d5F33230e43b5F23D2B',
|
|
13
|
+
TokenBalance: '0xa92B177950F1460119940436515FD857C24494BC',
|
|
14
|
+
AutomationV2Unsub: '0xe35Fb12fE9796847751076aCf5ee7d124108612C',
|
|
15
|
+
|
|
16
|
+
// exchange
|
|
17
|
+
DFSSell: '0x1abDDCae131ce200e66140d9fBd0C37F7a40e642',
|
|
18
|
+
|
|
19
|
+
// maker
|
|
20
|
+
McdGenerate: '0x2bF4586636329Ae930cFe085a1e57BAb4a8f741b',
|
|
21
|
+
McdGive: '0xD2dc5DA4172a3901C9f26c7cd29eFE656Fc20332',
|
|
22
|
+
McdMerge: '0x66c7f4C7e59b6e780142aaD5c9f427FA5F8dfFc6',
|
|
23
|
+
McdOpen: '0x72AFC60B90c976397C37B5c64DDc067Ea521D388',
|
|
24
|
+
McdPayback: '0xb7C2c78846493Bed18fa07B51fcc5EAFAc9d629C',
|
|
25
|
+
McdSupply: '0x91c3167aC51F92c2f720C6A8418FDF46060698A1',
|
|
26
|
+
McdWithdraw: '0x3c232F0ae183C3e2eb421e8e317318Dfe85a7b10',
|
|
27
|
+
McdClaim: '0xd78783b50227A84d43604843065494e2666182Ab',
|
|
28
|
+
|
|
29
|
+
// reflexer
|
|
30
|
+
ReflexerSupply: '0xd7a36CD4ce7CCc2F1376Dc5C48BaC84380A4f698',
|
|
31
|
+
ReflexerWithdraw: '0xD8a14d447AB6789F3bf1Eb763b6306db3FC3d666',
|
|
32
|
+
ReflexerPayback: '0xcC6838d8a61a4b29Ea565d39C38b830f1491cb29',
|
|
33
|
+
ReflexerGenerate: '0x8e8Fd178A5FAE3A29F9CB1A06aBBBCFd5B83beb7',
|
|
34
|
+
ReflexerOpen: '0x4704a7cBd4d913d1233765B70531D601b4384011',
|
|
35
|
+
|
|
36
|
+
// not deployed as currently not used
|
|
37
|
+
ReflexerNativeUniV2SaviourDeposit: '0x0000000000000000000000000000000000000000',
|
|
38
|
+
ReflexerNativeUniV2SaviourGetReserves: '0x0000000000000000000000000000000000000000',
|
|
39
|
+
ReflexerNativeUniV2SaviourWithdraw: '0x0000000000000000000000000000000000000000',
|
|
40
|
+
|
|
41
|
+
// aave
|
|
42
|
+
AaveBorrow: '0x1B95E800a869bc3F89914470a7901D93D1401cD1',
|
|
43
|
+
AavePayback: '0x066225964999F1D07C888c5Ac4a6C885bDa88b9A',
|
|
44
|
+
AaveSupply: '0xEbB200a529058B561B42Eab510DA157a63243CEc',
|
|
45
|
+
AaveWithdraw: '0x754C58fA92246414a448c1ed44ea3D1AD446d482',
|
|
46
|
+
AaveCollateralSwitch: '0xFf5dfF1B90bd5Aa6E12768AB497dB90cc9DE6F5d',
|
|
47
|
+
|
|
48
|
+
// compound
|
|
49
|
+
CompBorrow: '0x8495579BF6Ae848f7E59686536F834f1d2CCd79C',
|
|
50
|
+
CompClaim: '0x81F488cF7A0128A9DB5e7207042cCAB1CB0ac902',
|
|
51
|
+
CompPayback: '0x2881590d5FfBd1e88BFc0Dc292f10e5377977f87',
|
|
52
|
+
CompSupply: '0xB4CEDe40b249b756Ce0EAa3e14F6af89f25f9a3d',
|
|
53
|
+
CompWithdraw: '0x3792F83D6A82091cb53052458038CC86e206463F',
|
|
54
|
+
CompGetDebt: '0xc2B8f8423bc8Fe2e9A44cA9d364d835D1751b725',
|
|
55
|
+
CompCollateralSwitch: '0xC3d89139508A3883775D3d1E62E2A0fea363b448',
|
|
56
|
+
|
|
57
|
+
// flashloan
|
|
58
|
+
FLAaveV2: '0xa4d52ED15018a5be4adE5796899e5d75cc8759C1',
|
|
59
|
+
FLDyDx: '0x08AC78B418fCB0DDF1096533856A757C28d430d7',
|
|
60
|
+
FLMaker: '0xd393582bE148A45585aB202Fa7Cc789Fa5127223',
|
|
61
|
+
FLBalancer: '0x5C7a9f4635AE4F95da2e45317311AAe255FB71B3',
|
|
62
|
+
|
|
63
|
+
// uniswap
|
|
64
|
+
UniSupply: '0x9935e12F0218E61c27D7f23eAC9A9D6881a078eC',
|
|
65
|
+
UniWithdraw: '0xf8bb8F68b0A45DC315F3f7602a60cfb274B00951',
|
|
66
|
+
|
|
67
|
+
// uniswap V3
|
|
68
|
+
UniCollectV3: '0x331D7C3F6E710cB6cFE94c4Aa04AC3345AC00e00',
|
|
69
|
+
UniMintV3: '0x3dF75BE8Fb0a6186BE9705cACaa6dD2a4Ec3e40C',
|
|
70
|
+
UniSupplyV3: '0x0CA4255b37DD083dBD48Ca74d575F46037992520',
|
|
71
|
+
UniWithdrawV3: '0xe06224593D9c860B2fBF39eEA3b9B8A85b77Fbc4',
|
|
72
|
+
UniCreatePoolV3: '0x9058aAbEdEfe652b1d85DBBAB48Dfa78db613C44',
|
|
73
|
+
|
|
74
|
+
// dydx
|
|
75
|
+
DyDxWithdraw: '0x827089C5Fc7653655c4080c660Cd8f755F818443',
|
|
76
|
+
|
|
77
|
+
// yearn
|
|
78
|
+
YearnSupply: '0x837D6E7F469b3cC820B0a6Da25415D5aE0A861c4',
|
|
79
|
+
YearnWithdraw: '0x563eF9b1075628E62aDc657702517dEA72ca08d6', // CHECK IF REDEPLOY
|
|
80
|
+
|
|
81
|
+
// liquity
|
|
82
|
+
LiquityClose: '0x4B2d174129789a88e92D46342201F207132144b7',
|
|
83
|
+
LiquityBorrow: '0xF978d6C5c8af80a059AdB85EEb64F14C9c436D68',
|
|
84
|
+
LiquityOpen: '0x4EFF392cc69B31Ad159EcfA10305251b2d8E40E0',
|
|
85
|
+
LiquityPayback: '0x8fc7D24414e9740ed9841d9205D458e3677e71f7',
|
|
86
|
+
LiquityWithdraw: '0x733F53579bEcdd3Ed07e745A55Ee9af8B9669048',
|
|
87
|
+
LiquitySupply: '0xD539943e080C2a29e3f1DB2d45Ea7240d7ddDEE2',
|
|
88
|
+
LiquitySPDeposit: '0x5aB0244a00a733f16E6b238B462bdF3538C698E1',
|
|
89
|
+
LiquitySPWithdraw: '0xa71817957eaF993fAA9a1F4B5c2402c0aeFCd9C6',
|
|
90
|
+
LiquityStake: '0x671280800B540cbF073561d84A297a2c4c5D529F',
|
|
91
|
+
LiquityUnstake: '0x86FDD4A6438D448a794A44ABBe47D57590b3350d',
|
|
92
|
+
LiquityEthGainToTrove: '0x65e19f967B3F3cB6466110aD238039F5423E3177',
|
|
93
|
+
LiquityClaim: '0x526735aDcBe5c9059275c5ED2E0574b4a24b875e',
|
|
94
|
+
LiquityRedeem: '0x20B78854658011394C931EF2BF3cEEA2Fe62E7f0',
|
|
95
|
+
|
|
96
|
+
// lido
|
|
97
|
+
LidoStake: '0x4a7dd38D2BcA817fb68165155F869ca4179d8060',
|
|
98
|
+
LidoWrap: '0xE637544390db79EdDE0a9CAF352ED0FfF7451bDB',
|
|
99
|
+
LidoUnwrap: '0x910F73Fb8C0Bd15423c0D0BaD9F1ed95187a48fD',
|
|
100
|
+
|
|
101
|
+
// insta
|
|
102
|
+
InstPullTokens: '0xf2c87782D6Eff0511e82007119BAC40e9ba86F69',
|
|
103
|
+
|
|
104
|
+
// balancer
|
|
105
|
+
BalancerV2Supply: '0xE48123018Db5e9075841C61EA702cEca51621191',
|
|
106
|
+
BalancerV2Withdraw: '0xbED38692438b90AF738F8A7A3142C217DE8fB069',
|
|
107
|
+
BalancerV2Claim: '0xEac7c5bEFaA6E17f1A2e86947eEd6419c74A7C03',
|
|
108
|
+
|
|
109
|
+
// GUni
|
|
110
|
+
GUniWithdraw: '0x6F7cD7C0Dd3634E14bAB91FDF3bCE0a4315b3C59',
|
|
111
|
+
GUniDeposit: '0xb247cD4cab056800cCDa7cE1AFB781a8bFA9b57A',
|
|
112
|
+
|
|
113
|
+
// Rari
|
|
114
|
+
RariDeposit: '0x77A05c15f62F1fA6471D466001E21C1B189fcA9F',
|
|
115
|
+
RariWithdraw: '0xa052eD427EFa63B5bb87c409449a47e7C50317e3',
|
|
116
|
+
|
|
117
|
+
// mStable
|
|
118
|
+
MStableDeposit: '0xdf24ed1250fbfa274316b50Bc9A009aFA8F61E16',
|
|
119
|
+
MStableWithdraw: '0xa4d5d3e56012C1eD8aba4bE246964962DC3F735f',
|
|
120
|
+
|
|
121
|
+
MStableClaim: '0xD56F0EC66267958e08c91547c259cCAC006BF118',
|
|
122
|
+
|
|
123
|
+
McdRatioCheck: '0x3f09773e5e945C6Aa1bc8a8B3492f507620DE1e1',
|
|
124
|
+
GasFeeTaker: '0x431F1E1A9859EF99953801dbdeB31d2846ADcc0d',
|
|
125
|
+
|
|
126
|
+
CurveStethPoolDeposit: '0x0f042a5CC97C4cd8D8136c28F966839f195D08B9', // REDEPLOY
|
|
127
|
+
CurveStethPoolWithdraw: '0x2F4ad71Bd8045d0633B304BD2d94ef349eB09105', // REDEPLOY
|
|
128
|
+
},
|
|
129
|
+
[NETWORKS.optimism.chainId]: {
|
|
130
|
+
DFSSell: '0xf6814226b87303ad32567c1f02ea9fbc6b9c0288',
|
|
131
|
+
|
|
132
|
+
// basic
|
|
133
|
+
WrapEth: '0xf5617aE21d837FdA141fae979C02D98E00FCF776',
|
|
134
|
+
UnwrapEth: '0x1643233EB2B30DeE380618C4737A339C75acDb00',
|
|
135
|
+
SendToken: '0x3aAaD64B4942be926c3B9D3792B01D517D2F03a4',
|
|
136
|
+
|
|
137
|
+
// aave v3
|
|
138
|
+
AaveV3ATokenPayback: '0x09253083d36bba932f6104a91107028F0eb689Da',
|
|
139
|
+
AaveV3Borrow: '0x975b3110443fD803E1720AAfE73596cA78a30f6c',
|
|
140
|
+
AaveV3CollateralSwitch: '0x77b0F048274CE89769E1e689b1fdf448C4683120',
|
|
141
|
+
AaveV3Payback: '0x50b69e4c019Ca6498a412D668D1F249145979b06',
|
|
142
|
+
AaveV3SetEMode: '0xca44924e4A80d03eF4Bcb5aCA6d34307d9465192',
|
|
143
|
+
AaveV3Supply: '0x50Cbbb8B1C09E59e05Ea94BB3583e5649D5fc3E1',
|
|
144
|
+
AaveV3SwapBorrowRateMode: '0xC5CFc61d565D8586979474bab55Fd5b18a105F50',
|
|
145
|
+
AaveV3Withdraw: '0x29b00207CcA815B16A4AD8F6ad259ac644492C5e',
|
|
146
|
+
|
|
147
|
+
FLAaveV3: '0x90931Ea5DAD74855689Da9Fe0269E6C1f9c71Da6',
|
|
148
|
+
},
|
|
134
149
|
};
|
|
135
150
|
|
|
136
151
|
const otherAddresses = {
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
152
|
+
[NETWORKS.ethereum.chainId]: {
|
|
153
|
+
RecipeExecutor: '0xe822d76c2632FC52f3eaa686bDA9Cea3212579D8',
|
|
154
|
+
DFSRegistry: '0x287778F121F134C66212FB16c9b53eC991D32f5b',
|
|
155
|
+
DFSProxyRegistry: '0x29474FdaC7142f9aB7773B8e38264FA15E3805ed',
|
|
156
|
+
ProxyRegistry: '0x4678f0a6958e4D2Bc4F1BAF7Bc52E8F3564f3fE4',
|
|
157
|
+
|
|
158
|
+
McdCdpManager: '0x5ef30b9986345249bc32d8928b7ee64de9435e39',
|
|
159
|
+
BCdpManager: '0x3f30c2381CD8B917Dd96EB2f1A4F96D91324BBed',
|
|
160
|
+
AaveDefaultMarket: '0xB53C1a33016B2DC2fF3653530bfF1848a515c8c5',
|
|
161
|
+
UniswapV3PositionManager : '0xC36442b4a4522E871399CD717aBDD847Ab11FE88',
|
|
162
|
+
RaiWethUniV2LPToken : '0x8aE720a71622e824F576b4A8C03031066548A3B1',
|
|
163
|
+
BalancerToken : '0xba100000625a3754423978a60c9317c58a424e3D',
|
|
164
|
+
CrvToken: '0xD533a949740bb3306d119CC777fa900bA034cd52',
|
|
165
|
+
DAI: '0x6b175474e89094c44da98b954eedeac495271d0f',
|
|
166
|
+
Empty: '0x0000000000000000000000000000000000000000',
|
|
167
|
+
},
|
|
168
|
+
[NETWORKS.optimism.chainId]: {
|
|
169
|
+
RecipeExecutor: '0x5c1cFF487Bed642f27b4B931617A96f22A2Dc5dC',
|
|
170
|
+
DFSRegistry: '0xA1A445d1d8F97cBf380E98759230FcC0f2E23fc1',
|
|
171
|
+
ProxyRegistry: '0x283Cc5C26e53D66ed2Ea252D986F094B37E6e895',
|
|
172
|
+
|
|
173
|
+
DSGuardFactory: '0xc19d0F1E2b38AA283E226Ca4044766A43aA7B02b',
|
|
174
|
+
AdminVault: '0xB64dB2153861ddDE62c8038C6A3c6199FCfBD094',
|
|
175
|
+
DefisaverLogger: '0xC0986E9803a41542c5422dbe336F9B68C55E0a49',
|
|
176
|
+
Empty: '0x0000000000000000000000000000000000000000',
|
|
177
|
+
},
|
|
178
|
+
};
|
|
179
|
+
|
|
180
|
+
/**
|
|
181
|
+
*
|
|
182
|
+
* @param {string} name
|
|
183
|
+
* @param {chainId} [chainId]
|
|
184
|
+
* @returns {EthAddress}
|
|
185
|
+
*/
|
|
186
|
+
const getAddr = (name, chainId) => {
|
|
187
|
+
const _chainId = typeof chainId === 'undefined' ? CONFIG.chainId : chainId;
|
|
149
188
|
|
|
189
|
+
const actions = actionAddresses[_chainId];
|
|
190
|
+
const other = otherAddresses[_chainId];
|
|
150
191
|
|
|
151
|
-
|
|
152
|
-
if (!
|
|
192
|
+
if (!actions && !other) throw new Error(`Cannot find address for chainId: ${_chainId}.`);
|
|
193
|
+
if (!actions[name] && !other[name]) throw new Error(`Cannot find address for name: ${name} (chainId: ${_chainId}).`);
|
|
153
194
|
|
|
154
|
-
return
|
|
195
|
+
return actions[name] || other[name];
|
|
155
196
|
};
|
|
156
197
|
|
|
157
198
|
module.exports = {
|
package/src/config.js
ADDED
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
const Dec = require("decimal.js");
|
|
2
|
+
const dfsTokensSetConfig = require("@defisaver/tokens").set;
|
|
3
|
+
|
|
4
|
+
Dec.set({
|
|
5
|
+
rounding: Dec.ROUND_DOWN,
|
|
6
|
+
toExpPos: 9e15,
|
|
7
|
+
toExpNeg: -9e15,
|
|
8
|
+
precision: 100,
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
*
|
|
13
|
+
* @type {Networks}
|
|
14
|
+
*/
|
|
15
|
+
const NETWORKS = {
|
|
16
|
+
ethereum: {
|
|
17
|
+
chainId: 1,
|
|
18
|
+
chainName: 'Ethereum Mainnet',
|
|
19
|
+
blockExplorerUrls: ['https://etherscan.io/'],
|
|
20
|
+
iconUrls: [],
|
|
21
|
+
rpcUrls: [],
|
|
22
|
+
nativeCurrency: { name: 'Ethereum', decimals: 18, symbol: 'ETH' },
|
|
23
|
+
},
|
|
24
|
+
optimism: {
|
|
25
|
+
chainId: 10,
|
|
26
|
+
chainName: 'Optimism',
|
|
27
|
+
blockExplorerUrls: ['https://optimistic.etherscan.io/'],
|
|
28
|
+
iconUrls: ['https://gateway.optimism.io/favicon.ico'],
|
|
29
|
+
rpcUrls: ['https://mainnet.optimism.io'],
|
|
30
|
+
nativeCurrency: { name: 'Ethereum', decimals: 18, symbol: 'ETH' },
|
|
31
|
+
},
|
|
32
|
+
arbitrum: {
|
|
33
|
+
chainId: 42161,
|
|
34
|
+
chainName: 'Arbitrum One',
|
|
35
|
+
blockExplorerUrls: ['https://arbiscan.io/'],
|
|
36
|
+
iconUrls: ['https://bridge.arbitrum.io/logo.png'],
|
|
37
|
+
rpcUrls: ['https://arb1.arbitrum.io/rpc'],
|
|
38
|
+
nativeCurrency: { name: 'Ethereum', decimals: 18, symbol: 'ETH' },
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
*
|
|
44
|
+
* @type {Config}
|
|
45
|
+
*/
|
|
46
|
+
const CONFIG = {
|
|
47
|
+
chainId: NETWORKS.ethereum.chainId,
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
*
|
|
52
|
+
* @param {chainId} chainId
|
|
53
|
+
* @returns {Network}
|
|
54
|
+
*/
|
|
55
|
+
const getNetworkData = (chainId) => {
|
|
56
|
+
const networkData = Object.values(NETWORKS).find((network) => network.chainId === +chainId);
|
|
57
|
+
|
|
58
|
+
if (!networkData) throw new Error(`Cannot find network data for chainId: ${chainId}`);
|
|
59
|
+
|
|
60
|
+
return networkData;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
*
|
|
65
|
+
* @param {Config} config
|
|
66
|
+
*/
|
|
67
|
+
const configure = (config) => {
|
|
68
|
+
if (!config || typeof config !== 'object') throw new Error('Object expected');
|
|
69
|
+
|
|
70
|
+
const newKeys = Object.keys(config);
|
|
71
|
+
|
|
72
|
+
newKeys.forEach((key) => {
|
|
73
|
+
CONFIG[key] = config[key]
|
|
74
|
+
if (key === 'chainId') dfsTokensSetConfig('network', config[key]);
|
|
75
|
+
});
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
module.exports = {
|
|
79
|
+
configure,
|
|
80
|
+
CONFIG,
|
|
81
|
+
NETWORKS,
|
|
82
|
+
getNetworkData,
|
|
83
|
+
}
|
|
@@ -4,9 +4,9 @@ const {getAddr} = require("../addresses.js");
|
|
|
4
4
|
class ChainLinkPriceTrigger extends Action {
|
|
5
5
|
|
|
6
6
|
constructor(tokenAddr, price, state) {
|
|
7
|
-
super("ChainLinkPriceTrigger", getAddr("ChainLinkPriceTrigger"), ["address", "uint256", "uint8"], [...arguments]);
|
|
7
|
+
super("ChainLinkPriceTrigger", getAddr("ChainLinkPriceTrigger"), [["address", "uint256", "uint8"]], [[...arguments]]);
|
|
8
8
|
}
|
|
9
9
|
|
|
10
10
|
}
|
|
11
11
|
|
|
12
|
-
module.exports = ChainLinkPriceTrigger;
|
|
12
|
+
module.exports = ChainLinkPriceTrigger;
|
|
@@ -4,7 +4,7 @@ const {getAddr} = require("../addresses.js");
|
|
|
4
4
|
class CompoundRatioTrigger extends Action {
|
|
5
5
|
|
|
6
6
|
constructor(user, ratio, state) {
|
|
7
|
-
super("CompoundRatioTrigger", getAddr("CompoundRatioTrigger"), ["address", "uint256", "uint8"], [...arguments]);
|
|
7
|
+
super("CompoundRatioTrigger", getAddr("CompoundRatioTrigger"), [["address", "uint256", "uint8"]], [[...arguments]]);
|
|
8
8
|
}
|
|
9
9
|
}
|
|
10
10
|
|
|
@@ -4,7 +4,7 @@ const {getAddr} = require("../addresses.js");
|
|
|
4
4
|
class GasPriceTrigger extends Action {
|
|
5
5
|
|
|
6
6
|
constructor(maxGasPrice) {
|
|
7
|
-
super("GasPriceTrigger", getAddr("GasPriceTrigger"), ["uint256"], [...arguments]);
|
|
7
|
+
super("GasPriceTrigger", getAddr("GasPriceTrigger"), [["uint256"]], [[...arguments]]);
|
|
8
8
|
}
|
|
9
9
|
}
|
|
10
10
|
|
|
@@ -4,7 +4,11 @@ const {getAddr} = require("../addresses.js");
|
|
|
4
4
|
class MakerRatioTrigger extends Action {
|
|
5
5
|
|
|
6
6
|
constructor(vaultId, ratio, state) {
|
|
7
|
-
super("McdRatioTrigger", getAddr("McdRatioTrigger"), ["uint256", "uint256", "uint8"], [...arguments]);
|
|
7
|
+
super("McdRatioTrigger", getAddr("McdRatioTrigger"), [["uint256", "uint256", "uint8"]], [[...arguments]]);
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
async getEthValue() {
|
|
11
|
+
return this.args[0];
|
|
8
12
|
}
|
|
9
13
|
}
|
|
10
14
|
|