@qubic.org/contracts 0.2.7 → 1.0.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 (163) hide show
  1. package/LICENSE +41 -0
  2. package/README.md +15 -18
  3. package/dist/__generated__/computorcontrolledfund.d.ts +1 -1
  4. package/dist/__generated__/computorcontrolledfund.d.ts.map +1 -1
  5. package/dist/__generated__/computorcontrolledfund.js +8 -8
  6. package/dist/__generated__/computorcontrolledfund.js.map +1 -1
  7. package/dist/__generated__/escrow.d.ts +1 -1
  8. package/dist/__generated__/escrow.d.ts.map +1 -1
  9. package/dist/__generated__/escrow.js +3 -3
  10. package/dist/__generated__/escrow.js.map +1 -1
  11. package/dist/__generated__/generalquorumproposal.d.ts +1 -1
  12. package/dist/__generated__/generalquorumproposal.d.ts.map +1 -1
  13. package/dist/__generated__/generalquorumproposal.js +6 -6
  14. package/dist/__generated__/generalquorumproposal.js.map +1 -1
  15. package/dist/__generated__/ggwp.d.ts +265 -0
  16. package/dist/__generated__/ggwp.d.ts.map +1 -0
  17. package/dist/__generated__/ggwp.js +825 -0
  18. package/dist/__generated__/ggwp.js.map +1 -0
  19. package/dist/__generated__/index.d.ts +1 -0
  20. package/dist/__generated__/index.d.ts.map +1 -1
  21. package/dist/__generated__/index.js +1 -0
  22. package/dist/__generated__/index.js.map +1 -1
  23. package/dist/__generated__/msvault.d.ts +1 -1
  24. package/dist/__generated__/msvault.d.ts.map +1 -1
  25. package/dist/__generated__/msvault.js +19 -19
  26. package/dist/__generated__/msvault.js.map +1 -1
  27. package/dist/__generated__/multisignvault.d.ts +25 -25
  28. package/dist/__generated__/multisignvault.d.ts.map +1 -1
  29. package/dist/__generated__/multisignvault.js +25 -25
  30. package/dist/__generated__/multisignvault.js.map +1 -1
  31. package/dist/__generated__/nostromo.d.ts +1 -1
  32. package/dist/__generated__/nostromo.d.ts.map +1 -1
  33. package/dist/__generated__/nostromo.js +15 -15
  34. package/dist/__generated__/nostromo.js.map +1 -1
  35. package/dist/__generated__/pulse.d.ts +1 -1
  36. package/dist/__generated__/pulse.d.ts.map +1 -1
  37. package/dist/__generated__/pulse.js +26 -26
  38. package/dist/__generated__/pulse.js.map +1 -1
  39. package/dist/__generated__/qbay.d.ts +1 -1
  40. package/dist/__generated__/qbay.d.ts.map +1 -1
  41. package/dist/__generated__/qbay.js +23 -23
  42. package/dist/__generated__/qbay.js.map +1 -1
  43. package/dist/__generated__/qbond.d.ts +1 -1
  44. package/dist/__generated__/qbond.d.ts.map +1 -1
  45. package/dist/__generated__/qbond.js +14 -14
  46. package/dist/__generated__/qbond.js.map +1 -1
  47. package/dist/__generated__/qdraw.d.ts +1 -1
  48. package/dist/__generated__/qdraw.d.ts.map +1 -1
  49. package/dist/__generated__/qdraw.js.map +1 -1
  50. package/dist/__generated__/qduel.d.ts +1 -1
  51. package/dist/__generated__/qduel.d.ts.map +1 -1
  52. package/dist/__generated__/qduel.js +11 -11
  53. package/dist/__generated__/qduel.js.map +1 -1
  54. package/dist/__generated__/qearn.d.ts +1 -1
  55. package/dist/__generated__/qearn.d.ts.map +1 -1
  56. package/dist/__generated__/qearn.js +10 -10
  57. package/dist/__generated__/qearn.js.map +1 -1
  58. package/dist/__generated__/qip.d.ts +18 -1
  59. package/dist/__generated__/qip.d.ts.map +1 -1
  60. package/dist/__generated__/qip.js +64 -3
  61. package/dist/__generated__/qip.js.map +1 -1
  62. package/dist/__generated__/qraffle.d.ts +1 -1
  63. package/dist/__generated__/qraffle.d.ts.map +1 -1
  64. package/dist/__generated__/qraffle.js +12 -12
  65. package/dist/__generated__/qraffle.js.map +1 -1
  66. package/dist/__generated__/qreservepool.d.ts +1 -1
  67. package/dist/__generated__/qreservepool.d.ts.map +1 -1
  68. package/dist/__generated__/qreservepool.js +5 -5
  69. package/dist/__generated__/qreservepool.js.map +1 -1
  70. package/dist/__generated__/qrwa.d.ts +1 -1
  71. package/dist/__generated__/qrwa.d.ts.map +1 -1
  72. package/dist/__generated__/qrwa.js +18 -18
  73. package/dist/__generated__/qrwa.js.map +1 -1
  74. package/dist/__generated__/qswap.d.ts +3 -1
  75. package/dist/__generated__/qswap.d.ts.map +1 -1
  76. package/dist/__generated__/qswap.js +30 -18
  77. package/dist/__generated__/qswap.js.map +1 -1
  78. package/dist/__generated__/qthirtyfour.d.ts +1 -1
  79. package/dist/__generated__/qthirtyfour.d.ts.map +1 -1
  80. package/dist/__generated__/qthirtyfour.js +19 -19
  81. package/dist/__generated__/qthirtyfour.js.map +1 -1
  82. package/dist/__generated__/qubicicoportal.d.ts +4 -4
  83. package/dist/__generated__/qubicicoportal.d.ts.map +1 -1
  84. package/dist/__generated__/qubicicoportal.js +4 -4
  85. package/dist/__generated__/qubicicoportal.js.map +1 -1
  86. package/dist/__generated__/quottery.d.ts +1 -1
  87. package/dist/__generated__/quottery.d.ts.map +1 -1
  88. package/dist/__generated__/quottery.js +14 -14
  89. package/dist/__generated__/quottery.js.map +1 -1
  90. package/dist/__generated__/qusino.d.ts +1 -1
  91. package/dist/__generated__/qusino.d.ts.map +1 -1
  92. package/dist/__generated__/qusino.js +13 -13
  93. package/dist/__generated__/qusino.js.map +1 -1
  94. package/dist/__generated__/qutil.d.ts +1 -1
  95. package/dist/__generated__/qutil.d.ts.map +1 -1
  96. package/dist/__generated__/qutil.js +22 -22
  97. package/dist/__generated__/qutil.js.map +1 -1
  98. package/dist/__generated__/qvault.d.ts +14 -2
  99. package/dist/__generated__/qvault.d.ts.map +1 -1
  100. package/dist/__generated__/qvault.js +70 -32
  101. package/dist/__generated__/qvault.js.map +1 -1
  102. package/dist/__generated__/qx.d.ts +1 -1
  103. package/dist/__generated__/qx.d.ts.map +1 -1
  104. package/dist/__generated__/qx.js +12 -12
  105. package/dist/__generated__/qx.js.map +1 -1
  106. package/dist/__generated__/random.d.ts +24 -1
  107. package/dist/__generated__/random.d.ts.map +1 -1
  108. package/dist/__generated__/random.js +68 -0
  109. package/dist/__generated__/random.js.map +1 -1
  110. package/dist/__generated__/randomlottery.d.ts +1 -1
  111. package/dist/__generated__/randomlottery.d.ts.map +1 -1
  112. package/dist/__generated__/randomlottery.js +12 -12
  113. package/dist/__generated__/randomlottery.js.map +1 -1
  114. package/dist/__generated__/vottunbridge.d.ts +1 -1
  115. package/dist/__generated__/vottunbridge.d.ts.map +1 -1
  116. package/dist/__generated__/vottunbridge.js +13 -13
  117. package/dist/__generated__/vottunbridge.js.map +1 -1
  118. package/dist/call-contract.d.ts.map +1 -1
  119. package/dist/call-contract.js +6 -1
  120. package/dist/call-contract.js.map +1 -1
  121. package/dist/index.d.ts +2 -2
  122. package/dist/index.d.ts.map +1 -1
  123. package/dist/index.js +1 -1
  124. package/dist/index.js.map +1 -1
  125. package/package.json +8 -7
  126. package/src/__generated__/computorcontrolledfund.ts +1066 -0
  127. package/src/__generated__/escrow.ts +529 -0
  128. package/src/__generated__/generalquorumproposal.ts +691 -0
  129. package/src/__generated__/ggwp.ts +1241 -0
  130. package/src/__generated__/index.ts +28 -0
  131. package/src/__generated__/msvault.ts +1716 -0
  132. package/src/__generated__/multisignvault.ts +1511 -0
  133. package/src/__generated__/mylastmatch.ts +12 -0
  134. package/src/__generated__/nostromo.ts +1551 -0
  135. package/src/__generated__/pulse.ts +1512 -0
  136. package/src/__generated__/qbay.ts +2097 -0
  137. package/src/__generated__/qbond.ts +1016 -0
  138. package/src/__generated__/qdraw.ts +188 -0
  139. package/src/__generated__/qduel.ts +827 -0
  140. package/src/__generated__/qearn.ts +696 -0
  141. package/src/__generated__/qip.ts +501 -0
  142. package/src/__generated__/qraffle.ts +1162 -0
  143. package/src/__generated__/qreservepool.ts +281 -0
  144. package/src/__generated__/qrwa.ts +1491 -0
  145. package/src/__generated__/qswap.ts +1336 -0
  146. package/src/__generated__/qthirtyfour.ts +1131 -0
  147. package/src/__generated__/qubicicoportal.ts +386 -0
  148. package/src/__generated__/quottery.ts +1519 -0
  149. package/src/__generated__/qusino.ts +799 -0
  150. package/src/__generated__/qutil.ts +1506 -0
  151. package/src/__generated__/qvault.ts +2911 -0
  152. package/src/__generated__/qx.ts +861 -0
  153. package/src/__generated__/random.ts +145 -0
  154. package/src/__generated__/randomlottery.ts +653 -0
  155. package/src/__generated__/supplywatcher.ts +12 -0
  156. package/src/__generated__/vottunbridge.ts +1162 -0
  157. package/src/__tests__/contracts.test.ts +933 -0
  158. package/src/call-contract.ts +87 -0
  159. package/src/index.ts +9 -0
  160. package/dist/result.d.ts +0 -12
  161. package/dist/result.d.ts.map +0 -1
  162. package/dist/result.js +0 -7
  163. package/dist/result.js.map +0 -1
@@ -0,0 +1,501 @@
1
+ // @generated — do not edit by hand. Run `bun run generate` to regenerate.
2
+ import type { BinaryField, FieldValue, NamedStruct } from '@qubic.org/registry'
3
+ import { buildPayload, decodePayload } from '@qubic.org/registry'
4
+ import type { QubicRpcError } from '@qubic.org/rpc'
5
+ import type { Result } from '@qubic.org/types'
6
+ import { type ContractCall, type ContractCallOptions, type SmartContractCaller, callContractFunction } from '../call-contract.js'
7
+
8
+ export const QIP_CONTRACT_INDEX = 18
9
+
10
+ export interface QIPAssetStruct {
11
+ issuer: string
12
+ assetName: bigint
13
+ }
14
+
15
+ const STRUCTS: Record<string, NamedStruct> = {
16
+ 'Asset': {
17
+ name: 'Asset',
18
+ byteLength: 40,
19
+ fields: [
20
+ {
21
+ name: 'issuer',
22
+ type: 'id',
23
+ offset: 0,
24
+ byteLength: 32,
25
+ },
26
+ {
27
+ name: 'assetName',
28
+ type: 'uint64',
29
+ offset: 32,
30
+ byteLength: 8,
31
+ },
32
+ ],
33
+ },
34
+ }
35
+
36
+ export const QIP_CREATE_ICO_INPUT_TYPE = 1
37
+
38
+ export interface QIPCreateICOInput {
39
+ issuer: string
40
+ address1: string
41
+ assetName: bigint
42
+ price1: bigint
43
+ price2: bigint
44
+ price3: bigint
45
+ saleAmountForPhase1: bigint
46
+ saleAmountForPhase2: bigint
47
+ saleAmountForPhase3: bigint
48
+ percent1: number
49
+ startEpoch: number
50
+ burnRemainingTokens: number
51
+ isVested: number
52
+ vestingPeriod: number
53
+ }
54
+
55
+ const QIP_CREATE_ICO_INPUT_FIELDS: BinaryField[] = [
56
+ {
57
+ name: 'issuer',
58
+ type: 'id',
59
+ offset: 0,
60
+ byteLength: 32,
61
+ },
62
+ {
63
+ name: 'address1',
64
+ type: 'id',
65
+ offset: 32,
66
+ byteLength: 32,
67
+ },
68
+ {
69
+ name: 'assetName',
70
+ type: 'uint64',
71
+ offset: 64,
72
+ byteLength: 8,
73
+ },
74
+ {
75
+ name: 'price1',
76
+ type: 'uint64',
77
+ offset: 72,
78
+ byteLength: 8,
79
+ },
80
+ {
81
+ name: 'price2',
82
+ type: 'uint64',
83
+ offset: 80,
84
+ byteLength: 8,
85
+ },
86
+ {
87
+ name: 'price3',
88
+ type: 'uint64',
89
+ offset: 88,
90
+ byteLength: 8,
91
+ },
92
+ {
93
+ name: 'saleAmountForPhase1',
94
+ type: 'uint64',
95
+ offset: 96,
96
+ byteLength: 8,
97
+ },
98
+ {
99
+ name: 'saleAmountForPhase2',
100
+ type: 'uint64',
101
+ offset: 104,
102
+ byteLength: 8,
103
+ },
104
+ {
105
+ name: 'saleAmountForPhase3',
106
+ type: 'uint64',
107
+ offset: 112,
108
+ byteLength: 8,
109
+ },
110
+ {
111
+ name: 'percent1',
112
+ type: 'uint32',
113
+ offset: 120,
114
+ byteLength: 4,
115
+ },
116
+ {
117
+ name: 'startEpoch',
118
+ type: 'uint32',
119
+ offset: 124,
120
+ byteLength: 4,
121
+ },
122
+ {
123
+ name: 'burnRemainingTokens',
124
+ type: 'uint8',
125
+ offset: 128,
126
+ byteLength: 1,
127
+ },
128
+ {
129
+ name: 'isVested',
130
+ type: 'uint8',
131
+ offset: 129,
132
+ byteLength: 1,
133
+ },
134
+ {
135
+ name: 'vestingPeriod',
136
+ type: 'uint32',
137
+ offset: 130,
138
+ byteLength: 4,
139
+ },
140
+ ]
141
+
142
+ export function buildQIPCreateICOInput(
143
+ input: QIPCreateICOInput,
144
+ identityToPublicKey: (identity: string) => Uint8Array,
145
+ ): ContractCall {
146
+ return { contractIndex: QIP_CONTRACT_INDEX, inputType: QIP_CREATE_ICO_INPUT_TYPE, payload: buildPayload(QIP_CREATE_ICO_INPUT_FIELDS, STRUCTS, input as unknown as Record<string, FieldValue | Uint8Array>, identityToPublicKey) }
147
+ }
148
+
149
+ export interface QIPCreateICOOutput {
150
+ returnCode: number
151
+ }
152
+
153
+ const QIP_CREATE_ICO_OUTPUT_FIELDS: BinaryField[] = [
154
+ {
155
+ name: 'returnCode',
156
+ type: 'sint32',
157
+ offset: 0,
158
+ byteLength: 4,
159
+ },
160
+ ]
161
+
162
+ export function decodeQIPCreateICOOutput(
163
+ data: Uint8Array,
164
+ ): QIPCreateICOOutput {
165
+ return decodePayload(data, QIP_CREATE_ICO_OUTPUT_FIELDS, STRUCTS, (_: Uint8Array) => { throw new Error('unreachable') }) as unknown as QIPCreateICOOutput
166
+ }
167
+
168
+ export const QIP_BUY_TOKEN_INPUT_TYPE = 2
169
+
170
+ export interface QIPBuyTokenInput {
171
+ indexOfICO: number
172
+ amount: bigint
173
+ }
174
+
175
+ const QIP_BUY_TOKEN_INPUT_FIELDS: BinaryField[] = [
176
+ {
177
+ name: 'indexOfICO',
178
+ type: 'uint32',
179
+ offset: 0,
180
+ byteLength: 4,
181
+ },
182
+ {
183
+ name: 'amount',
184
+ type: 'uint64',
185
+ offset: 4,
186
+ byteLength: 8,
187
+ },
188
+ ]
189
+
190
+ export function buildQIPBuyTokenInput(
191
+ input: QIPBuyTokenInput,
192
+ ): ContractCall {
193
+ return { contractIndex: QIP_CONTRACT_INDEX, inputType: QIP_BUY_TOKEN_INPUT_TYPE, payload: buildPayload(QIP_BUY_TOKEN_INPUT_FIELDS, STRUCTS, input as unknown as Record<string, FieldValue | Uint8Array>, (_: string) => new Uint8Array(32)) }
194
+ }
195
+
196
+ export interface QIPBuyTokenOutput {
197
+ returnCode: number
198
+ }
199
+
200
+ const QIP_BUY_TOKEN_OUTPUT_FIELDS: BinaryField[] = [
201
+ {
202
+ name: 'returnCode',
203
+ type: 'sint32',
204
+ offset: 0,
205
+ byteLength: 4,
206
+ },
207
+ ]
208
+
209
+ export function decodeQIPBuyTokenOutput(
210
+ data: Uint8Array,
211
+ ): QIPBuyTokenOutput {
212
+ return decodePayload(data, QIP_BUY_TOKEN_OUTPUT_FIELDS, STRUCTS, (_: Uint8Array) => { throw new Error('unreachable') }) as unknown as QIPBuyTokenOutput
213
+ }
214
+
215
+ export const QIP_TRANSFER_SHARE_MANAGEMENT_RIGHTS_INPUT_TYPE = 3
216
+
217
+ export interface QIPTransferShareManagementRightsInput {
218
+ asset: QIPAssetStruct
219
+ numberOfShares: bigint
220
+ newManagingContractIndex: number
221
+ }
222
+
223
+ const QIP_TRANSFER_SHARE_MANAGEMENT_RIGHTS_INPUT_FIELDS: BinaryField[] = [
224
+ {
225
+ name: 'asset',
226
+ type: 'struct',
227
+ offset: 0,
228
+ byteLength: 40,
229
+ structRef: 'Asset',
230
+ },
231
+ {
232
+ name: 'numberOfShares',
233
+ type: 'sint64',
234
+ offset: 40,
235
+ byteLength: 8,
236
+ },
237
+ {
238
+ name: 'newManagingContractIndex',
239
+ type: 'uint32',
240
+ offset: 48,
241
+ byteLength: 4,
242
+ },
243
+ ]
244
+
245
+ export function buildQIPTransferShareManagementRightsInput(
246
+ input: QIPTransferShareManagementRightsInput,
247
+ ): ContractCall {
248
+ return { contractIndex: QIP_CONTRACT_INDEX, inputType: QIP_TRANSFER_SHARE_MANAGEMENT_RIGHTS_INPUT_TYPE, payload: buildPayload(QIP_TRANSFER_SHARE_MANAGEMENT_RIGHTS_INPUT_FIELDS, STRUCTS, input as unknown as Record<string, FieldValue | Uint8Array>, (_: string) => new Uint8Array(32)) }
249
+ }
250
+
251
+ export interface QIPTransferShareManagementRightsOutput {
252
+ transferredNumberOfShares: bigint
253
+ }
254
+
255
+ const QIP_TRANSFER_SHARE_MANAGEMENT_RIGHTS_OUTPUT_FIELDS: BinaryField[] = [
256
+ {
257
+ name: 'transferredNumberOfShares',
258
+ type: 'sint64',
259
+ offset: 0,
260
+ byteLength: 8,
261
+ },
262
+ ]
263
+
264
+ export function decodeQIPTransferShareManagementRightsOutput(
265
+ data: Uint8Array,
266
+ ): QIPTransferShareManagementRightsOutput {
267
+ return decodePayload(data, QIP_TRANSFER_SHARE_MANAGEMENT_RIGHTS_OUTPUT_FIELDS, STRUCTS, (_: Uint8Array) => { throw new Error('unreachable') }) as unknown as QIPTransferShareManagementRightsOutput
268
+ }
269
+
270
+ export const QIP_RETURN_FUNDS_INPUT_TYPE = 4
271
+
272
+ export interface QIPReturnFundsInput {
273
+ indexOfICO: number
274
+ }
275
+
276
+ const QIP_RETURN_FUNDS_INPUT_FIELDS: BinaryField[] = [
277
+ {
278
+ name: 'indexOfICO',
279
+ type: 'uint32',
280
+ offset: 0,
281
+ byteLength: 4,
282
+ },
283
+ ]
284
+
285
+ export function buildQIPReturnFundsInput(
286
+ input: QIPReturnFundsInput,
287
+ ): ContractCall {
288
+ return { contractIndex: QIP_CONTRACT_INDEX, inputType: QIP_RETURN_FUNDS_INPUT_TYPE, payload: buildPayload(QIP_RETURN_FUNDS_INPUT_FIELDS, STRUCTS, input as unknown as Record<string, FieldValue | Uint8Array>, (_: string) => new Uint8Array(32)) }
289
+ }
290
+
291
+ export interface QIPReturnFundsOutput {
292
+ returnCode: number
293
+ }
294
+
295
+ const QIP_RETURN_FUNDS_OUTPUT_FIELDS: BinaryField[] = [
296
+ {
297
+ name: 'returnCode',
298
+ type: 'sint32',
299
+ offset: 0,
300
+ byteLength: 4,
301
+ },
302
+ ]
303
+
304
+ export function decodeQIPReturnFundsOutput(
305
+ data: Uint8Array,
306
+ ): QIPReturnFundsOutput {
307
+ return decodePayload(data, QIP_RETURN_FUNDS_OUTPUT_FIELDS, STRUCTS, (_: Uint8Array) => { throw new Error('unreachable') }) as unknown as QIPReturnFundsOutput
308
+ }
309
+
310
+ export const QIP_GET_ICO_INFO_INPUT_TYPE = 1
311
+ export const QIP_GET_ICO_INFO_INPUT_SIZE = 4
312
+
313
+ export interface QIPGetICOInfoInput {
314
+ indexOfICO: number
315
+ }
316
+
317
+ const QIP_GET_ICO_INFO_INPUT_FIELDS: BinaryField[] = [
318
+ {
319
+ name: 'indexOfICO',
320
+ type: 'uint32',
321
+ offset: 0,
322
+ byteLength: 4,
323
+ },
324
+ ]
325
+
326
+ export function buildQIPGetICOInfoInput(
327
+ input: QIPGetICOInfoInput,
328
+ ): Uint8Array {
329
+ return buildPayload(QIP_GET_ICO_INFO_INPUT_FIELDS, STRUCTS, input as unknown as Record<string, FieldValue | Uint8Array>, (_: string) => new Uint8Array(32))
330
+ }
331
+
332
+ export interface QIPGetICOInfoOutput {
333
+ creatorOfICO: string
334
+ issuer: string
335
+ address1: string
336
+ assetName: bigint
337
+ price1: bigint
338
+ price2: bigint
339
+ price3: bigint
340
+ saleAmountForPhase1: bigint
341
+ saleAmountForPhase2: bigint
342
+ saleAmountForPhase3: bigint
343
+ remainingAmountForPhase1: bigint
344
+ remainingAmountForPhase2: bigint
345
+ remainingAmountForPhase3: bigint
346
+ percent1: number
347
+ startEpoch: number
348
+ burnRemainingTokens: number
349
+ isVested: number
350
+ vestingPeriod: number
351
+ }
352
+
353
+ const QIP_GET_ICO_INFO_OUTPUT_FIELDS: BinaryField[] = [
354
+ {
355
+ name: 'creatorOfICO',
356
+ type: 'id',
357
+ offset: 0,
358
+ byteLength: 32,
359
+ },
360
+ {
361
+ name: 'issuer',
362
+ type: 'id',
363
+ offset: 32,
364
+ byteLength: 32,
365
+ },
366
+ {
367
+ name: 'address1',
368
+ type: 'id',
369
+ offset: 64,
370
+ byteLength: 32,
371
+ },
372
+ {
373
+ name: 'assetName',
374
+ type: 'uint64',
375
+ offset: 96,
376
+ byteLength: 8,
377
+ },
378
+ {
379
+ name: 'price1',
380
+ type: 'uint64',
381
+ offset: 104,
382
+ byteLength: 8,
383
+ },
384
+ {
385
+ name: 'price2',
386
+ type: 'uint64',
387
+ offset: 112,
388
+ byteLength: 8,
389
+ },
390
+ {
391
+ name: 'price3',
392
+ type: 'uint64',
393
+ offset: 120,
394
+ byteLength: 8,
395
+ },
396
+ {
397
+ name: 'saleAmountForPhase1',
398
+ type: 'uint64',
399
+ offset: 128,
400
+ byteLength: 8,
401
+ },
402
+ {
403
+ name: 'saleAmountForPhase2',
404
+ type: 'uint64',
405
+ offset: 136,
406
+ byteLength: 8,
407
+ },
408
+ {
409
+ name: 'saleAmountForPhase3',
410
+ type: 'uint64',
411
+ offset: 144,
412
+ byteLength: 8,
413
+ },
414
+ {
415
+ name: 'remainingAmountForPhase1',
416
+ type: 'uint64',
417
+ offset: 152,
418
+ byteLength: 8,
419
+ },
420
+ {
421
+ name: 'remainingAmountForPhase2',
422
+ type: 'uint64',
423
+ offset: 160,
424
+ byteLength: 8,
425
+ },
426
+ {
427
+ name: 'remainingAmountForPhase3',
428
+ type: 'uint64',
429
+ offset: 168,
430
+ byteLength: 8,
431
+ },
432
+ {
433
+ name: 'percent1',
434
+ type: 'uint32',
435
+ offset: 176,
436
+ byteLength: 4,
437
+ },
438
+ {
439
+ name: 'startEpoch',
440
+ type: 'uint32',
441
+ offset: 180,
442
+ byteLength: 4,
443
+ },
444
+ {
445
+ name: 'burnRemainingTokens',
446
+ type: 'uint8',
447
+ offset: 184,
448
+ byteLength: 1,
449
+ },
450
+ {
451
+ name: 'isVested',
452
+ type: 'uint8',
453
+ offset: 185,
454
+ byteLength: 1,
455
+ },
456
+ {
457
+ name: 'vestingPeriod',
458
+ type: 'uint32',
459
+ offset: 186,
460
+ byteLength: 4,
461
+ },
462
+ ]
463
+
464
+ export function decodeQIPGetICOInfoOutput(
465
+ data: Uint8Array,
466
+ publicKeyToIdentity: (pk: Uint8Array) => string,
467
+ ): QIPGetICOInfoOutput {
468
+ return decodePayload(data, QIP_GET_ICO_INFO_OUTPUT_FIELDS, STRUCTS, publicKeyToIdentity) as unknown as QIPGetICOInfoOutput
469
+ }
470
+
471
+ export async function qIPGetICOInfo(
472
+ live: SmartContractCaller,
473
+ input: QIPGetICOInfoInput,
474
+ options?: ContractCallOptions,
475
+ ): Promise<Result<QIPGetICOInfoOutput, QubicRpcError>> {
476
+ return callContractFunction({
477
+ live,
478
+ contractIndex: QIP_CONTRACT_INDEX,
479
+ inputType: QIP_GET_ICO_INFO_INPUT_TYPE,
480
+ inputSize: QIP_GET_ICO_INFO_INPUT_SIZE,
481
+ inputFields: QIP_GET_ICO_INFO_INPUT_FIELDS,
482
+ outputFields: QIP_GET_ICO_INFO_OUTPUT_FIELDS,
483
+ structs: STRUCTS,
484
+ input: (input as unknown as Record<string, unknown>),
485
+ ...options,
486
+ })
487
+ }
488
+
489
+ export const qIP = {
490
+ contractIndex: QIP_CONTRACT_INDEX,
491
+ getICOInfo: qIPGetICOInfo,
492
+ buildCreateICOInput: buildQIPCreateICOInput,
493
+ decodeCreateICOOutput: decodeQIPCreateICOOutput,
494
+ buildBuyTokenInput: buildQIPBuyTokenInput,
495
+ decodeBuyTokenOutput: decodeQIPBuyTokenOutput,
496
+ buildTransferShareManagementRightsInput: buildQIPTransferShareManagementRightsInput,
497
+ decodeTransferShareManagementRightsOutput: decodeQIPTransferShareManagementRightsOutput,
498
+ buildReturnFundsInput: buildQIPReturnFundsInput,
499
+ decodeReturnFundsOutput: decodeQIPReturnFundsOutput,
500
+ }
501
+