@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,104 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defaultMoveCoder = exports.MoveCoder = void 0;
4
+ const move_1 = require("@typemove/move");
5
+ const to_internal_js_1 = require("./to-internal.js");
6
+ const sui_chain_adapter_js_1 = require("./sui-chain-adapter.js");
7
+ class MoveCoder extends move_1.AbstractMoveCoder {
8
+ constructor(network) {
9
+ super(new sui_chain_adapter_js_1.SuiChainAdapter(network));
10
+ }
11
+ load(module) {
12
+ let m = this.moduleMapping.get(module.address + '::' + module.name);
13
+ if (m) {
14
+ return m;
15
+ }
16
+ m = (0, to_internal_js_1.toInternalModule)(module);
17
+ this.loadInternal(m);
18
+ return m;
19
+ }
20
+ decode(data, type) {
21
+ switch (type.qname) {
22
+ case '0x1::ascii::Char':
23
+ case '0x1::ascii::String':
24
+ case '0x2::object::ID':
25
+ case '0x2::coin::Coin':
26
+ return data;
27
+ case '0x2::balance::Balance':
28
+ return BigInt(data);
29
+ case '0x1::option::Option':
30
+ if (data === null) {
31
+ return data;
32
+ }
33
+ return this.decode(data, type.typeArgs[0]);
34
+ default:
35
+ return super.decode(data, type);
36
+ }
37
+ }
38
+ decodeEvent(event) {
39
+ return this.decodedStruct(event);
40
+ }
41
+ filterAndDecodeEvents(type, resources) {
42
+ if (typeof type === 'string') {
43
+ type = (0, move_1.parseMoveType)(type);
44
+ }
45
+ return this.filterAndDecodeStruct(type, resources);
46
+ }
47
+ async getDynamicFields(objects, keyType = move_1.ANY_TYPE, valueType = move_1.ANY_TYPE) {
48
+ // const type = dynamic_field.Field.TYPE
49
+ // Not using the code above to avoid cycle initialize failed
50
+ const type = new move_1.TypeDescriptor('0x2::dynamic_field::Field');
51
+ type.typeArgs = [keyType, valueType];
52
+ const res = await this.filterAndDecodeObjects(type, objects);
53
+ return res.map((o) => o.data_decoded);
54
+ }
55
+ filterAndDecodeObjects(type, objects) {
56
+ return this.filterAndDecodeStruct(type, objects);
57
+ }
58
+ async decodeFunctionPayload(payload, inputs) {
59
+ const functionType = [payload.package, payload.module, payload.function].join(move_1.SPLITTER);
60
+ const func = await this.getMoveFunction(functionType);
61
+ const params = this.adapter.getMeaningfulFunctionParams(func.params);
62
+ const args = [];
63
+ for (const value of payload.arguments || []) {
64
+ const argValue = value;
65
+ if ('Input' in argValue) {
66
+ const idx = argValue.Input;
67
+ const arg = inputs[idx];
68
+ if (arg.type === 'pure') {
69
+ args.push(arg.value);
70
+ }
71
+ else if (arg.type === 'object') {
72
+ // object is not there
73
+ args.push(undefined);
74
+ }
75
+ else {
76
+ console.error('unexpected function arg value');
77
+ args.push(undefined);
78
+ }
79
+ // args.push(arg) // TODO check why ts not work using arg.push(arg)
80
+ }
81
+ else {
82
+ args.push(undefined);
83
+ }
84
+ }
85
+ const argumentsTyped = await this.decodeArray(args, params, false);
86
+ return {
87
+ ...payload,
88
+ arguments_decoded: argumentsTyped,
89
+ };
90
+ }
91
+ }
92
+ exports.MoveCoder = MoveCoder;
93
+ const DEFAULT_ENDPOINT = 'https://fullnode.mainnet.sui.io/';
94
+ const CODER_MAP = new Map();
95
+ function defaultMoveCoder(endpoint = DEFAULT_ENDPOINT) {
96
+ let coder = CODER_MAP.get(endpoint);
97
+ if (!coder) {
98
+ coder = new MoveCoder(DEFAULT_ENDPOINT);
99
+ CODER_MAP.set(endpoint, coder);
100
+ }
101
+ return coder;
102
+ }
103
+ exports.defaultMoveCoder = defaultMoveCoder;
104
+ //# 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,3 @@
1
+ {
2
+ "type": "commonjs"
3
+ }
@@ -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,86 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SuiChainAdapter = void 0;
4
+ const to_internal_js_1 = require("./to-internal.js");
5
+ const move_1 = require("@typemove/move");
6
+ const client_1 = require("@mysten/sui.js/client");
7
+ class SuiChainAdapter extends move_1.ChainAdapter {
8
+ // static INSTANCE = new SuiChainAdapter()
9
+ async fetchModule(account, module
10
+ // network: SuiNetwork
11
+ ) {
12
+ const client = getRpcClient(this.endpoint);
13
+ return await client.getNormalizedMoveModule({ package: account, module });
14
+ }
15
+ async fetchModules(account
16
+ // network: SuiNetwork
17
+ ) {
18
+ const client = getRpcClient(this.endpoint);
19
+ const modules = await client.getNormalizedMoveModulesByPackage({
20
+ package: account,
21
+ });
22
+ return Object.values(modules);
23
+ }
24
+ getMeaningfulFunctionParams(params) {
25
+ return params;
26
+ // if (params.length === 0) {
27
+ // return params
28
+ // }
29
+ // return params.slice(0, params.length - 1)
30
+ }
31
+ toInternalModules(modules) {
32
+ return Object.values(modules).map(to_internal_js_1.toInternalModule);
33
+ }
34
+ getAllEventStructs(modules) {
35
+ const eventMap = new Map();
36
+ for (const module of modules) {
37
+ const qname = (0, move_1.moduleQname)(module);
38
+ for (const struct of module.structs) {
39
+ const abilities = new Set(struct.abilities);
40
+ if (abilities.has('Drop') && abilities.has('Copy')) {
41
+ eventMap.set(qname + move_1.SPLITTER + struct.name, struct);
42
+ }
43
+ }
44
+ }
45
+ return eventMap;
46
+ }
47
+ getType(base) {
48
+ return base.type;
49
+ }
50
+ getData(val) {
51
+ // if (val.parsedJson) {
52
+ // return val.parsedJson as any
53
+ // }
54
+ if ('parsedJson' in val) {
55
+ return val.parsedJson;
56
+ }
57
+ // if (SuiParsedData.is(val)) {
58
+ // return val.fields as any
59
+ // }
60
+ if (val.dataType === 'moveObject') {
61
+ return val.fields;
62
+ }
63
+ // if (SuiMoveObject.is(val)) {
64
+ // return val.fields as any
65
+ // }
66
+ // This may not be perfect, just think everything has
67
+ if ('fields' in val) {
68
+ if ('type' in val && Object.keys(val).length === 2) {
69
+ return val.fields;
70
+ }
71
+ }
72
+ return val;
73
+ }
74
+ }
75
+ exports.SuiChainAdapter = SuiChainAdapter;
76
+ // function getRpcEndpoint(network: SuiNetwork): string {
77
+ // switch (network) {
78
+ // case SuiNetwork.TEST_NET:
79
+ // return 'https://fullnode.testnet.sui.io/'
80
+ // }
81
+ // return 'https://fullnode.mainnet.sui.io/'
82
+ // }
83
+ function getRpcClient(endpoint) {
84
+ return new client_1.SuiClient({ url: endpoint });
85
+ }
86
+ //# 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":";;;AAAA,qDAAmD;AACnD,yCAOuB;AAEvB,kDAAmG;AAEnG,MAAa,eAAgB,SAAQ,mBAIpC;IACC,0CAA0C;IAE1C,KAAK,CAAC,WAAW,CACf,OAAe,EACf,MAAc;IACd,sBAAsB;;QAEtB,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC1C,OAAO,MAAM,MAAM,CAAC,uBAAuB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAA;IAC3E,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,OAAe;IACf,sBAAsB;;QAEtB,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC1C,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,iCAAiC,CAAC;YAC7D,OAAO,EAAE,OAAO;SACjB,CAAC,CAAA;QACF,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAC/B,CAAC;IAED,2BAA2B,CAAC,MAAwB;QAClD,OAAO,MAAM,CAAA;QACb,6BAA6B;QAC7B,kBAAkB;QAClB,IAAI;QACJ,4CAA4C;IAC9C,CAAC;IAED,iBAAiB,CAAC,OAAkC;QAClD,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,iCAAgB,CAAC,CAAA;IACrD,CAAC;IAED,kBAAkB,CAAC,OAA6B;QAC9C,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA8B,CAAA;QAEtD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC5B,MAAM,KAAK,GAAG,IAAA,kBAAW,EAAC,MAAM,CAAC,CAAA;YAEjC,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE;gBACnC,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;gBAC3C,IAAI,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;oBAClD,QAAQ,CAAC,GAAG,CAAC,KAAK,GAAG,eAAQ,GAAG,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;iBACrD;aACF;SACF;QACD,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,OAAO,CAAC,IAA8B;QACpC,OAAO,IAAI,CAAC,IAAI,CAAA;IAClB,CAAC;IAED,OAAO,CAAC,GAA6B;QACnC,wBAAwB;QACxB,iCAAiC;QACjC,IAAI;QACJ,IAAI,YAAY,IAAI,GAAG,EAAE;YACvB,OAAO,GAAG,CAAC,UAAiB,CAAA;SAC7B;QACD,+BAA+B;QAC/B,6BAA6B;QAC7B,IAAI;QACJ,IAAI,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE;YACjC,OAAO,GAAG,CAAC,MAAa,CAAA;SACzB;QACD,+BAA+B;QAC/B,6BAA6B;QAC7B,IAAI;QACJ,qDAAqD;QACrD,IAAI,QAAQ,IAAI,GAAG,EAAE;YACnB,IAAI,MAAM,IAAI,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;gBAClD,OAAO,GAAG,CAAC,MAAa,CAAA;aACzB;SACF;QACD,OAAO,GAAU,CAAA;IACnB,CAAC;CAIF;AAtFD,0CAsFC;AAED,yDAAyD;AACzD,uBAAuB;AACvB,gCAAgC;AAChC,kDAAkD;AAClD,MAAM;AACN,8CAA8C;AAC9C,IAAI;AAEJ,SAAS,YAAY,CAAC,QAAgB;IACpC,OAAO,IAAI,kBAAS,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAA;AACzC,CAAC"}
@@ -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,85 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toInternalModule = void 0;
4
+ const move_1 = require("@typemove/move");
5
+ function toInternalModule(module) {
6
+ return {
7
+ address: module.address,
8
+ exposedFunctions: Object.entries(module.exposedFunctions).map(([n, f]) => toInternalFunction(n, f)),
9
+ name: module.name,
10
+ structs: Object.entries(module.structs).map(([n, s]) => toInternalStruct(n, s)),
11
+ };
12
+ }
13
+ exports.toInternalModule = toInternalModule;
14
+ function toInternalFunction(name, func) {
15
+ let visibility;
16
+ switch (func.visibility) {
17
+ case 'Private':
18
+ visibility = move_1.InternalMoveFunctionVisibility.PRIVATE;
19
+ break;
20
+ case 'Public':
21
+ visibility = move_1.InternalMoveFunctionVisibility.PUBLIC;
22
+ break;
23
+ case 'Friend':
24
+ visibility = move_1.InternalMoveFunctionVisibility.FRIEND;
25
+ break;
26
+ default:
27
+ throw Error('No visibility for function' + name);
28
+ }
29
+ return {
30
+ typeParams: func.typeParameters.map((p) => {
31
+ return { constraints: p.abilities };
32
+ }),
33
+ isEntry: func.isEntry,
34
+ name: name,
35
+ params: func.parameters.map(toTypeDescriptor),
36
+ return: func.return.map(toTypeDescriptor),
37
+ visibility: visibility,
38
+ };
39
+ }
40
+ function toInternalStruct(name, struct) {
41
+ return {
42
+ abilities: struct.abilities.abilities,
43
+ fields: struct.fields.map(toInternalField),
44
+ typeParams: struct.typeParameters.map((p) => {
45
+ return { constraints: p.constraints.abilities };
46
+ }),
47
+ isNative: false,
48
+ name: name,
49
+ };
50
+ }
51
+ function toInternalField(module) {
52
+ return {
53
+ name: module.name,
54
+ type: toTypeDescriptor(module.type),
55
+ };
56
+ }
57
+ function toTypeDescriptor(normalizedType) {
58
+ if (typeof normalizedType === 'string') {
59
+ return new move_1.TypeDescriptor(normalizedType);
60
+ }
61
+ if ('Struct' in normalizedType) {
62
+ const qname = [normalizedType.Struct.address, normalizedType.Struct.module, normalizedType.Struct.name].join(move_1.SPLITTER);
63
+ const args = normalizedType.Struct.typeArguments.map(toTypeDescriptor);
64
+ return new move_1.TypeDescriptor(qname, args);
65
+ }
66
+ if ('Vector' in normalizedType) {
67
+ return new move_1.TypeDescriptor('Vector', [toTypeDescriptor(normalizedType.Vector)]);
68
+ }
69
+ if ('TypeParameter' in normalizedType) {
70
+ return new move_1.TypeDescriptor('T' + normalizedType.TypeParameter);
71
+ }
72
+ if ('Reference' in normalizedType) {
73
+ const res = toTypeDescriptor(normalizedType.Reference);
74
+ res.reference = true;
75
+ return res;
76
+ }
77
+ if ('MutableReference' in normalizedType) {
78
+ const res = toTypeDescriptor(normalizedType.MutableReference);
79
+ res.reference = true;
80
+ res.mutable = true;
81
+ return res;
82
+ }
83
+ throw new Error('Unexpected sui type');
84
+ }
85
+ //# 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,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getMoveCalls = void 0;
4
+ const sui_js_1 = require("@mysten/sui.js");
5
+ function getMoveCalls(txBlock) {
6
+ const txKind = (0, sui_js_1.getTransactionKind)(txBlock);
7
+ if (!txKind) {
8
+ return [];
9
+ }
10
+ const programmableTx = (0, sui_js_1.getProgrammableTransaction)(txKind);
11
+ if (!programmableTx) {
12
+ return [];
13
+ }
14
+ return programmableTx.transactions.flatMap((tx) => {
15
+ if ('MoveCall' in tx) {
16
+ const call = tx.MoveCall;
17
+ let pkg = call.package;
18
+ if (call.package.startsWith('0x000000000000000000000000000000000000000000000000000000000000000')) {
19
+ pkg = '0x' + pkg[pkg.length - 1];
20
+ }
21
+ call.package = pkg;
22
+ return [call];
23
+ }
24
+ return [];
25
+ });
26
+ }
27
+ exports.getMoveCalls = getMoveCalls;
28
+ // function isHex(value: string): boolean {
29
+ // return /^(0x|0X)?[a-fA-F0-9]+$/.test(value)
30
+ // }
31
+ //
32
+ // function getHexByteLength(value: string): number {
33
+ // return /^(0x|0X)/.test(value) ? (value.length - 2) / 2 : value.length / 2
34
+ // }
35
+ //
36
+ // export function isValidSuiAddress(value: string): value is SuiAddress {
37
+ // return isHex(value) && getHexByteLength(value) <= SUI_ADDRESS_LENGTH
38
+ // }
39
+ // export function validateAndNormalizeAddress(address: string): string {
40
+ // // if (isFrameworkAccount(address)) {
41
+ // // const n = parseInt(address, 16)
42
+ // // return `0x${n.toString(16)}`
43
+ // // }
44
+ // if (!isValidSuiAddress(address)) {
45
+ // throw Error('Not valid Address')
46
+ // }
47
+ // return normalizeSuiAddress(address)
48
+ // }
49
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":";;;AAAA,2CAOuB;AAEvB,SAAgB,YAAY,CAAC,OAAoC;IAC/D,MAAM,MAAM,GAAG,IAAA,2BAAkB,EAAC,OAAO,CAAC,CAAA;IAC1C,IAAI,CAAC,MAAM,EAAE;QACX,OAAO,EAAE,CAAA;KACV;IACD,MAAM,cAAc,GAClB,IAAA,mCAA0B,EAAC,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;AA7BD,oCA6BC;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"}