@@ -17,7 +17,8 @@ import { selectedUserReservesForMigration } from './v3MigrationSelectors';
1717
1818export type V3MigrationSlice = {
1919 //STATE
20- selectedMigrationAssets : Record < string , boolean > ;
20+ selectedMigrationSupplyAssets : Record < string , boolean > ;
21+ selectedMigrationBorrowAssets : Record < string , boolean > ;
2122 migrationServiceInstances : Record < string , V3MigrationHelperService > ;
2223 timestamp : number ;
2324 // ACTIONS
@@ -27,14 +28,15 @@ export type V3MigrationSlice = {
2728 }
2829 ) => Promise < string > ;
2930 getApprovePermitsForSelectedAssets : ( ) => Approval [ ] ;
30- toggleMigrationSelectedAsset : ( assetName : string ) => void ;
31+ toggleMigrationSelectedSupplyAsset : ( assetName : string ) => void ;
32+ toggleMigrationSelectedBorrowAsset : ( assetName : string ) => void ;
3133 getMigratorAddress : ( ) => string ;
3234 getMigrationServiceInstance : ( ) => V3MigrationHelperService ;
3335 migrateWithPermits : (
3436 signature : SignatureLike [ ] ,
3537 deadline : BigNumberish
3638 ) => EthereumTransactionTypeExtended [ ] ;
37- migrateWithoutPermits : ( ) => EthereumTransactionTypeExtended [ ] ;
39+ migrateWithoutPermits : ( ) => Promise < EthereumTransactionTypeExtended [ ] > ;
3840 _testMigration : ( ) => void ;
3941 // migrateSelectedPositions: () => void;
4042} ;
@@ -46,7 +48,8 @@ export const createV3MigrationSlice: StateCreator<
4648 V3MigrationSlice
4749> = ( set , get ) => {
4850 return {
49- selectedMigrationAssets : { } ,
51+ selectedMigrationSupplyAssets : { } ,
52+ selectedMigrationBorrowAssets : { } ,
5053 migrationServiceInstances : { } ,
5154 timestamp : 0 ,
5255 generatePermitPayloadForMigrationAsset : async ( { amount, underlyingAsset, deadline } ) => {
@@ -96,28 +99,41 @@ export const createV3MigrationSlice: StateCreator<
9699 } ;
97100 return JSON . stringify ( typeData ) ;
98101 } ,
99- toggleMigrationSelectedAsset : ( assetName : string ) => {
102+ toggleMigrationSelectedSupplyAsset : ( assetName : string ) => {
100103 set ( ( state ) =>
101104 produce ( state , ( draft ) => {
102- if ( draft . selectedMigrationAssets [ assetName ] ) {
103- delete draft . selectedMigrationAssets [ assetName ] ;
105+ if ( draft . selectedMigrationSupplyAssets [ assetName ] ) {
106+ delete draft . selectedMigrationSupplyAssets [ assetName ] ;
104107 } else {
105- draft . selectedMigrationAssets [ assetName ] = true ;
108+ draft . selectedMigrationSupplyAssets [ assetName ] = true ;
109+ }
110+ } )
111+ ) ;
112+ } ,
113+ toggleMigrationSelectedBorrowAsset : ( assetName : string ) => {
114+ set ( ( state ) =>
115+ produce ( state , ( draft ) => {
116+ if ( draft . selectedMigrationBorrowAssets [ assetName ] ) {
117+ delete draft . selectedMigrationBorrowAssets [ assetName ] ;
118+ } else {
119+ draft . selectedMigrationBorrowAssets [ assetName ] = true ;
106120 }
107121 } )
108122 ) ;
109123 } ,
110124 getApprovePermitsForSelectedAssets : ( ) => {
111125 const timestamp = dayjs ( ) . unix ( ) ;
112126 set ( { timestamp } ) ;
113- return selectedUserReservesForMigration ( get ( ) , timestamp ) . map ( ( { reserve } ) : Approval => {
114- return {
115- // TODO: should we allow spending of exact ammount of the reserver?
116- amount : reserve . totalLiquidity ,
117- underlyingAsset : reserve . aTokenAddress ,
118- permitType : 'MIGRATOR' ,
119- } ;
120- } ) ;
127+ return selectedUserReservesForMigration ( get ( ) , timestamp ) . map (
128+ ( { reserve, underlyingBalance } ) : Approval => {
129+ return {
130+ // TODO: should we allow spending of exact ammount of the reserver?
131+ amount : underlyingBalance ,
132+ underlyingAsset : reserve . aTokenAddress ,
133+ permitType : 'MIGRATOR' ,
134+ } ;
135+ }
136+ ) ;
121137 } ,
122138 migrateWithoutPermits : ( ) => {
123139 const timestamp = dayjs ( ) . unix ( ) ;
@@ -126,17 +142,18 @@ export const createV3MigrationSlice: StateCreator<
126142 aToken : string ;
127143 deadline : number ;
128144 amount : string ;
129- } [ ] = selectedUserReservesForMigration ( get ( ) , timestamp ) . map ( ( { reserve } ) => {
130- const deadline = Math . floor ( Date . now ( ) / 1000 + 3600 ) ;
131- return {
132- amount : reserve . totalLiquidity ,
133- aToken : reserve . aTokenAddress ,
134- // TODO: fow how long to approve?
135- deadline,
136- } ;
137- } ) ;
145+ } [ ] = selectedUserReservesForMigration ( get ( ) , timestamp ) . map (
146+ ( { reserve, underlyingBalance } ) => {
147+ const deadline = Math . floor ( Date . now ( ) / 1000 + 3600 ) ;
148+ return {
149+ amount : underlyingBalance ,
150+ aToken : reserve . aTokenAddress ,
151+ // TODO: fow how long to approve?
152+ deadline,
153+ } ;
154+ }
155+ ) ;
138156 const user = get ( ) . account ;
139- console . log ( assets , user ) ;
140157 return get ( ) . getMigrationServiceInstance ( ) . migrateNoBorrow ( { assets, user } ) ;
141158 } ,
142159 migrateWithPermits : ( signatures : SignatureLike [ ] , deadline : BigNumberish ) => {
@@ -149,13 +166,14 @@ export const createV3MigrationSlice: StateCreator<
149166 } ) ) ;
150167 // branch out into flashloan or migrate no borrow
151168 // move that to separate instance and save cache the Migrator instance
169+ console . log ( permits , 'permits' ) ;
152170 const migratorHelperInstance = get ( ) . getMigrationServiceInstance ( ) ;
153171 const user = get ( ) . account ;
154172 const assets = permits . map ( ( permit ) => permit . aToken ) ;
155- console . log ( 'migrateNoBorrowWith permits' ) ;
156173 return migratorHelperInstance . migrateNoBorrowWithPermits ( {
157174 user,
158175 assets,
176+ deadline,
159177 signedPermits : permits ,
160178 } ) ;
161179 } ,
0 commit comments