Properties
abi
abi : readonly [ { type : "constructor" ; inputs : readonly [ { name : "_name" ; type : "string" ; internalType : "string" ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "DOMAIN_SEPARATOR" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "INITIAL_DOMAIN_SEPARATOR" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "VERSION" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "bytes" ; internalType : "bytes" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "executeOperation" ; inputs : readonly [ { name : "assets" ; type : "address[]" ; internalType : "address[]" ; } , { name : "amounts" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "premiums" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "" ; type : "address" ; internalType : "address" ; } , { name : "params" ; type : "bytes" ; internalType : "bytes" ; } ] ; outputs : readonly [ { name : "" ; type : "bool" ; internalType : "bool" ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "name" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "string" ; internalType : "string" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "smartMigrate" ; inputs : readonly [ { name : "args" ; type : "tuple" ; internalType : "struct IFlashLoanRenegotiation.SmartMigrationArgs" ; components : readonly [ { name : "migrationArgs" ; type : "tuple" ; internalType : "struct IFlashLoanRenegotiation.PositionMigrationArgs" ; components : readonly [ { name : "close" ; type : "tuple" ; internalType : "struct IFlashLoanRenegotiation.Position" ; components : readonly [ { name : "contractAddress" ; type : "address" ; internalType : "address" ; } , { name : "callData" ; type : "bytes" ; internalType : "bytes" ; } , { name : "value" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "open" ; type : "tuple" ; internalType : "struct IFlashLoanRenegotiation.Position" ; components : readonly [ { name : "contractAddress" ; type : "address" ; internalType : "address" ; } , { name : "callData" ; type : "bytes" ; internalType : "bytes" ; } , { name : "value" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "borrowArgs" ; type : "tuple" ; internalType : "struct IFlashLoanRenegotiation.AaveBorrowArgs" ; components : readonly [ { name : "pool" ; type : "address" ; internalType : "contract IPool" ; } , { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "assets" ; type : "address[]" ; internalType : "address[]" ; } , { name : "amounts" ; type : "uint256[]" ; internalType : "uint256[]" ; } ] ; } , { name : "migrator" ; type : "address" ; internalType : "address" ; } ] ; } , { name : "migratorSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; } ] ; outputs : readonly [ ] ; stateMutability : "payable" ; } , { type : "event" ; name : "SmartMigration" ; inputs : readonly [ { name : "closeContract" ; type : "address" ; indexed : false ; internalType : "address" ; } , { name : "openContract" ; type : "address" ; indexed : false ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "error" ; name : "ECDSAInvalidSignature" ; inputs : readonly [ ] ; } , { type : "error" ; name : "ECDSAInvalidSignatureLength" ; inputs : readonly [ { name : "length" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "ECDSAInvalidSignatureS" ; inputs : readonly [ { name : "s" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; } , { type : "error" ; name : "InvalidSignatureError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "TargetContractCallFailed" ; inputs : readonly [ ] ; } ]
address
address : ` 0x ${ string } `
contract
contract : GetContractReturnType < readonly [ { type : "constructor" ; inputs : readonly [ { name : "_name" ; type : "string" ; internalType : "string" ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "DOMAIN_SEPARATOR" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "INITIAL_DOMAIN_SEPARATOR" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "VERSION" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "bytes" ; internalType : "bytes" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "executeOperation" ; inputs : readonly [ { name : "assets" ; type : "address[]" ; internalType : "address[]" ; } , { name : "amounts" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "premiums" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "" ; type : "address" ; internalType : "address" ; } , { name : "params" ; type : "bytes" ; internalType : "bytes" ; } ] ; outputs : readonly [ { name : "" ; type : "bool" ; internalType : "bool" ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "name" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "string" ; internalType : "string" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "smartMigrate" ; inputs : readonly [ { name : "args" ; type : "tuple" ; internalType : "struct IFlashLoanRenegotiation.SmartMigrationArgs" ; components : readonly [ { name : "migrationArgs" ; type : "tuple" ; internalType : "struct IFlashLoanRenegotiation.PositionMigrationArgs" ; components : readonly [ { name : "close" ; type : "tuple" ; internalType : "struct IFlashLoanRenegotiation.Position" ; components : readonly [ { name : "contractAddress" ; type : "address" ; internalType : "address" ; } , { name : "callData" ; type : "bytes" ; internalType : "bytes" ; } , { name : "value" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "open" ; type : "tuple" ; internalType : "struct IFlashLoanRenegotiation.Position" ; components : readonly [ { name : "contractAddress" ; type : "address" ; internalType : "address" ; } , { name : "callData" ; type : "bytes" ; internalType : "bytes" ; } , { name : "value" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "borrowArgs" ; type : "tuple" ; internalType : "struct IFlashLoanRenegotiation.AaveBorrowArgs" ; components : readonly [ { name : "pool" ; type : "address" ; internalType : "contract IPool" ; } , { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "assets" ; type : "address[]" ; internalType : "address[]" ; } , { name : "amounts" ; type : "uint256[]" ; internalType : "uint256[]" ; } ] ; } , { name : "migrator" ; type : "address" ; internalType : "address" ; } ] ; } , { name : "migratorSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; } ] ; outputs : readonly [ ] ; stateMutability : "payable" ; } , { type : "event" ; name : "SmartMigration" ; inputs : readonly [ { name : "closeContract" ; type : "address" ; indexed : false ; internalType : "address" ; } , { name : "openContract" ; type : "address" ; indexed : false ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "error" ; name : "ECDSAInvalidSignature" ; inputs : readonly [ ] ; } , { type : "error" ; name : "ECDSAInvalidSignatureLength" ; inputs : readonly [ { name : "length" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "ECDSAInvalidSignatureS" ; inputs : readonly [ { name : "s" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; } , { type : "error" ; name : "InvalidSignatureError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "TargetContractCallFailed" ; inputs : readonly [ ] ; } ] , {} | {} >
safe Contract Write
safe Contract Write : { executeOperation : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > ) ; smartMigrate : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > ) ; }
Type declaration
execute Operation : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > )
( args , options ? ) : Promise < ` 0x ${ string } ` >
Parameters
args : readonly [ readonly ` 0x ${ string } ` [] , readonly bigint [] , readonly bigint [] , ` 0x ${ string } ` , ` 0x ${ string } ` ] | readonly [ readonly ` 0x ${ string } ` [] , readonly bigint [] , readonly bigint [] , ` 0x ${ string } ` , ` 0x ${ string } ` ] & readonly [ readonly ` 0x ${ string } ` [] , readonly bigint [] , readonly bigint [] , ` 0x ${ string } ` , ` 0x ${ string } ` ]
Optional options : { value ?: bigint ; }
Returns Promise < ` 0x ${ string } ` >
smart Migrate : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > )
( args , options ? ) : Promise < ` 0x ${ string } ` >
Parameters
args : readonly [ { migrationArgs : { close: { contractAddress: `0x${string}`; callData: `0x${string}`; value: bigint; }; open: { contractAddress: `0x${string}`; callData: `0x${string}`; value: bigint; }; borrowArgs: { pool: `0x${string}`; recipient: `0x${string}`; assets: readonly `0x${string}`[]; amounts: readonly bigint[]; }; migrator: `0x${string}`; }; migratorSignature : ` 0x ${ string } ` ; } ] | readonly [ { migrationArgs : { close: { contractAddress: `0x${string}`; callData: `0x${string}`; value: bigint; }; open: { contractAddress: `0x${string}`; callData: `0x${string}`; value: bigint; }; borrowArgs: { pool: `0x${string}`; recipient: `0x${string}`; assets: readonly `0x${string}`[]; amounts: readonly bigint[]; }; migrator: `0x${string}`; }; migratorSignature : ` 0x ${ string } ` ; } ] & readonly [ { migrationArgs : { close: { contractAddress: `0x${string}`; callData: `0x${string}`; value: bigint; }; open: { contractAddress: `0x${string}`; callData: `0x${string}`; value: bigint; }; borrowArgs: { pool: `0x${string}`; recipient: `0x${string}`; assets: readonly `0x${string}`[]; amounts: readonly bigint[]; }; migrator: `0x${string}`; }; migratorSignature : ` 0x ${ string } ` ; } ]
Optional options : { value ?: bigint ; }
Returns Promise < ` 0x ${ string } ` >
parse Event Logs
parse Event Logs : ( < TFunctionName > ( eventName , logs ) => ParseEventLogsReturnType < readonly [ { type : "constructor" ; inputs : readonly [ { name : "_name" ; type : "string" ; internalType : "string" ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "DOMAIN_SEPARATOR" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "INITIAL_DOMAIN_SEPARATOR" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "VERSION" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "bytes" ; internalType : "bytes" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "executeOperation" ; inputs : readonly [ { name : "assets" ; type : "address[]" ; internalType : "address[]" ; } , { name : "amounts" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "premiums" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "" ; type : "address" ; internalType : "address" ; } , { name : "params" ; type : "bytes" ; internalType : "bytes" ; } ] ; outputs : readonly [ { name : "" ; type : "bool" ; internalType : "bool" ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "name" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "string" ; internalType : "string" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "smartMigrate" ; inputs : readonly [ { name : "args" ; type : "tuple" ; internalType : "struct IFlashLoanRenegotiation.SmartMigrationArgs" ; components : readonly [ { name : "migrationArgs" ; type : "tuple" ; internalType : "struct IFlashLoanRenegotiation.PositionMigrationArgs" ; components : readonly [ { name : "close" ; type : "tuple" ; internalType : "struct IFlashLoanRenegotiation.Position" ; components : readonly [ { name : "contractAddress" ; type : "address" ; internalType : "address" ; } , { name : "callData" ; type : "bytes" ; internalType : "bytes" ; } , { name : "value" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "open" ; type : "tuple" ; internalType : "struct IFlashLoanRenegotiation.Position" ; components : readonly [ { name : "contractAddress" ; type : "address" ; internalType : "address" ; } , { name : "callData" ; type : "bytes" ; internalType : "bytes" ; } , { name : "value" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "borrowArgs" ; type : "tuple" ; internalType : "struct IFlashLoanRenegotiation.AaveBorrowArgs" ; components : readonly [ { name : "pool" ; type : "address" ; internalType : "contract IPool" ; } , { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "assets" ; type : "address[]" ; internalType : "address[]" ; } , { name : "amounts" ; type : "uint256[]" ; internalType : "uint256[]" ; } ] ; } , { name : "migrator" ; type : "address" ; internalType : "address" ; } ] ; } , { name : "migratorSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; } ] ; outputs : readonly [ ] ; stateMutability : "payable" ; } , { type : "event" ; name : "SmartMigration" ; inputs : readonly [ { name : "closeContract" ; type : "address" ; indexed : false ; internalType : "address" ; } , { name : "openContract" ; type : "address" ; indexed : false ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "error" ; name : "ECDSAInvalidSignature" ; inputs : readonly [ ] ; } , { type : "error" ; name : "ECDSAInvalidSignatureLength" ; inputs : readonly [ { name : "length" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "ECDSAInvalidSignatureS" ; inputs : readonly [ { name : "s" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; } , { type : "error" ; name : "InvalidSignatureError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "TargetContractCallFailed" ; inputs : readonly [ ] ; } ] , TFunctionName , true , TFunctionName extends "SmartMigration" [] ? TFunctionName [ number ] : TFunctionName > )
Type declaration
< TFunctionName > ( eventName , logs ) : ParseEventLogsReturnType < readonly [ { type : "constructor" ; inputs : readonly [ { name : "_name" ; type : "string" ; internalType : "string" ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "DOMAIN_SEPARATOR" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "INITIAL_DOMAIN_SEPARATOR" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "VERSION" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "bytes" ; internalType : "bytes" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "executeOperation" ; inputs : readonly [ { name : "assets" ; type : "address[]" ; internalType : "address[]" ; } , { name : "amounts" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "premiums" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "" ; type : "address" ; internalType : "address" ; } , { name : "params" ; type : "bytes" ; internalType : "bytes" ; } ] ; outputs : readonly [ { name : "" ; type : "bool" ; internalType : "bool" ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "name" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "string" ; internalType : "string" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "smartMigrate" ; inputs : readonly [ { name : "args" ; type : "tuple" ; internalType : "struct IFlashLoanRenegotiation.SmartMigrationArgs" ; components : readonly [ { name : "migrationArgs" ; type : "tuple" ; internalType : "struct IFlashLoanRenegotiation.PositionMigrationArgs" ; components : readonly [ { name : "close" ; type : "tuple" ; internalType : "struct IFlashLoanRenegotiation.Position" ; components : readonly [ { name : "contractAddress" ; type : "address" ; internalType : "address" ; } , { name : "callData" ; type : "bytes" ; internalType : "bytes" ; } , { name : "value" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "open" ; type : "tuple" ; internalType : "struct IFlashLoanRenegotiation.Position" ; components : readonly [ { name : "contractAddress" ; type : "address" ; internalType : "address" ; } , { name : "callData" ; type : "bytes" ; internalType : "bytes" ; } , { name : "value" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "borrowArgs" ; type : "tuple" ; internalType : "struct IFlashLoanRenegotiation.AaveBorrowArgs" ; components : readonly [ { name : "pool" ; type : "address" ; internalType : "contract IPool" ; } , { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "assets" ; type : "address[]" ; internalType : "address[]" ; } , { name : "amounts" ; type : "uint256[]" ; internalType : "uint256[]" ; } ] ; } , { name : "migrator" ; type : "address" ; internalType : "address" ; } ] ; } , { name : "migratorSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; } ] ; outputs : readonly [ ] ; stateMutability : "payable" ; } , { type : "event" ; name : "SmartMigration" ; inputs : readonly [ { name : "closeContract" ; type : "address" ; indexed : false ; internalType : "address" ; } , { name : "openContract" ; type : "address" ; indexed : false ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "error" ; name : "ECDSAInvalidSignature" ; inputs : readonly [ ] ; } , { type : "error" ; name : "ECDSAInvalidSignatureLength" ; inputs : readonly [ { name : "length" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "ECDSAInvalidSignatureS" ; inputs : readonly [ { name : "s" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; } , { type : "error" ; name : "InvalidSignatureError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "TargetContractCallFailed" ; inputs : readonly [ ] ; } ] , TFunctionName , true , TFunctionName extends "SmartMigration" [] ? TFunctionName [ number ] : TFunctionName >
Type Parameters
TFunctionName extends "SmartMigration"
Parameters
eventName : TFunctionName
logs : Log < bigint , number , false > []
Returns ParseEventLogsReturnType < readonly [ { type : "constructor" ; inputs : readonly [ { name : "_name" ; type : "string" ; internalType : "string" ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "DOMAIN_SEPARATOR" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "INITIAL_DOMAIN_SEPARATOR" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "VERSION" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "bytes" ; internalType : "bytes" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "executeOperation" ; inputs : readonly [ { name : "assets" ; type : "address[]" ; internalType : "address[]" ; } , { name : "amounts" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "premiums" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "" ; type : "address" ; internalType : "address" ; } , { name : "params" ; type : "bytes" ; internalType : "bytes" ; } ] ; outputs : readonly [ { name : "" ; type : "bool" ; internalType : "bool" ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "name" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "string" ; internalType : "string" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "smartMigrate" ; inputs : readonly [ { name : "args" ; type : "tuple" ; internalType : "struct IFlashLoanRenegotiation.SmartMigrationArgs" ; components : readonly [ { name : "migrationArgs" ; type : "tuple" ; internalType : "struct IFlashLoanRenegotiation.PositionMigrationArgs" ; components : readonly [ { name : "close" ; type : "tuple" ; internalType : "struct IFlashLoanRenegotiation.Position" ; components : readonly [ { name : "contractAddress" ; type : "address" ; internalType : "address" ; } , { name : "callData" ; type : "bytes" ; internalType : "bytes" ; } , { name : "value" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "open" ; type : "tuple" ; internalType : "struct IFlashLoanRenegotiation.Position" ; components : readonly [ { name : "contractAddress" ; type : "address" ; internalType : "address" ; } , { name : "callData" ; type : "bytes" ; internalType : "bytes" ; } , { name : "value" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "borrowArgs" ; type : "tuple" ; internalType : "struct IFlashLoanRenegotiation.AaveBorrowArgs" ; components : readonly [ { name : "pool" ; type : "address" ; internalType : "contract IPool" ; } , { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "assets" ; type : "address[]" ; internalType : "address[]" ; } , { name : "amounts" ; type : "uint256[]" ; internalType : "uint256[]" ; } ] ; } , { name : "migrator" ; type : "address" ; internalType : "address" ; } ] ; } , { name : "migratorSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; } ] ; outputs : readonly [ ] ; stateMutability : "payable" ; } , { type : "event" ; name : "SmartMigration" ; inputs : readonly [ { name : "closeContract" ; type : "address" ; indexed : false ; internalType : "address" ; } , { name : "openContract" ; type : "address" ; indexed : false ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "error" ; name : "ECDSAInvalidSignature" ; inputs : readonly [ ] ; } , { type : "error" ; name : "ECDSAInvalidSignatureLength" ; inputs : readonly [ { name : "length" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "ECDSAInvalidSignatureS" ; inputs : readonly [ { name : "s" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; } , { type : "error" ; name : "InvalidSignatureError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "TargetContractCallFailed" ; inputs : readonly [ ] ; } ] , TFunctionName , true , TFunctionName extends "SmartMigration" [] ? TFunctionName [ number ] : TFunctionName >
This contract allows migration from one position to another. We will use this to migrate V3.0 loans to V3.1 and also support capital efficient refinance from offers