marketplace min and multiple withdrawStakes

This commit is contained in:
sascha3333 committed 2025-09-14 15:32:50 +02:00
1 parent 25e6149917
commit 4f8f062f35
2 files changed
+34 -63

No files matched your search

@@ -1419,19 +1419,6 @@
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "lockupDuration",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
@@ -1508,19 +1495,6 @@
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
@@ -1858,19 +1832,6 @@
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_duration",
"type": "uint256"
}
],
"name": "updateLockupDuration",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
@@ -2075,9 +2036,9 @@
{
"inputs": [
{
"internalType": "uint256",
"name": "stakeId",
"type": "uint256"
"internalType": "uint256[]",
"name": "stakeIds",
"type": "uint256[]"
}
],
"name": "withdrawStake",
@@ -2144,8 +2105,8 @@
"type": "function"
}
],
"bytecode": "0x60806040523480156200001157600080fd5b506200001c62000022565b620000d6565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000735760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d35780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b615ed780620000e66000396000f3fe608060405234801561001057600080fd5b50600436106104535760003560e01c80638129fc1c11610241578063c26766031161013b578063d9193025116100c3578063ef5d9ae811610087578063ef5d9ae814610c5e578063f109208f14610c7e578063f2bb563014610c91578063fe2f50d014610ca4578063ffecf51614610cad57600080fd5b8063d919302514610bfc578063da1b436414610c0f578063e88f8e6614610c2f578063eacdc5ff14610c42578063eb44e0a314610c4b57600080fd5b8063c7b530b01161010a578063c7b530b014610b5a578063cc573a9114610b7a578063ce13d09014610bb6578063ce3432c314610bc9578063cfcf331914610be957600080fd5b8063c267660314610aac578063c32d3ae214610ab4578063c36d03fd14610ae2578063c6b61e4c14610af557600080fd5b80639cb6f556116101c9578063b6c3dc4c1161018d578063b6c3dc4c146109d0578063b92a349f146109f0578063bc0bc6ba14610a03578063bd84477d14610a23578063bed9757e14610a8b57600080fd5b80639cb6f5561461092b5780639f3a676c1461093e578063a0d467581461098a578063aaf4b04d146109aa578063ac97b417146109bd57600080fd5b80638da5cb5b116102105780638da5cb5b146108b25780638f82818f146108c55780639437e32e146108e5578063953d16bf146108f857806396fd111a1461090b57600080fd5b80638129fc1c14610864578063853e0df21461086c57806387b4b1051461087f5780638851ec0f1461089f57600080fd5b806343a32f891161035257806361d1080b116102da57806374d1c8e31161029e57806374d1c8e3146107e25780637a0c6dc0146107f55780637bc221ac146108155780637e6d99261461082857806380ca0ecf1461085157600080fd5b806361d1080b1461079457806362cd6a091461079c57806367a74ddc146107b35780636ef569a5146107c65780637065cb48146107cf57600080fd5b806351e624721161032157806351e624721461071357806351f6cf2f14610726578063549e61d31461074e5780635811622714610761578063592d1dd11461077457600080fd5b806343a32f891461064057806343c7c011146106bb578063441a4175146106ce57806348ea286d1461070057600080fd5b8063173825d9116103e05780632ded58aa116103a45780632ded58aa146105b65780632e46fed8146105bf5780633ba8396e146105e85780633c92f98d1461060b5780633f35e7221461062d57600080fd5b8063173825d9146105615780631ada70a8146105745780631aefa2d11461057d5780631eb9e53e1461059057806325d5971f146105a357600080fd5b8063092c761011610427578063092c7610146104fb5780630a84096a1461051b5780630a910a6d1461052e5780630c7d63861461053757806313baee5b1461054157600080fd5b8062159da614610458578063013745181461047e578063022914a7146104bf5780630519da32146104f2575b600080fd5b61046b6104663660046155f4565b610cc0565b6040519081526020015b60405180910390f35b6104a761048c3660046155f4565b6005602052600090815260409020546001600160a01b031681565b6040516001600160a01b039091168152602001610475565b6104e26104cd3660046155f4565b60016020526000908152604090205460ff1681565b6040519015158152602001610475565b61046b60095481565b61046b6105093660046155f4565b60076020526000908152604090205481565b61046b610529366004615616565b610d56565b61046b60135481565b61053f610e8e565b005b61046b61054f3660046155f4565b600e6020526000908152604090205481565b61053f61056f3660046155f4565b61104f565b61046b60085481565b61053f61058b366004615640565b611140565b61046b61059e3660046155f4565b611174565b61053f6105b1366004615640565b6111ab565b61046b60125481565b61046b6105cd3660046155f4565b6001600160a01b03166000908152601b602052604090205490565b6104e26105f63660046155f4565b60026020526000908152604090205460ff1681565b61061e61061936600461569d565b6113b9565b60405161047593929190615719565b61053f61063b366004615616565b6115a7565b61068c61064e366004615616565b60146020908152600092835260408084209091529082529020805460018201546002830154600390930154919290916001600160a01b039091169084565b604051610475949392919093845260208401929092526001600160a01b03166040830152606082015260800190565b61053f6106c93660046155f4565b61162e565b6106e16106dc366004615640565b6119b4565b604080516001600160a01b039093168352602083019190915201610475565b61053f61070e3660046155f4565b6119ec565b61053f610721366004615640565b611b80565b610739610734366004615616565b611bb4565b60408051928352602083019190915201610475565b61053f61075c36600461574f565b611bf0565b61053f61076f3660046157ba565b611eb9565b61046b6107823660046155f4565b60066020526000908152604090205481565b601a5461046b565b6107a46121a9565b604051610475939291906157dc565b61053f6107c13660046158a5565b6123fc565b61046b60165481565b61053f6107dd3660046155f4565b612459565b61053f6107f03660046158d8565b61252e565b6108086108033660046155f4565b612711565b6040516104759190615943565b61046b6108233660046155f4565b6127f8565b61046b6108363660046155f4565b6001600160a01b031660009081526017602052604090205490565b61046b61085f366004615616565b6129cb565b61053f612ad7565b61053f61087a366004615640565b612d0d565b61046b61088d3660046155f4565b600c6020526000908152604090205481565b61053f6108ad3660046159f1565b612da9565b6000546104a7906001600160a01b031681565b61046b6108d33660046155f4565b60Line truncated
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106104535760003560e01c80638129fc1c11610241578063c26766031161013b578063d9193025116100c3578063ef5d9ae811610087578063ef5d9ae814610c5e578063f109208f14610c7e578063f2bb563014610c91578063fe2f50d014610ca4578063ffecf51614610cad57600080fd5b8063d919302514610bfc578063da1b436414610c0f578063e88f8e6614610c2f578063eacdc5ff14610c42578063eb44e0a314610c4b57600080fd5b8063c7b530b01161010a578063c7b530b014610b5a578063cc573a9114610b7a578063ce13d09014610bb6578063ce3432c314610bc9578063cfcf331914610be957600080fd5b8063c267660314610aac578063c32d3ae214610ab4578063c36d03fd14610ae2578063c6b61e4c14610af557600080fd5b80639cb6f556116101c9578063b6c3dc4c1161018d578063b6c3dc4c146109d0578063b92a349f146109f0578063bc0bc6ba14610a03578063bd84477d14610a23578063bed9757e14610a8b57600080fd5b80639cb6f5561461092b5780639f3a676c1461093e578063a0d467581461098a578063aaf4b04d146109aa578063ac97b417146109bd57600080fd5b80638da5cb5b116102105780638da5cb5b146108b25780638f82818f146108c55780639437e32e146108e5578063953d16bf146108f857806396fd111a1461090b57600080fd5b80638129fc1c14610864578063853e0df21461086c57806387b4b1051461087f5780638851ec0f1461089f57600080fd5b806343a32f891161035257806361d1080b116102da57806374d1c8e31161029e57806374d1c8e3146107e25780637a0c6dc0146107f55780637bc221ac146108155780637e6d99261461082857806380ca0ecf1461085157600080fd5b806361d1080b1461079457806362cd6a091461079c57806367a74ddc146107b35780636ef569a5146107c65780637065cb48146107cf57600080fd5b806351e624721161032157806351e624721461071357806351f6cf2f14610726578063549e61d31461074e5780635811622714610761578063592d1dd11461077457600080fd5b806343a32f891461064057806343c7c011146106bb578063441a4175146106ce57806348ea286d1461070057600080fd5b8063173825d9116103e05780632ded58aa116103a45780632ded58aa146105b65780632e46fed8146105bf5780633ba8396e146105e85780633c92f98d1461060b5780633f35e7221461062d57600080fd5b8063173825d9146105615780631ada70a8146105745780631aefa2d11461057d5780631eb9e53e1461059057806325d5971f146105a357600080fd5b8063092c761011610427578063092c7610146104fb5780630a84096a1461051b5780630a910a6d1461052e5780630c7d63861461053757806313baee5b1461054157600080fd5b8062159da614610458578063013745181461047e578063022914a7146104bf5780630519da32146104f2575b600080fd5b61046b6104663660046155f4565b610cc0565b6040519081526020015b60405180910390f35b6104a761048c3660046155f4565b6005602052600090815260409020546001600160a01b031681565b6040516001600160a01b039091168152602001610475565b6104e26104cd3660046155f4565b60016020526000908152604090205460ff1681565b6040519015158152602001610475565b61046b60095481565b61046b6105093660046155f4565b60076020526000908152604090205481565b61046b610529366004615616565b610d56565b61046b60135481565b61053f610e8e565b005b61046b61054f3660046155f4565b600e6020526000908152604090205481565b61053f61056f3660046155f4565b61104f565b61046b60085481565b61053f61058b366004615640565b611140565b61046b61059e3660046155f4565b611174565b61053f6105b1366004615640565b6111ab565b61046b60125481565b61046b6105cd3660046155f4565b6001600160a01b03166000908152601b602052604090205490565b6104e26105f63660046155f4565b60026020526000908152604090205460ff1681565b61061e61061936600461569d565b6113b9565b60405161047593929190615719565b61053f61063b366004615616565b6115a7565b61068c61064e366004615616565b60146020908152600092835260408084209091529082529020805460018201546002830154600390930154919290916001600160a01b039091169084565b604051610475949392919093845260208401929092526001600160a01b03166040830152606082015260800190565b61053f6106c93660046155f4565b61162e565b6106e16106dc366004615640565b6119b4565b604080516001600160a01b039093168352602083019190915201610475565b61053f61070e3660046155f4565b6119ec565b61053f610721366004615640565b611b80565b610739610734366004615616565b611bb4565b60408051928352602083019190915201610475565b61053f61075c36600461574f565b611bf0565b61053f61076f3660046157ba565b611eb9565b61046b6107823660046155f4565b60066020526000908152604090205481565b601a5461046b565b6107a46121a9565b604051610475939291906157dc565b61053f6107c13660046158a5565b6123fc565b61046b60165481565b61053f6107dd3660046155f4565b612459565b61053f6107f03660046158d8565b61252e565b6108086108033660046155f4565b612711565b6040516104759190615943565b61046b6108233660046155f4565b6127f8565b61046b6108363660046155f4565b6001600160a01b031660009081526017602052604090205490565b61046b61085f366004615616565b6129cb565b61053f612ad7565b61053f61087a366004615640565b612d0d565b61046b61088d3660046155f4565b600c6020526000908152604090205481565b61053f6108ad3660046159f1565b612da9565b6000546104a7906001600160a01b031681565b61046b6108d33660046155f4565b60176020526000908152604090205481565b61053f6108f3366004615a1d565b612edc565b61053f610906366004615640565b612f23565b61091e6109193660046157ba565b61320d565b6040516104759190615a75565b61053f610939366004615640565b6133cc565b61095161094c366004615640565b613626565b6040805196875260208701959095529385019290925260608401526001600160a01b0390811660808401521660a082015260c001610475565b61099d610998366004615616565b613679565b6040516104759190615aee565b61053f6109b8366004615640Line truncated
"bytecode": "0x60806040523480156200001157600080fd5b506200001c62000022565b620000d6565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000735760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d35780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b615f6c80620000e66000396000f3fe608060405234801561001057600080fd5b50600436106104325760003560e01c80638129fc1c11610236578063c26766031161013b578063d9193025116100c3578063ef5d9ae811610087578063ef5d9ae814610c0e578063f109208f14610c2e578063f2bb563014610c41578063fe2f50d014610c54578063ffecf51614610c5d57600080fd5b8063d919302514610bac578063da1b436414610bbf578063e88f8e6614610bdf578063eacdc5ff14610bf2578063eb44e0a314610bfb57600080fd5b8063cc573a911161010a578063cc573a9114610b17578063ce13d09014610b53578063ce3432c314610b66578063cfcf331914610b86578063d532bdfe14610b9957600080fd5b8063c267660314610a5c578063c32d3ae214610a64578063c6b61e4c14610a92578063c7b530b014610af757600080fd5b80639f3a676c116101be578063b6c3dc4c1161018d578063b6c3dc4c14610980578063b92a349f146109a0578063bc0bc6ba146109b3578063bd84477d146109d3578063bed9757e14610a3b57600080fd5b80639f3a676c146108ee578063a0d467581461093a578063aaf4b04d1461095a578063ac97b4171461096d57600080fd5b80638f82818f116102055780638f82818f146108755780639437e32e14610895578063953d16bf146108a857806396fd111a146108bb5780639cb6f556146108db57600080fd5b80638129fc1c14610827578063853e0df21461082f57806387b4b105146108425780638851ec0f1461086257600080fd5b806343c7c0111161033c57806362cd6a09116102c457806374d1c8e31161029357806374d1c8e3146107a55780637a0c6dc0146107b85780637bc221ac146107d85780637e6d9926146107eb57806380ca0ecf1461081457600080fd5b806362cd6a091461075f57806367a74ddc146107765780636ef569a5146107895780637065cb481461079257600080fd5b806351f6cf2f1161030b57806351f6cf2f146106e9578063549e61d3146107115780635811622714610724578063592d1dd11461073757806361d1080b1461075757600080fd5b806343c7c0111461067e578063441a41751461069157806348ea286d146106c357806351e62472146106d657600080fd5b8063173825d9116103bf5780632e46fed81161038e5780632e46fed8146105825780633ba8396e146105ab5780633c92f98d146105ce5780633f35e722146105f057806343a32f891461060357600080fd5b8063173825d9146105405780631aefa2d1146105535780631eb9e53e146105665780632ded58aa1461057957600080fd5b8063092c761011610406578063092c7610146104da5780630a84096a146104fa5780630a910a6d1461050d5780630c7d63861461051657806313baee5b1461052057600080fd5b8062159da614610437578063013745181461045d578063022914a71461049e5780630519da32146104d1575b600080fd5b61044a610445366004615689565b610c70565b6040519081526020015b60405180910390f35b61048661046b366004615689565b6004602052600090815260409020546001600160a01b031681565b6040516001600160a01b039091168152602001610454565b6104c16104ac366004615689565b60006020819052908152604090205460ff1681565b6040519015158152602001610454565b61044a60075481565b61044a6104e8366004615689565b60066020526000908152604090205481565b61044a6105083660046156ab565b610d06565b61044a60115481565b61051e610e3e565b005b61044a61052e366004615689565b600c6020526000908152604090205481565b61051e61054e366004615689565b610fff565b61051e6105613660046156d5565b6110f0565b61044a610574366004615689565b611124565b61044a60105481565b61044a610590366004615689565b6001600160a01b031660009081526019602052604090205490565b6104c16105b9366004615689565b60016020526000908152604090205460ff1681565b6105e16105dc366004615732565b61115b565b604051610454939291906157ae565b61051e6105fe3660046156ab565b611349565b61064f6106113660046156ab565b60126020908152600092835260408084209091529082529020805460018201546002830154600390930154919290916001600160a01b039091169084565b604051610454949392919093845260208401929092526001600160a01b03166040830152606082015260800190565b61051e61068c366004615689565b6113d0565b6106a461069f3660046156d5565b611759565b604080516001600160a01b039093168352602083019190915201610454565b61051e6106d1366004615689565b611791565b61051e6106e43660046156d5565b611921565b6106fc6106f73660046156ab565b611955565b60408051928352602083019190915201610454565b61051e61071f3660046157e4565b611991565b61051e61073236600461584f565b611c5a565b61044a610745366004615689565b60056020526000908152604090205481565b60185461044a565b610767611f4a565b60405161045493929190615871565b61051e61078436600461593a565b61219d565b61044a60145481565b61051e6107a0366004615689565b6121fa565b61051e6107b336600461596d565b6122cc565b6107cb6107c6366004615689565b6124af565b60405161045491906159d8565b61044a6107e6366004615689565b612596565b61044a6107f9366004615689565b6001600160a01b031660009081526015602052604090205490565b61044a6108223660046156ab565b612779565b61051e612885565b61051e61083d3660046156d5565b612aaa565b61044a610850366004615689565b600a6020526000908152604090205481565b61051e610870366004615a86565b612b46565b61044a610883366004615689565b60156020526000908152604090205481565b61051e6108a3366004615ab2565b612c79565b61051e6108b63660046156d5565b612cc0565b6108ce6108c936600461584f565b612faa565b604051610454Line truncated
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106104325760003560e01c80638129fc1c11610236578063c26766031161013b578063d9193025116100c3578063ef5d9ae811610087578063ef5d9ae814610c0e578063f109208f14610c2e578063f2bb563014610c41578063fe2f50d014610c54578063ffecf51614610c5d57600080fd5b8063d919302514610bac578063da1b436414610bbf578063e88f8e6614610bdf578063eacdc5ff14610bf2578063eb44e0a314610bfb57600080fd5b8063cc573a911161010a578063cc573a9114610b17578063ce13d09014610b53578063ce3432c314610b66578063cfcf331914610b86578063d532bdfe14610b9957600080fd5b8063c267660314610a5c578063c32d3ae214610a64578063c6b61e4c14610a92578063c7b530b014610af757600080fd5b80639f3a676c116101be578063b6c3dc4c1161018d578063b6c3dc4c14610980578063b92a349f146109a0578063bc0bc6ba146109b3578063bd84477d146109d3578063bed9757e14610a3b57600080fd5b80639f3a676c146108ee578063a0d467581461093a578063aaf4b04d1461095a578063ac97b4171461096d57600080fd5b80638f82818f116102055780638f82818f146108755780639437e32e14610895578063953d16bf146108a857806396fd111a146108bb5780639cb6f556146108db57600080fd5b80638129fc1c14610827578063853e0df21461082f57806387b4b105146108425780638851ec0f1461086257600080fd5b806343c7c0111161033c57806362cd6a09116102c457806374d1c8e31161029357806374d1c8e3146107a55780637a0c6dc0146107b85780637bc221ac146107d85780637e6d9926146107eb57806380ca0ecf1461081457600080fd5b806362cd6a091461075f57806367a74ddc146107765780636ef569a5146107895780637065cb481461079257600080fd5b806351f6cf2f1161030b57806351f6cf2f146106e9578063549e61d3146107115780635811622714610724578063592d1dd11461073757806361d1080b1461075757600080fd5b806343c7c0111461067e578063441a41751461069157806348ea286d146106c357806351e62472146106d657600080fd5b8063173825d9116103bf5780632e46fed81161038e5780632e46fed8146105825780633ba8396e146105ab5780633c92f98d146105ce5780633f35e722146105f057806343a32f891461060357600080fd5b8063173825d9146105405780631aefa2d1146105535780631eb9e53e146105665780632ded58aa1461057957600080fd5b8063092c761011610406578063092c7610146104da5780630a84096a146104fa5780630a910a6d1461050d5780630c7d63861461051657806313baee5b1461052057600080fd5b8062159da614610437578063013745181461045d578063022914a71461049e5780630519da32146104d1575b600080fd5b61044a610445366004615689565b610c70565b6040519081526020015b60405180910390f35b61048661046b366004615689565b6004602052600090815260409020546001600160a01b031681565b6040516001600160a01b039091168152602001610454565b6104c16104ac366004615689565b60006020819052908152604090205460ff1681565b6040519015158152602001610454565b61044a60075481565b61044a6104e8366004615689565b60066020526000908152604090205481565b61044a6105083660046156ab565b610d06565b61044a60115481565b61051e610e3e565b005b61044a61052e366004615689565b600c6020526000908152604090205481565b61051e61054e366004615689565b610fff565b61051e6105613660046156d5565b6110f0565b61044a610574366004615689565b611124565b61044a60105481565b61044a610590366004615689565b6001600160a01b031660009081526019602052604090205490565b6104c16105b9366004615689565b60016020526000908152604090205460ff1681565b6105e16105dc366004615732565b61115b565b604051610454939291906157ae565b61051e6105fe3660046156ab565b611349565b61064f6106113660046156ab565b60126020908152600092835260408084209091529082529020805460018201546002830154600390930154919290916001600160a01b039091169084565b604051610454949392919093845260208401929092526001600160a01b03166040830152606082015260800190565b61051e61068c366004615689565b6113d0565b6106a461069f3660046156d5565b611759565b604080516001600160a01b039093168352602083019190915201610454565b61051e6106d1366004615689565b611791565b61051e6106e43660046156d5565b611921565b6106fc6106f73660046156ab565b611955565b60408051928352602083019190915201610454565b61051e61071f3660046157e4565b611991565b61051e61073236600461584f565b611c5a565b61044a610745366004615689565b60056020526000908152604090205481565b60185461044a565b610767611f4a565b60405161045493929190615871565b61051e61078436600461593a565b61219d565b61044a60145481565b61051e6107a0366004615689565b6121fa565b61051e6107b336600461596d565b6122cc565b6107cb6107c6366004615689565b6124af565b60405161045491906159d8565b61044a6107e6366004615689565b612596565b61044a6107f9366004615689565b6001600160a01b031660009081526015602052604090205490565b61044a6108223660046156ab565b612779565b61051e612885565b61051e61083d3660046156d5565b612aaa565b61044a610850366004615689565b600a6020526000908152604090205481565b61051e610870366004615a86565b612b46565b61044a610883366004615689565b60156020526000908152604090205481565b61051e6108a3366004615ab2565b612c79565b61051e6108b63660046156d5565b612cc0565b6108ce6108c936600461584f565b612faa565b6040516104549190615b0a565b61051e6108e93660046156d5565b613169565b6109016108fc3660046156d5565b61341c565b6040805196875260208701959095529385019290925260608401526001600160a01b0390811660808401521660a082015260c001610454565b61094d6109483660046156ab565b61346f565b6040516104549190615b83565b61051e6109683660046156d5565b6134ff565b61051e61097b3660046156d5565b613585565b61099361098e3660046156ab565b613994565b6040516104549190615bb7565b61051e6109ae366004615beb565b613ac8565b6109c6Line truncated
"linkReferences": {},
"deployedLinkReferences": {}
}
+29 -19
View File
@@ -415,33 +415,40 @@ contract CunaFinanceBsc is Initializable, ReentrancyGuardUpgradeable {
}
/// @notice Withdraw claimed funds after unlock period
function withdrawStake(uint256 stakeId) external nonReentrant {
function withdrawStake(uint256[] calldata stakeIds) external nonReentrant {
WithdrawStake[] storage userStakes = withdrawStakes[msg.sender];
require(userStakes.length > 0, "No stakes available");
require(stakeIds.length > 0, "No stake IDs provided");
for (uint256 i = 0; i < userStakes.length; i++) {
WithdrawStake storage stake = userStakes[i];
if (stake.stakeId == stakeId && stake.amount > 0) {
require(block.timestamp >= stake.unlockTime, "Stake locked");
for (uint256 j = 0; j < stakeIds.length; j++) {
uint256 stakeId = stakeIds[j];
bool found = false;
uint256 amount = stake.amount;
address token = stake.token;
stake.amount = 0; // Mark as withdrawn
for (uint256 i = 0; i < userStakes.length; i++) {
WithdrawStake storage stake = userStakes[i];
if (stake.stakeId == stakeId && stake.amount > 0) {
require(block.timestamp >= stake.unlockTime, "Stake locked");
// Decrement withdraw vesting liabilities for non-BSC tokens
if (token != BSC_TOKEN) {
withdrawVestingLiabilities[token] -= amount;
uint256 amount = stake.amount;
address token = stake.token;
stake.amount = 0; // Mark as withdrawn
// Decrement withdraw vesting liabilities for non-BSC tokens
if (token != BSC_TOKEN) {
withdrawVestingLiabilities[token] -= amount;
}
// Transfer tokens to user based on the specified token
IERC20(token).safeTransfer(msg.sender, amount);
emit StakeWithdrawn(msg.sender, amount, stakeId);
found = true;
break;
}
// Transfer tokens to user based on the specified token
IERC20(token).safeTransfer(msg.sender, amount);
emit StakeWithdrawn(msg.sender, amount, stakeId);
return;
}
}
revert("Stake not found");
require(found, "Stake not found");
}
}
/// @notice Instantly buy out a portion of user's stake at configured percentage
@@ -454,6 +461,9 @@ contract CunaFinanceBsc is Initializable, ReentrancyGuardUpgradeable {
uint256 netStake = getNetStake(msg.sender);
require(amount <= netStake, "Insufficient net stake");
// Require minimum 25% of user's net stake
require(amount >= (netStake * 2500) / 10000, "Amount too low");
uint256 payoutAmount = (amount * instantBuyoutPercent) / 10000;
// Deduct amount from user's big stake