create-dubhe 1.2.0-pre.99 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +1 -1
- package/dist/cli.js.map +1 -1
- package/package.json +16 -16
- package/templates/101/sui-template/docker-compose.testnet.yml +73 -0
- package/templates/101/sui-template/packages/client/src/app/page.tsx +545 -41
- package/templates/101/sui-template/packages/client/src/app/providers.tsx +12 -4
- package/templates/101/sui-template/packages/contracts/Pub.localnet.toml +4 -4
- package/templates/101/sui-template/packages/contracts/counter.lock.json +20 -0
- package/templates/101/sui-template/packages/contracts/deployment.ts +8 -3
- package/templates/101/sui-template/packages/contracts/dubhe.config.json +59 -13
- package/templates/101/sui-template/packages/contracts/dubhe.config.ts +1 -4
- package/templates/101/sui-template/packages/contracts/metadata.json +1015 -68
- package/templates/101/sui-template/packages/contracts/package.json +7 -4
- package/templates/101/sui-template/packages/contracts/src/counter/sources/codegen/dapp_key.move +45 -31
- package/templates/101/sui-template/packages/contracts/src/counter/sources/codegen/error.move +8 -0
- package/templates/101/sui-template/packages/contracts/src/counter/sources/codegen/genesis.move +30 -13
- package/templates/101/sui-template/packages/contracts/src/counter/sources/codegen/init_test.move +19 -14
- package/templates/101/sui-template/packages/contracts/src/counter/sources/codegen/resources/counter2.move +198 -0
- package/templates/101/sui-template/packages/contracts/src/counter/sources/codegen/resources/counter2withkey.move +90 -0
- package/templates/101/sui-template/packages/contracts/src/counter/sources/codegen/resources/value.move +30 -20
- package/templates/101/sui-template/packages/contracts/src/counter/sources/codegen/user_storage_init.move +26 -0
- package/templates/101/sui-template/packages/contracts/src/counter/sources/scripts/deploy_hook.move +6 -11
- package/templates/101/sui-template/packages/contracts/src/counter/sources/systems/counter.move +23 -11
- package/templates/101/sui-template/packages/contracts/src/counter/sources/tests/counter.move +15 -14
- package/templates/101/sui-template/packages/contracts/src/dubhe/Move.lock +33 -30
- package/templates/101/sui-template/packages/contracts/src/dubhe/Move.toml +4 -3
- package/templates/101/sui-template/packages/contracts/src/dubhe/sources/codegen/dapp_key.move +45 -31
- package/templates/101/sui-template/packages/contracts/src/dubhe/sources/codegen/error.move +170 -0
- package/templates/101/sui-template/packages/contracts/src/dubhe/sources/codegen/genesis.move +16 -13
- package/templates/101/sui-template/packages/contracts/src/dubhe/sources/codegen/init_test.move +8 -14
- package/templates/101/sui-template/packages/contracts/src/dubhe/sources/core/account_key.move +1 -3
- package/templates/101/sui-template/packages/contracts/src/dubhe/sources/core/dapp_service.move +1776 -137
- package/templates/101/sui-template/packages/contracts/src/dubhe/sources/core/data_key.move +1 -20
- package/templates/101/sui-template/packages/contracts/src/dubhe/sources/core/events.move +864 -25
- package/templates/101/sui-template/packages/contracts/src/dubhe/sources/scripts/deploy_hook.move +15 -16
- package/templates/101/sui-template/packages/contracts/src/dubhe/sources/scripts/migrate.move +0 -3
- package/templates/101/sui-template/packages/contracts/src/dubhe/sources/systems/address_system.move +25 -17
- package/templates/101/sui-template/packages/contracts/src/dubhe/sources/systems/dapp_system.move +2802 -343
- package/templates/101/sui-template/packages/contracts/src/dubhe/sources/systems/utils.move +1 -1
- package/templates/101/sui-template/packages/contracts/src/dubhe/sources/tests/address.move +173 -55
- package/templates/101/sui-template/packages/contracts/src/dubhe/sources/tests/dapp_test.move +769 -0
- package/templates/101/sui-template/packages/contracts/src/dubhe/sources/tests/fee_test.move +2965 -0
- package/templates/101/sui-template/packages/contracts/src/dubhe/sources/tests/integration_test.move +303 -0
- package/templates/101/sui-template/packages/contracts/src/dubhe/sources/tests/listing_test.move +1422 -0
- package/templates/101/sui-template/packages/contracts/src/dubhe/sources/tests/scene_session_test.move +269 -0
- package/templates/101/sui-template/packages/contracts/src/dubhe/sources/tests/session_test.move +624 -0
- package/templates/101/sui-template/packages/contracts/src/dubhe/sources/tests/storage_test.move +700 -0
- package/templates/101/sui-template/packages/contracts/src/dubhe/sources/tests/typed_object_test.move +177 -0
- package/templates/101/sui-template/packages/contracts/src/dubhe/sources/tests/typed_scene_test.move +452 -0
- package/templates/101/sui-template/packages/contracts/src/dubhe/sources/tests/user_storage_test.move +160 -0
- package/templates/101/sui-template/packages/contracts/src/dubhe/sources/utils/math.move +4 -3
- package/templates/101/sui-template/packages/contracts/src/dubhe/sources/utils/type_info.move +2 -2
- package/templates/contract/sui-template/dubhe.config.ts +0 -1
- package/templates/contract/sui-template/package.json +3 -3
- package/templates/contract/sui-template/src/dubhe/Move.lock +33 -30
- package/templates/contract/sui-template/src/dubhe/Move.toml +4 -3
- package/templates/contract/sui-template/src/dubhe/sources/codegen/dapp_key.move +45 -31
- package/templates/contract/sui-template/src/dubhe/sources/codegen/error.move +170 -0
- package/templates/contract/sui-template/src/dubhe/sources/codegen/genesis.move +16 -13
- package/templates/contract/sui-template/src/dubhe/sources/codegen/init_test.move +8 -14
- package/templates/contract/sui-template/src/dubhe/sources/core/account_key.move +1 -3
- package/templates/contract/sui-template/src/dubhe/sources/core/dapp_service.move +1776 -137
- package/templates/contract/sui-template/src/dubhe/sources/core/data_key.move +1 -20
- package/templates/contract/sui-template/src/dubhe/sources/core/events.move +864 -25
- package/templates/contract/sui-template/src/dubhe/sources/scripts/deploy_hook.move +15 -16
- package/templates/contract/sui-template/src/dubhe/sources/scripts/migrate.move +0 -3
- package/templates/contract/sui-template/src/dubhe/sources/systems/address_system.move +25 -17
- package/templates/contract/sui-template/src/dubhe/sources/systems/dapp_system.move +2802 -343
- package/templates/contract/sui-template/src/dubhe/sources/systems/utils.move +1 -1
- package/templates/contract/sui-template/src/dubhe/sources/tests/address.move +173 -55
- package/templates/contract/sui-template/src/dubhe/sources/tests/dapp_test.move +769 -0
- package/templates/contract/sui-template/src/dubhe/sources/tests/fee_test.move +2965 -0
- package/templates/contract/sui-template/src/dubhe/sources/tests/integration_test.move +303 -0
- package/templates/contract/sui-template/src/dubhe/sources/tests/listing_test.move +1422 -0
- package/templates/contract/sui-template/src/dubhe/sources/tests/scene_session_test.move +269 -0
- package/templates/contract/sui-template/src/dubhe/sources/tests/session_test.move +624 -0
- package/templates/contract/sui-template/src/dubhe/sources/tests/storage_test.move +700 -0
- package/templates/contract/sui-template/src/dubhe/sources/tests/typed_object_test.move +177 -0
- package/templates/contract/sui-template/src/dubhe/sources/tests/typed_scene_test.move +452 -0
- package/templates/contract/sui-template/src/dubhe/sources/tests/user_storage_test.move +160 -0
- package/templates/contract/sui-template/src/dubhe/sources/utils/math.move +4 -3
- package/templates/contract/sui-template/src/dubhe/sources/utils/type_info.move +2 -2
- package/templates/contract/sui-template/src/template/Move.toml +12 -0
- package/templates/contract/sui-template/src/template/sources/codegen/dapp_key.move +47 -0
- package/templates/contract/sui-template/src/template/sources/codegen/genesis.move +34 -0
- package/templates/contract/sui-template/src/template/sources/codegen/init_test.move +23 -0
- package/templates/contract/sui-template/src/template/sources/codegen/user_storage_init.move +27 -0
- package/templates/contract/sui-template/src/template/sources/scripts/deploy_hook.move +13 -0
- package/templates/contract/sui-template/src/template/sources/scripts/migrate.move +7 -0
- package/templates/nextjs/sui-card-duel/.gitignore_ +51 -0
- package/templates/nextjs/sui-card-duel/README.md +213 -0
- package/templates/nextjs/sui-card-duel/docker-compose.yml +34 -0
- package/templates/nextjs/sui-card-duel/mprocs.yaml +17 -0
- package/templates/nextjs/sui-card-duel/package.json +43 -0
- package/templates/nextjs/sui-card-duel/packages/client/.gitignore_ +48 -0
- package/templates/nextjs/sui-card-duel/packages/client/.prettierignore +1 -0
- package/templates/nextjs/sui-card-duel/packages/client/.prettierrc.json +8 -0
- package/templates/nextjs/sui-card-duel/packages/client/eslint.config.mjs +22 -0
- package/templates/nextjs/sui-card-duel/packages/client/next.config.mjs +8 -0
- package/templates/nextjs/sui-card-duel/packages/client/package.json +47 -0
- package/templates/nextjs/sui-card-duel/packages/client/postcss.config.mjs +8 -0
- package/templates/nextjs/sui-card-duel/packages/client/src/app/admin/ArenaPanel.tsx +307 -0
- package/templates/nextjs/sui-card-duel/packages/client/src/app/admin/page.tsx +622 -0
- package/templates/nextjs/sui-card-duel/packages/client/src/app/brawl/[id]/page.tsx +559 -0
- package/templates/nextjs/sui-card-duel/packages/client/src/app/collection/page.tsx +202 -0
- package/templates/nextjs/sui-card-duel/packages/client/src/app/components/CardView.tsx +66 -0
- package/templates/nextjs/sui-card-duel/packages/client/src/app/components/GameShell.tsx +294 -0
- package/templates/nextjs/sui-card-duel/packages/client/src/app/components/icons.tsx +101 -0
- package/templates/nextjs/sui-card-duel/packages/client/src/app/duel/[id]/page.tsx +477 -0
- package/templates/nextjs/sui-card-duel/packages/client/src/app/favicon.ico +0 -0
- package/templates/nextjs/sui-card-duel/packages/client/src/app/globals.css +85 -0
- package/templates/nextjs/sui-card-duel/packages/client/src/app/hooks/useGame.ts +313 -0
- package/templates/nextjs/sui-card-duel/packages/client/src/app/layout.tsx +24 -0
- package/templates/nextjs/sui-card-duel/packages/client/src/app/leaderboard/page.tsx +123 -0
- package/templates/nextjs/sui-card-duel/packages/client/src/app/lib/game.ts +77 -0
- package/templates/nextjs/sui-card-duel/packages/client/src/app/lib/scenes.ts +226 -0
- package/templates/nextjs/sui-card-duel/packages/client/src/app/market/page.tsx +418 -0
- package/templates/nextjs/sui-card-duel/packages/client/src/app/page.tsx +427 -0
- package/templates/nextjs/sui-card-duel/packages/client/src/app/providers.tsx +69 -0
- package/templates/nextjs/sui-card-duel/packages/client/tailwind.config.ts +21 -0
- package/templates/nextjs/sui-card-duel/packages/client/tsconfig.json +30 -0
- package/templates/nextjs/sui-card-duel/packages/contracts/.gitignore_ +51 -0
- package/templates/nextjs/sui-card-duel/packages/contracts/.prettierignore +1 -0
- package/templates/nextjs/sui-card-duel/packages/contracts/.prettierrc.json +8 -0
- package/templates/nextjs/sui-card-duel/packages/contracts/Dockerfile +5 -0
- package/templates/nextjs/sui-card-duel/packages/contracts/Pub.localnet.toml +13 -0
- package/templates/nextjs/sui-card-duel/packages/contracts/card_duel.lock.json +66 -0
- package/templates/nextjs/sui-card-duel/packages/contracts/docker-compose.yml +34 -0
- package/templates/nextjs/sui-card-duel/packages/contracts/dubhe.config.ts +150 -0
- package/templates/nextjs/sui-card-duel/packages/contracts/logs/combined.log +31383 -0
- package/templates/nextjs/sui-card-duel/packages/contracts/package.json +49 -0
- package/templates/nextjs/sui-card-duel/packages/contracts/scripts/config.ts +17 -0
- package/templates/nextjs/sui-card-duel/packages/contracts/scripts/e2e-brawl.ts +270 -0
- package/templates/nextjs/sui-card-duel/packages/contracts/scripts/e2e-duel.ts +272 -0
- package/templates/nextjs/sui-card-duel/packages/contracts/scripts/e2e-lobby.ts +177 -0
- package/templates/nextjs/sui-card-duel/packages/contracts/scripts/e2e-market.ts +219 -0
- package/templates/nextjs/sui-card-duel/packages/contracts/scripts/e2e-session.ts +342 -0
- package/templates/nextjs/sui-card-duel/packages/contracts/scripts/query-dapp-revenue.ts +95 -0
- package/templates/nextjs/sui-card-duel/packages/contracts/scripts/seed.ts +92 -0
- package/templates/nextjs/sui-card-duel/packages/contracts/scripts/withdraw-dapp-revenue.ts +56 -0
- package/templates/nextjs/sui-card-duel/packages/contracts/src/card_duel/Move.toml +15 -0
- package/templates/nextjs/sui-card-duel/packages/contracts/src/card_duel/sources/codegen/dapp_key.move +46 -0
- package/templates/nextjs/sui-card-duel/packages/contracts/src/card_duel/sources/codegen/enums/card_kind.move +47 -0
- package/templates/nextjs/sui-card-duel/packages/contracts/src/card_duel/sources/codegen/enums/match_state.move +37 -0
- package/templates/nextjs/sui-card-duel/packages/contracts/src/card_duel/sources/codegen/enums/rarity.move +37 -0
- package/templates/nextjs/sui-card-duel/packages/contracts/src/card_duel/sources/codegen/error.move +126 -0
- package/templates/nextjs/sui-card-duel/packages/contracts/src/card_duel/sources/codegen/genesis.move +33 -0
- package/templates/nextjs/sui-card-duel/packages/contracts/src/card_duel/sources/codegen/init_test.move +23 -0
- package/templates/nextjs/sui-card-duel/packages/contracts/src/card_duel/sources/codegen/objects/arena.move +137 -0
- package/templates/nextjs/sui-card-duel/packages/contracts/src/card_duel/sources/codegen/permits/brawl_permit.move +125 -0
- package/templates/nextjs/sui-card-duel/packages/contracts/src/card_duel/sources/codegen/permits/duel_permit.move +125 -0
- package/templates/nextjs/sui-card-duel/packages/contracts/src/card_duel/sources/codegen/resources/battle_state.move +255 -0
- package/templates/nextjs/sui-card-duel/packages/contracts/src/card_duel/sources/codegen/resources/card.move +282 -0
- package/templates/nextjs/sui-card-duel/packages/contracts/src/card_duel/sources/codegen/resources/deck.move +64 -0
- package/templates/nextjs/sui-card-duel/packages/contracts/src/card_duel/sources/codegen/resources/game_config.move +267 -0
- package/templates/nextjs/sui-card-duel/packages/contracts/src/card_duel/sources/codegen/resources/gold.move +205 -0
- package/templates/nextjs/sui-card-duel/packages/contracts/src/card_duel/sources/codegen/resources/profile.move +255 -0
- package/templates/nextjs/sui-card-duel/packages/contracts/src/card_duel/sources/codegen/scenes/brawl.move +313 -0
- package/templates/nextjs/sui-card-duel/packages/contracts/src/card_duel/sources/codegen/scenes/duel.move +313 -0
- package/templates/nextjs/sui-card-duel/packages/contracts/src/card_duel/sources/codegen/user_storage_init.move +26 -0
- package/templates/nextjs/sui-card-duel/packages/contracts/src/card_duel/sources/scripts/deploy_hook.move +32 -0
- package/templates/nextjs/sui-card-duel/packages/contracts/src/card_duel/sources/scripts/migrate.move +7 -0
- package/templates/nextjs/sui-card-duel/packages/contracts/src/card_duel/sources/systems/arena_system.move +57 -0
- package/templates/nextjs/sui-card-duel/packages/contracts/src/card_duel/sources/systems/brawl_system.move +559 -0
- package/templates/nextjs/sui-card-duel/packages/contracts/src/card_duel/sources/systems/card_system.move +146 -0
- package/templates/nextjs/sui-card-duel/packages/contracts/src/card_duel/sources/systems/duel_system.move +515 -0
- package/templates/nextjs/sui-card-duel/packages/contracts/src/card_duel/sources/systems/market_system.move +115 -0
- package/templates/nextjs/sui-card-duel/packages/contracts/src/card_duel/sources/systems/player_system.move +37 -0
- package/templates/nextjs/sui-card-duel/packages/contracts/src/card_duel/sources/tests/brawl_tests.move +385 -0
- package/templates/nextjs/sui-card-duel/packages/contracts/src/card_duel/sources/tests/duel_tests.move +656 -0
- package/templates/nextjs/sui-card-duel/packages/contracts/src/card_duel/sources/tests/test_helpers.move +31 -0
- package/templates/nextjs/sui-card-duel/packages/contracts/sui-indexer-schema.graphql +5973 -0
- package/templates/nextjs/sui-card-duel/pnpm-workspace.yaml +2 -0
- package/templates/nextjs/sui-farm/.gitignore_ +51 -0
- package/templates/nextjs/sui-farm/README.md +15 -0
- package/templates/nextjs/sui-farm/UPGRADE_NOTES.md +97 -0
- package/templates/nextjs/sui-farm/docker-compose.yml +34 -0
- package/templates/nextjs/sui-farm/mprocs.yaml +17 -0
- package/templates/nextjs/sui-farm/package.json +43 -0
- package/templates/nextjs/sui-farm/packages/client/.gitignore_ +48 -0
- package/templates/nextjs/sui-farm/packages/client/.prettierignore +1 -0
- package/templates/nextjs/sui-farm/packages/client/.prettierrc.json +8 -0
- package/templates/nextjs/sui-farm/packages/client/eslint.config.mjs +22 -0
- package/templates/nextjs/sui-farm/packages/client/next.config.mjs +8 -0
- package/templates/nextjs/sui-farm/packages/client/package.json +47 -0
- package/templates/nextjs/sui-farm/packages/client/postcss.config.mjs +8 -0
- package/templates/nextjs/sui-farm/packages/client/src/app/admin/page.tsx +618 -0
- package/templates/nextjs/sui-farm/packages/client/src/app/components/FarmLand.tsx +526 -0
- package/templates/nextjs/sui-farm/packages/client/src/app/components/FarmPlotCard.tsx +215 -0
- package/templates/nextjs/sui-farm/packages/client/src/app/components/PetAvatar.tsx +868 -0
- package/templates/nextjs/sui-farm/packages/client/src/app/components/PetPanel.tsx +1360 -0
- package/templates/nextjs/sui-farm/packages/client/src/app/components/PlantModal.tsx +147 -0
- package/templates/nextjs/sui-farm/packages/client/src/app/components/ProxyCard.tsx +684 -0
- package/templates/nextjs/sui-farm/packages/client/src/app/components/RanchLand.tsx +822 -0
- package/templates/nextjs/sui-farm/packages/client/src/app/components/ResourceHUD.tsx +125 -0
- package/templates/nextjs/sui-farm/packages/client/src/app/components/ShopPanel.tsx +232 -0
- package/templates/nextjs/sui-farm/packages/client/src/app/components/icons/GameIcons.tsx +574 -0
- package/templates/nextjs/sui-farm/packages/client/src/app/favicon.ico +0 -0
- package/templates/nextjs/sui-farm/packages/client/src/app/globals.css +423 -0
- package/templates/nextjs/sui-farm/packages/client/src/app/hooks/useWorldPermitId.ts +66 -0
- package/templates/nextjs/sui-farm/packages/client/src/app/layout.tsx +23 -0
- package/templates/nextjs/sui-farm/packages/client/src/app/leaderboard/page.tsx +185 -0
- package/templates/nextjs/sui-farm/packages/client/src/app/lib/crops.ts +97 -0
- package/templates/nextjs/sui-farm/packages/client/src/app/market/page.tsx +763 -0
- package/templates/nextjs/sui-farm/packages/client/src/app/page.tsx +1173 -0
- package/templates/nextjs/sui-farm/packages/client/src/app/providers.tsx +69 -0
- package/templates/nextjs/sui-farm/packages/client/src/app/state/index.tsx +5 -0
- package/templates/nextjs/sui-farm/packages/client/tailwind.config.ts +25 -0
- package/templates/nextjs/sui-farm/packages/client/tsconfig.json +30 -0
- package/templates/nextjs/sui-farm/packages/contracts/.gitignore_ +51 -0
- package/templates/nextjs/sui-farm/packages/contracts/.prettierignore +1 -0
- package/templates/nextjs/sui-farm/packages/contracts/.prettierrc.json +8 -0
- package/templates/nextjs/sui-farm/packages/contracts/Dockerfile +5 -0
- package/templates/nextjs/sui-farm/packages/contracts/Pub.localnet.toml +13 -0
- package/templates/nextjs/sui-farm/packages/contracts/counter.lock.json +14 -0
- package/templates/nextjs/sui-farm/packages/contracts/docker-compose.yml +34 -0
- package/templates/nextjs/sui-farm/packages/contracts/dubhe.config.ts +178 -0
- package/templates/nextjs/sui-farm/packages/contracts/harvest.lock.json +120 -0
- package/templates/nextjs/sui-farm/packages/contracts/package.json +48 -0
- package/templates/nextjs/sui-farm/packages/contracts/scripts/config.ts +17 -0
- package/templates/nextjs/sui-farm/packages/contracts/scripts/query-dapp-revenue.ts +95 -0
- package/templates/nextjs/sui-farm/packages/contracts/scripts/read-permit.ts +72 -0
- package/templates/nextjs/sui-farm/packages/contracts/scripts/seed.ts +85 -0
- package/templates/nextjs/sui-farm/packages/contracts/scripts/withdraw-dapp-revenue.ts +56 -0
- package/templates/nextjs/sui-farm/packages/contracts/src/counter/Move.toml +14 -0
- package/templates/nextjs/sui-farm/packages/contracts/src/counter/sources/codegen/dapp_key.move +31 -0
- package/templates/nextjs/sui-farm/packages/contracts/src/counter/sources/codegen/error.move +10 -0
- package/templates/nextjs/sui-farm/packages/contracts/src/counter/sources/codegen/genesis.move +33 -0
- package/templates/nextjs/sui-farm/packages/contracts/src/counter/sources/codegen/init_test.move +23 -0
- package/templates/nextjs/sui-farm/packages/contracts/src/counter/sources/codegen/resources/counter1.move +64 -0
- package/templates/nextjs/sui-farm/packages/contracts/src/counter/sources/codegen/resources/counter2.move +70 -0
- package/templates/nextjs/sui-farm/packages/contracts/src/counter/sources/codegen/user_storage_init.move +26 -0
- package/templates/nextjs/sui-farm/packages/contracts/src/counter/sources/scripts/deploy_hook.move +8 -0
- package/templates/nextjs/sui-farm/packages/contracts/src/counter/sources/scripts/migrate.move +8 -0
- package/templates/nextjs/sui-farm/packages/contracts/src/counter/sources/systems/counter.move +13 -0
- package/templates/nextjs/sui-farm/packages/contracts/src/counter/sources/tests/counter.move +28 -0
- package/templates/nextjs/sui-farm/packages/contracts/src/harvest/Move.toml +14 -0
- package/templates/nextjs/sui-farm/packages/contracts/src/harvest/sources/codegen/dapp_key.move +46 -0
- package/templates/nextjs/sui-farm/packages/contracts/src/harvest/sources/codegen/enums/crop_type.move +47 -0
- package/templates/nextjs/sui-farm/packages/contracts/src/harvest/sources/codegen/enums/egg_type.move +42 -0
- package/templates/nextjs/sui-farm/packages/contracts/src/harvest/sources/codegen/enums/pet_rarity.move +37 -0
- package/templates/nextjs/sui-farm/packages/contracts/src/harvest/sources/codegen/enums/pet_species.move +52 -0
- package/templates/nextjs/sui-farm/packages/contracts/src/harvest/sources/codegen/error.move +110 -0
- package/templates/nextjs/sui-farm/packages/contracts/src/harvest/sources/codegen/genesis.move +33 -0
- package/templates/nextjs/sui-farm/packages/contracts/src/harvest/sources/codegen/init_test.move +23 -0
- package/templates/nextjs/sui-farm/packages/contracts/src/harvest/sources/codegen/permits/world.move +125 -0
- package/templates/nextjs/sui-farm/packages/contracts/src/harvest/sources/codegen/resources/carrot.move +136 -0
- package/templates/nextjs/sui-farm/packages/contracts/src/harvest/sources/codegen/resources/carrot_seed.move +80 -0
- package/templates/nextjs/sui-farm/packages/contracts/src/harvest/sources/codegen/resources/common_egg.move +136 -0
- package/templates/nextjs/sui-farm/packages/contracts/src/harvest/sources/codegen/resources/corn.move +136 -0
- package/templates/nextjs/sui-farm/packages/contracts/src/harvest/sources/codegen/resources/corn_seed.move +80 -0
- package/templates/nextjs/sui-farm/packages/contracts/src/harvest/sources/codegen/resources/crow_charges.move +162 -0
- package/templates/nextjs/sui-farm/packages/contracts/src/harvest/sources/codegen/resources/crow_damage.move +207 -0
- package/templates/nextjs/sui-farm/packages/contracts/src/harvest/sources/codegen/resources/farm_plot.move +261 -0
- package/templates/nextjs/sui-farm/packages/contracts/src/harvest/sources/codegen/resources/gold.move +80 -0
- package/templates/nextjs/sui-farm/packages/contracts/src/harvest/sources/codegen/resources/pet.move +467 -0
- package/templates/nextjs/sui-farm/packages/contracts/src/harvest/sources/codegen/resources/pet_config.move +372 -0
- package/templates/nextjs/sui-farm/packages/contracts/src/harvest/sources/codegen/resources/pet_hatch.move +162 -0
- package/templates/nextjs/sui-farm/packages/contracts/src/harvest/sources/codegen/resources/pet_slot_index.move +83 -0
- package/templates/nextjs/sui-farm/packages/contracts/src/harvest/sources/codegen/resources/pet_slots.move +64 -0
- package/templates/nextjs/sui-farm/packages/contracts/src/harvest/sources/codegen/resources/profile.move +162 -0
- package/templates/nextjs/sui-farm/packages/contracts/src/harvest/sources/codegen/resources/pumpkin.move +136 -0
- package/templates/nextjs/sui-farm/packages/contracts/src/harvest/sources/codegen/resources/pumpkin_seed.move +80 -0
- package/templates/nextjs/sui-farm/packages/contracts/src/harvest/sources/codegen/resources/rare_egg.move +136 -0
- package/templates/nextjs/sui-farm/packages/contracts/src/harvest/sources/codegen/resources/scarecrow.move +64 -0
- package/templates/nextjs/sui-farm/packages/contracts/src/harvest/sources/codegen/resources/season_config.move +197 -0
- package/templates/nextjs/sui-farm/packages/contracts/src/harvest/sources/codegen/resources/season_stats.move +64 -0
- package/templates/nextjs/sui-farm/packages/contracts/src/harvest/sources/codegen/resources/seasonal_egg.move +136 -0
- package/templates/nextjs/sui-farm/packages/contracts/src/harvest/sources/codegen/resources/shop_config.move +267 -0
- package/templates/nextjs/sui-farm/packages/contracts/src/harvest/sources/codegen/resources/trophy.move +245 -0
- package/templates/nextjs/sui-farm/packages/contracts/src/harvest/sources/codegen/resources/wheat.move +136 -0
- package/templates/nextjs/sui-farm/packages/contracts/src/harvest/sources/codegen/resources/wheat_seed.move +80 -0
- package/templates/nextjs/sui-farm/packages/contracts/src/harvest/sources/codegen/resources/world_permit_id.move +64 -0
- package/templates/nextjs/sui-farm/packages/contracts/src/harvest/sources/codegen/user_storage_init.move +26 -0
- package/templates/nextjs/sui-farm/packages/contracts/src/harvest/sources/scripts/deploy_hook.move +45 -0
- package/templates/nextjs/sui-farm/packages/contracts/src/harvest/sources/scripts/migrate.move +7 -0
- package/templates/nextjs/sui-farm/packages/contracts/src/harvest/sources/systems/crow_system.move +96 -0
- package/templates/nextjs/sui-farm/packages/contracts/src/harvest/sources/systems/farm_system.move +182 -0
- package/templates/nextjs/sui-farm/packages/contracts/src/harvest/sources/systems/market_system.move +172 -0
- package/templates/nextjs/sui-farm/packages/contracts/src/harvest/sources/systems/pet_system.move +495 -0
- package/templates/nextjs/sui-farm/packages/contracts/src/harvest/sources/systems/season_system.move +70 -0
- package/templates/nextjs/sui-farm/packages/contracts/src/harvest/sources/systems/shop_system.move +112 -0
- package/templates/nextjs/sui-farm/packages/contracts/src/harvest/sources/systems/world_system.move +34 -0
- package/templates/nextjs/sui-farm/packages/contracts/src/harvest/sources/tests/farm_tests.move +1192 -0
- package/templates/nextjs/sui-farm/pnpm-workspace.yaml +2 -0
- package/templates/nextjs/sui-template/packages/client/src/app/components/ProxyCard.tsx +683 -0
- package/templates/nextjs/sui-template/packages/client/src/app/page.tsx +510 -5
- package/templates/nextjs/sui-template/packages/client/src/app/providers.tsx +13 -5
- package/templates/nextjs/sui-template/packages/contracts/Pub.localnet.toml +4 -4
- package/templates/nextjs/sui-template/packages/contracts/counter.lock.json +14 -0
- package/templates/nextjs/sui-template/packages/contracts/deployment.ts +8 -3
- package/templates/nextjs/sui-template/packages/contracts/dubhe.config.json +9 -9
- package/templates/nextjs/sui-template/packages/contracts/dubhe.config.ts +0 -4
- package/templates/nextjs/sui-template/packages/contracts/metadata.json +180 -124
- package/templates/nextjs/sui-template/packages/contracts/package.json +8 -4
- package/templates/nextjs/sui-template/packages/contracts/src/counter/sources/codegen/dapp_key.move +45 -31
- package/templates/nextjs/sui-template/packages/contracts/src/counter/sources/codegen/error.move +10 -0
- package/templates/nextjs/sui-template/packages/contracts/src/counter/sources/codegen/genesis.move +30 -13
- package/templates/nextjs/sui-template/packages/contracts/src/counter/sources/codegen/init_test.move +19 -14
- package/templates/nextjs/sui-template/packages/contracts/src/counter/sources/codegen/resources/counter1.move +30 -20
- package/templates/nextjs/sui-template/packages/contracts/src/counter/sources/codegen/resources/counter2.move +35 -24
- package/templates/nextjs/sui-template/packages/contracts/src/counter/sources/codegen/user_storage_init.move +26 -0
- package/templates/nextjs/sui-template/packages/contracts/src/counter/sources/scripts/deploy_hook.move +6 -10
- package/templates/nextjs/sui-template/packages/contracts/src/counter/sources/systems/counter.move +7 -20
- package/templates/nextjs/sui-template/packages/contracts/src/counter/sources/tests/counter.move +14 -27
- package/templates/nextjs/sui-template/packages/contracts/src/dubhe/Move.lock +33 -30
- package/templates/nextjs/sui-template/packages/contracts/src/dubhe/Move.toml +4 -3
- package/templates/nextjs/sui-template/packages/contracts/src/dubhe/sources/codegen/dapp_key.move +45 -31
- package/templates/nextjs/sui-template/packages/contracts/src/dubhe/sources/codegen/error.move +170 -0
- package/templates/nextjs/sui-template/packages/contracts/src/dubhe/sources/codegen/genesis.move +16 -13
- package/templates/nextjs/sui-template/packages/contracts/src/dubhe/sources/codegen/init_test.move +8 -14
- package/templates/nextjs/sui-template/packages/contracts/src/dubhe/sources/core/account_key.move +1 -3
- package/templates/nextjs/sui-template/packages/contracts/src/dubhe/sources/core/dapp_service.move +1776 -137
- package/templates/nextjs/sui-template/packages/contracts/src/dubhe/sources/core/data_key.move +1 -20
- package/templates/nextjs/sui-template/packages/contracts/src/dubhe/sources/core/events.move +864 -25
- package/templates/nextjs/sui-template/packages/contracts/src/dubhe/sources/scripts/deploy_hook.move +15 -16
- package/templates/nextjs/sui-template/packages/contracts/src/dubhe/sources/scripts/migrate.move +0 -3
- package/templates/nextjs/sui-template/packages/contracts/src/dubhe/sources/systems/address_system.move +25 -17
- package/templates/nextjs/sui-template/packages/contracts/src/dubhe/sources/systems/dapp_system.move +2802 -343
- package/templates/nextjs/sui-template/packages/contracts/src/dubhe/sources/systems/utils.move +1 -1
- package/templates/nextjs/sui-template/packages/contracts/src/dubhe/sources/tests/address.move +173 -55
- package/templates/nextjs/sui-template/packages/contracts/src/dubhe/sources/tests/dapp_test.move +769 -0
- package/templates/nextjs/sui-template/packages/contracts/src/dubhe/sources/tests/fee_test.move +2965 -0
- package/templates/nextjs/sui-template/packages/contracts/src/dubhe/sources/tests/integration_test.move +303 -0
- package/templates/nextjs/sui-template/packages/contracts/src/dubhe/sources/tests/listing_test.move +1422 -0
- package/templates/nextjs/sui-template/packages/contracts/src/dubhe/sources/tests/scene_session_test.move +269 -0
- package/templates/nextjs/sui-template/packages/contracts/src/dubhe/sources/tests/session_test.move +624 -0
- package/templates/nextjs/sui-template/packages/contracts/src/dubhe/sources/tests/storage_test.move +700 -0
- package/templates/nextjs/sui-template/packages/contracts/src/dubhe/sources/tests/typed_object_test.move +177 -0
- package/templates/nextjs/sui-template/packages/contracts/src/dubhe/sources/tests/typed_scene_test.move +452 -0
- package/templates/nextjs/sui-template/packages/contracts/src/dubhe/sources/tests/user_storage_test.move +160 -0
- package/templates/nextjs/sui-template/packages/contracts/src/dubhe/sources/utils/math.move +4 -3
- package/templates/nextjs/sui-template/packages/contracts/src/dubhe/sources/utils/type_info.move +2 -2
- package/templates/101/sui-template/packages/contracts/src/counter/Move.lock +0 -41
- package/templates/101/sui-template/packages/contracts/src/counter/Published.toml +0 -9
- package/templates/101/sui-template/packages/contracts/src/counter/sources/codegen/errors.move +0 -12
- package/templates/101/sui-template/packages/contracts/src/dubhe/sources/codegen/errors.move +0 -140
- package/templates/101/sui-template/packages/contracts/src/dubhe/sources/codegen/resources/dapp_fee_config.move +0 -186
- package/templates/101/sui-template/packages/contracts/src/dubhe/sources/codegen/resources/dapp_fee_state.move +0 -306
- package/templates/101/sui-template/packages/contracts/src/dubhe/sources/codegen/resources/dapp_metadata.move +0 -396
- package/templates/101/sui-template/packages/contracts/src/dubhe/sources/codegen/resources/dubhe_config.move +0 -246
- package/templates/101/sui-template/packages/contracts/src/dubhe/sources/core/dapp_store.move +0 -29
- package/templates/101/sui-template/packages/contracts/src/dubhe/sources/systems/session_system.move +0 -44
- package/templates/contract/sui-template/src/dubhe/sources/codegen/errors.move +0 -140
- package/templates/contract/sui-template/src/dubhe/sources/codegen/resources/dapp_fee_config.move +0 -186
- package/templates/contract/sui-template/src/dubhe/sources/codegen/resources/dapp_fee_state.move +0 -306
- package/templates/contract/sui-template/src/dubhe/sources/codegen/resources/dapp_metadata.move +0 -396
- package/templates/contract/sui-template/src/dubhe/sources/codegen/resources/dubhe_config.move +0 -246
- package/templates/contract/sui-template/src/dubhe/sources/core/dapp_store.move +0 -29
- package/templates/contract/sui-template/src/dubhe/sources/systems/session_system.move +0 -44
- package/templates/nextjs/sui-template/packages/contracts/src/counter/Move.lock +0 -47
- package/templates/nextjs/sui-template/packages/contracts/src/counter/Published.toml +0 -9
- package/templates/nextjs/sui-template/packages/contracts/src/counter/sources/codegen/errors.move +0 -12
- package/templates/nextjs/sui-template/packages/contracts/src/dubhe/sources/codegen/errors.move +0 -140
- package/templates/nextjs/sui-template/packages/contracts/src/dubhe/sources/codegen/resources/dapp_fee_config.move +0 -186
- package/templates/nextjs/sui-template/packages/contracts/src/dubhe/sources/codegen/resources/dapp_fee_state.move +0 -306
- package/templates/nextjs/sui-template/packages/contracts/src/dubhe/sources/codegen/resources/dapp_metadata.move +0 -396
- package/templates/nextjs/sui-template/packages/contracts/src/dubhe/sources/codegen/resources/dubhe_config.move +0 -246
- package/templates/nextjs/sui-template/packages/contracts/src/dubhe/sources/core/dapp_store.move +0 -29
- package/templates/nextjs/sui-template/packages/contracts/src/dubhe/sources/systems/session_system.move +0 -44
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
// Copyright (c) Obelisk Labs, Inc.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
/* Autogenerated file. Do not edit manually. */
|
|
5
|
+
|
|
6
|
+
module harvest::season_config {
|
|
7
|
+
use sui::bcs::{to_bytes};
|
|
8
|
+
use dubhe::dapp_service::DappStorage;
|
|
9
|
+
use dubhe::dapp_system;
|
|
10
|
+
use harvest::dapp_key;
|
|
11
|
+
use harvest::dapp_key::DappKey;
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
const TABLE_NAME: vector<u8> = b"season_config";
|
|
15
|
+
const OFFCHAIN: bool = false;
|
|
16
|
+
|
|
17
|
+
public struct SeasonConfig has copy, drop, store {
|
|
18
|
+
season_id: u8,
|
|
19
|
+
end_ms: u64,
|
|
20
|
+
bonus_crop: u8,
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
public fun new(season_id: u8, end_ms: u64, bonus_crop: u8): SeasonConfig {
|
|
24
|
+
SeasonConfig {
|
|
25
|
+
season_id,
|
|
26
|
+
end_ms,
|
|
27
|
+
bonus_crop,
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
public fun season_id(self: &SeasonConfig): u8 {
|
|
32
|
+
self.season_id
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
public fun end_ms(self: &SeasonConfig): u64 {
|
|
36
|
+
self.end_ms
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
public fun bonus_crop(self: &SeasonConfig): u8 {
|
|
40
|
+
self.bonus_crop
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
public fun update_season_id(self: &mut SeasonConfig, season_id: u8) {
|
|
44
|
+
self.season_id = season_id
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
public fun update_end_ms(self: &mut SeasonConfig, end_ms: u64) {
|
|
48
|
+
self.end_ms = end_ms
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
public fun update_bonus_crop(self: &mut SeasonConfig, bonus_crop: u8) {
|
|
52
|
+
self.bonus_crop = bonus_crop
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
public fun has(dapp_storage: &DappStorage): bool {
|
|
56
|
+
let mut key_tuple = vector::empty();
|
|
57
|
+
key_tuple.push_back(TABLE_NAME);
|
|
58
|
+
dapp_system::has_global_record<DappKey>(dapp_storage, key_tuple)
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
public fun ensure_has(dapp_storage: &DappStorage) {
|
|
62
|
+
let mut key_tuple = vector::empty();
|
|
63
|
+
key_tuple.push_back(TABLE_NAME);
|
|
64
|
+
dapp_system::ensure_has_global_record<DappKey>(dapp_storage, key_tuple)
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
public fun ensure_has_not(dapp_storage: &DappStorage) {
|
|
68
|
+
let mut key_tuple = vector::empty();
|
|
69
|
+
key_tuple.push_back(TABLE_NAME);
|
|
70
|
+
dapp_system::ensure_has_not_global_record<DappKey>(dapp_storage, key_tuple)
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
public(package) fun delete(dapp_storage: &mut DappStorage) {
|
|
75
|
+
let mut key_tuple = vector::empty();
|
|
76
|
+
key_tuple.push_back(TABLE_NAME);
|
|
77
|
+
dapp_system::delete_global_record<DappKey>(dapp_key::new(), dapp_storage, key_tuple, vector[b"season_id", b"end_ms", b"bonus_crop"]);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
public fun get_season_id(dapp_storage: &DappStorage): u8 {
|
|
81
|
+
let mut key_tuple = vector::empty();
|
|
82
|
+
key_tuple.push_back(TABLE_NAME);
|
|
83
|
+
let season_id_raw = dapp_system::get_global_field<DappKey>(dapp_storage, key_tuple, b"season_id");
|
|
84
|
+
let mut season_id_bcs = sui::bcs::new(season_id_raw);
|
|
85
|
+
let season_id = sui::bcs::peel_u8(&mut season_id_bcs);
|
|
86
|
+
season_id
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
public(package) fun set_season_id(dapp_storage: &mut DappStorage, season_id: u8) {
|
|
90
|
+
let mut key_tuple = vector::empty();
|
|
91
|
+
key_tuple.push_back(TABLE_NAME);
|
|
92
|
+
let value = to_bytes(&season_id);
|
|
93
|
+
dapp_system::set_global_field<DappKey>(dapp_key::new(), dapp_storage, key_tuple, b"season_id", value);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
public fun get_end_ms(dapp_storage: &DappStorage): u64 {
|
|
97
|
+
let mut key_tuple = vector::empty();
|
|
98
|
+
key_tuple.push_back(TABLE_NAME);
|
|
99
|
+
let end_ms_raw = dapp_system::get_global_field<DappKey>(dapp_storage, key_tuple, b"end_ms");
|
|
100
|
+
let mut end_ms_bcs = sui::bcs::new(end_ms_raw);
|
|
101
|
+
let end_ms = sui::bcs::peel_u64(&mut end_ms_bcs);
|
|
102
|
+
end_ms
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
public(package) fun set_end_ms(dapp_storage: &mut DappStorage, end_ms: u64) {
|
|
106
|
+
let mut key_tuple = vector::empty();
|
|
107
|
+
key_tuple.push_back(TABLE_NAME);
|
|
108
|
+
let value = to_bytes(&end_ms);
|
|
109
|
+
dapp_system::set_global_field<DappKey>(dapp_key::new(), dapp_storage, key_tuple, b"end_ms", value);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
public fun get_bonus_crop(dapp_storage: &DappStorage): u8 {
|
|
113
|
+
let mut key_tuple = vector::empty();
|
|
114
|
+
key_tuple.push_back(TABLE_NAME);
|
|
115
|
+
let bonus_crop_raw = dapp_system::get_global_field<DappKey>(dapp_storage, key_tuple, b"bonus_crop");
|
|
116
|
+
let mut bonus_crop_bcs = sui::bcs::new(bonus_crop_raw);
|
|
117
|
+
let bonus_crop = sui::bcs::peel_u8(&mut bonus_crop_bcs);
|
|
118
|
+
bonus_crop
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
public(package) fun set_bonus_crop(dapp_storage: &mut DappStorage, bonus_crop: u8) {
|
|
122
|
+
let mut key_tuple = vector::empty();
|
|
123
|
+
key_tuple.push_back(TABLE_NAME);
|
|
124
|
+
let value = to_bytes(&bonus_crop);
|
|
125
|
+
dapp_system::set_global_field<DappKey>(dapp_key::new(), dapp_storage, key_tuple, b"bonus_crop", value);
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
public fun get(dapp_storage: &DappStorage): (u8, u64, u8) {
|
|
129
|
+
let mut key_tuple = vector::empty();
|
|
130
|
+
key_tuple.push_back(TABLE_NAME);
|
|
131
|
+
let season_id_raw = dapp_system::get_global_field<DappKey>(dapp_storage, key_tuple, b"season_id");
|
|
132
|
+
let mut season_id_bcs = sui::bcs::new(season_id_raw);
|
|
133
|
+
let season_id = sui::bcs::peel_u8(&mut season_id_bcs);
|
|
134
|
+
let end_ms_raw = dapp_system::get_global_field<DappKey>(dapp_storage, key_tuple, b"end_ms");
|
|
135
|
+
let mut end_ms_bcs = sui::bcs::new(end_ms_raw);
|
|
136
|
+
let end_ms = sui::bcs::peel_u64(&mut end_ms_bcs);
|
|
137
|
+
let bonus_crop_raw = dapp_system::get_global_field<DappKey>(dapp_storage, key_tuple, b"bonus_crop");
|
|
138
|
+
let mut bonus_crop_bcs = sui::bcs::new(bonus_crop_raw);
|
|
139
|
+
let bonus_crop = sui::bcs::peel_u8(&mut bonus_crop_bcs);
|
|
140
|
+
(season_id, end_ms, bonus_crop)
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
public(package) fun set(dapp_storage: &mut DappStorage, season_id: u8, end_ms: u64, bonus_crop: u8) {
|
|
144
|
+
let mut key_tuple = vector::empty();
|
|
145
|
+
key_tuple.push_back(TABLE_NAME);
|
|
146
|
+
let field_names = vector[b"season_id", b"end_ms", b"bonus_crop"];
|
|
147
|
+
let value_tuple = encode(season_id, end_ms, bonus_crop);
|
|
148
|
+
dapp_system::set_global_record<DappKey>(dapp_key::new(), dapp_storage, key_tuple, field_names, value_tuple, OFFCHAIN);
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
public fun get_struct(dapp_storage: &DappStorage): SeasonConfig {
|
|
152
|
+
let mut key_tuple = vector::empty();
|
|
153
|
+
key_tuple.push_back(TABLE_NAME);
|
|
154
|
+
let season_id_raw = dapp_system::get_global_field<DappKey>(dapp_storage, key_tuple, b"season_id");
|
|
155
|
+
let mut season_id_bcs = sui::bcs::new(season_id_raw);
|
|
156
|
+
let season_id = sui::bcs::peel_u8(&mut season_id_bcs);
|
|
157
|
+
let end_ms_raw = dapp_system::get_global_field<DappKey>(dapp_storage, key_tuple, b"end_ms");
|
|
158
|
+
let mut end_ms_bcs = sui::bcs::new(end_ms_raw);
|
|
159
|
+
let end_ms = sui::bcs::peel_u64(&mut end_ms_bcs);
|
|
160
|
+
let bonus_crop_raw = dapp_system::get_global_field<DappKey>(dapp_storage, key_tuple, b"bonus_crop");
|
|
161
|
+
let mut bonus_crop_bcs = sui::bcs::new(bonus_crop_raw);
|
|
162
|
+
let bonus_crop = sui::bcs::peel_u8(&mut bonus_crop_bcs);
|
|
163
|
+
SeasonConfig { season_id, end_ms, bonus_crop }
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
public(package) fun set_struct(dapp_storage: &mut DappStorage, season_config: SeasonConfig) {
|
|
167
|
+
let mut key_tuple = vector::empty();
|
|
168
|
+
key_tuple.push_back(TABLE_NAME);
|
|
169
|
+
let field_names = vector[b"season_id", b"end_ms", b"bonus_crop"];
|
|
170
|
+
let value_tuple = encode_struct(season_config);
|
|
171
|
+
dapp_system::set_global_record<DappKey>(dapp_key::new(), dapp_storage, key_tuple, field_names, value_tuple, OFFCHAIN);
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
public fun encode(season_id: u8, end_ms: u64, bonus_crop: u8): vector<vector<u8>> {
|
|
175
|
+
let mut value_tuple = vector::empty();
|
|
176
|
+
value_tuple.push_back(to_bytes(&season_id));
|
|
177
|
+
value_tuple.push_back(to_bytes(&end_ms));
|
|
178
|
+
value_tuple.push_back(to_bytes(&bonus_crop));
|
|
179
|
+
value_tuple
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
public fun encode_struct(season_config: SeasonConfig): vector<vector<u8>> {
|
|
183
|
+
encode(season_config.season_id, season_config.end_ms, season_config.bonus_crop)
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
public fun decode(data: vector<u8>): SeasonConfig {
|
|
187
|
+
let mut bcs_type = sui::bcs::new(data);
|
|
188
|
+
let season_id = sui::bcs::peel_u8(&mut bcs_type);
|
|
189
|
+
let end_ms = sui::bcs::peel_u64(&mut bcs_type);
|
|
190
|
+
let bonus_crop = sui::bcs::peel_u8(&mut bcs_type);
|
|
191
|
+
SeasonConfig {
|
|
192
|
+
season_id,
|
|
193
|
+
end_ms,
|
|
194
|
+
bonus_crop,
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
// Copyright (c) Obelisk Labs, Inc.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
/* Autogenerated file. Do not edit manually. */
|
|
5
|
+
|
|
6
|
+
module harvest::season_stats {
|
|
7
|
+
use sui::bcs::{to_bytes};
|
|
8
|
+
use dubhe::dapp_service::UserStorage;
|
|
9
|
+
use dubhe::dapp_system;
|
|
10
|
+
use harvest::dapp_key;
|
|
11
|
+
use harvest::dapp_key::DappKey;
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
const TABLE_NAME: vector<u8> = b"season_stats";
|
|
15
|
+
const OFFCHAIN: bool = false;
|
|
16
|
+
|
|
17
|
+
public fun has(user_storage: &UserStorage): bool {
|
|
18
|
+
let mut key_tuple = vector::empty();
|
|
19
|
+
key_tuple.push_back(TABLE_NAME);
|
|
20
|
+
dapp_system::has_record<DappKey>(user_storage, key_tuple)
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
public fun ensure_has(user_storage: &UserStorage) {
|
|
24
|
+
let mut key_tuple = vector::empty();
|
|
25
|
+
key_tuple.push_back(TABLE_NAME);
|
|
26
|
+
dapp_system::ensure_has_record<DappKey>(user_storage, key_tuple)
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
public fun ensure_has_not(user_storage: &UserStorage) {
|
|
30
|
+
let mut key_tuple = vector::empty();
|
|
31
|
+
key_tuple.push_back(TABLE_NAME);
|
|
32
|
+
dapp_system::ensure_has_not_record<DappKey>(user_storage, key_tuple)
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
public(package) fun delete(user_storage: &mut UserStorage, ctx: &TxContext) {
|
|
37
|
+
let mut key_tuple = vector::empty();
|
|
38
|
+
key_tuple.push_back(TABLE_NAME);
|
|
39
|
+
dapp_system::delete_record<DappKey>(dapp_key::new(), user_storage, key_tuple, vector[b"earned_this_season"], ctx);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
public fun get(user_storage: &UserStorage): u64 {
|
|
43
|
+
let mut key_tuple = vector::empty();
|
|
44
|
+
key_tuple.push_back(TABLE_NAME);
|
|
45
|
+
let earned_this_season_raw = dapp_system::get_field<DappKey>(user_storage, key_tuple, b"earned_this_season");
|
|
46
|
+
let mut earned_this_season_bcs = sui::bcs::new(earned_this_season_raw);
|
|
47
|
+
let value = sui::bcs::peel_u64(&mut earned_this_season_bcs);
|
|
48
|
+
value
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
public(package) fun set(user_storage: &mut UserStorage, value: u64, ctx: &mut TxContext) {
|
|
52
|
+
let mut key_tuple = vector::empty();
|
|
53
|
+
key_tuple.push_back(TABLE_NAME);
|
|
54
|
+
let field_names = vector[b"earned_this_season"];
|
|
55
|
+
let value_tuple = encode(value);
|
|
56
|
+
dapp_system::set_record<DappKey>(dapp_key::new(), user_storage, key_tuple, field_names, value_tuple, OFFCHAIN, ctx);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
public fun encode(value: u64): vector<vector<u8>> {
|
|
60
|
+
let mut value_tuple = vector::empty();
|
|
61
|
+
value_tuple.push_back(to_bytes(&value));
|
|
62
|
+
value_tuple
|
|
63
|
+
}
|
|
64
|
+
}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
// Copyright (c) Obelisk Labs, Inc.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
/* Autogenerated file. Do not edit manually. */
|
|
5
|
+
|
|
6
|
+
module harvest::seasonal_egg {
|
|
7
|
+
use sui::bcs::{to_bytes};
|
|
8
|
+
use dubhe::dapp_service::{UserStorage, DappStorage};
|
|
9
|
+
use dubhe::dapp_system;
|
|
10
|
+
use harvest::dapp_key;
|
|
11
|
+
use harvest::dapp_key::DappKey;
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
const TABLE_NAME: vector<u8> = b"seasonal_egg";
|
|
15
|
+
const OFFCHAIN: bool = false;
|
|
16
|
+
|
|
17
|
+
public fun has(user_storage: &UserStorage): bool {
|
|
18
|
+
let mut key_tuple = vector::empty();
|
|
19
|
+
key_tuple.push_back(TABLE_NAME);
|
|
20
|
+
dapp_system::has_record<DappKey>(user_storage, key_tuple)
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
public fun ensure_has(user_storage: &UserStorage) {
|
|
24
|
+
let mut key_tuple = vector::empty();
|
|
25
|
+
key_tuple.push_back(TABLE_NAME);
|
|
26
|
+
dapp_system::ensure_has_record<DappKey>(user_storage, key_tuple)
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
public fun ensure_has_not(user_storage: &UserStorage) {
|
|
30
|
+
let mut key_tuple = vector::empty();
|
|
31
|
+
key_tuple.push_back(TABLE_NAME);
|
|
32
|
+
dapp_system::ensure_has_not_record<DappKey>(user_storage, key_tuple)
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
public(package) fun delete(user_storage: &mut UserStorage, ctx: &TxContext) {
|
|
37
|
+
let mut key_tuple = vector::empty();
|
|
38
|
+
key_tuple.push_back(TABLE_NAME);
|
|
39
|
+
dapp_system::delete_record<DappKey>(dapp_key::new(), user_storage, key_tuple, vector[b"amount"], ctx);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
public fun get(user_storage: &UserStorage): u64 {
|
|
43
|
+
let mut key_tuple = vector::empty();
|
|
44
|
+
key_tuple.push_back(TABLE_NAME);
|
|
45
|
+
let amount_raw = dapp_system::get_field<DappKey>(user_storage, key_tuple, b"amount");
|
|
46
|
+
let mut amount_bcs = sui::bcs::new(amount_raw);
|
|
47
|
+
let value = sui::bcs::peel_u64(&mut amount_bcs);
|
|
48
|
+
value
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
public(package) fun set(user_storage: &mut UserStorage, value: u64, ctx: &mut TxContext) {
|
|
52
|
+
let mut key_tuple = vector::empty();
|
|
53
|
+
key_tuple.push_back(TABLE_NAME);
|
|
54
|
+
let field_names = vector[b"amount"];
|
|
55
|
+
let value_tuple = encode(value);
|
|
56
|
+
dapp_system::set_record<DappKey>(dapp_key::new(), user_storage, key_tuple, field_names, value_tuple, OFFCHAIN, ctx);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
public fun encode(value: u64): vector<vector<u8>> {
|
|
60
|
+
let mut value_tuple = vector::empty();
|
|
61
|
+
value_tuple.push_back(to_bytes(&value));
|
|
62
|
+
value_tuple
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
// ─── fungible add / sub ─────────────────────────────────────────────
|
|
67
|
+
#[error]
|
|
68
|
+
const EInsufficientAmount: vector<u8> = b"Insufficient amount";
|
|
69
|
+
|
|
70
|
+
public(package) fun add(user_storage: &mut UserStorage, amount: u64, ctx: &mut TxContext) {
|
|
71
|
+
let current = if (has(user_storage)) { get(user_storage) } else { 0 };
|
|
72
|
+
set(user_storage, current + amount, ctx);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
public(package) fun sub(user_storage: &mut UserStorage, amount: u64, ctx: &mut TxContext) {
|
|
76
|
+
let current = get(user_storage);
|
|
77
|
+
assert!(current >= amount, EInsufficientAmount);
|
|
78
|
+
set(user_storage, current - amount, ctx);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
// ─── listable: market protocol (fungible) ──────────────────────────
|
|
82
|
+
// Package-level helpers: call these from your system functions.
|
|
83
|
+
// Add pause checks, access control, and custom logic there.
|
|
84
|
+
public(package) fun list<CoinType>(
|
|
85
|
+
user_storage: &mut UserStorage,
|
|
86
|
+
amount: u64,
|
|
87
|
+
price: u64,
|
|
88
|
+
listed_until: std::option::Option<u64>,
|
|
89
|
+
ctx: &mut TxContext,
|
|
90
|
+
) {
|
|
91
|
+
dubhe::dapp_system::take_fungible_record<DappKey, CoinType>(
|
|
92
|
+
dapp_key::new(),
|
|
93
|
+
user_storage,
|
|
94
|
+
b"seasonal_egg",
|
|
95
|
+
{ let mut k = vector::empty(); k.push_back(TABLE_NAME); k },
|
|
96
|
+
b"amount",
|
|
97
|
+
amount,
|
|
98
|
+
price,
|
|
99
|
+
listed_until,
|
|
100
|
+
ctx,
|
|
101
|
+
);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
public(package) fun buy<CoinType>(
|
|
105
|
+
dh: &dubhe::dapp_service::DappHub,
|
|
106
|
+
dapp_storage: &mut DappStorage,
|
|
107
|
+
listing: dubhe::dapp_service::Listing<CoinType>,
|
|
108
|
+
user_storage: &mut UserStorage,
|
|
109
|
+
payment: sui::coin::Coin<CoinType>,
|
|
110
|
+
ctx: &mut TxContext,
|
|
111
|
+
): sui::coin::Coin<CoinType> {
|
|
112
|
+
dubhe::dapp_system::buy_fungible_record<DappKey, CoinType>(
|
|
113
|
+
dapp_key::new(), dh, dapp_storage, listing, user_storage, payment, ctx
|
|
114
|
+
)
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
public(package) fun cancel_listing<CoinType>(
|
|
118
|
+
listing: dubhe::dapp_service::Listing<CoinType>,
|
|
119
|
+
user_storage: &mut UserStorage,
|
|
120
|
+
ctx: &TxContext,
|
|
121
|
+
) {
|
|
122
|
+
dubhe::dapp_system::cancel_fungible_listing<DappKey, CoinType>(
|
|
123
|
+
dapp_key::new(), listing, user_storage, ctx
|
|
124
|
+
);
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
public(package) fun expire_listing<CoinType>(
|
|
128
|
+
listing: dubhe::dapp_service::Listing<CoinType>,
|
|
129
|
+
user_storage: &mut UserStorage,
|
|
130
|
+
ctx: &TxContext,
|
|
131
|
+
) {
|
|
132
|
+
dubhe::dapp_system::expire_fungible_listing<DappKey, CoinType>(
|
|
133
|
+
dapp_key::new(), listing, user_storage, ctx
|
|
134
|
+
);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
@@ -0,0 +1,267 @@
|
|
|
1
|
+
// Copyright (c) Obelisk Labs, Inc.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
/* Autogenerated file. Do not edit manually. */
|
|
5
|
+
|
|
6
|
+
module harvest::shop_config {
|
|
7
|
+
use sui::bcs::{to_bytes};
|
|
8
|
+
use dubhe::dapp_service::DappStorage;
|
|
9
|
+
use dubhe::dapp_system;
|
|
10
|
+
use harvest::dapp_key;
|
|
11
|
+
use harvest::dapp_key::DappKey;
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
const TABLE_NAME: vector<u8> = b"shop_config";
|
|
15
|
+
const OFFCHAIN: bool = false;
|
|
16
|
+
|
|
17
|
+
public struct ShopConfig has copy, drop, store {
|
|
18
|
+
wheat_seed_price: u64,
|
|
19
|
+
corn_seed_price: u64,
|
|
20
|
+
carrot_seed_price: u64,
|
|
21
|
+
pumpkin_seed_price: u64,
|
|
22
|
+
extra_plot_price: u64,
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
public fun new(wheat_seed_price: u64, corn_seed_price: u64, carrot_seed_price: u64, pumpkin_seed_price: u64, extra_plot_price: u64): ShopConfig {
|
|
26
|
+
ShopConfig {
|
|
27
|
+
wheat_seed_price,
|
|
28
|
+
corn_seed_price,
|
|
29
|
+
carrot_seed_price,
|
|
30
|
+
pumpkin_seed_price,
|
|
31
|
+
extra_plot_price,
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
public fun wheat_seed_price(self: &ShopConfig): u64 {
|
|
36
|
+
self.wheat_seed_price
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
public fun corn_seed_price(self: &ShopConfig): u64 {
|
|
40
|
+
self.corn_seed_price
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
public fun carrot_seed_price(self: &ShopConfig): u64 {
|
|
44
|
+
self.carrot_seed_price
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
public fun pumpkin_seed_price(self: &ShopConfig): u64 {
|
|
48
|
+
self.pumpkin_seed_price
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
public fun extra_plot_price(self: &ShopConfig): u64 {
|
|
52
|
+
self.extra_plot_price
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
public fun update_wheat_seed_price(self: &mut ShopConfig, wheat_seed_price: u64) {
|
|
56
|
+
self.wheat_seed_price = wheat_seed_price
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
public fun update_corn_seed_price(self: &mut ShopConfig, corn_seed_price: u64) {
|
|
60
|
+
self.corn_seed_price = corn_seed_price
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
public fun update_carrot_seed_price(self: &mut ShopConfig, carrot_seed_price: u64) {
|
|
64
|
+
self.carrot_seed_price = carrot_seed_price
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
public fun update_pumpkin_seed_price(self: &mut ShopConfig, pumpkin_seed_price: u64) {
|
|
68
|
+
self.pumpkin_seed_price = pumpkin_seed_price
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
public fun update_extra_plot_price(self: &mut ShopConfig, extra_plot_price: u64) {
|
|
72
|
+
self.extra_plot_price = extra_plot_price
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
public fun has(dapp_storage: &DappStorage): bool {
|
|
76
|
+
let mut key_tuple = vector::empty();
|
|
77
|
+
key_tuple.push_back(TABLE_NAME);
|
|
78
|
+
dapp_system::has_global_record<DappKey>(dapp_storage, key_tuple)
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
public fun ensure_has(dapp_storage: &DappStorage) {
|
|
82
|
+
let mut key_tuple = vector::empty();
|
|
83
|
+
key_tuple.push_back(TABLE_NAME);
|
|
84
|
+
dapp_system::ensure_has_global_record<DappKey>(dapp_storage, key_tuple)
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
public fun ensure_has_not(dapp_storage: &DappStorage) {
|
|
88
|
+
let mut key_tuple = vector::empty();
|
|
89
|
+
key_tuple.push_back(TABLE_NAME);
|
|
90
|
+
dapp_system::ensure_has_not_global_record<DappKey>(dapp_storage, key_tuple)
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
public(package) fun delete(dapp_storage: &mut DappStorage) {
|
|
95
|
+
let mut key_tuple = vector::empty();
|
|
96
|
+
key_tuple.push_back(TABLE_NAME);
|
|
97
|
+
dapp_system::delete_global_record<DappKey>(dapp_key::new(), dapp_storage, key_tuple, vector[b"wheat_seed_price", b"corn_seed_price", b"carrot_seed_price", b"pumpkin_seed_price", b"extra_plot_price"]);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
public fun get_wheat_seed_price(dapp_storage: &DappStorage): u64 {
|
|
101
|
+
let mut key_tuple = vector::empty();
|
|
102
|
+
key_tuple.push_back(TABLE_NAME);
|
|
103
|
+
let wheat_seed_price_raw = dapp_system::get_global_field<DappKey>(dapp_storage, key_tuple, b"wheat_seed_price");
|
|
104
|
+
let mut wheat_seed_price_bcs = sui::bcs::new(wheat_seed_price_raw);
|
|
105
|
+
let wheat_seed_price = sui::bcs::peel_u64(&mut wheat_seed_price_bcs);
|
|
106
|
+
wheat_seed_price
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
public(package) fun set_wheat_seed_price(dapp_storage: &mut DappStorage, wheat_seed_price: u64) {
|
|
110
|
+
let mut key_tuple = vector::empty();
|
|
111
|
+
key_tuple.push_back(TABLE_NAME);
|
|
112
|
+
let value = to_bytes(&wheat_seed_price);
|
|
113
|
+
dapp_system::set_global_field<DappKey>(dapp_key::new(), dapp_storage, key_tuple, b"wheat_seed_price", value);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
public fun get_corn_seed_price(dapp_storage: &DappStorage): u64 {
|
|
117
|
+
let mut key_tuple = vector::empty();
|
|
118
|
+
key_tuple.push_back(TABLE_NAME);
|
|
119
|
+
let corn_seed_price_raw = dapp_system::get_global_field<DappKey>(dapp_storage, key_tuple, b"corn_seed_price");
|
|
120
|
+
let mut corn_seed_price_bcs = sui::bcs::new(corn_seed_price_raw);
|
|
121
|
+
let corn_seed_price = sui::bcs::peel_u64(&mut corn_seed_price_bcs);
|
|
122
|
+
corn_seed_price
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
public(package) fun set_corn_seed_price(dapp_storage: &mut DappStorage, corn_seed_price: u64) {
|
|
126
|
+
let mut key_tuple = vector::empty();
|
|
127
|
+
key_tuple.push_back(TABLE_NAME);
|
|
128
|
+
let value = to_bytes(&corn_seed_price);
|
|
129
|
+
dapp_system::set_global_field<DappKey>(dapp_key::new(), dapp_storage, key_tuple, b"corn_seed_price", value);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
public fun get_carrot_seed_price(dapp_storage: &DappStorage): u64 {
|
|
133
|
+
let mut key_tuple = vector::empty();
|
|
134
|
+
key_tuple.push_back(TABLE_NAME);
|
|
135
|
+
let carrot_seed_price_raw = dapp_system::get_global_field<DappKey>(dapp_storage, key_tuple, b"carrot_seed_price");
|
|
136
|
+
let mut carrot_seed_price_bcs = sui::bcs::new(carrot_seed_price_raw);
|
|
137
|
+
let carrot_seed_price = sui::bcs::peel_u64(&mut carrot_seed_price_bcs);
|
|
138
|
+
carrot_seed_price
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
public(package) fun set_carrot_seed_price(dapp_storage: &mut DappStorage, carrot_seed_price: u64) {
|
|
142
|
+
let mut key_tuple = vector::empty();
|
|
143
|
+
key_tuple.push_back(TABLE_NAME);
|
|
144
|
+
let value = to_bytes(&carrot_seed_price);
|
|
145
|
+
dapp_system::set_global_field<DappKey>(dapp_key::new(), dapp_storage, key_tuple, b"carrot_seed_price", value);
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
public fun get_pumpkin_seed_price(dapp_storage: &DappStorage): u64 {
|
|
149
|
+
let mut key_tuple = vector::empty();
|
|
150
|
+
key_tuple.push_back(TABLE_NAME);
|
|
151
|
+
let pumpkin_seed_price_raw = dapp_system::get_global_field<DappKey>(dapp_storage, key_tuple, b"pumpkin_seed_price");
|
|
152
|
+
let mut pumpkin_seed_price_bcs = sui::bcs::new(pumpkin_seed_price_raw);
|
|
153
|
+
let pumpkin_seed_price = sui::bcs::peel_u64(&mut pumpkin_seed_price_bcs);
|
|
154
|
+
pumpkin_seed_price
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
public(package) fun set_pumpkin_seed_price(dapp_storage: &mut DappStorage, pumpkin_seed_price: u64) {
|
|
158
|
+
let mut key_tuple = vector::empty();
|
|
159
|
+
key_tuple.push_back(TABLE_NAME);
|
|
160
|
+
let value = to_bytes(&pumpkin_seed_price);
|
|
161
|
+
dapp_system::set_global_field<DappKey>(dapp_key::new(), dapp_storage, key_tuple, b"pumpkin_seed_price", value);
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
public fun get_extra_plot_price(dapp_storage: &DappStorage): u64 {
|
|
165
|
+
let mut key_tuple = vector::empty();
|
|
166
|
+
key_tuple.push_back(TABLE_NAME);
|
|
167
|
+
let extra_plot_price_raw = dapp_system::get_global_field<DappKey>(dapp_storage, key_tuple, b"extra_plot_price");
|
|
168
|
+
let mut extra_plot_price_bcs = sui::bcs::new(extra_plot_price_raw);
|
|
169
|
+
let extra_plot_price = sui::bcs::peel_u64(&mut extra_plot_price_bcs);
|
|
170
|
+
extra_plot_price
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
public(package) fun set_extra_plot_price(dapp_storage: &mut DappStorage, extra_plot_price: u64) {
|
|
174
|
+
let mut key_tuple = vector::empty();
|
|
175
|
+
key_tuple.push_back(TABLE_NAME);
|
|
176
|
+
let value = to_bytes(&extra_plot_price);
|
|
177
|
+
dapp_system::set_global_field<DappKey>(dapp_key::new(), dapp_storage, key_tuple, b"extra_plot_price", value);
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
public fun get(dapp_storage: &DappStorage): (u64, u64, u64, u64, u64) {
|
|
181
|
+
let mut key_tuple = vector::empty();
|
|
182
|
+
key_tuple.push_back(TABLE_NAME);
|
|
183
|
+
let wheat_seed_price_raw = dapp_system::get_global_field<DappKey>(dapp_storage, key_tuple, b"wheat_seed_price");
|
|
184
|
+
let mut wheat_seed_price_bcs = sui::bcs::new(wheat_seed_price_raw);
|
|
185
|
+
let wheat_seed_price = sui::bcs::peel_u64(&mut wheat_seed_price_bcs);
|
|
186
|
+
let corn_seed_price_raw = dapp_system::get_global_field<DappKey>(dapp_storage, key_tuple, b"corn_seed_price");
|
|
187
|
+
let mut corn_seed_price_bcs = sui::bcs::new(corn_seed_price_raw);
|
|
188
|
+
let corn_seed_price = sui::bcs::peel_u64(&mut corn_seed_price_bcs);
|
|
189
|
+
let carrot_seed_price_raw = dapp_system::get_global_field<DappKey>(dapp_storage, key_tuple, b"carrot_seed_price");
|
|
190
|
+
let mut carrot_seed_price_bcs = sui::bcs::new(carrot_seed_price_raw);
|
|
191
|
+
let carrot_seed_price = sui::bcs::peel_u64(&mut carrot_seed_price_bcs);
|
|
192
|
+
let pumpkin_seed_price_raw = dapp_system::get_global_field<DappKey>(dapp_storage, key_tuple, b"pumpkin_seed_price");
|
|
193
|
+
let mut pumpkin_seed_price_bcs = sui::bcs::new(pumpkin_seed_price_raw);
|
|
194
|
+
let pumpkin_seed_price = sui::bcs::peel_u64(&mut pumpkin_seed_price_bcs);
|
|
195
|
+
let extra_plot_price_raw = dapp_system::get_global_field<DappKey>(dapp_storage, key_tuple, b"extra_plot_price");
|
|
196
|
+
let mut extra_plot_price_bcs = sui::bcs::new(extra_plot_price_raw);
|
|
197
|
+
let extra_plot_price = sui::bcs::peel_u64(&mut extra_plot_price_bcs);
|
|
198
|
+
(wheat_seed_price, corn_seed_price, carrot_seed_price, pumpkin_seed_price, extra_plot_price)
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
public(package) fun set(dapp_storage: &mut DappStorage, wheat_seed_price: u64, corn_seed_price: u64, carrot_seed_price: u64, pumpkin_seed_price: u64, extra_plot_price: u64) {
|
|
202
|
+
let mut key_tuple = vector::empty();
|
|
203
|
+
key_tuple.push_back(TABLE_NAME);
|
|
204
|
+
let field_names = vector[b"wheat_seed_price", b"corn_seed_price", b"carrot_seed_price", b"pumpkin_seed_price", b"extra_plot_price"];
|
|
205
|
+
let value_tuple = encode(wheat_seed_price, corn_seed_price, carrot_seed_price, pumpkin_seed_price, extra_plot_price);
|
|
206
|
+
dapp_system::set_global_record<DappKey>(dapp_key::new(), dapp_storage, key_tuple, field_names, value_tuple, OFFCHAIN);
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
public fun get_struct(dapp_storage: &DappStorage): ShopConfig {
|
|
210
|
+
let mut key_tuple = vector::empty();
|
|
211
|
+
key_tuple.push_back(TABLE_NAME);
|
|
212
|
+
let wheat_seed_price_raw = dapp_system::get_global_field<DappKey>(dapp_storage, key_tuple, b"wheat_seed_price");
|
|
213
|
+
let mut wheat_seed_price_bcs = sui::bcs::new(wheat_seed_price_raw);
|
|
214
|
+
let wheat_seed_price = sui::bcs::peel_u64(&mut wheat_seed_price_bcs);
|
|
215
|
+
let corn_seed_price_raw = dapp_system::get_global_field<DappKey>(dapp_storage, key_tuple, b"corn_seed_price");
|
|
216
|
+
let mut corn_seed_price_bcs = sui::bcs::new(corn_seed_price_raw);
|
|
217
|
+
let corn_seed_price = sui::bcs::peel_u64(&mut corn_seed_price_bcs);
|
|
218
|
+
let carrot_seed_price_raw = dapp_system::get_global_field<DappKey>(dapp_storage, key_tuple, b"carrot_seed_price");
|
|
219
|
+
let mut carrot_seed_price_bcs = sui::bcs::new(carrot_seed_price_raw);
|
|
220
|
+
let carrot_seed_price = sui::bcs::peel_u64(&mut carrot_seed_price_bcs);
|
|
221
|
+
let pumpkin_seed_price_raw = dapp_system::get_global_field<DappKey>(dapp_storage, key_tuple, b"pumpkin_seed_price");
|
|
222
|
+
let mut pumpkin_seed_price_bcs = sui::bcs::new(pumpkin_seed_price_raw);
|
|
223
|
+
let pumpkin_seed_price = sui::bcs::peel_u64(&mut pumpkin_seed_price_bcs);
|
|
224
|
+
let extra_plot_price_raw = dapp_system::get_global_field<DappKey>(dapp_storage, key_tuple, b"extra_plot_price");
|
|
225
|
+
let mut extra_plot_price_bcs = sui::bcs::new(extra_plot_price_raw);
|
|
226
|
+
let extra_plot_price = sui::bcs::peel_u64(&mut extra_plot_price_bcs);
|
|
227
|
+
ShopConfig { wheat_seed_price, corn_seed_price, carrot_seed_price, pumpkin_seed_price, extra_plot_price }
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
public(package) fun set_struct(dapp_storage: &mut DappStorage, shop_config: ShopConfig) {
|
|
231
|
+
let mut key_tuple = vector::empty();
|
|
232
|
+
key_tuple.push_back(TABLE_NAME);
|
|
233
|
+
let field_names = vector[b"wheat_seed_price", b"corn_seed_price", b"carrot_seed_price", b"pumpkin_seed_price", b"extra_plot_price"];
|
|
234
|
+
let value_tuple = encode_struct(shop_config);
|
|
235
|
+
dapp_system::set_global_record<DappKey>(dapp_key::new(), dapp_storage, key_tuple, field_names, value_tuple, OFFCHAIN);
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
public fun encode(wheat_seed_price: u64, corn_seed_price: u64, carrot_seed_price: u64, pumpkin_seed_price: u64, extra_plot_price: u64): vector<vector<u8>> {
|
|
239
|
+
let mut value_tuple = vector::empty();
|
|
240
|
+
value_tuple.push_back(to_bytes(&wheat_seed_price));
|
|
241
|
+
value_tuple.push_back(to_bytes(&corn_seed_price));
|
|
242
|
+
value_tuple.push_back(to_bytes(&carrot_seed_price));
|
|
243
|
+
value_tuple.push_back(to_bytes(&pumpkin_seed_price));
|
|
244
|
+
value_tuple.push_back(to_bytes(&extra_plot_price));
|
|
245
|
+
value_tuple
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
public fun encode_struct(shop_config: ShopConfig): vector<vector<u8>> {
|
|
249
|
+
encode(shop_config.wheat_seed_price, shop_config.corn_seed_price, shop_config.carrot_seed_price, shop_config.pumpkin_seed_price, shop_config.extra_plot_price)
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
public fun decode(data: vector<u8>): ShopConfig {
|
|
253
|
+
let mut bcs_type = sui::bcs::new(data);
|
|
254
|
+
let wheat_seed_price = sui::bcs::peel_u64(&mut bcs_type);
|
|
255
|
+
let corn_seed_price = sui::bcs::peel_u64(&mut bcs_type);
|
|
256
|
+
let carrot_seed_price = sui::bcs::peel_u64(&mut bcs_type);
|
|
257
|
+
let pumpkin_seed_price = sui::bcs::peel_u64(&mut bcs_type);
|
|
258
|
+
let extra_plot_price = sui::bcs::peel_u64(&mut bcs_type);
|
|
259
|
+
ShopConfig {
|
|
260
|
+
wheat_seed_price,
|
|
261
|
+
corn_seed_price,
|
|
262
|
+
carrot_seed_price,
|
|
263
|
+
pumpkin_seed_price,
|
|
264
|
+
extra_plot_price,
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
}
|