77} from '@aave/contract-helpers' ;
88import { SignatureLike } from '@ethersproject/bytes' ;
99import dayjs from 'dayjs' ;
10- import { BigNumberish } from 'ethers' ;
10+ import { BigNumberish , constants } from 'ethers' ;
1111import { produce } from 'immer' ;
1212import { Approval } from 'src/helpers/useTransactionHandler' ;
1313import { StateCreator } from 'zustand' ;
@@ -30,10 +30,11 @@ export type V3MigrationSlice = {
3030 toggleMigrationSelectedAsset : ( assetName : string ) => void ;
3131 getMigratorAddress : ( ) => string ;
3232 getMigrationServiceInstance : ( ) => V3MigrationHelperService ;
33- migrate : (
33+ migrateWithPermits : (
3434 signature : SignatureLike [ ] ,
3535 deadline : BigNumberish
3636 ) => EthereumTransactionTypeExtended [ ] ;
37+ migrateWithoutPermits : ( ) => EthereumTransactionTypeExtended [ ] ;
3738 _testMigration : ( ) => void ;
3839 // migrateSelectedPositions: () => void;
3940} ;
@@ -110,7 +111,6 @@ export const createV3MigrationSlice: StateCreator<
110111 const timestamp = dayjs ( ) . unix ( ) ;
111112 set ( { timestamp } ) ;
112113 return selectedUserReservesForMigration ( get ( ) , timestamp ) . map ( ( { reserve } ) : Approval => {
113- reserve . name ;
114114 return {
115115 // TODO: should we allow spending of exact ammount of the reserver?
116116 amount : reserve . totalLiquidity ,
@@ -119,11 +119,31 @@ export const createV3MigrationSlice: StateCreator<
119119 } ;
120120 } ) ;
121121 } ,
122- migrate : ( signatures : SignatureLike [ ] , deadline : BigNumberish ) => {
122+ migrateWithoutPermits : ( ) => {
123+ const timestamp = dayjs ( ) . unix ( ) ;
124+ set ( { timestamp } ) ;
125+ const assets : {
126+ aToken : string ;
127+ deadline : number ;
128+ 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+ } ) ;
138+ const user = get ( ) . account ;
139+ console . log ( assets , user ) ;
140+ return get ( ) . getMigrationServiceInstance ( ) . migrateNoBorrow ( { assets, user } ) ;
141+ } ,
142+ migrateWithPermits : ( signatures : SignatureLike [ ] , deadline : BigNumberish ) => {
123143 const selectedReservers = selectedUserReservesForMigration ( get ( ) , get ( ) . timestamp ) ;
124144 const permits = selectedReservers . map ( ( { reserve } , index ) => ( {
125145 aToken : reserve . aTokenAddress ,
126- value : reserve . totalLiquidity + 1000 ,
146+ value : constants . MaxUint256 . toString ( ) ,
127147 deadline,
128148 signedPermit : signatures [ index ] ,
129149 } ) ) ;
@@ -132,6 +152,7 @@ export const createV3MigrationSlice: StateCreator<
132152 const migratorHelperInstance = get ( ) . getMigrationServiceInstance ( ) ;
133153 const user = get ( ) . account ;
134154 const assets = permits . map ( ( permit ) => permit . aToken ) ;
155+ console . log ( 'migrateNoBorrowWith permits' ) ;
135156 return migratorHelperInstance . migrateNoBorrowWithPermits ( {
136157 user,
137158 assets,
0 commit comments