@typemove/sui 1.0.0-rc.9 → 1.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.
Files changed (119) hide show
  1. package/Readme.md +128 -0
  2. package/builtin/package.json +5 -0
  3. package/codegen/package.json +5 -0
  4. package/dist/cjs/builtin/0x1.d.ts +495 -0
  5. package/dist/cjs/builtin/0x1.d.ts.map +1 -0
  6. package/dist/cjs/builtin/0x1.js +2083 -0
  7. package/dist/cjs/builtin/0x1.js.map +1 -0
  8. package/dist/cjs/builtin/0x2.d.ts +2929 -0
  9. package/dist/cjs/builtin/0x2.d.ts.map +1 -0
  10. package/dist/cjs/builtin/0x2.js +9641 -0
  11. package/dist/cjs/builtin/0x2.js.map +1 -0
  12. package/dist/cjs/builtin/0x3.d.ts +1207 -0
  13. package/dist/cjs/builtin/0x3.d.ts.map +1 -0
  14. package/dist/cjs/builtin/0x3.js +2625 -0
  15. package/dist/cjs/builtin/0x3.js.map +1 -0
  16. package/dist/cjs/builtin/index.d.ts +4 -0
  17. package/dist/cjs/builtin/index.d.ts.map +1 -0
  18. package/dist/cjs/builtin/index.js +11 -0
  19. package/dist/cjs/builtin/index.js.map +1 -0
  20. package/dist/cjs/codegen/codegen.d.ts +19 -0
  21. package/dist/cjs/codegen/codegen.d.ts.map +1 -0
  22. package/dist/cjs/codegen/codegen.js +177 -0
  23. package/dist/cjs/codegen/codegen.js.map +1 -0
  24. package/dist/cjs/codegen/index.d.ts +2 -0
  25. package/dist/cjs/codegen/index.d.ts.map +1 -0
  26. package/dist/cjs/codegen/index.js +5 -0
  27. package/dist/cjs/codegen/index.js.map +1 -0
  28. package/dist/cjs/index.d.ts +4 -0
  29. package/dist/cjs/index.d.ts.map +1 -0
  30. package/dist/cjs/index.js +10 -0
  31. package/dist/cjs/index.js.map +1 -0
  32. package/dist/cjs/models.d.ts +12 -0
  33. package/dist/cjs/models.d.ts.map +1 -0
  34. package/dist/cjs/models.js +8 -0
  35. package/dist/cjs/models.js.map +1 -0
  36. package/dist/cjs/move-coder.d.ts +16 -0
  37. package/dist/cjs/move-coder.d.ts.map +1 -0
  38. package/dist/cjs/move-coder.js +104 -0
  39. package/dist/cjs/move-coder.js.map +1 -0
  40. package/dist/cjs/package.json +3 -0
  41. package/dist/cjs/sui-chain-adapter.d.ts +12 -0
  42. package/dist/cjs/sui-chain-adapter.d.ts.map +1 -0
  43. package/dist/cjs/sui-chain-adapter.js +86 -0
  44. package/dist/cjs/sui-chain-adapter.js.map +1 -0
  45. package/dist/cjs/to-internal.d.ts +4 -0
  46. package/dist/cjs/to-internal.d.ts.map +1 -0
  47. package/dist/cjs/to-internal.js +85 -0
  48. package/dist/cjs/to-internal.js.map +1 -0
  49. package/dist/cjs/utils.d.ts +15 -0
  50. package/dist/cjs/utils.d.ts.map +1 -0
  51. package/dist/cjs/utils.js +49 -0
  52. package/dist/cjs/utils.js.map +1 -0
  53. package/dist/esm/builtin/0x1.d.ts +495 -0
  54. package/dist/esm/builtin/0x1.d.ts.map +1 -0
  55. package/dist/esm/builtin/0x1.js +2079 -0
  56. package/dist/esm/builtin/0x1.js.map +1 -0
  57. package/dist/esm/builtin/0x2.d.ts +2929 -0
  58. package/dist/esm/builtin/0x2.d.ts.map +1 -0
  59. package/dist/esm/builtin/0x2.js +9636 -0
  60. package/dist/esm/builtin/0x2.js.map +1 -0
  61. package/dist/esm/builtin/0x3.d.ts +1207 -0
  62. package/dist/esm/builtin/0x3.d.ts.map +1 -0
  63. package/dist/esm/builtin/0x3.js +2620 -0
  64. package/dist/esm/builtin/0x3.js.map +1 -0
  65. package/dist/esm/builtin/index.d.ts +4 -0
  66. package/dist/esm/builtin/index.d.ts.map +1 -0
  67. package/dist/esm/builtin/index.js +7 -0
  68. package/dist/esm/builtin/index.js.map +1 -0
  69. package/dist/esm/codegen/codegen.d.ts +19 -0
  70. package/dist/esm/codegen/codegen.d.ts.map +1 -0
  71. package/dist/esm/codegen/codegen.js +171 -0
  72. package/dist/esm/codegen/codegen.js.map +1 -0
  73. package/dist/esm/codegen/index.d.ts +2 -0
  74. package/dist/esm/codegen/index.d.ts.map +1 -0
  75. package/dist/esm/codegen/index.js +2 -0
  76. package/dist/esm/codegen/index.js.map +1 -0
  77. package/dist/esm/codegen/run.d.ts +2 -0
  78. package/dist/esm/codegen/run.d.ts.map +1 -0
  79. package/dist/esm/codegen/run.js.map +1 -0
  80. package/dist/esm/index.d.ts +4 -0
  81. package/dist/esm/index.d.ts.map +1 -0
  82. package/dist/{index.js → esm/index.js} +0 -1
  83. package/dist/esm/index.js.map +1 -0
  84. package/dist/esm/models.d.ts +12 -0
  85. package/dist/esm/models.d.ts.map +1 -0
  86. package/dist/esm/models.js +5 -0
  87. package/dist/esm/models.js.map +1 -0
  88. package/dist/esm/move-coder.d.ts +16 -0
  89. package/dist/esm/move-coder.d.ts.map +1 -0
  90. package/dist/esm/move-coder.js +99 -0
  91. package/dist/esm/move-coder.js.map +1 -0
  92. package/dist/esm/sui-chain-adapter.d.ts +12 -0
  93. package/dist/esm/sui-chain-adapter.d.ts.map +1 -0
  94. package/dist/esm/sui-chain-adapter.js +82 -0
  95. package/dist/esm/sui-chain-adapter.js.map +1 -0
  96. package/dist/esm/to-internal.d.ts +4 -0
  97. package/dist/esm/to-internal.d.ts.map +1 -0
  98. package/dist/esm/to-internal.js +81 -0
  99. package/dist/esm/to-internal.js.map +1 -0
  100. package/dist/esm/utils.d.ts +15 -0
  101. package/dist/esm/utils.d.ts.map +1 -0
  102. package/dist/esm/utils.js +45 -0
  103. package/dist/esm/utils.js.map +1 -0
  104. package/package.json +20 -13
  105. package/src/builtin/0x1.ts +1359 -231
  106. package/src/builtin/0x2.ts +6364 -1302
  107. package/src/builtin/0x3.ts +1909 -495
  108. package/src/codegen/codegen.ts +63 -49
  109. package/src/index.ts +0 -2
  110. package/src/models.ts +9 -12
  111. package/src/move-coder.ts +6 -20
  112. package/src/sui-chain-adapter.ts +13 -15
  113. package/src/tests/types/testnet/0x1e2b124f746a339b3cf99b9f969393a96594519aafb1d06517aacfeeae20e7a5.ts +98 -30
  114. package/src/tests/types/testnet/0x6c4a21e3e7e6b6d51c4604021633e1d97e24e37a696f8c082cd48f37503e602a.ts +1084 -282
  115. package/src/tests/types/testnet/0xdee9.ts +1112 -308
  116. package/src/tests/types/testnet/0xebaa2ad3eacc230f309cd933958cc52684df0a41ae7ac214d186b80f830867d2.ts +3973 -1201
  117. package/src/to-internal.ts +12 -32
  118. package/src/module-client.ts +0 -23
  119. /package/dist/{codegen → esm/codegen}/run.js +0 -0
@@ -0,0 +1,99 @@
1
+ import { AbstractMoveCoder, ANY_TYPE, parseMoveType, SPLITTER, TypeDescriptor, } from '@typemove/move';
2
+ import { toInternalModule } from './to-internal.js';
3
+ import { SuiChainAdapter } from './sui-chain-adapter.js';
4
+ export class MoveCoder extends AbstractMoveCoder {
5
+ constructor(network) {
6
+ super(new SuiChainAdapter(network));
7
+ }
8
+ load(module) {
9
+ let m = this.moduleMapping.get(module.address + '::' + module.name);
10
+ if (m) {
11
+ return m;
12
+ }
13
+ m = toInternalModule(module);
14
+ this.loadInternal(m);
15
+ return m;
16
+ }
17
+ decode(data, type) {
18
+ switch (type.qname) {
19
+ case '0x1::ascii::Char':
20
+ case '0x1::ascii::String':
21
+ case '0x2::object::ID':
22
+ case '0x2::coin::Coin':
23
+ return data;
24
+ case '0x2::balance::Balance':
25
+ return BigInt(data);
26
+ case '0x1::option::Option':
27
+ if (data === null) {
28
+ return data;
29
+ }
30
+ return this.decode(data, type.typeArgs[0]);
31
+ default:
32
+ return super.decode(data, type);
33
+ }
34
+ }
35
+ decodeEvent(event) {
36
+ return this.decodedStruct(event);
37
+ }
38
+ filterAndDecodeEvents(type, resources) {
39
+ if (typeof type === 'string') {
40
+ type = parseMoveType(type);
41
+ }
42
+ return this.filterAndDecodeStruct(type, resources);
43
+ }
44
+ async getDynamicFields(objects, keyType = ANY_TYPE, valueType = ANY_TYPE) {
45
+ // const type = dynamic_field.Field.TYPE
46
+ // Not using the code above to avoid cycle initialize failed
47
+ const type = new TypeDescriptor('0x2::dynamic_field::Field');
48
+ type.typeArgs = [keyType, valueType];
49
+ const res = await this.filterAndDecodeObjects(type, objects);
50
+ return res.map((o) => o.data_decoded);
51
+ }
52
+ filterAndDecodeObjects(type, objects) {
53
+ return this.filterAndDecodeStruct(type, objects);
54
+ }
55
+ async decodeFunctionPayload(payload, inputs) {
56
+ const functionType = [payload.package, payload.module, payload.function].join(SPLITTER);
57
+ const func = await this.getMoveFunction(functionType);
58
+ const params = this.adapter.getMeaningfulFunctionParams(func.params);
59
+ const args = [];
60
+ for (const value of payload.arguments || []) {
61
+ const argValue = value;
62
+ if ('Input' in argValue) {
63
+ const idx = argValue.Input;
64
+ const arg = inputs[idx];
65
+ if (arg.type === 'pure') {
66
+ args.push(arg.value);
67
+ }
68
+ else if (arg.type === 'object') {
69
+ // object is not there
70
+ args.push(undefined);
71
+ }
72
+ else {
73
+ console.error('unexpected function arg value');
74
+ args.push(undefined);
75
+ }
76
+ // args.push(arg) // TODO check why ts not work using arg.push(arg)
77
+ }
78
+ else {
79
+ args.push(undefined);
80
+ }
81
+ }
82
+ const argumentsTyped = await this.decodeArray(args, params, false);
83
+ return {
84
+ ...payload,
85
+ arguments_decoded: argumentsTyped,
86
+ };
87
+ }
88
+ }
89
+ const DEFAULT_ENDPOINT = 'https://fullnode.mainnet.sui.io/';
90
+ const CODER_MAP = new Map();
91
+ export function defaultMoveCoder(endpoint = DEFAULT_ENDPOINT) {
92
+ let coder = CODER_MAP.get(endpoint);
93
+ if (!coder) {
94
+ coder = new MoveCoder(DEFAULT_ENDPOINT);
95
+ CODER_MAP.set(endpoint, coder);
96
+ }
97
+ return coder;
98
+ }
99
+ //# sourceMappingURL=move-coder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"move-coder.js","sourceRoot":"","sources":["../../src/move-coder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { InternalMoveModule, InternalMoveStruct, ChainAdapter, TypeDescriptor } from '@typemove/move';
2
+ import { SuiMoveNormalizedModule, SuiEvent, SuiMoveObject } from '@mysten/sui.js/client';
3
+ export declare class SuiChainAdapter extends ChainAdapter<SuiMoveNormalizedModule, SuiEvent | SuiMoveObject> {
4
+ fetchModule(account: string, module: string): Promise<SuiMoveNormalizedModule>;
5
+ fetchModules(account: string): Promise<SuiMoveNormalizedModule[]>;
6
+ getMeaningfulFunctionParams(params: TypeDescriptor[]): TypeDescriptor[];
7
+ toInternalModules(modules: SuiMoveNormalizedModule[]): InternalMoveModule[];
8
+ getAllEventStructs(modules: InternalMoveModule[]): Map<string, InternalMoveStruct>;
9
+ getType(base: SuiEvent | SuiMoveObject): string;
10
+ getData(val: SuiEvent | SuiMoveObject): any;
11
+ }
12
+ //# sourceMappingURL=sui-chain-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sui-chain-adapter.d.ts","sourceRoot":"","sources":["../../src/sui-chain-adapter.ts"],"names":[],"mappings":"AACA,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,YAAY,EAGZ,cAAc,EACf,MAAM,gBAAgB,CAAA;AAEvB,OAAO,EAAE,uBAAuB,EAAE,QAAQ,EAAE,aAAa,EAAa,MAAM,uBAAuB,CAAA;AAEnG,qBAAa,eAAgB,SAAQ,YAAY,CAE/C,uBAAuB,EACvB,QAAQ,GAAG,aAAa,CACzB;IAGO,WAAW,CACf,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GAEb,OAAO,CAAC,uBAAuB,CAAC;IAK7B,YAAY,CAChB,OAAO,EAAE,MAAM,GAEd,OAAO,CAAC,uBAAuB,EAAE,CAAC;IAQrC,2BAA2B,CAAC,MAAM,EAAE,cAAc,EAAE,GAAG,cAAc,EAAE;IAQvE,iBAAiB,CAAC,OAAO,EAAE,uBAAuB,EAAE,GAAG,kBAAkB,EAAE;IAI3E,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC;IAgBlF,OAAO,CAAC,IAAI,EAAE,QAAQ,GAAG,aAAa,GAAG,MAAM;IAI/C,OAAO,CAAC,GAAG,EAAE,QAAQ,GAAG,aAAa;CA2BtC"}
@@ -0,0 +1,82 @@
1
+ import { toInternalModule } from './to-internal.js';
2
+ import { ChainAdapter, moduleQname, SPLITTER, } from '@typemove/move';
3
+ import { SuiClient } from '@mysten/sui.js/client';
4
+ export class SuiChainAdapter extends ChainAdapter {
5
+ // static INSTANCE = new SuiChainAdapter()
6
+ async fetchModule(account, module
7
+ // network: SuiNetwork
8
+ ) {
9
+ const client = getRpcClient(this.endpoint);
10
+ return await client.getNormalizedMoveModule({ package: account, module });
11
+ }
12
+ async fetchModules(account
13
+ // network: SuiNetwork
14
+ ) {
15
+ const client = getRpcClient(this.endpoint);
16
+ const modules = await client.getNormalizedMoveModulesByPackage({
17
+ package: account,
18
+ });
19
+ return Object.values(modules);
20
+ }
21
+ getMeaningfulFunctionParams(params) {
22
+ return params;
23
+ // if (params.length === 0) {
24
+ // return params
25
+ // }
26
+ // return params.slice(0, params.length - 1)
27
+ }
28
+ toInternalModules(modules) {
29
+ return Object.values(modules).map(toInternalModule);
30
+ }
31
+ getAllEventStructs(modules) {
32
+ const eventMap = new Map();
33
+ for (const module of modules) {
34
+ const qname = moduleQname(module);
35
+ for (const struct of module.structs) {
36
+ const abilities = new Set(struct.abilities);
37
+ if (abilities.has('Drop') && abilities.has('Copy')) {
38
+ eventMap.set(qname + SPLITTER + struct.name, struct);
39
+ }
40
+ }
41
+ }
42
+ return eventMap;
43
+ }
44
+ getType(base) {
45
+ return base.type;
46
+ }
47
+ getData(val) {
48
+ // if (val.parsedJson) {
49
+ // return val.parsedJson as any
50
+ // }
51
+ if ('parsedJson' in val) {
52
+ return val.parsedJson;
53
+ }
54
+ // if (SuiParsedData.is(val)) {
55
+ // return val.fields as any
56
+ // }
57
+ if (val.dataType === 'moveObject') {
58
+ return val.fields;
59
+ }
60
+ // if (SuiMoveObject.is(val)) {
61
+ // return val.fields as any
62
+ // }
63
+ // This may not be perfect, just think everything has
64
+ if ('fields' in val) {
65
+ if ('type' in val && Object.keys(val).length === 2) {
66
+ return val.fields;
67
+ }
68
+ }
69
+ return val;
70
+ }
71
+ }
72
+ // function getRpcEndpoint(network: SuiNetwork): string {
73
+ // switch (network) {
74
+ // case SuiNetwork.TEST_NET:
75
+ // return 'https://fullnode.testnet.sui.io/'
76
+ // }
77
+ // return 'https://fullnode.mainnet.sui.io/'
78
+ // }
79
+ function getRpcClient(endpoint) {
80
+ return new SuiClient({ url: endpoint });
81
+ }
82
+ //# sourceMappingURL=sui-chain-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sui-chain-adapter.js","sourceRoot":"","sources":["../../src/sui-chain-adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { SuiMoveNormalizedModule } from '@mysten/sui.js/client';
2
+ import { InternalMoveModule } from '@typemove/move';
3
+ export declare function toInternalModule(module: SuiMoveNormalizedModule): InternalMoveModule;
4
+ //# sourceMappingURL=to-internal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"to-internal.d.ts","sourceRoot":"","sources":["../../src/to-internal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,uBAAuB,EAGxB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAGL,kBAAkB,EAKnB,MAAM,gBAAgB,CAAA;AAEvB,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,uBAAuB,GAAG,kBAAkB,CAOpF"}
@@ -0,0 +1,81 @@
1
+ import { InternalMoveFunctionVisibility, SPLITTER, TypeDescriptor, } from '@typemove/move';
2
+ export function toInternalModule(module) {
3
+ return {
4
+ address: module.address,
5
+ exposedFunctions: Object.entries(module.exposedFunctions).map(([n, f]) => toInternalFunction(n, f)),
6
+ name: module.name,
7
+ structs: Object.entries(module.structs).map(([n, s]) => toInternalStruct(n, s)),
8
+ };
9
+ }
10
+ function toInternalFunction(name, func) {
11
+ let visibility;
12
+ switch (func.visibility) {
13
+ case 'Private':
14
+ visibility = InternalMoveFunctionVisibility.PRIVATE;
15
+ break;
16
+ case 'Public':
17
+ visibility = InternalMoveFunctionVisibility.PUBLIC;
18
+ break;
19
+ case 'Friend':
20
+ visibility = InternalMoveFunctionVisibility.FRIEND;
21
+ break;
22
+ default:
23
+ throw Error('No visibility for function' + name);
24
+ }
25
+ return {
26
+ typeParams: func.typeParameters.map((p) => {
27
+ return { constraints: p.abilities };
28
+ }),
29
+ isEntry: func.isEntry,
30
+ name: name,
31
+ params: func.parameters.map(toTypeDescriptor),
32
+ return: func.return.map(toTypeDescriptor),
33
+ visibility: visibility,
34
+ };
35
+ }
36
+ function toInternalStruct(name, struct) {
37
+ return {
38
+ abilities: struct.abilities.abilities,
39
+ fields: struct.fields.map(toInternalField),
40
+ typeParams: struct.typeParameters.map((p) => {
41
+ return { constraints: p.constraints.abilities };
42
+ }),
43
+ isNative: false,
44
+ name: name,
45
+ };
46
+ }
47
+ function toInternalField(module) {
48
+ return {
49
+ name: module.name,
50
+ type: toTypeDescriptor(module.type),
51
+ };
52
+ }
53
+ function toTypeDescriptor(normalizedType) {
54
+ if (typeof normalizedType === 'string') {
55
+ return new TypeDescriptor(normalizedType);
56
+ }
57
+ if ('Struct' in normalizedType) {
58
+ const qname = [normalizedType.Struct.address, normalizedType.Struct.module, normalizedType.Struct.name].join(SPLITTER);
59
+ const args = normalizedType.Struct.typeArguments.map(toTypeDescriptor);
60
+ return new TypeDescriptor(qname, args);
61
+ }
62
+ if ('Vector' in normalizedType) {
63
+ return new TypeDescriptor('Vector', [toTypeDescriptor(normalizedType.Vector)]);
64
+ }
65
+ if ('TypeParameter' in normalizedType) {
66
+ return new TypeDescriptor('T' + normalizedType.TypeParameter);
67
+ }
68
+ if ('Reference' in normalizedType) {
69
+ const res = toTypeDescriptor(normalizedType.Reference);
70
+ res.reference = true;
71
+ return res;
72
+ }
73
+ if ('MutableReference' in normalizedType) {
74
+ const res = toTypeDescriptor(normalizedType.MutableReference);
75
+ res.reference = true;
76
+ res.mutable = true;
77
+ return res;
78
+ }
79
+ throw new Error('Unexpected sui type');
80
+ }
81
+ //# sourceMappingURL=to-internal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"to-internal.js","sourceRoot":"","sources":["../../src/to-internal.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { SuiTransactionBlockResponse } from '@mysten/sui.js';
2
+ export declare function getMoveCalls(txBlock: SuiTransactionBlockResponse): {
3
+ function: string;
4
+ package: string;
5
+ module: string;
6
+ arguments?: ("GasCoin" | {
7
+ Input: number;
8
+ } | {
9
+ Result: number;
10
+ } | {
11
+ NestedResult: [number, number];
12
+ })[] | undefined;
13
+ type_arguments?: string[] | undefined;
14
+ }[];
15
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2BAA2B,EAM5B,MAAM,gBAAgB,CAAA;AAEvB,wBAAgB,YAAY,CAAC,OAAO,EAAE,2BAA2B;;;;;;;;;;;;IA6BhE"}
@@ -0,0 +1,45 @@
1
+ import { getTransactionKind, getProgrammableTransaction, } from '@mysten/sui.js';
2
+ export function getMoveCalls(txBlock) {
3
+ const txKind = getTransactionKind(txBlock);
4
+ if (!txKind) {
5
+ return [];
6
+ }
7
+ const programmableTx = getProgrammableTransaction(txKind);
8
+ if (!programmableTx) {
9
+ return [];
10
+ }
11
+ return programmableTx.transactions.flatMap((tx) => {
12
+ if ('MoveCall' in tx) {
13
+ const call = tx.MoveCall;
14
+ let pkg = call.package;
15
+ if (call.package.startsWith('0x000000000000000000000000000000000000000000000000000000000000000')) {
16
+ pkg = '0x' + pkg[pkg.length - 1];
17
+ }
18
+ call.package = pkg;
19
+ return [call];
20
+ }
21
+ return [];
22
+ });
23
+ }
24
+ // function isHex(value: string): boolean {
25
+ // return /^(0x|0X)?[a-fA-F0-9]+$/.test(value)
26
+ // }
27
+ //
28
+ // function getHexByteLength(value: string): number {
29
+ // return /^(0x|0X)/.test(value) ? (value.length - 2) / 2 : value.length / 2
30
+ // }
31
+ //
32
+ // export function isValidSuiAddress(value: string): value is SuiAddress {
33
+ // return isHex(value) && getHexByteLength(value) <= SUI_ADDRESS_LENGTH
34
+ // }
35
+ // export function validateAndNormalizeAddress(address: string): string {
36
+ // // if (isFrameworkAccount(address)) {
37
+ // // const n = parseInt(address, 16)
38
+ // // return `0x${n.toString(16)}`
39
+ // // }
40
+ // if (!isValidSuiAddress(address)) {
41
+ // throw Error('Not valid Address')
42
+ // }
43
+ // return normalizeSuiAddress(address)
44
+ // }
45
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,kBAAkB,EAClB,0BAA0B,GAG3B,MAAM,gBAAgB,CAAA;AAEvB,MAAM,UAAU,YAAY,CAAC,OAAoC;IAC/D,MAAM,MAAM,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAA;IAC1C,IAAI,CAAC,MAAM,EAAE;QACX,OAAO,EAAE,CAAA;KACV;IACD,MAAM,cAAc,GAClB,0BAA0B,CAAC,MAAM,CAAC,CAAA;IACpC,IAAI,CAAC,cAAc,EAAE;QACnB,OAAO,EAAE,CAAA;KACV;IAED,OAAO,cAAc,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,EAAkB,EAAE,EAAE;QAChE,IAAI,UAAU,IAAI,EAAE,EAAE;YACpB,MAAM,IAAI,GAAG,EAAE,CAAC,QAAkC,CAAA;YAElD,IAAI,GAAG,GAAW,IAAI,CAAC,OAAO,CAAA;YAC9B,IACE,IAAI,CAAC,OAAO,CAAC,UAAU,CACrB,mEAAmE,CACpE,EACD;gBACA,GAAG,GAAG,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;aACjC;YACD,IAAI,CAAC,OAAO,GAAG,GAAG,CAAA;YAElB,OAAO,CAAC,IAAI,CAAC,CAAA;SACd;QACD,OAAO,EAAE,CAAA;IACX,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,2CAA2C;AAC3C,gDAAgD;AAChD,IAAI;AACJ,EAAE;AACF,qDAAqD;AACrD,8EAA8E;AAC9E,IAAI;AACJ,EAAE;AACF,0EAA0E;AAC1E,yEAAyE;AACzE,IAAI;AAEJ,yEAAyE;AACzE,0CAA0C;AAC1C,yCAAyC;AACzC,sCAAsC;AACtC,SAAS;AACT,uCAAuC;AACvC,uCAAuC;AACvC,MAAM;AACN,wCAAwC;AACxC,IAAI"}
package/package.json CHANGED
@@ -1,39 +1,46 @@
1
1
  {
2
2
  "name": "@typemove/sui",
3
- "version": "1.0.0-rc.9",
3
+ "version": "1.0.0",
4
4
  "license": "Apache-2.0",
5
5
  "type": "module",
6
6
  "exports": {
7
7
  ".": {
8
- "import": "./dist/index.js",
9
- "types": "./dist/index.d.ts"
8
+ "import": "./dist/esm/index.js",
9
+ "require": "./dist/cjs/index.js"
10
10
  },
11
11
  "./builtin": {
12
- "import": "./dist/builtin/index.js",
13
- "types": "./dist/builtin/index.d.ts"
12
+ "import": "./dist/esm/builtin/index.js",
13
+ "require": "./dist/cjs/builtin/index.js"
14
+ },
15
+ "./codegen": {
16
+ "import": "./dist/esm/codegen/index.js",
17
+ "require": "./dist/cjs/codegen/index.js"
14
18
  }
15
19
  },
16
- "main": "./dist/index.js",
20
+ "main": "./dist/cjs/index.js",
21
+ "module": "./dist/esm/index.js",
17
22
  "bin": {
18
- "typemove-sui": "./dist/codegen/run.js"
23
+ "typemove-sui": "./dist/esm/codegen/run.js"
19
24
  },
20
25
  "files": [
21
- "{lib,src}",
26
+ "**/package.json",
27
+ "{dist,src}",
22
28
  "!**/*.test.{js,ts}",
23
- "!{lib,src}/*/tests"
29
+ "!{dist,src}/*/tests"
24
30
  ],
25
- "types": "./dist/index.d.ts",
31
+ "types": "./dist/cjs/index.d.ts",
26
32
  "dependencies": {
27
33
  "@mysten/bcs": "^0.7.3",
28
- "@mysten/sui.js": "^0.37.1",
34
+ "@mysten/sui.js": "^0.39.0",
29
35
  "chalk": "^5.2.0",
30
36
  "radash": "^11.0.0",
31
- "@typemove/move": "1.0.0-rc.9"
37
+ "@typemove/move": "1.0.0"
32
38
  },
33
39
  "url": "https://github.com/sentioxyz/typemove",
34
40
  "scripts": {
35
- "build": "pnpm gen && tsc",
41
+ "build": "pnpm gen && tsc && pnpm build:cjs",
36
42
  "build:all": "pnpm --filter=$(node -p \"require('./package.json').name\")... build",
43
+ "build:cjs": "tsc --project tsconfig.cjs.json && cp ../../package.cjs.json ./dist/cjs/package.json",
37
44
  "gen": "pnpm gen:test && ts-node-esm src/codegen/run.ts src/abis src/builtin",
38
45
  "gen:test": "ts-node-esm src/codegen/run.ts src/tests/abis/testnet src/tests/types/testnet testnet",
39
46
  "test": "NODE_OPTIONS=--experimental-vm-modules pnpm jest"