@taqueria/plugin-contract-types 0.0.0-pr-91-a8fa7172

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 (51) hide show
  1. package/Readme.md +212 -0
  2. package/example/contracts/example-contract-1.tz +1409 -0
  3. package/example/contracts/example-contract-2.tz +798 -0
  4. package/example/contracts/example-contract-3.json +7080 -0
  5. package/example/contracts/example-contract-4.tz +1374 -0
  6. package/example/contracts/example-contract-5.tz +1424 -0
  7. package/example/contracts/example-contract-6.tz +675 -0
  8. package/example/contracts/example-contract-7.tz +384 -0
  9. package/example/contracts/example-contract-8.tz +28 -0
  10. package/example/contracts/example-contract-9.tz +1010 -0
  11. package/example/example-usage-type-utilities.ts +35 -0
  12. package/example/example-usage.ts +410 -0
  13. package/example/types-file/example-contract-1.code.ts +6 -0
  14. package/example/types-file/example-contract-1.types.ts +87 -0
  15. package/example/types-file/example-contract-2.code.ts +6 -0
  16. package/example/types-file/example-contract-2.types.ts +122 -0
  17. package/example/types-file/example-contract-4.code.ts +6 -0
  18. package/example/types-file/example-contract-4.types.ts +97 -0
  19. package/example/types-file/example-contract-5.code.ts +6 -0
  20. package/example/types-file/example-contract-5.types.ts +173 -0
  21. package/example/types-file/example-contract-6.code.ts +6 -0
  22. package/example/types-file/example-contract-6.types.ts +122 -0
  23. package/example/types-file/example-contract-7.code.ts +6 -0
  24. package/example/types-file/example-contract-7.types.ts +78 -0
  25. package/example/types-file/example-contract-8.code.ts +6 -0
  26. package/example/types-file/example-contract-8.types.ts +86 -0
  27. package/example/types-file/example-contract-9.code.ts +6 -0
  28. package/example/types-file/example-contract-9.types.ts +29 -0
  29. package/example/types-file/type-aliases.ts +81 -0
  30. package/example/types-file/type-utils.ts +36 -0
  31. package/index.js +969 -0
  32. package/index.js.map +1 -0
  33. package/index.ts +32 -0
  34. package/package.json +55 -0
  35. package/run.ts +3 -0
  36. package/src/cli-process.ts +111 -0
  37. package/src/cli.ts +34 -0
  38. package/src/generator/common.ts +21 -0
  39. package/src/generator/contract-name.ts +6 -0
  40. package/src/generator/contract-parser.ts +358 -0
  41. package/src/generator/process.ts +66 -0
  42. package/src/generator/schema-output.ts +54 -0
  43. package/src/generator/typescript-output.ts +239 -0
  44. package/src/taquito-contract-type-generator.ts +4 -0
  45. package/src/type-aliases-file-content.ts +83 -0
  46. package/src/type-aliases.ts +80 -0
  47. package/src/type-utils-file-content.ts +38 -0
  48. package/src/type-utils.ts +35 -0
  49. package/tasks.ts +127 -0
  50. package/test/generator.spec.ts +69 -0
  51. package/tsconfig.json +13 -0
@@ -0,0 +1,35 @@
1
+ import { ContractAbstraction, ContractMethod, ContractMethodObject, ContractProvider, Wallet } from '@taquito/taquito';
2
+
3
+ type BaseContractType = { methods: unknown, methodsObject: unknown, storage: unknown };
4
+
5
+ type ContractMethodsOf<T extends ContractProvider | Wallet, TContract extends BaseContractType> = {
6
+ [M in keyof TContract['methods']]:
7
+ TContract['methods'][M] extends (...args: infer A) => unknown
8
+ ? (...args: A) => ContractMethod<T>
9
+ : never
10
+ };
11
+ type ContractMethodsObjectsOf<T extends ContractProvider | Wallet, TContract extends BaseContractType> = {
12
+ [M in keyof TContract['methodsObject']]:
13
+ TContract['methodsObject'][M] extends (...args: infer A) => unknown
14
+ ? (...args: A) => ContractMethodObject<T>
15
+ : never
16
+ };
17
+ type ContractStorageOf<TContract extends BaseContractType> = TContract['storage'];
18
+
19
+ export type ContractAbstractionFromContractType<TContract extends BaseContractType> =
20
+ ContractAbstraction<ContractProvider,
21
+ ContractMethodsOf<ContractProvider, TContract>,
22
+ ContractMethodsObjectsOf<ContractProvider, TContract>,
23
+ {},
24
+ {},
25
+ ContractStorageOf<TContract>
26
+ >;
27
+
28
+ export type WalletContractAbstractionFromContractType<TContract extends BaseContractType> =
29
+ ContractAbstraction<Wallet,
30
+ ContractMethodsOf<Wallet, TContract>,
31
+ ContractMethodsObjectsOf<Wallet, TContract>,
32
+ {},
33
+ {},
34
+ ContractStorageOf<TContract>
35
+ >;
@@ -0,0 +1,410 @@
1
+ import { ContractStorageType, DefaultContractType, OpKind, OriginateParams, ParamsWithKind, TezosToolkit } from '@taquito/taquito';
2
+ import { ExampleContract1ContractType as TestContract, ExampleContract1WalletType as TestWallet } from './types-file/example-contract-1.types';
3
+ import { ExampleContract2ContractType as TestContract2, ExampleContract2WalletType as TestWallet2 } from './types-file/example-contract-2.types';
4
+ import { nat, tas } from './types-file/type-aliases';
5
+
6
+ export const exampleTypedMethods_existingContract = async () => {
7
+
8
+ const Tezos = new TezosToolkit(`https://YOUR_PREFERRED_RPC_URL`)
9
+
10
+ const contract = await Tezos.contract.at<TestContract>(`tz123`);
11
+
12
+ contract.methods.bid(tas.nat(0));
13
+ contract.methods.configure(
14
+ /*opening_price:*/ tas.mutez(10),
15
+ /*min_raise_percent:*/ tas.nat(10),
16
+ /*min_raise:*/ tas.mutez(10),
17
+ /*round_time:*/ tas.nat(10),
18
+ /*extend_time:*/ tas.nat(10),
19
+ /*asset:*/ [{
20
+ fa2_address: tas.address(`tz123`),
21
+ fa2_batch: [{
22
+ amount: tas.nat(100),
23
+ token_id: tas.nat(`100000000000000`),
24
+ }],
25
+ }],
26
+ /*start_time:*/ tas.timestamp(new Date()),
27
+ /*end_time:*/ tas.timestamp(`2020-01-01`),
28
+ );
29
+
30
+ // methodsObject
31
+ contract.methodsObject.bid(tas.nat(0));
32
+ contract.methodsObject.configure({
33
+ asset: [{
34
+ fa2_address: tas.address(`tz123`),
35
+ fa2_batch: [{
36
+ amount: tas.nat(100),
37
+ token_id: tas.nat(`100000000000000`),
38
+ }],
39
+ }],
40
+ start_time: tas.timestamp(new Date()),
41
+ end_time: tas.timestamp(`2020-01-01`),
42
+ extend_time: tas.nat(10),
43
+ min_raise: tas.mutez(10),
44
+ min_raise_percent: tas.nat(10),
45
+ opening_price: tas.mutez(10),
46
+ round_time: tas.nat(10),
47
+ });
48
+
49
+ };
50
+
51
+ export const exampleTypedMethods_existingWallet = async () => {
52
+
53
+ const Tezos = new TezosToolkit(`https://YOUR_PREFERRED_RPC_URL`)
54
+
55
+ const contract = await Tezos.wallet.at<TestWallet>(`tz123`);
56
+
57
+ // SendParams are not stictly typed yet
58
+ // const bidSendResult = await contract.methods.bid(tas.nat(0)).send({ amount: tas.mutez(1000000) });
59
+ const bidSendResult = await contract.methods.bid(tas.nat(0)).send({ amount: tas.number(tas.mutez(1000000)) });
60
+
61
+ // Receipt only exists on wallet
62
+ const bidReciptResult = await bidSendResult.receipt();
63
+ const bidConfirmationResult = await bidSendResult.confirmation(10);
64
+
65
+ contract.methods.configure(
66
+ /*opening_price:*/ tas.mutez(10),
67
+ /*min_raise_percent:*/ tas.nat(10),
68
+ /*min_raise:*/ tas.mutez(10),
69
+ /*round_time:*/ tas.nat(10),
70
+ /*extend_time:*/ tas.nat(10),
71
+ /*asset:*/ [{
72
+ fa2_address: tas.address(`tz123`),
73
+ fa2_batch: [{
74
+ amount: tas.nat(100),
75
+ token_id: tas.nat(`100000000000000`),
76
+ }],
77
+ }],
78
+ /*start_time:*/ tas.timestamp(new Date()),
79
+ /*end_time:*/ tas.timestamp(`2020-01-01`),
80
+ );
81
+
82
+ // methodsObject
83
+ contract.methodsObject.configure({
84
+ asset: [{
85
+ fa2_address: tas.address(`tz123`),
86
+ fa2_batch: [{
87
+ amount: tas.nat(100),
88
+ token_id: tas.nat(`100000000000000`),
89
+ }],
90
+ }],
91
+ start_time: tas.timestamp(new Date()),
92
+ end_time: tas.timestamp(`2020-01-01`),
93
+ extend_time: tas.nat(10),
94
+ min_raise: tas.mutez(10),
95
+ min_raise_percent: tas.nat(10),
96
+ opening_price: tas.mutez(10),
97
+ round_time: tas.nat(10),
98
+ });
99
+
100
+ };
101
+
102
+ export const exampleTypedOriginateStorageAndResultContract_contract = async () => {
103
+
104
+ const Tezos = new TezosToolkit(`https://YOUR_PREFERRED_RPC_URL`)
105
+
106
+ // TODO: Remove this comment (leaving for debugging purposes for now)
107
+ // const contractObj = null as unknown as TestContract2;
108
+ // const storageResult = await contractObj.storage();
109
+ // const storageMethod = contractObj.storage;
110
+ // const storageReturnType = null as unknown as ReturnType<typeof contractObj['storage']>;
111
+ // type PromiseReturnType<T extends (...args: any) => any> = T extends (...args: any) => PromiseLike<infer R> ? R : any;
112
+ // const s0 = null as unknown as PromiseReturnType<TestContract2['storage']>;
113
+ // const s = null as unknown as ContractStorageType<TestContract2>;
114
+
115
+ const originationResult = await Tezos.contract.originate<TestContract2>({
116
+ code: ``,
117
+ // Require typed initial storage
118
+ storage: {
119
+ assets: {
120
+ ledger: tas.bigMap([
121
+ { key: { 0: tas.address('tz123'), 1: tas.nat(42) }, value:tas.nat(42) }
122
+ ]),
123
+ operators: tas.bigMap([]),
124
+ token_metadata: tas.bigMap([]),
125
+ token_total_supply: tas.bigMap([]),
126
+ },
127
+ metadata: tas.bigMap([]),
128
+ },
129
+ });
130
+ // Originated contract is also typed
131
+ const contract = await originationResult.contract(5);
132
+ contract.methods.set_admin(tas.address(`tz123`));
133
+
134
+ contract.methods.create_token(
135
+ /*token_id:*/ tas.nat(`100000000000000`),
136
+ /*token_info:*/ tas.map([
137
+ { key: `0`, value: tas.bytes(`abc`) },
138
+ { key: `1`, value: tas.bytes(`def`) },
139
+ ]),
140
+ );
141
+ contract.methods.create_token(
142
+ /*token_id:*/ tas.nat(`100000000000000`),
143
+ /*token_info:*/ tas.map({
144
+ 0: tas.bytes(`abc`),
145
+ 1: tas.bytes(`def`),
146
+ }),
147
+ );
148
+
149
+ // methodsObject
150
+ contract.methodsObject.set_admin(tas.address(`tz123`));
151
+ contract.methodsObject.create_token({
152
+ token_id: tas.nat(`100000000000000`),
153
+ token_info: tas.map([
154
+ { key: `0`, value: tas.bytes(`abc`) },
155
+ { key: `1`, value: tas.bytes(`def`) },
156
+ ]),
157
+ });
158
+ contract.methodsObject.create_token({
159
+ token_id: tas.nat(`100000000000000`),
160
+ token_info: tas.map({
161
+ 0: tas.bytes(`abc`),
162
+ 1: tas.bytes(`def`),
163
+ }),
164
+ });
165
+
166
+ };
167
+
168
+ export const exampleTypedOriginateStorageAndResultContract_wallet = async () => {
169
+
170
+ const Tezos = new TezosToolkit(`https://YOUR_PREFERRED_RPC_URL`)
171
+
172
+ // TODO: Remove this comment (leaving for debugging purposes for now)
173
+ // const contractObj = null as unknown as TestContract2;
174
+ // const storageResult = await contractObj.storage();
175
+ // const storageMethod = contractObj.storage;
176
+ // const storageReturnType = null as unknown as ReturnType<typeof contractObj['storage']>;
177
+ // type PromiseReturnType<T extends (...args: any) => any> = T extends (...args: any) => PromiseLike<infer R> ? R : any;
178
+ // const s0 = null as unknown as PromiseReturnType<TestContract2['storage']>;
179
+ // const s = null as unknown as ContractStorageType<TestContract2>;
180
+
181
+ const originationResult = await Tezos.wallet.originate<TestWallet2>({
182
+ code: ``,
183
+ // Require typed initial storage
184
+ storage: {
185
+ assets: {
186
+ ledger: tas.bigMap([
187
+ { key: { 0: tas.address('tz123'), 1: tas.nat(42) }, value:tas.nat(42) }
188
+ ]),
189
+ operators: tas.bigMap([]),
190
+ token_metadata: tas.bigMap([]),
191
+ token_total_supply: tas.bigMap([]),
192
+ },
193
+ metadata: tas.bigMap([]),
194
+ },
195
+ }).send();
196
+ // Originated contract is also typed
197
+ const contract = await originationResult.contract();
198
+ contract.methods.set_admin(tas.address(`tz123`));
199
+
200
+ contract.methods.create_token(
201
+ /*token_id:*/ tas.nat(`100000000000000`),
202
+ /*token_info:*/ tas.map([
203
+ { key: `0`, value: tas.bytes(`abc`) },
204
+ { key: `1`, value: tas.bytes(`def`) },
205
+ ]),
206
+ );
207
+ contract.methods.create_token(
208
+ /*token_id:*/ tas.nat(`100000000000000`),
209
+ /*token_info:*/ tas.map({
210
+ 0: tas.bytes(`abc`),
211
+ 1: tas.bytes(`def`),
212
+ }),
213
+ );
214
+
215
+ // methodsObject
216
+ contract.methodsObject.set_admin(tas.address(`tz123`));
217
+ contract.methodsObject.create_token({
218
+ token_id: tas.nat(`100000000000000`),
219
+ token_info: tas.map([
220
+ { key: `0`, value: tas.bytes(`abc`) },
221
+ { key: `1`, value: tas.bytes(`def`) },
222
+ ]),
223
+ });
224
+ contract.methodsObject.create_token({
225
+ token_id: tas.nat(`100000000000000`),
226
+ token_info: tas.map({
227
+ 0: tas.bytes(`abc`),
228
+ 1: tas.bytes(`def`),
229
+ }),
230
+ });
231
+
232
+ };
233
+
234
+
235
+ export const exampleTypedStorage_contract = async () => {
236
+
237
+ const Tezos = new TezosToolkit(`https://YOUR_PREFERRED_RPC_URL`)
238
+
239
+ const contract = await Tezos.contract.at<TestContract>(`tz123`);
240
+
241
+ const getAuctionInfo = async (id: nat) => {
242
+ const storage = await contract.storage();
243
+
244
+ const auctions = storage.auctions;
245
+ const auction = await auctions.get(id);
246
+ if (!auction) {
247
+ throw new Error(`Auction is missing`);
248
+ }
249
+ return auction;
250
+ };
251
+
252
+ const auctionId = tas.nat(42);
253
+
254
+ // Get current bid
255
+ const { current_bid } = await getAuctionInfo(auctionId);
256
+
257
+ // Make next bid
258
+ await (await contract.methods.bid(auctionId).send({
259
+ mutez: true,
260
+
261
+ // Not strictly typed yet
262
+ // amount: tas.add(current_bid, tas.mutez(1000)),
263
+ amount: tas.number(tas.add(current_bid, tas.mutez(1000))),
264
+ })).confirmation(100);
265
+
266
+ // Get current owner
267
+ const { highest_bidder } = await getAuctionInfo(auctionId);
268
+ const userAddress = await Tezos.wallet.pkh();
269
+
270
+ if (highest_bidder === userAddress) {
271
+ console.log(`You are the highest bidder!`);
272
+ }
273
+
274
+ };
275
+
276
+
277
+ export const exampleTypedStorage_wallet = async () => {
278
+
279
+ const Tezos = new TezosToolkit(`https://YOUR_PREFERRED_RPC_URL`)
280
+
281
+ const contract = await Tezos.wallet.at<TestWallet>(`tz123`);
282
+
283
+ const getAuctionInfo = async (id: nat) => {
284
+ const storage = await contract.storage();
285
+
286
+ const auctions = storage.auctions;
287
+ const auction = await auctions.get(id);
288
+ if (!auction) {
289
+ throw new Error(`Auction is missing`);
290
+ }
291
+ return auction;
292
+ };
293
+
294
+ const auctionId = tas.nat(42);
295
+
296
+ // Get current bid
297
+ const { current_bid } = await getAuctionInfo(auctionId);
298
+
299
+ // Make next bid
300
+ await (await contract.methods.bid(auctionId).send({
301
+ mutez: true,
302
+
303
+ // Not strictly typed yet
304
+ // amount: tas.add(current_bid, tas.mutez(1000)),
305
+ amount: tas.number(tas.add(current_bid, tas.mutez(1000))),
306
+ })).confirmation(100);
307
+
308
+ // Get current owner
309
+ const { highest_bidder } = await getAuctionInfo(auctionId);
310
+ const userAddress = await Tezos.wallet.pkh();
311
+
312
+ if (highest_bidder === userAddress) {
313
+ console.log(`You are the highest bidder!`);
314
+ }
315
+
316
+ };
317
+
318
+
319
+ export const exampleBatchOrigination_Contract = async () => {
320
+
321
+ const Tezos = new TezosToolkit(`https://YOUR_PREFERRED_RPC_URL`)
322
+
323
+ const batchOperation = Tezos.contract.batch()
324
+ // Untyped
325
+ .withOrigination(
326
+ {
327
+ code: ``,
328
+ // storage: any <-- NOT TYPED
329
+ storage: {
330
+ assets: {
331
+ not_valid: 42, // <-- no type error
332
+ ledger: tas.bigMap([
333
+ { key: { 0: tas.address('tz123'), 1: tas.nat(42) }, value:tas.nat(42) },
334
+ ]),
335
+ operators: tas.bigMap([]),
336
+ token_metadata: tas.bigMap([]),
337
+ token_total_supply: tas.bigMap([]),
338
+ },
339
+ metadata: tas.bigMap([]),
340
+ },
341
+ })
342
+ // Typed
343
+ .withOrigination<TestContract2>(
344
+ {
345
+ code: ``,
346
+ // storage <-- TYPED
347
+ storage: {
348
+ assets: {
349
+ // not_valid: 42, // <-- type error (uncomment to see)
350
+ ledger: tas.bigMap([
351
+ { key: { 0: tas.address('tz123'), 1: tas.nat(42) }, value:tas.nat(42) },
352
+ ]),
353
+ operators: tas.bigMap([]),
354
+ token_metadata: tas.bigMap([]),
355
+ token_total_supply: tas.bigMap([]),
356
+ },
357
+ metadata: tas.bigMap([]),
358
+ },
359
+ })
360
+ ;
361
+
362
+ await batchOperation.send();
363
+ };
364
+
365
+
366
+ export const exampleBatchOrigination_Wallet = async () => {
367
+
368
+ const Tezos = new TezosToolkit(`https://YOUR_PREFERRED_RPC_URL`)
369
+
370
+ const batchOperation = Tezos.wallet.batch()
371
+ // Untyped
372
+ .withOrigination(
373
+ {
374
+ code: ``,
375
+ // storage: any <-- NOT TYPED
376
+ storage: {
377
+ assets: {
378
+ not_valid: 42, // <-- no type error
379
+ ledger: tas.bigMap([
380
+ { key: { 0: tas.address('tz123'), 1: tas.nat(42) }, value:tas.nat(42) },
381
+ ]),
382
+ operators: tas.bigMap([]),
383
+ token_metadata: tas.bigMap([]),
384
+ token_total_supply: tas.bigMap([]),
385
+ },
386
+ metadata: tas.bigMap([]),
387
+ },
388
+ })
389
+ // Typed
390
+ .withOrigination<TestWallet2>(
391
+ {
392
+ code: ``,
393
+ // storage <-- TYPED
394
+ storage: {
395
+ assets: {
396
+ // not_valid: 42, // <-- type error (uncomment to see)
397
+ ledger: tas.bigMap([
398
+ { key: { 0: tas.address('tz123'), 1: tas.nat(42) }, value:tas.nat(42) },
399
+ ]),
400
+ operators: tas.bigMap([]),
401
+ token_metadata: tas.bigMap([]),
402
+ token_total_supply: tas.bigMap([]),
403
+ },
404
+ metadata: tas.bigMap([]),
405
+ },
406
+ })
407
+ ;
408
+
409
+ await batchOperation.send();
410
+ };
@@ -0,0 +1,6 @@
1
+
2
+ export const ExampleContract1Code: { __type: 'ExampleContract1Code', protocol: string, code: object[] } = {
3
+ __type: 'ExampleContract1Code',
4
+ protocol: 'PsDELPH1Kxsxt8f9eWbxQeRxkjfbxoqM52jvs5Y5fBxWWh4ifpo',
5
+ code: JSON.parse(`[{"prim":"parameter","args":[{"prim":"or","args":[{"prim":"or","args":[{"prim":"or","args":[{"prim":"or","annots":["%admin"],"args":[{"prim":"or","args":[{"prim":"unit","annots":["%confirm_admin"]},{"prim":"bool","annots":["%pause"]}]},{"prim":"address","annots":["%set_admin"]}]},{"prim":"nat","annots":["%bid"]}]},{"prim":"or","args":[{"prim":"nat","annots":["%cancel"]},{"prim":"pair","annots":["%configure"],"args":[{"prim":"mutez","annots":["%opening_price"]},{"prim":"pair","args":[{"prim":"nat","annots":["%min_raise_percent"]},{"prim":"pair","args":[{"prim":"mutez","annots":["%min_raise"]},{"prim":"pair","args":[{"prim":"nat","annots":["%round_time"]},{"prim":"pair","args":[{"prim":"nat","annots":["%extend_time"]},{"prim":"pair","args":[{"prim":"list","annots":["%asset"],"args":[{"prim":"pair","args":[{"prim":"address","annots":["%fa2_address"]},{"prim":"list","annots":["%fa2_batch"],"args":[{"prim":"pair","args":[{"prim":"nat","annots":["%token_id"]},{"prim":"nat","annots":["%amount"]}]}]}]}]},{"prim":"pair","args":[{"prim":"timestamp","annots":["%start_time"]},{"prim":"timestamp","annots":["%end_time"]}]}]}]}]}]}]}]}]}]},{"prim":"nat","annots":["%resolve"]}]}]},{"prim":"storage","args":[{"prim":"pair","args":[{"prim":"option","annots":["%pauseable_admin"],"args":[{"prim":"pair","args":[{"prim":"pair","args":[{"prim":"address","annots":["%admin"]},{"prim":"bool","annots":["%paused"]}]},{"prim":"option","annots":["%pending_admin"],"args":[{"prim":"address"}]}]}]},{"prim":"pair","args":[{"prim":"nat","annots":["%current_id"]},{"prim":"pair","args":[{"prim":"nat","annots":["%max_auction_time"]},{"prim":"pair","args":[{"prim":"nat","annots":["%max_config_to_start_time"]},{"prim":"big_map","annots":["%auctions"],"args":[{"prim":"nat"},{"prim":"pair","args":[{"prim":"address","annots":["%seller"]},{"prim":"pair","args":[{"prim":"mutez","annots":["%current_bid"]},{"prim":"pair","args":[{"prim":"timestamp","annots":["%start_time"]},{"prim":"pair","args":[{"prim":"timestamp","annots":["%last_bid_time"]},{"prim":"pair","args":[{"prim":"int","annots":["%round_time"]},{"prim":"pair","args":[{"prim":"int","annots":["%extend_time"]},{"prim":"pair","args":[{"prim":"list","annots":["%asset"],"args":[{"prim":"pair","args":[{"prim":"address","annots":["%fa2_address"]},{"prim":"list","annots":["%fa2_batch"],"args":[{"prim":"pair","args":[{"prim":"nat","annots":["%token_id"]},{"prim":"nat","annots":["%amount"]}]}]}]}]},{"prim":"pair","args":[{"prim":"nat","annots":["%min_raise_percent"]},{"prim":"pair","args":[{"prim":"mutez","annots":["%min_raise"]},{"prim":"pair","args":[{"prim":"timestamp","annots":["%end_time"]},{"prim":"address","annots":["%highest_bidder"]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]},{"prim":"code","args":[[{"prim":"LAMBDA","args":[{"prim":"option","args":[{"prim":"pair","args":[{"prim":"pair","args":[{"prim":"address"},{"prim":"bool"}]},{"prim":"option","args":[{"prim":"address"}]}]}]},{"prim":"lambda","args":[{"prim":"option","args":[{"prim":"string"}]},{"prim":"unit"}]},[{"prim":"LAMBDA","args":[{"prim":"pair","args":[{"prim":"option","args":[{"prim":"pair","args":[{"prim":"pair","args":[{"prim":"address"},{"prim":"bool"}]},{"prim":"option","args":[{"prim":"address"}]}]}]},{"prim":"option","args":[{"prim":"string"}]}]},{"prim":"unit"},[{"prim":"DUP"},{"prim":"CDR"},{"prim":"SWAP"},{"prim":"CAR"},{"prim":"IF_NONE","args":[[{"prim":"DROP"},{"prim":"UNIT"}],[{"prim":"CAR"},{"prim":"CAR"},{"prim":"SENDER"},{"prim":"COMPARE"},{"prim":"NEQ"},{"prim":"IF","args":[[{"prim":"IF_NONE","args":[[{"prim":"PUSH","args":[{"prim":"string"},{"string":"NOT_AN_ADMIN"}]},{"prim":"FAILWITH"}],[{"prim":"PUSH","args":[{"prim":"string"},{"string":" "}]},{"prim":"CONCAT"},{"prim":"PUSH","args":[{"prim":"string"},{"string":"NOT_AN_ADMIN"}]},{"prim":"CONCAT"},{"prim":"FAILWITH"}]]}],[{"prim":"DROP"},{"prim":"UNIT"}]]}]]}]]},{"prim":"SWAP"},{"prim":"APPLY"}]]},{"prim":"LAMBDA","args":[{"prim":"option","args":[{"prim":"pair","args":[{"prim":"pair","args":[{"prim":"address"},{"prim":"bool"}]},{"prim":"option","args":[{"prim":"address"}]}]}]},{"prim":"unit"},[{"prim":"IF_NONE","args":[[{"prim":"UNIT"}],[{"prim":"CAR"},{"prim":"CDR"},{"prim":"IF","args":[[{"prim":"PUSH","args":[{"prim":"string"},{"string":"PAUSED"}]},{"prim":"FAILWITH"}],[{"prim":"UNIT"}]]}]]}]]},{"prim":"LAMBDA","args":[{"prim":"pair","args":[{"prim":"bool"},{"prim":"string"}]},{"prim":"unit"},[[[{"prim":"DUP"},{"prim":"CAR"},{"prim":"DIP","args":[[{"prim":"CDR"}]]}]],{"prim":"NOT"},{"prim":"IF","args":[[{"prim":"FAILWITH"}],[{"prim":"DROP"},{"prim":"UNIT"}]]}]]},{"prim":"LAMBDA","args":[{"prim":"pair","args":[{"prim":"pair","args":[{"prim":"list","args":[{"prim":"pair","args":[{"prim":"address"},{"prim":"list","args":[{"prim":"pair","args":[{"prim":"nat"},{"prim":"nat"}]}]}]}]},{"prim":"address"}]},{"prim":"address"}]},{"prim":"list","args":[{"prim":"operation"}]},[[[{"prim":"DUP"},{"prim":"CAR"},{"prim":"DIP","args":[[{"prim":"CDR"}]]}]],[[{"prim":"DUP"},{"prim":"CAR"},{"prim":"DIP","args":[[{"prim":"CDR"}]]}]],{"prim":"MAP","args":[[{"prim":"DIG","args":[{"int":"2"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"3"}]},{"prim":"DIG","args":[{"int":"2"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"3"}]},{"prim":"PAIR"},{"prim":"LAMBDA","args":[{"prim":"pair","args":[{"prim":"pair","args":[{"prim":"address"},{"prim":"address"}]},{"prim":"pair","args":[{"prim":"address"},{"prim":"list","args":[{"prim":"pair","args":[{"prim":"nat"},{"prim":"nat"}]}]}]}]},{"prim":"operation"},[{"prim":"DUP"},{"prim":"CDR"},{"prim":"SWAP"},{"prim":"CAR"},{"prim":"DUP"},{"prim":"CDR"},{"prim":"SWAP"},{"prim":"CAR"},{"prim":"DIG","args":[{"int":"2"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"3"}]},{"prim":"CDR"},{"prim":"MAP","args":[[{"prim":"DIG","args":[{"int":"2"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"3"}]},{"prim":"PAIR"}]]},{"prim":"DIG","args":[{"int":"2"}]},{"prim":"DROP"},{"prim":"NIL","args":[{"prim":"pair","args":[{"prim":"address"},{"prim":"list","args":[{"prim":"pair","args":[{"prim":"address"},{"prim":"pair","args":[{"prim":"nat"},{"prim":"nat"}]}]}]}]}]},{"prim":"SWAP"},{"prim":"DIG","args":[{"int":"2"}]},{"prim":"PAIR"},{"prim":"CONS"},{"prim":"SWAP"},{"prim":"CAR"},{"prim":"CONTRACT","annots":["%transfer"],"args":[{"prim":"list","args":[{"prim":"pair","args":[{"prim":"address","annots":["%from_"]},{"prim":"list","annots":["%txs"],"args":[{"prim":"pair","args":[{"prim":"address","annots":["%to_"]},{"prim":"pair","args":[{"prim":"nat","annots":["%token_id"]},{"prim":"nat","annots":["%amount"]}]}]}]}]}]}]},{"prim":"IF_NONE","args":[[{"prim":"PUSH","args":[{"prim":"string"},{"string":"Invalid FA2 Address"}]},{"prim":"FAILWITH"}],[]]},{"prim":"PUSH","args":[{"prim":"mutez"},{"int":"0"}]},{"prim":"DIG","args":[{"int":"2"}]},{"prim":"TRANSFER_TOKENS"}]]},{"prim":"SWAP"},{"prim":"APPLY"},{"prim":"SWAP"},{"prim":"EXEC"}]]},{"prim":"SWAP"},{"prim":"DROP"},{"prim":"SWAP"},{"prim":"DROP"}]]},{"prim":"LAMBDA","args":[{"prim":"pair","args":[{"prim":"nat"},{"prim":"pair","args":[{"prim":"option","args":[{"prim":"pair","args":[{"prim":"pair","args":[{"prim":"address"},{"prim":"bool"}]},{"prim":"option","args":[{"prim":"address"}]}]}]},{"prim":"pair","args":[{"prim":"nat"},{"prim":"pair","args":[{"prim":"nat"},{"prim":"pair","args":[{"prim":"nat"},{"prim":"big_map","args":[{"prim":"nat"},{"prim":"pair","args":[{"prim":"address"},{"prim":"pair","args":[{"prim":"mutez"},{"prim":"pair","args":[{"prim":"timestamp"},{"prim":"pair","args":[{"prim":"timestamp"},{"prim":"pair","args":[{"prim":"int"},{"prim":"pair","args":[{"prim":"int"},{"prim":"pair","args":[{"prim":"list","args":[{"prim":"pair","args":[{"prim":"address"},{"prim":"list","args":[{"prim":"pair","args":[{"prim":"nat"},{"prim":"nat"}]}]}]}]},{"prim":"pair","args":[{"prim":"nat"},{"prim":"pair","args":[{"prim":"mutez"},{"prim":"pair","args":[{"prim":"timestamp"},{"prim":"address"}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]},{"prim":"pair","args":[{"prim":"address"},{"prim":"pair","args":[{"prim":"mutez"},{"prim":"pair","args":[{"prim":"timestamp"},{"prim":"pair","args":[{"prim":"timestamp"},{"prim":"pair","args":[{"prim":"int"},{"prim":"pair","args":[{"prim":"int"},{"prim":"pair","args":[{"prim":"list","args":[{"prim":"pair","args":[{"prim":"address"},{"prim":"list","args":[{"prim":"pair","args":[{"prim":"nat"},{"prim":"nat"}]}]}]}]},{"prim":"pair","args":[{"prim":"nat"},{"prim":"pair","args":[{"prim":"mutez"},{"prim":"pair","args":[{"prim":"timestamp"},{"prim":"address"}]}]}]}]}]}]}]}]}]}]},[[[{"prim":"DUP"},{"prim":"CAR"},{"prim":"DIP","args":[[{"prim":"CDR"}]]}]],{"prim":"SWAP"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"SWAP"},{"prim":"GET"},{"prim":"IF_NONE","args":[[{"prim":"PUSH","args":[{"prim":"string"},{"string":"Auction does not exist for given asset_id"}]},{"prim":"FAILWITH"}],[]]}]]},{"prim":"LAMBDA","args":[{"prim":"address"},{"prim":"contract","args":[{"prim":"unit"}]},[{"prim":"CONTRACT","args":[{"prim":"unit"}]},{"prim":"IF_NONE","args":[[{"prim":"PUSH","args":[{"prim":"string"},{"string":"Return address does not resolve to contract"}]},{"prim":"FAILWITH"}],[]]}]]},{"prim":"LAMBDA","args":[{"prim":"pair","args":[{"prim":"address"},{"prim":"pair","args":[{"prim":"mutez"},{"prim":"pair","args":[{"prim":"timestamp"},{"prim":"pair","args":[{"prim":"timestamp"},{"prim":"pair","args":[{"prim":"int"},{"prim":"pair","args":[{"prim":"int"},{"prim":"pair","args":[{"prim":"list","args":[{"prim":"pair","args":[{"prim":"address"},{"prim":"list","args":[{"prim":"pair","args":[{"prim":"nat"},{"prim":"nat"}]}]}]}]},{"prim":"pair","args":[{"prim":"nat"},{"prim":"pair","args":[{"prim":"mutez"},{"prim":"pair","args":[{"prim":"timestamp"},{"prim":"address"}]}]}]}]}]}]}]}]}]}]},{"prim":"bool"},[{"prim":"DUP"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CAR"},{"prim":"SWAP"},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"2"}]},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CAR"},{"prim":"ADD"},{"prim":"NOW"},{"prim":"COMPARE"},{"prim":"GT"},{"prim":"SWAP"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CAR"},{"prim":"NOW"},{"prim":"COMPARE"},{"prim":"GE"},{"prim":"OR"}]]},{"prim":"DIG","args":[{"int":"7"}]},[[{"prim":"DUP"},{"prim":"CAR"},{"prim":"DIP","args":[[{"prim":"CDR"}]]}]],{"prim":"IF_LEFT","args":[[{"prim":"IF_LEFT","args":[[{"prim":"DIG","args":[{"int":"5"}]},{"prim":"DROP"},{"prim":"IF_LEFT","args":[[{"prim":"DIG","args":[{"int":"2"}]},{"prim":"DROP"},{"prim":"DIG","args":[{"int":"2"}]},{"prim":"DROP"},{"prim":"DIG","args":[{"int":"2"}]},{"prim":"DROP"},{"prim":"DIG","args":[{"int":"3"}]},{"prim":"DROP"},{"prim":"PUSH","args":[{"prim":"string"},{"string":"Amount must be 0mutez"}]},{"prim":"PUSH","args":[{"prim":"mutez"},{"int":"0"}]},{"prim":"AMOUNT"},{"prim":"COMPARE"},{"prim":"EQ"},{"prim":"PAIR"},{"prim":"DIG","args":[{"int":"3"}]},{"prim":"SWAP"},{"prim":"EXEC"},{"prim":"DROP"},{"prim":"SWAP"},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"2"}]},{"prim":"CAR"},{"prim":"SWAP"},{"prim":"IF_LEFT","args":[[{"prim":"IF_LEFT","args":[[{"prim":"DROP"},{"prim":"DIG","args":[{"int":"2"}]},{"prim":"DROP"},{"prim":"IF_NONE","args":[[{"prim":"PUSH","args":[{"prim":"string"},{"string":"NO_ADMIN_CAPABILITIES_CONFIGURED"}]},{"prim":"FAILWITH"}],[{"prim":"DUP"},{"prim":"CDR"},{"prim":"IF_NONE","args":[[{"prim":"DROP"},{"prim":"PUSH","args":[{"prim":"string"},{"string":"NO_PENDING_ADMIN"}]},{"prim":"FAILWITH"}],[{"prim":"SENDER"},{"prim":"COMPARE"},{"prim":"EQ"},{"prim":"IF","args":[[{"prim":"NONE","args":[{"prim":"address"}]},{"prim":"SWAP"},{"prim":"CAR"},{"prim":"CDR"},{"prim":"SENDER"},{"prim":"PAIR"},{"prim":"PAIR"},{"prim":"SOME"}],[{"prim":"DROP"},{"prim":"PUSH","args":[{"prim":"string"},{"string":"NOT_A_PENDING_ADMIN"}]},{"prim":"FAILWITH"}]]}]]}]]},{"prim":"NIL","args":[{"prim":"operation"}]},{"prim":"PAIR"}],[{"prim":"SWAP"},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"2"}]},{"prim":"DIG","args":[{"int":"4"}]},{"prim":"SWAP"},{"prim":"EXEC"},{"prim":"DROP"},{"prim":"SWAP"},{"prim":"IF_NONE","args":[[{"prim":"DROP"},{"prim":"PUSH","args":[{"prim":"string"},{"string":"NO_ADMIN_CAPABILITIES_CONFIGURED"}]},{"prim":"FAILWITH"}],[{"prim":"DUP"},{"prim":"CDR"},{"prim":"DUG","args":[{"int":"2"}]},{"prim":"CAR"},{"prim":"CAR"},{"prim":"PAIR"},{"prim":"PAIR"},{"prim":"SOME"}]]},{"prim":"NIL","args":[{"prim":"operation"}]},{"prim":"PAIR"}]]}],[{"prim":"SWAP"},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"2"}]},{"prim":"DIG","args":[{"int":"4"}]},{"prim":"SWAP"},{"prim":"EXEC"},{"prim":"DROP"},{"prim":"SWAP"},{"prim":"IF_NONE","args":[[{"prim":"DROP"},{"prim":"PUSH","args":[{"prim":"string"},{"string":"NO_ADMIN_CAPABILITIES_CONFIGURED"}]},{"prim":"FAILWITH"}],[{"prim":"SWAP"},{"prim":"SOME"},{"prim":"SWAP"},{"prim":"CAR"},{"prim":"PAIR"},{"prim":"SOME"}]]},{"prim":"NIL","args":[{"prim":"operation"}]},{"prim":"PAIR"}]]},[[{"prim":"DUP"},{"prim":"CAR"},{"prim":"DIP","args":[[{"prim":"CDR"}]]}]],{"prim":"DIG","args":[{"int":"2"}]},{"prim":"CDR"},{"prim":"DIG","args":[{"int":"2"}]},{"prim":"PAIR"},{"prim":"SWAP"},{"prim":"PAIR"}],[{"prim":"DIG","args":[{"int":"7"}]},{"prim":"DROP"},{"prim":"SWAP"},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"2"}]},{"prim":"SWAP"},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"2"}]},{"prim":"PAIR"},{"prim":"DIG","args":[{"int":"5"}]},{"prim":"SWAP"},{"prim":"EXEC"},{"prim":"PUSH","args":[{"prim":"string"},{"string":"Bidder must be an implicit account"}]},{"prim":"SOURCE"},{"prim":"SENDER"},{"prim":"COMPARE"},{"prim":"EQ"},{"prim":"PAIR"},{"prim":"DIG","args":[{"int":"6"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"7"}]},{"prim":"SWAP"},{"prim":"EXEC"},{"prim":"DROP"},{"prim":"DIG","args":[{"int":"2"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"3"}]},{"prim":"CAR"},{"prim":"DIG","args":[{"int":"7"}]},{"prim":"SWAP"},{"prim":"EXEC"},{"prim":"DROP"},{"prim":"PUSH","args":[{"prim":"string"},{"string":"Auction must be in progress"}]},{"prim":"SWAP"},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"2"}]},{"prim":"DIG","args":[{"int":"5"}]},{"prim":"SWAP"},{"prim":"EXEC"},{"prim":"NOT"},{"prim":"DIG","args":[{"int":"2"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"3"}]},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CAR"},{"prim":"NOW"},{"prim":"COMPARE"},{"prim":"GE"},{"prim":"AND"},{"prim":"PAIR"},{"prim":"DIG","args":[{"int":"5"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"6"}]},{"prim":"SWAP"},{"prim":"EXEC"},{"prim":"DROP"},{"prim":"PUSH","args":[{"prim":"string"},{"string":"Seller cannot place a bid"}]},{"prim":"SWAP"},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"2"}]},{"prim":"CAR"},{"prim":"SENDER"},{"prim":"COMPARE"},{"prim":"NEQ"},{"prim":"PAIR"},{"prim":"DIG","args":[{"int":"5"}]},{"prim":"SWAP"},{"prim":"EXEC"},{"prim":"DROP"},{"prim":"DUP"},{"prim":"CAR"},{"prim":"SWAP"},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"2"}]},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"COMPARE"},{"prim":"EQ"},{"prim":"SWAP"},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"2"}]},{"prim":"CDR"},{"prim":"CAR"},{"prim":"AMOUNT"},{"prim":"COMPARE"},{"prim":"GE"},{"prim":"AND"},{"prim":"SWAP"},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"2"}]},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CAR"},{"prim":"DIG","args":[{"int":"2"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"3"}]},{"prim":"CDR"},{"prim":"CAR"},{"prim":"ADD"},{"prim":"AMOUNT"},{"prim":"COMPARE"},{"prim":"GE"},{"prim":"PUSH","args":[{"prim":"nat"},{"int":"100"}]},{"prim":"DIG","args":[{"int":"3"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"4"}]},{"prim":"CDR"},{"prim":"CAR"},{"prim":"DIG","args":[{"int":"4"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"5"}]},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CAR"},{"prim":"MUL"},{"prim":"EDIV"},{"prim":"IF_NONE","args":[[{"prim":"PUSH","args":[{"prim":"string"},{"string":"DIVISION_BY_ZERO"}]},{"prim":"FAILWITH"}],[[[{"prim":"DUP"},{"prim":"CAR"},{"prim":"DIP","args":[[{"prim":"CDR"}]]}]],{"prim":"PUSH","args":[{"prim":"mutez"},{"int":"0"}]},{"prim":"DIG","args":[{"int":"2"}]},{"prim":"COMPARE"},{"prim":"GT"},{"prim":"IF","args":[[{"prim":"PUSH","args":[{"prim":"mutez"},{"int":"1"}]},{"prim":"ADD"}],[]]}]]},{"prim":"DIG","args":[{"int":"3"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"4"}]},{"prim":"CDR"},{"prim":"CAR"},{"prim":"ADD"},{"prim":"AMOUNT"},{"prim":"COMPARE"},{"prim":"GE"},{"prim":"OR"},{"prim":"OR"},{"prim":"NOT"},{"prim":"IF","args":[[{"prim":"NOW"},{"prim":"SWAP"},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"2"}]},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CAR"},{"prim":"DIG","args":[{"int":"2"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"3"}]},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"PAIR"},{"prim":"AMOUNT"},{"prim":"DIG","args":[{"int":"3"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"4"}]},{"prim":"CDR"},{"prim":"CAR"},{"prim":"PAIR"},{"prim":"PAIR"},{"prim":"PAIR"},{"prim":"PUSH","args":[{"prim":"string"},{"string":"Invalid Bid amount"}]},{"prim":"PAIR"},{"prim":"FAILWITH"}],[]]},{"prim":"DUP"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"DIG","args":[{"int":"4"}]},{"prim":"SWAP"},{"prim":"EXEC"},{"prim":"SWAP"},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"2"}]},{"prim":"CDR"},{"prim":"CAR"},{"prim":"UNIT"},{"prim":"TRANSFER_TOKENS"},{"prim":"SWAP"},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"2"}]},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CAR"},{"prim":"NOW"},{"prim":"DIG","args":[{"int":"3"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"4"}]},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CAR"},{"prim":"SUB"},{"prim":"COMPARE"},{"prim":"LE"},{"prim":"IF","args":[[{"prim":"SWAP"},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"2"}]},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CAR"},{"prim":"NOW"},{"prim":"ADD"}],[{"prim":"SWAP"},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"2"}]},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CAR"}]]},{"prim":"DIG","args":[{"int":"2"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"3"}]},{"prim":"CDR"},{"prim":"CDR"},{"prim":"AMOUNT"},{"prim":"PAIR"},{"prim":"DIG","args":[{"int":"3"}]},{"prim":"CAR"},{"prim":"PAIR"},{"prim":"SENDER"},{"prim":"SWAP"},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"2"}]},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CAR"},{"prim":"PAIR"},{"prim":"SWAP"},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"2"}]},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CAR"},{"prim":"PAIR"},{"prim":"SWAP"},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"2"}]},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CAR"},{"prim":"PAIR"},{"prim":"SWAP"},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"2"}]},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CAR"},{"prim":"PAIR"},{"prim":"SWAP"},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"2"}]},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CAR"},{"prim":"PAIR"},{"prim":"SWAP"},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"2"}]},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CAR"},{"prim":"PAIR"},{"prim":"SWAP"},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"2"}]},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CAR"},{"prim":"PAIR"},{"prim":"SWAP"},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"2"}]},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CAR"},{"prim":"PAIR"},{"prim":"SWAP"},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"2"}]},{"prim":"CDR"},{"prim":"CAR"},{"prim":"PAIR"},{"prim":"SWAP"},{"prim":"CAR"},{"prim":"PAIR"},{"prim":"DUP"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"NOW"},{"prim":"PAIR"},{"prim":"SWAP"},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"2"}]},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CAR"},{"prim":"PAIR"},{"prim":"SWAP"},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"2"}]},{"prim":"CDR"},{"prim":"CAR"},{"prim":"PAIR"},{"prim":"SWAP"},{"prim":"CAR"},{"prim":"PAIR"},{"prim":"DUP"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"DIG","args":[{"int":"2"}]},{"prim":"PAIR"},{"prim":"SWAP"},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"2"}]},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CAR"},{"prim":"PAIR"},{"prim":"SWAP"},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"2"}]},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CAR"},{"prim":"PAIR"},{"prim":"SWAP"},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"2"}]},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CAR"},{"prim":"PAIR"},{"prim":"SWAP"},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"2"}]},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CAR"},{"prim":"PAIR"},{"prim":"SWAP"},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"2"}]},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CAR"},{"prim":"PAIR"},{"prim":"SWAP"},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"2"}]},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CAR"},{"prim":"PAIR"},{"prim":"SWAP"},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"2"}]},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CAR"},{"prim":"PAIR"},{"prim":"SWAP"},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"2"}]},{"prim":"CDR"},{"prim":"CAR"},{"prim":"PAIR"},{"prim":"SWAP"},{"prim":"CAR"},{"prim":"PAIR"},{"prim":"DIG","args":[{"int":"3"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"4"}]},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"SWAP"},{"prim":"SOME"},{"prim":"DIG","args":[{"int":"3"}]},{"prim":"UPDATE"},{"prim":"DIG","args":[{"int":"2"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"3"}]},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CAR"},{"prim":"PAIR"},{"prim":"DIG","args":[{"int":"2"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"3"}]},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CAR"},{"prim":"PAIR"},{"prim":"DIG","args":[{"int":"2"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"3"}]},{"prim":"CDR"},{"prim":"CAR"},{"prim":"PAIR"},{"prim":"DIG","args":[{"int":"2"}]},{"prim":"CAR"},{"prim":"PAIR"},{"prim":"NIL","args":[{"prim":"operation"}]},{"prim":"DIG","args":[{"int":"2"}]},{"prim":"CONS"},{"prim":"PAIR"}]]}],[{"prim":"IF_LEFT","args":[[{"prim":"DIG","args":[{"int":"8"}]},{"prim":"DROP"},{"prim":"SWAP"},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"2"}]},{"prim":"CAR"},{"prim":"DIG","args":[{"int":"8"}]},{"prim":"SWAP"},{"prim":"EXEC"},{"prim":"DROP"},{"prim":"SWAP"},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"2"}]},{"prim":"SWAP"},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"2"}]},{"prim":"PAIR"},{"prim":"DIG","args":[{"int":"5"}]},{"prim":"SWAP"},{"prim":"EXEC"},{"prim":"PUSH","args":[{"prim":"string"},{"string":"Only seller can cancel auction"}]},{"prim":"SWAP"},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"2"}]},{"prim":"CAR"},{"prim":"SENDER"},{"prim":"COMPARE"},{"prim":"EQ"},{"prim":"PAIR"},{"prim":"DIG","args":[{"int":"7"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"8"}]},{"prim":"SWAP"},{"prim":"EXEC"},{"prim":"DROP"},{"prim":"PUSH","args":[{"prim":"string"},{"string":"Auction must not have ended"}]},{"prim":"SWAP"},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"2"}]},{"prim":"DIG","args":[{"int":"5"}]},{"prim":"SWAP"},{"prim":"EXEC"},{"prim":"NOT"},{"prim":"PAIR"},{"prim":"DIG","args":[{"int":"6"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"7"}]},{"prim":"SWAP"},{"prim":"EXEC"},{"prim":"DROP"},{"prim":"PUSH","args":[{"prim":"string"},{"string":"Amount must be 0mutez"}]},{"prim":"PUSH","args":[{"prim":"mutez"},{"int":"0"}]},{"prim":"AMOUNT"},{"prim":"COMPARE"},{"prim":"EQ"},{"prim":"PAIR"},{"prim":"DIG","args":[{"int":"6"}]},{"prim":"SWAP"},{"prim":"EXEC"},{"prim":"DROP"},{"prim":"DUP"},{"prim":"CAR"},{"prim":"SELF_ADDRESS"},{"prim":"DIG","args":[{"int":"2"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"3"}]},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CAR"},{"prim":"PAIR"},{"prim":"PAIR"},{"prim":"DIG","args":[{"int":"5"}]},{"prim":"SWAP"},{"prim":"EXEC"},{"prim":"SWAP"},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"2"}]},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"DIG","args":[{"int":"5"}]},{"prim":"SWAP"},{"prim":"EXEC"},{"prim":"DIG","args":[{"int":"2"}]},{"prim":"CDR"},{"prim":"CAR"},{"prim":"UNIT"},{"prim":"TRANSFER_TOKENS"},{"prim":"DIG","args":[{"int":"3"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"4"}]},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"DIG","args":[{"int":"3"}]},{"prim":"NONE","args":[{"prim":"pair","args":[{"prim":"address"},{"prim":"pair","args":[{"prim":"mutez"},{"prim":"pair","args":[{"prim":"timestamp"},{"prim":"pair","args":[{"prim":"timestamp"},{"prim":"pair","args":[{"prim":"int"},{"prim":"pair","args":[{"prim":"int"},{"prim":"pair","args":[{"prim":"list","args":[{"prim":"pair","args":[{"prim":"address"},{"prim":"list","args":[{"prim":"pair","args":[{"prim":"nat"},{"prim":"nat"}]}]}]}]},{"prim":"pair","args":[{"prim":"nat"},{"prim":"pair","args":[{"prim":"mutez"},{"prim":"pair","args":[{"prim":"timestamp"},{"prim":"address"}]}]}]}]}]}]}]}]}]}]}]},{"prim":"SWAP"},{"prim":"UPDATE"},{"prim":"DIG","args":[{"int":"3"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"4"}]},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CAR"},{"prim":"PAIR"},{"prim":"DIG","args":[{"int":"3"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"4"}]},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CAR"},{"prim":"PAIR"},{"prim":"DIG","args":[{"int":"3"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"4"}]},{"prim":"CDR"},{"prim":"CAR"},{"prim":"PAIR"},{"prim":"DIG","args":[{"int":"3"}]},{"prim":"CAR"},{"prim":"PAIR"},{"prim":"DUG","args":[{"int":"2"}]},{"prim":"CONS"},{"prim":"PAIR"}],[{"prim":"DIG","args":[{"int":"2"}]},{"prim":"DROP"},{"prim":"DIG","args":[{"int":"2"}]},{"prim":"DROP"},{"prim":"DIG","args":[{"int":"2"}]},{"prim":"DROP"},{"prim":"NONE","args":[{"prim":"string"}]},{"prim":"DIG","args":[{"int":"2"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"3"}]},{"prim":"CAR"},{"prim":"DIG","args":[{"int":"7"}]},{"prim":"SWAP"},{"prim":"EXEC"},{"prim":"SWAP"},{"prim":"EXEC"},{"prim":"DROP"},{"prim":"SWAP"},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"2"}]},{"prim":"CAR"},{"prim":"DIG","args":[{"int":"5"}]},{"prim":"SWAP"},{"prim":"EXEC"},{"prim":"DROP"},{"prim":"PUSH","args":[{"prim":"string"},{"string":"end_time must be after start_time"}]},{"prim":"SWAP"},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"2"}]},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CAR"},{"prim":"DIG","args":[{"int":"2"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"3"}]},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"COMPARE"},{"prim":"GT"},{"prim":"PAIR"},{"prim":"DIG","args":[{"int":"4"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"5"}]},{"prim":"SWAP"},{"prim":"EXEC"},{"prim":"DROP"},{"prim":"PUSH","args":[{"prim":"string"},{"string":"Auction time must be less than max_auction_time"}]},{"prim":"DIG","args":[{"int":"2"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"3"}]},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CAR"},{"prim":"DIG","args":[{"int":"2"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"3"}]},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CAR"},{"prim":"DIG","args":[{"int":"3"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"4"}]},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"SUB"},{"prim":"ABS"},{"prim":"COMPARE"},{"prim":"LE"},{"prim":"PAIR"},{"prim":"DIG","args":[{"int":"4"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"5"}]},{"prim":"SWAP"},{"prim":"EXEC"},{"prim":"DROP"},{"prim":"PUSH","args":[{"prim":"string"},{"string":"Start_time must not have already passed"}]},{"prim":"NOW"},{"prim":"DIG","args":[{"int":"2"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"3"}]},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CAR"},{"prim":"COMPARE"},{"prim":"GE"},{"prim":"PAIR"},{"prim":"DIG","args":[{"int":"4"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"5"}]},{"prim":"SWAP"},{"prim":"EXEC"},{"prim":"DROP"},{"prim":"PUSH","args":[{"prim":"string"},{"string":"start_time must not be greater than the sum of current time and max_config_to_start_time"}]},{"prim":"DIG","args":[{"int":"2"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"3"}]},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CAR"},{"prim":"NOW"},{"prim":"DIG","args":[{"int":"3"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"4"}]},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CAR"},{"prim":"SUB"},{"prim":"ABS"},{"prim":"COMPARE"},{"prim":"LE"},{"prim":"PAIR"},{"prim":"DIG","args":[{"int":"4"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"5"}]},{"prim":"SWAP"},{"prim":"EXEC"},{"prim":"DROP"},{"prim":"PUSH","args":[{"prim":"string"},{"string":"Opening price must be greater than 0mutez"}]},{"prim":"PUSH","args":[{"prim":"mutez"},{"int":"0"}]},{"prim":"DIG","args":[{"int":"2"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"3"}]},{"prim":"CAR"},{"prim":"COMPARE"},{"prim":"GT"},{"prim":"PAIR"},{"prim":"DIG","args":[{"int":"4"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"5"}]},{"prim":"SWAP"},{"prim":"EXEC"},{"prim":"DROP"},{"prim":"PUSH","args":[{"prim":"string"},{"string":"Amount must be equal to opening_price"}]},{"prim":"SWAP"},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"2"}]},{"prim":"CAR"},{"prim":"AMOUNT"},{"prim":"COMPARE"},{"prim":"EQ"},{"prim":"PAIR"},{"prim":"DIG","args":[{"int":"4"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"5"}]},{"prim":"SWAP"},{"prim":"EXEC"},{"prim":"DROP"},{"prim":"PUSH","args":[{"prim":"string"},{"string":"Round_time must be greater than 0 seconds"}]},{"prim":"PUSH","args":[{"prim":"nat"},{"int":"0"}]},{"prim":"DIG","args":[{"int":"2"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"3"}]},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CAR"},{"prim":"COMPARE"},{"prim":"GT"},{"prim":"PAIR"},{"prim":"DIG","args":[{"int":"4"}]},{"prim":"SWAP"},{"prim":"EXEC"},{"prim":"DROP"},{"prim":"SENDER"},{"prim":"SWAP"},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"2"}]},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"PAIR"},{"prim":"SWAP"},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"2"}]},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CAR"},{"prim":"PAIR"},{"prim":"SWAP"},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"2"}]},{"prim":"CDR"},{"prim":"CAR"},{"prim":"PAIR"},{"prim":"SWAP"},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"2"}]},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CAR"},{"prim":"PAIR"},{"prim":"SWAP"},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"2"}]},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CAR"},{"prim":"INT"},{"prim":"PAIR"},{"prim":"SWAP"},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"2"}]},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CAR"},{"prim":"INT"},{"prim":"PAIR"},{"prim":"SWAP"},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"2"}]},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CAR"},{"prim":"PAIR"},{"prim":"SWAP"},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"2"}]},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CAR"},{"prim":"PAIR"},{"prim":"SWAP"},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"2"}]},{"prim":"CAR"},{"prim":"PAIR"},{"prim":"SENDER"},{"prim":"PAIR"},{"prim":"SELF_ADDRESS"},{"prim":"SENDER"},{"prim":"DIG","args":[{"int":"3"}]},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CAR"},{"prim":"PAIR"},{"prim":"PAIR"},{"prim":"DIG","args":[{"int":"3"}]},{"prim":"SWAP"},{"prim":"EXEC"},{"prim":"DIG","args":[{"int":"2"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"3"}]},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"DIG","args":[{"int":"2"}]},{"prim":"SOME"},{"prim":"DIG","args":[{"int":"3"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"4"}]},{"prim":"CDR"},{"prim":"CAR"},{"prim":"UPDATE"},{"prim":"DIG","args":[{"int":"2"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"3"}]},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CAR"},{"prim":"PAIR"},{"prim":"DIG","args":[{"int":"2"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"3"}]},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CAR"},{"prim":"PAIR"},{"prim":"DIG","args":[{"int":"2"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"3"}]},{"prim":"CDR"},{"prim":"CAR"},{"prim":"PAIR"},{"prim":"DIG","args":[{"int":"2"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"3"}]},{"prim":"CAR"},{"prim":"PAIR"},{"prim":"DUP"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"PUSH","args":[{"prim":"nat"},{"int":"1"}]},{"prim":"DIG","args":[{"int":"4"}]},{"prim":"CDR"},{"prim":"CAR"},{"prim":"ADD"},{"prim":"PAIR"},{"prim":"SWAP"},{"prim":"CAR"},{"prim":"PAIR"},{"prim":"SWAP"},{"prim":"PAIR"}]]}]]}],[{"prim":"DIG","args":[{"int":"8"}]},{"prim":"DROP"},{"prim":"SWAP"},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"2"}]},{"prim":"CAR"},{"prim":"DIG","args":[{"int":"8"}]},{"prim":"SWAP"},{"prim":"EXEC"},{"prim":"DROP"},{"prim":"SWAP"},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"2"}]},{"prim":"SWAP"},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"2"}]},{"prim":"PAIR"},{"prim":"DIG","args":[{"int":"5"}]},{"prim":"SWAP"},{"prim":"EXEC"},{"prim":"PUSH","args":[{"prim":"string"},{"string":"Auction must have ended"}]},{"prim":"SWAP"},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"2"}]},{"prim":"DIG","args":[{"int":"5"}]},{"prim":"SWAP"},{"prim":"EXEC"},{"prim":"PAIR"},{"prim":"DIG","args":[{"int":"6"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"7"}]},{"prim":"SWAP"},{"prim":"EXEC"},{"prim":"DROP"},{"prim":"PUSH","args":[{"prim":"string"},{"string":"Amount must be 0mutez"}]},{"prim":"PUSH","args":[{"prim":"mutez"},{"int":"0"}]},{"prim":"AMOUNT"},{"prim":"COMPARE"},{"prim":"EQ"},{"prim":"PAIR"},{"prim":"DIG","args":[{"int":"6"}]},{"prim":"SWAP"},{"prim":"EXEC"},{"prim":"DROP"},{"prim":"DUP"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"SELF_ADDRESS"},{"prim":"DIG","args":[{"int":"2"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"3"}]},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CAR"},{"prim":"PAIR"},{"prim":"PAIR"},{"prim":"DIG","args":[{"int":"5"}]},{"prim":"SWAP"},{"prim":"EXEC"},{"prim":"SWAP"},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"2"}]},{"prim":"CAR"},{"prim":"DIG","args":[{"int":"5"}]},{"prim":"SWAP"},{"prim":"EXEC"},{"prim":"DIG","args":[{"int":"2"}]},{"prim":"CDR"},{"prim":"CAR"},{"prim":"UNIT"},{"prim":"TRANSFER_TOKENS"},{"prim":"DIG","args":[{"int":"3"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"4"}]},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"DIG","args":[{"int":"3"}]},{"prim":"NONE","args":[{"prim":"pair","args":[{"prim":"address"},{"prim":"pair","args":[{"prim":"mutez"},{"prim":"pair","args":[{"prim":"timestamp"},{"prim":"pair","args":[{"prim":"timestamp"},{"prim":"pair","args":[{"prim":"int"},{"prim":"pair","args":[{"prim":"int"},{"prim":"pair","args":[{"prim":"list","args":[{"prim":"pair","args":[{"prim":"address"},{"prim":"list","args":[{"prim":"pair","args":[{"prim":"nat"},{"prim":"nat"}]}]}]}]},{"prim":"pair","args":[{"prim":"nat"},{"prim":"pair","args":[{"prim":"mutez"},{"prim":"pair","args":[{"prim":"timestamp"},{"prim":"address"}]}]}]}]}]}]}]}]}]}]}]},{"prim":"SWAP"},{"prim":"UPDATE"},{"prim":"DIG","args":[{"int":"3"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"4"}]},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CAR"},{"prim":"PAIR"},{"prim":"DIG","args":[{"int":"3"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"4"}]},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CAR"},{"prim":"PAIR"},{"prim":"DIG","args":[{"int":"3"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"4"}]},{"prim":"CDR"},{"prim":"CAR"},{"prim":"PAIR"},{"prim":"DIG","args":[{"int":"3"}]},{"prim":"CAR"},{"prim":"PAIR"},{"prim":"DUG","args":[{"int":"2"}]},{"prim":"CONS"},{"prim":"PAIR"}]]}]]}]`)
6
+ };