@typemove/sui 1.2.6-rc.3 → 1.2.6-rc.5
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/Readme.md +21 -1
- package/dist/cjs/codegen/codegen.d.ts +1 -1
- package/dist/cjs/codegen/codegen.d.ts.map +1 -1
- package/dist/cjs/codegen/codegen.js +18 -4
- package/dist/cjs/codegen/codegen.js.map +1 -1
- package/dist/esm/codegen/codegen.d.ts +1 -1
- package/dist/esm/codegen/codegen.d.ts.map +1 -1
- package/dist/esm/codegen/codegen.js +18 -4
- package/dist/esm/codegen/codegen.js.map +1 -1
- package/dist/esm/codegen/run.js +41 -11
- package/dist/esm/codegen/run.js.map +1 -1
- package/package.json +6 -5
- package/src/codegen/codegen.ts +16 -4
- package/src/codegen/run.ts +52 -15
package/Readme.md
CHANGED
|
@@ -18,8 +18,28 @@ pnpm add @typemove/sui
|
|
|
18
18
|
|
|
19
19
|
### Code Generation
|
|
20
20
|
```typescript
|
|
21
|
-
yarn typemove-sui
|
|
21
|
+
yarn typemove-sui [--target-dir] [--network] [--abi-dir] <location>
|
|
22
22
|
```
|
|
23
|
+
- `location`: Directory of ABI json files or address of account to generate types for
|
|
24
|
+
- `target-dir`: Directory to output generated files (default: "./types")
|
|
25
|
+
- `network`: Network to use, could be either "mainnet", "testnet" or any node URL (default: "mainnet")
|
|
26
|
+
- `abi-dir`: Directory to store downloaded ABI. Only useful if <location> is address (default: "./abis")
|
|
27
|
+
|
|
28
|
+
Use `yarn typemove-sui --help` to see detail description.
|
|
29
|
+
|
|
30
|
+
A few examples:
|
|
31
|
+
- generate types for an address on mainnet:
|
|
32
|
+
```typescript
|
|
33
|
+
yarn typemove-sui --target-dir ./src/types --abi-dir ./src/abis 0x1e2b124f746a339b3cf99b9f969393a96594519aafb1d06517aacfeeae20e7a5
|
|
34
|
+
```
|
|
35
|
+
- generate types for local ABI files stored in `./src/abis`:
|
|
36
|
+
```typescript
|
|
37
|
+
yarn typemove-sui --target-dir ./src/types ./src/abis
|
|
38
|
+
```
|
|
39
|
+
- generate types using local node:
|
|
40
|
+
```typescript
|
|
41
|
+
yarn typemove-sui --network http://localhost:8080 0x48271d39d0b05bd6efca2278f22277d6fcc375504f9839fd73f74ace240861af
|
|
42
|
+
```
|
|
23
43
|
|
|
24
44
|
### Decode Object
|
|
25
45
|
```typescript
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { SuiMoveNormalizedModule, SuiEvent, SuiMoveObject } from '@mysten/sui.js/client';
|
|
2
2
|
import { InternalMoveModule, InternalMoveStruct, AbstractCodegen, InternalMoveFunction } from '@typemove/move';
|
|
3
|
-
export declare function codegen(abisDir: string, outDir: string | undefined, endpoint: string, genExample?: boolean, builtin?: boolean): Promise<
|
|
3
|
+
export declare function codegen(abisDir: string, outDir: string | undefined, endpoint: string, genExample?: boolean, builtin?: boolean): Promise<number>;
|
|
4
4
|
export declare class SuiCodegen extends AbstractCodegen<SuiMoveNormalizedModule, SuiEvent | SuiMoveObject> {
|
|
5
5
|
ADDRESS_TYPE: string;
|
|
6
6
|
SYSTEM_PACKAGE: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codegen.d.ts","sourceRoot":"","sources":["../../../src/codegen/codegen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,QAAQ,EAAE,aAAa,EAAa,MAAM,uBAAuB,CAAA;AAInG,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EAEf,oBAAoB,EAIrB,MAAM,gBAAgB,CAAA;AAIvB,wBAAsB,OAAO,CAC3B,OAAO,EAAE,MAAM,EACf,MAAM,oBAA8B,EACpC,QAAQ,EAAE,MAAM,EAChB,UAAU,UAAQ,EAClB,OAAO,UAAQ,
|
|
1
|
+
{"version":3,"file":"codegen.d.ts","sourceRoot":"","sources":["../../../src/codegen/codegen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,QAAQ,EAAE,aAAa,EAAa,MAAM,uBAAuB,CAAA;AAInG,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EAEf,oBAAoB,EAIrB,MAAM,gBAAgB,CAAA;AAIvB,wBAAsB,OAAO,CAC3B,OAAO,EAAE,MAAM,EACf,MAAM,oBAA8B,EACpC,QAAQ,EAAE,MAAM,EAChB,UAAU,UAAQ,EAClB,OAAO,UAAQ,mBAoBhB;AAED,qBAAa,UAAW,SAAQ,eAAe,CAE7C,uBAAuB,EACvB,QAAQ,GAAG,aAAa,CACzB;IACC,YAAY,SAAW;IACvB,cAAc,SAAkB;IAIhC,MAAM,SAAQ;IAGd,gBAAgB,UAAO;gBAEX,QAAQ,EAAE,MAAM;IAI5B,eAAe,CAAC,QAAQ,EAAE,MAAM;IAQhC,eAAe,CAAC,MAAM,EAAE,kBAAkB,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,MAAM;IAsBpG,iBAAiB,CAAC,MAAM,EAAE,kBAAkB,EAAE,MAAM,EAAE,kBAAkB,GAAG,MAAM;IAajF,SAAS,CAAC,aAAa,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM;IAe3D,OAAO,CAAC,YAAY;IAuBpB,SAAS,CAAC,oBAAoB,CAAC,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,oBAAoB,GAAG,MAAM;IAgC9F,SAAS,CAAC,0BAA0B,CAAC,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,oBAAoB,GAAG,MAAM;IAoCpG,eAAe,IAAI,MAAM;CAU1B"}
|
|
@@ -10,11 +10,25 @@ const path_1 = require("path");
|
|
|
10
10
|
const sui_chain_adapter_js_1 = require("../sui-chain-adapter.js");
|
|
11
11
|
async function codegen(abisDir, outDir = (0, path_1.join)('src', 'types', 'sui'), endpoint, genExample = false, builtin = false) {
|
|
12
12
|
if (!fs.existsSync(abisDir)) {
|
|
13
|
-
|
|
13
|
+
console.error(chalk_1.default.red(`ABIs directory ${abisDir} does not exist`));
|
|
14
|
+
return 0;
|
|
15
|
+
}
|
|
16
|
+
try {
|
|
17
|
+
const gen = new SuiCodegen(endpoint);
|
|
18
|
+
const numFiles = await gen.generate(abisDir, outDir, builtin);
|
|
19
|
+
if (numFiles > 0) {
|
|
20
|
+
console.log(chalk_1.default.green(`Generated for ${numFiles} accounts for Sui to ${outDir}`));
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
console.error(chalk_1.default.red(`No account found`));
|
|
24
|
+
}
|
|
25
|
+
return numFiles;
|
|
26
|
+
}
|
|
27
|
+
catch (e) {
|
|
28
|
+
console.error(chalk_1.default.red(`Failed to generate for ${abisDir}, please check if ABI json files are valid`));
|
|
29
|
+
console.log(e);
|
|
30
|
+
return 0;
|
|
14
31
|
}
|
|
15
|
-
const gen = new SuiCodegen(endpoint);
|
|
16
|
-
const numFiles = await gen.generate(abisDir, outDir, builtin);
|
|
17
|
-
console.log(chalk_1.default.green(`Generated ${numFiles} for Sui`));
|
|
18
32
|
}
|
|
19
33
|
exports.codegen = codegen;
|
|
20
34
|
class SuiCodegen extends move_1.AbstractCodegen {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codegen.js","sourceRoot":"","sources":["../../../src/codegen/codegen.ts"],"names":[],"mappings":";;;;AAAA,kDAAmG;AAEnG,+CAAwB;AACxB,0DAAyB;AACzB,yCASuB;AACvB,+BAA2B;AAC3B,kEAAyD;AAElD,KAAK,UAAU,OAAO,CAC3B,OAAe,EACf,MAAM,GAAG,IAAA,WAAI,EAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,EACpC,QAAgB,EAChB,UAAU,GAAG,KAAK,EAClB,OAAO,GAAG,KAAK;IAEf,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;QAC3B,
|
|
1
|
+
{"version":3,"file":"codegen.js","sourceRoot":"","sources":["../../../src/codegen/codegen.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { SuiMoveNormalizedModule, SuiEvent, SuiMoveObject } from '@mysten/sui.js/client';
|
|
2
2
|
import { InternalMoveModule, InternalMoveStruct, AbstractCodegen, InternalMoveFunction } from '@typemove/move';
|
|
3
|
-
export declare function codegen(abisDir: string, outDir: string | undefined, endpoint: string, genExample?: boolean, builtin?: boolean): Promise<
|
|
3
|
+
export declare function codegen(abisDir: string, outDir: string | undefined, endpoint: string, genExample?: boolean, builtin?: boolean): Promise<number>;
|
|
4
4
|
export declare class SuiCodegen extends AbstractCodegen<SuiMoveNormalizedModule, SuiEvent | SuiMoveObject> {
|
|
5
5
|
ADDRESS_TYPE: string;
|
|
6
6
|
SYSTEM_PACKAGE: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codegen.d.ts","sourceRoot":"","sources":["../../../src/codegen/codegen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,QAAQ,EAAE,aAAa,EAAa,MAAM,uBAAuB,CAAA;AAInG,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EAEf,oBAAoB,EAIrB,MAAM,gBAAgB,CAAA;AAIvB,wBAAsB,OAAO,CAC3B,OAAO,EAAE,MAAM,EACf,MAAM,oBAA8B,EACpC,QAAQ,EAAE,MAAM,EAChB,UAAU,UAAQ,EAClB,OAAO,UAAQ,
|
|
1
|
+
{"version":3,"file":"codegen.d.ts","sourceRoot":"","sources":["../../../src/codegen/codegen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,QAAQ,EAAE,aAAa,EAAa,MAAM,uBAAuB,CAAA;AAInG,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EAEf,oBAAoB,EAIrB,MAAM,gBAAgB,CAAA;AAIvB,wBAAsB,OAAO,CAC3B,OAAO,EAAE,MAAM,EACf,MAAM,oBAA8B,EACpC,QAAQ,EAAE,MAAM,EAChB,UAAU,UAAQ,EAClB,OAAO,UAAQ,mBAoBhB;AAED,qBAAa,UAAW,SAAQ,eAAe,CAE7C,uBAAuB,EACvB,QAAQ,GAAG,aAAa,CACzB;IACC,YAAY,SAAW;IACvB,cAAc,SAAkB;IAIhC,MAAM,SAAQ;IAGd,gBAAgB,UAAO;gBAEX,QAAQ,EAAE,MAAM;IAI5B,eAAe,CAAC,QAAQ,EAAE,MAAM;IAQhC,eAAe,CAAC,MAAM,EAAE,kBAAkB,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,MAAM;IAsBpG,iBAAiB,CAAC,MAAM,EAAE,kBAAkB,EAAE,MAAM,EAAE,kBAAkB,GAAG,MAAM;IAajF,SAAS,CAAC,aAAa,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM;IAe3D,OAAO,CAAC,YAAY;IAuBpB,SAAS,CAAC,oBAAoB,CAAC,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,oBAAoB,GAAG,MAAM;IAgC9F,SAAS,CAAC,0BAA0B,CAAC,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,oBAAoB,GAAG,MAAM;IAoCpG,eAAe,IAAI,MAAM;CAU1B"}
|
|
@@ -6,11 +6,25 @@ import { join } from 'path';
|
|
|
6
6
|
import { SuiChainAdapter } from '../sui-chain-adapter.js';
|
|
7
7
|
export async function codegen(abisDir, outDir = join('src', 'types', 'sui'), endpoint, genExample = false, builtin = false) {
|
|
8
8
|
if (!fs.existsSync(abisDir)) {
|
|
9
|
-
|
|
9
|
+
console.error(chalk.red(`ABIs directory ${abisDir} does not exist`));
|
|
10
|
+
return 0;
|
|
11
|
+
}
|
|
12
|
+
try {
|
|
13
|
+
const gen = new SuiCodegen(endpoint);
|
|
14
|
+
const numFiles = await gen.generate(abisDir, outDir, builtin);
|
|
15
|
+
if (numFiles > 0) {
|
|
16
|
+
console.log(chalk.green(`Generated for ${numFiles} accounts for Sui to ${outDir}`));
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
console.error(chalk.red(`No account found`));
|
|
20
|
+
}
|
|
21
|
+
return numFiles;
|
|
22
|
+
}
|
|
23
|
+
catch (e) {
|
|
24
|
+
console.error(chalk.red(`Failed to generate for ${abisDir}, please check if ABI json files are valid`));
|
|
25
|
+
console.log(e);
|
|
26
|
+
return 0;
|
|
10
27
|
}
|
|
11
|
-
const gen = new SuiCodegen(endpoint);
|
|
12
|
-
const numFiles = await gen.generate(abisDir, outDir, builtin);
|
|
13
|
-
console.log(chalk.green(`Generated ${numFiles} for Sui`));
|
|
14
28
|
}
|
|
15
29
|
export class SuiCodegen extends AbstractCodegen {
|
|
16
30
|
ADDRESS_TYPE = 'string';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codegen.js","sourceRoot":"","sources":["../../../src/codegen/codegen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoD,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAEnG,OAAO,KAAK,EAAE,MAAM,IAAI,CAAA;AACxB,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAGL,eAAe,EACf,WAAW,EAEX,8BAA8B,EAC9B,iBAAiB,EACjB,KAAK,EACN,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAEzD,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,OAAe,EACf,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,EACpC,QAAgB,EAChB,UAAU,GAAG,KAAK,EAClB,OAAO,GAAG,KAAK;IAEf,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;QAC3B,
|
|
1
|
+
{"version":3,"file":"codegen.js","sourceRoot":"","sources":["../../../src/codegen/codegen.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/codegen/run.js
CHANGED
|
@@ -1,19 +1,49 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { codegen } from './codegen.js';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
import { Command } from 'commander';
|
|
4
|
+
import { createRequire } from 'module';
|
|
5
|
+
import fs from 'fs';
|
|
6
|
+
import path from 'path';
|
|
7
|
+
import { SuiClient } from '@mysten/sui.js/client';
|
|
8
|
+
const require = createRequire(import.meta.url);
|
|
9
|
+
let pkg = undefined;
|
|
10
|
+
try {
|
|
11
|
+
pkg = require('../../package.json');
|
|
12
|
+
}
|
|
13
|
+
catch (e) {
|
|
14
|
+
pkg = require('../../../package.json');
|
|
15
|
+
}
|
|
16
|
+
const program = new Command();
|
|
17
|
+
program
|
|
18
|
+
.name('typemove-sui')
|
|
19
|
+
.description('CLI to generate typescript types from SUI ABIs')
|
|
20
|
+
.showHelpAfterError()
|
|
21
|
+
.version(pkg.version)
|
|
22
|
+
.argument('<location>', 'Directory of ABI json files or address of account to generate types for')
|
|
23
|
+
.option('-a, --abi-dir <dir>', 'Directory to store downloaded ABI. Only useful if <location> is address', './abis')
|
|
24
|
+
.option('-t, --target-dir <dir>', 'Directory to output generated files', './types')
|
|
25
|
+
.option('-n, --network <mainnet|testnet|$url>', 'Network to use, could be either "mainnet", "testnet" or any node URL', 'mainnet')
|
|
26
|
+
.action(async (location, options) => {
|
|
27
|
+
let endpoint = options.network;
|
|
28
|
+
if (endpoint == 'mainnet') {
|
|
8
29
|
endpoint = 'https://fullnode.mainnet.sui.io/';
|
|
9
30
|
}
|
|
10
31
|
if (endpoint == 'testnet') {
|
|
11
32
|
endpoint = 'https://fullnode.testnet.sui.io/';
|
|
12
33
|
}
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
34
|
+
const suiClient = new SuiClient({ url: endpoint });
|
|
35
|
+
let abisDir = location;
|
|
36
|
+
if (location.startsWith('0x')) {
|
|
37
|
+
const abiAddress = abisDir;
|
|
38
|
+
const abi = await suiClient.getNormalizedMoveModulesByPackage({ package: abiAddress });
|
|
39
|
+
abisDir = options.abiDir;
|
|
40
|
+
if (!fs.existsSync(abisDir)) {
|
|
41
|
+
fs.mkdirSync(abisDir, { recursive: true });
|
|
42
|
+
}
|
|
43
|
+
fs.writeFileSync(path.join(abisDir, abiAddress + '.json'), JSON.stringify(abi, null, 2));
|
|
44
|
+
}
|
|
45
|
+
const num = await codegen(abisDir, options.targetDir, endpoint, true);
|
|
46
|
+
process.exit(num == 0 ? 1 : 0);
|
|
47
|
+
});
|
|
48
|
+
program.parse();
|
|
19
49
|
//# sourceMappingURL=run.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/codegen/run.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/codegen/run.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAA;AACtC,OAAO,EAAE,MAAM,IAAI,CAAA;AACnB,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACjD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC9C,IAAI,GAAG,GAAG,SAAS,CAAA;AACnB,IAAI;IACF,GAAG,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAA;CACpC;AAAC,OAAO,CAAC,EAAE;IACV,GAAG,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAA;CACvC;AAED,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;AAC7B,OAAO;KACJ,IAAI,CAAC,cAAc,CAAC;KACpB,WAAW,CAAC,gDAAgD,CAAC;KAC7D,kBAAkB,EAAE;KACpB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;KACpB,QAAQ,CAAC,YAAY,EAAE,yEAAyE,CAAC;KACjG,MAAM,CAAC,qBAAqB,EAAE,yEAAyE,EAAE,QAAQ,CAAC;KAClH,MAAM,CAAC,wBAAwB,EAAE,qCAAqC,EAAE,SAAS,CAAC;KAClF,MAAM,CACL,sCAAsC,EACtC,sEAAsE,EACtE,SAAS,CACV;KACA,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE;IAClC,IAAI,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAA;IAC9B,IAAI,QAAQ,IAAI,SAAS,EAAE;QACzB,QAAQ,GAAG,kCAAkC,CAAA;KAC9C;IACD,IAAI,QAAQ,IAAI,SAAS,EAAE;QACzB,QAAQ,GAAG,kCAAkC,CAAA;KAC9C;IAED,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAA;IAElD,IAAI,OAAO,GAAG,QAAQ,CAAA;IACtB,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;QAC7B,MAAM,UAAU,GAAG,OAAO,CAAA;QAC1B,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,iCAAiC,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAA;QACtF,OAAO,GAAG,OAAO,CAAC,MAAM,CAAA;QACxB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;YAC3B,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;SAC3C;QACD,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;KACzF;IAED,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAA;IACrE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAChC,CAAC,CAAC,CAAA;AAEJ,OAAO,CAAC,KAAK,EAAE,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@typemove/sui",
|
|
3
|
-
"version": "1.2.6-rc.
|
|
3
|
+
"version": "1.2.6-rc.5",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -30,20 +30,21 @@
|
|
|
30
30
|
],
|
|
31
31
|
"types": "./dist/cjs/index.d.ts",
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@mysten/bcs": "^0.8.
|
|
33
|
+
"@mysten/bcs": "^0.8.1",
|
|
34
34
|
"@mysten/sui.js": "~0.45.0",
|
|
35
35
|
"chalk": "^5.3.0",
|
|
36
|
+
"commander": "^11.1.0",
|
|
36
37
|
"prettier": "^3.0.3",
|
|
37
38
|
"radash": "^11.0.0",
|
|
38
|
-
"@typemove/move": "1.2.6-rc.
|
|
39
|
+
"@typemove/move": "1.2.6-rc.5"
|
|
39
40
|
},
|
|
40
41
|
"url": "https://github.com/sentioxyz/typemove",
|
|
41
42
|
"scripts": {
|
|
42
43
|
"build": "pnpm gen && tsc && pnpm build:cjs",
|
|
43
44
|
"build:all": "pnpm --filter=$(node -p \"require('./package.json').name\")... build",
|
|
44
45
|
"build:cjs": "tsc --project tsconfig.cjs.json && cp ../../package.cjs.json ./dist/cjs/package.json",
|
|
45
|
-
"gen": "pnpm gen:test && ts-node-esm src/codegen/run.ts src/
|
|
46
|
-
"gen:test": "ts-node-esm src/codegen/run.ts src/tests/
|
|
46
|
+
"gen": "pnpm gen:test && ts-node-esm src/codegen/run.ts -t src/builtin src/abis",
|
|
47
|
+
"gen:test": "ts-node-esm src/codegen/run.ts -t src/tests/types/testnet -n testnet src/tests/abis/testnet",
|
|
47
48
|
"test": "NODE_OPTIONS=--experimental-vm-modules pnpm jest"
|
|
48
49
|
}
|
|
49
50
|
}
|
package/src/codegen/codegen.ts
CHANGED
|
@@ -23,11 +23,23 @@ export async function codegen(
|
|
|
23
23
|
builtin = false
|
|
24
24
|
) {
|
|
25
25
|
if (!fs.existsSync(abisDir)) {
|
|
26
|
-
|
|
26
|
+
console.error(chalk.red(`ABIs directory ${abisDir} does not exist`))
|
|
27
|
+
return 0
|
|
28
|
+
}
|
|
29
|
+
try {
|
|
30
|
+
const gen = new SuiCodegen(endpoint)
|
|
31
|
+
const numFiles = await gen.generate(abisDir, outDir, builtin)
|
|
32
|
+
if (numFiles > 0) {
|
|
33
|
+
console.log(chalk.green(`Generated for ${numFiles} accounts for Sui to ${outDir}`))
|
|
34
|
+
} else {
|
|
35
|
+
console.error(chalk.red(`No account found`))
|
|
36
|
+
}
|
|
37
|
+
return numFiles
|
|
38
|
+
} catch (e) {
|
|
39
|
+
console.error(chalk.red(`Failed to generate for ${abisDir}, please check if ABI json files are valid`))
|
|
40
|
+
console.log(e)
|
|
41
|
+
return 0
|
|
27
42
|
}
|
|
28
|
-
const gen = new SuiCodegen(endpoint)
|
|
29
|
-
const numFiles = await gen.generate(abisDir, outDir, builtin)
|
|
30
|
-
console.log(chalk.green(`Generated ${numFiles} for Sui`))
|
|
31
43
|
}
|
|
32
44
|
|
|
33
45
|
export class SuiCodegen extends AbstractCodegen<
|
package/src/codegen/run.ts
CHANGED
|
@@ -1,20 +1,57 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
import { codegen } from './codegen.js'
|
|
4
|
+
import { Command } from 'commander'
|
|
5
|
+
import { createRequire } from 'module'
|
|
6
|
+
import fs from 'fs'
|
|
7
|
+
import path from 'path'
|
|
8
|
+
import { SuiClient } from '@mysten/sui.js/client'
|
|
9
|
+
const require = createRequire(import.meta.url)
|
|
10
|
+
let pkg = undefined
|
|
11
|
+
try {
|
|
12
|
+
pkg = require('../../package.json')
|
|
13
|
+
} catch (e) {
|
|
14
|
+
pkg = require('../../../package.json')
|
|
15
|
+
}
|
|
4
16
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
if
|
|
13
|
-
|
|
14
|
-
|
|
17
|
+
const program = new Command()
|
|
18
|
+
program
|
|
19
|
+
.name('typemove-sui')
|
|
20
|
+
.description('CLI to generate typescript types from SUI ABIs')
|
|
21
|
+
.showHelpAfterError()
|
|
22
|
+
.version(pkg.version)
|
|
23
|
+
.argument('<location>', 'Directory of ABI json files or address of account to generate types for')
|
|
24
|
+
.option('-a, --abi-dir <dir>', 'Directory to store downloaded ABI. Only useful if <location> is address', './abis')
|
|
25
|
+
.option('-t, --target-dir <dir>', 'Directory to output generated files', './types')
|
|
26
|
+
.option(
|
|
27
|
+
'-n, --network <mainnet|testnet|$url>',
|
|
28
|
+
'Network to use, could be either "mainnet", "testnet" or any node URL',
|
|
29
|
+
'mainnet'
|
|
30
|
+
)
|
|
31
|
+
.action(async (location, options) => {
|
|
32
|
+
let endpoint = options.network
|
|
33
|
+
if (endpoint == 'mainnet') {
|
|
34
|
+
endpoint = 'https://fullnode.mainnet.sui.io/'
|
|
35
|
+
}
|
|
36
|
+
if (endpoint == 'testnet') {
|
|
37
|
+
endpoint = 'https://fullnode.testnet.sui.io/'
|
|
38
|
+
}
|
|
15
39
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
40
|
+
const suiClient = new SuiClient({ url: endpoint })
|
|
41
|
+
|
|
42
|
+
let abisDir = location
|
|
43
|
+
if (location.startsWith('0x')) {
|
|
44
|
+
const abiAddress = abisDir
|
|
45
|
+
const abi = await suiClient.getNormalizedMoveModulesByPackage({ package: abiAddress })
|
|
46
|
+
abisDir = options.abiDir
|
|
47
|
+
if (!fs.existsSync(abisDir)) {
|
|
48
|
+
fs.mkdirSync(abisDir, { recursive: true })
|
|
49
|
+
}
|
|
50
|
+
fs.writeFileSync(path.join(abisDir, abiAddress + '.json'), JSON.stringify(abi, null, 2))
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
const num = await codegen(abisDir, options.targetDir, endpoint, true)
|
|
54
|
+
process.exit(num == 0 ? 1 : 0)
|
|
55
|
+
})
|
|
56
|
+
|
|
57
|
+
program.parse()
|