tx · 5ftb5gmWAnJyVGk9zkrcSmEf3Xn4ojUFDjd7UQgKfeY5

3N8mwjgLRxL4TqXfzx1BkDQowTd11YQzonb:  -0.01000000 Waves

2022.02.13 19:10 [1922070] smart account 3N8mwjgLRxL4TqXfzx1BkDQowTd11YQzonb > SELF 0.00000000 Waves

{ "type": 13, "id": "5ftb5gmWAnJyVGk9zkrcSmEf3Xn4ojUFDjd7UQgKfeY5", "fee": 1000000, "feeAssetId": null, "timestamp": 1644768620474, "version": 2, "chainId": 84, "sender": "3N8mwjgLRxL4TqXfzx1BkDQowTd11YQzonb", "senderPublicKey": "FRWHTvHAyrGoiWNsvEJfBfhsqvQVZTYSYrFdXkm9fABv", "proofs": [ "znCfdVqUcnMEWkhWFmEeum8T7s1dWG9ai2mGmYXHMXbvdoSvWMMnJgMGAxNuvyY6zpPYDUPAoAVXK1SnQmLXEY9" ], "script": "base64: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cnJpZGUhCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAADXNjb25leERhcHBLZXkFAAAAB2RhcHBLZXkFAAAAA25pbAAAAAFpAQAAABFjb2xsZWN0aW9uUHJvY2VzcwAAAAQAAAAKY29sbGVjdGlvbgAAAA1zdWJjb2xsZWN0aW9uAAAABWFydElkAAAAB2NyZWF0b3IJAAUUAAAAAgkBAAAAC2NvbGxlY3Rpb25zAAAABQUAAAABaQUAAAAKY29sbGVjdGlvbgUAAAANc3ViY29sbGVjdGlvbgUAAAAFYXJ0SWQFAAAAB2NyZWF0b3IJAAJYAAAAAQgFAAAAAWkAAAANdHJhbnNhY3Rpb25JZAAAAAFpAQAAABB1cGRhdGVDb2xsZWN0aW9uAAAABQAAAA1vbGRDb2xsZWN0aW9uAAAAEG9sZFN1YmNvbGxlY3Rpb24AAAAFYXJ0SWQAAAAKY29sbGVjdGlvbgAAAA1zdWJjb2xsZWN0aW9uBAAAAAZjYWxsZXIJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAAHc2FsZUtleQkBAAAACWtleU9uU2FsZQAAAAIFAAAABWFydElkBQAAAAZjYWxsZXIDCQEAAAAPZ2V0Qm9vbGVhbkJ5S2V5AAAAAQUAAAAHc2FsZUtleQkAAAIAAAABAgAAAC9DYW4gbm90IHVwZGF0ZSBjb2xsZWN0aW9uIGZyb20gYXJ0d29yayBmb3Igc2FsZQQAAAANZGVsZXRlRW50cmllcwMDCQEAAAACIT0AAAACBQAAAA1vbGRDb2xsZWN0aW9uBQAAAApjb2xsZWN0aW9uBgkBAAAAAiE9AAAAAgUAAAAQb2xkU3ViY29sbGVjdGlvbgUAAAANc3ViY29sbGVjdGlvbgkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAAaa2V5U3ViY29sbGVjdGlvbkNvbGxlY3Rpb24AAAADBQAAAAZjYWxsZXIFAAAABWFydElkBQAAAApjb2xsZWN0aW9uBQAAAANuaWwFAAAAA25pbAkABE4AAAACBQAAAA1kZWxldGVFbnRyaWVzCQEAAAALY29sbGVjdGlvbnMAAAAFBQAAAAFpBQAAAApjb2xsZWN0aW9uBQAAAA1zdWJjb2xsZWN0aW9uBQAAAAVhcnRJZAUAAAAGY2FsbGVyAAAAALCxj3w=", "height": 1922070, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: HqQVmV3v82rEGQGmjyfSQoJnS2PGNXBWik9RJnAhxgWe Next: BYCEoBuZfqUGpeQgvjJrrY65LaJ1Z2dcwF1kVGd9AwFn Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let a = false
5-
6-let b = value(addressFromString("3MpZQjzGogmifcEKe8mDd6ribL7nxT9ACye"))
7-
8-let c = "3N65xLq8JcCeaEiR1TJQ7dBqXBvEy6E48Wz"
9-
10-let d = "3MxcXrNbMZKYaSrhcfeMm2hZnBeCu3yRWsw"
11-
12-let e = value(addressFromString("3Mzv4UHGRCC5KknZb8x5wfFUQzzpY9G4Gn4"))
13-
14-let f = value(addressFromString("3N9xZYGpzMFDXvXuctmU6zV8qSzm2ZfF31f"))
15-
16-let g = base58'132maRL3uF35tc2bpRih9D6MYq5DR6H28zkop786dKyu'
17-
18-let h = [getString(b, "owner1"), getString(b, "owner2")]
19-
20-let i = ["IMAGE", "PDF", "VIDEO"]
21-
22-let j = ["PDF"]
23-
24-let k = 150
25-
26-let l = valueOrElse(getBoolean(e, "conf_dapp_is_running"), true)
27-
28-let m = valueOrElse(getString(e, "conf_maintenance_msg"), "")
29-
30-let n = "SUSPENDED"
31-
32-let o = "REMOVED"
33-
34-let p = "UNREGISTERED"
35-
36-let q = "BIDTYPE"
37-
38-let r = "TRADITIONAL"
39-
40-let s = "DIRECT"
41-
42-func t (u) = valueOrElse(getString(e, u), "")
4+func a (b,c) = ((("collection_" + c) + "_") + b)
435
446
45-func v (u) = valueOrElse(getString(this, u), "")
7+func d (b,c) = ((("subcollection_" + c) + "_") + b)
468
479
48-func w (u,x) = valueOrErrorMessage(getString(this, u), x)
10+func e (b,c,f) = ((((("subcollection_collection_" + c) + "_") + b) + "_") + f)
4911
5012
51-func y (u) = valueOrErrorMessage(getInteger(b, u), "Integer undefine or 0 in oracle")
13+func g (b,c) = ((("art_onsale_" + c) + "_") + b)
5214
5315
54-func z (u) = valueOrElse(getInteger(this, u), 0)
16+let h = "sconexDappKey"
5517
56-
57-func A (u) = valueOrElse(getInteger(f, u), 0)
58-
59-
60-func B (u) = valueOrElse(getBoolean(this, u), false)
61-
62-
63-func C (D) = (size(D) == 64)
64-
65-
66-func E (F) = ("user_status_" + F)
67-
68-
69-func G (F,H) = ((("art_date_" + H) + "_") + F)
70-
71-
72-func I (F,H) = ((("art_name_" + H) + "_") + F)
73-
74-
75-func J (F,H) = ((("art_desc_" + H) + "_") + F)
76-
77-
78-func K (F,H) = ((("art_display_cid_" + H) + "_") + F)
79-
80-
81-func L (F,H) = ((("art_preview_cid_" + H) + "_") + F)
82-
83-
84-func M (F,H) = ((("art_maxmint_" + H) + "_") + F)
85-
86-
87-func N (H) = ("art_highestBidBidId_" + H)
88-
89-
90-func O (P) = ("bid_" + P)
91-
92-
93-func Q (F,H) = ((("art_duration_" + H) + "_") + F)
94-
95-
96-func R (F,H) = ((("art_endheight_" + H) + "_") + F)
97-
98-
99-func S (F,H) = ((("art_auctiontype_" + H) + "_") + F)
100-
101-
102-func T (F,H) = ((("art_issued_" + H) + "_") + F)
103-
104-
105-func U (V) = ("nft_issued_" + V)
106-
107-
108-func W (V) = ("nft_artId_" + V)
109-
110-
111-func X (F,H) = ((("art_royalty_" + H) + "_") + F)
112-
113-
114-func Y (F,H) = ((("art_onsale_" + H) + "_") + F)
115-
116-
117-func Z (F,H) = ((("art_entitlement_" + H) + "_") + F)
118-
119-
120-func aa (F,H) = ((("art_tags_" + H) + "_") + F)
121-
122-
123-func ab (F,H) = ((("art_type_" + H) + "_") + F)
124-
125-
126-func ac (F,H) = ((("art_price_" + H) + "_") + F)
127-
128-
129-func ad (F,H) = ((("art_assetAccepted_" + H) + "_") + F)
130-
131-
132-func ae (F,af) = ((("get_hashbytxidaddr_" + af) + "_") + F)
133-
134-
135-func ag (ah) = ("get_owner_by_hash_" + ah)
136-
137-
138-func ai (ah,F) = ("get_txid_by_hash_owner_" + toBase58String(sha256_16Kb(toBytes((ah + F)))))
139-
140-
141-func aj (F,H) = ((("collection_" + H) + "_") + F)
142-
143-
144-let ak = y(("certification_fee_" + toBase58String(g)))
145-
146-func al (P) = valueOrElse(z(O(P)), 0)
147-
148-
149-let am = "collectionsDappKey"
150-
151-let an = v(am)
152-
153-func ao (H) = {
154- let P = v(N(H))
155- if ((P == ""))
156- then 0
157- else al(P)
18+func i (j) = {
19+ let k = getString(this, j)
20+ if ($isInstanceOf(k, "String"))
21+ then {
22+ let l = k
23+ l
24+ }
25+ else ""
15826 }
15927
16028
161-func ap (aq,ar) = if ((size(aq) == 0))
162- then throw("Field cannot be is empty")
163- else if ((size(aq) > ar))
164- then throw((aq + " is too long"))
165- else true
29+let m = i(h)
30+
31+func n (j) = valueOrElse(getBoolean(addressFromStringValue(m), j), false)
16632
16733
168-func as (F) = {
169- let at = valueOrElse(getString(e, E(F)), p)
170- if ((at == p))
171- then "Register this account first with 'Account' tab"
172- else if ((at == n))
173- then "Account suspended"
174- else if ((at == o))
175- then "Account removed"
176- else ""
177- }
34+func o (p) = if ((p == addressFromString(m)))
35+ then true
36+ else throw("Only the sconex dapp can invoke this")
17837
17938
180-func au (F,av,aw,ax,ay) = {
181- let az = as(F)
182- if ((az != ""))
183- then throw(az)
184- else if ((size(av) == 0))
185- then throw("Display CID cannot be empty")
186- else if ((size(av) != 46))
187- then throw("This doesn't seem a valid CID!")
188- else if (!(ap(aw, 100)))
189- then throw("100 Char. max name")
190- else if (!(ap(ax, 1000)))
191- then throw("1000 Char. max description")
192- else if ((size(split(ay, ",")) > 5))
193- then throw("5 tags max.")
194- else ""
195- }
39+func q (r,f,s,c,t) = if (if (o(r.caller))
40+ then true
41+ else (r.caller == this))
42+ then if ((f == ""))
43+ then throw("Collections can not be empty!")
44+ else if ((s == ""))
45+ then [StringEntry(a(t, c), f)]
46+ else [StringEntry(a(t, c), f), StringEntry(e(t, c, f), s)]
47+ else throw("Wrong invoker")
19648
19749
198-func aA (aB) = if ((size(aB.payments) == 0))
199- then throw("No payment attached")
200- else {
201- let aC = value(aB.payments[0])
202- let aD = value(aC.amount)
203- $Tuple2(aC, aD)
204- }
205-
206-
207-func aE (aB) = {
208- let aF = aA(aB)
209- let aC = aF._1
210- let aD = aF._2
211- let aG = if (if (isDefined(aC.assetId))
212- then (aC.assetId == g)
213- else false)
214- then aC.assetId
215- else throw("Only USDN token accepted as transaction fee")
216- if ((aD != ak))
217- then throw(((("Payment amount should be " + toString(ak)) + " but is: ") + toString(aD)))
218- else $Tuple2(aD, aG)
219- }
220-
221-
222-func aH (aI,H) = {
223- let aJ = getInteger(this, T(aI, H))
224- if ($isInstanceOf(aJ, "Int"))
225- then {
226- let aK = aJ
227- if ((aK != 0))
228- then true
229- else false
230- }
231- else false
232- }
233-
234-
235-func aL (aB,aM,aN) = {
236- let aO = aA(aB)
237- let aC = aO._1
238- let aD = aO._2
239- let aG = if (!(isDefined(aC.assetId)))
240- then throw("Wrong asset id")
241- else if (if ((size(aM) > 0))
242- then (toBase58String(value(aC.assetId)) == aM)
243- else false)
244- then aC.assetId
245- else throw("Wrong asset id")
246- if (if ((aG == unit))
247- then (aM != "")
248- else false)
249- then throw("Wrong asset id")
250- else if ((aN != aD))
251- then throw(((("Payment don't match " + toString(aN)) + " ") + toString(aD)))
252- else $Tuple2(aD, aG)
253- }
254-
255-
256-func aP (aG) = if ((aG != toBase58String(g)))
257- then throw("Only USDN accepted")
258- else true
259-
260-
261-func aQ (aG,aR) = {
262- let aS = if (a)
263- then 1
264- else (ak * 2)
265- if (if (if ((aG == toBase58String(g)))
266- then (aS > aR)
267- else false)
268- then (aR != 0)
269- else false)
270- then throw(("Wrong minimum sell price " + toString(aS)))
271- else true
272- }
273-
274-
275-func aT (aG) = if ((aG == "WAVES"))
276- then throw("Only USDN is accepted!")
277- else fromBase58String(aG)
278-
279-
280-func aU (aV) = {
281- let aW = v((aV + "_OPEN"))
282- if ((aW == ""))
283- then throw("Bid not found")
284- else {
285- let aX = split(aW, "_")
286- let aY = parseIntValue(aX[1])
287- let aZ = aT(aX[0])
288- if ((0 >= aY))
289- then throw("Wrong amount")
290- else $Tuple2(aY, aZ)
291- }
292- }
293-
294-
295-func ba (aB) = if (!(l))
296- then throw(m)
297- else $Tuple3(toBase58String(aB.transactionId), toBase58String(aB.caller.bytes), lastBlock.timestamp)
298-
299-
300-func bb (aB,bc,H,bd) = {
301- let be = (toBase58String(aB.caller.bytes) == bc)
302- let bf = z("total_nft_issued")
303- let bg = v(I(bc, H))
304- if ((bg == ""))
305- then throw("Art doesn't exist")
306- else {
307- let bh = B(Y(bc, H))
308- let bi = z(T(bc, H))
309- let aN = valueOrElse(z(ac(bc, H)), (ak * 2))
310- let aM = if (be)
311- then toBase58String(g)
312- else v(ad(bc, H))
313- let bj = z(M(bc, H))
314- if (if (if (!(bd))
315- then !(be)
316- else false)
317- then if (if ((0 >= aN))
318- then true
319- else !(bh))
320- then true
321- else (0 >= bj)
322- else false)
323- then throw("Art not for sale")
324- else if (if (if (!(bd))
325- then be
326- else false)
327- then (0 >= bj)
328- else false)
329- then throw("Max issuable not set")
330- else $Tuple7(bf, bg, bi, aN, aM, bj, bh)
331- }
332- }
333-
334-
335-func bk (aB,F,bc,H,bl,P,aM,aN,bd) = {
336- let az = as(bc)
337- if (if (bd)
338- then (az != "")
339- else false)
340- then throw(az)
341- else {
342- let aV = ((((((("bid_" + H) + "_") + bc) + "_") + bl) + "_") + P)
343- let bm = if (bd)
344- then aU(aV)
345- else aL(aB, aM, aN)
346- let aD = bm._1
347- let aG = bm._2
348- $Tuple3(aV, aD, aG)
349- }
350- }
351-
352-
353-func bn (bc,aG,aD,bi,bj) = {
354- let bo = A(bc)
355- let bp = if ((bo > height))
356- then 0
357- else if ((aG == g))
358- then k
359- else throw("Only USDN is accepted!")
360- let bq = fraction(aD, bp, 1000)
361- let br = (aD - bq)
362- if ((bi == bj))
363- then throw("Art sold out")
364- else {
365- let bs = (bi + 1)
366- $Tuple3(bq, br, bs)
367- }
368- }
369-
370-
371-func bt (bc,H,bg,bs,bj,bf,F,bl,P,aB,bh) = {
372- let bu = ((((((((("Creator: " + bc) + ",ArtID: ") + H) + ",Artwork name: ") + bg) + ",Issue: ") + toString(bs)) + "/") + toString(bj))
373- let bv = if (if ((bs == bj))
374- then true
375- else !(bh))
376- then false
377- else true
378- let bw = if ((bl != ""))
379- then addressFromStringValue(bl)
380- else aB.caller
381- $Tuple3(bv, bw, bu)
382- }
383-
384-
385-func bx (by) = if ((4 > by))
386- then "SSR"
387- else if ((11 > by))
388- then "SR"
389- else if ((101 > by))
390- then "R"
391- else "N"
392-
393-
394-func bz (aG,aV,bA) = {
395- let bB = if (!(isDefined(aG)))
396- then throw("Only USDN is accepted")
397- else toBase58String(value(aG))
398- let aW = v((aV + "_OPEN"))
399- let bC = DeleteEntry((aV + "_OPEN"))
400- let bD = StringEntry((aV + "_CLOSED"), ((aW + "_") + toString(bA)))
401- $Tuple3(bB, bC, bD)
402- }
403-
404-
405-func bE (aB,H,bc,P,bl,bd) = {
406- let bF = ba(aB)
407- let bG = bF._1
408- let F = bF._2
409- let bA = bF._3
410- let bH = bb(aB, bc, H, bd)
411- let bf = bH._1
412- let bg = bH._2
413- let bi = bH._3
414- let aN = bH._4
415- let aM = bH._5
416- let bj = bH._6
417- let bh = bH._7
418- let aW = bk(aB, F, bc, H, bl, P, aM, aN, bd)
419- let aV = aW._1
420- let aD = aW._2
421- let aG = aW._3
422- let bI = bn(bc, value(aG), aD, bi, bj)
423- let bq = bI._1
424- let br = bI._2
425- let bs = bI._3
426- let bJ = bt(bc, H, bg, bs, bj, bf, F, bl, P, aB, bh)
427- let bv = bJ._1
428- let bw = bJ._2
429- let bu = bJ._3
430- let bK = invoke(this, "mintNft", [bf, bu, toString(bw)], nil)
431- if ((bK == bK))
432- then {
433- let bL = {
434- let aJ = bK
435- if ($isInstanceOf(aJ, "String"))
436- then {
437- let bM = aJ
438- bM
439- }
440- else throw("Incorrect invoke result")
441- }
442- let bN = bz(aG, aV, bA)
443- let bB = bN._1
444- let bC = bN._2
445- let bD = bN._3
446- let bO = ((((((("art_sold_" + toString(bs)) + "_of_") + toString(bj)) + "_") + H) + "_") + bc)
447- let bP = bx(bs)
448- let bQ = if (!(bd))
449- then ((((((((((F + "_") + toString(bA)) + "_") + bG) + "_") + toString(aN)) + "_") + aM) + "_") + bL)
450- else ((((((((((toString(bw) + "_") + toString(bA)) + "_") + bG) + "_") + toString(aD)) + "_") + bB) + "_") + bL)
451- let bR = StringEntry(bO, bQ)
452- let bS = [IntegerEntry(T(bc, H), bs), StringEntry(("nft_" + bL), bO), StringEntry(("nft_rarity_" + bL), bP), IntegerEntry("total_nft_issued", (bf + 1)), BooleanEntry(Y(bc, H), bv), ScriptTransfer(Address(fromBase58String(bc)), br, aG), ScriptTransfer(Address(fromBase58String(c)), bq, aG), StringEntry(U(bL), bc), StringEntry(W(bL), H)]
453- let bT = invoke(addressFromStringValue(d), "createCert", [toString(bw), bL, bc], nil)
454- if ((bT == bT))
455- then if (bd)
456- then (((bS :+ bR) :+ bD) :+ bC)
457- else bR :: bS
458- else throw("Strict value is not equal to itself.")
459- }
460- else throw("Strict value is not equal to itself.")
461- }
462-
463-
464-func bU (aB,H,bc) = {
465- let bV = ba(aB)
466- let bG = bV._1
467- let F = bV._2
468- let bA = bV._3
469- let bW = aA(aB)
470- let aC = bW._1
471- let aD = bW._2
472- let aG = if (!(isDefined(aC.assetId)))
473- then throw("Only USDN is accepted!")
474- else toBase58String(value(aC.assetId))
475- let bX = z(("current_bidamount_" + H))
476- let bY = valueOrElse(z(ac(bc, H)), (ak * 2))
477- if (!(aP(aG)))
478- then throw("asset not accepted")
479- else {
480- let bi = z(T(bc, H))
481- let bj = z(M(bc, H))
482- if ((0 >= bj))
483- then throw("No max edition set for this artwork")
484- else if ((bi >= bj))
485- then throw("Sold out, you cannot bid")
486- else [StringEntry((((((((("bid_" + H) + "_") + bc) + "_") + F) + "_") + bG) + "_OPEN"), ((((aG + "_") + toString(aD)) + "_") + toString(bA))), IntegerEntry(("current_bidamount_" + H), (bX + 1))]
487- }
488- }
489-
490-
491-func bZ (aB,H,bc) = {
492- let ca = z(R(bc, H))
493- let cb = ao(H)
494- if ((height > ca))
495- then throw("This auction is finished already!")
496- else {
497- let cc = ba(aB)
498- let bG = cc._1
499- let F = cc._2
500- let bA = cc._3
501- let cd = aA(aB)
502- let aC = cd._1
503- let aD = cd._2
504- if ((cb >= aD))
505- then throw(("Please place a bid higher than: " + toString(cb)))
506- else {
507- let aG = if (!(isDefined(aC.assetId)))
508- then throw("Only USDN is accepted!")
509- else toBase58String(value(aC.assetId))
510- let bX = z(("current_bidamount_" + H))
511- let bY = valueOrElse(z(ac(bc, H)), (ak * 2))
512- if (!(aP(aG)))
513- then throw("asset not accepted")
514- else if ((bY > aD))
515- then throw("Bid is below min price!")
516- else {
517- let bi = z(T(bc, H))
518- let bj = z(M(bc, H))
519- if ((0 >= bj))
520- then throw("No max edition set for this artwork")
521- else if ((bi >= bj))
522- then throw("Sold out, you cannot bid")
523- else [StringEntry((((((((("bid_" + H) + "_") + bc) + "_") + F) + "_") + bG) + "_OPEN"), ((((aG + "_") + toString(aD)) + "_") + toString(bA))), IntegerEntry(("current_bidamount_" + H), (bX + 1)), StringEntry(N(H), toBase58String(aB.transactionId)), IntegerEntry(O(toBase58String(aB.transactionId)), aD)]
524- }
525- }
526- }
527- }
528-
529-
530-func ce (aB,H,bc,P,bl) = {
531- let F = toBase58String(aB.caller.bytes)
532- if ((F != bc))
533- then throw("You cannot do this action")
534- else bE(aB, H, bc, P, bl, true)
535- }
536-
537-
538-func cf (H,bc) = {
539- let bi = z(T(bc, H))
540- let bj = z(M(bc, H))
541- let cg = z(R(bc, H))
542- let ch = z(Q(bc, H))
543- let ca = (ch + height)
544- if ((height > cg))
545- then if ((bi == bj))
546- then throw("Can't restart auction, max amount sold")
547- else [IntegerEntry(R(bc, H), ca), DeleteEntry(N(H))]
548- else throw("Previous auction isn't completed yet")
549- }
550-
551-
552-func ci (aB,H,bc,P,bl) = {
553- let ca = z(R(bc, H))
554- let cj = v(N(H))
555- if ((height > ca))
556- then if ((P == cj))
557- then {
558- let ck = bE(aB, H, bc, P, bl, true)
559- let cl = cf(H, bc)
560- (cl ++ ck)
561- }
562- else throw("This is not the winning bid!")
563- else throw("This auction is not yet finished!")
564- }
565-
566-
567-func cm (aB,H,bc,P) = {
568- let cn = ba(aB)
569- let bG = cn._1
570- let F = cn._2
571- let bA = cn._3
572- let bX = z(("current_bidamount_" + H))
573- let aV = ((((((("bid_" + H) + "_") + bc) + "_") + F) + "_") + P)
574- let aW = w((aV + "_OPEN"), "Bid not found")
575- let aX = split(aW, "_")
576- let aG = aT(aX[0])
577- let co = "CANCELED"
578-[DeleteEntry((aV + "_OPEN")), StringEntry(((aV + "_") + co), ((aW + "_") + toString(bA))), IntegerEntry(("current_bidamount_" + H), (bX - 1)), ScriptTransfer(Address(fromBase58String(F)), parseIntValue(aX[1]), aG)]
579- }
580-
581-
582-func cp (aB,H,bc,P) = {
583- let cn = ba(aB)
584- let bG = cn._1
585- let F = cn._2
586- let bA = cn._3
587- let bX = z(("current_bidamount_" + H))
588- let aV = ((((((("bid_" + H) + "_") + bc) + "_") + F) + "_") + P)
589- let aW = w((aV + "_OPEN"), "Bid not found")
590- let aX = split(aW, "_")
591- let aG = aT(aX[0])
592- let co = "CANCELED"
593- let aY = parseIntValue(aX[1])
594- let cj = v(N(H))
595- if ((P == cj))
596- then throw("You can't cancel the highest bid!")
597- else [DeleteEntry((aV + "_OPEN")), StringEntry(((aV + "_") + co), ((aW + "_") + toString(bA))), IntegerEntry(("current_bidamount_" + H), (bX - 1)), ScriptTransfer(Address(fromBase58String(F)), aY, aG)]
598- }
599-
600-
601-@Callable(aB)
602-func mintNft (bf,bu,bw) = if ((aB.caller == this))
603- then {
604- let cq = Address(fromBase58String(bw))
605- let cr = Issue(("SCONEX_" + toString((bf + 1))), bu, 1, 0, false)
606- let bL = calculateAssetId(cr)
607- $Tuple2([cr, ScriptTransfer(cq, 1, bL)], toBase58String(bL))
608- }
609- else throw("Only the dApp can mint NFT's")
50+@Callable(r)
51+func initDapp (u) = if ((r.caller != this))
52+ then throw("You cannot do this action")
53+ else if ((m != ""))
54+ then throw("Sconex dapp already set, you can't override!")
55+ else [StringEntry(h, u)]
61056
61157
61258
613-@Callable(aB)
614-func addArtwork (ah,aw,ax,ay,cs,av,ct,cu,cv,cw) = {
615- let cx = ba(aB)
616- let H = cx._1
617- let F = cx._2
618- let bA = cx._3
619- if (containsElement(i, cs))
620- then {
621- let cy = au(F, av, aw, ax, ay)
622- if ((cy != ""))
623- then throw("Something went wrong!")
624- else {
625- let cz = aE(aB)
626- let aD = cz._1
627- let aG = cz._2
628- if (!(isDefined(aD)))
629- then throw("Something went wrong")
630- else {
631- let cA = if (containsElement(j, cs))
632- then [StringEntry(L(F, H), cu)]
633- else nil
634- let cB = invoke(addressFromStringValue(an), "collectionProcess", [cv, cw, F, H], nil)
635- if ((cB == cB))
636- then {
637- let cC = {
638- let aJ = cB
639- if ($isInstanceOf(aJ, "String"))
640- then {
641- let bM = aJ
642- bM
643- }
644- else throw("Incorrect invoke result")
645- }
646- let cD = v(ai(ah, F))
647- if ((cD != ""))
648- then throw("You already added it")
649- else {
650- let cE = v(ag(ah))
651- if ((cE != ""))
652- then throw("This hash is already registered")
653- else (cA ++ [StringEntry(aj(F, H), cC), StringEntry(ag(ah), F), StringEntry(ai(ah, F), H), IntegerEntry(G(F, H), bA), StringEntry(I(F, H), aw), StringEntry(J(F, H), ax), StringEntry(K(F, H), av), StringEntry(ab(F, H), cs), StringEntry(aa(F, H), ay), IntegerEntry(M(F, H), 0), IntegerEntry(T(F, H), 0), BooleanEntry(Y(F, H), false), StringEntry(ae(F, H), ah), StringEntry(Z(F, H), ct), ScriptTransfer(Address(fromBase58String(c)), aD, aG)])
654- }
655- }
656- else throw("Strict value is not equal to itself.")
657- }
658- }
659- }
660- else throw("Unknown type")
661- }
59+@Callable(r)
60+func collectionProcess (f,s,c,t) = $Tuple2(q(r, f, s, c, t), toBase58String(r.transactionId))
66261
66362
66463
665-@Callable(aB)
666-func sellArtwork (H,aR,cF,aG,cG,ch,cH) = {
667- let cI = ba(aB)
668- let bG = cI._1
669- let F = cI._2
670- let bg = v(I(F, H))
671- if ((0 > cH))
672- then throw("Royalty percentage should be above 0")
673- else if ((cH > 85))
674- then throw("Royalty percentage should be below 85")
675- else if (!(containsElement([q, r, s], cG)))
676- then throw("We don't know this auction type")
677- else if ((bg == ""))
678- then throw("This art doesn't match your account")
679- else {
680- let bX = z(("current_bidamount_" + H))
681- if (!(aP(aG)))
682- then throw("Something went wrong!")
683- else if (!(aQ(aG, aR)))
684- then throw("Something went wrong!")
685- else {
686- let az = as(F)
687- if ((az != ""))
688- then throw(az)
689- else {
690- let bi = z(T(F, H))
691- let bj = z(M(F, H))
692- if ((cF > 10000))
693- then throw("10000 editions max per artwork")
694- else if (if ((bi != 0))
695- then (bi == bj)
696- else false)
697- then throw("Max edition reached.")
698- else if (if ((bi > 0))
699- then (bj != cF)
700- else false)
701- then throw("Cannot change maximum issuable anymore")
702- else if (if ((bX > 0))
703- then (bj != cF)
704- else false)
705- then throw("Cannot change maximum issuable with active orders")
706- else {
707- let bv = if (if ((aR > 0))
708- then (cF > 0)
709- else false)
710- then true
711- else false
712- let ca = (ch + height)
713-[BooleanEntry(Y(F, H), bv), IntegerEntry(ac(F, H), aR), IntegerEntry(M(F, H), cF), IntegerEntry(Q(F, H), ch), IntegerEntry(R(F, H), ca), StringEntry(ad(F, H), aG), StringEntry(S(F, H), cG), IntegerEntry(X(F, H), cH)]
714- }
715- }
716- }
717- }
64+@Callable(r)
65+func updateCollection (v,w,c,f,s) = {
66+ let b = toBase58String(r.caller.bytes)
67+ let x = g(c, b)
68+ if (n(x))
69+ then throw("Can not update collection from artwork for sale")
70+ else {
71+ let y = if (if ((v != f))
72+ then true
73+ else (w != s))
74+ then [DeleteEntry(e(b, c, f))]
75+ else nil
76+ (y ++ q(r, f, s, c, b))
77+ }
71878 }
719-
720-
721-
722-@Callable(aB)
723-func buyArtwork (H,bc) = {
724- let cG = v(S(bc, H))
725- if ((cG == s))
726- then bE(aB, H, bc, "", "", false)
727- else throw("Direct buy only allowed when no auction type is set!")
728- }
729-
730-
731-
732-@Callable(aB)
733-func updateTags (cJ,H,ay) = {
734- let F = toString(addressFromPublicKey(aB.callerPublicKey))
735- if (containsElement(h, F))
736- then if ((size(split(ay, ",")) > 5))
737- then throw("5 tags max.")
738- else {
739- let cK = w(aa(cJ, H), "No tags created with this key, so can't update!")
740- if ((ay == cK))
741- then throw("Tags are the same as old tags!")
742- else [StringEntry(aa(cJ, H), ay)]
743- }
744- else throw("no")
745- }
746-
747-
748-
749-@Callable(aB)
750-func deleteEntry (cL) = {
751- let F = toString(addressFromPublicKey(aB.callerPublicKey))
752- if (containsElement(h, F))
753- then [DeleteEntry(cL)]
754- else throw("no")
755- }
756-
757-
758-
759-@Callable(aB)
760-func setBid (H,bc) = {
761- let cG = v(S(bc, H))
762- if ((cG == q))
763- then bU(aB, H, bc)
764- else if ((cG == r))
765- then bZ(aB, H, bc)
766- else throw((("Unknown auction type :" + cG) + ", please contact the admins"))
767- }
768-
769-
770-
771-@Callable(aB)
772-func acceptBid (H,bc,P,bl) = {
773- let cG = v(S(bc, H))
774- if ((cG == q))
775- then ce(aB, H, bc, P, bl)
776- else if ((cG == r))
777- then ci(aB, H, bc, P, bl)
778- else throw((("Unknown auction type :" + cG) + ", please contact the admins"))
779- }
780-
781-
782-
783-@Callable(aB)
784-func cancelBid (H,bc,P) = {
785- let cG = v(S(bc, H))
786- if ((cG == q))
787- then cm(aB, H, bc, P)
788- else cp(aB, H, bc, P)
789- }
790-
791-
792-
793-@Callable(aB)
794-func initDapp (cM) = if ((aB.caller != this))
795- then throw("You cannot do this action")
796- else if ((an != ""))
797- then throw("Collections dapp already set, you can't override!")
798- else [StringEntry(an, cM)]
79979
80080

github/deemru/w8io/c3f4982 
58.92 ms