zkcloudworker 0.18.12 → 0.18.15

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 (162) hide show
  1. package/dist/node/index.cjs +4055 -0
  2. package/package.json +5 -8
  3. package/dist/ts/index.cjs +0 -418768
  4. package/dist/ts/mina/token/FungibleToken.d.ts +0 -338
  5. package/dist/ts/mina/token/FungibleToken.js +0 -292
  6. package/dist/ts/mina/token/FungibleToken.js.map +0 -1
  7. package/dist/web/mina/token/FungibleToken.d.ts +0 -338
  8. package/dist/web/mina/token/FungibleToken.js +0 -292
  9. package/dist/web/mina/token/FungibleToken.js.map +0 -1
  10. /package/dist/{ts → node}/cloud/config.d.ts +0 -0
  11. /package/dist/{ts → node}/cloud/config.js +0 -0
  12. /package/dist/{ts → node}/cloud/config.js.map +0 -0
  13. /package/dist/{ts → node}/cloud/index.d.ts +0 -0
  14. /package/dist/{ts → node}/cloud/index.js +0 -0
  15. /package/dist/{ts → node}/cloud/index.js.map +0 -0
  16. /package/dist/{ts → node}/cloud/networks.d.ts +0 -0
  17. /package/dist/{ts → node}/cloud/networks.js +0 -0
  18. /package/dist/{ts → node}/cloud/networks.js.map +0 -0
  19. /package/dist/{ts → node}/cloud/utils/base64.d.ts +0 -0
  20. /package/dist/{ts → node}/cloud/utils/base64.js +0 -0
  21. /package/dist/{ts → node}/cloud/utils/base64.js.map +0 -0
  22. /package/dist/{ts → node}/cloud/utils/graphql.d.ts +0 -0
  23. /package/dist/{ts → node}/cloud/utils/graphql.js +0 -0
  24. /package/dist/{ts → node}/cloud/utils/graphql.js.map +0 -0
  25. /package/dist/{ts → node}/cloud/utils/index.d.ts +0 -0
  26. /package/dist/{ts → node}/cloud/utils/index.js +0 -0
  27. /package/dist/{ts → node}/cloud/utils/index.js.map +0 -0
  28. /package/dist/{ts → node}/cloud/utils/utils.d.ts +0 -0
  29. /package/dist/{ts → node}/cloud/utils/utils.js +0 -0
  30. /package/dist/{ts → node}/cloud/utils/utils.js.map +0 -0
  31. /package/dist/{ts → node}/cloud/worker/cloud.d.ts +0 -0
  32. /package/dist/{ts → node}/cloud/worker/cloud.js +0 -0
  33. /package/dist/{ts → node}/cloud/worker/cloud.js.map +0 -0
  34. /package/dist/{ts → node}/cloud/worker/index.d.ts +0 -0
  35. /package/dist/{ts → node}/cloud/worker/index.js +0 -0
  36. /package/dist/{ts → node}/cloud/worker/index.js.map +0 -0
  37. /package/dist/{ts → node}/cloud/worker/job.d.ts +0 -0
  38. /package/dist/{ts → node}/cloud/worker/job.js +0 -0
  39. /package/dist/{ts → node}/cloud/worker/job.js.map +0 -0
  40. /package/dist/{ts → node}/cloud/worker/task.d.ts +0 -0
  41. /package/dist/{ts → node}/cloud/worker/task.js +0 -0
  42. /package/dist/{ts → node}/cloud/worker/task.js.map +0 -0
  43. /package/dist/{ts → node}/cloud/worker/transaction.d.ts +0 -0
  44. /package/dist/{ts → node}/cloud/worker/transaction.js +0 -0
  45. /package/dist/{ts → node}/cloud/worker/transaction.js.map +0 -0
  46. /package/dist/{ts → node}/cloud/worker/worker.d.ts +0 -0
  47. /package/dist/{ts → node}/cloud/worker/worker.js +0 -0
  48. /package/dist/{ts → node}/cloud/worker/worker.js.map +0 -0
  49. /package/dist/{ts → node}/index.d.ts +0 -0
  50. /package/dist/{ts → node}/index.js +0 -0
  51. /package/dist/{ts → node}/index.js.map +0 -0
  52. /package/dist/{ts → node}/mina/api/api.d.ts +0 -0
  53. /package/dist/{ts → node}/mina/api/api.js +0 -0
  54. /package/dist/{ts → node}/mina/api/api.js.map +0 -0
  55. /package/dist/{ts → node}/mina/index.d.ts +0 -0
  56. /package/dist/{ts → node}/mina/index.js +0 -0
  57. /package/dist/{ts → node}/mina/index.js.map +0 -0
  58. /package/dist/{ts → node}/mina/local/local.d.ts +0 -0
  59. /package/dist/{ts → node}/mina/local/local.js +0 -0
  60. /package/dist/{ts → node}/mina/local/local.js.map +0 -0
  61. /package/dist/{ts → node}/mina/storage/index.d.ts +0 -0
  62. /package/dist/{ts → node}/mina/storage/index.js +0 -0
  63. /package/dist/{ts → node}/mina/storage/index.js.map +0 -0
  64. /package/dist/{ts → node}/mina/storage/ipfs.d.ts +0 -0
  65. /package/dist/{ts → node}/mina/storage/ipfs.js +0 -0
  66. /package/dist/{ts → node}/mina/storage/ipfs.js.map +0 -0
  67. /package/dist/{ts → node}/mina/storage/pinata.d.ts +0 -0
  68. /package/dist/{ts → node}/mina/storage/pinata.js +0 -0
  69. /package/dist/{ts → node}/mina/storage/pinata.js.map +0 -0
  70. /package/dist/{ts → node}/mina/storage/storage.d.ts +0 -0
  71. /package/dist/{ts → node}/mina/storage/storage.js +0 -0
  72. /package/dist/{ts → node}/mina/storage/storage.js.map +0 -0
  73. /package/dist/{ts → node}/mina/token/FungibleTokenAdmin.d.ts +0 -0
  74. /package/dist/{ts → node}/mina/token/FungibleTokenAdmin.js +0 -0
  75. /package/dist/{ts → node}/mina/token/FungibleTokenAdmin.js.map +0 -0
  76. /package/dist/{ts → node}/mina/token/FungibleTokenContract.d.ts +0 -0
  77. /package/dist/{ts → node}/mina/token/FungibleTokenContract.js +0 -0
  78. /package/dist/{ts → node}/mina/token/FungibleTokenContract.js.map +0 -0
  79. /package/dist/{ts → node}/mina/token/FungibleTokenWhitelistedAdmin.d.ts +0 -0
  80. /package/dist/{ts → node}/mina/token/FungibleTokenWhitelistedAdmin.js +0 -0
  81. /package/dist/{ts → node}/mina/token/FungibleTokenWhitelistedAdmin.js.map +0 -0
  82. /package/dist/{ts → node}/mina/token/api.d.ts +0 -0
  83. /package/dist/{ts → node}/mina/token/api.js +0 -0
  84. /package/dist/{ts → node}/mina/token/api.js.map +0 -0
  85. /package/dist/{ts → node}/mina/token/bid.d.ts +0 -0
  86. /package/dist/{ts → node}/mina/token/bid.js +0 -0
  87. /package/dist/{ts → node}/mina/token/bid.js.map +0 -0
  88. /package/dist/{ts → node}/mina/token/build.d.ts +0 -0
  89. /package/dist/{ts → node}/mina/token/build.js +0 -0
  90. /package/dist/{ts → node}/mina/token/build.js.map +0 -0
  91. /package/dist/{ts → node}/mina/token/fee.d.ts +0 -0
  92. /package/dist/{ts → node}/mina/token/fee.js +0 -0
  93. /package/dist/{ts → node}/mina/token/fee.js.map +0 -0
  94. /package/dist/{ts → node}/mina/token/index.d.ts +0 -0
  95. /package/dist/{ts → node}/mina/token/index.js +0 -0
  96. /package/dist/{ts → node}/mina/token/index.js.map +0 -0
  97. /package/dist/{ts → node}/mina/token/offer.d.ts +0 -0
  98. /package/dist/{ts → node}/mina/token/offer.js +0 -0
  99. /package/dist/{ts → node}/mina/token/offer.js.map +0 -0
  100. /package/dist/{ts → node}/mina/token/token.d.ts +0 -0
  101. /package/dist/{ts → node}/mina/token/token.js +0 -0
  102. /package/dist/{ts → node}/mina/token/token.js.map +0 -0
  103. /package/dist/{ts → node}/mina/token/vk.d.ts +0 -0
  104. /package/dist/{ts → node}/mina/token/vk.js +0 -0
  105. /package/dist/{ts → node}/mina/token/vk.js.map +0 -0
  106. /package/dist/{ts → node}/mina/token/whitelist.d.ts +0 -0
  107. /package/dist/{ts → node}/mina/token/whitelist.js +0 -0
  108. /package/dist/{ts → node}/mina/token/whitelist.js.map +0 -0
  109. /package/dist/{ts → node}/mina/transactions/account.d.ts +0 -0
  110. /package/dist/{ts → node}/mina/transactions/account.js +0 -0
  111. /package/dist/{ts → node}/mina/transactions/account.js.map +0 -0
  112. /package/dist/{ts → node}/mina/transactions/blockberry.d.ts +0 -0
  113. /package/dist/{ts → node}/mina/transactions/blockberry.js +0 -0
  114. /package/dist/{ts → node}/mina/transactions/blockberry.js.map +0 -0
  115. /package/dist/{ts → node}/mina/transactions/chain.d.ts +0 -0
  116. /package/dist/{ts → node}/mina/transactions/chain.js +0 -0
  117. /package/dist/{ts → node}/mina/transactions/chain.js.map +0 -0
  118. /package/dist/{ts → node}/mina/transactions/index.d.ts +0 -0
  119. /package/dist/{ts → node}/mina/transactions/index.js +0 -0
  120. /package/dist/{ts → node}/mina/transactions/index.js.map +0 -0
  121. /package/dist/{ts → node}/mina/transactions/nonce.d.ts +0 -0
  122. /package/dist/{ts → node}/mina/transactions/nonce.js +0 -0
  123. /package/dist/{ts → node}/mina/transactions/nonce.js.map +0 -0
  124. /package/dist/{ts → node}/mina/transactions/send.d.ts +0 -0
  125. /package/dist/{ts → node}/mina/transactions/send.js +0 -0
  126. /package/dist/{ts → node}/mina/transactions/send.js.map +0 -0
  127. /package/dist/{ts → node}/mina/transactions/tiny-contract.d.ts +0 -0
  128. /package/dist/{ts → node}/mina/transactions/tiny-contract.js +0 -0
  129. /package/dist/{ts → node}/mina/transactions/tiny-contract.js.map +0 -0
  130. /package/dist/{ts → node}/mina/transactions/transaction.d.ts +0 -0
  131. /package/dist/{ts → node}/mina/transactions/transaction.js +0 -0
  132. /package/dist/{ts → node}/mina/transactions/transaction.js.map +0 -0
  133. /package/dist/{ts → node}/mina/transactions/txstatus.d.ts +0 -0
  134. /package/dist/{ts → node}/mina/transactions/txstatus.js +0 -0
  135. /package/dist/{ts → node}/mina/transactions/txstatus.js.map +0 -0
  136. /package/dist/{ts → node}/mina/utils/base64.d.ts +0 -0
  137. /package/dist/{ts → node}/mina/utils/base64.js +0 -0
  138. /package/dist/{ts → node}/mina/utils/base64.js.map +0 -0
  139. /package/dist/{ts → node}/mina/utils/fee.d.ts +0 -0
  140. /package/dist/{ts → node}/mina/utils/fee.js +0 -0
  141. /package/dist/{ts → node}/mina/utils/fee.js.map +0 -0
  142. /package/dist/{ts → node}/mina/utils/fetch.d.ts +0 -0
  143. /package/dist/{ts → node}/mina/utils/fetch.js +0 -0
  144. /package/dist/{ts → node}/mina/utils/fetch.js.map +0 -0
  145. /package/dist/{ts → node}/mina/utils/fields.d.ts +0 -0
  146. /package/dist/{ts → node}/mina/utils/fields.js +0 -0
  147. /package/dist/{ts → node}/mina/utils/fields.js.map +0 -0
  148. /package/dist/{ts → node}/mina/utils/index.d.ts +0 -0
  149. /package/dist/{ts → node}/mina/utils/index.js +0 -0
  150. /package/dist/{ts → node}/mina/utils/index.js.map +0 -0
  151. /package/dist/{ts → node}/mina/utils/indexed-map.d.ts +0 -0
  152. /package/dist/{ts → node}/mina/utils/indexed-map.js +0 -0
  153. /package/dist/{ts → node}/mina/utils/indexed-map.js.map +0 -0
  154. /package/dist/{ts → node}/mina/utils/mina.d.ts +0 -0
  155. /package/dist/{ts → node}/mina/utils/mina.js +0 -0
  156. /package/dist/{ts → node}/mina/utils/mina.js.map +0 -0
  157. /package/dist/{ts → node}/mina/verification/index.d.ts +0 -0
  158. /package/dist/{ts → node}/mina/verification/index.js +0 -0
  159. /package/dist/{ts → node}/mina/verification/index.js.map +0 -0
  160. /package/dist/{ts → node}/mina/verification/verification.d.ts +0 -0
  161. /package/dist/{ts → node}/mina/verification/verification.js +0 -0
  162. /package/dist/{ts → node}/mina/verification/verification.js.map +0 -0
@@ -1,338 +0,0 @@
1
- import { AccountUpdate, AccountUpdateForest, Bool, DeployArgs, Field, Int64, PublicKey, State, TokenContract, Types, UInt64, UInt8, VerificationKey } from "o1js";
2
- import { FungibleTokenAdminBase } from "./FungibleTokenAdmin.js";
3
- interface FungibleTokenDeployProps extends Exclude<DeployArgs, undefined> {
4
- /** The token symbol. */
5
- symbol: string;
6
- /** A source code reference, which is placed within the `zkappUri` of the contract account.
7
- * Typically a link to a file on github. */
8
- src: string;
9
- }
10
- export declare const FungibleTokenErrors: {
11
- noAdminKey: string;
12
- noPermissionToChangeAdmin: string;
13
- tokenPaused: string;
14
- noPermissionToMint: string;
15
- noPermissionToPause: string;
16
- noPermissionToResume: string;
17
- noTransferFromCirculation: string;
18
- noPermissionChangeAllowed: string;
19
- flashMinting: string;
20
- unbalancedTransaction: string;
21
- };
22
- export declare class FungibleToken extends TokenContract {
23
- decimals: State<UInt8>;
24
- admin: State<PublicKey>;
25
- paused: State<import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool>;
26
- static AdminContract: new (...args: any) => FungibleTokenAdminBase;
27
- readonly events: {
28
- SetAdmin: typeof SetAdminEvent;
29
- Pause: typeof PauseEvent;
30
- Mint: typeof MintEvent;
31
- Burn: typeof BurnEvent;
32
- BalanceChange: typeof BalanceChangeEvent;
33
- };
34
- deploy(props: FungibleTokenDeployProps): Promise<void>;
35
- /** Update the verification key.
36
- * Note that because we have set the permissions for setting the verification key to `impossibleDuringCurrentVersion()`, this will only be possible in case of a protocol update that requires an update.
37
- */
38
- updateVerificationKey(vk: VerificationKey): Promise<void>;
39
- /** Initializes the account for tracking total circulation.
40
- * @argument {PublicKey} admin - public key where the admin contract is deployed
41
- * @argument {UInt8} decimals - number of decimals for the token
42
- * @argument {Bool} startPaused - if set to `Bool(true), the contract will start in a mode where token minting and transfers are paused. This should be used for non-atomic deployments
43
- */
44
- initialize(admin: PublicKey, decimals: UInt8, startPaused: Bool): Promise<void>;
45
- getAdminContract(): Promise<FungibleTokenAdminBase>;
46
- setAdmin(admin: PublicKey): Promise<void>;
47
- mint(recipient: PublicKey, amount: UInt64): Promise<AccountUpdate>;
48
- burn(from: PublicKey, amount: UInt64): Promise<AccountUpdate>;
49
- pause(): Promise<void>;
50
- resume(): Promise<void>;
51
- transfer(from: PublicKey, to: PublicKey, amount: UInt64): Promise<void>;
52
- private checkPermissionsUpdate;
53
- /** Approve `AccountUpdate`s that have been created outside of the token contract.
54
- *
55
- * @argument {AccountUpdateForest} updates - The `AccountUpdate`s to approve. Note that the forest size is limited by the base token contract, @see TokenContractV2.MAX_ACCOUNT_UPDATES The current limit is 9.
56
- */
57
- approveBase(updates: AccountUpdateForest): Promise<void>;
58
- getBalanceOf(address: PublicKey): Promise<UInt64>;
59
- /** Reports the current circulating supply
60
- * This does take into account currently unreduced actions.
61
- */
62
- getCirculating(): Promise<UInt64>;
63
- getDecimals(): Promise<UInt8>;
64
- }
65
- declare const SetAdminEvent_base: (new (value: {
66
- adminKey: PublicKey;
67
- }) => {
68
- adminKey: PublicKey;
69
- }) & {
70
- _isStruct: true;
71
- } & Omit<import("node_modules/o1js/dist/node/lib/provable/types/provable-intf.js").Provable<{
72
- adminKey: PublicKey;
73
- }, {
74
- adminKey: {
75
- x: bigint;
76
- isOdd: boolean;
77
- };
78
- }>, "fromFields"> & {
79
- fromFields: (fields: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[]) => {
80
- adminKey: PublicKey;
81
- };
82
- } & {
83
- fromValue: (value: {
84
- adminKey: PublicKey | {
85
- x: Field | bigint;
86
- isOdd: Bool | boolean;
87
- };
88
- }) => {
89
- adminKey: PublicKey;
90
- };
91
- toInput: (x: {
92
- adminKey: PublicKey;
93
- }) => {
94
- fields?: Field[] | undefined;
95
- packed?: [Field, number][] | undefined;
96
- };
97
- toJSON: (x: {
98
- adminKey: PublicKey;
99
- }) => {
100
- adminKey: string;
101
- };
102
- fromJSON: (x: {
103
- adminKey: string;
104
- }) => {
105
- adminKey: PublicKey;
106
- };
107
- empty: () => {
108
- adminKey: PublicKey;
109
- };
110
- };
111
- export declare class SetAdminEvent extends SetAdminEvent_base {
112
- }
113
- declare const PauseEvent_base: (new (value: {
114
- isPaused: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
115
- }) => {
116
- isPaused: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
117
- }) & {
118
- _isStruct: true;
119
- } & Omit<import("node_modules/o1js/dist/node/lib/provable/types/provable-intf.js").Provable<{
120
- isPaused: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
121
- }, {
122
- isPaused: boolean;
123
- }>, "fromFields"> & {
124
- fromFields: (fields: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[]) => {
125
- isPaused: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
126
- };
127
- } & {
128
- fromValue: (value: {
129
- isPaused: boolean | import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
130
- }) => {
131
- isPaused: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
132
- };
133
- toInput: (x: {
134
- isPaused: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
135
- }) => {
136
- fields?: Field[] | undefined;
137
- packed?: [Field, number][] | undefined;
138
- };
139
- toJSON: (x: {
140
- isPaused: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
141
- }) => {
142
- isPaused: boolean;
143
- };
144
- fromJSON: (x: {
145
- isPaused: boolean;
146
- }) => {
147
- isPaused: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
148
- };
149
- empty: () => {
150
- isPaused: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
151
- };
152
- };
153
- export declare class PauseEvent extends PauseEvent_base {
154
- }
155
- declare const MintEvent_base: (new (value: {
156
- recipient: PublicKey;
157
- amount: Types.UInt64;
158
- }) => {
159
- recipient: PublicKey;
160
- amount: Types.UInt64;
161
- }) & {
162
- _isStruct: true;
163
- } & Omit<import("node_modules/o1js/dist/node/lib/provable/types/provable-intf.js").Provable<{
164
- recipient: PublicKey;
165
- amount: Types.UInt64;
166
- }, {
167
- recipient: {
168
- x: bigint;
169
- isOdd: boolean;
170
- };
171
- amount: bigint;
172
- }>, "fromFields"> & {
173
- fromFields: (fields: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[]) => {
174
- recipient: PublicKey;
175
- amount: Types.UInt64;
176
- };
177
- } & {
178
- fromValue: (value: {
179
- recipient: PublicKey | {
180
- x: Field | bigint;
181
- isOdd: Bool | boolean;
182
- };
183
- amount: bigint | Types.UInt64;
184
- }) => {
185
- recipient: PublicKey;
186
- amount: Types.UInt64;
187
- };
188
- toInput: (x: {
189
- recipient: PublicKey;
190
- amount: Types.UInt64;
191
- }) => {
192
- fields?: Field[] | undefined;
193
- packed?: [Field, number][] | undefined;
194
- };
195
- toJSON: (x: {
196
- recipient: PublicKey;
197
- amount: Types.UInt64;
198
- }) => {
199
- recipient: string;
200
- amount: string;
201
- };
202
- fromJSON: (x: {
203
- recipient: string;
204
- amount: string;
205
- }) => {
206
- recipient: PublicKey;
207
- amount: Types.UInt64;
208
- };
209
- empty: () => {
210
- recipient: PublicKey;
211
- amount: Types.UInt64;
212
- };
213
- };
214
- export declare class MintEvent extends MintEvent_base {
215
- }
216
- declare const BurnEvent_base: (new (value: {
217
- from: PublicKey;
218
- amount: Types.UInt64;
219
- }) => {
220
- from: PublicKey;
221
- amount: Types.UInt64;
222
- }) & {
223
- _isStruct: true;
224
- } & Omit<import("node_modules/o1js/dist/node/lib/provable/types/provable-intf.js").Provable<{
225
- from: PublicKey;
226
- amount: Types.UInt64;
227
- }, {
228
- from: {
229
- x: bigint;
230
- isOdd: boolean;
231
- };
232
- amount: bigint;
233
- }>, "fromFields"> & {
234
- fromFields: (fields: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[]) => {
235
- from: PublicKey;
236
- amount: Types.UInt64;
237
- };
238
- } & {
239
- fromValue: (value: {
240
- from: PublicKey | {
241
- x: Field | bigint;
242
- isOdd: Bool | boolean;
243
- };
244
- amount: bigint | Types.UInt64;
245
- }) => {
246
- from: PublicKey;
247
- amount: Types.UInt64;
248
- };
249
- toInput: (x: {
250
- from: PublicKey;
251
- amount: Types.UInt64;
252
- }) => {
253
- fields?: Field[] | undefined;
254
- packed?: [Field, number][] | undefined;
255
- };
256
- toJSON: (x: {
257
- from: PublicKey;
258
- amount: Types.UInt64;
259
- }) => {
260
- from: string;
261
- amount: string;
262
- };
263
- fromJSON: (x: {
264
- from: string;
265
- amount: string;
266
- }) => {
267
- from: PublicKey;
268
- amount: Types.UInt64;
269
- };
270
- empty: () => {
271
- from: PublicKey;
272
- amount: Types.UInt64;
273
- };
274
- };
275
- export declare class BurnEvent extends BurnEvent_base {
276
- }
277
- declare const BalanceChangeEvent_base: (new (value: {
278
- address: PublicKey;
279
- amount: Int64;
280
- }) => {
281
- address: PublicKey;
282
- amount: Int64;
283
- }) & {
284
- _isStruct: true;
285
- } & Omit<import("node_modules/o1js/dist/node/lib/provable/types/provable-intf.js").Provable<{
286
- address: PublicKey;
287
- amount: Int64;
288
- }, {
289
- address: {
290
- x: bigint;
291
- isOdd: boolean;
292
- };
293
- amount: any;
294
- }>, "fromFields"> & {
295
- fromFields: (fields: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[]) => {
296
- address: PublicKey;
297
- amount: Int64;
298
- };
299
- } & {
300
- fromValue: (value: {
301
- address: PublicKey | {
302
- x: Field | bigint;
303
- isOdd: Bool | boolean;
304
- };
305
- amount: any;
306
- }) => {
307
- address: PublicKey;
308
- amount: Int64;
309
- };
310
- toInput: (x: {
311
- address: PublicKey;
312
- amount: Int64;
313
- }) => {
314
- fields?: Field[] | undefined;
315
- packed?: [Field, number][] | undefined;
316
- };
317
- toJSON: (x: {
318
- address: PublicKey;
319
- amount: Int64;
320
- }) => {
321
- address: string;
322
- amount: any;
323
- };
324
- fromJSON: (x: {
325
- address: string;
326
- amount: any;
327
- }) => {
328
- address: PublicKey;
329
- amount: Int64;
330
- };
331
- empty: () => {
332
- address: PublicKey;
333
- amount: Int64;
334
- };
335
- };
336
- export declare class BalanceChangeEvent extends BalanceChangeEvent_base {
337
- }
338
- export {};
@@ -1,292 +0,0 @@
1
- import { __decorate, __metadata } from "tslib";
2
- import { AccountUpdate, AccountUpdateForest, assert, Bool, Int64, method, Permissions, Provable, PublicKey, State, state, Struct, TokenContract, Types, UInt64, UInt8, VerificationKey, } from "o1js";
3
- import { FungibleTokenAdmin, } from "./FungibleTokenAdmin.js";
4
- export const FungibleTokenErrors = {
5
- noAdminKey: "could not fetch admin contract key",
6
- noPermissionToChangeAdmin: "Not allowed to change admin contract",
7
- tokenPaused: "Token is currently paused",
8
- noPermissionToMint: "Not allowed to mint tokens",
9
- noPermissionToPause: "Not allowed to pause token",
10
- noPermissionToResume: "Not allowed to resume token",
11
- noTransferFromCirculation: "Can't transfer to/from the circulation account",
12
- noPermissionChangeAllowed: "Can't change permissions for access or receive on token accounts",
13
- flashMinting: "Flash-minting or unbalanced transaction detected. Please make sure that your transaction is balanced, and that your `AccountUpdate`s are ordered properly, so that tokens are not received before they are sent.",
14
- unbalancedTransaction: "Transaction is unbalanced",
15
- };
16
- export class FungibleToken extends TokenContract {
17
- constructor() {
18
- super(...arguments);
19
- this.decimals = State();
20
- this.admin = State();
21
- this.paused = State();
22
- this.events = {
23
- SetAdmin: SetAdminEvent,
24
- Pause: PauseEvent,
25
- Mint: MintEvent,
26
- Burn: BurnEvent,
27
- BalanceChange: BalanceChangeEvent,
28
- };
29
- }
30
- async deploy(props) {
31
- await super.deploy(props);
32
- this.paused.set(Bool(true));
33
- this.account.zkappUri.set(props.src);
34
- this.account.tokenSymbol.set(props.symbol);
35
- this.account.permissions.set({
36
- ...Permissions.default(),
37
- setVerificationKey: Permissions.VerificationKey.impossibleDuringCurrentVersion(),
38
- setPermissions: Permissions.impossible(),
39
- access: Permissions.proof(),
40
- });
41
- }
42
- /** Update the verification key.
43
- * Note that because we have set the permissions for setting the verification key to `impossibleDuringCurrentVersion()`, this will only be possible in case of a protocol update that requires an update.
44
- */
45
- async updateVerificationKey(vk) {
46
- this.account.verificationKey.set(vk);
47
- }
48
- /** Initializes the account for tracking total circulation.
49
- * @argument {PublicKey} admin - public key where the admin contract is deployed
50
- * @argument {UInt8} decimals - number of decimals for the token
51
- * @argument {Bool} startPaused - if set to `Bool(true), the contract will start in a mode where token minting and transfers are paused. This should be used for non-atomic deployments
52
- */
53
- async initialize(admin, decimals, startPaused) {
54
- this.account.provedState.requireEquals(Bool(false));
55
- this.admin.set(admin);
56
- this.decimals.set(decimals);
57
- this.paused.set(Bool(false));
58
- this.paused.set(startPaused);
59
- const accountUpdate = AccountUpdate.createSigned(this.address, this.deriveTokenId());
60
- let permissions = Permissions.default();
61
- // This is necessary in order to allow token holders to burn.
62
- permissions.send = Permissions.none();
63
- permissions.setPermissions = Permissions.impossible();
64
- accountUpdate.account.permissions.set(permissions);
65
- }
66
- async getAdminContract() {
67
- const admin = await Provable.witnessAsync(PublicKey, async () => {
68
- let pk = await this.admin.fetch();
69
- assert(pk !== undefined, FungibleTokenErrors.noAdminKey);
70
- return pk;
71
- });
72
- this.admin.requireEquals(admin);
73
- return new FungibleToken.AdminContract(admin);
74
- }
75
- async setAdmin(admin) {
76
- const adminContract = await this.getAdminContract();
77
- const canChangeAdmin = await adminContract.canChangeAdmin(admin);
78
- canChangeAdmin.assertTrue(FungibleTokenErrors.noPermissionToChangeAdmin);
79
- this.admin.set(admin);
80
- this.emitEvent("SetAdmin", new SetAdminEvent({ adminKey: admin }));
81
- }
82
- async mint(recipient, amount) {
83
- this.paused
84
- .getAndRequireEquals()
85
- .assertFalse(FungibleTokenErrors.tokenPaused);
86
- const accountUpdate = this.internal.mint({ address: recipient, amount });
87
- const adminContract = await this.getAdminContract();
88
- const canMint = await adminContract.canMint(accountUpdate);
89
- canMint.assertTrue(FungibleTokenErrors.noPermissionToMint);
90
- recipient
91
- .equals(this.address)
92
- .assertFalse(FungibleTokenErrors.noTransferFromCirculation);
93
- this.approve(accountUpdate);
94
- this.emitEvent("Mint", new MintEvent({ recipient, amount }));
95
- const circulationUpdate = AccountUpdate.create(this.address, this.deriveTokenId());
96
- circulationUpdate.balanceChange = Int64.fromUnsigned(amount);
97
- return accountUpdate;
98
- }
99
- async burn(from, amount) {
100
- this.paused
101
- .getAndRequireEquals()
102
- .assertFalse(FungibleTokenErrors.tokenPaused);
103
- const accountUpdate = this.internal.burn({ address: from, amount });
104
- const circulationUpdate = AccountUpdate.create(this.address, this.deriveTokenId());
105
- from
106
- .equals(this.address)
107
- .assertFalse(FungibleTokenErrors.noTransferFromCirculation);
108
- circulationUpdate.balanceChange = Int64.fromUnsigned(amount).neg();
109
- this.emitEvent("Burn", new BurnEvent({ from, amount }));
110
- return accountUpdate;
111
- }
112
- async pause() {
113
- const adminContract = await this.getAdminContract();
114
- const canPause = await adminContract.canPause();
115
- canPause.assertTrue(FungibleTokenErrors.noPermissionToPause);
116
- this.paused.set(Bool(true));
117
- this.emitEvent("Pause", new PauseEvent({ isPaused: Bool(true) }));
118
- }
119
- async resume() {
120
- const adminContract = await this.getAdminContract();
121
- const canResume = await adminContract.canResume();
122
- canResume.assertTrue(FungibleTokenErrors.noPermissionToResume);
123
- this.paused.set(Bool(false));
124
- this.emitEvent("Pause", new PauseEvent({ isPaused: Bool(false) }));
125
- }
126
- async transfer(from, to, amount) {
127
- this.paused
128
- .getAndRequireEquals()
129
- .assertFalse(FungibleTokenErrors.tokenPaused);
130
- from
131
- .equals(this.address)
132
- .assertFalse(FungibleTokenErrors.noTransferFromCirculation);
133
- to.equals(this.address).assertFalse(FungibleTokenErrors.noTransferFromCirculation);
134
- this.internal.send({ from, to, amount });
135
- }
136
- checkPermissionsUpdate(update) {
137
- let permissions = update.update.permissions;
138
- let { access, receive } = permissions.value;
139
- let accessIsNone = Provable.equal(Types.AuthRequired, access, Permissions.none());
140
- let receiveIsNone = Provable.equal(Types.AuthRequired, receive, Permissions.none());
141
- let updateAllowed = accessIsNone.and(receiveIsNone);
142
- assert(updateAllowed.or(permissions.isSome.not()), FungibleTokenErrors.noPermissionChangeAllowed);
143
- }
144
- /** Approve `AccountUpdate`s that have been created outside of the token contract.
145
- *
146
- * @argument {AccountUpdateForest} updates - The `AccountUpdate`s to approve. Note that the forest size is limited by the base token contract, @see TokenContractV2.MAX_ACCOUNT_UPDATES The current limit is 9.
147
- */
148
- async approveBase(updates) {
149
- this.paused
150
- .getAndRequireEquals()
151
- .assertFalse(FungibleTokenErrors.tokenPaused);
152
- let totalBalance = Int64.from(0);
153
- this.forEachUpdate(updates, (update, usesToken) => {
154
- // Make sure that the account permissions are not changed
155
- this.checkPermissionsUpdate(update);
156
- this.emitEventIf(usesToken, "BalanceChange", new BalanceChangeEvent({
157
- address: update.publicKey,
158
- amount: update.balanceChange,
159
- }));
160
- // Don't allow transfers to/from the account that's tracking circulation
161
- update.publicKey
162
- .equals(this.address)
163
- .and(usesToken)
164
- .assertFalse(FungibleTokenErrors.noTransferFromCirculation);
165
- totalBalance = Provable.if(usesToken, totalBalance.add(update.balanceChange), totalBalance);
166
- totalBalance.isPositive().assertFalse(FungibleTokenErrors.flashMinting);
167
- });
168
- totalBalance.assertEquals(Int64.zero, FungibleTokenErrors.unbalancedTransaction);
169
- }
170
- async getBalanceOf(address) {
171
- const account = AccountUpdate.create(address, this.deriveTokenId()).account;
172
- const balance = account.balance.get();
173
- account.balance.requireEquals(balance);
174
- return balance;
175
- }
176
- /** Reports the current circulating supply
177
- * This does take into account currently unreduced actions.
178
- */
179
- async getCirculating() {
180
- let circulating = await this.getBalanceOf(this.address);
181
- return circulating;
182
- }
183
- async getDecimals() {
184
- return this.decimals.getAndRequireEquals();
185
- }
186
- }
187
- // This defines the type of the contract that is used to control access to administrative actions.
188
- // If you want to have a custom contract, overwrite this by setting FungibleToken.AdminContract to
189
- // your own implementation of FungibleTokenAdminBase.
190
- FungibleToken.AdminContract = FungibleTokenAdmin;
191
- __decorate([
192
- state(UInt8),
193
- __metadata("design:type", Object)
194
- ], FungibleToken.prototype, "decimals", void 0);
195
- __decorate([
196
- state(PublicKey),
197
- __metadata("design:type", Object)
198
- ], FungibleToken.prototype, "admin", void 0);
199
- __decorate([
200
- state(Bool),
201
- __metadata("design:type", Object)
202
- ], FungibleToken.prototype, "paused", void 0);
203
- __decorate([
204
- method,
205
- __metadata("design:type", Function),
206
- __metadata("design:paramtypes", [VerificationKey]),
207
- __metadata("design:returntype", Promise)
208
- ], FungibleToken.prototype, "updateVerificationKey", null);
209
- __decorate([
210
- method,
211
- __metadata("design:type", Function),
212
- __metadata("design:paramtypes", [PublicKey, UInt8, Bool]),
213
- __metadata("design:returntype", Promise)
214
- ], FungibleToken.prototype, "initialize", null);
215
- __decorate([
216
- method,
217
- __metadata("design:type", Function),
218
- __metadata("design:paramtypes", [PublicKey]),
219
- __metadata("design:returntype", Promise)
220
- ], FungibleToken.prototype, "setAdmin", null);
221
- __decorate([
222
- method.returns(AccountUpdate),
223
- __metadata("design:type", Function),
224
- __metadata("design:paramtypes", [PublicKey, UInt64]),
225
- __metadata("design:returntype", Promise)
226
- ], FungibleToken.prototype, "mint", null);
227
- __decorate([
228
- method.returns(AccountUpdate),
229
- __metadata("design:type", Function),
230
- __metadata("design:paramtypes", [PublicKey, UInt64]),
231
- __metadata("design:returntype", Promise)
232
- ], FungibleToken.prototype, "burn", null);
233
- __decorate([
234
- method,
235
- __metadata("design:type", Function),
236
- __metadata("design:paramtypes", []),
237
- __metadata("design:returntype", Promise)
238
- ], FungibleToken.prototype, "pause", null);
239
- __decorate([
240
- method,
241
- __metadata("design:type", Function),
242
- __metadata("design:paramtypes", []),
243
- __metadata("design:returntype", Promise)
244
- ], FungibleToken.prototype, "resume", null);
245
- __decorate([
246
- method,
247
- __metadata("design:type", Function),
248
- __metadata("design:paramtypes", [PublicKey, PublicKey, UInt64]),
249
- __metadata("design:returntype", Promise)
250
- ], FungibleToken.prototype, "transfer", null);
251
- __decorate([
252
- method,
253
- __metadata("design:type", Function),
254
- __metadata("design:paramtypes", [AccountUpdateForest]),
255
- __metadata("design:returntype", Promise)
256
- ], FungibleToken.prototype, "approveBase", null);
257
- __decorate([
258
- method.returns(UInt64),
259
- __metadata("design:type", Function),
260
- __metadata("design:paramtypes", [PublicKey]),
261
- __metadata("design:returntype", Promise)
262
- ], FungibleToken.prototype, "getBalanceOf", null);
263
- __decorate([
264
- method.returns(UInt8),
265
- __metadata("design:type", Function),
266
- __metadata("design:paramtypes", []),
267
- __metadata("design:returntype", Promise)
268
- ], FungibleToken.prototype, "getDecimals", null);
269
- export class SetAdminEvent extends Struct({
270
- adminKey: PublicKey,
271
- }) {
272
- }
273
- export class PauseEvent extends Struct({
274
- isPaused: Bool,
275
- }) {
276
- }
277
- export class MintEvent extends Struct({
278
- recipient: PublicKey,
279
- amount: UInt64,
280
- }) {
281
- }
282
- export class BurnEvent extends Struct({
283
- from: PublicKey,
284
- amount: UInt64,
285
- }) {
286
- }
287
- export class BalanceChangeEvent extends Struct({
288
- address: PublicKey,
289
- amount: Int64,
290
- }) {
291
- }
292
- //# sourceMappingURL=FungibleToken.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FungibleToken.js","sourceRoot":"","sources":["../../../../src/mina/token/FungibleToken.ts"],"names":[],"mappings":"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"}