@typemove/iota 1.10.0-rc.1

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 (134) hide show
  1. package/LICENSE +201 -0
  2. package/Readme.md +161 -0
  3. package/builtin/0x1/package.json +5 -0
  4. package/builtin/0x2/package.json +5 -0
  5. package/builtin/0x3/package.json +5 -0
  6. package/builtin/package.json +5 -0
  7. package/codegen/package.json +5 -0
  8. package/dist/cjs/builtin/0x1.d.ts +778 -0
  9. package/dist/cjs/builtin/0x1.d.ts.map +1 -0
  10. package/dist/cjs/builtin/0x1.js +4297 -0
  11. package/dist/cjs/builtin/0x1.js.map +1 -0
  12. package/dist/cjs/builtin/0x2.d.ts +4256 -0
  13. package/dist/cjs/builtin/0x2.d.ts.map +1 -0
  14. package/dist/cjs/builtin/0x2.js +16540 -0
  15. package/dist/cjs/builtin/0x2.js.map +1 -0
  16. package/dist/cjs/builtin/0x3.d.ts +1978 -0
  17. package/dist/cjs/builtin/0x3.d.ts.map +1 -0
  18. package/dist/cjs/builtin/0x3.js +6120 -0
  19. package/dist/cjs/builtin/0x3.js.map +1 -0
  20. package/dist/cjs/builtin/index.d.ts +4 -0
  21. package/dist/cjs/builtin/index.d.ts.map +1 -0
  22. package/dist/cjs/builtin/index.js +11 -0
  23. package/dist/cjs/builtin/index.js.map +1 -0
  24. package/dist/cjs/codegen/codegen.d.ts +20 -0
  25. package/dist/cjs/codegen/codegen.d.ts.map +1 -0
  26. package/dist/cjs/codegen/codegen.js +253 -0
  27. package/dist/cjs/codegen/codegen.js.map +1 -0
  28. package/dist/cjs/codegen/index.d.ts +2 -0
  29. package/dist/cjs/codegen/index.d.ts.map +1 -0
  30. package/dist/cjs/codegen/index.js +5 -0
  31. package/dist/cjs/codegen/index.js.map +1 -0
  32. package/dist/cjs/index.d.ts +4 -0
  33. package/dist/cjs/index.d.ts.map +1 -0
  34. package/dist/cjs/index.js +11 -0
  35. package/dist/cjs/index.js.map +1 -0
  36. package/dist/cjs/models.d.ts +18 -0
  37. package/dist/cjs/models.d.ts.map +1 -0
  38. package/dist/cjs/models.js +5 -0
  39. package/dist/cjs/models.js.map +1 -0
  40. package/dist/cjs/move-coder.d.ts +27 -0
  41. package/dist/cjs/move-coder.d.ts.map +1 -0
  42. package/dist/cjs/move-coder.js +274 -0
  43. package/dist/cjs/move-coder.js.map +1 -0
  44. package/dist/cjs/package.json +3 -0
  45. package/dist/cjs/sui-chain-adapter.d.ts +15 -0
  46. package/dist/cjs/sui-chain-adapter.d.ts.map +1 -0
  47. package/dist/cjs/sui-chain-adapter.js +88 -0
  48. package/dist/cjs/sui-chain-adapter.js.map +1 -0
  49. package/dist/cjs/to-internal.d.ts +4 -0
  50. package/dist/cjs/to-internal.d.ts.map +1 -0
  51. package/dist/cjs/to-internal.js +99 -0
  52. package/dist/cjs/to-internal.js.map +1 -0
  53. package/dist/cjs/transaction.d.ts +15 -0
  54. package/dist/cjs/transaction.d.ts.map +1 -0
  55. package/dist/cjs/transaction.js +98 -0
  56. package/dist/cjs/transaction.js.map +1 -0
  57. package/dist/esm/builtin/0x1.d.ts +778 -0
  58. package/dist/esm/builtin/0x1.d.ts.map +1 -0
  59. package/dist/esm/builtin/0x1.js +4293 -0
  60. package/dist/esm/builtin/0x1.js.map +1 -0
  61. package/dist/esm/builtin/0x2.d.ts +4256 -0
  62. package/dist/esm/builtin/0x2.d.ts.map +1 -0
  63. package/dist/esm/builtin/0x2.js +16534 -0
  64. package/dist/esm/builtin/0x2.js.map +1 -0
  65. package/dist/esm/builtin/0x3.d.ts +1978 -0
  66. package/dist/esm/builtin/0x3.d.ts.map +1 -0
  67. package/dist/esm/builtin/0x3.js +6115 -0
  68. package/dist/esm/builtin/0x3.js.map +1 -0
  69. package/dist/esm/builtin/index.d.ts +4 -0
  70. package/dist/esm/builtin/index.d.ts.map +1 -0
  71. package/dist/esm/builtin/index.js +7 -0
  72. package/dist/esm/builtin/index.js.map +1 -0
  73. package/dist/esm/codegen/codegen.d.ts +20 -0
  74. package/dist/esm/codegen/codegen.d.ts.map +1 -0
  75. package/dist/esm/codegen/codegen.js +247 -0
  76. package/dist/esm/codegen/codegen.js.map +1 -0
  77. package/dist/esm/codegen/index.d.ts +2 -0
  78. package/dist/esm/codegen/index.d.ts.map +1 -0
  79. package/dist/esm/codegen/index.js +2 -0
  80. package/dist/esm/codegen/index.js.map +1 -0
  81. package/dist/esm/codegen/run.d.ts +3 -0
  82. package/dist/esm/codegen/run.d.ts.map +1 -0
  83. package/dist/esm/codegen/run.js +49 -0
  84. package/dist/esm/codegen/run.js.map +1 -0
  85. package/dist/esm/index.d.ts +4 -0
  86. package/dist/esm/index.d.ts.map +1 -0
  87. package/dist/esm/index.js +4 -0
  88. package/dist/esm/index.js.map +1 -0
  89. package/dist/esm/models.d.ts +18 -0
  90. package/dist/esm/models.d.ts.map +1 -0
  91. package/dist/esm/models.js +2 -0
  92. package/dist/esm/models.js.map +1 -0
  93. package/dist/esm/move-coder.d.ts +27 -0
  94. package/dist/esm/move-coder.d.ts.map +1 -0
  95. package/dist/esm/move-coder.js +268 -0
  96. package/dist/esm/move-coder.js.map +1 -0
  97. package/dist/esm/sui-chain-adapter.d.ts +15 -0
  98. package/dist/esm/sui-chain-adapter.d.ts.map +1 -0
  99. package/dist/esm/sui-chain-adapter.js +84 -0
  100. package/dist/esm/sui-chain-adapter.js.map +1 -0
  101. package/dist/esm/to-internal.d.ts +4 -0
  102. package/dist/esm/to-internal.d.ts.map +1 -0
  103. package/dist/esm/to-internal.js +96 -0
  104. package/dist/esm/to-internal.js.map +1 -0
  105. package/dist/esm/transaction.d.ts +15 -0
  106. package/dist/esm/transaction.d.ts.map +1 -0
  107. package/dist/esm/transaction.js +83 -0
  108. package/dist/esm/transaction.js.map +1 -0
  109. package/package.json +63 -0
  110. package/src/abis/0x1.json +4213 -0
  111. package/src/abis/0x2.json +26692 -0
  112. package/src/abis/0x3.json +10598 -0
  113. package/src/builtin/0x1.ts +6110 -0
  114. package/src/builtin/0x2.ts +24700 -0
  115. package/src/builtin/0x3.ts +9680 -0
  116. package/src/builtin/index.ts +6 -0
  117. package/src/codegen/codegen.ts +290 -0
  118. package/src/codegen/index.ts +1 -0
  119. package/src/codegen/run.ts +57 -0
  120. package/src/index.ts +4 -0
  121. package/src/models.ts +21 -0
  122. package/src/move-coder.ts +318 -0
  123. package/src/sui-chain-adapter.ts +113 -0
  124. package/src/tests/abis/testnet/0x1e2b124f746a339b3cf99b9f969393a96594519aafb1d06517aacfeeae20e7a5.json +265 -0
  125. package/src/tests/abis/testnet/0x6c4a21e3e7e6b6d51c4604021633e1d97e24e37a696f8c082cd48f37503e602a.json +2429 -0
  126. package/src/tests/abis/testnet/0x7f7a37c826c88bcfe9aecc042453395ddfa9df6f29cb7c97590bf86cf2b0a75e.json +1356 -0
  127. package/src/tests/abis/testnet/0xebaa2ad3eacc230f309cd933958cc52684df0a41ae7ac214d186b80f830867d2.json +10060 -0
  128. package/src/tests/types/testnet/0x1e2b124f746a339b3cf99b9f969393a96594519aafb1d06517aacfeeae20e7a5.ts +291 -0
  129. package/src/tests/types/testnet/0x6c4a21e3e7e6b6d51c4604021633e1d97e24e37a696f8c082cd48f37503e602a.ts +2468 -0
  130. package/src/tests/types/testnet/0x7f7a37c826c88bcfe9aecc042453395ddfa9df6f29cb7c97590bf86cf2b0a75e.ts +1389 -0
  131. package/src/tests/types/testnet/0xebaa2ad3eacc230f309cd933958cc52684df0a41ae7ac214d186b80f830867d2.ts +9522 -0
  132. package/src/tests/types/testnet/index.ts +7 -0
  133. package/src/to-internal.ts +127 -0
  134. package/src/transaction.ts +127 -0
@@ -0,0 +1,113 @@
1
+ import { toInternalModule } from './to-internal.js'
2
+ import {
3
+ InternalMoveModule,
4
+ InternalMoveStruct,
5
+ ChainAdapter,
6
+ moduleQname,
7
+ SPLITTER,
8
+ TypeDescriptor
9
+ } from '@typemove/move'
10
+
11
+ import { IotaMoveNormalizedModule, IotaEvent, IotaMoveObject, IotaClient } from '@iota/iota-sdk/client'
12
+
13
+ export class IotaChainAdapter extends ChainAdapter<
14
+ // IotaNetwork,
15
+ IotaMoveNormalizedModule,
16
+ IotaEvent | IotaMoveObject
17
+ > {
18
+ async getChainId() {
19
+ return this.client.getChainIdentifier()
20
+ }
21
+ // static INSTANCE = new IotaChainAdapter()
22
+
23
+ client: IotaClient
24
+ constructor(client: IotaClient) {
25
+ super()
26
+ this.client = client
27
+ }
28
+
29
+ async fetchModule(
30
+ account: string,
31
+ module: string
32
+ // network: IotaNetwork
33
+ ): Promise<IotaMoveNormalizedModule> {
34
+ return await this.client.getNormalizedMoveModule({ package: account, module })
35
+ }
36
+
37
+ async fetchModules(
38
+ account: string
39
+ // network: IotaNetwork
40
+ ): Promise<IotaMoveNormalizedModule[]> {
41
+ const modules = await this.client.getNormalizedMoveModulesByPackage({
42
+ package: account
43
+ })
44
+ return Object.values(modules)
45
+ }
46
+
47
+ getMeaningfulFunctionParams(params: TypeDescriptor[]): TypeDescriptor[] {
48
+ return params
49
+ // if (params.length === 0) {
50
+ // return params
51
+ // }
52
+ // return params.slice(0, params.length - 1)
53
+ }
54
+
55
+ toInternalModules(modules: IotaMoveNormalizedModule[]): InternalMoveModule[] {
56
+ return Object.values(modules).map(toInternalModule)
57
+ }
58
+
59
+ getAllEventStructs(modules: InternalMoveModule[]): Map<string, InternalMoveStruct> {
60
+ const eventMap = new Map<string, InternalMoveStruct>()
61
+
62
+ for (const module of modules) {
63
+ const qname = moduleQname(module)
64
+
65
+ for (const struct of module.structs) {
66
+ const abilities = new Set(struct.abilities)
67
+ if (abilities.has('Drop') && abilities.has('Copy')) {
68
+ eventMap.set(qname + SPLITTER + struct.name, struct)
69
+ }
70
+ }
71
+ }
72
+ return eventMap
73
+ }
74
+
75
+ getType(base: IotaEvent | IotaMoveObject): string {
76
+ return base.type
77
+ }
78
+
79
+ getData(val: IotaEvent | IotaMoveObject) {
80
+ // if (val.parsedJson) {
81
+ // return val.parsedJson as any
82
+ // }
83
+ if (val === undefined) {
84
+ throw Error('val is undefined')
85
+ }
86
+ if ('parsedJson' in val) {
87
+ return val.parsedJson as any
88
+ }
89
+ // if (IotaParsedData.is(val)) {
90
+ // return val.fields as any
91
+ // }
92
+ if (val.dataType === 'moveObject') {
93
+ return val.fields as any
94
+ }
95
+ // if (IotaMoveObject.is(val)) {
96
+ // return val.fields as any
97
+ // }
98
+ // This may not be perfect, just think everything has
99
+ if ('fields' in val) {
100
+ if ('type' in val && Object.keys(val).length === 2) {
101
+ return val.fields as any
102
+ }
103
+ }
104
+ return val as any
105
+ }
106
+ // validateAndNormalizeAddress(address: string) {
107
+ // return validateAndNormalizeAddress(address)
108
+ // }
109
+ }
110
+
111
+ function getRpcClient(endpoint: string): IotaClient {
112
+ return new IotaClient({ url: endpoint })
113
+ }
@@ -0,0 +1,265 @@
1
+ [
2
+ {
3
+ "fileFormatVersion": 6,
4
+ "address": "0x1e2b124f746a339b3cf99b9f969393a96594519aafb1d06517aacfeeae20e7a5",
5
+ "name": "oracle",
6
+ "friends": [],
7
+ "structs": {
8
+ "Key": {
9
+ "abilities": {
10
+ "abilities": ["Key"]
11
+ },
12
+ "typeParameters": [
13
+ {
14
+ "constraints": {
15
+ "abilities": []
16
+ },
17
+ "isPhantom": true
18
+ }
19
+ ],
20
+ "fields": [
21
+ {
22
+ "name": "id",
23
+ "type": {
24
+ "Struct": {
25
+ "address": "0x2",
26
+ "module": "object",
27
+ "name": "UID",
28
+ "typeArguments": []
29
+ }
30
+ }
31
+ },
32
+ {
33
+ "name": "for",
34
+ "type": {
35
+ "Struct": {
36
+ "address": "0x2",
37
+ "module": "object",
38
+ "name": "ID",
39
+ "typeArguments": []
40
+ }
41
+ }
42
+ }
43
+ ]
44
+ },
45
+ "Oracle": {
46
+ "abilities": {
47
+ "abilities": ["Key"]
48
+ },
49
+ "typeParameters": [
50
+ {
51
+ "constraints": {
52
+ "abilities": []
53
+ },
54
+ "isPhantom": true
55
+ }
56
+ ],
57
+ "fields": [
58
+ {
59
+ "name": "id",
60
+ "type": {
61
+ "Struct": {
62
+ "address": "0x2",
63
+ "module": "object",
64
+ "name": "UID",
65
+ "typeArguments": []
66
+ }
67
+ }
68
+ },
69
+ {
70
+ "name": "decimal",
71
+ "type": "U64"
72
+ },
73
+ {
74
+ "name": "price",
75
+ "type": "U64"
76
+ },
77
+ {
78
+ "name": "twap_price_1h",
79
+ "type": "U64"
80
+ },
81
+ {
82
+ "name": "ts_ms",
83
+ "type": "U64"
84
+ },
85
+ {
86
+ "name": "epoch",
87
+ "type": "U64"
88
+ }
89
+ ]
90
+ },
91
+ "PriceEvent": {
92
+ "abilities": {
93
+ "abilities": ["Copy", "Drop"]
94
+ },
95
+ "typeParameters": [],
96
+ "fields": [
97
+ {
98
+ "name": "token",
99
+ "type": {
100
+ "Struct": {
101
+ "address": "0x1",
102
+ "module": "ascii",
103
+ "name": "String",
104
+ "typeArguments": []
105
+ }
106
+ }
107
+ },
108
+ {
109
+ "name": "price",
110
+ "type": "U64"
111
+ },
112
+ {
113
+ "name": "ts_ms",
114
+ "type": "U64"
115
+ },
116
+ {
117
+ "name": "epoch",
118
+ "type": "U64"
119
+ }
120
+ ]
121
+ }
122
+ },
123
+ "exposedFunctions": {
124
+ "copy_key": {
125
+ "visibility": "Public",
126
+ "isEntry": true,
127
+ "typeParameters": [
128
+ {
129
+ "abilities": []
130
+ }
131
+ ],
132
+ "parameters": [
133
+ {
134
+ "Reference": {
135
+ "Struct": {
136
+ "address": "0x1e2b124f746a339b3cf99b9f969393a96594519aafb1d06517aacfeeae20e7a5",
137
+ "module": "oracle",
138
+ "name": "Key",
139
+ "typeArguments": [
140
+ {
141
+ "TypeParameter": 0
142
+ }
143
+ ]
144
+ }
145
+ }
146
+ },
147
+ "Address",
148
+ {
149
+ "MutableReference": {
150
+ "Struct": {
151
+ "address": "0x2",
152
+ "module": "tx_context",
153
+ "name": "TxContext",
154
+ "typeArguments": []
155
+ }
156
+ }
157
+ }
158
+ ],
159
+ "return": []
160
+ },
161
+ "get_oracle": {
162
+ "visibility": "Public",
163
+ "isEntry": false,
164
+ "typeParameters": [
165
+ {
166
+ "abilities": []
167
+ }
168
+ ],
169
+ "parameters": [
170
+ {
171
+ "Reference": {
172
+ "Struct": {
173
+ "address": "0x1e2b124f746a339b3cf99b9f969393a96594519aafb1d06517aacfeeae20e7a5",
174
+ "module": "oracle",
175
+ "name": "Oracle",
176
+ "typeArguments": [
177
+ {
178
+ "TypeParameter": 0
179
+ }
180
+ ]
181
+ }
182
+ }
183
+ }
184
+ ],
185
+ "return": ["U64", "U64", "U64", "U64"]
186
+ },
187
+ "new_oracle": {
188
+ "visibility": "Public",
189
+ "isEntry": true,
190
+ "typeParameters": [
191
+ {
192
+ "abilities": []
193
+ }
194
+ ],
195
+ "parameters": [
196
+ "U64",
197
+ {
198
+ "MutableReference": {
199
+ "Struct": {
200
+ "address": "0x2",
201
+ "module": "tx_context",
202
+ "name": "TxContext",
203
+ "typeArguments": []
204
+ }
205
+ }
206
+ }
207
+ ],
208
+ "return": []
209
+ },
210
+ "update": {
211
+ "visibility": "Public",
212
+ "isEntry": true,
213
+ "typeParameters": [
214
+ {
215
+ "abilities": []
216
+ }
217
+ ],
218
+ "parameters": [
219
+ {
220
+ "MutableReference": {
221
+ "Struct": {
222
+ "address": "0x1e2b124f746a339b3cf99b9f969393a96594519aafb1d06517aacfeeae20e7a5",
223
+ "module": "oracle",
224
+ "name": "Oracle",
225
+ "typeArguments": [
226
+ {
227
+ "TypeParameter": 0
228
+ }
229
+ ]
230
+ }
231
+ }
232
+ },
233
+ {
234
+ "Reference": {
235
+ "Struct": {
236
+ "address": "0x1e2b124f746a339b3cf99b9f969393a96594519aafb1d06517aacfeeae20e7a5",
237
+ "module": "oracle",
238
+ "name": "Key",
239
+ "typeArguments": [
240
+ {
241
+ "TypeParameter": 0
242
+ }
243
+ ]
244
+ }
245
+ }
246
+ },
247
+ "U64",
248
+ "U64",
249
+ "U64",
250
+ {
251
+ "MutableReference": {
252
+ "Struct": {
253
+ "address": "0x2",
254
+ "module": "tx_context",
255
+ "name": "TxContext",
256
+ "typeArguments": []
257
+ }
258
+ }
259
+ }
260
+ ],
261
+ "return": []
262
+ }
263
+ }
264
+ }
265
+ ]