@0xobelisk/sui-common 0.5.15 → 0.5.18

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.
@@ -1,22 +1,30 @@
1
- import { ObeliskConfig } from "../../types";
2
- import { formatAndWriteMove } from "../formatAndWrite";
3
- import { existsSync } from "fs";
1
+ import { DubheConfig } from '../../types';
2
+ import { formatAndWriteMove } from '../formatAndWrite';
3
+ import { existsSync } from 'fs';
4
4
 
5
- export async function generateDeployHook(config: ObeliskConfig, srcPrefix: string) {
6
- if (
7
- !existsSync(
8
- `${srcPrefix}/contracts/${config.name}/sources/script/deploy_hook.move`
9
- )
10
- ) {
11
- let code = `module ${config.name}::deploy_hook {
12
- use obelisk::dapps_schema::Dapps;
13
- use obelisk::dapps_system;
5
+ export async function generateDeployHook(
6
+ config: DubheConfig,
7
+ srcPrefix: string
8
+ ) {
9
+ console.log('\nšŸ“ Starting Deploy Hook Generation...');
10
+ console.log(
11
+ ` └─ Output path: ${srcPrefix}/contracts/${config.name}/sources/script/deploy_hook.move`
12
+ );
13
+
14
+ if (
15
+ !existsSync(
16
+ `${srcPrefix}/contracts/${config.name}/sources/script/deploy_hook.move`
17
+ )
18
+ ) {
19
+ let code = `module ${config.name}::deploy_hook {
20
+ use dubhe::dapps_schema::Dapps;
21
+ use dubhe::dapps_system;
14
22
  use ${config.name}::dapp_key::DappKey;
15
23
  use std::ascii;
16
24
  use sui::clock::Clock;
17
25
  use sui::transfer::public_share_object;
18
26
  #[test_only]
19
- use obelisk::dapps_schema;
27
+ use dubhe::dapps_schema;
20
28
  #[test_only]
21
29
  use sui::clock;
22
30
  #[test_only]
@@ -25,7 +33,7 @@ export async function generateDeployHook(config: ObeliskConfig, srcPrefix: strin
25
33
  use sui::test_scenario::Scenario;
26
34
 
27
35
  public entry fun run(dapps: &mut Dapps, clock: &Clock, ctx: &mut TxContext) {
28
- // Register the dapp to obelisk.
36
+ // Register the dapp to dubhe.
29
37
  dapps_system::register<DappKey>(
30
38
  dapps,
31
39
  ascii::string(b"${config.name}"),
@@ -33,16 +41,20 @@ export async function generateDeployHook(config: ObeliskConfig, srcPrefix: strin
33
41
  clock,
34
42
  ctx
35
43
  );
36
- ${Object.keys(config.schemas).map(schemaName => {
37
- return `let ${schemaName} = ${config.name}::${schemaName}_schema::register(dapps, ctx);`
38
- }).join("\n")}
44
+ ${Object.keys(config.schemas)
45
+ .map(schemaName => {
46
+ return `let ${schemaName} = ${config.name}::${schemaName}_schema::register(dapps, ctx);`;
47
+ })
48
+ .join('\n')}
39
49
  // Logic that needs to be automated once the contract is deployed
40
50
 
41
51
 
42
52
  // Share the dapp object with the public
43
- ${Object.keys(config.schemas).map(schemaName => {
44
- return `public_share_object(${schemaName});`
45
- }).join("\n")}
53
+ ${Object.keys(config.schemas)
54
+ .map(schemaName => {
55
+ return `public_share_object(${schemaName});`;
56
+ })
57
+ .join('\n')}
46
58
  }
47
59
 
48
60
  #[test_only]
@@ -63,22 +75,23 @@ export async function generateDeployHook(config: ObeliskConfig, srcPrefix: strin
63
75
  }
64
76
  }
65
77
  `;
66
- await formatAndWriteMove(
67
- code,
68
- `${srcPrefix}/contracts/${config.name}/sources/script/deploy_hook.move`,
69
- "formatAndWriteMove"
70
- );
71
- }
78
+ await formatAndWriteMove(
79
+ code,
80
+ `${srcPrefix}/contracts/${config.name}/sources/script/deploy_hook.move`,
81
+ 'formatAndWriteMove'
82
+ );
83
+ }
84
+ console.log('āœ… Deploy Hook Generation Complete\n');
72
85
  }
73
86
 
74
- export function generateMigrate(config: ObeliskConfig, srcPrefix: string) {
75
- if (
76
- !existsSync(
77
- `${srcPrefix}/contracts/${config.name}/sources/script/migrate.move`
78
- )
79
- ) {
80
- let code = `module ${config.name}::migrate {
81
- use obelisk::world::{World, AdminCap};
87
+ export function generateMigrate(config: DubheConfig, srcPrefix: string) {
88
+ if (
89
+ !existsSync(
90
+ `${srcPrefix}/contracts/${config.name}/sources/script/migrate.move`
91
+ )
92
+ ) {
93
+ let code = `module ${config.name}::migrate {
94
+ use dubhe::world::{World, AdminCap};
82
95
 
83
96
  /// Not the right admin for this world
84
97
  const ENotAdmin: u64 = 0;
@@ -89,7 +102,7 @@ export function generateMigrate(config: ObeliskConfig, srcPrefix: string) {
89
102
  public entry fun run(world: &mut World, admin_cap: &AdminCap) {
90
103
  assert!(world.admin() == object::id(admin_cap), ENotAdmin);
91
104
  assert!(world.version() < VERSION, ENotUpgrade);
92
- *obelisk::world::mut_version(world, admin_cap) = VERSION;
105
+ *dubhe::world::mut_version(world, admin_cap) = VERSION;
93
106
  }
94
107
 
95
108
  public fun assert_version(world: &World){
@@ -97,11 +110,10 @@ export function generateMigrate(config: ObeliskConfig, srcPrefix: string) {
97
110
  }
98
111
  }
99
112
  `;
100
- formatAndWriteMove(
101
- code,
102
- `${srcPrefix}/contracts/${config.name}/sources/script/migrate.move`,
103
- "formatAndWriteMove"
104
- );
105
- }
113
+ formatAndWriteMove(
114
+ code,
115
+ `${srcPrefix}/contracts/${config.name}/sources/script/migrate.move`,
116
+ 'formatAndWriteMove'
117
+ );
118
+ }
106
119
  }
107
-
@@ -1,23 +1,30 @@
1
- import { ObeliskConfig } from "../../types";
2
- import { formatAndWriteMove } from "../formatAndWrite";
3
- import { existsSync } from "fs";
1
+ import { DubheConfig } from '../../types';
2
+ import { formatAndWriteMove } from '../formatAndWrite';
3
+ import { existsSync } from 'fs';
4
4
 
5
- export async function generateSystem(config: ObeliskConfig, srcPrefix: string) {
6
- config.systems.map(async (systemName) => {
7
- if (
8
- !existsSync(
9
- `${srcPrefix}/contracts/${config.name}/sources/system/${systemName}.move`
10
- )
11
- ) {
12
- let code = `module ${config.name}::${systemName}_system {
5
+ export async function generateSystem(config: DubheConfig, srcPrefix: string) {
6
+ console.log('\nāš™ļø Starting System Generation...');
7
+ config.systems.map(async systemName => {
8
+ console.log(` ā”œā”€ Generating system: ${systemName}`);
9
+ console.log(
10
+ ` └─ Output path: ${srcPrefix}/contracts/${config.name}/sources/system/${systemName}.move`
11
+ );
12
+
13
+ if (
14
+ !existsSync(
15
+ `${srcPrefix}/contracts/${config.name}/sources/system/${systemName}.move`
16
+ )
17
+ ) {
18
+ let code = `module ${config.name}::${systemName}_system {
13
19
 
14
20
  }
15
21
  `;
16
- await formatAndWriteMove(
17
- code,
18
- `${srcPrefix}/contracts/${config.name}/sources/system/${systemName}.move`,
19
- "formatAndWriteMove"
20
- );
21
- }
22
- });
22
+ await formatAndWriteMove(
23
+ code,
24
+ `${srcPrefix}/contracts/${config.name}/sources/system/${systemName}.move`,
25
+ 'formatAndWriteMove'
26
+ );
27
+ }
28
+ });
29
+ console.log('āœ… System Generation Complete\n');
23
30
  }
@@ -1,19 +1,28 @@
1
- import { ObeliskConfig } from '../../types';
1
+ import { DubheConfig } from '../../types';
2
2
  import { formatAndWriteMove } from '../formatAndWrite';
3
3
 
4
- export async function generateToml(config: ObeliskConfig, srcPrefix: string) {
4
+ export async function generateToml(
5
+ config: DubheConfig,
6
+ srcPrefix: string,
7
+ frameworkId: string
8
+ ) {
9
+ console.log('\nšŸ“„ Starting Move.toml Generation...');
10
+ console.log(
11
+ ` └─ Output path: ${srcPrefix}/contracts/${config.name}/Move.toml`
12
+ );
13
+
5
14
  let code = `[package]
6
15
  name = "${config.name}"
7
16
  version = "0.0.1"
8
17
  edition = "2024.beta"
9
18
 
10
19
  [dependencies]
11
- Sui = { git = "https://github.com/MystenLabs/sui.git", subdir = "crates/sui-framework/packages/sui-framework", rev = "mainnet-v1.31.1" }
12
- Obelisk = { git = "https://github.com/0xobelisk/obelisk-engine.git", subdir = "packages/obelisk-framework", rev = "main" }
20
+ Sui = { git = "https://github.com/MystenLabs/sui.git", subdir = "crates/sui-framework/packages/sui-framework", rev = "mainnet-v1.36.2" }
21
+ Dubhe = { git = "https://github.com/0xobelisk/dubhe.git", subdir = "packages/dubhe-framework", rev = "main" }
13
22
 
14
23
  [addresses]
15
- sui = "0x2"
16
- obelisk = "0x3dc2d6239eed38c9798444afbf4bada0998ec98edc365713864405fe64203256"
24
+ sui = "0x2"
25
+ dubhe = "${frameworkId}"
17
26
  ${config.name} = "0x0"
18
27
  `;
19
28
  await formatAndWriteMove(
@@ -21,4 +30,5 @@ ${config.name} = "0x0"
21
30
  `${srcPrefix}/contracts/${config.name}/Move.toml`,
22
31
  'formatAndWriteMove'
23
32
  );
33
+ console.log('āœ… Move.toml Generation Complete\n');
24
34
  }
@@ -0,0 +1,69 @@
1
+ import { SchemaType, DubheConfig } from '../../types';
2
+ import { rmdirSync, existsSync } from 'fs';
3
+ import { deleteFolderRecursive } from './common';
4
+ import { generateSystem } from './generateSystem';
5
+ import { generateToml } from './generateToml';
6
+ import { generateSchemaData, generateSchemaStructure } from './generateSchema';
7
+ import { generateDeployHook, generateMigrate } from './generateScript';
8
+ import { generateDappKey } from './generateDappKey';
9
+
10
+ function matchFrameworkId(
11
+ network: 'mainnet' | 'testnet' | 'devnet' | 'localnet'
12
+ ): string {
13
+ switch (network) {
14
+ case 'testnet':
15
+ return '0x1736475f476c5dec96f33c03c778843f572239d3a887d795eef66d2836484c28';
16
+ case 'localnet':
17
+ return '0x1736475f476c5dec96f33c03c778843f572239d3a887d795eef66d2836484c28';
18
+ default:
19
+ return '0x1736475f476c5dec96f33c03c778843f572239d3a887d795eef66d2836484c28';
20
+ }
21
+ }
22
+
23
+ export async function schemaGen(
24
+ config: DubheConfig,
25
+ srcPrefix?: string,
26
+ network?: 'mainnet' | 'testnet' | 'devnet' | 'localnet',
27
+ frameworkId?: string
28
+ ) {
29
+ console.log('\nšŸš€ Starting Schema Generation Process...');
30
+ console.log('šŸ“‹ Project Configuration:');
31
+ console.log(` ā”œā”€ Name: ${config.name}`);
32
+ console.log(
33
+ ` ā”œā”€ Description: ${config.description || 'No description provided'}`
34
+ );
35
+ console.log(` ā”œā”€ Network: ${network || 'testnet'}`);
36
+ console.log(
37
+ ` └─ Framework ID: ${
38
+ frameworkId || matchFrameworkId(network ?? 'testnet')
39
+ }\n`
40
+ );
41
+
42
+ const path = srcPrefix ?? process.cwd();
43
+
44
+ frameworkId = frameworkId || matchFrameworkId(network ?? 'testnet');
45
+
46
+ if (existsSync(`${path}/contracts/${config.name}`)) {
47
+ deleteFolderRecursive(
48
+ `${path}/contracts/${config.name}/sources/codegen`
49
+ );
50
+ }
51
+
52
+ if (!existsSync(`${path}/contracts/${config.name}/Move.toml`)) {
53
+ await generateToml(config, path, frameworkId);
54
+ }
55
+
56
+ if (
57
+ !existsSync(
58
+ `${path}/contracts/${config.name}/sources/script/deploy_hook.move`
59
+ )
60
+ ) {
61
+ await generateDeployHook(config, path);
62
+ }
63
+
64
+ await generateSystem(config, path);
65
+ await generateSchemaData(config.name, config.schemas, path);
66
+ await generateSchemaStructure(config.name, config.schemas, path);
67
+ await generateDappKey(config, path);
68
+ console.log('āœ… Schema Generation Process Complete!\n');
69
+ }
package/src/debug.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import createDebug from "debug";
2
2
 
3
- export const debug = createDebug("obelisk:common");
4
- export const error = createDebug("obelisk:common");
3
+ export const debug = createDebug("dubhe:common");
4
+ export const error = createDebug("dubhe:common");
5
5
 
6
6
  // Pipe debug output to stdout instead of stderr
7
7
  debug.log = console.debug.bind(console);
@@ -1,34 +0,0 @@
1
- import { SchemaType, ObeliskConfig } from "../../types";
2
- import { rmdirSync, existsSync } from "fs";
3
- import { deleteFolderRecursive } from "./common";
4
- import { generateSystem } from "./generateSystem";
5
- import { generateToml } from "./generateToml";
6
- import {generateSchemaData, generateSchemaStructure} from "./generateSchema";
7
- import {generateDeployHook, generateMigrate} from "./generateScript";
8
- import {generateDappKey} from "./generateDappKey";
9
-
10
- export async function worldgen(config: ObeliskConfig, srcPrefix?: string) {
11
- let path = "";
12
- if (srcPrefix === undefined) {
13
- path = process.cwd();
14
- } else {
15
- path = srcPrefix;
16
- }
17
-
18
- if (existsSync(`${path}/contracts/${config.name}`)) {
19
- deleteFolderRecursive(`${path}/contracts/${config.name}/sources/codegen`);
20
- }
21
-
22
- if (!existsSync(`${path}/contracts/${config.name}/Move.toml`)) {
23
- await generateToml(config, path);
24
- }
25
-
26
- if (!existsSync(`${path}/contracts/${config.name}/sources/script/deploy_hook.move`)) {
27
- await generateDeployHook(config, path);
28
- }
29
-
30
- await generateSystem(config, path);
31
- await generateSchemaData(config.name, config.schemas, path);
32
- await generateSchemaStructure(config.name, config.schemas, path);
33
- await generateDappKey(config, path);
34
- }