Files
cuna/.openzeppelin/bsc.json
sascha 8a802718d3 Initial commit: CunaFinanceBsc smart contract
- Add upgradeable smart contract with vesting and staking functionality
- Include comprehensive deployment script for proxy deployments and upgrades
- Configure Hardhat with BSC testnet and verification support
- Successfully deployed to BSC testnet at 0x12d705781764b7750d5622727EdA2392b512Ca3d

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-10 02:15:20 +02:00

660 lines
21 KiB
JSON

{
"manifestVersion": "3.2",
"proxies": [
{
"address": "0x12d705781764b7750d5622727EdA2392b512Ca3d",
"txHash": "0xfa4bb899546016e2bf5bb27f3e6b84b4c20faf4d7792f92a1b32769e63ea0c63",
"kind": "transparent"
}
],
"impls": {
"1b5a0f3b99fd4bb40904c7e799e571bda71840799383e6cfb18dbbc5e45af82d": {
"address": "0x37c3D81787ff96a5aA3186183a773De2a3902210",
"txHash": "0xec36c251f5c84be622c7077536e84fe4d41033ed57b1c6efc38d9aeb8b47d93d",
"layout": {
"solcVersion": "0.8.20",
"storage": [
{
"label": "owner",
"offset": 0,
"slot": "0",
"type": "t_address",
"contract": "CunaFinanceBsc",
"src": "contracts/CunaFinanceBsc.sol:82"
},
{
"label": "owners",
"offset": 0,
"slot": "1",
"type": "t_mapping(t_address,t_bool)",
"contract": "CunaFinanceBsc",
"src": "contracts/CunaFinanceBsc.sol:83"
},
{
"label": "authorizedBots",
"offset": 0,
"slot": "2",
"type": "t_mapping(t_address,t_bool)",
"contract": "CunaFinanceBsc",
"src": "contracts/CunaFinanceBsc.sol:84"
},
{
"label": "vestings",
"offset": 0,
"slot": "3",
"type": "t_mapping(t_address,t_array(t_struct(Vesting)1827_storage)dyn_storage)",
"contract": "CunaFinanceBsc",
"src": "contracts/CunaFinanceBsc.sol:85"
},
{
"label": "unlockSchedules",
"offset": 0,
"slot": "4",
"type": "t_mapping(t_address,t_array(t_struct(UnlockStep)1832_storage)dyn_storage)",
"contract": "CunaFinanceBsc",
"src": "contracts/CunaFinanceBsc.sol:86"
},
{
"label": "priceOracles",
"offset": 0,
"slot": "5",
"type": "t_mapping(t_address,t_address)",
"contract": "CunaFinanceBsc",
"src": "contracts/CunaFinanceBsc.sol:87"
},
{
"label": "dollarsVested",
"offset": 0,
"slot": "6",
"type": "t_mapping(t_address,t_uint256)",
"contract": "CunaFinanceBsc",
"src": "contracts/CunaFinanceBsc.sol:88"
},
{
"label": "vestedTotal",
"offset": 0,
"slot": "7",
"type": "t_mapping(t_address,t_uint256)",
"contract": "CunaFinanceBsc",
"src": "contracts/CunaFinanceBsc.sol:89"
},
{
"label": "lockupDuration",
"offset": 0,
"slot": "8",
"type": "t_uint256",
"contract": "CunaFinanceBsc",
"src": "contracts/CunaFinanceBsc.sol:90"
},
{
"label": "unlockDelay",
"offset": 0,
"slot": "9",
"type": "t_uint256",
"contract": "CunaFinanceBsc",
"src": "contracts/CunaFinanceBsc.sol:91"
},
{
"label": "withdrawVestingActual",
"offset": 0,
"slot": "10",
"type": "t_mapping(t_address,t_array(t_struct(WithdrawVesting)1841_storage)dyn_storage)",
"contract": "CunaFinanceBsc",
"src": "contracts/CunaFinanceBsc.sol:97"
},
{
"label": "withdrawVestingCounterActual",
"offset": 0,
"slot": "11",
"type": "t_uint256",
"contract": "CunaFinanceBsc",
"src": "contracts/CunaFinanceBsc.sol:98"
},
{
"label": "stakeIdCounter",
"offset": 0,
"slot": "12",
"type": "t_uint256",
"contract": "CunaFinanceBsc",
"src": "contracts/CunaFinanceBsc.sol:99"
},
{
"label": "withdrawVestingLiabilities",
"offset": 0,
"slot": "13",
"type": "t_mapping(t_address,t_uint256)",
"contract": "CunaFinanceBsc",
"src": "contracts/CunaFinanceBsc.sol:102"
},
{
"label": "epochs",
"offset": 0,
"slot": "14",
"type": "t_mapping(t_uint256,t_struct(Epoch)1852_storage)",
"contract": "CunaFinanceBsc",
"src": "contracts/CunaFinanceBsc.sol:105"
},
{
"label": "userBigStake",
"offset": 0,
"slot": "15",
"type": "t_mapping(t_address,t_uint256)",
"contract": "CunaFinanceBsc",
"src": "contracts/CunaFinanceBsc.sol:106"
},
{
"label": "userLastClaimedEpoch",
"offset": 0,
"slot": "16",
"type": "t_mapping(t_address,t_uint256)",
"contract": "CunaFinanceBsc",
"src": "contracts/CunaFinanceBsc.sol:107"
},
{
"label": "withdrawStakes",
"offset": 0,
"slot": "17",
"type": "t_mapping(t_address,t_array(t_struct(WithdrawStake)1859_storage)dyn_storage)",
"contract": "CunaFinanceBsc",
"src": "contracts/CunaFinanceBsc.sol:108"
},
{
"label": "currentEpochId",
"offset": 0,
"slot": "18",
"type": "t_uint256",
"contract": "CunaFinanceBsc",
"src": "contracts/CunaFinanceBsc.sol:109"
},
{
"label": "totalBigStakes",
"offset": 0,
"slot": "19",
"type": "t_uint256",
"contract": "CunaFinanceBsc",
"src": "contracts/CunaFinanceBsc.sol:110"
},
{
"label": "instantBuyoutPercent",
"offset": 0,
"slot": "20",
"type": "t_uint256",
"contract": "CunaFinanceBsc",
"src": "contracts/CunaFinanceBsc.sol:111"
},
{
"label": "sellStakes",
"offset": 0,
"slot": "21",
"type": "t_mapping(t_address,t_mapping(t_uint256,t_struct(SellStake)1868_storage))",
"contract": "CunaFinanceBsc",
"src": "contracts/CunaFinanceBsc.sol:114"
},
{
"label": "marketplaceMin",
"offset": 0,
"slot": "22",
"type": "t_uint256",
"contract": "CunaFinanceBsc",
"src": "contracts/CunaFinanceBsc.sol:115"
},
{
"label": "cancellationFee",
"offset": 0,
"slot": "23",
"type": "t_uint256",
"contract": "CunaFinanceBsc",
"src": "contracts/CunaFinanceBsc.sol:116"
},
{
"label": "marketplace_sales",
"offset": 0,
"slot": "24",
"type": "t_mapping(t_address,t_uint256)",
"contract": "CunaFinanceBsc",
"src": "contracts/CunaFinanceBsc.sol:117"
},
{
"label": "sellStakeKeys",
"offset": 0,
"slot": "25",
"type": "t_array(t_struct(SellStakeKey)1873_storage)dyn_storage",
"contract": "CunaFinanceBsc",
"src": "contracts/CunaFinanceBsc.sol:118"
},
{
"label": "sellStakeKeyIndex",
"offset": 0,
"slot": "26",
"type": "t_mapping(t_address,t_mapping(t_uint256,t_uint256))",
"contract": "CunaFinanceBsc",
"src": "contracts/CunaFinanceBsc.sol:119"
},
{
"label": "marketplaceHistory",
"offset": 0,
"slot": "27",
"type": "t_array(t_struct(MarketplaceHistory)1886_storage)dyn_storage",
"contract": "CunaFinanceBsc",
"src": "contracts/CunaFinanceBsc.sol:120"
}
],
"types": {
"t_bool": {
"label": "bool",
"numberOfBytes": "1"
},
"t_struct(InitializableStorage)7_storage": {
"label": "struct Initializable.InitializableStorage",
"members": [
{
"label": "_initialized",
"type": "t_uint64",
"offset": 0,
"slot": "0"
},
{
"label": "_initializing",
"type": "t_bool",
"offset": 8,
"slot": "0"
}
],
"numberOfBytes": "32"
},
"t_struct(ReentrancyGuardStorage)69_storage": {
"label": "struct ReentrancyGuardUpgradeable.ReentrancyGuardStorage",
"members": [
{
"label": "_status",
"type": "t_uint256",
"offset": 0,
"slot": "0"
}
],
"numberOfBytes": "32"
},
"t_uint256": {
"label": "uint256",
"numberOfBytes": "32"
},
"t_uint64": {
"label": "uint64",
"numberOfBytes": "8"
},
"t_address": {
"label": "address",
"numberOfBytes": "20"
},
"t_array(t_struct(MarketplaceHistory)1886_storage)dyn_storage": {
"label": "struct CunaFinanceBsc.MarketplaceHistory[]",
"numberOfBytes": "32"
},
"t_array(t_struct(SellStakeKey)1873_storage)dyn_storage": {
"label": "struct CunaFinanceBsc.SellStakeKey[]",
"numberOfBytes": "32"
},
"t_array(t_struct(UnlockStep)1832_storage)dyn_storage": {
"label": "struct CunaFinanceBsc.UnlockStep[]",
"numberOfBytes": "32"
},
"t_array(t_struct(Vesting)1827_storage)dyn_storage": {
"label": "struct CunaFinanceBsc.Vesting[]",
"numberOfBytes": "32"
},
"t_array(t_struct(WithdrawStake)1859_storage)dyn_storage": {
"label": "struct CunaFinanceBsc.WithdrawStake[]",
"numberOfBytes": "32"
},
"t_array(t_struct(WithdrawVesting)1841_storage)dyn_storage": {
"label": "struct CunaFinanceBsc.WithdrawVesting[]",
"numberOfBytes": "32"
},
"t_mapping(t_address,t_address)": {
"label": "mapping(address => address)",
"numberOfBytes": "32"
},
"t_mapping(t_address,t_array(t_struct(UnlockStep)1832_storage)dyn_storage)": {
"label": "mapping(address => struct CunaFinanceBsc.UnlockStep[])",
"numberOfBytes": "32"
},
"t_mapping(t_address,t_array(t_struct(Vesting)1827_storage)dyn_storage)": {
"label": "mapping(address => struct CunaFinanceBsc.Vesting[])",
"numberOfBytes": "32"
},
"t_mapping(t_address,t_array(t_struct(WithdrawStake)1859_storage)dyn_storage)": {
"label": "mapping(address => struct CunaFinanceBsc.WithdrawStake[])",
"numberOfBytes": "32"
},
"t_mapping(t_address,t_array(t_struct(WithdrawVesting)1841_storage)dyn_storage)": {
"label": "mapping(address => struct CunaFinanceBsc.WithdrawVesting[])",
"numberOfBytes": "32"
},
"t_mapping(t_address,t_bool)": {
"label": "mapping(address => bool)",
"numberOfBytes": "32"
},
"t_mapping(t_address,t_mapping(t_uint256,t_struct(SellStake)1868_storage))": {
"label": "mapping(address => mapping(uint256 => struct CunaFinanceBsc.SellStake))",
"numberOfBytes": "32"
},
"t_mapping(t_address,t_mapping(t_uint256,t_uint256))": {
"label": "mapping(address => mapping(uint256 => uint256))",
"numberOfBytes": "32"
},
"t_mapping(t_address,t_uint256)": {
"label": "mapping(address => uint256)",
"numberOfBytes": "32"
},
"t_mapping(t_uint256,t_struct(Epoch)1852_storage)": {
"label": "mapping(uint256 => struct CunaFinanceBsc.Epoch)",
"numberOfBytes": "32"
},
"t_mapping(t_uint256,t_struct(SellStake)1868_storage)": {
"label": "mapping(uint256 => struct CunaFinanceBsc.SellStake)",
"numberOfBytes": "32"
},
"t_mapping(t_uint256,t_uint256)": {
"label": "mapping(uint256 => uint256)",
"numberOfBytes": "32"
},
"t_struct(Epoch)1852_storage": {
"label": "struct CunaFinanceBsc.Epoch",
"members": [
{
"label": "estDaysRemaining",
"type": "t_uint256",
"offset": 0,
"slot": "0"
},
{
"label": "currentTreasuryTvl",
"type": "t_uint256",
"offset": 0,
"slot": "1"
},
{
"label": "totalLiability",
"type": "t_uint256",
"offset": 0,
"slot": "2"
},
{
"label": "unlockPercentage",
"type": "t_uint256",
"offset": 0,
"slot": "3"
},
{
"label": "timestamp",
"type": "t_uint256",
"offset": 0,
"slot": "4"
}
],
"numberOfBytes": "160"
},
"t_struct(MarketplaceHistory)1886_storage": {
"label": "struct CunaFinanceBsc.MarketplaceHistory",
"members": [
{
"label": "listTime",
"type": "t_uint256",
"offset": 0,
"slot": "0"
},
{
"label": "saleTime",
"type": "t_uint256",
"offset": 0,
"slot": "1"
},
{
"label": "origValue",
"type": "t_uint256",
"offset": 0,
"slot": "2"
},
{
"label": "saleValue",
"type": "t_uint256",
"offset": 0,
"slot": "3"
},
{
"label": "seller",
"type": "t_address",
"offset": 0,
"slot": "4"
},
{
"label": "buyer",
"type": "t_address",
"offset": 0,
"slot": "5"
}
],
"numberOfBytes": "192"
},
"t_struct(SellStake)1868_storage": {
"label": "struct CunaFinanceBsc.SellStake",
"members": [
{
"label": "value",
"type": "t_uint256",
"offset": 0,
"slot": "0"
},
{
"label": "salePrice",
"type": "t_uint256",
"offset": 0,
"slot": "1"
},
{
"label": "seller",
"type": "t_address",
"offset": 0,
"slot": "2"
},
{
"label": "listTime",
"type": "t_uint256",
"offset": 0,
"slot": "3"
}
],
"numberOfBytes": "128"
},
"t_struct(SellStakeKey)1873_storage": {
"label": "struct CunaFinanceBsc.SellStakeKey",
"members": [
{
"label": "seller",
"type": "t_address",
"offset": 0,
"slot": "0"
},
{
"label": "stakeId",
"type": "t_uint256",
"offset": 0,
"slot": "1"
}
],
"numberOfBytes": "64"
},
"t_struct(UnlockStep)1832_storage": {
"label": "struct CunaFinanceBsc.UnlockStep",
"members": [
{
"label": "timeOffset",
"type": "t_uint256",
"offset": 0,
"slot": "0"
},
{
"label": "percentage",
"type": "t_uint256",
"offset": 0,
"slot": "1"
}
],
"numberOfBytes": "64"
},
"t_struct(Vesting)1827_storage": {
"label": "struct CunaFinanceBsc.Vesting",
"members": [
{
"label": "amount",
"type": "t_uint256",
"offset": 0,
"slot": "0"
},
{
"label": "bonus",
"type": "t_uint256",
"offset": 0,
"slot": "1"
},
{
"label": "lockedUntil",
"type": "t_uint256",
"offset": 0,
"slot": "2"
},
{
"label": "claimedAmount",
"type": "t_uint256",
"offset": 0,
"slot": "3"
},
{
"label": "claimedBonus",
"type": "t_uint256",
"offset": 0,
"slot": "4"
},
{
"label": "lastClaimed",
"type": "t_uint256",
"offset": 0,
"slot": "5"
},
{
"label": "createdAt",
"type": "t_uint256",
"offset": 0,
"slot": "6"
},
{
"label": "token",
"type": "t_address",
"offset": 0,
"slot": "7"
},
{
"label": "complete",
"type": "t_bool",
"offset": 20,
"slot": "7"
},
{
"label": "usdAmount",
"type": "t_uint256",
"offset": 0,
"slot": "8"
}
],
"numberOfBytes": "288"
},
"t_struct(WithdrawStake)1859_storage": {
"label": "struct CunaFinanceBsc.WithdrawStake",
"members": [
{
"label": "stakeId",
"type": "t_uint256",
"offset": 0,
"slot": "0"
},
{
"label": "amount",
"type": "t_uint256",
"offset": 0,
"slot": "1"
},
{
"label": "unlockTime",
"type": "t_uint256",
"offset": 0,
"slot": "2"
}
],
"numberOfBytes": "96"
},
"t_struct(WithdrawVesting)1841_storage": {
"label": "struct CunaFinanceBsc.WithdrawVesting",
"members": [
{
"label": "vestingId",
"type": "t_uint256",
"offset": 0,
"slot": "0"
},
{
"label": "amount",
"type": "t_uint256",
"offset": 0,
"slot": "1"
},
{
"label": "unlockTime",
"type": "t_uint256",
"offset": 0,
"slot": "2"
},
{
"label": "token",
"type": "t_address",
"offset": 0,
"slot": "3"
}
],
"numberOfBytes": "128"
}
},
"namespaces": {
"erc7201:openzeppelin.storage.ReentrancyGuard": [
{
"contract": "ReentrancyGuardUpgradeable",
"label": "_status",
"type": "t_uint256",
"src": "@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.sol:43",
"offset": 0,
"slot": "0"
}
],
"erc7201:openzeppelin.storage.Initializable": [
{
"contract": "Initializable",
"label": "_initialized",
"type": "t_uint64",
"src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:69",
"offset": 0,
"slot": "0"
},
{
"contract": "Initializable",
"label": "_initializing",
"type": "t_bool",
"src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:73",
"offset": 8,
"slot": "0"
}
]
}
}
}
}
}