create-dubhe 1.2.0-pre.98 → 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 +8 -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 +8 -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/Move.toml +4 -0
- 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 +8 -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
|
@@ -7,19 +7,22 @@
|
|
|
7
7
|
"// Utility Commands": "----------------",
|
|
8
8
|
"account:gen": "pnpm dubhe generate-key",
|
|
9
9
|
"check-balance": "pnpm dubhe check-balance --network",
|
|
10
|
-
"config:store": "pnpm dubhe config
|
|
10
|
+
"config:store": "pnpm dubhe store-config --output-ts-path ./deployment.ts --network",
|
|
11
11
|
"deploy": "pnpm dubhe publish --network",
|
|
12
12
|
"faucet": "pnpm dubhe faucet --network",
|
|
13
13
|
"format": "prettier --write .",
|
|
14
14
|
"format:check": "prettier --check .",
|
|
15
|
+
"generate": "pnpm dubhe generate",
|
|
15
16
|
"graphql": "docker-compose up --remove-orphans",
|
|
16
17
|
"indexer": "dubhe-indexer --database-url postgres://postgres:postgres@localhost:5432/postgres --checkpoint-url .chk --config-json dubhe.config.json",
|
|
18
|
+
"indexer:mainnet": "dubhe-indexer --database-url postgres://postgres:postgres@localhost:5432/postgres --checkpoint-url https://checkpoints.mainnet.sui.io --config-json dubhe.config.json",
|
|
17
19
|
"indexer:testnet": "dubhe-indexer --database-url postgres://postgres:postgres@localhost:5432/postgres --checkpoint-url https://checkpoints.testnet.sui.io --config-json dubhe.config.json",
|
|
18
20
|
"prod:localnet": "pnpm config:store localnet && pnpm run indexer",
|
|
19
|
-
"prod:
|
|
20
|
-
"
|
|
21
|
+
"prod:mainnet": "pnpm config:store mainnet && pnpm run indexer:mainnet",
|
|
22
|
+
"prod:testnet": "pnpm config:store testnet && pnpm run indexer:testnet",
|
|
21
23
|
"setup:localnet": "pnpm account:gen && pnpm faucet localnet && pnpm run deploy localnet && pnpm run config:store localnet && pnpm run indexer --force",
|
|
22
|
-
"setup:
|
|
24
|
+
"setup:mainnet": "pnpm account:gen && pnpm check-balance mainnet && pnpm run deploy mainnet && pnpm run config:store mainnet && pnpm run indexer:mainnet --force",
|
|
25
|
+
"setup:testnet": "pnpm account:gen && pnpm check-balance testnet && pnpm run deploy testnet && pnpm run config:store testnet && pnpm run indexer:testnet --force",
|
|
23
26
|
"start:localnet": "pnpm dubhe node",
|
|
24
27
|
"type-check": "tsc --noEmit",
|
|
25
28
|
"upgrade": "pnpm dubhe upgrade --network",
|
package/templates/101/sui-template/packages/contracts/src/counter/sources/codegen/dapp_key.move
CHANGED
|
@@ -1,32 +1,46 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
use
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
1
|
+
// Copyright (c) Obelisk Labs, Inc.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
/* Autogenerated file. Do not edit manually. */
|
|
5
|
+
|
|
6
|
+
module counter::dapp_key {
|
|
7
|
+
use std::type_name;
|
|
8
|
+
use sui::address;
|
|
9
|
+
use std::ascii::String;
|
|
10
|
+
|
|
11
|
+
/// DappKey — package-level authorization token for this DApp.
|
|
12
|
+
///
|
|
13
|
+
/// SECURITY: `new()` is intentionally `public(package)`.
|
|
14
|
+
/// Only code compiled into this package can construct a DappKey instance.
|
|
15
|
+
/// All framework write functions (`set_record`, `set_field`,
|
|
16
|
+
/// `take_record`, `create_user_storage`, …) require `_auth: DappKey`
|
|
17
|
+
/// as proof that the call originated from inside this package — an
|
|
18
|
+
/// external PTB cannot fabricate that proof.
|
|
19
|
+
///
|
|
20
|
+
/// NEVER change `new()` to `public`, and never accept a DappKey
|
|
21
|
+
/// value as a parameter from an external caller. Either mistake removes
|
|
22
|
+
/// every package-level access guard, allowing any PTB to write arbitrary
|
|
23
|
+
/// user data or register UserStorages without going through the DApp's
|
|
24
|
+
/// own entry functions.
|
|
25
|
+
|
|
26
|
+
public struct DappKey has copy, drop {}
|
|
27
|
+
|
|
28
|
+
/// Constructs an authorization token. Callable only from within this package.
|
|
29
|
+
/// Pass the result as `_auth` to any framework function that requires it.
|
|
30
|
+
public(package) fun new(): DappKey {
|
|
31
|
+
DappKey {}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
public fun to_string(): String {
|
|
35
|
+
type_name::with_defining_ids<DappKey>().into_string()
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
public fun package_id(): address {
|
|
39
|
+
let package_id_str = type_name::with_defining_ids<DappKey>().address_string();
|
|
40
|
+
address::from_ascii_bytes(package_id_str.as_bytes())
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
public fun eq<DappKey1: copy + drop, DappKey2: copy + drop>(_: &DappKey1, _: &DappKey2): bool {
|
|
44
|
+
type_name::with_defining_ids<DappKey1>() == type_name::with_defining_ids<DappKey2>()
|
|
45
|
+
}
|
|
32
46
|
}
|
package/templates/101/sui-template/packages/contracts/src/counter/sources/codegen/genesis.move
CHANGED
|
@@ -1,16 +1,33 @@
|
|
|
1
|
-
#[allow(lint(share_owned))]
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
#[allow(lint(share_owned))]
|
|
2
|
+
module counter::genesis {
|
|
3
|
+
use sui::clock::Clock;
|
|
4
|
+
use dubhe::dapp_service::{DappHub, DappStorage};
|
|
5
|
+
use counter::dapp_key;
|
|
6
|
+
use dubhe::dapp_system;
|
|
7
|
+
use std::ascii::string;
|
|
7
8
|
|
|
8
|
-
|
|
9
|
-
//
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
// The one-shot guard is enforced inside dapp_system::create_dapp, which
|
|
10
|
+
// records the DappKey type in DappHub before returning DappStorage.
|
|
11
|
+
// genesis.move does not need to carry its own guard.
|
|
12
|
+
public fun run(dapp_hub: &mut DappHub, clock: &Clock, ctx: &mut TxContext) {
|
|
13
|
+
// create_dapp aborts with dapp_already_initialized_error on repeated calls.
|
|
14
|
+
let dapp_key = dapp_key::new();
|
|
15
|
+
let mut ds = dapp_system::create_dapp(dapp_key, dapp_hub, string(b"counter"), string(b"counter contract"), 1, clock, ctx);
|
|
12
16
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
17
|
+
// Set up initial DApp state (e.g. default resource values).
|
|
18
|
+
counter::deploy_hook::run(&mut ds, ctx);
|
|
19
|
+
|
|
20
|
+
// Share DappStorage so every transaction can access it.
|
|
21
|
+
transfer::public_share_object(ds);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
// Called during contract upgrades to register newly added resource tables
|
|
25
|
+
// and run any custom migration logic. `dubhe upgrade` rewrites the region
|
|
26
|
+
// between the separator comments; do not edit that block manually.
|
|
27
|
+
public(package) fun migrate(_dapp_hub: &mut DappHub, _dapp_storage: &mut DappStorage, _ctx: &mut TxContext) {
|
|
28
|
+
// ==========================================
|
|
29
|
+
// Add custom migration logic here (e.g. initialise new resource defaults).
|
|
30
|
+
// migrate_to_vN in migrate.move calls this function automatically.
|
|
31
|
+
// ==========================================
|
|
32
|
+
}
|
|
16
33
|
}
|
package/templates/101/sui-template/packages/contracts/src/counter/sources/codegen/init_test.move
CHANGED
|
@@ -1,18 +1,23 @@
|
|
|
1
|
-
#[test_only]
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
use sui::test_scenario::Scenario;
|
|
5
|
-
use dubhe::dapp_service::DappHub;
|
|
1
|
+
#[test_only]
|
|
2
|
+
|
|
3
|
+
module counter::init_test {
|
|
6
4
|
use dubhe::dapp_system;
|
|
7
5
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
6
|
+
/// Create a DappHub for testing without sharing it.
|
|
7
|
+
/// Suitable for unit tests that need a DappHub context.
|
|
8
|
+
public fun create_dapp_hub_for_testing(ctx: &mut TxContext): dubhe::dapp_service::DappHub {
|
|
9
|
+
dapp_system::create_dapp_hub_for_testing(ctx)
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
/// Create a DappStorage for this DApp without sharing it.
|
|
13
|
+
/// Suitable for unit tests that exercise global-resource functions.
|
|
14
|
+
public fun create_dapp_storage_for_testing(ctx: &mut TxContext): dubhe::dapp_service::DappStorage {
|
|
15
|
+
dubhe::dapp_system::create_dapp_storage_for_testing<counter::dapp_key::DappKey>(ctx)
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/// Create a UserStorage for `owner` without sharing it.
|
|
19
|
+
/// Suitable for unit tests that exercise user-level resource functions.
|
|
20
|
+
public fun create_user_storage_for_testing(owner: address, ctx: &mut TxContext): dubhe::dapp_service::UserStorage {
|
|
21
|
+
dubhe::dapp_system::create_user_storage_for_testing<counter::dapp_key::DappKey>(owner, ctx)
|
|
17
22
|
}
|
|
18
23
|
}
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
// Copyright (c) Obelisk Labs, Inc.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
/* Autogenerated file. Do not edit manually. */
|
|
5
|
+
|
|
6
|
+
module counter::counter2 {
|
|
7
|
+
use sui::bcs::{to_bytes};
|
|
8
|
+
use std::ascii::{string, String, into_bytes};
|
|
9
|
+
use dubhe::dapp_service::UserStorage;
|
|
10
|
+
use dubhe::dapp_system;
|
|
11
|
+
use counter::dapp_key;
|
|
12
|
+
use counter::dapp_key::DappKey;
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
const TABLE_NAME: vector<u8> = b"counter2";
|
|
16
|
+
const OFFCHAIN: bool = false;
|
|
17
|
+
|
|
18
|
+
public struct Counter2 has copy, drop, store {
|
|
19
|
+
value: u32,
|
|
20
|
+
data: u64,
|
|
21
|
+
key: String,
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
public fun new(value: u32, data: u64, key: String): Counter2 {
|
|
25
|
+
Counter2 {
|
|
26
|
+
value,
|
|
27
|
+
data,
|
|
28
|
+
key,
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
public fun value(self: &Counter2): u32 {
|
|
33
|
+
self.value
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
public fun data(self: &Counter2): u64 {
|
|
37
|
+
self.data
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
public fun key(self: &Counter2): String {
|
|
41
|
+
self.key
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
public fun update_value(self: &mut Counter2, value: u32) {
|
|
45
|
+
self.value = value
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
public fun update_data(self: &mut Counter2, data: u64) {
|
|
49
|
+
self.data = data
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
public fun update_key(self: &mut Counter2, key: String) {
|
|
53
|
+
self.key = key
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
public fun has(user_storage: &UserStorage): bool {
|
|
57
|
+
let mut key_tuple = vector::empty();
|
|
58
|
+
key_tuple.push_back(TABLE_NAME);
|
|
59
|
+
dapp_system::has_record<DappKey>(user_storage, key_tuple)
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
public fun ensure_has(user_storage: &UserStorage) {
|
|
63
|
+
let mut key_tuple = vector::empty();
|
|
64
|
+
key_tuple.push_back(TABLE_NAME);
|
|
65
|
+
dapp_system::ensure_has_record<DappKey>(user_storage, key_tuple)
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
public fun ensure_has_not(user_storage: &UserStorage) {
|
|
69
|
+
let mut key_tuple = vector::empty();
|
|
70
|
+
key_tuple.push_back(TABLE_NAME);
|
|
71
|
+
dapp_system::ensure_has_not_record<DappKey>(user_storage, key_tuple)
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
public(package) fun delete(user_storage: &mut UserStorage, ctx: &TxContext) {
|
|
76
|
+
let mut key_tuple = vector::empty();
|
|
77
|
+
key_tuple.push_back(TABLE_NAME);
|
|
78
|
+
dapp_system::delete_record<DappKey>(dapp_key::new(), user_storage, key_tuple, vector[b"value", b"data", b"key"], ctx);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
public fun get_value(user_storage: &UserStorage): u32 {
|
|
82
|
+
let mut key_tuple = vector::empty();
|
|
83
|
+
key_tuple.push_back(TABLE_NAME);
|
|
84
|
+
let value_raw = dapp_system::get_field<DappKey>(user_storage, key_tuple, b"value");
|
|
85
|
+
let mut value_bcs = sui::bcs::new(value_raw);
|
|
86
|
+
let value = sui::bcs::peel_u32(&mut value_bcs);
|
|
87
|
+
value
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
public(package) fun set_value(user_storage: &mut UserStorage, value: u32, ctx: &mut TxContext) {
|
|
91
|
+
let mut key_tuple = vector::empty();
|
|
92
|
+
key_tuple.push_back(TABLE_NAME);
|
|
93
|
+
let value = to_bytes(&value);
|
|
94
|
+
dapp_system::set_field<DappKey>(dapp_key::new(), user_storage, key_tuple, b"value", value, ctx);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
public fun get_data(user_storage: &UserStorage): u64 {
|
|
98
|
+
let mut key_tuple = vector::empty();
|
|
99
|
+
key_tuple.push_back(TABLE_NAME);
|
|
100
|
+
let data_raw = dapp_system::get_field<DappKey>(user_storage, key_tuple, b"data");
|
|
101
|
+
let mut data_bcs = sui::bcs::new(data_raw);
|
|
102
|
+
let data = sui::bcs::peel_u64(&mut data_bcs);
|
|
103
|
+
data
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
public(package) fun set_data(user_storage: &mut UserStorage, data: u64, ctx: &mut TxContext) {
|
|
107
|
+
let mut key_tuple = vector::empty();
|
|
108
|
+
key_tuple.push_back(TABLE_NAME);
|
|
109
|
+
let value = to_bytes(&data);
|
|
110
|
+
dapp_system::set_field<DappKey>(dapp_key::new(), user_storage, key_tuple, b"data", value, ctx);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
public fun get_key(user_storage: &UserStorage): String {
|
|
114
|
+
let mut key_tuple = vector::empty();
|
|
115
|
+
key_tuple.push_back(TABLE_NAME);
|
|
116
|
+
let key_raw = dapp_system::get_field<DappKey>(user_storage, key_tuple, b"key");
|
|
117
|
+
let mut key_bcs = sui::bcs::new(key_raw);
|
|
118
|
+
let key = dubhe::bcs::peel_string(&mut key_bcs);
|
|
119
|
+
key
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
public(package) fun set_key(user_storage: &mut UserStorage, key: String, ctx: &mut TxContext) {
|
|
123
|
+
let mut key_tuple = vector::empty();
|
|
124
|
+
key_tuple.push_back(TABLE_NAME);
|
|
125
|
+
let value = to_bytes(&into_bytes(key));
|
|
126
|
+
dapp_system::set_field<DappKey>(dapp_key::new(), user_storage, key_tuple, b"key", value, ctx);
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
public fun get(user_storage: &UserStorage): (u32, u64, String) {
|
|
130
|
+
let mut key_tuple = vector::empty();
|
|
131
|
+
key_tuple.push_back(TABLE_NAME);
|
|
132
|
+
let value_raw = dapp_system::get_field<DappKey>(user_storage, key_tuple, b"value");
|
|
133
|
+
let mut value_bcs = sui::bcs::new(value_raw);
|
|
134
|
+
let value = sui::bcs::peel_u32(&mut value_bcs);
|
|
135
|
+
let data_raw = dapp_system::get_field<DappKey>(user_storage, key_tuple, b"data");
|
|
136
|
+
let mut data_bcs = sui::bcs::new(data_raw);
|
|
137
|
+
let data = sui::bcs::peel_u64(&mut data_bcs);
|
|
138
|
+
let key_raw = dapp_system::get_field<DappKey>(user_storage, key_tuple, b"key");
|
|
139
|
+
let mut key_bcs = sui::bcs::new(key_raw);
|
|
140
|
+
let key = dubhe::bcs::peel_string(&mut key_bcs);
|
|
141
|
+
(value, data, key)
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
public(package) fun set(user_storage: &mut UserStorage, value: u32, data: u64, key: String, ctx: &mut TxContext) {
|
|
145
|
+
let mut key_tuple = vector::empty();
|
|
146
|
+
key_tuple.push_back(TABLE_NAME);
|
|
147
|
+
let field_names = vector[b"value", b"data", b"key"];
|
|
148
|
+
let value_tuple = encode(value, data, key);
|
|
149
|
+
dapp_system::set_record<DappKey>(dapp_key::new(), user_storage, key_tuple, field_names, value_tuple, OFFCHAIN, ctx);
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
public fun get_struct(user_storage: &UserStorage): Counter2 {
|
|
153
|
+
let mut key_tuple = vector::empty();
|
|
154
|
+
key_tuple.push_back(TABLE_NAME);
|
|
155
|
+
let value_raw = dapp_system::get_field<DappKey>(user_storage, key_tuple, b"value");
|
|
156
|
+
let mut value_bcs = sui::bcs::new(value_raw);
|
|
157
|
+
let value = sui::bcs::peel_u32(&mut value_bcs);
|
|
158
|
+
let data_raw = dapp_system::get_field<DappKey>(user_storage, key_tuple, b"data");
|
|
159
|
+
let mut data_bcs = sui::bcs::new(data_raw);
|
|
160
|
+
let data = sui::bcs::peel_u64(&mut data_bcs);
|
|
161
|
+
let key_raw = dapp_system::get_field<DappKey>(user_storage, key_tuple, b"key");
|
|
162
|
+
let mut key_bcs = sui::bcs::new(key_raw);
|
|
163
|
+
let key = dubhe::bcs::peel_string(&mut key_bcs);
|
|
164
|
+
Counter2 { value, data, key }
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
public(package) fun set_struct(user_storage: &mut UserStorage, counter2: Counter2, ctx: &mut TxContext) {
|
|
168
|
+
let mut key_tuple = vector::empty();
|
|
169
|
+
key_tuple.push_back(TABLE_NAME);
|
|
170
|
+
let field_names = vector[b"value", b"data", b"key"];
|
|
171
|
+
let value_tuple = encode_struct(counter2);
|
|
172
|
+
dapp_system::set_record<DappKey>(dapp_key::new(), user_storage, key_tuple, field_names, value_tuple, OFFCHAIN, ctx);
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
public fun encode(value: u32, data: u64, key: String): vector<vector<u8>> {
|
|
176
|
+
let mut value_tuple = vector::empty();
|
|
177
|
+
value_tuple.push_back(to_bytes(&value));
|
|
178
|
+
value_tuple.push_back(to_bytes(&data));
|
|
179
|
+
value_tuple.push_back(to_bytes(&into_bytes(key)));
|
|
180
|
+
value_tuple
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
public fun encode_struct(counter2: Counter2): vector<vector<u8>> {
|
|
184
|
+
encode(counter2.value, counter2.data, counter2.key)
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
public fun decode(data: vector<u8>): Counter2 {
|
|
188
|
+
let mut bcs_type = sui::bcs::new(data);
|
|
189
|
+
let value = sui::bcs::peel_u32(&mut bcs_type);
|
|
190
|
+
let data = sui::bcs::peel_u64(&mut bcs_type);
|
|
191
|
+
let key = string(sui::bcs::peel_vec_u8(&mut bcs_type));
|
|
192
|
+
Counter2 {
|
|
193
|
+
value,
|
|
194
|
+
data,
|
|
195
|
+
key,
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
// Copyright (c) Obelisk Labs, Inc.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
/* Autogenerated file. Do not edit manually. */
|
|
5
|
+
|
|
6
|
+
module counter::counter2withkey {
|
|
7
|
+
use sui::bcs::{to_bytes};
|
|
8
|
+
use std::ascii::String;
|
|
9
|
+
use dubhe::dapp_service::UserStorage;
|
|
10
|
+
use dubhe::dapp_system;
|
|
11
|
+
use counter::dapp_key;
|
|
12
|
+
use counter::dapp_key::DappKey;
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
const TABLE_NAME: vector<u8> = b"counter2withkey";
|
|
16
|
+
const OFFCHAIN: bool = false;
|
|
17
|
+
|
|
18
|
+
public fun has(user_storage: &UserStorage, data: u64, key: String): bool {
|
|
19
|
+
let mut key_tuple = vector::empty();
|
|
20
|
+
key_tuple.push_back(TABLE_NAME);
|
|
21
|
+
key_tuple.push_back(to_bytes(&data));
|
|
22
|
+
key_tuple.push_back(to_bytes(&key));
|
|
23
|
+
dapp_system::has_record<DappKey>(user_storage, key_tuple)
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
public fun ensure_has(user_storage: &UserStorage, data: u64, key: String) {
|
|
27
|
+
let mut key_tuple = vector::empty();
|
|
28
|
+
key_tuple.push_back(TABLE_NAME);
|
|
29
|
+
key_tuple.push_back(to_bytes(&data));
|
|
30
|
+
key_tuple.push_back(to_bytes(&key));
|
|
31
|
+
dapp_system::ensure_has_record<DappKey>(user_storage, key_tuple)
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
public fun ensure_has_not(user_storage: &UserStorage, data: u64, key: String) {
|
|
35
|
+
let mut key_tuple = vector::empty();
|
|
36
|
+
key_tuple.push_back(TABLE_NAME);
|
|
37
|
+
key_tuple.push_back(to_bytes(&data));
|
|
38
|
+
key_tuple.push_back(to_bytes(&key));
|
|
39
|
+
dapp_system::ensure_has_not_record<DappKey>(user_storage, key_tuple)
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
public(package) fun delete(user_storage: &mut UserStorage, data: u64, key: String, ctx: &TxContext) {
|
|
44
|
+
let mut key_tuple = vector::empty();
|
|
45
|
+
key_tuple.push_back(TABLE_NAME);
|
|
46
|
+
key_tuple.push_back(to_bytes(&data));
|
|
47
|
+
key_tuple.push_back(to_bytes(&key));
|
|
48
|
+
dapp_system::delete_record<DappKey>(dapp_key::new(), user_storage, key_tuple, vector[b"value"], ctx);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
public fun get(user_storage: &UserStorage, data: u64, key: String): u32 {
|
|
52
|
+
let mut key_tuple = vector::empty();
|
|
53
|
+
key_tuple.push_back(TABLE_NAME);
|
|
54
|
+
key_tuple.push_back(to_bytes(&data));
|
|
55
|
+
key_tuple.push_back(to_bytes(&key));
|
|
56
|
+
let value_raw = dapp_system::get_field<DappKey>(user_storage, key_tuple, b"value");
|
|
57
|
+
let mut value_bcs = sui::bcs::new(value_raw);
|
|
58
|
+
let value = sui::bcs::peel_u32(&mut value_bcs);
|
|
59
|
+
value
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
public(package) fun set(user_storage: &mut UserStorage, data: u64, key: String, value: u32, ctx: &mut TxContext) {
|
|
63
|
+
let mut key_tuple = vector::empty();
|
|
64
|
+
key_tuple.push_back(TABLE_NAME);
|
|
65
|
+
key_tuple.push_back(to_bytes(&data));
|
|
66
|
+
key_tuple.push_back(to_bytes(&key));
|
|
67
|
+
let field_names = vector[b"value"];
|
|
68
|
+
let value_tuple = encode(value);
|
|
69
|
+
dapp_system::set_record<DappKey>(dapp_key::new(), user_storage, key_tuple, field_names, value_tuple, OFFCHAIN, ctx);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
public fun encode(value: u32): vector<vector<u8>> {
|
|
73
|
+
let mut value_tuple = vector::empty();
|
|
74
|
+
value_tuple.push_back(to_bytes(&value));
|
|
75
|
+
value_tuple
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
// ─── keys: mint (developer provides keys; framework ensures no duplicate) ─
|
|
80
|
+
// Choosing the ID strategy (fresh address, counter, coordinate pack, etc.)
|
|
81
|
+
// is intentionally left to the caller.
|
|
82
|
+
public(package) fun mint(
|
|
83
|
+
user_storage: &mut UserStorage,
|
|
84
|
+
data: u64, key: String, value: u32,
|
|
85
|
+
ctx: &mut TxContext,
|
|
86
|
+
) {
|
|
87
|
+
ensure_has_not(user_storage, data, key);
|
|
88
|
+
set(user_storage, data, key, value, ctx);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
@@ -1,14 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
module counter::value {
|
|
1
|
+
// Copyright (c) Obelisk Labs, Inc.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
/* Autogenerated file. Do not edit manually. */
|
|
5
|
+
|
|
6
|
+
module counter::value {
|
|
8
7
|
use sui::bcs::{to_bytes};
|
|
9
|
-
use
|
|
10
|
-
use dubhe::table_id;
|
|
11
|
-
use dubhe::dapp_service::{Self, DappHub};
|
|
8
|
+
use dubhe::dapp_service::UserStorage;
|
|
12
9
|
use dubhe::dapp_system;
|
|
13
10
|
use counter::dapp_key;
|
|
14
11
|
use counter::dapp_key::DappKey;
|
|
@@ -18,32 +15,45 @@
|
|
|
18
15
|
const OFFCHAIN: bool = false;
|
|
19
16
|
|
|
20
17
|
|
|
21
|
-
public fun has(
|
|
18
|
+
public fun has(user_storage: &UserStorage): bool {
|
|
19
|
+
let mut key_tuple = vector::empty();
|
|
20
|
+
key_tuple.push_back(TABLE_NAME);
|
|
21
|
+
dapp_system::has_record<DappKey>(user_storage, key_tuple)
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
public fun ensure_has(user_storage: &UserStorage) {
|
|
25
|
+
let mut key_tuple = vector::empty();
|
|
26
|
+
key_tuple.push_back(TABLE_NAME);
|
|
27
|
+
dapp_system::ensure_has_record<DappKey>(user_storage, key_tuple)
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
public fun ensure_has_not(user_storage: &UserStorage) {
|
|
22
31
|
let mut key_tuple = vector::empty();
|
|
23
32
|
key_tuple.push_back(TABLE_NAME);
|
|
24
|
-
dapp_system::
|
|
33
|
+
dapp_system::ensure_has_not_record<DappKey>(user_storage, key_tuple)
|
|
25
34
|
}
|
|
26
35
|
|
|
27
|
-
public(package) fun delete(
|
|
36
|
+
public(package) fun delete(user_storage: &mut UserStorage, ctx: &TxContext) {
|
|
28
37
|
let mut key_tuple = vector::empty();
|
|
29
38
|
key_tuple.push_back(TABLE_NAME);
|
|
30
|
-
dapp_system::delete_record<DappKey>(
|
|
39
|
+
dapp_system::delete_record<DappKey>(dapp_key::new(), user_storage, key_tuple, vector[b"value"], ctx);
|
|
31
40
|
}
|
|
32
41
|
|
|
33
|
-
public fun get(
|
|
42
|
+
public fun get(user_storage: &UserStorage): (u32) {
|
|
34
43
|
let mut key_tuple = vector::empty();
|
|
35
44
|
key_tuple.push_back(TABLE_NAME);
|
|
36
|
-
let
|
|
37
|
-
let mut
|
|
38
|
-
let value = sui::bcs::peel_u32(&mut
|
|
45
|
+
let value_raw = dapp_system::get_field<DappKey>(user_storage, key_tuple, b"value");
|
|
46
|
+
let mut value_bcs = sui::bcs::new(value_raw);
|
|
47
|
+
let value = sui::bcs::peel_u32(&mut value_bcs);
|
|
39
48
|
(value)
|
|
40
49
|
}
|
|
41
50
|
|
|
42
|
-
public(package) fun set(
|
|
51
|
+
public(package) fun set(user_storage: &mut UserStorage, value: u32, ctx: &mut TxContext) {
|
|
43
52
|
let mut key_tuple = vector::empty();
|
|
44
53
|
key_tuple.push_back(TABLE_NAME);
|
|
54
|
+
let field_names = vector[b"value"];
|
|
45
55
|
let value_tuple = encode(value);
|
|
46
|
-
dapp_system::set_record(
|
|
56
|
+
dapp_system::set_record<DappKey>(dapp_key::new(), user_storage, key_tuple, field_names, value_tuple, OFFCHAIN, ctx);
|
|
47
57
|
}
|
|
48
58
|
|
|
49
59
|
public fun encode(value: u32): vector<vector<u8>> {
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
// Copyright (c) Obelisk Labs, Inc.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
/* Autogenerated file. Do not edit manually. */
|
|
5
|
+
|
|
6
|
+
module counter::user_storage_init {
|
|
7
|
+
use dubhe::dapp_service::{DappHub, DappStorage};
|
|
8
|
+
use dubhe::dapp_system;
|
|
9
|
+
use counter::dapp_key;
|
|
10
|
+
use counter::dapp_key::DappKey;
|
|
11
|
+
use counter::migrate;
|
|
12
|
+
|
|
13
|
+
/// Create a UserStorage for the transaction sender within this DApp.
|
|
14
|
+
/// Must be called once before the user can interact with any user-level resources.
|
|
15
|
+
/// Aborts if the DApp version does not match this package, the DApp is paused,
|
|
16
|
+
/// or the framework version has advanced.
|
|
17
|
+
#[allow(lint(public_entry))]
|
|
18
|
+
public entry fun init_user_storage(
|
|
19
|
+
dapp_hub: &DappHub,
|
|
20
|
+
dapp_storage: &mut DappStorage,
|
|
21
|
+
ctx: &mut TxContext,
|
|
22
|
+
) {
|
|
23
|
+
dapp_system::ensure_latest_version<DappKey>(dapp_storage, migrate::on_chain_version());
|
|
24
|
+
dapp_system::create_user_storage(dapp_key::new(), dapp_hub, dapp_storage, ctx);
|
|
25
|
+
}
|
|
26
|
+
}
|
package/templates/101/sui-template/packages/contracts/src/counter/sources/scripts/deploy_hook.move
CHANGED
|
@@ -1,13 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
#[allow(unused_use)]
|
|
4
|
-
|
|
5
|
-
/* Autogenerated file. Do not edit manually. */
|
|
6
|
-
|
|
7
|
-
module counter::deploy_hook {
|
|
8
|
-
use dubhe::dapp_service::DappHub;
|
|
9
|
-
use counter::value;
|
|
1
|
+
module counter::deploy_hook {
|
|
2
|
+
use dubhe::dapp_service::DappStorage;
|
|
10
3
|
|
|
11
|
-
|
|
12
|
-
|
|
4
|
+
public(package) fun run(_dapp_storage: &mut DappStorage, _ctx: &mut TxContext) {
|
|
5
|
+
// No global state to initialize for a UserStorage-based counter.
|
|
6
|
+
// Each user initializes their own storage via user_storage_init::init_user_storage.
|
|
7
|
+
}
|
|
13
8
|
}
|
package/templates/101/sui-template/packages/contracts/src/counter/sources/systems/counter.move
CHANGED
|
@@ -1,16 +1,28 @@
|
|
|
1
1
|
module counter::counter_system {
|
|
2
|
-
use
|
|
3
|
-
use dubhe::dapp_service::DappHub;
|
|
2
|
+
use dubhe::dapp_service::UserStorage;
|
|
4
3
|
use counter::value;
|
|
5
|
-
use dubhe::address_system;
|
|
6
4
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
if (value::has(
|
|
10
|
-
|
|
11
|
-
value::set(dapp_hub, sender, new_number, ctx);
|
|
5
|
+
#[allow(lint(public_entry))]
|
|
6
|
+
public entry fun inc(user_storage: &mut UserStorage, ctx: &mut TxContext) {
|
|
7
|
+
let curr = if (value::has(user_storage)) {
|
|
8
|
+
value::get(user_storage)
|
|
12
9
|
} else {
|
|
13
|
-
|
|
14
|
-
}
|
|
10
|
+
0u32
|
|
11
|
+
};
|
|
12
|
+
value::set(user_storage, curr + 1, ctx);
|
|
15
13
|
}
|
|
16
|
-
|
|
14
|
+
|
|
15
|
+
/// Guard-only entry function used for testing ensure_latest_version and
|
|
16
|
+
/// ensure_not_paused enforcement. Performs no writes.
|
|
17
|
+
#[allow(lint(public_entry))]
|
|
18
|
+
public entry fun check_version_guard(
|
|
19
|
+
dapp_storage: &dubhe::dapp_service::DappStorage,
|
|
20
|
+
_ctx: &mut TxContext
|
|
21
|
+
) {
|
|
22
|
+
dubhe::dapp_system::ensure_latest_version<counter::dapp_key::DappKey>(
|
|
23
|
+
dapp_storage,
|
|
24
|
+
counter::migrate::on_chain_version()
|
|
25
|
+
);
|
|
26
|
+
dubhe::dapp_system::ensure_not_paused<counter::dapp_key::DappKey>(dapp_storage);
|
|
27
|
+
}
|
|
28
|
+
}
|