tx · 9Bu8f8iQDrnm6ba3bXKHCPs4eFfmjCoox6gmCHqrv28x

3N8jKcYWjJn5GjrJV94rxzVk42TPk1rPLeu:  -0.01000000 Waves

2022.03.30 17:48 [1986799] smart account 3N8jKcYWjJn5GjrJV94rxzVk42TPk1rPLeu > SELF 0.00000000 Waves

{ "type": 13, "id": "9Bu8f8iQDrnm6ba3bXKHCPs4eFfmjCoox6gmCHqrv28x", "fee": 1000000, "feeAssetId": null, "timestamp": 1648651709675, "version": 2, "chainId": 84, "sender": "3N8jKcYWjJn5GjrJV94rxzVk42TPk1rPLeu", "senderPublicKey": "914UmzBhcoS4onGGVcBRgb4VPV88m9VCFjsj5WWck5vm", "proofs": [ "427AS1wY4BkEjH2t5V11CWJbMAQBjrrRdfmfWZyxCZ3ihsPUsUJ11o3XrhizzMQw33ytneCyfoyEVH6xaRWZerSC" ], "script": "base64:AAIFAAAAAAAAAFgIAhIDCgEIEgMKAQgSBQoDAQgIEgwKCggICAgICAgICAgSDgoMCAEBCAgBCAgIAQEBEgQKAggIEgUKAwgICBIDCgEIEgQKAggIEgYKBAgICAgSBQoDCAgIAAAAUQAAAAAIdW5pdFRlc3QHAAAAAAlvcmFjbGVLZXkCAAAACW9yYWNsZUtleQEAAAAGZ2V0U3RyAAAAAQAAAANrZXkEAAAAByRtYXRjaDAJAAQdAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAWIFAAAAByRtYXRjaDAFAAAAAWICAAAAAAAAAAAGb3JhY2xlCQEAAAAGZ2V0U3RyAAAAAQUAAAAJb3JhY2xlS2V5AAAAAAlvcmFjbGVGZWUJAQAAAAV2YWx1ZQAAAAEJAAQmAAAAAQUAAAAGb3JhY2xlAAAAAAZvd25lcnMJAARMAAAAAgkABB0AAAACBQAAAAlvcmFjbGVGZWUCAAAABm93bmVyMQkABEwAAAACCQAEHQAAAAIFAAAACW9yYWNsZUZlZQIAAAAGb3duZXIyBQAAAANuaWwAAAAAD2NvbGxlY3Rpb25zRGFwcAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEHQAAAAIFAAAACW9yYWNsZUZlZQIAAAAPY29sbGVjdGlvbnNEYXBwAgAAABhjb2xsZWN0aW9uRGFwcCBub3QgZm91bmQAAAAAC2ZlZVJlY2VpdmVyCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQdAAAAAgUAAAAJb3JhY2xlRmVlAgAAAAtmZWVSZWNlaXZlcgIAAAAVZmVlUmVjZWl2ZXIgbm90IGZvdW5kAAAAAAhjZXJ0RGFwcAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEHQAAAAIFAAAACW9yYWNsZUZlZQIAAAAIY2VydERhcHACAAAAEmNlcnREYXBwIG5vdCBmb3VuZAAAAAAHZmVlRGFwcAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEHQAAAAIFAAAACW9yYWNsZUZlZQIAAAAHZmVlRGFwcAIAAAARZmVlRGFwcCBub3QgZm91bmQAAAAACHVzZXJEYXBwCQEAAAAFdmFsdWUAAAABCQAEJgAAAAEJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABB0AAAACBQAAAAlvcmFjbGVGZWUCAAAACHVzZXJEYXBwAgAAABJ1c2VyZGFwcCBub3QgZm91bmQAAAAAC1VTRE5Bc3NldElkCQACWQAAAAEJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIFAAAACW9yYWNsZUZlZQIAAAALVVNETkFzc2V0SWQAAAAABXR5cGVzCQAETAAAAAICAAAABUlNQUdFCQAETAAAAAICAAAAA1BERgkABEwAAAACAgAAAAVWSURFTwUAAAADbmlsAAAAAAxQcmV2aWV3dHlwZXMJAARMAAAAAgIAAAADUERGBQAAAANuaWwAAAAAC2RhcHBSdW5uaW5nCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGwAAAAIFAAAACHVzZXJEYXBwAgAAABRjb25mX2RhcHBfaXNfcnVubmluZwYAAAAADm1haW50ZW5hbmNlTVNHCQEAAAALdmFsdWVPckVsc2UAAAACCQAEHQAAAAIFAAAACHVzZXJEYXBwAgAAABRjb25mX21haW50ZW5hbmNlX21zZwIAAAAAAAAAAA11c2VyU3VzcGVuZGVkAgAAAAlTVVNQRU5ERUQAAAAAC3VzZXJSZW1vdmVkAgAAAAdSRU1PVkVEAAAAABB1c2VyVW5yZWdpc3RlcmVkAgAAAAxVTlJFR0lTVEVSRUQAAAAADGF1Y3Rpb25UeXBlMQIAAAAHQklEVFlQRQAAAAAMYXVjdGlvblR5cGUyAgAAAAtUUkFESVRJT05BTAAAAAAMYXVjdGlvblR5cGUzAgAAAAZESVJFQ1QBAAAAF2dldFN0cmluZ0J5S2V5RnJvbVVzZXJzAAAAAQAAAANrZXkJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQdAAAAAgUAAAAIdXNlckRhcHAFAAAAA2tleQIAAAAAAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEAAAADa2V5CQEAAAALdmFsdWVPckVsc2UAAAACCQAEHQAAAAIFAAAABHRoaXMFAAAAA2tleQIAAAAAAQAAABVnZXRTdHJpbmdCeUtleU9yRXJyb3IAAAACAAAAA2tleQAAAAVlcnJvcgkBAAAAE3ZhbHVlT3JFcnJvck1l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AA10cmFuc2FjdGlvbklkCQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMIBQAAAAlsYXN0QmxvY2sAAAAJdGltZXN0YW1wAQAAAApnZXRBcnREYXRhAAAABAAAAAFpAAAABmlzc3VlcgAAAAVhcnRJZAAAAAVpc0JpZAQAAAAOY2FsbGVySXNJc3N1ZXIJAAAAAAAAAgkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBQAAAAZpc3N1ZXIEAAAACHRvdGFsTkZUCQEAAAAPZ2V0SW50ZWdlckJ5S2V5AAAAAQIAAAAQdG90YWxfbmZ0X2lzc3VlZAQAAAALYXJ0d29ya05hbWUJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEJAQAAAAdrZXlOYW1lAAAAAgUAAAAGaXNzdWVyBQAAAAVhcnRJZAMJAAAAAAAAAgUAAAALYXJ0d29ya05hbWUCAAAAAAkAAAIAAAABAgAAABFBcnQgZG9lc24ndCBleGlzdAQAAAAIaXNPblNhbGUJAQAAAA9nZXRCb29sZWFuQnlLZXkAAAABCQEAAAAJa2V5T25TYWxlAAAAAgUAAAAGaXNzdWVyBQAAAAVhcnRJZAQAAAAKYW1vdW50U29sZAkBAAAAD2dldEludGVnZXJCeUtleQAAAAEJAQAAAAlrZXlJc3N1ZWQAAAACBQAAAAZpc3N1ZXIFAAAABWFydElkBAAAAAxhcnR3b3JrUHJpY2UJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAQAAAA9nZXRJbnRlZ2VyQnlLZXkAAAABCQEAAAAIa2V5UHJpY2UAAAACBQAAAAZpc3N1ZXIFAAAABWFydElkCQAAaAAAAAIFAAAAGWN1cnJlbnRDZXJ0aWZpY2F0aW9uUHJpY2UAAAAAAAAAAAIEAAAADHByaWNlQXNzZXRJZAMFAAAADmNhbGxlcklzSXNzdWVyCQACWAAAAAEFAAAAC1VTRE5Bc3NldElkCQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABCQEAAAASa2V5QXNzZXRJZEFjY2VwdGVkAAAAAgUAAAAGaXNzdWVyBQAAAAVhcnRJZAQAAAAKbWF4Q2FuU2VsbAkBAAAAD2dldEludGVnZXJCeUtleQAAAAEJAQAAAAprZXlNYXhNaW50AAAA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AAEIBQAAAAFpAAAADXRyYW5zYWN0aW9uSWQFAAAABmFtb3VudAUAAAADbmlsAQAAABdhY2NlcHRCaWROb25UcmFkaXRpb25hbAAAAAUAAAABaQAAAAVhcnRJZAAAAAZpc3N1ZXIAAAAFYmlkSWQAAAAIYmlkT3duZXIEAAAABmNhbGxlcgkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzAwkBAAAAAiE9AAAAAgUAAAAGY2FsbGVyBQAAAAZpc3N1ZXIJAAACAAAAAQIAAAAZWW91IGNhbm5vdCBkbyB0aGlzIGFjdGlvbgkBAAAAB2J1eU1pbnQAAAAGBQAAAAFpBQAAAAVhcnRJZAUAAAAGaXNzdWVyBQAAAAViaWRJZAUAAAAIYmlkT3duZXIGAQAAAA5yZXN0YXJ0QXVjdGlvbgAAAAIAAAAFYXJ0SWQAAAAGaXNzdWVyBAAAAAphbW91bnRTb2xkCQEAAAAPZ2V0SW50ZWdlckJ5S2V5AAAAAQkBAAAACWtleUlzc3VlZAAAAAIFAAAABmlzc3VlcgUAAAAFYXJ0SWQEAAAACm1heENhblNlbGwJAQAAAA9nZXRJbnRlZ2VyQnlLZXkAAAABCQEAAAAKa2V5TWF4TWludAAAAAIFAAAABmlzc3VlcgUAAAAFYXJ0SWQEAAAADG9sZEVuZEhlaWdodAkBAAAAD2dldEludGVnZXJCeUtleQAAAAEJAQAAAAxrZXlFbmRIZWlnaHQAAAACBQAAAAZpc3N1ZXIFAAAABWFydElkBAAAAAhkdXJhdGlvbgkBAAAAD2dldEludGVnZXJCeUtleQAAAAEJAQAAAAtrZXlEdXJhdGlvbgAAAAIFAAAABmlzc3VlcgUAAAAFYXJ0SWQEAAAACWVuZEhlaWdodAkAAGQAAAACBQAAAAhkdXJhdGlvbgUAAAAGaGVpZ2h0AwkAAGYAAAACBQAAAAZoZWlnaHQFAAAADG9sZEVuZEhlaWdodAMJAAAAAAAAAgUAAAAKYW1vdW50U29sZAUAAAAKbWF4Q2FuU2VsbAkAAAIAAAABAgAAACZDYW4ndCByZXN0YXJ0IGF1Y3Rpb24sIG1heCBhbW91bnQgc29sZAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAADGtleUVuZEhlaWdodAAAAAIFAAAABmlzc3VlcgUAAAAFYXJ0SWQFAAAACWVuZEhlaWdodAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAASa2V5SGlnaGVzdEJpZEJpZElkAAAAAQUAAAAFYXJ0SWQFAAAAA25pbAkAAAIAAAABAgAAACRQcmV2aW91cyBhdWN0aW9uIGlzbid0IGNvbXBsZXRlZCB5ZXQBAAAAFGFjY2VwdEJpZFRyYWRpdGlvbmFsAAAABQAAAAFpAAAABWFydElkAAAABmlzc3VlcgAAAAViaWRJZAAAAAhiaWRPd25lcgQAAAAJZW5kSGVpZ2h0CQEAAAAPZ2V0SW50ZWdlckJ5S2V5AAAAAQkBAAAADGtleUVuZEhlaWdodAAAAAIFAAAABmlzc3VlcgUAAAAFYXJ0SWQEAAAADGhpZ2hlc3RCaWRJZAkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAAEmtleUhpZ2hlc3RCaWRCaWRJZAAAAAEFAAAABWFydElkAwkAAGYAAAACBQAAAAZoZWlnaHQFAAAACWVuZEhlaWdodAMJAAAAAAAAAgUAAAAFYmlkSWQFAAAADGhpZ2hlc3RCaWRJZAQAAAALYnV5TWludERhdGEJAQAAAAdidXlNaW50AAAABgUAAAABaQUAAAAFYXJ0SWQFAAAABmlzc3VlcgUAAAAFYmlkSWQFAAAACGJpZE93bmVyBgQAAAAScmVzdGFydEF1Y3Rpb25EYXRhCQEAAAAOcmVzdGFydEF1Y3Rpb24AAAACBQAAAAVhcnRJZAUAAAAGaXNzdWVyCQAETgAAAAIFAAAAEnJlc3RhcnRBdWN0aW9uRGF0YQUAAAALYnV5TWludERhdGEJAAACAAAAAQIAAAAcVGhpcyBpcyBub3QgdGhlIHdpbm5pbmcgYmlkIQkAAAIAAAABAgAAACFUaGlzIGF1Y3Rpb24gaXMgbm90IHlldCBmaW5pc2hlZCEBAAAADWNhbmNlbEJpZEltcGwAAAAEAAAAAWkAAAAFYXJ0SWQAAAAGaXNzdWVyAAAABWJpZElkBAAAAAx0MDI4OTQyMjkwOTQJAQAAAAxpZENhbGxlckRhdGUAAAABBQAAAAFpBAAAAAJpZAgFAAAADHQwMjg5NDIyOTA5NAAAAAJfMQQAAAAGY2FsbGVyCAUAAAAM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BHRhZ3MDCQEAAAACIT0AAAACBQAAAA92YWxpZGF0ZUFydHdvcmsCAAAAAAkAAAIAAAABAgAAABVTb21ldGhpbmcgd2VudCB3cm9uZyEEAAAADHQwMTgxNzAxODIxMgkBAAAAD3ZhbGlkYXRlUGF5bWVudAAAAAEFAAAAAWkEAAAABmFtb3VudAgFAAAADHQwMTgxNzAxODIxMgAAAAJfMQQAAAAHYXNzZXRJZAgFAAAADHQwMTgxNzAxODIxMgAAAAJfMgMJAQAAAAEhAAAAAQkBAAAACWlzRGVmaW5lZAAAAAEFAAAABmFtb3VudAkAAAIAAAABAgAAABRTb21ldGhpbmcgd2VudCB3cm9uZwQAAAALcHJldmlld0RhdGEDCQEAAAAPY29udGFpbnNFbGVtZW50AAAAAgUAAAAMUHJldmlld3R5cGVzBQAAAAR0eXBlCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAA1rZXlQcmV2aWV3Q2lkAAAAAgUAAAAGY2FsbGVyBQAAAAVhcnRJZAUAAAAHcHJldmlldwUAAAADbmlsBQAAAANuaWwEAAAAFmludm9rZUNvbGxlY3Rpb25DcmVhdGUJAAP8AAAABAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEJgAAAAEFAAAAD2NvbGxlY3Rpb25zRGFwcAkAASwAAAACBQAAAA9jb2xsZWN0aW9uc0RhcHACAAAACiBub3QgZm91bmQCAAAAEWNvbGxlY3Rpb25Qcm9jZXNzCQAETAAAAAIFAAAACmNvbGxlY3Rpb24JAARMAAAAAgUAAAANc3ViY29sbGVjdGlvbgkABEwAAAACBQAAAAZjYWxsZXIFAAAAA25pbAUAAAADbmlsAwkAAAAAAAACBQAAABZpbnZva2VDb2xsZWN0aW9uQ3JlYXRlBQAAABZpbnZva2VDb2xsZWN0aW9uQ3JlYXRlBAAAAAxpZENvbGxlY3Rpb24EAAAAByRtYXRjaDAFAAAAFmludm9rZUNvbGxlY3Rpb25DcmVhdGUDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABcgUAAAAHJG1hdGNoMAUAAAABcgkAAAIAAAABAgAAABdJbmNvcnJlY3QgaW52b2tlIHJlc3VsdAQAAAAKZW50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cnRpc3QFAAAABWFydElkBQAAAAR0YWdzBQAAAANuaWwJAAACAAAAAQIAAAACbm8AAAABaQEAAAALZGVsZXRlRW50cnkAAAABAAAABWVudHJ5BAAAAAZjYWxsZXIJAAQlAAAAAQkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5AwkBAAAAD2NvbnRhaW5zRWxlbWVudAAAAAIFAAAABm93bmVycwUAAAAGY2FsbGVyCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEFAAAABWVudHJ5BQAAAANuaWwJAAACAAAAAQIAAAACbm8AAAABaQEAAAAGc2V0QmlkAAAAAgAAAAVhcnRJZAAAAAZpc3N1ZXIEAAAAC2F1Y3Rpb25UeXBlCQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABCQEAAAAOa2V5QXVjdGlvblR5cGUAAAACBQAAAAZpc3N1ZXIFAAAABWFydElkAwkAAAAAAAACBQAAAAthdWN0aW9uVHlwZQUAAAAMYXVjdGlvblR5cGUxCQEAAAAUc2V0QmlkTm9uVHJhZGl0aW9uYWwAAAADBQAAAAFpBQAAAAVhcnRJZAUAAAAGaXNzdWVyAwkAAAAAAAACBQAAAAthdWN0aW9uVHlwZQUAAAAMYXVjdGlvblR5cGUyCQEAAAARc2V0QmlkVHJhZGl0aW9uYWwAAAADBQAAAAFpBQAAAAVhcnRJZAUAAAAGaXNzdWVyCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACAgAAABZVbmtub3duIGF1Y3Rpb24gdHlwZSA6BQAAAAthdWN0aW9uVHlwZQIAAAAbLCBwbGVhc2UgY29udGFjdCB0aGUgYWRtaW5zAAAAAWkBAAAACWFjY2VwdEJpZAAAAAQAAAAFYXJ0SWQAAAAGaXNzdWVyAAAABWJpZElkAAAACGJpZE93bmVyBAAAAAthdWN0aW9uVHlwZQkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAADmtleUF1Y3Rpb25UeXBlAAAAAgUAAAAGaXNzdWVyBQAAAAVhcnRJZAMJAAAAAAAAAgUAAAALYXVjdGlvblR5cGUFAAAADGF1Y3Rpb25UeXBlMQkBAAAAF2FjY2VwdEJpZE5vblRyYWRpdGlvbmFsAAAABQUAAAABaQUAAAAFYXJ0SWQFAAAABmlzc3VlcgUAAAAFYmlkSWQFAAAACGJpZE93bmVyAwkAAAAAAAACBQAAAAthdWN0aW9uVHlwZQUAAAAMYXVjdGlvblR5cGUyCQEAAAAUYWNjZXB0QmlkVHJhZGl0aW9uYWwAAAAFBQAAAAFpBQAAAAVhcnRJZAUAAAAGaXNzdWVyBQAAAAViaWRJZAUAAAAIYmlkT3duZXIJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAAFlVua25vd24gYXVjdGlvbiB0eXBlIDoFAAAAC2F1Y3Rpb25UeXBlAgAAABssIHBsZWFzZSBjb250YWN0IHRoZSBhZG1pbnMAAAABaQEAAAAJY2FuY2VsQmlkAAAAAwAAAAVhcnRJZAAAAAZpc3N1ZXIAAAAFYmlkSWQEAAAAC2F1Y3Rpb25UeXBlCQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABCQEAAAAOa2V5QXVjdGlvblR5cGUAAAACBQAAAAZpc3N1ZXIFAAAABWFydElkAwkAAAAAAAACBQAAAAthdWN0aW9uVHlwZQUAAAAMYXVjdGlvblR5cGUxCQEAAAANY2FuY2VsQmlkSW1wbAAAAAQFAAAAAWkFAAAABWFydElkBQAAAAZpc3N1ZXIFAAAABWJpZElkCQEAAAAYY2FuY2VsQmlkSW1wbFRyYWRpdGlvbmFsAAAABAUAAAABaQUAAAAFYXJ0SWQFAAAABmlzc3VlcgUAAAAFYmlkSWQAAAAAziQJ4g==", "height": 1986799, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: GXEcYHsnmxEefG8eydHmSXQGaTVUhNvwSUafJ2a741x5 Next: 7hkYU5nd1tyjLHq415q18sC1pCrr78trXwBjgR7Pe9au Diff:
OldNewDifferences
264264
265265
266266 func aP (aH,aQ) = {
267- let aR = if (a)
268- then 1
269- else (an * 2)
270- if (if (if ((aH == toBase58String(o)))
271- then (aR > aQ)
272- else false)
273- then (aQ != 0)
274- else false)
267+ let aR = an
268+ if (if ((aR > aQ))
269+ then true
270+ else (aH != toBase58String(o)))
275271 then throw(("Wrong minimum sell price " + toString(aR)))
276272 else true
277273 }
355351 }
356352
357353
358-func bm (bb,aH,aE,bh,bi) = $Tuple3(0, 0, 0)
359-
360-
361-func bn (bb,L,bf,bo,bi,be,J,bk,T,aC,bg) = {
362- let bp = ((((((((("Creator: " + bb) + ",ArtID: ") + L) + ",Artwork name: ") + bf) + ",Issue: ") + toString(bo)) + "/") + toString(bi))
363- let bq = if (if ((bo == bi))
354+func bm (bb,L,bf,bn,bi,be,J,bk,T,aC,bg) = {
355+ let bo = ((((((((("Creator: " + bb) + ",ArtID: ") + L) + ",Artwork name: ") + bf) + ",Issue: ") + toString(bn)) + "/") + toString(bi))
356+ let bp = if (if ((bn == bi))
364357 then true
365358 else !(bg))
366359 then false
367360 else true
368- let br = if ((bk != ""))
361+ let bq = if ((bk != ""))
369362 then addressFromStringValue(bk)
370363 else aC.caller
371- $Tuple3(bq, br, bp)
364+ $Tuple3(bp, bq, bo)
372365 }
373366
374367
375-func bs (aH,aU,bt) = {
376- let bu = if (!(isDefined(aH)))
368+func br (aH,aU,bs) = {
369+ let bt = if (!(isDefined(aH)))
377370 then throw("Only USDN is accepted")
378371 else toBase58String(value(aH))
379372 let aV = A((aU + "_OPEN"))
380- let bv = DeleteEntry((aU + "_OPEN"))
381- let bw = StringEntry((aU + "_CLOSED"), ((aV + "_") + toString(bt)))
382- $Tuple3(bu, bv, bw)
373+ let bu = DeleteEntry((aU + "_OPEN"))
374+ let bv = StringEntry((aU + "_CLOSED"), ((aV + "_") + toString(bs)))
375+ $Tuple3(bt, bu, bv)
383376 }
384377
385378
386-func bx (aC,L,bb,T,bk,bc) = {
387- let by = aZ(aC)
388- let bz = by._1
389- let J = by._2
390- let bt = by._3
391- let bA = ba(aC, bb, L, bc)
392- let be = bA._1
393- let bf = bA._2
394- let bh = bA._3
395- let aM = bA._4
396- let aL = bA._5
397- let bi = bA._6
398- let bg = bA._7
379+func bw (aC,L,bb,T,bk,bc) = {
380+ let bx = aZ(aC)
381+ let by = bx._1
382+ let J = bx._2
383+ let bs = bx._3
384+ let bz = ba(aC, bb, L, bc)
385+ let be = bz._1
386+ let bf = bz._2
387+ let bh = bz._3
388+ let aM = bz._4
389+ let aL = bz._5
390+ let bi = bz._6
391+ let bg = bz._7
399392 let aV = bj(aC, J, bb, L, bk, T, aL, aM, bc)
400393 let aU = aV._1
401394 let aE = aV._2
402395 let aH = aV._3
403- let bo = if ((bh == bi))
396+ let bn = if ((bh == bi))
404397 then throw("Max items sold")
405398 else (bh + 1)
406- let bB = bn(bb, L, bf, bo, bi, be, J, bk, T, aC, bg)
407- let bq = bB._1
408- let br = bB._2
409- let bp = bB._3
410- let bC = invoke(this, "mintNft", [be, bp, toString(br)], nil)
411- if ((bC == bC))
399+ let bA = bm(bb, L, bf, bn, bi, be, J, bk, T, aC, bg)
400+ let bp = bA._1
401+ let bq = bA._2
402+ let bo = bA._3
403+ let bB = invoke(this, "mintNft", [be, bo, toString(bq)], nil)
404+ if ((bB == bB))
412405 then {
413- let bD = {
414- let e = bC
406+ let bC = {
407+ let e = bB
415408 if ($isInstanceOf(e, "String"))
416409 then {
417- let bE = e
418- bE
410+ let bD = e
411+ bD
419412 }
420413 else throw("Incorrect invoke result")
421414 }
422- let bF = bs(aH, aU, bt)
423- let bu = bF._1
424- let bv = bF._2
425- let bw = bF._3
426- let bG = ((((((("art_sold_" + toString(bo)) + "_of_") + toString(bi)) + "_") + L) + "_") + bb)
427- let bH = if (!(bc))
428- then ((((((((((J + "_") + toString(bt)) + "_") + bz) + "_") + toString(aM)) + "_") + aL) + "_") + bD)
429- else ((((((((((toString(br) + "_") + toString(bt)) + "_") + bz) + "_") + toString(aE)) + "_") + bu) + "_") + bD)
430- let bI = invoke(valueOrErrorMessage(addressFromString(m), (m + " not found")), "payFee", [L], [AttachedPayment(aH, aE)])
431- if ((bI == bI))
415+ let bE = br(aH, aU, bs)
416+ let bt = bE._1
417+ let bu = bE._2
418+ let bv = bE._3
419+ let bF = ((((((("art_sold_" + toString(bn)) + "_of_") + toString(bi)) + "_") + L) + "_") + bb)
420+ let bG = if (!(bc))
421+ then ((((((((((J + "_") + toString(bs)) + "_") + by) + "_") + toString(aM)) + "_") + aL) + "_") + bC)
422+ else ((((((((((toString(bq) + "_") + toString(bs)) + "_") + by) + "_") + toString(aE)) + "_") + bt) + "_") + bC)
423+ let bH = invoke(valueOrErrorMessage(addressFromString(m), (m + " not found")), "payFee", [L, bb], [AttachedPayment(aH, aE)])
424+ if ((bH == bH))
432425 then {
433- let bJ = StringEntry(bG, bH)
434- let bK = [IntegerEntry(X(bb, L), bo), StringEntry(("nft_" + bD), bG), IntegerEntry("total_nft_issued", (be + 1)), BooleanEntry(ab(bb, L), bq), StringEntry(Y(bD), bb), StringEntry(aa(bD), L)]
435- let bL = invoke(addressFromStringValue(l), "createCert", [toString(br), bD, bb], nil)
436- if ((bL == bL))
426+ let bI = StringEntry(bF, bG)
427+ let bJ = [IntegerEntry(X(bb, L), bn), StringEntry(("nft_" + bC), bF), IntegerEntry("total_nft_issued", (be + 1)), BooleanEntry(ab(bb, L), bp), StringEntry(Y(bC), bb), StringEntry(aa(bC), L)]
428+ let bK = invoke(addressFromStringValue(l), "createCert", [toString(bq), bC, bb], nil)
429+ if ((bK == bK))
437430 then if (bc)
438- then (((bK :+ bJ) :+ bw) :+ bv)
439- else bJ :: bK
431+ then (((bJ :+ bI) :+ bv) :+ bu)
432+ else bI :: bJ
440433 else throw("Strict value is not equal to itself.")
441434 }
442435 else throw("Strict value is not equal to itself.")
445438 }
446439
447440
448-func bM (aC,L,bb) = {
449- let bN = aZ(aC)
450- let bz = bN._1
451- let J = bN._2
452- let bt = bN._3
453- let bO = aB(aC)
454- let aD = bO._1
455- let aE = bO._2
441+func bL (aC,L,bb) = {
442+ let bM = aZ(aC)
443+ let by = bM._1
444+ let J = bM._2
445+ let bs = bM._3
446+ let bN = aB(aC)
447+ let aD = bN._1
448+ let aE = bN._2
456449 let aH = if (!(isDefined(aD.assetId)))
457450 then throw("Only USDN is accepted!")
458451 else toBase58String(value(aD.assetId))
459- let bP = E(("current_bidamount_" + L))
460- let bQ = valueOrElse(E(af(bb, L)), (an * 2))
452+ let bO = E(("current_bidamount_" + L))
461453 if (!(aO(aH)))
462454 then throw("asset not accepted")
463455 else {
467459 then throw("No max edition set for this artwork")
468460 else if ((bh >= bi))
469461 then throw("Sold out, you cannot bid")
470- else [StringEntry((((((((("bid_" + L) + "_") + bb) + "_") + J) + "_") + bz) + "_OPEN"), ((((aH + "_") + toString(aE)) + "_") + toString(bt))), IntegerEntry(("current_bidamount_" + L), (bP + 1))]
462+ else [StringEntry((((((((("bid_" + L) + "_") + bb) + "_") + J) + "_") + by) + "_OPEN"), ((((aH + "_") + toString(aE)) + "_") + toString(bs))), IntegerEntry(("current_bidamount_" + L), (bO + 1))]
471463 }
472464 }
473465
474466
475-func bR (aC,L,bb) = {
476- let bS = E(V(bb, L))
477- let bT = ap(L)
478- if ((height > bS))
467+func bP (aC,L,bb) = {
468+ let bQ = E(V(bb, L))
469+ let bR = ap(L)
470+ if ((height > bQ))
479471 then throw("This auction is finished already!")
480472 else {
481- let bU = aZ(aC)
482- let bz = bU._1
483- let J = bU._2
484- let bt = bU._3
485- let bV = aB(aC)
486- let aD = bV._1
487- let aE = bV._2
488- if ((bT >= aE))
489- then throw(("Please place a bid higher than: " + toString(bT)))
473+ let bS = aZ(aC)
474+ let by = bS._1
475+ let J = bS._2
476+ let bs = bS._3
477+ let bT = aB(aC)
478+ let aD = bT._1
479+ let aE = bT._2
480+ if ((bR >= aE))
481+ then throw(("Please place a bid higher than: " + toString(bR)))
490482 else {
491483 let aH = if (!(isDefined(aD.assetId)))
492484 then throw("Only USDN is accepted!")
493485 else toBase58String(value(aD.assetId))
494- let bP = E(("current_bidamount_" + L))
495- let bQ = valueOrElse(E(af(bb, L)), (an * 2))
486+ let bO = E(("current_bidamount_" + L))
487+ let bU = valueOrElse(E(af(bb, L)), (an * 2))
496488 if (!(aO(aH)))
497489 then throw("asset not accepted")
498- else if ((bQ > aE))
490+ else if ((bU > aE))
499491 then throw("Bid is below min price!")
500492 else {
501493 let bh = E(X(bb, L))
504496 then throw("No max edition set for this artwork")
505497 else if ((bh >= bi))
506498 then throw("Sold out, you cannot bid")
507- else [StringEntry((((((((("bid_" + L) + "_") + bb) + "_") + J) + "_") + bz) + "_OPEN"), ((((aH + "_") + toString(aE)) + "_") + toString(bt))), IntegerEntry(("current_bidamount_" + L), (bP + 1)), StringEntry(R(L), toBase58String(aC.transactionId)), IntegerEntry(S(toBase58String(aC.transactionId)), aE)]
499+ else [StringEntry((((((((("bid_" + L) + "_") + bb) + "_") + J) + "_") + by) + "_OPEN"), ((((aH + "_") + toString(aE)) + "_") + toString(bs))), IntegerEntry(("current_bidamount_" + L), (bO + 1)), StringEntry(R(L), toBase58String(aC.transactionId)), IntegerEntry(S(toBase58String(aC.transactionId)), aE)]
508500 }
509501 }
510502 }
511503 }
512504
513505
514-func bW (aC,L,bb,T,bk) = {
506+func bV (aC,L,bb,T,bk) = {
515507 let J = toBase58String(aC.caller.bytes)
516508 if ((J != bb))
517509 then throw("You cannot do this action")
518- else bx(aC, L, bb, T, bk, true)
510+ else bw(aC, L, bb, T, bk, true)
519511 }
520512
521513
522-func bX (L,bb) = {
514+func bW (L,bb) = {
523515 let bh = E(X(bb, L))
524516 let bi = E(Q(bb, L))
525- let bY = E(V(bb, L))
526- let bZ = E(U(bb, L))
527- let bS = (bZ + height)
528- if ((height > bY))
517+ let bX = E(V(bb, L))
518+ let bY = E(U(bb, L))
519+ let bQ = (bY + height)
520+ if ((height > bX))
529521 then if ((bh == bi))
530522 then throw("Can't restart auction, max amount sold")
531- else [IntegerEntry(V(bb, L), bS), DeleteEntry(R(L))]
523+ else [IntegerEntry(V(bb, L), bQ), DeleteEntry(R(L))]
532524 else throw("Previous auction isn't completed yet")
533525 }
534526
535527
536-func ca (aC,L,bb,T,bk) = {
537- let bS = E(V(bb, L))
538- let cb = A(R(L))
539- if ((height > bS))
540- then if ((T == cb))
528+func bZ (aC,L,bb,T,bk) = {
529+ let bQ = E(V(bb, L))
530+ let ca = A(R(L))
531+ if ((height > bQ))
532+ then if ((T == ca))
541533 then {
542- let cc = bx(aC, L, bb, T, bk, true)
543- let cd = bX(L, bb)
544- (cd ++ cc)
534+ let cb = bw(aC, L, bb, T, bk, true)
535+ let cc = bW(L, bb)
536+ (cc ++ cb)
545537 }
546538 else throw("This is not the winning bid!")
547539 else throw("This auction is not yet finished!")
548540 }
549541
550542
551-func ce (aC,L,bb,T) = {
552- let cf = aZ(aC)
553- let bz = cf._1
554- let J = cf._2
555- let bt = cf._3
556- let bP = E(("current_bidamount_" + L))
543+func cd (aC,L,bb,T) = {
544+ let ce = aZ(aC)
545+ let by = ce._1
546+ let J = ce._2
547+ let bs = ce._3
548+ let bO = E(("current_bidamount_" + L))
557549 let aU = ((((((("bid_" + L) + "_") + bb) + "_") + J) + "_") + T)
558550 let aV = B((aU + "_OPEN"), "Bid not found")
559551 let aW = split(aV, "_")
560552 let aH = aS(aW[0])
561- let cg = "CANCELED"
562-[DeleteEntry((aU + "_OPEN")), StringEntry(((aU + "_") + cg), ((aV + "_") + toString(bt))), IntegerEntry(("current_bidamount_" + L), (bP - 1)), ScriptTransfer(Address(fromBase58String(J)), parseIntValue(aW[1]), aH)]
553+ let cf = "CANCELED"
554+[DeleteEntry((aU + "_OPEN")), StringEntry(((aU + "_") + cf), ((aV + "_") + toString(bs))), IntegerEntry(("current_bidamount_" + L), (bO - 1)), ScriptTransfer(Address(fromBase58String(J)), parseIntValue(aW[1]), aH)]
563555 }
564556
565557
566-func ch (aC,L,bb,T) = {
567- let cf = aZ(aC)
568- let bz = cf._1
569- let J = cf._2
570- let bt = cf._3
571- let bP = E(("current_bidamount_" + L))
558+func cg (aC,L,bb,T) = {
559+ let ce = aZ(aC)
560+ let by = ce._1
561+ let J = ce._2
562+ let bs = ce._3
563+ let bO = E(("current_bidamount_" + L))
572564 let aU = ((((((("bid_" + L) + "_") + bb) + "_") + J) + "_") + T)
573565 let aV = B((aU + "_OPEN"), "Bid not found")
574566 let aW = split(aV, "_")
575567 let aH = aS(aW[0])
576- let cg = "CANCELED"
568+ let cf = "CANCELED"
577569 let aX = parseIntValue(aW[1])
578- let cb = A(R(L))
579- if ((T == cb))
570+ let ca = A(R(L))
571+ if ((T == ca))
580572 then throw("You can't cancel the highest bid!")
581- else [DeleteEntry((aU + "_OPEN")), StringEntry(((aU + "_") + cg), ((aV + "_") + toString(bt))), IntegerEntry(("current_bidamount_" + L), (bP - 1)), ScriptTransfer(Address(fromBase58String(J)), aX, aH)]
573+ else [DeleteEntry((aU + "_OPEN")), StringEntry(((aU + "_") + cf), ((aV + "_") + toString(bs))), IntegerEntry(("current_bidamount_" + L), (bO - 1)), ScriptTransfer(Address(fromBase58String(J)), aX, aH)]
582574 }
583575
584576
585577 @Callable(aC)
586-func initDapp (ci) = if ((aC.caller != this))
578+func initDapp (ch) = if ((aC.caller != this))
587579 then throw("You cannot do this action")
588580 else if ((g != ""))
589581 then throw("oracle already set, you can't override!")
590- else [StringEntry(b, ci)]
582+ else [StringEntry(b, ch)]
591583
592584
593585
594586 @Callable(aC)
595587 func restartAuctionManual (L) = if ((ap(L) != 0))
596588 then throw("Please accept the highest bid!")
597- else bX(L, toBase58String(aC.caller.bytes))
589+ else bW(L, toBase58String(aC.caller.bytes))
598590
599591
600592
601593 @Callable(aC)
602-func mintNft (be,bp,br) = if ((aC.caller == this))
594+func mintNft (be,bo,bq) = if ((aC.caller == this))
603595 then {
604- let cj = Address(fromBase58String(br))
605- let ck = Issue(("SCONEX_" + toString((be + 1))), bp, 1, 0, false)
606- let bD = calculateAssetId(ck)
607- $Tuple2([ck, ScriptTransfer(cj, 1, bD)], toBase58String(bD))
596+ let ci = Address(fromBase58String(bq))
597+ let cj = Issue(("SCONEX_" + toString((be + 1))), bo, 1, 0, false)
598+ let bC = calculateAssetId(cj)
599+ $Tuple2([cj, ScriptTransfer(ci, 1, bC)], toBase58String(bC))
608600 }
609601 else throw("Only the dApp can mint NFT's")
610602
611603
612604
613605 @Callable(aC)
614-func addArtwork (ak,ax,ay,az,cl,aw,cm,cn,co,cp) = {
615- let cq = aZ(aC)
616- let L = cq._1
617- let J = cq._2
618- let bt = cq._3
619- if (containsElement(p, cl))
606+func addArtwork (ak,ax,ay,az,ck,aw,cl,cm,cn,co) = {
607+ let cp = aZ(aC)
608+ let L = cp._1
609+ let J = cp._2
610+ let bs = cp._3
611+ if (containsElement(p, ck))
620612 then {
621- let cr = av(J, aw, ax, ay, az)
622- if ((cr != ""))
613+ let cq = av(J, aw, ax, ay, az)
614+ if ((cq != ""))
623615 then throw("Something went wrong!")
624616 else {
625- let cs = aF(aC)
626- let aE = cs._1
627- let aH = cs._2
617+ let cr = aF(aC)
618+ let aE = cr._1
619+ let aH = cr._2
628620 if (!(isDefined(aE)))
629621 then throw("Something went wrong")
630622 else {
631- let ct = if (containsElement(q, cl))
632- then [StringEntry(P(J, L), cn)]
623+ let cs = if (containsElement(q, ck))
624+ then [StringEntry(P(J, L), cm)]
633625 else nil
634- let cu = invoke(valueOrErrorMessage(addressFromString(j), (j + " not found")), "collectionProcess", [co, cp, J], nil)
635- if ((cu == cu))
626+ let ct = invoke(valueOrErrorMessage(addressFromString(j), (j + " not found")), "collectionProcess", [cn, co, J], nil)
627+ if ((ct == ct))
636628 then {
637- let cv = {
638- let e = cu
629+ let cu = {
630+ let e = ct
639631 if ($isInstanceOf(e, "String"))
640632 then {
641- let bE = e
642- bE
633+ let bD = e
634+ bD
643635 }
644636 else throw("Incorrect invoke result")
645637 }
646- let cw = A(al(ak, J))
647- if ((cw != ""))
638+ let cv = A(al(ak, J))
639+ if ((cv != ""))
648640 then throw("You already added it")
649641 else {
650- let cx = A(aj(ak))
651- if ((cx != ""))
642+ let cw = A(aj(ak))
643+ if ((cw != ""))
652644 then throw("This hash is already registered")
653- else (ct ++ [StringEntry(aj(ak), J), StringEntry(al(ak, J), L), IntegerEntry(K(J, L), bt), StringEntry(M(J, L), ax), StringEntry(N(J, L), ay), StringEntry(O(J, L), aw), StringEntry(ae(J, L), cl), StringEntry(ad(J, L), az), IntegerEntry(Q(J, L), 0), IntegerEntry(X(J, L), 0), BooleanEntry(ab(J, L), false), StringEntry(ah(J, L), ak), StringEntry(ac(J, L), cm), ScriptTransfer(Address(fromBase58String(k)), aE, aH)])
645+ else (cs ++ [StringEntry(aj(ak), J), StringEntry(al(ak, J), L), IntegerEntry(K(J, L), bs), StringEntry(M(J, L), ax), StringEntry(N(J, L), ay), StringEntry(O(J, L), aw), StringEntry(ae(J, L), ck), StringEntry(ad(J, L), az), IntegerEntry(Q(J, L), 0), IntegerEntry(X(J, L), 0), BooleanEntry(ab(J, L), false), StringEntry(ah(J, L), ak), StringEntry(ac(J, L), cl), ScriptTransfer(Address(fromBase58String(k)), aE, aH)])
654646 }
655647 }
656648 else throw("Strict value is not equal to itself.")
663655
664656
665657 @Callable(aC)
666-func sellArtwork (L,aQ,cy,aH,cz,bZ,cA,cB,cC,cD,cE,cF) = {
667- let bI = invoke(valueOrErrorMessage(addressFromString(m), (m + " not found")), "teamSplitFee", [L, k, "", "", 15, 0, 0], nil)
668- if ((bI == bI))
658+func sellArtwork (L,aQ,cx,aH,cy,bY,cz,cA,cB,cC,cD,cE) = {
659+ let bH = invoke(valueOrErrorMessage(addressFromString(m), (m + " not found")), "teamSplitFee", [L, k, "", "", 15, 0, 0], nil)
660+ if ((bH == bH))
669661 then {
670- let cG = invoke(valueOrErrorMessage(addressFromString(m), (m + " not found")), "creatorSplitFee", [L, cA, cB, cC, cD, cE, cF], nil)
671- if ((cG == cG))
662+ let cF = invoke(valueOrErrorMessage(addressFromString(m), (m + " not found")), "creatorSplitFee", [L, cz, cA, cB, cC, cD, cE], nil)
663+ if ((cF == cF))
672664 then {
673- let cH = aZ(aC)
674- let bz = cH._1
675- let J = cH._2
665+ let cG = aZ(aC)
666+ let by = cG._1
667+ let J = cG._2
676668 let bf = A(M(J, L))
677- if (!(containsElement([w, x, y], cz)))
669+ if (!(containsElement([w, x, y], cy)))
678670 then throw("We don't know this auction type")
679671 else if ((bf == ""))
680672 then throw("This art doesn't match your account")
681673 else {
682- let bP = E(("current_bidamount_" + L))
674+ let bO = E(("current_bidamount_" + L))
683675 if (!(aO(aH)))
684676 then throw("Something went wrong!")
685677 else if (!(aP(aH, aQ)))
691683 else {
692684 let bh = E(X(J, L))
693685 let bi = E(Q(J, L))
694- if ((cy > 10000))
686+ if ((cx > 10000))
695687 then throw("10000 editions max per artwork")
696688 else if (if ((bh != 0))
697689 then (bh == bi)
698690 else false)
699691 then throw("Max edition reached.")
700692 else if (if ((bh > 0))
701- then (bi != cy)
693+ then (bi != cx)
702694 else false)
703695 then throw("Cannot change maximum issuable anymore")
704- else if (if ((bP > 0))
705- then (bi != cy)
696+ else if (if ((bO > 0))
697+ then (bi != cx)
706698 else false)
707699 then throw("Cannot change maximum issuable with active orders")
708700 else {
709- let bq = if (if ((aQ > 0))
710- then (cy > 0)
701+ let bp = if (if ((aQ > 0))
702+ then (cx > 0)
711703 else false)
712704 then true
713705 else false
714- let bS = (bZ + height)
715-[BooleanEntry(ab(J, L), bq), IntegerEntry(af(J, L), aQ), IntegerEntry(Q(J, L), cy), IntegerEntry(U(J, L), bZ), IntegerEntry(V(J, L), bS), StringEntry(ag(J, L), aH), StringEntry(W(J, L), cz)]
706+ let bQ = (bY + height)
707+[BooleanEntry(ab(J, L), bp), IntegerEntry(af(J, L), aQ), IntegerEntry(Q(J, L), cx), IntegerEntry(U(J, L), bY), IntegerEntry(V(J, L), bQ), StringEntry(ag(J, L), aH), StringEntry(W(J, L), cy)]
716708 }
717709 }
718710 }
727719
728720 @Callable(aC)
729721 func buyArtwork (L,bb) = {
730- let cz = A(W(bb, L))
731- if ((cz == y))
732- then bx(aC, L, bb, "", "", false)
722+ let cy = A(W(bb, L))
723+ if ((cy == y))
724+ then bw(aC, L, bb, "", "", false)
733725 else throw("Direct buy only allowed when no auction type is set!")
734726 }
735727
736728
737729
738730 @Callable(aC)
739-func updateTags (cI,L,az) = {
731+func updateTags (cH,L,az) = {
740732 let J = toString(addressFromPublicKey(aC.callerPublicKey))
741733 if (containsElement(i, J))
742734 then if ((size(split(az, ",")) > 5))
743735 then throw("5 tags max.")
744736 else {
745- let cJ = B(ad(cI, L), "No tags created with this key, so can't update!")
746- if ((az == cJ))
737+ let cI = B(ad(cH, L), "No tags created with this key, so can't update!")
738+ if ((az == cI))
747739 then throw("Tags are the same as old tags!")
748- else [StringEntry(ad(cI, L), az)]
740+ else [StringEntry(ad(cH, L), az)]
749741 }
750742 else throw("no")
751743 }
753745
754746
755747 @Callable(aC)
756-func deleteEntry (cK) = {
748+func deleteEntry (cJ) = {
757749 let J = toString(addressFromPublicKey(aC.callerPublicKey))
758750 if (containsElement(i, J))
759- then [DeleteEntry(cK)]
751+ then [DeleteEntry(cJ)]
760752 else throw("no")
761753 }
762754
764756
765757 @Callable(aC)
766758 func setBid (L,bb) = {
767- let cz = A(W(bb, L))
768- if ((cz == w))
769- then bM(aC, L, bb)
770- else if ((cz == x))
771- then bR(aC, L, bb)
772- else throw((("Unknown auction type :" + cz) + ", please contact the admins"))
759+ let cy = A(W(bb, L))
760+ if ((cy == w))
761+ then bL(aC, L, bb)
762+ else if ((cy == x))
763+ then bP(aC, L, bb)
764+ else throw((("Unknown auction type :" + cy) + ", please contact the admins"))
773765 }
774766
775767
776768
777769 @Callable(aC)
778770 func acceptBid (L,bb,T,bk) = {
779- let cz = A(W(bb, L))
780- if ((cz == w))
781- then bW(aC, L, bb, T, bk)
782- else if ((cz == x))
783- then ca(aC, L, bb, T, bk)
784- else throw((("Unknown auction type :" + cz) + ", please contact the admins"))
771+ let cy = A(W(bb, L))
772+ if ((cy == w))
773+ then bV(aC, L, bb, T, bk)
774+ else if ((cy == x))
775+ then bZ(aC, L, bb, T, bk)
776+ else throw((("Unknown auction type :" + cy) + ", please contact the admins"))
785777 }
786778
787779
788780
789781 @Callable(aC)
790782 func cancelBid (L,bb,T) = {
791- let cz = A(W(bb, L))
792- if ((cz == w))
793- then ce(aC, L, bb, T)
794- else ch(aC, L, bb, T)
783+ let cy = A(W(bb, L))
784+ if ((cy == w))
785+ then cd(aC, L, bb, T)
786+ else cg(aC, L, bb, T)
795787 }
796788
797789
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = false
55
66 let b = "oracleKey"
77
88 func c (d) = {
99 let e = getString(this, d)
1010 if ($isInstanceOf(e, "String"))
1111 then {
1212 let f = e
1313 f
1414 }
1515 else ""
1616 }
1717
1818
1919 let g = c(b)
2020
2121 let h = value(addressFromString(g))
2222
2323 let i = [getString(h, "owner1"), getString(h, "owner2")]
2424
2525 let j = valueOrErrorMessage(getString(h, "collectionsDapp"), "collectionDapp not found")
2626
2727 let k = valueOrErrorMessage(getString(h, "feeReceiver"), "feeReceiver not found")
2828
2929 let l = valueOrErrorMessage(getString(h, "certDapp"), "certDapp not found")
3030
3131 let m = valueOrErrorMessage(getString(h, "feeDapp"), "feeDapp not found")
3232
3333 let n = value(addressFromString(valueOrErrorMessage(getString(h, "userDapp"), "userdapp not found")))
3434
3535 let o = fromBase58String(getStringValue(h, "USDNAssetId"))
3636
3737 let p = ["IMAGE", "PDF", "VIDEO"]
3838
3939 let q = ["PDF"]
4040
4141 let r = valueOrElse(getBoolean(n, "conf_dapp_is_running"), true)
4242
4343 let s = valueOrElse(getString(n, "conf_maintenance_msg"), "")
4444
4545 let t = "SUSPENDED"
4646
4747 let u = "REMOVED"
4848
4949 let v = "UNREGISTERED"
5050
5151 let w = "BIDTYPE"
5252
5353 let x = "TRADITIONAL"
5454
5555 let y = "DIRECT"
5656
5757 func z (d) = valueOrElse(getString(n, d), "")
5858
5959
6060 func A (d) = valueOrElse(getString(this, d), "")
6161
6262
6363 func B (d,C) = valueOrErrorMessage(getString(this, d), C)
6464
6565
6666 func D (d) = valueOrErrorMessage(getInteger(h, d), "Integer undefine or 0 in oracle")
6767
6868
6969 func E (d) = valueOrElse(getInteger(this, d), 0)
7070
7171
7272 func F (d) = valueOrElse(getBoolean(this, d), false)
7373
7474
7575 func G (H) = (size(H) == 64)
7676
7777
7878 func I (J) = ("user_status_" + J)
7979
8080
8181 func K (J,L) = ((("art_date_" + L) + "_") + J)
8282
8383
8484 func M (J,L) = ((("art_name_" + L) + "_") + J)
8585
8686
8787 func N (J,L) = ((("art_desc_" + L) + "_") + J)
8888
8989
9090 func O (J,L) = ((("art_display_cid_" + L) + "_") + J)
9191
9292
9393 func P (J,L) = ((("art_preview_cid_" + L) + "_") + J)
9494
9595
9696 func Q (J,L) = ((("art_maxmint_" + L) + "_") + J)
9797
9898
9999 func R (L) = ("art_highestBidBidId_" + L)
100100
101101
102102 func S (T) = ("bid_" + T)
103103
104104
105105 func U (J,L) = ((("art_duration_" + L) + "_") + J)
106106
107107
108108 func V (J,L) = ((("art_endheight_" + L) + "_") + J)
109109
110110
111111 func W (J,L) = ((("art_auctiontype_" + L) + "_") + J)
112112
113113
114114 func X (J,L) = ((("art_issued_" + L) + "_") + J)
115115
116116
117117 func Y (Z) = ("nft_issued_" + Z)
118118
119119
120120 func aa (Z) = ("nft_artId_" + Z)
121121
122122
123123 func ab (J,L) = ((("art_onsale_" + L) + "_") + J)
124124
125125
126126 func ac (J,L) = ((("art_entitlement_" + L) + "_") + J)
127127
128128
129129 func ad (J,L) = ((("art_tags_" + L) + "_") + J)
130130
131131
132132 func ae (J,L) = ((("art_type_" + L) + "_") + J)
133133
134134
135135 func af (J,L) = ((("art_price_" + L) + "_") + J)
136136
137137
138138 func ag (J,L) = ((("art_assetAccepted_" + L) + "_") + J)
139139
140140
141141 func ah (J,ai) = ((("get_hashbytxidaddr_" + ai) + "_") + J)
142142
143143
144144 func aj (ak) = ("get_owner_by_hash_" + ak)
145145
146146
147147 func al (ak,J) = ("get_txid_by_hash_owner_" + toBase58String(sha256_16Kb(toBytes((ak + J)))))
148148
149149
150150 func am (J,L) = ((("collection_" + L) + "_") + J)
151151
152152
153153 let an = D(("certification_fee_" + toBase58String(o)))
154154
155155 func ao (T) = valueOrElse(E(S(T)), 0)
156156
157157
158158 func ap (L) = {
159159 let T = A(R(L))
160160 if ((T == ""))
161161 then 0
162162 else ao(T)
163163 }
164164
165165
166166 func aq (ar,as) = if ((size(ar) == 0))
167167 then throw("Field cannot be is empty")
168168 else if ((size(ar) > as))
169169 then throw((ar + " is too long"))
170170 else true
171171
172172
173173 func at (J) = {
174174 let au = valueOrElse(getString(n, I(J)), v)
175175 if ((au == v))
176176 then "Register this account first with 'Account' tab"
177177 else if ((au == t))
178178 then "Account suspended"
179179 else if ((au == u))
180180 then "Account removed"
181181 else ""
182182 }
183183
184184
185185 func av (J,aw,ax,ay,az) = {
186186 let aA = at(J)
187187 if ((aA != ""))
188188 then throw(aA)
189189 else if ((size(aw) == 0))
190190 then throw("Display CID cannot be empty")
191191 else if ((size(aw) != 46))
192192 then throw("This doesn't seem a valid CID!")
193193 else if (!(aq(ax, 100)))
194194 then throw("100 Char. max name")
195195 else if (!(aq(ay, 1000)))
196196 then throw("1000 Char. max description")
197197 else if ((size(split(az, ",")) > 5))
198198 then throw("5 tags max.")
199199 else ""
200200 }
201201
202202
203203 func aB (aC) = if ((size(aC.payments) == 0))
204204 then throw("No payment attached")
205205 else {
206206 let aD = value(aC.payments[0])
207207 let aE = value(aD.amount)
208208 $Tuple2(aD, aE)
209209 }
210210
211211
212212 func aF (aC) = {
213213 let aG = aB(aC)
214214 let aD = aG._1
215215 let aE = aG._2
216216 let aH = if (if (isDefined(aD.assetId))
217217 then (aD.assetId == o)
218218 else false)
219219 then aD.assetId
220220 else throw("Only USDN token accepted as transaction fee")
221221 if ((aE != an))
222222 then throw(((("Payment amount should be " + toString(an)) + " but is: ") + toString(aE)))
223223 else $Tuple2(aE, aH)
224224 }
225225
226226
227227 func aI (aJ,L) = {
228228 let e = getInteger(this, X(aJ, L))
229229 if ($isInstanceOf(e, "Int"))
230230 then {
231231 let f = e
232232 if ((f != 0))
233233 then true
234234 else false
235235 }
236236 else false
237237 }
238238
239239
240240 func aK (aC,aL,aM) = {
241241 let aN = aB(aC)
242242 let aD = aN._1
243243 let aE = aN._2
244244 let aH = if (!(isDefined(aD.assetId)))
245245 then throw("Wrong asset id")
246246 else if (if ((size(aL) > 0))
247247 then (toBase58String(value(aD.assetId)) == aL)
248248 else false)
249249 then aD.assetId
250250 else throw("Wrong asset id")
251251 if (if ((aH == unit))
252252 then (aL != "")
253253 else false)
254254 then throw("Wrong asset id")
255255 else if ((aM != aE))
256256 then throw(((("Payment don't match " + toString(aM)) + " ") + toString(aE)))
257257 else $Tuple2(aE, aH)
258258 }
259259
260260
261261 func aO (aH) = if ((aH != toBase58String(o)))
262262 then throw("Only USDN accepted")
263263 else true
264264
265265
266266 func aP (aH,aQ) = {
267- let aR = if (a)
268- then 1
269- else (an * 2)
270- if (if (if ((aH == toBase58String(o)))
271- then (aR > aQ)
272- else false)
273- then (aQ != 0)
274- else false)
267+ let aR = an
268+ if (if ((aR > aQ))
269+ then true
270+ else (aH != toBase58String(o)))
275271 then throw(("Wrong minimum sell price " + toString(aR)))
276272 else true
277273 }
278274
279275
280276 func aS (aH) = if ((aH == "WAVES"))
281277 then throw("Only USDN is accepted!")
282278 else fromBase58String(aH)
283279
284280
285281 func aT (aU) = {
286282 let aV = A((aU + "_OPEN"))
287283 if ((aV == ""))
288284 then throw("Bid not found")
289285 else {
290286 let aW = split(aV, "_")
291287 let aX = parseIntValue(aW[1])
292288 let aY = aS(aW[0])
293289 if ((0 >= aX))
294290 then throw("Wrong amount")
295291 else $Tuple2(aX, aY)
296292 }
297293 }
298294
299295
300296 func aZ (aC) = if (!(r))
301297 then throw(s)
302298 else $Tuple3(toBase58String(aC.transactionId), toBase58String(aC.caller.bytes), lastBlock.timestamp)
303299
304300
305301 func ba (aC,bb,L,bc) = {
306302 let bd = (toBase58String(aC.caller.bytes) == bb)
307303 let be = E("total_nft_issued")
308304 let bf = A(M(bb, L))
309305 if ((bf == ""))
310306 then throw("Art doesn't exist")
311307 else {
312308 let bg = F(ab(bb, L))
313309 let bh = E(X(bb, L))
314310 let aM = valueOrElse(E(af(bb, L)), (an * 2))
315311 let aL = if (bd)
316312 then toBase58String(o)
317313 else A(ag(bb, L))
318314 let bi = E(Q(bb, L))
319315 if (if (if (!(bc))
320316 then !(bd)
321317 else false)
322318 then if (if ((0 >= aM))
323319 then true
324320 else !(bg))
325321 then true
326322 else (0 >= bi)
327323 else false)
328324 then throw("Art not for sale")
329325 else if (if (if (!(bc))
330326 then bd
331327 else false)
332328 then (0 >= bi)
333329 else false)
334330 then throw("Max issuable not set")
335331 else $Tuple7(be, bf, bh, aM, aL, bi, bg)
336332 }
337333 }
338334
339335
340336 func bj (aC,J,bb,L,bk,T,aL,aM,bc) = {
341337 let aA = at(bb)
342338 if (if (bc)
343339 then (aA != "")
344340 else false)
345341 then throw(aA)
346342 else {
347343 let aU = ((((((("bid_" + L) + "_") + bb) + "_") + bk) + "_") + T)
348344 let bl = if (bc)
349345 then aT(aU)
350346 else aK(aC, aL, aM)
351347 let aE = bl._1
352348 let aH = bl._2
353349 $Tuple3(aU, aE, aH)
354350 }
355351 }
356352
357353
358-func bm (bb,aH,aE,bh,bi) = $Tuple3(0, 0, 0)
359-
360-
361-func bn (bb,L,bf,bo,bi,be,J,bk,T,aC,bg) = {
362- let bp = ((((((((("Creator: " + bb) + ",ArtID: ") + L) + ",Artwork name: ") + bf) + ",Issue: ") + toString(bo)) + "/") + toString(bi))
363- let bq = if (if ((bo == bi))
354+func bm (bb,L,bf,bn,bi,be,J,bk,T,aC,bg) = {
355+ let bo = ((((((((("Creator: " + bb) + ",ArtID: ") + L) + ",Artwork name: ") + bf) + ",Issue: ") + toString(bn)) + "/") + toString(bi))
356+ let bp = if (if ((bn == bi))
364357 then true
365358 else !(bg))
366359 then false
367360 else true
368- let br = if ((bk != ""))
361+ let bq = if ((bk != ""))
369362 then addressFromStringValue(bk)
370363 else aC.caller
371- $Tuple3(bq, br, bp)
364+ $Tuple3(bp, bq, bo)
372365 }
373366
374367
375-func bs (aH,aU,bt) = {
376- let bu = if (!(isDefined(aH)))
368+func br (aH,aU,bs) = {
369+ let bt = if (!(isDefined(aH)))
377370 then throw("Only USDN is accepted")
378371 else toBase58String(value(aH))
379372 let aV = A((aU + "_OPEN"))
380- let bv = DeleteEntry((aU + "_OPEN"))
381- let bw = StringEntry((aU + "_CLOSED"), ((aV + "_") + toString(bt)))
382- $Tuple3(bu, bv, bw)
373+ let bu = DeleteEntry((aU + "_OPEN"))
374+ let bv = StringEntry((aU + "_CLOSED"), ((aV + "_") + toString(bs)))
375+ $Tuple3(bt, bu, bv)
383376 }
384377
385378
386-func bx (aC,L,bb,T,bk,bc) = {
387- let by = aZ(aC)
388- let bz = by._1
389- let J = by._2
390- let bt = by._3
391- let bA = ba(aC, bb, L, bc)
392- let be = bA._1
393- let bf = bA._2
394- let bh = bA._3
395- let aM = bA._4
396- let aL = bA._5
397- let bi = bA._6
398- let bg = bA._7
379+func bw (aC,L,bb,T,bk,bc) = {
380+ let bx = aZ(aC)
381+ let by = bx._1
382+ let J = bx._2
383+ let bs = bx._3
384+ let bz = ba(aC, bb, L, bc)
385+ let be = bz._1
386+ let bf = bz._2
387+ let bh = bz._3
388+ let aM = bz._4
389+ let aL = bz._5
390+ let bi = bz._6
391+ let bg = bz._7
399392 let aV = bj(aC, J, bb, L, bk, T, aL, aM, bc)
400393 let aU = aV._1
401394 let aE = aV._2
402395 let aH = aV._3
403- let bo = if ((bh == bi))
396+ let bn = if ((bh == bi))
404397 then throw("Max items sold")
405398 else (bh + 1)
406- let bB = bn(bb, L, bf, bo, bi, be, J, bk, T, aC, bg)
407- let bq = bB._1
408- let br = bB._2
409- let bp = bB._3
410- let bC = invoke(this, "mintNft", [be, bp, toString(br)], nil)
411- if ((bC == bC))
399+ let bA = bm(bb, L, bf, bn, bi, be, J, bk, T, aC, bg)
400+ let bp = bA._1
401+ let bq = bA._2
402+ let bo = bA._3
403+ let bB = invoke(this, "mintNft", [be, bo, toString(bq)], nil)
404+ if ((bB == bB))
412405 then {
413- let bD = {
414- let e = bC
406+ let bC = {
407+ let e = bB
415408 if ($isInstanceOf(e, "String"))
416409 then {
417- let bE = e
418- bE
410+ let bD = e
411+ bD
419412 }
420413 else throw("Incorrect invoke result")
421414 }
422- let bF = bs(aH, aU, bt)
423- let bu = bF._1
424- let bv = bF._2
425- let bw = bF._3
426- let bG = ((((((("art_sold_" + toString(bo)) + "_of_") + toString(bi)) + "_") + L) + "_") + bb)
427- let bH = if (!(bc))
428- then ((((((((((J + "_") + toString(bt)) + "_") + bz) + "_") + toString(aM)) + "_") + aL) + "_") + bD)
429- else ((((((((((toString(br) + "_") + toString(bt)) + "_") + bz) + "_") + toString(aE)) + "_") + bu) + "_") + bD)
430- let bI = invoke(valueOrErrorMessage(addressFromString(m), (m + " not found")), "payFee", [L], [AttachedPayment(aH, aE)])
431- if ((bI == bI))
415+ let bE = br(aH, aU, bs)
416+ let bt = bE._1
417+ let bu = bE._2
418+ let bv = bE._3
419+ let bF = ((((((("art_sold_" + toString(bn)) + "_of_") + toString(bi)) + "_") + L) + "_") + bb)
420+ let bG = if (!(bc))
421+ then ((((((((((J + "_") + toString(bs)) + "_") + by) + "_") + toString(aM)) + "_") + aL) + "_") + bC)
422+ else ((((((((((toString(bq) + "_") + toString(bs)) + "_") + by) + "_") + toString(aE)) + "_") + bt) + "_") + bC)
423+ let bH = invoke(valueOrErrorMessage(addressFromString(m), (m + " not found")), "payFee", [L, bb], [AttachedPayment(aH, aE)])
424+ if ((bH == bH))
432425 then {
433- let bJ = StringEntry(bG, bH)
434- let bK = [IntegerEntry(X(bb, L), bo), StringEntry(("nft_" + bD), bG), IntegerEntry("total_nft_issued", (be + 1)), BooleanEntry(ab(bb, L), bq), StringEntry(Y(bD), bb), StringEntry(aa(bD), L)]
435- let bL = invoke(addressFromStringValue(l), "createCert", [toString(br), bD, bb], nil)
436- if ((bL == bL))
426+ let bI = StringEntry(bF, bG)
427+ let bJ = [IntegerEntry(X(bb, L), bn), StringEntry(("nft_" + bC), bF), IntegerEntry("total_nft_issued", (be + 1)), BooleanEntry(ab(bb, L), bp), StringEntry(Y(bC), bb), StringEntry(aa(bC), L)]
428+ let bK = invoke(addressFromStringValue(l), "createCert", [toString(bq), bC, bb], nil)
429+ if ((bK == bK))
437430 then if (bc)
438- then (((bK :+ bJ) :+ bw) :+ bv)
439- else bJ :: bK
431+ then (((bJ :+ bI) :+ bv) :+ bu)
432+ else bI :: bJ
440433 else throw("Strict value is not equal to itself.")
441434 }
442435 else throw("Strict value is not equal to itself.")
443436 }
444437 else throw("Strict value is not equal to itself.")
445438 }
446439
447440
448-func bM (aC,L,bb) = {
449- let bN = aZ(aC)
450- let bz = bN._1
451- let J = bN._2
452- let bt = bN._3
453- let bO = aB(aC)
454- let aD = bO._1
455- let aE = bO._2
441+func bL (aC,L,bb) = {
442+ let bM = aZ(aC)
443+ let by = bM._1
444+ let J = bM._2
445+ let bs = bM._3
446+ let bN = aB(aC)
447+ let aD = bN._1
448+ let aE = bN._2
456449 let aH = if (!(isDefined(aD.assetId)))
457450 then throw("Only USDN is accepted!")
458451 else toBase58String(value(aD.assetId))
459- let bP = E(("current_bidamount_" + L))
460- let bQ = valueOrElse(E(af(bb, L)), (an * 2))
452+ let bO = E(("current_bidamount_" + L))
461453 if (!(aO(aH)))
462454 then throw("asset not accepted")
463455 else {
464456 let bh = E(X(bb, L))
465457 let bi = E(Q(bb, L))
466458 if ((0 >= bi))
467459 then throw("No max edition set for this artwork")
468460 else if ((bh >= bi))
469461 then throw("Sold out, you cannot bid")
470- else [StringEntry((((((((("bid_" + L) + "_") + bb) + "_") + J) + "_") + bz) + "_OPEN"), ((((aH + "_") + toString(aE)) + "_") + toString(bt))), IntegerEntry(("current_bidamount_" + L), (bP + 1))]
462+ else [StringEntry((((((((("bid_" + L) + "_") + bb) + "_") + J) + "_") + by) + "_OPEN"), ((((aH + "_") + toString(aE)) + "_") + toString(bs))), IntegerEntry(("current_bidamount_" + L), (bO + 1))]
471463 }
472464 }
473465
474466
475-func bR (aC,L,bb) = {
476- let bS = E(V(bb, L))
477- let bT = ap(L)
478- if ((height > bS))
467+func bP (aC,L,bb) = {
468+ let bQ = E(V(bb, L))
469+ let bR = ap(L)
470+ if ((height > bQ))
479471 then throw("This auction is finished already!")
480472 else {
481- let bU = aZ(aC)
482- let bz = bU._1
483- let J = bU._2
484- let bt = bU._3
485- let bV = aB(aC)
486- let aD = bV._1
487- let aE = bV._2
488- if ((bT >= aE))
489- then throw(("Please place a bid higher than: " + toString(bT)))
473+ let bS = aZ(aC)
474+ let by = bS._1
475+ let J = bS._2
476+ let bs = bS._3
477+ let bT = aB(aC)
478+ let aD = bT._1
479+ let aE = bT._2
480+ if ((bR >= aE))
481+ then throw(("Please place a bid higher than: " + toString(bR)))
490482 else {
491483 let aH = if (!(isDefined(aD.assetId)))
492484 then throw("Only USDN is accepted!")
493485 else toBase58String(value(aD.assetId))
494- let bP = E(("current_bidamount_" + L))
495- let bQ = valueOrElse(E(af(bb, L)), (an * 2))
486+ let bO = E(("current_bidamount_" + L))
487+ let bU = valueOrElse(E(af(bb, L)), (an * 2))
496488 if (!(aO(aH)))
497489 then throw("asset not accepted")
498- else if ((bQ > aE))
490+ else if ((bU > aE))
499491 then throw("Bid is below min price!")
500492 else {
501493 let bh = E(X(bb, L))
502494 let bi = E(Q(bb, L))
503495 if ((0 >= bi))
504496 then throw("No max edition set for this artwork")
505497 else if ((bh >= bi))
506498 then throw("Sold out, you cannot bid")
507- else [StringEntry((((((((("bid_" + L) + "_") + bb) + "_") + J) + "_") + bz) + "_OPEN"), ((((aH + "_") + toString(aE)) + "_") + toString(bt))), IntegerEntry(("current_bidamount_" + L), (bP + 1)), StringEntry(R(L), toBase58String(aC.transactionId)), IntegerEntry(S(toBase58String(aC.transactionId)), aE)]
499+ else [StringEntry((((((((("bid_" + L) + "_") + bb) + "_") + J) + "_") + by) + "_OPEN"), ((((aH + "_") + toString(aE)) + "_") + toString(bs))), IntegerEntry(("current_bidamount_" + L), (bO + 1)), StringEntry(R(L), toBase58String(aC.transactionId)), IntegerEntry(S(toBase58String(aC.transactionId)), aE)]
508500 }
509501 }
510502 }
511503 }
512504
513505
514-func bW (aC,L,bb,T,bk) = {
506+func bV (aC,L,bb,T,bk) = {
515507 let J = toBase58String(aC.caller.bytes)
516508 if ((J != bb))
517509 then throw("You cannot do this action")
518- else bx(aC, L, bb, T, bk, true)
510+ else bw(aC, L, bb, T, bk, true)
519511 }
520512
521513
522-func bX (L,bb) = {
514+func bW (L,bb) = {
523515 let bh = E(X(bb, L))
524516 let bi = E(Q(bb, L))
525- let bY = E(V(bb, L))
526- let bZ = E(U(bb, L))
527- let bS = (bZ + height)
528- if ((height > bY))
517+ let bX = E(V(bb, L))
518+ let bY = E(U(bb, L))
519+ let bQ = (bY + height)
520+ if ((height > bX))
529521 then if ((bh == bi))
530522 then throw("Can't restart auction, max amount sold")
531- else [IntegerEntry(V(bb, L), bS), DeleteEntry(R(L))]
523+ else [IntegerEntry(V(bb, L), bQ), DeleteEntry(R(L))]
532524 else throw("Previous auction isn't completed yet")
533525 }
534526
535527
536-func ca (aC,L,bb,T,bk) = {
537- let bS = E(V(bb, L))
538- let cb = A(R(L))
539- if ((height > bS))
540- then if ((T == cb))
528+func bZ (aC,L,bb,T,bk) = {
529+ let bQ = E(V(bb, L))
530+ let ca = A(R(L))
531+ if ((height > bQ))
532+ then if ((T == ca))
541533 then {
542- let cc = bx(aC, L, bb, T, bk, true)
543- let cd = bX(L, bb)
544- (cd ++ cc)
534+ let cb = bw(aC, L, bb, T, bk, true)
535+ let cc = bW(L, bb)
536+ (cc ++ cb)
545537 }
546538 else throw("This is not the winning bid!")
547539 else throw("This auction is not yet finished!")
548540 }
549541
550542
551-func ce (aC,L,bb,T) = {
552- let cf = aZ(aC)
553- let bz = cf._1
554- let J = cf._2
555- let bt = cf._3
556- let bP = E(("current_bidamount_" + L))
543+func cd (aC,L,bb,T) = {
544+ let ce = aZ(aC)
545+ let by = ce._1
546+ let J = ce._2
547+ let bs = ce._3
548+ let bO = E(("current_bidamount_" + L))
557549 let aU = ((((((("bid_" + L) + "_") + bb) + "_") + J) + "_") + T)
558550 let aV = B((aU + "_OPEN"), "Bid not found")
559551 let aW = split(aV, "_")
560552 let aH = aS(aW[0])
561- let cg = "CANCELED"
562-[DeleteEntry((aU + "_OPEN")), StringEntry(((aU + "_") + cg), ((aV + "_") + toString(bt))), IntegerEntry(("current_bidamount_" + L), (bP - 1)), ScriptTransfer(Address(fromBase58String(J)), parseIntValue(aW[1]), aH)]
553+ let cf = "CANCELED"
554+[DeleteEntry((aU + "_OPEN")), StringEntry(((aU + "_") + cf), ((aV + "_") + toString(bs))), IntegerEntry(("current_bidamount_" + L), (bO - 1)), ScriptTransfer(Address(fromBase58String(J)), parseIntValue(aW[1]), aH)]
563555 }
564556
565557
566-func ch (aC,L,bb,T) = {
567- let cf = aZ(aC)
568- let bz = cf._1
569- let J = cf._2
570- let bt = cf._3
571- let bP = E(("current_bidamount_" + L))
558+func cg (aC,L,bb,T) = {
559+ let ce = aZ(aC)
560+ let by = ce._1
561+ let J = ce._2
562+ let bs = ce._3
563+ let bO = E(("current_bidamount_" + L))
572564 let aU = ((((((("bid_" + L) + "_") + bb) + "_") + J) + "_") + T)
573565 let aV = B((aU + "_OPEN"), "Bid not found")
574566 let aW = split(aV, "_")
575567 let aH = aS(aW[0])
576- let cg = "CANCELED"
568+ let cf = "CANCELED"
577569 let aX = parseIntValue(aW[1])
578- let cb = A(R(L))
579- if ((T == cb))
570+ let ca = A(R(L))
571+ if ((T == ca))
580572 then throw("You can't cancel the highest bid!")
581- else [DeleteEntry((aU + "_OPEN")), StringEntry(((aU + "_") + cg), ((aV + "_") + toString(bt))), IntegerEntry(("current_bidamount_" + L), (bP - 1)), ScriptTransfer(Address(fromBase58String(J)), aX, aH)]
573+ else [DeleteEntry((aU + "_OPEN")), StringEntry(((aU + "_") + cf), ((aV + "_") + toString(bs))), IntegerEntry(("current_bidamount_" + L), (bO - 1)), ScriptTransfer(Address(fromBase58String(J)), aX, aH)]
582574 }
583575
584576
585577 @Callable(aC)
586-func initDapp (ci) = if ((aC.caller != this))
578+func initDapp (ch) = if ((aC.caller != this))
587579 then throw("You cannot do this action")
588580 else if ((g != ""))
589581 then throw("oracle already set, you can't override!")
590- else [StringEntry(b, ci)]
582+ else [StringEntry(b, ch)]
591583
592584
593585
594586 @Callable(aC)
595587 func restartAuctionManual (L) = if ((ap(L) != 0))
596588 then throw("Please accept the highest bid!")
597- else bX(L, toBase58String(aC.caller.bytes))
589+ else bW(L, toBase58String(aC.caller.bytes))
598590
599591
600592
601593 @Callable(aC)
602-func mintNft (be,bp,br) = if ((aC.caller == this))
594+func mintNft (be,bo,bq) = if ((aC.caller == this))
603595 then {
604- let cj = Address(fromBase58String(br))
605- let ck = Issue(("SCONEX_" + toString((be + 1))), bp, 1, 0, false)
606- let bD = calculateAssetId(ck)
607- $Tuple2([ck, ScriptTransfer(cj, 1, bD)], toBase58String(bD))
596+ let ci = Address(fromBase58String(bq))
597+ let cj = Issue(("SCONEX_" + toString((be + 1))), bo, 1, 0, false)
598+ let bC = calculateAssetId(cj)
599+ $Tuple2([cj, ScriptTransfer(ci, 1, bC)], toBase58String(bC))
608600 }
609601 else throw("Only the dApp can mint NFT's")
610602
611603
612604
613605 @Callable(aC)
614-func addArtwork (ak,ax,ay,az,cl,aw,cm,cn,co,cp) = {
615- let cq = aZ(aC)
616- let L = cq._1
617- let J = cq._2
618- let bt = cq._3
619- if (containsElement(p, cl))
606+func addArtwork (ak,ax,ay,az,ck,aw,cl,cm,cn,co) = {
607+ let cp = aZ(aC)
608+ let L = cp._1
609+ let J = cp._2
610+ let bs = cp._3
611+ if (containsElement(p, ck))
620612 then {
621- let cr = av(J, aw, ax, ay, az)
622- if ((cr != ""))
613+ let cq = av(J, aw, ax, ay, az)
614+ if ((cq != ""))
623615 then throw("Something went wrong!")
624616 else {
625- let cs = aF(aC)
626- let aE = cs._1
627- let aH = cs._2
617+ let cr = aF(aC)
618+ let aE = cr._1
619+ let aH = cr._2
628620 if (!(isDefined(aE)))
629621 then throw("Something went wrong")
630622 else {
631- let ct = if (containsElement(q, cl))
632- then [StringEntry(P(J, L), cn)]
623+ let cs = if (containsElement(q, ck))
624+ then [StringEntry(P(J, L), cm)]
633625 else nil
634- let cu = invoke(valueOrErrorMessage(addressFromString(j), (j + " not found")), "collectionProcess", [co, cp, J], nil)
635- if ((cu == cu))
626+ let ct = invoke(valueOrErrorMessage(addressFromString(j), (j + " not found")), "collectionProcess", [cn, co, J], nil)
627+ if ((ct == ct))
636628 then {
637- let cv = {
638- let e = cu
629+ let cu = {
630+ let e = ct
639631 if ($isInstanceOf(e, "String"))
640632 then {
641- let bE = e
642- bE
633+ let bD = e
634+ bD
643635 }
644636 else throw("Incorrect invoke result")
645637 }
646- let cw = A(al(ak, J))
647- if ((cw != ""))
638+ let cv = A(al(ak, J))
639+ if ((cv != ""))
648640 then throw("You already added it")
649641 else {
650- let cx = A(aj(ak))
651- if ((cx != ""))
642+ let cw = A(aj(ak))
643+ if ((cw != ""))
652644 then throw("This hash is already registered")
653- else (ct ++ [StringEntry(aj(ak), J), StringEntry(al(ak, J), L), IntegerEntry(K(J, L), bt), StringEntry(M(J, L), ax), StringEntry(N(J, L), ay), StringEntry(O(J, L), aw), StringEntry(ae(J, L), cl), StringEntry(ad(J, L), az), IntegerEntry(Q(J, L), 0), IntegerEntry(X(J, L), 0), BooleanEntry(ab(J, L), false), StringEntry(ah(J, L), ak), StringEntry(ac(J, L), cm), ScriptTransfer(Address(fromBase58String(k)), aE, aH)])
645+ else (cs ++ [StringEntry(aj(ak), J), StringEntry(al(ak, J), L), IntegerEntry(K(J, L), bs), StringEntry(M(J, L), ax), StringEntry(N(J, L), ay), StringEntry(O(J, L), aw), StringEntry(ae(J, L), ck), StringEntry(ad(J, L), az), IntegerEntry(Q(J, L), 0), IntegerEntry(X(J, L), 0), BooleanEntry(ab(J, L), false), StringEntry(ah(J, L), ak), StringEntry(ac(J, L), cl), ScriptTransfer(Address(fromBase58String(k)), aE, aH)])
654646 }
655647 }
656648 else throw("Strict value is not equal to itself.")
657649 }
658650 }
659651 }
660652 else throw("Unknown type")
661653 }
662654
663655
664656
665657 @Callable(aC)
666-func sellArtwork (L,aQ,cy,aH,cz,bZ,cA,cB,cC,cD,cE,cF) = {
667- let bI = invoke(valueOrErrorMessage(addressFromString(m), (m + " not found")), "teamSplitFee", [L, k, "", "", 15, 0, 0], nil)
668- if ((bI == bI))
658+func sellArtwork (L,aQ,cx,aH,cy,bY,cz,cA,cB,cC,cD,cE) = {
659+ let bH = invoke(valueOrErrorMessage(addressFromString(m), (m + " not found")), "teamSplitFee", [L, k, "", "", 15, 0, 0], nil)
660+ if ((bH == bH))
669661 then {
670- let cG = invoke(valueOrErrorMessage(addressFromString(m), (m + " not found")), "creatorSplitFee", [L, cA, cB, cC, cD, cE, cF], nil)
671- if ((cG == cG))
662+ let cF = invoke(valueOrErrorMessage(addressFromString(m), (m + " not found")), "creatorSplitFee", [L, cz, cA, cB, cC, cD, cE], nil)
663+ if ((cF == cF))
672664 then {
673- let cH = aZ(aC)
674- let bz = cH._1
675- let J = cH._2
665+ let cG = aZ(aC)
666+ let by = cG._1
667+ let J = cG._2
676668 let bf = A(M(J, L))
677- if (!(containsElement([w, x, y], cz)))
669+ if (!(containsElement([w, x, y], cy)))
678670 then throw("We don't know this auction type")
679671 else if ((bf == ""))
680672 then throw("This art doesn't match your account")
681673 else {
682- let bP = E(("current_bidamount_" + L))
674+ let bO = E(("current_bidamount_" + L))
683675 if (!(aO(aH)))
684676 then throw("Something went wrong!")
685677 else if (!(aP(aH, aQ)))
686678 then throw("Something went wrong!")
687679 else {
688680 let aA = at(J)
689681 if ((aA != ""))
690682 then throw(aA)
691683 else {
692684 let bh = E(X(J, L))
693685 let bi = E(Q(J, L))
694- if ((cy > 10000))
686+ if ((cx > 10000))
695687 then throw("10000 editions max per artwork")
696688 else if (if ((bh != 0))
697689 then (bh == bi)
698690 else false)
699691 then throw("Max edition reached.")
700692 else if (if ((bh > 0))
701- then (bi != cy)
693+ then (bi != cx)
702694 else false)
703695 then throw("Cannot change maximum issuable anymore")
704- else if (if ((bP > 0))
705- then (bi != cy)
696+ else if (if ((bO > 0))
697+ then (bi != cx)
706698 else false)
707699 then throw("Cannot change maximum issuable with active orders")
708700 else {
709- let bq = if (if ((aQ > 0))
710- then (cy > 0)
701+ let bp = if (if ((aQ > 0))
702+ then (cx > 0)
711703 else false)
712704 then true
713705 else false
714- let bS = (bZ + height)
715-[BooleanEntry(ab(J, L), bq), IntegerEntry(af(J, L), aQ), IntegerEntry(Q(J, L), cy), IntegerEntry(U(J, L), bZ), IntegerEntry(V(J, L), bS), StringEntry(ag(J, L), aH), StringEntry(W(J, L), cz)]
706+ let bQ = (bY + height)
707+[BooleanEntry(ab(J, L), bp), IntegerEntry(af(J, L), aQ), IntegerEntry(Q(J, L), cx), IntegerEntry(U(J, L), bY), IntegerEntry(V(J, L), bQ), StringEntry(ag(J, L), aH), StringEntry(W(J, L), cy)]
716708 }
717709 }
718710 }
719711 }
720712 }
721713 else throw("Strict value is not equal to itself.")
722714 }
723715 else throw("Strict value is not equal to itself.")
724716 }
725717
726718
727719
728720 @Callable(aC)
729721 func buyArtwork (L,bb) = {
730- let cz = A(W(bb, L))
731- if ((cz == y))
732- then bx(aC, L, bb, "", "", false)
722+ let cy = A(W(bb, L))
723+ if ((cy == y))
724+ then bw(aC, L, bb, "", "", false)
733725 else throw("Direct buy only allowed when no auction type is set!")
734726 }
735727
736728
737729
738730 @Callable(aC)
739-func updateTags (cI,L,az) = {
731+func updateTags (cH,L,az) = {
740732 let J = toString(addressFromPublicKey(aC.callerPublicKey))
741733 if (containsElement(i, J))
742734 then if ((size(split(az, ",")) > 5))
743735 then throw("5 tags max.")
744736 else {
745- let cJ = B(ad(cI, L), "No tags created with this key, so can't update!")
746- if ((az == cJ))
737+ let cI = B(ad(cH, L), "No tags created with this key, so can't update!")
738+ if ((az == cI))
747739 then throw("Tags are the same as old tags!")
748- else [StringEntry(ad(cI, L), az)]
740+ else [StringEntry(ad(cH, L), az)]
749741 }
750742 else throw("no")
751743 }
752744
753745
754746
755747 @Callable(aC)
756-func deleteEntry (cK) = {
748+func deleteEntry (cJ) = {
757749 let J = toString(addressFromPublicKey(aC.callerPublicKey))
758750 if (containsElement(i, J))
759- then [DeleteEntry(cK)]
751+ then [DeleteEntry(cJ)]
760752 else throw("no")
761753 }
762754
763755
764756
765757 @Callable(aC)
766758 func setBid (L,bb) = {
767- let cz = A(W(bb, L))
768- if ((cz == w))
769- then bM(aC, L, bb)
770- else if ((cz == x))
771- then bR(aC, L, bb)
772- else throw((("Unknown auction type :" + cz) + ", please contact the admins"))
759+ let cy = A(W(bb, L))
760+ if ((cy == w))
761+ then bL(aC, L, bb)
762+ else if ((cy == x))
763+ then bP(aC, L, bb)
764+ else throw((("Unknown auction type :" + cy) + ", please contact the admins"))
773765 }
774766
775767
776768
777769 @Callable(aC)
778770 func acceptBid (L,bb,T,bk) = {
779- let cz = A(W(bb, L))
780- if ((cz == w))
781- then bW(aC, L, bb, T, bk)
782- else if ((cz == x))
783- then ca(aC, L, bb, T, bk)
784- else throw((("Unknown auction type :" + cz) + ", please contact the admins"))
771+ let cy = A(W(bb, L))
772+ if ((cy == w))
773+ then bV(aC, L, bb, T, bk)
774+ else if ((cy == x))
775+ then bZ(aC, L, bb, T, bk)
776+ else throw((("Unknown auction type :" + cy) + ", please contact the admins"))
785777 }
786778
787779
788780
789781 @Callable(aC)
790782 func cancelBid (L,bb,T) = {
791- let cz = A(W(bb, L))
792- if ((cz == w))
793- then ce(aC, L, bb, T)
794- else ch(aC, L, bb, T)
783+ let cy = A(W(bb, L))
784+ if ((cy == w))
785+ then cd(aC, L, bb, T)
786+ else cg(aC, L, bb, T)
795787 }
796788
797789

github/deemru/w8io/169f3d6 
189.11 ms