@defisaver/sdk 1.3.25 → 1.3.26-uniswap-dev-dev

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.
@@ -9,21 +9,27 @@ import { EthAddress, uint256, bytes } from '../../types';
9
9
  */
10
10
  export class AaveV3FlashLoanCarryDebtAction extends ActionWithL2 {
11
11
  /**
12
- * @param tokens
13
12
  * @param loanAmounts
13
+ * @param tokens
14
+ * @param modes
15
+ * @param loanPayer
14
16
  * @param flParamGetterAddr
15
17
  * @param flParamGetterData
16
18
  */
17
- constructor(tokens:Array<EthAddress>, loanAmounts:Array<uint256>, flParamGetterAddr:EthAddress = getAddr('Empty'), flParamGetterData:bytes = []) {
18
- if (tokens.length !== loanAmounts.length) {
19
- throw new Error('Tokens and loan amounts must be of the same length');
20
- }
21
- const modes: Array<uint256> = Array(tokens.length).fill(2); // always use variable borrow rate
19
+ constructor(tokens:Array<EthAddress>, loanAmounts:Array<uint256>, modes:Array<uint256>, loanPayer:EthAddress, flParamGetterAddr:EthAddress = getAddr('Empty'), flParamGetterData:bytes = []) {
22
20
  super(
23
21
  'FLAaveV3CarryDebt',
24
22
  getAddr('FLAaveV3CarryDebt'),
25
23
  ['address[]', 'uint256[]', 'uint256[]', 'address', 'address', 'bytes', 'bytes'],
26
- [tokens, loanAmounts, modes, getAddr('Empty'), flParamGetterAddr, flParamGetterData, []],
24
+ [tokens, loanAmounts, modes, loanPayer, flParamGetterAddr, flParamGetterData, []],
27
25
  );
26
+ if (tokens.length !== modes.length || tokens.length !== loanAmounts.length) {
27
+ throw new Error('Arrays must be of the same length');
28
+ }
29
+ modes.forEach((mode) => {
30
+ if (mode.toString() !== '1' && mode.toString() !== '2') {
31
+ throw new Error('Invalid borrow mode set');
32
+ }
33
+ });
28
34
  }
29
35
  }
@@ -9,8 +9,8 @@ import { EthAddress, uint256, bytes } from '../../types';
9
9
  */
10
10
  export class AaveV3FlashLoanNoFeeAction extends ActionWithL2 {
11
11
  /**
12
- * @param tokens
13
12
  * @param loanAmounts
13
+ * @param tokens
14
14
  * @param modes
15
15
  * @param loanPayer
16
16
  * @param flParamGetterAddr
@@ -0,0 +1,31 @@
1
+ import { Action } from '../../Action';
2
+ import { getAddr } from '../../addresses';
3
+ import { EthAddress, uint256, bytes32 } from '../../types';
4
+
5
+ /**
6
+ * UniswapClaimAction - Claims UNI tokens from the Uniswap merkle distributor
7
+ *
8
+ * @category Uniswap
9
+ */
10
+ export class UniswapClaimAction extends Action {
11
+ /**
12
+ * @param index - Index of the claim in the merkle tree
13
+ * @param to - Address where to send the claimed UNI
14
+ * @param amount - Amount of UNI allocated to the smart wallet in the merkle tree
15
+ * @param merkleProof - Merkle proof of the claim
16
+ */
17
+ constructor(index: uint256, to: EthAddress, amount: uint256, merkleProof: Array<bytes32>) {
18
+ super(
19
+ 'UniswapClaim',
20
+ getAddr('UniswapClaim'),
21
+ ['uint256', 'address', 'uint256', 'bytes32[]'],
22
+ [index, to, amount, merkleProof],
23
+ );
24
+
25
+ this.mappableArgs = [
26
+ this.args[0],
27
+ this.args[1],
28
+ this.args[2],
29
+ ];
30
+ }
31
+ }
@@ -1,2 +1,3 @@
1
1
  export * from './UniswapSupplyAction';
2
- export * from './UniswapWithdrawAction';
2
+ export * from './UniswapWithdrawAction';
3
+ export * from './UniswapClaimAction';
package/src/addresses.ts CHANGED
@@ -95,7 +95,6 @@ export const actionAddresses = {
95
95
  AaveV3ATokenPayback: '0xDe5c012cd1878D86E91309593764895a3adb380E',
96
96
  AaveV3View: '0x0CB0170F3413e54405F64d3C23BA3A1D8Bb96D99',
97
97
  AaveV3DelegateWithSig: '0x9253E22Ce4f0AeE541301CF8cC29843f9083a1F4',
98
- AaveV3DelegateCredit: '0xa7ab39edCb0a1b742DCd908EC6CFe178d8322580',
99
98
  GhoClaimAAVE: '0xA53060d822cB31AFd5B26D899130a14E8Efc5917',
100
99
  GhoUnstake: '0x3fD02e65B4fb12381946D03815Ff3FF8Ebe2fC63',
101
100
  GhoStake: '0x6cfBFd04702f3b7d4fc52D457eDf91D6E4A081bb',
@@ -148,7 +147,7 @@ export const actionAddresses = {
148
147
  // flashloan
149
148
  FLAaveV2: '0xEA55576383C96A69B3E8beD51Ce0d0294001bc5F',
150
149
  FLAaveV3NoFee: '0xd9D8e68717Ce24CCbf162868aaad7E38d81b05d1',
151
- FLAaveV3CarryDebt: '0x8225D3833D88BD1420E7d25e69A00F1A27aB9143',
150
+ FLAaveV3CarryDebt: '0x7BdD8ACE8a48B7032Df68B7f53E0D6D9Ea9411A7',
152
151
  FLAaveV3: '0x5021d70aB7D757D61E0230c472ff89b8B2B8705e',
153
152
  FLDyDx: '0x08AC78B418fCB0DDF1096533856A757C28d430d7',
154
153
  FLMaker: '0x0f8C3368cADF78167F5355D746Ed7b2A826A6e3b',
@@ -162,6 +161,7 @@ export const actionAddresses = {
162
161
  // uniswap
163
162
  UniSupply: '0x9935e12F0218E61c27D7f23eAC9A9D6881a078eC',
164
163
  UniWithdraw: '0xf8bb8F68b0A45DC315F3f7602a60cfb274B00951',
164
+ UniswapClaim: '0x4Eed50e142BFaE83b2d05ce960C55F4c536d123f',
165
165
 
166
166
  // uniswap V3
167
167
  UniCollectV3: '0x331D7C3F6E710cB6cFE94c4Aa04AC3345AC00e00',
@@ -439,14 +439,13 @@ export const actionAddresses = {
439
439
  AaveV3Withdraw: '0xf19d045f6cFc04A5Ee5E0e8837b565b9f276e3F7',
440
440
  AaveV3ClaimRewards: '0xBE8e8cea67085F869C1C0040fD52F9F3115E962e',
441
441
  AaveV3DelegateWithSig: '0x8dd05d32fB05E8c3e8F37294e6f2d13e5823a712',
442
- AaveV3DelegateCredit: '0x11E7B19195a76D2E5A4863cf6cbE8030443c729A',
442
+ AaveV3DelegateCredit: '0x0000000000000000000000000000000000000000',
443
443
 
444
444
  // flashloan
445
445
  FLAaveV3NoFee: '0xfbcF23D2BeF8A2C491cfa4dD409D8dF12d431c85',
446
446
  FLAaveV3: '0x8A07E93d2B74A80D726eE4E4A0aC1F906aB5Cc63',
447
447
  FLBalancer: '0x79d6bf536b8DD65909a3174C87eA6395310d5c41',
448
448
  FLAction: '0xB57b666dAB46229e2b80113b5187F6DCD91AB159',
449
- FLAaveV3CarryDebt: '0x4ab7a392aF23215A9049A64F3B2d44726aD2D6fe',
450
449
 
451
450
  AaveV3RatioTrigger: '0xB76e3f7694589D0f34ba43b17AD0D15350Ab5f85',
452
451
  GasFeeTakerL2: '0xB3dB299622A9DB0E944ccda2Ef899d6fF365B082',
@@ -510,7 +509,6 @@ export const actionAddresses = {
510
509
  AaveV3Withdraw: '0xbf492F869DdB1A18BB4F41b6c3059D9f882Fe7ff',
511
510
  AaveV3ClaimRewards: '0x3a4d72Ed2a47a409a82ba61f0fca1C749Ea8aB66',
512
511
  AaveV3DelegateWithSig: '0xFF2CE05250d1880f0f45ea8fB453292CABA42F12',
513
- AaveV3DelegateCredit: '0x8C13353e3DA67d3171D6F73751E3caa791a3AACD',
514
512
 
515
513
  // CompV3
516
514
  CompV3Allow: '0x0380E8e13CdE0499c720999930CaA07A5744887c',
@@ -528,7 +526,6 @@ export const actionAddresses = {
528
526
  FLUniV3: '0xf041C72e201CD7d04a240fe06c5783E2Ee2D92b3', // @DEV - incorrect, same as FLAction
529
527
  FLAction: '0xf041C72e201CD7d04a240fe06c5783E2Ee2D92b3',
530
528
  FLMorphoBlue: '0xf041C72e201CD7d04a240fe06c5783E2Ee2D92b3',
531
- FLAaveV3CarryDebt: '0xEc6Db90d9EFa7cD75d5b716896A497e9d9103D5b',
532
529
 
533
530
  GasFeeTakerL2: '0x2F64f73B222B4978CAfd0295c0fa106cE5f34996',
534
531
  AaveV3RatioCheck: '0x4a5c2cbCFB921b596Dec049389899CC8Eb4678ED',
@@ -620,7 +617,6 @@ export const actionAddresses = {
620
617
  FLUniV3: '0x1bA6082D2ef1aB92a55B96264c72Eb8049C964Ce',
621
618
  FLAction: '0x87Af4769e4134379125A262408e1f3EC60d2Ab52', // fix temp
622
619
  FLMorphoBlue: '0x87Af4769e4134379125A262408e1f3EC60d2Ab52',
623
- FLAaveV3CarryDebt: '0x760e97862DD8652e5BB8b4D8ad9C99a74BBe7E7A',
624
620
 
625
621
  // AaveV3
626
622
  AaveV3Withdraw: '0x1d2Fa7dAcC660A9124c3685EE8a6E699d10409Eb',
@@ -635,7 +631,6 @@ export const actionAddresses = {
635
631
  AaveV3ATokenPayback: '0x3D57875885e3cEe9E56Cb65D21789893B6e67815',
636
632
  AaveV3View: '0xf140B2904beb743C2f17e0b5f766074212a7e243',
637
633
  AaveV3DelegateWithSig: '0x9e295AFaC75E7843b88a563D119FD953EDf441c2',
638
- AaveV3DelegateCredit: '0xF85aD63c513A76a1dc05B2AddC4777F17336c7e9',
639
634
 
640
635
  // CompV3
641
636
  CompV3Allow: '0x3Fe56B85BBcD759459408Bd8434c37bac93e26bF',
@@ -706,7 +701,6 @@ export const actionAddresses = {
706
701
  // Flashloan
707
702
  FLAction: '0x04ce4b2a9F524d976a8eD8a49B9313C5a2C3ccAD', // fix temp
708
703
  FLAaveV3: '0x04ce4b2a9F524d976a8eD8a49B9313C5a2C3ccAD',
709
- FLAaveV3CarryDebt: '0x862E533198C9656B75bB6A5dDF0953F7ED5E8507',
710
704
 
711
705
  // AaveV3
712
706
  AaveV3Withdraw: '0xae56474aBe3C271579b513b6668864e39f65Ae15',
@@ -719,7 +713,7 @@ export const actionAddresses = {
719
713
  AaveV3ATokenPayback: '0xedfc68e2874b0afc0963e18ae4d68522aec7f97d',
720
714
  AaveV3View: '0xc9d6efa6e08b66a5cdc516bcd5807c2fa69e0f2a',
721
715
  AaveV3DelegateWithSig: '0x169D6E128238ebabF86032Ae9da65938eaD7F69e',
722
- AaveV3DelegateCredit: '0x1bA6082D2ef1aB92a55B96264c72Eb8049C964Ce',
716
+ AaveV3DelegateCredit: '0x2A588cBCBd5e6c6ba7ED0E260B8107F599017DDE',
723
717
  },
724
718
  [NETWORKS.plasma.chainId]: {
725
719
  // Basic
@@ -743,7 +737,6 @@ export const actionAddresses = {
743
737
  // Flashloan
744
738
  FLAction: '0x40C9ce603923AACD0b7407Ff0EE844c9C067cEB7', // fix temp
745
739
  FLAaveV3: '0x40C9ce603923AACD0b7407Ff0EE844c9C067cEB7',
746
- FLAaveV3CarryDebt: '0x6Dc6C0e38fBd066b89Ba7E6f711B4288246891b3',
747
740
 
748
741
  // AaveV3
749
742
  AaveV3Withdraw: '0x4839d021A24820e57C31D386d430e2e82694F73B',
@@ -756,7 +749,7 @@ export const actionAddresses = {
756
749
  AaveV3ATokenPayback: '0x425fA97285965E01Cc5F951B62A51F6CDEA5cc0d',
757
750
  AaveV3View: '0xD8E67968d8a0df4beCf2D50daE1e34d4d80C701C',
758
751
  AaveV3DelegateWithSig: '0x49658E0CF3883c338397C7257619B280dF581057',
759
- AaveV3DelegateCredit: '0x6F53fa9e7d1323d24515a51AB72Da3cf1E9883Bc',
752
+ AaveV3DelegateCredit: '0x0a9b2080C14DaF008AE87C977dFDf5f5D6D0937F',
760
753
 
761
754
  // Fluid
762
755
  FluidVaultT1Open: '0x491cc4AFbE0081C3464DeF1114ba27BE114b2401',
@@ -0,0 +1,31 @@
1
+ const dfs = require('../../../src');
2
+ const {encodeForDsProxyCall, encodeForRecipe} = require('../../_actionUtils');
3
+ const {assert} = require('chai');
4
+
5
+ describe('Action: UniswapClaimAction', () => {
6
+ let action;
7
+ context('Claim encoding', () => {
8
+ it('constructor', () => {
9
+ const index = '137';
10
+ const to = '0xC093dFcC2cBc4e9488589B7c2245a7F1DA043389';
11
+ const amount = '4809093062235489680';
12
+ const merkleProof = [
13
+ '0xd496d2a15cf30a2af545b0fd4ced50fb4224bb54e7c9add4885c7b7408c907a1',
14
+ '0x6a8fc6432934b1f2c9f9aed040f4389c0450dd94aff92b16864060e95fba4290',
15
+ '0xb7491e5e898e774e11c50044140df4c1c74bf9cd7855bac78f0709699ed0e6b7',
16
+ ];
17
+ action = new dfs.actions.uniswap.UniswapClaimAction(
18
+ index,
19
+ to,
20
+ amount,
21
+ merkleProof,
22
+ );
23
+ })
24
+ it('encodeForDsProxyCall', () => encodeForDsProxyCall(action));
25
+ it('encodeForRecipe', () => encodeForRecipe(action));
26
+ it('getEthValue', async () => {
27
+ const ethValue = await action.getEthValue();
28
+ assert.equal(ethValue, '0');
29
+ })
30
+ })
31
+ })