user logout in the vault changed to queuing mechanism, and add function of batch sending WUSD

This commit is contained in:
2025-12-19 13:26:49 +08:00
parent 21674f86a9
commit 399354646a
27 changed files with 2057 additions and 2877 deletions

View File

@@ -19,6 +19,16 @@
"name": "InsufficientReserves",
"type": "error"
},
{
"inputs": [],
"name": "InvalidBorrowCollateralFactor",
"type": "error"
},
{
"inputs": [],
"name": "InvalidLiquidateCollateralFactor",
"type": "error"
},
{
"inputs": [],
"name": "InvalidLiquidationFactor",

View File

@@ -66,11 +66,21 @@
"name": "InsufficientReserves",
"type": "error"
},
{
"inputs": [],
"name": "InvalidBorrowCollateralFactor",
"type": "error"
},
{
"inputs": [],
"name": "InvalidInitialization",
"type": "error"
},
{
"inputs": [],
"name": "InvalidLiquidateCollateralFactor",
"type": "error"
},
{
"inputs": [],
"name": "InvalidLiquidationFactor",

View File

@@ -152,6 +152,11 @@
"name": "InvalidAmount",
"type": "error"
},
{
"inputs": [],
"name": "InvalidBatchSize",
"type": "error"
},
{
"inputs": [],
"name": "InvalidHardCap",
@@ -177,6 +182,16 @@
"name": "ReentrancyGuardReentrantCall",
"type": "error"
},
{
"inputs": [],
"name": "RequestAlreadyProcessed",
"type": "error"
},
{
"inputs": [],
"name": "RequestNotFound",
"type": "error"
},
{
"inputs": [
{
@@ -266,6 +281,37 @@
"name": "AssetsWithdrawn",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "startIndex",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "endIndex",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "processedCount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "totalWusdDistributed",
"type": "uint256"
}
],
"name": "BatchProcessed",
"type": "event"
},
{
"anonymous": false,
"inputs": [
@@ -457,6 +503,68 @@
"name": "Upgraded",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "requestId",
"type": "uint256"
},
{
"indexed": true,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "ytAmount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "wusdAmount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "queueIndex",
"type": "uint256"
}
],
"name": "WithdrawRequestCreated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "requestId",
"type": "uint256"
},
{
"indexed": true,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "wusdAmount",
"type": "uint256"
}
],
"name": "WithdrawRequestProcessed",
"type": "event"
},
{
"inputs": [],
"name": "PRICE_PRECISION",
@@ -621,6 +729,93 @@
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getPendingRequestsCount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getQueueProgress",
"outputs": [
{
"internalType": "uint256",
"name": "currentIndex",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "totalRequests",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "pendingRequests",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_requestId",
"type": "uint256"
}
],
"name": "getRequestDetails",
"outputs": [
{
"components": [
{
"internalType": "address",
"name": "user",
"type": "address"
},
{
"internalType": "uint256",
"name": "ytAmount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "wusdAmount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "requestTime",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "queueIndex",
"type": "uint256"
},
{
"internalType": "bool",
"name": "processed",
"type": "bool"
}
],
"internalType": "struct YTAssetVault.WithdrawRequest",
"name": "request",
"type": "tuple"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getTimeUntilNextRedemption",
@@ -634,6 +829,76 @@
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_user",
"type": "address"
}
],
"name": "getUserPendingRequests",
"outputs": [
{
"components": [
{
"internalType": "address",
"name": "user",
"type": "address"
},
{
"internalType": "uint256",
"name": "ytAmount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "wusdAmount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "requestTime",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "queueIndex",
"type": "uint256"
},
{
"internalType": "bool",
"name": "processed",
"type": "bool"
}
],
"internalType": "struct YTAssetVault.WithdrawRequest[]",
"name": "pendingRequests",
"type": "tuple[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_user",
"type": "address"
}
],
"name": "getUserRequestIds",
"outputs": [
{
"internalType": "uint256[]",
"name": "",
"type": "uint256[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getVaultInfo",
@@ -828,6 +1093,19 @@
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "pendingRequestsCount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
@@ -866,6 +1144,43 @@
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_batchSize",
"type": "uint256"
}
],
"name": "processBatchWithdrawals",
"outputs": [
{
"internalType": "uint256",
"name": "processedCount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "totalDistributed",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "processedUpToIndex",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "proxiableUUID",
@@ -879,6 +1194,19 @@
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "requestIdCounter",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
@@ -1071,6 +1399,50 @@
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "withdrawRequests",
"outputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
},
{
"internalType": "uint256",
"name": "ytAmount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "wusdAmount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "requestTime",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "queueIndex",
"type": "uint256"
},
{
"internalType": "bool",
"name": "processed",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
@@ -1083,7 +1455,7 @@
"outputs": [
{
"internalType": "uint256",
"name": "wusdAmount",
"name": "requestId",
"type": "uint256"
}
],