Properties
mslAddress
mslAddress: `0x${string}`
abi
abi: readonly [{
stateMutability: "nonpayable";
type: "constructor";
inputs: readonly [{
name: "_multiSourceLoanAddress";
internalType: "address";
type: "address";
}, {
name: "_marketplaceContracts";
internalType: "address";
type: "address";
}, {
name: "_wethAddress";
internalType: "address payable";
type: "address";
}, {
name: "_punkMarketAddress";
internalType: "address payable";
type: "address";
}, {
name: "_wrappedPunkAddress";
internalType: "address payable";
type: "address";
}, {
name: "_seaportAddress";
internalType: "address payable";
type: "address";
}];
}, {
type: "error";
inputs: readonly [];
name: "AddressZeroError";
}, {
type: "error";
inputs: readonly [];
name: "CouldNotReturnEthError";
}, {
type: "error";
inputs: readonly [];
name: "InvalidAddressUpdateError";
}, {
type: "error";
inputs: readonly [];
name: "InvalidCallbackError";
}, {
type: "error";
inputs: readonly [];
name: "MarketplaceAddressNotWhitelisted";
}, {
type: "error";
inputs: readonly [];
name: "OnlyMultiSourceLoanError";
}, {
type: "error";
inputs: readonly [];
name: "OnlyWethSupportedError";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "_loanIds";
internalType: "uint256[]";
type: "uint256[]";
indexed: false;
}];
name: "BNPLLoansStarted";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "_newAddress";
internalType: "address";
type: "address";
indexed: false;
}];
name: "MultiSourceLoanPendingUpdate";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "_newAddress";
internalType: "address";
type: "address";
indexed: false;
}];
name: "MultiSourceLoanUpdated";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "user";
internalType: "address";
type: "address";
indexed: true;
}, {
name: "newOwner";
internalType: "address";
type: "address";
indexed: true;
}];
name: "OwnershipTransferred";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "_newAddress";
internalType: "address";
type: "address";
indexed: false;
}];
name: "SeaportPendingUpdate";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "_newAddress";
internalType: "address";
type: "address";
indexed: false;
}];
name: "SeaportUpdated";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "_loanIds";
internalType: "uint256[]";
type: "uint256[]";
indexed: false;
}];
name: "SellAndRepayExecuted";
}, {
stateMutability: "payable";
type: "fallback";
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_loan";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}, {
name: "_executionData";
internalType: "bytes";
type: "bytes";
}];
name: "afterNFTTransfer";
outputs: readonly [{
name: "";
internalType: "bytes4";
type: "bytes4";
}];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_loan";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}, {
name: "_fee";
internalType: "uint256";
type: "uint256";
}, {
name: "_executionData";
internalType: "bytes";
type: "bytes";
}];
name: "afterPrincipalTransfer";
outputs: readonly [{
name: "";
internalType: "bytes4";
type: "bytes4";
}];
}, {
stateMutability: "payable";
type: "function";
inputs: readonly [{
name: "_executionData";
internalType: "bytes[]";
type: "bytes[]";
}];
name: "buy";
outputs: readonly [{
name: "";
internalType: "uint256[]";
type: "uint256[]";
}, {
name: "";
internalType: "struct IMultiSourceLoan.Loan[]";
type: "tuple[]";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_newAddress";
internalType: "address";
type: "address";
}];
name: "finalUpdateMultiSourceLoanAddress";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_newAddress";
internalType: "address";
type: "address";
}];
name: "finalUpdateSeaportAddress";
outputs: readonly [];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getMultiSourceLoanAddress";
outputs: readonly [{
name: "";
internalType: "address";
type: "address";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getSeaportAddress";
outputs: readonly [{
name: "";
internalType: "address";
type: "address";
}];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "";
internalType: "address";
type: "address";
}, {
name: "";
internalType: "address";
type: "address";
}, {
name: "";
internalType: "uint256";
type: "uint256";
}, {
name: "";
internalType: "bytes";
type: "bytes";
}];
name: "onERC721Received";
outputs: readonly [{
name: "";
internalType: "bytes4";
type: "bytes4";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "owner";
outputs: readonly [{
name: "";
internalType: "address";
type: "address";
}];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_executionData";
internalType: "bytes[]";
type: "bytes[]";
}];
name: "sell";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "newOwner";
internalType: "address";
type: "address";
}];
name: "transferOwnership";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_newAddress";
internalType: "address";
type: "address";
}];
name: "updateMultiSourceLoanAddressFirst";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_newAddress";
internalType: "address";
type: "address";
}];
name: "updateSeaportAddressFirst";
outputs: readonly [];
}, {
stateMutability: "payable";
type: "receive";
}]
address
address: `0x${string}`
contract
contract: GetContractReturnType<readonly [{
stateMutability: "nonpayable";
type: "constructor";
inputs: readonly [{
name: "_multiSourceLoanAddress";
internalType: "address";
type: "address";
}, {
name: "_marketplaceContracts";
internalType: "address";
type: "address";
}, {
name: "_wethAddress";
internalType: "address payable";
type: "address";
}, {
name: "_punkMarketAddress";
internalType: "address payable";
type: "address";
}, {
name: "_wrappedPunkAddress";
internalType: "address payable";
type: "address";
}, {
name: "_seaportAddress";
internalType: "address payable";
type: "address";
}];
}, {
type: "error";
inputs: readonly [];
name: "AddressZeroError";
}, {
type: "error";
inputs: readonly [];
name: "CouldNotReturnEthError";
}, {
type: "error";
inputs: readonly [];
name: "InvalidAddressUpdateError";
}, {
type: "error";
inputs: readonly [];
name: "InvalidCallbackError";
}, {
type: "error";
inputs: readonly [];
name: "MarketplaceAddressNotWhitelisted";
}, {
type: "error";
inputs: readonly [];
name: "OnlyMultiSourceLoanError";
}, {
type: "error";
inputs: readonly [];
name: "OnlyWethSupportedError";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "_loanIds";
internalType: "uint256[]";
type: "uint256[]";
indexed: false;
}];
name: "BNPLLoansStarted";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "_newAddress";
internalType: "address";
type: "address";
indexed: false;
}];
name: "MultiSourceLoanPendingUpdate";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "_newAddress";
internalType: "address";
type: "address";
indexed: false;
}];
name: "MultiSourceLoanUpdated";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "user";
internalType: "address";
type: "address";
indexed: true;
}, {
name: "newOwner";
internalType: "address";
type: "address";
indexed: true;
}];
name: "OwnershipTransferred";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "_newAddress";
internalType: "address";
type: "address";
indexed: false;
}];
name: "SeaportPendingUpdate";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "_newAddress";
internalType: "address";
type: "address";
indexed: false;
}];
name: "SeaportUpdated";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "_loanIds";
internalType: "uint256[]";
type: "uint256[]";
indexed: false;
}];
name: "SellAndRepayExecuted";
}, {
stateMutability: "payable";
type: "fallback";
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_loan";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}, {
name: "_executionData";
internalType: "bytes";
type: "bytes";
}];
name: "afterNFTTransfer";
outputs: readonly [{
name: "";
internalType: "bytes4";
type: "bytes4";
}];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_loan";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}, {
name: "_fee";
internalType: "uint256";
type: "uint256";
}, {
name: "_executionData";
internalType: "bytes";
type: "bytes";
}];
name: "afterPrincipalTransfer";
outputs: readonly [{
name: "";
internalType: "bytes4";
type: "bytes4";
}];
}, {
stateMutability: "payable";
type: "function";
inputs: readonly [{
name: "_executionData";
internalType: "bytes[]";
type: "bytes[]";
}];
name: "buy";
outputs: readonly [{
name: "";
internalType: "uint256[]";
type: "uint256[]";
}, {
name: "";
internalType: "struct IMultiSourceLoan.Loan[]";
type: "tuple[]";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_newAddress";
internalType: "address";
type: "address";
}];
name: "finalUpdateMultiSourceLoanAddress";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_newAddress";
internalType: "address";
type: "address";
}];
name: "finalUpdateSeaportAddress";
outputs: readonly [];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getMultiSourceLoanAddress";
outputs: readonly [{
name: "";
internalType: "address";
type: "address";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getSeaportAddress";
outputs: readonly [{
name: "";
internalType: "address";
type: "address";
}];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "";
internalType: "address";
type: "address";
}, {
name: "";
internalType: "address";
type: "address";
}, {
name: "";
internalType: "uint256";
type: "uint256";
}, {
name: "";
internalType: "bytes";
type: "bytes";
}];
name: "onERC721Received";
outputs: readonly [{
name: "";
internalType: "bytes4";
type: "bytes4";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "owner";
outputs: readonly [{
name: "";
internalType: "address";
type: "address";
}];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_executionData";
internalType: "bytes[]";
type: "bytes[]";
}];
name: "sell";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "newOwner";
internalType: "address";
type: "address";
}];
name: "transferOwnership";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_newAddress";
internalType: "address";
type: "address";
}];
name: "updateMultiSourceLoanAddressFirst";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_newAddress";
internalType: "address";
type: "address";
}];
name: "updateSeaportAddressFirst";
outputs: readonly [];
}, {
stateMutability: "payable";
type: "receive";
}], {} | {}>
safeContractWrite
safeContractWrite: {
transferOwnership: ((args, options?) => Promise<`0x${string}`>);
onERC721Received: ((args, options?) => Promise<`0x${string}`>);
afterNFTTransfer: ((args, options?) => Promise<`0x${string}`>);
afterPrincipalTransfer: ((args, options?) => Promise<`0x${string}`>);
buy: ((args, options?) => Promise<`0x${string}`>);
finalUpdateMultiSourceLoanAddress: ((args, options?) => Promise<`0x${string}`>);
finalUpdateSeaportAddress: ((args, options?) => Promise<`0x${string}`>);
sell: ((args, options?) => Promise<`0x${string}`>);
updateMultiSourceLoanAddressFirst: ((args, options?) => Promise<`0x${string}`>);
updateSeaportAddressFirst: ((args, options?) => Promise<`0x${string}`>);
}
Type declaration
-
transferOwnership: ((args, options?) => Promise<`0x${string}`>)
-
- (args, options?): Promise<`0x${string}`>
-
Parameters
-
args: readonly [`0x${string}`]
-
Optional
options: {
value?: bigint;
}
Returns Promise<`0x${string}`>
-
onERC721Received: ((args, options?) => Promise<`0x${string}`>)
-
- (args, options?): Promise<`0x${string}`>
-
Parameters
-
args: readonly [`0x${string}`, `0x${string}`, bigint, `0x${string}`]
-
Optional
options: {
value?: bigint;
}
Returns Promise<`0x${string}`>
-
afterNFTTransfer: ((args, options?) => Promise<`0x${string}`>)
-
- (args, options?): Promise<`0x${string}`>
-
Parameters
-
args: readonly [{
borrower: `0x${string}`;
nftCollateralTokenId: bigint;
nftCollateralAddress: `0x${string}`;
principalAddress: `0x${string}`;
principalAmount: bigint;
startTime: bigint;
duration: bigint;
source: readonly ({ loanId: bigint; lender: `0x${string}`; principalAmount: bigint; accruedInterest: bigint; startTime: bigint; aprBps: bigint; })[];
}, `0x${string}`] | readonly [{
borrower: `0x${string}`;
nftCollateralTokenId: bigint;
nftCollateralAddress: `0x${string}`;
principalAddress: `0x${string}`;
principalAmount: bigint;
startTime: bigint;
duration: bigint;
source: readonly ({ loanId: bigint; lender: `0x${string}`; principalAmount: bigint; accruedInterest: bigint; startTime: bigint; aprBps: bigint; })[];
}, `0x${string}`] & readonly [{
borrower: `0x${string}`;
nftCollateralTokenId: bigint;
nftCollateralAddress: `0x${string}`;
principalAddress: `0x${string}`;
principalAmount: bigint;
startTime: bigint;
duration: bigint;
source: readonly ({ loanId: bigint; lender: `0x${string}`; principalAmount: bigint; accruedInterest: bigint; startTime: bigint; aprBps: bigint; })[];
}, `0x${string}`]
-
Optional
options: {
value?: bigint;
}
Returns Promise<`0x${string}`>
-
afterPrincipalTransfer: ((args, options?) => Promise<`0x${string}`>)
-
- (args, options?): Promise<`0x${string}`>
-
Parameters
-
args: readonly [{
borrower: `0x${string}`;
nftCollateralTokenId: bigint;
nftCollateralAddress: `0x${string}`;
principalAddress: `0x${string}`;
principalAmount: bigint;
startTime: bigint;
duration: bigint;
source: readonly ({ loanId: bigint; lender: `0x${string}`; principalAmount: bigint; accruedInterest: bigint; startTime: bigint; aprBps: bigint; })[];
}, bigint, `0x${string}`] | readonly [{
borrower: `0x${string}`;
nftCollateralTokenId: bigint;
nftCollateralAddress: `0x${string}`;
principalAddress: `0x${string}`;
principalAmount: bigint;
startTime: bigint;
duration: bigint;
source: readonly ({ loanId: bigint; lender: `0x${string}`; principalAmount: bigint; accruedInterest: bigint; startTime: bigint; aprBps: bigint; })[];
}, bigint, `0x${string}`] & readonly [{
borrower: `0x${string}`;
nftCollateralTokenId: bigint;
nftCollateralAddress: `0x${string}`;
principalAddress: `0x${string}`;
principalAmount: bigint;
startTime: bigint;
duration: bigint;
source: readonly ({ loanId: bigint; lender: `0x${string}`; principalAmount: bigint; accruedInterest: bigint; startTime: bigint; aprBps: bigint; })[];
}, bigint, `0x${string}`]
-
Optional
options: {
value?: bigint;
}
Returns Promise<`0x${string}`>
-
buy: ((args, options?) => Promise<`0x${string}`>)
-
- (args, options?): Promise<`0x${string}`>
-
Parameters
-
args: readonly [readonly `0x${string}`[]] | readonly [readonly `0x${string}`[]] & readonly [readonly `0x${string}`[]]
-
Optional
options: {
value?: bigint;
}
Returns Promise<`0x${string}`>
-
finalUpdateMultiSourceLoanAddress: ((args, options?) => Promise<`0x${string}`>)
-
- (args, options?): Promise<`0x${string}`>
-
Parameters
-
args: readonly [`0x${string}`]
-
Optional
options: {
value?: bigint;
}
Returns Promise<`0x${string}`>
-
finalUpdateSeaportAddress: ((args, options?) => Promise<`0x${string}`>)
-
- (args, options?): Promise<`0x${string}`>
-
Parameters
-
args: readonly [`0x${string}`]
-
Optional
options: {
value?: bigint;
}
Returns Promise<`0x${string}`>
-
sell: ((args, options?) => Promise<`0x${string}`>)
-
- (args, options?): Promise<`0x${string}`>
-
Parameters
-
args: readonly [readonly `0x${string}`[]] | readonly [readonly `0x${string}`[]] & readonly [readonly `0x${string}`[]]
-
Optional
options: {
value?: bigint;
}
Returns Promise<`0x${string}`>
-
updateMultiSourceLoanAddressFirst: ((args, options?) => Promise<`0x${string}`>)
-
- (args, options?): Promise<`0x${string}`>
-
Parameters
-
args: readonly [`0x${string}`]
-
Optional
options: {
value?: bigint;
}
Returns Promise<`0x${string}`>
-
updateSeaportAddressFirst: ((args, options?) => Promise<`0x${string}`>)
-
- (args, options?): Promise<`0x${string}`>
-
Parameters
-
args: readonly [`0x${string}`]
-
Optional
options: {
value?: bigint;
}
Returns Promise<`0x${string}`>
parseEventLogs
parseEventLogs: (<TFunctionName>(eventName, logs) => ParseEventLogsReturnType<readonly [{
stateMutability: "nonpayable";
type: "constructor";
inputs: readonly [{
name: "_multiSourceLoanAddress";
internalType: "address";
type: "address";
}, {
name: "_marketplaceContracts";
internalType: "address";
type: "address";
}, {
name: "_wethAddress";
internalType: "address payable";
type: "address";
}, {
name: "_punkMarketAddress";
internalType: "address payable";
type: "address";
}, {
name: "_wrappedPunkAddress";
internalType: "address payable";
type: "address";
}, {
name: "_seaportAddress";
internalType: "address payable";
type: "address";
}];
}, {
type: "error";
inputs: readonly [];
name: "AddressZeroError";
}, {
type: "error";
inputs: readonly [];
name: "CouldNotReturnEthError";
}, {
type: "error";
inputs: readonly [];
name: "InvalidAddressUpdateError";
}, {
type: "error";
inputs: readonly [];
name: "InvalidCallbackError";
}, {
type: "error";
inputs: readonly [];
name: "MarketplaceAddressNotWhitelisted";
}, {
type: "error";
inputs: readonly [];
name: "OnlyMultiSourceLoanError";
}, {
type: "error";
inputs: readonly [];
name: "OnlyWethSupportedError";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "_loanIds";
internalType: "uint256[]";
type: "uint256[]";
indexed: false;
}];
name: "BNPLLoansStarted";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "_newAddress";
internalType: "address";
type: "address";
indexed: false;
}];
name: "MultiSourceLoanPendingUpdate";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "_newAddress";
internalType: "address";
type: "address";
indexed: false;
}];
name: "MultiSourceLoanUpdated";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "user";
internalType: "address";
type: "address";
indexed: true;
}, {
name: "newOwner";
internalType: "address";
type: "address";
indexed: true;
}];
name: "OwnershipTransferred";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "_newAddress";
internalType: "address";
type: "address";
indexed: false;
}];
name: "SeaportPendingUpdate";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "_newAddress";
internalType: "address";
type: "address";
indexed: false;
}];
name: "SeaportUpdated";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "_loanIds";
internalType: "uint256[]";
type: "uint256[]";
indexed: false;
}];
name: "SellAndRepayExecuted";
}, {
stateMutability: "payable";
type: "fallback";
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_loan";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}, {
name: "_executionData";
internalType: "bytes";
type: "bytes";
}];
name: "afterNFTTransfer";
outputs: readonly [{
name: "";
internalType: "bytes4";
type: "bytes4";
}];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_loan";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}, {
name: "_fee";
internalType: "uint256";
type: "uint256";
}, {
name: "_executionData";
internalType: "bytes";
type: "bytes";
}];
name: "afterPrincipalTransfer";
outputs: readonly [{
name: "";
internalType: "bytes4";
type: "bytes4";
}];
}, {
stateMutability: "payable";
type: "function";
inputs: readonly [{
name: "_executionData";
internalType: "bytes[]";
type: "bytes[]";
}];
name: "buy";
outputs: readonly [{
name: "";
internalType: "uint256[]";
type: "uint256[]";
}, {
name: "";
internalType: "struct IMultiSourceLoan.Loan[]";
type: "tuple[]";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_newAddress";
internalType: "address";
type: "address";
}];
name: "finalUpdateMultiSourceLoanAddress";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_newAddress";
internalType: "address";
type: "address";
}];
name: "finalUpdateSeaportAddress";
outputs: readonly [];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getMultiSourceLoanAddress";
outputs: readonly [{
name: "";
internalType: "address";
type: "address";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getSeaportAddress";
outputs: readonly [{
name: "";
internalType: "address";
type: "address";
}];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "";
internalType: "address";
type: "address";
}, {
name: "";
internalType: "address";
type: "address";
}, {
name: "";
internalType: "uint256";
type: "uint256";
}, {
name: "";
internalType: "bytes";
type: "bytes";
}];
name: "onERC721Received";
outputs: readonly [{
name: "";
internalType: "bytes4";
type: "bytes4";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "owner";
outputs: readonly [{
name: "";
internalType: "address";
type: "address";
}];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_executionData";
internalType: "bytes[]";
type: "bytes[]";
}];
name: "sell";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "newOwner";
internalType: "address";
type: "address";
}];
name: "transferOwnership";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_newAddress";
internalType: "address";
type: "address";
}];
name: "updateMultiSourceLoanAddressFirst";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_newAddress";
internalType: "address";
type: "address";
}];
name: "updateSeaportAddressFirst";
outputs: readonly [];
}, {
stateMutability: "payable";
type: "receive";
}], TFunctionName, true, TFunctionName extends ("OwnershipTransferred" | "BNPLLoansStarted" | "MultiSourceLoanPendingUpdate" | "MultiSourceLoanUpdated" | "SeaportPendingUpdate" | "SeaportUpdated" | "SellAndRepayExecuted")[]
? TFunctionName[number]
: TFunctionName>)
Type declaration
-
- <TFunctionName>(eventName, logs): ParseEventLogsReturnType<readonly [{
stateMutability: "nonpayable";
type: "constructor";
inputs: readonly [{
name: "_multiSourceLoanAddress";
internalType: "address";
type: "address";
}, {
name: "_marketplaceContracts";
internalType: "address";
type: "address";
}, {
name: "_wethAddress";
internalType: "address payable";
type: "address";
}, {
name: "_punkMarketAddress";
internalType: "address payable";
type: "address";
}, {
name: "_wrappedPunkAddress";
internalType: "address payable";
type: "address";
}, {
name: "_seaportAddress";
internalType: "address payable";
type: "address";
}];
}, {
type: "error";
inputs: readonly [];
name: "AddressZeroError";
}, {
type: "error";
inputs: readonly [];
name: "CouldNotReturnEthError";
}, {
type: "error";
inputs: readonly [];
name: "InvalidAddressUpdateError";
}, {
type: "error";
inputs: readonly [];
name: "InvalidCallbackError";
}, {
type: "error";
inputs: readonly [];
name: "MarketplaceAddressNotWhitelisted";
}, {
type: "error";
inputs: readonly [];
name: "OnlyMultiSourceLoanError";
}, {
type: "error";
inputs: readonly [];
name: "OnlyWethSupportedError";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "_loanIds";
internalType: "uint256[]";
type: "uint256[]";
indexed: false;
}];
name: "BNPLLoansStarted";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "_newAddress";
internalType: "address";
type: "address";
indexed: false;
}];
name: "MultiSourceLoanPendingUpdate";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "_newAddress";
internalType: "address";
type: "address";
indexed: false;
}];
name: "MultiSourceLoanUpdated";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "user";
internalType: "address";
type: "address";
indexed: true;
}, {
name: "newOwner";
internalType: "address";
type: "address";
indexed: true;
}];
name: "OwnershipTransferred";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "_newAddress";
internalType: "address";
type: "address";
indexed: false;
}];
name: "SeaportPendingUpdate";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "_newAddress";
internalType: "address";
type: "address";
indexed: false;
}];
name: "SeaportUpdated";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "_loanIds";
internalType: "uint256[]";
type: "uint256[]";
indexed: false;
}];
name: "SellAndRepayExecuted";
}, {
stateMutability: "payable";
type: "fallback";
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_loan";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}, {
name: "_executionData";
internalType: "bytes";
type: "bytes";
}];
name: "afterNFTTransfer";
outputs: readonly [{
name: "";
internalType: "bytes4";
type: "bytes4";
}];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_loan";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}, {
name: "_fee";
internalType: "uint256";
type: "uint256";
}, {
name: "_executionData";
internalType: "bytes";
type: "bytes";
}];
name: "afterPrincipalTransfer";
outputs: readonly [{
name: "";
internalType: "bytes4";
type: "bytes4";
}];
}, {
stateMutability: "payable";
type: "function";
inputs: readonly [{
name: "_executionData";
internalType: "bytes[]";
type: "bytes[]";
}];
name: "buy";
outputs: readonly [{
name: "";
internalType: "uint256[]";
type: "uint256[]";
}, {
name: "";
internalType: "struct IMultiSourceLoan.Loan[]";
type: "tuple[]";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_newAddress";
internalType: "address";
type: "address";
}];
name: "finalUpdateMultiSourceLoanAddress";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_newAddress";
internalType: "address";
type: "address";
}];
name: "finalUpdateSeaportAddress";
outputs: readonly [];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getMultiSourceLoanAddress";
outputs: readonly [{
name: "";
internalType: "address";
type: "address";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getSeaportAddress";
outputs: readonly [{
name: "";
internalType: "address";
type: "address";
}];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "";
internalType: "address";
type: "address";
}, {
name: "";
internalType: "address";
type: "address";
}, {
name: "";
internalType: "uint256";
type: "uint256";
}, {
name: "";
internalType: "bytes";
type: "bytes";
}];
name: "onERC721Received";
outputs: readonly [{
name: "";
internalType: "bytes4";
type: "bytes4";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "owner";
outputs: readonly [{
name: "";
internalType: "address";
type: "address";
}];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_executionData";
internalType: "bytes[]";
type: "bytes[]";
}];
name: "sell";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "newOwner";
internalType: "address";
type: "address";
}];
name: "transferOwnership";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_newAddress";
internalType: "address";
type: "address";
}];
name: "updateMultiSourceLoanAddressFirst";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_newAddress";
internalType: "address";
type: "address";
}];
name: "updateSeaportAddressFirst";
outputs: readonly [];
}, {
stateMutability: "payable";
type: "receive";
}], TFunctionName, true, TFunctionName extends ("OwnershipTransferred" | "BNPLLoansStarted" | "MultiSourceLoanPendingUpdate" | "MultiSourceLoanUpdated" | "SeaportPendingUpdate" | "SeaportUpdated" | "SellAndRepayExecuted")[]
? TFunctionName[number]
: TFunctionName>
-
Type Parameters
-
TFunctionName extends "OwnershipTransferred" | "BNPLLoansStarted" | "MultiSourceLoanPendingUpdate" | "MultiSourceLoanUpdated" | "SeaportPendingUpdate" | "SeaportUpdated" | "SellAndRepayExecuted"
Parameters
-
eventName: TFunctionName
-
logs: Log<bigint, number, false>[]
Returns ParseEventLogsReturnType<readonly [{
stateMutability: "nonpayable";
type: "constructor";
inputs: readonly [{
name: "_multiSourceLoanAddress";
internalType: "address";
type: "address";
}, {
name: "_marketplaceContracts";
internalType: "address";
type: "address";
}, {
name: "_wethAddress";
internalType: "address payable";
type: "address";
}, {
name: "_punkMarketAddress";
internalType: "address payable";
type: "address";
}, {
name: "_wrappedPunkAddress";
internalType: "address payable";
type: "address";
}, {
name: "_seaportAddress";
internalType: "address payable";
type: "address";
}];
}, {
type: "error";
inputs: readonly [];
name: "AddressZeroError";
}, {
type: "error";
inputs: readonly [];
name: "CouldNotReturnEthError";
}, {
type: "error";
inputs: readonly [];
name: "InvalidAddressUpdateError";
}, {
type: "error";
inputs: readonly [];
name: "InvalidCallbackError";
}, {
type: "error";
inputs: readonly [];
name: "MarketplaceAddressNotWhitelisted";
}, {
type: "error";
inputs: readonly [];
name: "OnlyMultiSourceLoanError";
}, {
type: "error";
inputs: readonly [];
name: "OnlyWethSupportedError";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "_loanIds";
internalType: "uint256[]";
type: "uint256[]";
indexed: false;
}];
name: "BNPLLoansStarted";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "_newAddress";
internalType: "address";
type: "address";
indexed: false;
}];
name: "MultiSourceLoanPendingUpdate";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "_newAddress";
internalType: "address";
type: "address";
indexed: false;
}];
name: "MultiSourceLoanUpdated";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "user";
internalType: "address";
type: "address";
indexed: true;
}, {
name: "newOwner";
internalType: "address";
type: "address";
indexed: true;
}];
name: "OwnershipTransferred";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "_newAddress";
internalType: "address";
type: "address";
indexed: false;
}];
name: "SeaportPendingUpdate";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "_newAddress";
internalType: "address";
type: "address";
indexed: false;
}];
name: "SeaportUpdated";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "_loanIds";
internalType: "uint256[]";
type: "uint256[]";
indexed: false;
}];
name: "SellAndRepayExecuted";
}, {
stateMutability: "payable";
type: "fallback";
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_loan";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}, {
name: "_executionData";
internalType: "bytes";
type: "bytes";
}];
name: "afterNFTTransfer";
outputs: readonly [{
name: "";
internalType: "bytes4";
type: "bytes4";
}];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_loan";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}, {
name: "_fee";
internalType: "uint256";
type: "uint256";
}, {
name: "_executionData";
internalType: "bytes";
type: "bytes";
}];
name: "afterPrincipalTransfer";
outputs: readonly [{
name: "";
internalType: "bytes4";
type: "bytes4";
}];
}, {
stateMutability: "payable";
type: "function";
inputs: readonly [{
name: "_executionData";
internalType: "bytes[]";
type: "bytes[]";
}];
name: "buy";
outputs: readonly [{
name: "";
internalType: "uint256[]";
type: "uint256[]";
}, {
name: "";
internalType: "struct IMultiSourceLoan.Loan[]";
type: "tuple[]";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_newAddress";
internalType: "address";
type: "address";
}];
name: "finalUpdateMultiSourceLoanAddress";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_newAddress";
internalType: "address";
type: "address";
}];
name: "finalUpdateSeaportAddress";
outputs: readonly [];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getMultiSourceLoanAddress";
outputs: readonly [{
name: "";
internalType: "address";
type: "address";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getSeaportAddress";
outputs: readonly [{
name: "";
internalType: "address";
type: "address";
}];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "";
internalType: "address";
type: "address";
}, {
name: "";
internalType: "address";
type: "address";
}, {
name: "";
internalType: "uint256";
type: "uint256";
}, {
name: "";
internalType: "bytes";
type: "bytes";
}];
name: "onERC721Received";
outputs: readonly [{
name: "";
internalType: "bytes4";
type: "bytes4";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "owner";
outputs: readonly [{
name: "";
internalType: "address";
type: "address";
}];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_executionData";
internalType: "bytes[]";
type: "bytes[]";
}];
name: "sell";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "newOwner";
internalType: "address";
type: "address";
}];
name: "transferOwnership";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_newAddress";
internalType: "address";
type: "address";
}];
name: "updateMultiSourceLoanAddressFirst";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_newAddress";
internalType: "address";
type: "address";
}];
name: "updateSeaportAddressFirst";
outputs: readonly [];
}, {
stateMutability: "payable";
type: "receive";
}], TFunctionName, true, TFunctionName extends ("OwnershipTransferred" | "BNPLLoansStarted" | "MultiSourceLoanPendingUpdate" | "MultiSourceLoanUpdated" | "SeaportPendingUpdate" | "SeaportUpdated" | "SellAndRepayExecuted")[]
? TFunctionName[number]
: TFunctionName>