create-dubhe 1.2.0-pre.109 → 1.2.0-pre.112
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 +1 -1
- package/templates/101/sui-template/docker-compose.testnet.yml +1 -1
- package/templates/101/sui-template/packages/contracts/deployment.ts +1 -1
- package/templates/101/sui-template/packages/contracts/dubhe.config.json +17 -7
- package/templates/101/sui-template/packages/contracts/dubhe.config.ts +0 -1
- package/templates/101/sui-template/packages/contracts/metadata.json +12 -12
- package/templates/101/sui-template/packages/contracts/src/counter/sources/codegen/resources/counter2.move +186 -0
- package/templates/101/sui-template/packages/contracts/src/counter/sources/codegen/resources/counter2withkey.move +78 -0
- package/templates/101/sui-template/packages/contracts/src/counter/sources/codegen/resources/value.move +12 -0
- package/templates/101/sui-template/packages/contracts/src/dubhe/Move.lock +18 -27
- package/templates/101/sui-template/packages/contracts/src/dubhe/sources/tests/address.move +95 -55
- package/templates/101/sui-template/packages/contracts/src/dubhe/sources/tests/dapp_system.move +113 -0
- package/templates/contract/sui-template/dubhe.config.ts +0 -1
- package/templates/contract/sui-template/src/dubhe/Move.lock +18 -27
- package/templates/contract/sui-template/src/dubhe/sources/tests/address.move +95 -55
- package/templates/contract/sui-template/src/dubhe/sources/tests/dapp_system.move +113 -0
- package/templates/nextjs/sui-template/packages/contracts/dubhe.config.ts +0 -4
- package/templates/nextjs/sui-template/packages/contracts/src/counter/Move.lock +0 -6
- package/templates/nextjs/sui-template/packages/contracts/src/counter/sources/codegen/resources/counter1.move +12 -0
- package/templates/nextjs/sui-template/packages/contracts/src/dubhe/Move.lock +18 -27
- package/templates/nextjs/sui-template/packages/contracts/src/dubhe/sources/tests/address.move +95 -55
- package/templates/nextjs/sui-template/packages/contracts/src/dubhe/sources/tests/dapp_system.move +113 -0
- package/templates/101/sui-template/packages/contracts/src/counter/Published.toml +0 -15
- package/templates/nextjs/sui-template/packages/contracts/src/counter/Published.toml +0 -15
package/dist/cli.js
CHANGED
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/bin/cli.ts","../src/config/chains.ts","../package.json","../src/exists.ts"],"sourcesContent":["import { fileURLToPath } from 'node:url';\nimport fs from 'node:fs/promises';\nimport path from 'node:path';\nimport glob from 'fast-glob';\nimport yargsInteractive from 'yargs-interactive';\nimport { CHAINS } from '../config/chains';\nimport packageJson from '../../package.json';\nimport { exists } from '../exists';\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = path.dirname(__filename);\n\nconst cwd = process.cwd();\n\nconst init = async () => {\n // Prepare chain options\n const chainChoices = CHAINS.map(({ title, description, value }) => ({\n name: `${title} - ${description}`,\n value\n }));\n\n // Step 1: Choose project name and chain\n const firstStep = await yargsInteractive()\n .usage('$0 [args]')\n .interactive({\n interactive: { default: true },\n projectName: {\n describe: 'Name your project',\n type: 'input'\n },\n chain: {\n describe: 'Pick your chain',\n type: 'list',\n choices: chainChoices.map((c) => c.value)\n },\n dubheVersion: {\n describe: 'The version of Dubhe packages to use, defaults to latest',\n type: 'input',\n default: packageJson.version\n }\n });\n\n const { projectName, chain, dubheVersion } = firstStep;\n if (!projectName) throw new Error('No project name provided.');\n\n // Get available templates based on the selected chain\n const selectedChain = CHAINS.find((c) => c.value === chain);\n if (!selectedChain) {\n throw new Error('Invalid chain selection');\n }\n\n // Prepare platform options\n const platformChoices = selectedChain.supportedTemplates.map(({ title, description, value }) => ({\n name: `${title} - ${description}`,\n value\n }));\n\n // Step 2: Choose platform\n const secondStep = await yargsInteractive()\n .usage('$0 [args]')\n .interactive({\n interactive: { default: true },\n platform: {\n describe: 'Pick your platform',\n type: 'list',\n choices: platformChoices.map((c) => c.value)\n }\n });\n\n const { platform } = secondStep;\n\n const selectedTemplate = selectedChain.supportedTemplates.find((t) => t.value === platform);\n if (!selectedTemplate) {\n throw new Error('Invalid platform selection');\n }\n\n const pkgInfo = pkgFromUserAgent(process.env.npm_config_user_agent);\n const pkgManager = pkgInfo ? pkgInfo.name : 'npm';\n\n const sourceDir = path.join(\n __dirname,\n '..',\n 'templates',\n selectedTemplate.path.replace('{chain}', chain)\n );\n\n if (!(await exists(sourceDir))) {\n throw new Error(`Template directory not found: ${sourceDir}`);\n }\n\n const destDir = path.join(process.cwd(), projectName);\n if (await exists(destDir)) {\n throw new Error(`Target directory \"${destDir}\" already exists.`);\n }\n\n const files = await glob('**/*', { cwd: sourceDir, dot: true });\n\n for (const filename of files) {\n const sourceFile = path.join(sourceDir, filename);\n const destFile = path.join(destDir, filename);\n\n await fs.mkdir(path.dirname(destFile), { recursive: true });\n\n if (/package\\.json$/.test(sourceFile)) {\n const source = await fs.readFile(sourceFile, 'utf-8');\n await fs.writeFile(destFile, source.replaceAll(/{{dubhe-version}}/g, dubheVersion), 'utf-8');\n } else if (/\\.gitignore_$/.test(sourceFile)) {\n await fs.copyFile(sourceFile, destFile.replace(/_$/, ''));\n } else {\n await fs.copyFile(sourceFile, destFile);\n }\n }\n\n const cdProjectName = path.relative(cwd, destDir);\n\n const styles = {\n success: '\\x1b[32m%s\\x1b[0m',\n info: '\\x1b[36m%s\\x1b[0m',\n command: '\\x1b[33m%s\\x1b[0m',\n separator: '\\x1b[90m%s\\x1b[0m'\n };\n\n console.log('\\n' + '='.repeat(60));\n console.log(styles.success, '🎉 Project creation successful!');\n console.log(styles.info, `📁 Project location: ${destDir}`);\n console.log(styles.separator, '-'.repeat(60));\n console.log(styles.info, 'Next steps:\\n');\n\n if (destDir !== cwd) {\n console.log(\n styles.command,\n ` cd ${cdProjectName.includes(' ') ? `\"${cdProjectName}\"` : cdProjectName}`\n );\n }\n\n const actualTemplate = selectedTemplate.value;\n\n switch (actualTemplate) {\n case '101':\n case 'web':\n console.log(styles.command, ` ${pkgManager} install`);\n console.log(styles.command, ` ${pkgManager} dubhe doctor`);\n console.log(styles.command, ` ${pkgManager} run dev`);\n break;\n case 'contract':\n console.log(styles.command, ` ${pkgManager} install`);\n console.log(styles.command, ` ${pkgManager} dubhe doctor`);\n break;\n }\n\n console.log(styles.separator, '\\n' + '='.repeat(60) + '\\n');\n};\n\nfunction pkgFromUserAgent(userAgent: string | undefined) {\n if (!userAgent) return undefined;\n const pkgSpec = userAgent.split(' ')[0];\n const pkgSpecArr = pkgSpec.split('/');\n return {\n name: pkgSpecArr[0],\n version: pkgSpecArr[1]\n };\n}\n\ninit().catch((e) => {\n console.error(e);\n});\n","interface Template {\n title: string;\n description: string;\n value: string;\n path: string;\n}\n\ninterface Chain {\n title: string;\n description: string;\n value: string;\n supportedTemplates: Template[];\n}\n\nconst TEMPLATES = {\n QUICK_START: {\n title: '101',\n description: 'Quick start',\n value: '101',\n path: '101/{chain}-template'\n },\n WEB: {\n title: 'Web',\n description: 'Web template',\n value: 'web',\n path: 'nextjs/{chain}-template'\n },\n CONTRACT: {\n title: 'Contract',\n description: 'Contract template',\n value: 'contract',\n path: 'contract/{chain}-template'\n }\n} as const;\n\nexport const CHAINS: Chain[] = [\n {\n title: 'sui',\n description: 'Sui',\n value: 'sui',\n supportedTemplates: [TEMPLATES.QUICK_START, TEMPLATES.WEB, TEMPLATES.CONTRACT]\n },\n {\n title: 'aptos',\n description: 'Aptos',\n value: 'aptos',\n supportedTemplates: [TEMPLATES.QUICK_START, TEMPLATES.WEB, TEMPLATES.CONTRACT]\n },\n {\n title: 'rooch',\n description: 'Rooch',\n value: 'rooch',\n supportedTemplates: [TEMPLATES.QUICK_START]\n },\n {\n title: 'initia',\n description: 'Initia',\n value: 'initia',\n supportedTemplates: [TEMPLATES.QUICK_START]\n },\n {\n title: 'movement',\n description: 'Movement',\n value: 'movement',\n supportedTemplates: [TEMPLATES.QUICK_START]\n }\n];\n","{\n \"name\": \"create-dubhe\",\n \"version\": \"1.2.0-pre.109\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/0xobelisk/dubhe.git\"\n },\n \"license\": \"MIT\",\n \"author\": \"team@obelisk.build\",\n \"type\": \"module\",\n \"bin\": \"bin/cli.js\",\n \"files\": [\n \"bin\",\n \"dist\",\n \"templates\"\n ],\n \"scripts\": {\n \"build\": \"pnpm run type-check && pnpm run build:js\",\n \"build:js\": \"tsup && pnpm run copy-templates\",\n \"clean\": \"pnpm run clean:js\",\n \"clean:js\": \"shx rm -rf dist\",\n \"cocos-js-build\": \"cd cocos-lib-builder && npm i && browserify aptos.js -p esmify > ../templates/cocos/aptos-template/assets/lib/dubhe.js && browserify sui.js -p esmify > ../templates/cocos/sui-template/assets/lib/dubhe.js\",\n \"copy-templates\": \"tsx ./scripts/copy-templates.ts\",\n \"dev\": \"tsup --watch\",\n \"format\": \"prettier --write .\",\n \"format:check\": \"prettier --check .\",\n \"lint\": \"eslint . --ext .ts\",\n \"type-check\": \"tsc --noEmit\",\n \"validate\": \"pnpm format:check && pnpm lint && pnpm type-check\"\n },\n \"dependencies\": {\n \"browser-resolve\": \"^2.0.0\",\n \"browser-sync\": \"^2.29.3\",\n \"fast-glob\": \"^3.3.3\",\n \"yargs-interactive\": \"^3.0.1\"\n },\n \"devDependencies\": {\n \"@types/cross-spawn\": \"^6.0.2\",\n \"@types/minimist\": \"^1.2.2\",\n \"@types/prompts\": \"^2.4.3\",\n \"@types/yargs-interactive\": \"^2.1.6\",\n \"browserify\": \"^17.0.0\",\n \"cross-spawn\": \"^7.0.3\",\n \"eslint\": \"^9.0.0\",\n \"eslint-config-prettier\": \"^9.1.0\",\n \"esmify\": \"^2.1.1\",\n \"kolorist\": \"^1.7.0\",\n \"prettier\": \"3.3.3\",\n \"prompts\": \"^2.4.2\",\n \"typescript\": \"^5.8.3\"\n },\n \"engines\": {\n \"node\": \">=22.0.0\"\n },\n \"publishConfig\": {\n \"access\": \"public\"\n }\n}\n","import fs from 'node:fs/promises';\n\nexport async function exists(path: string) {\n try {\n await fs.access(path);\n return true;\n } catch {\n return false;\n }\n}\n"],"mappings":"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","names":["fs","path","fs"]}
|
|
1
|
+
{"version":3,"sources":["../src/bin/cli.ts","../src/config/chains.ts","../package.json","../src/exists.ts"],"sourcesContent":["import { fileURLToPath } from 'node:url';\nimport fs from 'node:fs/promises';\nimport path from 'node:path';\nimport glob from 'fast-glob';\nimport yargsInteractive from 'yargs-interactive';\nimport { CHAINS } from '../config/chains';\nimport packageJson from '../../package.json';\nimport { exists } from '../exists';\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = path.dirname(__filename);\n\nconst cwd = process.cwd();\n\nconst init = async () => {\n // Prepare chain options\n const chainChoices = CHAINS.map(({ title, description, value }) => ({\n name: `${title} - ${description}`,\n value\n }));\n\n // Step 1: Choose project name and chain\n const firstStep = await yargsInteractive()\n .usage('$0 [args]')\n .interactive({\n interactive: { default: true },\n projectName: {\n describe: 'Name your project',\n type: 'input'\n },\n chain: {\n describe: 'Pick your chain',\n type: 'list',\n choices: chainChoices.map((c) => c.value)\n },\n dubheVersion: {\n describe: 'The version of Dubhe packages to use, defaults to latest',\n type: 'input',\n default: packageJson.version\n }\n });\n\n const { projectName, chain, dubheVersion } = firstStep;\n if (!projectName) throw new Error('No project name provided.');\n\n // Get available templates based on the selected chain\n const selectedChain = CHAINS.find((c) => c.value === chain);\n if (!selectedChain) {\n throw new Error('Invalid chain selection');\n }\n\n // Prepare platform options\n const platformChoices = selectedChain.supportedTemplates.map(({ title, description, value }) => ({\n name: `${title} - ${description}`,\n value\n }));\n\n // Step 2: Choose platform\n const secondStep = await yargsInteractive()\n .usage('$0 [args]')\n .interactive({\n interactive: { default: true },\n platform: {\n describe: 'Pick your platform',\n type: 'list',\n choices: platformChoices.map((c) => c.value)\n }\n });\n\n const { platform } = secondStep;\n\n const selectedTemplate = selectedChain.supportedTemplates.find((t) => t.value === platform);\n if (!selectedTemplate) {\n throw new Error('Invalid platform selection');\n }\n\n const pkgInfo = pkgFromUserAgent(process.env.npm_config_user_agent);\n const pkgManager = pkgInfo ? pkgInfo.name : 'npm';\n\n const sourceDir = path.join(\n __dirname,\n '..',\n 'templates',\n selectedTemplate.path.replace('{chain}', chain)\n );\n\n if (!(await exists(sourceDir))) {\n throw new Error(`Template directory not found: ${sourceDir}`);\n }\n\n const destDir = path.join(process.cwd(), projectName);\n if (await exists(destDir)) {\n throw new Error(`Target directory \"${destDir}\" already exists.`);\n }\n\n const files = await glob('**/*', { cwd: sourceDir, dot: true });\n\n for (const filename of files) {\n const sourceFile = path.join(sourceDir, filename);\n const destFile = path.join(destDir, filename);\n\n await fs.mkdir(path.dirname(destFile), { recursive: true });\n\n if (/package\\.json$/.test(sourceFile)) {\n const source = await fs.readFile(sourceFile, 'utf-8');\n await fs.writeFile(destFile, source.replaceAll(/{{dubhe-version}}/g, dubheVersion), 'utf-8');\n } else if (/\\.gitignore_$/.test(sourceFile)) {\n await fs.copyFile(sourceFile, destFile.replace(/_$/, ''));\n } else {\n await fs.copyFile(sourceFile, destFile);\n }\n }\n\n const cdProjectName = path.relative(cwd, destDir);\n\n const styles = {\n success: '\\x1b[32m%s\\x1b[0m',\n info: '\\x1b[36m%s\\x1b[0m',\n command: '\\x1b[33m%s\\x1b[0m',\n separator: '\\x1b[90m%s\\x1b[0m'\n };\n\n console.log('\\n' + '='.repeat(60));\n console.log(styles.success, '🎉 Project creation successful!');\n console.log(styles.info, `📁 Project location: ${destDir}`);\n console.log(styles.separator, '-'.repeat(60));\n console.log(styles.info, 'Next steps:\\n');\n\n if (destDir !== cwd) {\n console.log(\n styles.command,\n ` cd ${cdProjectName.includes(' ') ? `\"${cdProjectName}\"` : cdProjectName}`\n );\n }\n\n const actualTemplate = selectedTemplate.value;\n\n switch (actualTemplate) {\n case '101':\n case 'web':\n console.log(styles.command, ` ${pkgManager} install`);\n console.log(styles.command, ` ${pkgManager} dubhe doctor`);\n console.log(styles.command, ` ${pkgManager} run dev`);\n break;\n case 'contract':\n console.log(styles.command, ` ${pkgManager} install`);\n console.log(styles.command, ` ${pkgManager} dubhe doctor`);\n break;\n }\n\n console.log(styles.separator, '\\n' + '='.repeat(60) + '\\n');\n};\n\nfunction pkgFromUserAgent(userAgent: string | undefined) {\n if (!userAgent) return undefined;\n const pkgSpec = userAgent.split(' ')[0];\n const pkgSpecArr = pkgSpec.split('/');\n return {\n name: pkgSpecArr[0],\n version: pkgSpecArr[1]\n };\n}\n\ninit().catch((e) => {\n console.error(e);\n});\n","interface Template {\n title: string;\n description: string;\n value: string;\n path: string;\n}\n\ninterface Chain {\n title: string;\n description: string;\n value: string;\n supportedTemplates: Template[];\n}\n\nconst TEMPLATES = {\n QUICK_START: {\n title: '101',\n description: 'Quick start',\n value: '101',\n path: '101/{chain}-template'\n },\n WEB: {\n title: 'Web',\n description: 'Web template',\n value: 'web',\n path: 'nextjs/{chain}-template'\n },\n CONTRACT: {\n title: 'Contract',\n description: 'Contract template',\n value: 'contract',\n path: 'contract/{chain}-template'\n }\n} as const;\n\nexport const CHAINS: Chain[] = [\n {\n title: 'sui',\n description: 'Sui',\n value: 'sui',\n supportedTemplates: [TEMPLATES.QUICK_START, TEMPLATES.WEB, TEMPLATES.CONTRACT]\n },\n {\n title: 'aptos',\n description: 'Aptos',\n value: 'aptos',\n supportedTemplates: [TEMPLATES.QUICK_START, TEMPLATES.WEB, TEMPLATES.CONTRACT]\n },\n {\n title: 'rooch',\n description: 'Rooch',\n value: 'rooch',\n supportedTemplates: [TEMPLATES.QUICK_START]\n },\n {\n title: 'initia',\n description: 'Initia',\n value: 'initia',\n supportedTemplates: [TEMPLATES.QUICK_START]\n },\n {\n title: 'movement',\n description: 'Movement',\n value: 'movement',\n supportedTemplates: [TEMPLATES.QUICK_START]\n }\n];\n","{\n \"name\": \"create-dubhe\",\n \"version\": \"1.2.0-pre.112\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/0xobelisk/dubhe.git\"\n },\n \"license\": \"MIT\",\n \"author\": \"team@obelisk.build\",\n \"type\": \"module\",\n \"bin\": \"bin/cli.js\",\n \"files\": [\n \"bin\",\n \"dist\",\n \"templates\"\n ],\n \"scripts\": {\n \"build\": \"pnpm run type-check && pnpm run build:js\",\n \"build:js\": \"tsup && pnpm run copy-templates\",\n \"clean\": \"pnpm run clean:js\",\n \"clean:js\": \"shx rm -rf dist\",\n \"cocos-js-build\": \"cd cocos-lib-builder && npm i && browserify aptos.js -p esmify > ../templates/cocos/aptos-template/assets/lib/dubhe.js && browserify sui.js -p esmify > ../templates/cocos/sui-template/assets/lib/dubhe.js\",\n \"copy-templates\": \"tsx ./scripts/copy-templates.ts\",\n \"dev\": \"tsup --watch\",\n \"format\": \"prettier --write .\",\n \"format:check\": \"prettier --check .\",\n \"lint\": \"eslint . --ext .ts\",\n \"type-check\": \"tsc --noEmit\",\n \"validate\": \"pnpm format:check && pnpm lint && pnpm type-check\"\n },\n \"dependencies\": {\n \"browser-resolve\": \"^2.0.0\",\n \"browser-sync\": \"^2.29.3\",\n \"fast-glob\": \"^3.3.3\",\n \"yargs-interactive\": \"^3.0.1\"\n },\n \"devDependencies\": {\n \"@types/cross-spawn\": \"^6.0.2\",\n \"@types/minimist\": \"^1.2.2\",\n \"@types/prompts\": \"^2.4.3\",\n \"@types/yargs-interactive\": \"^2.1.6\",\n \"browserify\": \"^17.0.0\",\n \"cross-spawn\": \"^7.0.3\",\n \"eslint\": \"^9.0.0\",\n \"eslint-config-prettier\": \"^9.1.0\",\n \"esmify\": \"^2.1.1\",\n \"kolorist\": \"^1.7.0\",\n \"prettier\": \"3.3.3\",\n \"prompts\": \"^2.4.2\",\n \"typescript\": \"^5.8.3\"\n },\n \"engines\": {\n \"node\": \">=22.0.0\"\n },\n \"publishConfig\": {\n \"access\": \"public\"\n }\n}\n","import fs from 'node:fs/promises';\n\nexport async function exists(path: string) {\n try {\n await fs.access(path);\n return true;\n } catch {\n return false;\n }\n}\n"],"mappings":"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","names":["fs","path","fs"]}
|
package/package.json
CHANGED
|
@@ -43,7 +43,7 @@ services:
|
|
|
43
43
|
retries: 5
|
|
44
44
|
|
|
45
45
|
dubhe-indexer:
|
|
46
|
-
image: dubhe-indexer:
|
|
46
|
+
image: vladilenaksana/dubhe-indexer:1.2.0-pre.109-arm64
|
|
47
47
|
# Mac (Apple Silicon): use CI-built arm64 image, e.g. vladilenaksana/dubhe-indexer:1.2.0-pre.108-arm64 (no platform needed).
|
|
48
48
|
# x86 / pre-built amd64: vladilenaksana/dubhe-indexer:1.2.0-pre.108 and set platform: linux/amd64
|
|
49
49
|
ports:
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
type NetworkType = 'testnet' | 'mainnet' | 'devnet' | 'localnet';
|
|
2
2
|
|
|
3
3
|
export const NETWORK: NetworkType = 'testnet';
|
|
4
|
-
export const PACKAGE_ID = '
|
|
4
|
+
export const PACKAGE_ID = '0xca5d47a8182e4ea8694c7c88dbb3b3ea1c213cfc5d9dda5b6f2396b6faf757fe';
|
|
5
5
|
export const DUBHE_SCHEMA_ID = '0xfef203de9d3a2980429e91df535a0503ccf8d3c05aa3815936984243dc96f19f';
|
|
@@ -11,7 +11,9 @@
|
|
|
11
11
|
"value": "u32"
|
|
12
12
|
}
|
|
13
13
|
],
|
|
14
|
-
"keys": [
|
|
14
|
+
"keys": [
|
|
15
|
+
"entity_id"
|
|
16
|
+
],
|
|
15
17
|
"offchain": false
|
|
16
18
|
}
|
|
17
19
|
},
|
|
@@ -31,7 +33,9 @@
|
|
|
31
33
|
"key": "String"
|
|
32
34
|
}
|
|
33
35
|
],
|
|
34
|
-
"keys": [
|
|
36
|
+
"keys": [
|
|
37
|
+
"entity_id"
|
|
38
|
+
],
|
|
35
39
|
"offchain": false
|
|
36
40
|
}
|
|
37
41
|
},
|
|
@@ -51,7 +55,11 @@
|
|
|
51
55
|
"data": "u64"
|
|
52
56
|
}
|
|
53
57
|
],
|
|
54
|
-
"keys": [
|
|
58
|
+
"keys": [
|
|
59
|
+
"entity_id",
|
|
60
|
+
"data",
|
|
61
|
+
"key"
|
|
62
|
+
],
|
|
55
63
|
"offchain": false
|
|
56
64
|
}
|
|
57
65
|
},
|
|
@@ -80,14 +88,16 @@
|
|
|
80
88
|
"total_paid": "u256"
|
|
81
89
|
}
|
|
82
90
|
],
|
|
83
|
-
"keys": [
|
|
91
|
+
"keys": [
|
|
92
|
+
"entity_id"
|
|
93
|
+
],
|
|
84
94
|
"offchain": false
|
|
85
95
|
}
|
|
86
96
|
}
|
|
87
97
|
],
|
|
88
98
|
"enums": [],
|
|
89
|
-
"original_package_id": "
|
|
99
|
+
"original_package_id": "0xca5d47a8182e4ea8694c7c88dbb3b3ea1c213cfc5d9dda5b6f2396b6faf757fe",
|
|
90
100
|
"dubhe_object_id": "0xfef203de9d3a2980429e91df535a0503ccf8d3c05aa3815936984243dc96f19f",
|
|
91
101
|
"original_dubhe_package_id": "0x8817b4976b6c607da01cea49d728f71d09274c82e9b163fa20c2382586f8aefc",
|
|
92
|
-
"start_checkpoint": "
|
|
93
|
-
}
|
|
102
|
+
"start_checkpoint": "306680205"
|
|
103
|
+
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"counter_system": {
|
|
3
3
|
"fileFormatVersion": 6,
|
|
4
|
-
"address": "
|
|
4
|
+
"address": "0xca5d47a8182e4ea8694c7c88dbb3b3ea1c213cfc5d9dda5b6f2396b6faf757fe",
|
|
5
5
|
"name": "counter_system",
|
|
6
6
|
"friends": [],
|
|
7
7
|
"structs": {},
|
|
@@ -39,15 +39,15 @@
|
|
|
39
39
|
},
|
|
40
40
|
"dapp_key": {
|
|
41
41
|
"fileFormatVersion": 6,
|
|
42
|
-
"address": "
|
|
42
|
+
"address": "0xca5d47a8182e4ea8694c7c88dbb3b3ea1c213cfc5d9dda5b6f2396b6faf757fe",
|
|
43
43
|
"name": "dapp_key",
|
|
44
44
|
"friends": [
|
|
45
45
|
{
|
|
46
|
-
"address": "
|
|
46
|
+
"address": "0xca5d47a8182e4ea8694c7c88dbb3b3ea1c213cfc5d9dda5b6f2396b6faf757fe",
|
|
47
47
|
"name": "genesis"
|
|
48
48
|
},
|
|
49
49
|
{
|
|
50
|
-
"address": "
|
|
50
|
+
"address": "0xca5d47a8182e4ea8694c7c88dbb3b3ea1c213cfc5d9dda5b6f2396b6faf757fe",
|
|
51
51
|
"name": "value"
|
|
52
52
|
}
|
|
53
53
|
],
|
|
@@ -110,7 +110,7 @@
|
|
|
110
110
|
"return": [
|
|
111
111
|
{
|
|
112
112
|
"Struct": {
|
|
113
|
-
"address": "
|
|
113
|
+
"address": "0xca5d47a8182e4ea8694c7c88dbb3b3ea1c213cfc5d9dda5b6f2396b6faf757fe",
|
|
114
114
|
"module": "dapp_key",
|
|
115
115
|
"name": "DappKey",
|
|
116
116
|
"typeArguments": []
|
|
@@ -147,11 +147,11 @@
|
|
|
147
147
|
},
|
|
148
148
|
"deploy_hook": {
|
|
149
149
|
"fileFormatVersion": 6,
|
|
150
|
-
"address": "
|
|
150
|
+
"address": "0xca5d47a8182e4ea8694c7c88dbb3b3ea1c213cfc5d9dda5b6f2396b6faf757fe",
|
|
151
151
|
"name": "deploy_hook",
|
|
152
152
|
"friends": [
|
|
153
153
|
{
|
|
154
|
-
"address": "
|
|
154
|
+
"address": "0xca5d47a8182e4ea8694c7c88dbb3b3ea1c213cfc5d9dda5b6f2396b6faf757fe",
|
|
155
155
|
"name": "genesis"
|
|
156
156
|
}
|
|
157
157
|
],
|
|
@@ -189,7 +189,7 @@
|
|
|
189
189
|
},
|
|
190
190
|
"errors": {
|
|
191
191
|
"fileFormatVersion": 6,
|
|
192
|
-
"address": "
|
|
192
|
+
"address": "0xca5d47a8182e4ea8694c7c88dbb3b3ea1c213cfc5d9dda5b6f2396b6faf757fe",
|
|
193
193
|
"name": "errors",
|
|
194
194
|
"friends": [],
|
|
195
195
|
"structs": {},
|
|
@@ -207,7 +207,7 @@
|
|
|
207
207
|
},
|
|
208
208
|
"genesis": {
|
|
209
209
|
"fileFormatVersion": 6,
|
|
210
|
-
"address": "
|
|
210
|
+
"address": "0xca5d47a8182e4ea8694c7c88dbb3b3ea1c213cfc5d9dda5b6f2396b6faf757fe",
|
|
211
211
|
"name": "genesis",
|
|
212
212
|
"friends": [],
|
|
213
213
|
"structs": {},
|
|
@@ -254,7 +254,7 @@
|
|
|
254
254
|
},
|
|
255
255
|
"migrate": {
|
|
256
256
|
"fileFormatVersion": 6,
|
|
257
|
-
"address": "
|
|
257
|
+
"address": "0xca5d47a8182e4ea8694c7c88dbb3b3ea1c213cfc5d9dda5b6f2396b6faf757fe",
|
|
258
258
|
"name": "migrate",
|
|
259
259
|
"friends": [],
|
|
260
260
|
"structs": {},
|
|
@@ -272,11 +272,11 @@
|
|
|
272
272
|
},
|
|
273
273
|
"value": {
|
|
274
274
|
"fileFormatVersion": 6,
|
|
275
|
-
"address": "
|
|
275
|
+
"address": "0xca5d47a8182e4ea8694c7c88dbb3b3ea1c213cfc5d9dda5b6f2396b6faf757fe",
|
|
276
276
|
"name": "value",
|
|
277
277
|
"friends": [
|
|
278
278
|
{
|
|
279
|
-
"address": "
|
|
279
|
+
"address": "0xca5d47a8182e4ea8694c7c88dbb3b3ea1c213cfc5d9dda5b6f2396b6faf757fe",
|
|
280
280
|
"name": "counter_system"
|
|
281
281
|
}
|
|
282
282
|
],
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
// Copyright (c) Obelisk Labs, Inc.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
#[allow(unused_use)]
|
|
4
|
+
|
|
5
|
+
/* Autogenerated file. Do not edit manually. */
|
|
6
|
+
|
|
7
|
+
module counter::counter2 {
|
|
8
|
+
use sui::bcs::{to_bytes};
|
|
9
|
+
use std::ascii::{string, String, into_bytes};
|
|
10
|
+
use dubhe::table_id;
|
|
11
|
+
use dubhe::dapp_service::{Self, DappHub};
|
|
12
|
+
use dubhe::dapp_system;
|
|
13
|
+
use counter::dapp_key;
|
|
14
|
+
use counter::dapp_key::DappKey;
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
const TABLE_NAME: vector<u8> = b"counter2";
|
|
18
|
+
const OFFCHAIN: bool = false;
|
|
19
|
+
|
|
20
|
+
public struct Counter2 has copy, drop, store {
|
|
21
|
+
value: u32,
|
|
22
|
+
data: u64,
|
|
23
|
+
key: String,
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
public fun new(value: u32, data: u64, key: String): Counter2 {
|
|
27
|
+
Counter2 {
|
|
28
|
+
value,
|
|
29
|
+
data,
|
|
30
|
+
key,
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
public fun value(self: &Counter2): u32 {
|
|
35
|
+
self.value
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
public fun data(self: &Counter2): u64 {
|
|
39
|
+
self.data
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
public fun key(self: &Counter2): String {
|
|
43
|
+
self.key
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
public fun update_value(self: &mut Counter2, value: u32) {
|
|
47
|
+
self.value = value
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
public fun update_data(self: &mut Counter2, data: u64) {
|
|
51
|
+
self.data = data
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
public fun update_key(self: &mut Counter2, key: String) {
|
|
55
|
+
self.key = key
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
public fun has(dapp_hub: &DappHub, resource_account: String): bool {
|
|
59
|
+
let mut key_tuple = vector::empty();
|
|
60
|
+
key_tuple.push_back(TABLE_NAME);
|
|
61
|
+
dapp_system::has_record<DappKey>(dapp_hub, resource_account, key_tuple)
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
public fun ensure_has(dapp_hub: &DappHub, resource_account: String) {
|
|
65
|
+
let mut key_tuple = vector::empty();
|
|
66
|
+
key_tuple.push_back(TABLE_NAME);
|
|
67
|
+
dapp_system::ensure_has_record<DappKey>(dapp_hub, resource_account, key_tuple)
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
public fun ensure_has_not(dapp_hub: &DappHub, resource_account: String) {
|
|
71
|
+
let mut key_tuple = vector::empty();
|
|
72
|
+
key_tuple.push_back(TABLE_NAME);
|
|
73
|
+
dapp_system::ensure_has_not_record<DappKey>(dapp_hub, resource_account, key_tuple)
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
public(package) fun delete(dapp_hub: &mut DappHub, resource_account: String) {
|
|
78
|
+
let mut key_tuple = vector::empty();
|
|
79
|
+
key_tuple.push_back(TABLE_NAME);
|
|
80
|
+
dapp_system::delete_record<DappKey>(dapp_hub, dapp_key::new(), key_tuple, resource_account);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
public fun get_value(dapp_hub: &DappHub, resource_account: String): u32 {
|
|
84
|
+
let mut key_tuple = vector::empty();
|
|
85
|
+
key_tuple.push_back(TABLE_NAME);
|
|
86
|
+
let value = dapp_system::get_field<DappKey>(dapp_hub, resource_account, key_tuple, 0);
|
|
87
|
+
let mut bsc_type = sui::bcs::new(value);
|
|
88
|
+
let value = sui::bcs::peel_u32(&mut bsc_type);
|
|
89
|
+
value
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
public(package) fun set_value(dapp_hub: &mut DappHub, resource_account: String, value: u32, ctx: &mut TxContext) {
|
|
93
|
+
let mut key_tuple = vector::empty();
|
|
94
|
+
key_tuple.push_back(TABLE_NAME);
|
|
95
|
+
let value = to_bytes(&value);
|
|
96
|
+
dapp_system::set_field(dapp_hub, dapp_key::new(), resource_account, key_tuple, 0, value, ctx);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
public fun get_data(dapp_hub: &DappHub, resource_account: String): u64 {
|
|
100
|
+
let mut key_tuple = vector::empty();
|
|
101
|
+
key_tuple.push_back(TABLE_NAME);
|
|
102
|
+
let value = dapp_system::get_field<DappKey>(dapp_hub, resource_account, key_tuple, 1);
|
|
103
|
+
let mut bsc_type = sui::bcs::new(value);
|
|
104
|
+
let data = sui::bcs::peel_u64(&mut bsc_type);
|
|
105
|
+
data
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
public(package) fun set_data(dapp_hub: &mut DappHub, resource_account: String, data: u64, ctx: &mut TxContext) {
|
|
109
|
+
let mut key_tuple = vector::empty();
|
|
110
|
+
key_tuple.push_back(TABLE_NAME);
|
|
111
|
+
let value = to_bytes(&data);
|
|
112
|
+
dapp_system::set_field(dapp_hub, dapp_key::new(), resource_account, key_tuple, 1, value, ctx);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
public fun get_key(dapp_hub: &DappHub, resource_account: String): String {
|
|
116
|
+
let mut key_tuple = vector::empty();
|
|
117
|
+
key_tuple.push_back(TABLE_NAME);
|
|
118
|
+
let value = dapp_system::get_field<DappKey>(dapp_hub, resource_account, key_tuple, 2);
|
|
119
|
+
let mut bsc_type = sui::bcs::new(value);
|
|
120
|
+
let key = dubhe::bcs::peel_string(&mut bsc_type);
|
|
121
|
+
key
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
public(package) fun set_key(dapp_hub: &mut DappHub, resource_account: String, key: String, ctx: &mut TxContext) {
|
|
125
|
+
let mut key_tuple = vector::empty();
|
|
126
|
+
key_tuple.push_back(TABLE_NAME);
|
|
127
|
+
let value = to_bytes(&into_bytes(key));
|
|
128
|
+
dapp_system::set_field(dapp_hub, dapp_key::new(), resource_account, key_tuple, 2, value, ctx);
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
public fun get(dapp_hub: &DappHub, resource_account: String): (u32, u64, String) {
|
|
132
|
+
let mut key_tuple = vector::empty();
|
|
133
|
+
key_tuple.push_back(TABLE_NAME);
|
|
134
|
+
let value_tuple = dapp_system::get_record<DappKey>(dapp_hub, resource_account, key_tuple);
|
|
135
|
+
let mut bsc_type = sui::bcs::new(value_tuple);
|
|
136
|
+
let value = sui::bcs::peel_u32(&mut bsc_type);
|
|
137
|
+
let data = sui::bcs::peel_u64(&mut bsc_type);
|
|
138
|
+
let key = dubhe::bcs::peel_string(&mut bsc_type);
|
|
139
|
+
(value, data, key)
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
public(package) fun set(dapp_hub: &mut DappHub, resource_account: String, value: u32, data: u64, key: String, ctx: &mut TxContext) {
|
|
143
|
+
let mut key_tuple = vector::empty();
|
|
144
|
+
key_tuple.push_back(TABLE_NAME);
|
|
145
|
+
let value_tuple = encode(value, data, key);
|
|
146
|
+
dapp_system::set_record(dapp_hub, dapp_key::new(), key_tuple, value_tuple, resource_account, OFFCHAIN, ctx);
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
public fun get_struct(dapp_hub: &DappHub, resource_account: String): Counter2 {
|
|
150
|
+
let mut key_tuple = vector::empty();
|
|
151
|
+
key_tuple.push_back(TABLE_NAME);
|
|
152
|
+
let value_tuple = dapp_system::get_record<DappKey>(dapp_hub, resource_account, key_tuple);
|
|
153
|
+
decode(value_tuple)
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
public(package) fun set_struct(dapp_hub: &mut DappHub, resource_account: String, counter2: Counter2, ctx: &mut TxContext) {
|
|
157
|
+
let mut key_tuple = vector::empty();
|
|
158
|
+
key_tuple.push_back(TABLE_NAME);
|
|
159
|
+
let value_tuple = encode_struct(counter2);
|
|
160
|
+
dapp_system::set_record(dapp_hub, dapp_key::new(), key_tuple, value_tuple, resource_account, OFFCHAIN, ctx);
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
public fun encode(value: u32, data: u64, key: String): vector<vector<u8>> {
|
|
164
|
+
let mut value_tuple = vector::empty();
|
|
165
|
+
value_tuple.push_back(to_bytes(&value));
|
|
166
|
+
value_tuple.push_back(to_bytes(&data));
|
|
167
|
+
value_tuple.push_back(to_bytes(&into_bytes(key)));
|
|
168
|
+
value_tuple
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
public fun encode_struct(counter2: Counter2): vector<vector<u8>> {
|
|
172
|
+
encode(counter2.value, counter2.data, counter2.key)
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
public fun decode(data: vector<u8>): Counter2 {
|
|
176
|
+
let mut bsc_type = sui::bcs::new(data);
|
|
177
|
+
let value = sui::bcs::peel_u32(&mut bsc_type);
|
|
178
|
+
let data = sui::bcs::peel_u64(&mut bsc_type);
|
|
179
|
+
let key = string(sui::bcs::peel_vec_u8(&mut bsc_type));
|
|
180
|
+
Counter2 {
|
|
181
|
+
value,
|
|
182
|
+
data,
|
|
183
|
+
key,
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
// Copyright (c) Obelisk Labs, Inc.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
#[allow(unused_use)]
|
|
4
|
+
|
|
5
|
+
/* Autogenerated file. Do not edit manually. */
|
|
6
|
+
|
|
7
|
+
module counter::counter2withkey {
|
|
8
|
+
use sui::bcs::{to_bytes};
|
|
9
|
+
use std::ascii::{string, String, into_bytes};
|
|
10
|
+
use dubhe::table_id;
|
|
11
|
+
use dubhe::dapp_service::{Self, DappHub};
|
|
12
|
+
use dubhe::dapp_system;
|
|
13
|
+
use counter::dapp_key;
|
|
14
|
+
use counter::dapp_key::DappKey;
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
const TABLE_NAME: vector<u8> = b"counter2withkey";
|
|
18
|
+
const OFFCHAIN: bool = false;
|
|
19
|
+
|
|
20
|
+
public fun has(dapp_hub: &DappHub, resource_account: String, data: u64, key: String): bool {
|
|
21
|
+
let mut key_tuple = vector::empty();
|
|
22
|
+
key_tuple.push_back(TABLE_NAME);
|
|
23
|
+
key_tuple.push_back(to_bytes(&data));
|
|
24
|
+
key_tuple.push_back(to_bytes(&key));
|
|
25
|
+
dapp_system::has_record<DappKey>(dapp_hub, resource_account, key_tuple)
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
public fun ensure_has(dapp_hub: &DappHub, resource_account: String, data: u64, key: String) {
|
|
29
|
+
let mut key_tuple = vector::empty();
|
|
30
|
+
key_tuple.push_back(TABLE_NAME);
|
|
31
|
+
key_tuple.push_back(to_bytes(&data));
|
|
32
|
+
key_tuple.push_back(to_bytes(&key));
|
|
33
|
+
dapp_system::ensure_has_record<DappKey>(dapp_hub, resource_account, key_tuple)
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
public fun ensure_has_not(dapp_hub: &DappHub, resource_account: String, data: u64, key: String) {
|
|
37
|
+
let mut key_tuple = vector::empty();
|
|
38
|
+
key_tuple.push_back(TABLE_NAME);
|
|
39
|
+
key_tuple.push_back(to_bytes(&data));
|
|
40
|
+
key_tuple.push_back(to_bytes(&key));
|
|
41
|
+
dapp_system::ensure_has_not_record<DappKey>(dapp_hub, resource_account, key_tuple)
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
public(package) fun delete(dapp_hub: &mut DappHub, resource_account: String, data: u64, key: String) {
|
|
46
|
+
let mut key_tuple = vector::empty();
|
|
47
|
+
key_tuple.push_back(TABLE_NAME);
|
|
48
|
+
key_tuple.push_back(to_bytes(&data));
|
|
49
|
+
key_tuple.push_back(to_bytes(&key));
|
|
50
|
+
dapp_system::delete_record<DappKey>(dapp_hub, dapp_key::new(), key_tuple, resource_account);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
public fun get(dapp_hub: &DappHub, resource_account: String, data: u64, key: String): u32 {
|
|
54
|
+
let mut key_tuple = vector::empty();
|
|
55
|
+
key_tuple.push_back(TABLE_NAME);
|
|
56
|
+
key_tuple.push_back(to_bytes(&data));
|
|
57
|
+
key_tuple.push_back(to_bytes(&key));
|
|
58
|
+
let value = dapp_system::get_field<DappKey>(dapp_hub, resource_account, key_tuple, 0);
|
|
59
|
+
let mut bsc_type = sui::bcs::new(value);
|
|
60
|
+
let value = sui::bcs::peel_u32(&mut bsc_type);
|
|
61
|
+
value
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
public(package) fun set(dapp_hub: &mut DappHub, resource_account: String, data: u64, key: String, value: u32, ctx: &mut TxContext) {
|
|
65
|
+
let mut key_tuple = vector::empty();
|
|
66
|
+
key_tuple.push_back(TABLE_NAME);
|
|
67
|
+
key_tuple.push_back(to_bytes(&data));
|
|
68
|
+
key_tuple.push_back(to_bytes(&key));
|
|
69
|
+
let value_tuple = encode(value);
|
|
70
|
+
dapp_system::set_record(dapp_hub, dapp_key::new(), key_tuple, value_tuple, resource_account, OFFCHAIN, ctx);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
public fun encode(value: u32): vector<vector<u8>> {
|
|
74
|
+
let mut value_tuple = vector::empty();
|
|
75
|
+
value_tuple.push_back(to_bytes(&value));
|
|
76
|
+
value_tuple
|
|
77
|
+
}
|
|
78
|
+
}
|
|
@@ -24,6 +24,18 @@
|
|
|
24
24
|
dapp_system::has_record<DappKey>(dapp_hub, resource_account, key_tuple)
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
+
public fun ensure_has(dapp_hub: &DappHub, resource_account: String) {
|
|
28
|
+
let mut key_tuple = vector::empty();
|
|
29
|
+
key_tuple.push_back(TABLE_NAME);
|
|
30
|
+
dapp_system::ensure_has_record<DappKey>(dapp_hub, resource_account, key_tuple)
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
public fun ensure_has_not(dapp_hub: &DappHub, resource_account: String) {
|
|
34
|
+
let mut key_tuple = vector::empty();
|
|
35
|
+
key_tuple.push_back(TABLE_NAME);
|
|
36
|
+
dapp_system::ensure_has_not_record<DappKey>(dapp_hub, resource_account, key_tuple)
|
|
37
|
+
}
|
|
38
|
+
|
|
27
39
|
public(package) fun delete(dapp_hub: &mut DappHub, resource_account: String) {
|
|
28
40
|
let mut key_tuple = vector::empty();
|
|
29
41
|
key_tuple.push_back(TABLE_NAME);
|
|
@@ -1,32 +1,23 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Generated by move; do not edit
|
|
2
|
+
# This file should be checked in.
|
|
2
3
|
|
|
3
4
|
[move]
|
|
4
|
-
version =
|
|
5
|
-
manifest_digest = "9E441545FB5525E6DED36D5515A5D25F03199A6CD5699C95CF663AFB76CAB789"
|
|
6
|
-
deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082"
|
|
7
|
-
dependencies = [
|
|
8
|
-
{ id = "Sui", name = "Sui" },
|
|
9
|
-
]
|
|
5
|
+
version = 4
|
|
10
6
|
|
|
11
|
-
[
|
|
12
|
-
|
|
13
|
-
|
|
7
|
+
[pinned.testnet.Dubhe]
|
|
8
|
+
source = { root = true }
|
|
9
|
+
use_environment = "testnet"
|
|
10
|
+
manifest_digest = "21C4ACDE8D1A1E22F33EBBF539FC94BA72EC8B363E3A9B495D51C157AAB5189C"
|
|
11
|
+
deps = { Sui = "Sui" }
|
|
14
12
|
|
|
15
|
-
[
|
|
16
|
-
|
|
17
|
-
|
|
13
|
+
[pinned.testnet.MoveStdlib]
|
|
14
|
+
source = { git = "https://github.com/MystenLabs/sui.git", subdir = "crates/sui-framework/packages/move-stdlib", rev = "ff441e0d66d6cd56c4527db1b6e6e38335e805ce" }
|
|
15
|
+
use_environment = "testnet"
|
|
16
|
+
manifest_digest = "C4FE4C91DE74CBF223B2E380AE40F592177D21870DC2D7EB6227D2D694E05363"
|
|
17
|
+
deps = {}
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
compiler-version = "1.40.1"
|
|
25
|
-
edition = "2024"
|
|
26
|
-
flavor = "sui"
|
|
27
|
-
|
|
28
|
-
[env.testnet]
|
|
29
|
-
chain-id = "4c78adac"
|
|
30
|
-
original-published-id = "0x8817b4976b6c607da01cea49d728f71d09274c82e9b163fa20c2382586f8aefc"
|
|
31
|
-
latest-published-id = "0x8817b4976b6c607da01cea49d728f71d09274c82e9b163fa20c2382586f8aefc"
|
|
32
|
-
published-version = "1"
|
|
19
|
+
[pinned.testnet.Sui]
|
|
20
|
+
source = { git = "https://github.com/MystenLabs/sui.git", subdir = "crates/sui-framework/packages/sui-framework", rev = "ff441e0d66d6cd56c4527db1b6e6e38335e805ce" }
|
|
21
|
+
use_environment = "testnet"
|
|
22
|
+
manifest_digest = "7AFB66695545775FBFBB2D3078ADFD084244D5002392E837FDE21D9EA1C6D01C"
|
|
23
|
+
deps = { MoveStdlib = "MoveStdlib" }
|