tx · B6ANEoKXiRgXHVjw4uzMcPnRi7AL1DmzMvfwPCx2bfyv

3NBynfbXC2KastUxhukcMUaE58K9cBdB9UY:  -0.01400000 Waves

2022.02.24 10:33 [1937450] smart account 3NBynfbXC2KastUxhukcMUaE58K9cBdB9UY > SELF 0.00000000 Waves

{ "type": 13, "id": "B6ANEoKXiRgXHVjw4uzMcPnRi7AL1DmzMvfwPCx2bfyv", "fee": 1400000, "feeAssetId": null, "timestamp": 1645688106122, "version": 2, "chainId": 84, "sender": "3NBynfbXC2KastUxhukcMUaE58K9cBdB9UY", "senderPublicKey": "J9DCtJJxJBWZdtDR12BA1U94Q3cZzMi4R6k5hYkAzmzC", "proofs": [ "4aLuN26zQU9ZksYJB7mM6Wtokmcdj1k562DnExVRkxxMd9pMhhYUhDm3YevtBybHTkb9maByE22aDbQ8XUEUbvji" ], "script": "base64:AAIFAAAAAAAAAFQIAhIOCgwICAgICAgICAgICAgSDQoLCAgICAgICAgICAgSBgoECAgICBIECgIICBIHCgUIAQEIARIECgIICBIECgIICBIGCgQICAgIEgYKBAgICAgAAABJAAAAAAh1bml0VGVzdAcAAAAACW9yYWNsZUZlZQkBAAAABXZhbHVlAAAAAQkABCYAAAABAgAAACMzTjJzNVJ0YUhQQmVuQ3N4MkVDY29GUmJZSHgzbm9aaFhXMQAAAAAIc2lnbkRhcHAJAQAAAAV2YWx1ZQAAAAEJAAQmAAAAAQIAAAAjM05DMjhoU2l2cm1zVFVYYVlEMXg2TDM2Mko0WnBVbm9UZEIAAAAAC2ZlZVJlY2VpdmVyAgAAACMzTjFFNnRYZGRSb1ZhUmZROWRRM3ZnNUxhVzJmc2Q4SEt1YgAAAAAIdXNlckRhcHADBQAAAAh1bml0VGVzdAkBAAAABXZhbHVlAAAAAQkABCYAAAABAgAAACMzTXQ0UkdNRXlqU1dZQW9jVFBxZDU1d2RIUVFCM1BVMlVDbQkBAAAABXZhbHVlAAAAAQkABCYAAAABAgAAACMzTjh4WGFZakUyN0FhNzlkNWhIcmhIdTlIYUZvVEJtaERFagAAAAANd2hpdGVsaXN0RGFwcAkBAAAABXZhbHVlAAAAAQkABCYAAAABAgAAACMzTjZCYVYxZENCNHpnNDNnb05OSGFDdHZSMTNCY3lKNUdzcQAAAAALc2lnbkFzc2V0SWQBAAAAIOilarzKd0LycGEyNUpPRYO5uR7lmWcXw3Hq2QuhBK3rAAAAAAt1c2RuQXNzZXRJZAEAAAAgD/IcEqzkxDya7EYaqyWosOy6BytGzG2IcvC14pJJAbQAAAAADHdhdmVzQXNzZXRJZAEAAAAAAAAAAAVjaHJpcwIAAAAjM01zRzZqUE5DclZKVXRZQjdYSkJ4Uzd1dFdzWEFmNG45VnAAAAAABGpvZXACAAAAIzNNem00Vkx3c045dVp3YlRNelBqM1h1eFY2a0VmQVI4VUROAAAAAAdzaWduQ3V0AAAAAAAAAAAHAAAAAAt1c2RuV2F2ZUN1dAAAAAAAAAAACgAAAAAOZGVmYXVsdExpY2VuY2UCAAAAR2JhZnliZWlmdXlvNHBxdTU0aXNtcWd0YjZlNGg2a2t2Z3g3emc0dTN6aWJoMnI3eTZtYjY0aTdienphL2xpY2VuY2UucGRmAAAAABJkZWZhdWx0SGFzaExpY2VuY2UCAAAAQGE4Nzc1OGMzNTRlMzBhOWU3OGZiODRmYTNhMDAxMGE1MDkwYWIyMGRmMGJlMTFhZDQ1YjU3MjBjYzE4N2U2MzkAAAAAC2RhcHBSdW5uaW5nCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGwAAAAIFAAAACHVzZXJEYXBwAgAAABRjb25mX2RhcHBfaXNfcnVubmluZwYAAAAADm1haW50ZW5hbmNlTVNHCQEAAAALdmFsdWVPckVsc2UAAAACCQAEHQAAAAIFAAAACHVzZXJEYXBwAgAAABRjb25mX21haW50ZW5hbmNlX21zZwIAAAAAAAAAAA11c2VyU3VzcGVuZGVkAgAAAAlTVVNQRU5ERUQAAAAAC3VzZXJSZW1vdmVkAgAAAAdSRU1PVkVEAAAAABB1c2VyVW5yZWdpc3RlcmVkAgAAAAxVTlJFR0lTVEVSRUQAAAAAC3VzZXJBbGxvd2VkAgAAAAdBTExPV0VEAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEAAAADa2V5CQEAAAALdmFsdWVPckVsc2UAAAACCQAEHQAAAAIFAAAABHRoaXMFAAAAA2tleQIAAAAAAQAAABlnZXRJbnRlZ2VyQnlLZXlGcm9tT3JhY2xlAAAAAQAAAANrZXkJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACBQAAAAlvcmFjbGVGZWUFAAAAA2tleQIAAAAfSW50ZWdlciB1bmRlZmluZSBvciAwIGluIG9yYWNsZQEAAAAPZ2V0SW50ZWdlckJ5S2V5AAAAAQAAAANrZXkJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwUAAAADa2V5AAAAAAAAAAAAAQAAAA5jaGVja1doaXRlbGlzdAAAAAEAAAADa2V5CQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAADXdoaXRlbGlzdERhcHAFAAAAA2tleQAAAAAAAAAAAAEAAAAPZ2V0Qm9vbGVhbkJ5S2V5AAAAAQAAAANrZXkJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQbAAAAAgUAAAAEdGhpcwUAAAADa2V5BwAAAAAZY3Vy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X2Fzc2V0QWNjZXB0ZWRfBQAAAAVhcnRJZAIAAAABXwUAAAAGY2FsbGVyAQAAAAdrZXlGbGFnAAAAAgAAAAZjYWxsZXIAAAAFYXJ0SWQJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAACWFydF9mbGFnXwUAAAAFYXJ0SWQCAAAAAV8FAAAABmNhbGxlcgEAAAASa2V5QXJ0aXN0QWdlbnRBZGRyAAAAAQAAAAphcnRpc3RBZGRyCQABLAAAAAICAAAADWFydGlzdF9hZ2VudF8FAAAACmFydGlzdEFkZHIBAAAAD2tleVByaW1hcnlTaGFyZQAAAAEAAAAKYXJ0aXN0QWRkcgkAASwAAAACAgAAABVhcnRpc3RfYWdlbnRfcHJpbWFyeV8FAAAACmFydGlzdEFkZHIBAAAAEWtleUhhc2hCeVR4aWRBZGRyAAAAAgAAAAZjYWxsZXIAAAAEdHhpZAkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAATZ2V0X2hhc2hieXR4aWRhZGRyXwUAAAAEdHhpZAIAAAABXwUAAAAGY2FsbGVyAQAAAA5rZXlPd25lckJ5SGFzaAAAAAEAAAAKc2hhMjU2SGFzaAkAASwAAAACAgAAABJnZXRfb3duZXJfYnlfaGFzaF8FAAAACnNoYTI1Nkhhc2gBAAAADWtleWlkQnlTaWduaWQAAAACAAAABmNhbGxlcgAAAAZzaWduSWQJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAEmdldF9hcnRpZGJ5c2lnbmlkXwUAAAAGc2lnbklkAgAAAAFfBQAAAAZjYWxsZXIBAAAAEmtleVR4aWRCeUhhc2hPd25lcgAAAAIAAAAKc2hhMjU2SGFzaAAAAAZjYWxsZXIJAAEsAAAAAgIAAAAXZ2V0X3R4aWRfYnlfaGFzaF9vd25lcl8JAAJYAAAAAQkAC1QAAAABCQABmwAAAAEJAAEsAAAAAgUAAAAKc2hhMjU2SGFzaAUAAAAGY2FsbGVyAQAAAA52YWxpZGF0ZUFsbENJRAAAAAMAAAAKY2lkRGlzcGxheQAAAAljaWRFeHBvcnQAAAAKY2lkTGljZW5jZQMJAQAAAAEhAAAAAQkBAAAAC3ZhbGlkYXRlQ0lEAAAAAQUAAAAKY2lkRGlzcGxheQkAAAIAAAABAgAAABFXcm9uZyBEaXNwbGF5IENJRAMJAQAAAAEhAAAAAQkBAAAAC3ZhbGlkYXRlQ0lEAAAAAQUAAAAJY2lkRXhwb3J0CQAAAgAAAAECAAAAEFdyb25nIEV4cG9ydCBDSUQDAwkBAAAAAiE9AAAAAgUAAAAKY2lkTGljZW5jZQIAAAAACQEAAAABIQAAAAEJAQAAAAt2YWxpZGF0ZUNJRAAAAAEFAAAACmNpZExpY2VuY2UHCQAAAgAAAAECAAAAEVdyb25nIExpY2VuY2UgQ0lEBgEAAAAPdmFsaWRhdGVBbGxIYXNoAAAAAgAAAAxzaGEyNTZFeHBvcnQAAAANc2hhMjU2TGljZW5jZQMJAQAAAAEhAAAAAQkBAAAADHZhbGlkYXRlSGFzaAAAAAEFAAAADHNoYTI1NkV4cG9ydAkAAAIAAAABAgAAABhFeHBvcnQgSGFzaCA2NCBjaGFyLiBtYXgDCQEAAAABIQAAAAEJAQAAAAx2YWxpZGF0ZUhhc2gAAAABBQAAAA1zaGEyNTZMaWNlbmNlCQAAAgAAAAECAAAAGUxpY2VuY2UgSGFzaCA2NCBjaGFyLiBtYXgGAQAAAA52YWxpZGF0ZVN0cmluZwAAAAIAAAADc3RyAAAAA21heAMJAAAAAAAAAgkAATEAAAABBQAAAANzdHIAAAAAAAAAAAAJAAACAAAAAQIAAAAYRmllbGQgY2Fubm90IGJlIGlzIGVtcHR5AwkAAGYAAAACCQABMQAAAAEFAAAAA3N0cgUAAAADbWF4CQAAAgAAAAEJAAEsAAAAAgUAAAADc3RyAgAAAAwgaXMgdG9vIGxvbmcGAQAAAAx2YWxpZGF0ZVVzZXIAAAABAAAABmNhbGxlcgQAAAAKdXNlclN0YXR1cwkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABB0AAAACBQAAAAh1c2VyRGFwcAkBAAAADWtleVVzZXJTdGF0dXMAAAABBQAAAAZjYWxsZXIFAAAAEHVzZXJVbnJlZ2lzdGVyZWQDAwkAAAAAAAACBQAAAAp1c2VyU3RhdHVzBQAAABB1c2VyVW5yZWdpc3RlcmVkBgkAAAAAAAACBQAAAAp1c2VyU3RhdHVzBQAAAAt1c2VyQWxsb3dlZAIAAAAuUmVnaXN0ZXIgdGhpcyBhY2NvdW50IGZpcnN0IHdpdGggIkFjY291bnQiIHRhYgMJAAAAAAAAAgUAAAAKdXNlclN0YXR1cwUAAAANdXNlclN1c3BlbmRlZAIAAAARQWNjb3VudCBzdXNwZW5kZWQDCQAAAAAAAAIFAAAACnVzZXJTdGF0dXMFAAAAC3VzZXJSZW1vdmVkAgAAAA9BY2NvdW50IHJlbW92ZWQCAAAAAAEAAAAKc2V0TEljZW5jZQAAAAIAAAAKY2lkTGljZW5jZQAAAA1zaGEyNTZMaWNlbmNlBAAAAANjaWQDCQAAAAAAAAIJAAExAAAAAQUAAAAKY2lkTGljZW5jZQAAAAAAAAAAAAUAAAAOZGVmYXVsdExpY2VuY2UFAAAACmNpZExpY2VuY2UEAAAABGhhc2gDCQAAAAAAAAIJAAExAAAAAQUAAAANc2hhMjU2TGljZW5jZQAAAAAAAAAAAAUAAAASZGVmYXVsdEhhc2hMaWNlbmNlBQAAAA1zaGEyNTZMaWNlbmNlCQAFFAAAAAIFAAAAA2NpZAUAAAAEaGFzaAEAAAATdmFsaWRhdGVBcnR3b3JrRGF0YQAAAAkAAAAGY2FsbGVyAAAACmNpZERpc3BsYXkAAAAJY2lkRXhwb3J0AAAACmxpY2VuY2VDSUQAAAAMc2hhMjU2RXhwb3J0AAAAC2xpY2VuY2VIYXNoAAAABG5hbWUAAAALZGVzY3JpcHRpb24AAAAEdGFncwQAAAAJY2hlY2tVc2VyCQEAAAAMdmFsaWRhdGVVc2VyAAAAAQUAAAAGY2FsbGVyAwkBAAAAAiE9AAAAAgUAAAAJY2hlY2tVc2VyAgAAAAAJAAACAAAAAQUAAAAJY2hlY2tVc2VyAwkAAAAAAAACCQABMQAAAAEFAAAACmNpZERpc3BsYXkAAAAAAAAAAAAJAAACAAAAAQIAAAAbRGlzcGxheSBDSUQgY2Fubm90IGJlIGVtcHR5AwkBAAAAASEAAAABCQEAAAAOdmFsaWRhdGVBbGxDSUQAAAADBQAAAApjaWREaXNwbGF5BQAAAAljaWRFeHBvcnQFAAAACmxpY2VuY2VDSUQJAAACAAAAAQIAAAAQUHJvYmxlbSB3aXRoIENJRAMJAQAAAAEhAAAAAQkBAAAAD3ZhbGlkYXRlQWxsSGFzaAAAAAIFAAAADHNoYTI1NkV4cG9ydAUAAAALbGljZW5jZUhhc2gJAAACAAAAAQIAAAAT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AAADCQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQUAAAAGaXNzdWVyBQAAABBhbW91bnRGb3JDcmVhdG9yBQAAAAdhc3NldElkCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAACnJlY2VpdmVORlQAAAAAAAAAAAEFAAAABWlkTkZUBQAAAANuaWwFAAAAC2NvbW1pc3Npb25zAwUAAAAFaXNCaWQJAARMAAAAAgUAAAAIc29sZERhdGEJAARMAAAAAgUAAAAJYmlkVXBkYXRlCQAETAAAAAIFAAAACWJpZERlbE9sZAUAAAAGYnV5UmVzCQAETAAAAAIFAAAACHNvbGREYXRhBQAAAAZidXlSZXMAAAAJAAAAAWkBAAAACmFkZEFydHdvcmsAAAAMAAAACnNoYTI1Nkhhc2gAAAAGc2lnbklEAAAABG5hbWUAAAALZGVzY3JpcHRpb24AAAAEdGFncwAAAAR0eXBlAAAACmNpZERpc3BsYXkAAAAMc2hhMjU2RXhwb3J0AAAACWNpZEV4cG9ydAAAAA1zaGEyNTZMaWNlbmNlAAAACmNpZExpY2VuY2UAAAAHY3Jhd2xlcgQAAAANJHQwMTc1ODkxNzYzMAkBAAAADGlkQ2FsbGVyRGF0ZQAAAAEFAAAAAWkEAAAABWFydElkCAUAAAANJHQwMTc1ODkxNzYzMAAAAAJfMQQAAAAGY2FsbGVyCAUAAAANJHQwMTc1ODkxNzYzMAAAAAJfMgQAAAAEZGF0ZQgFAAAADSR0MDE3NTg5MTc2MzAAAAACXzMDCQEAAAABIQAAAAEJAQAAAAx2YWxpZGF0ZUhhc2gAAAABBQAAAApzaGEyNTZIYXNoCQAAAgAAAAECAAAAJEhhc2ggc2hvdWxkIGJlIDY0IGNoYXJhY3RlcnMgbWF4aW11bQQAAAANJHQwMTc3MzExNzgwMAkBAAAACnNldExJY2VuY2UAAAACBQAAAApjaWRMaWNlbmNlBQAAAA1zaGEyNTZMaWNlbmNlBAAAAApsaWNlbmNlQ0lECAUAAAANJHQwMTc3MzExNzgwMAAAAAJfMQQAAAALbGljZW5jZUhhc2gIBQAAAA0kdDAxNzczMTE3ODAwAAAAAl8yBAAAAA92YWxpZGF0ZUFydHdvcmsJAQAAABN2YWxpZGF0ZUFydHdvcmtEYXRhAAAACQUAAAAGY2FsbGVyBQAAAApjaWREaXNwbGF5BQAAAAljaWRFeHBvcnQFAAAACmxpY2VuY2VDSUQFAAAADHNoYTI1NkV4cG9ydAUAAAALbGljZW5jZUhhc2gFAAAABG5hbWUFAAAAC2Rlc2NyaXB0aW9uBQAAAAR0YWdzAwkBAAAAAiE9AAAAAgUAAAAPdmFsaWRhdGVBcnR3b3JrAgAAAAAJAAACAAAAAQIAAAAVU29tZXRoaW5nIHdlbnQgd3JvbmchBAAAAA0kdDAxODAxOTE4MDYxCQEAAAAPdmFsaWRhdGVQYXltZW50AAAAAQUAAAABaQQAAAAGYW1vdW50CAUAAAANJHQwMTgwMTkxODA2MQAAAAJfMQQAAAAHYXNzZXRJZAgFAAAADSR0MDE4MDE5MTgwNjEAAAACXzIDCQEAAAABIQAAAAEJAQAAAAlpc0RlZmluZWQAAAABBQAAAAZhbW91bnQJAAACAAAAAQIAAAAUU29tZXRoaW5nIHdlbnQgd3JvbmcEAAAACmVudHJ5RXhpc3QJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEJAQAAABJrZXlUeGlkQnlIYXNoT3duZXIAAAACBQAAAApzaGEyNTZIYXNoBQAAAAZjYWxsZXIDCQEAAAACIT0AAAACBQAAAAplbnRyeUV4aXN0AgAAAAAJAAACAAAAAQIAAAAUWW91IGFscmVhZHkgYWRkZWQgaXQEAAAACWhhc2hFeGlzdAkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAADmtleU93bmVyQnlIYXNoAAAAAQUAAAAKc2hhMjU2SGFzaAMJAQAAAAIhPQAAAAIFAAAACWhhc2hFeGlzdAIAAAAACQAAAgAAAAECAAAAF0hhc2ggYWxyZWFkeSByZWdpc3RlcmVkBAAAAA9pc1NpZ25DZXJ0aWZpZWQJAQAAABRjaGVja1NpZ25DZXJ0aWZpY2F0ZQAAAAMFAAAABnNpZ25JRAUAAAAGY2FsbGVyBQAAAApzaGEyNTZIYXNoAwkBAAAAASEAAAABBQAAAA9pc1NpZ25DZXJ0aWZpZWQJAAACAAAAAQIAAAAsU2lnbiBDZXJ0aWZpY2F0ZSBub3QgZm91bmQgZm9yIHRoaXMgYWRkcmVzcy4JAARMAAAAAgkBAAAAC1N0cmluZ0Vu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AAAAB2NyYXdsZXIDCQEAAAABIQAAAAEFAAAAC2RhcHBSdW5uaW5nCQAAAgAAAAEFAAAADm1haW50ZW5hbmNlTVNHBAAAAAZjYWxsZXIJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAANJHQwMjA3OTMyMDg2MgkBAAAACnNldExJY2VuY2UAAAACBQAAAApjaWRMaWNlbmNlBQAAAA1zaGEyNTZMaWNlbmNlBAAAAApsaWNlbmNlQ0lECAUAAAANJHQwMjA3OTMyMDg2MgAAAAJfMQQAAAALbGljZW5jZUhhc2gIBQAAAA0kdDAyMDc5MzIwODYyAAAAAl8yBAAAAA92YWxpZGF0ZUFydHdvcmsJAQAAABN2YWxpZGF0ZUFydHdvcmtEYXRhAAAACQUAAAAGY2FsbGVyBQAAAApjaWREaXNwbGF5BQAAAAljaWRFeHBvcnQFAAAACmxpY2VuY2VDSUQFAAAADHNoYTI1NkV4cG9ydAUAAAALbGljZW5jZUhhc2gFAAAABG5hbWUFAAAAC2Rlc2NyaXB0aW9uBQAAAAR0YWdzAwkBAAAAAiE9AAAAAgUAAAAPdmFsaWRhdGVBcnR3b3JrAgAAAAAJAAACAAAAAQIAAAAVU29tZXRoaW5nIHdlbnQgd3JvbmchBAAAAAplbnRyeUV4aXN0CQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABCQEAAAAHa2V5TmFtZQAAAAIFAAAABmNhbGxlcgUAAAAEdHhpZAMJAAAAAAAAAgUAAAAKZW50cnlFeGlzdAIAAAAACQAAAgAAAAECAAAAD0VudHJ5IG5vdCBmb3VuZAQAAAAEZmxhZwkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAAB2tleUZsYWcAAAACBQAAAAZjYWxsZXIFAAAABHR4aWQDCQAAAAAAAAIFAAAABGZsYWcCAAAAB0lMTEVHQUwJAAACAAAAAQIAAAAdQ2Fubm90IHVwZGF0ZSBJTExFR0FMIGFydHdvcmsDCQEAAAABIQAAAAEJAQAAAAtpc0FydE1pbnRlZAAAAAIFAAAABmNhbGxlcgUAAAAEdHhpZAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAHa2V5TmFtZQAAAAIFAAAABmNhbGxlcgUAAAAEdHhp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", "height": 1937450, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 5RFz47uZRZgDTWWbvudyVamFmtHpHYumQ6bDpdCSW9Ma Next: iDubvLbgqhfgmx7U4UT3aFLevyhAukJuiAM5qDkGUai Diff:
OldNewDifferences
478478 then ((((((((((N + "_") + toString(bu)) + "_") + bt) + "_") + toString(aY)) + "_") + aX) + "_") + toBase58String(bO))
479479 else ((((((((((toString(bQ) + "_") + toString(bu)) + "_") + bt) + "_") + toString(aP)) + "_") + bR) + "_") + toBase58String(bO))
480480 let bW = StringEntry(bU, bV)
481- let bX = [IntegerEntry(X(bp, P), bL), StringEntry(("nft_" + toBase58String(bO)), bU), IntegerEntry("total_nft_issued", (by + 1)), IntegerEntry(ag(bp, P), 0), BooleanEntry(Y(bp, P), bP), bN, ScriptTransfer(Address(fromBase58String(bp)), bK, aS), ScriptTransfer(Address(fromBase58String(d)), (bI - bJ), aS), ScriptTransfer(Address(fromBase58String(bE)), bJ, aS), ScriptTransfer(bQ, 1, bO)]
481+ let bX = if ((bJ != 0))
482+ then [ScriptTransfer(Address(fromBase58String(d)), (bI - bJ), aS), ScriptTransfer(Address(fromBase58String(bE)), bJ, aS)]
483+ else [ScriptTransfer(Address(fromBase58String(d)), bI, aS)]
484+ let bY = ([IntegerEntry(X(bp, P), bL), StringEntry(("nft_" + toBase58String(bO)), bU), IntegerEntry("total_nft_issued", (by + 1)), IntegerEntry(ag(bp, P), 0), BooleanEntry(Y(bp, P), bP), bN, ScriptTransfer(Address(fromBase58String(bp)), bK, aS), ScriptTransfer(bQ, 1, bO)] ++ bX)
482485 if (bv)
483- then [bW, bT, bS] :: bX
484- else bW :: bX
486+ then [bW, bT, bS] :: bY
487+ else bW :: bY
485488 }
486489 }
487490 }
491494
492495
493496 @Callable(aN)
494-func addArtwork (F,D,aI,aJ,aK,bY,at,ax,au,ay,av,bZ) = {
495- let ca = bn(aN)
496- let P = ca._1
497- let N = ca._2
498- let bu = ca._3
497+func addArtwork (F,D,aI,aJ,aK,bZ,at,ax,au,ay,av,ca) = {
498+ let cb = bn(aN)
499+ let P = cb._1
500+ let N = cb._2
501+ let bu = cb._3
499502 if (!(K(F)))
500503 then throw("Hash should be 64 characters maximum")
501504 else {
502- let cb = aE(av, ay)
503- let aG = cb._1
504- let aH = cb._2
505- let cc = aF(N, at, au, aG, ax, aH, aI, aJ, aK)
506- if ((cc != ""))
505+ let cc = aE(av, ay)
506+ let aG = cc._1
507+ let aH = cc._2
508+ let cd = aF(N, at, au, aG, ax, aH, aI, aJ, aK)
509+ if ((cd != ""))
507510 then throw("Something went wrong!")
508511 else {
509- let cd = aQ(aN)
510- let aP = cd._1
511- let aS = cd._2
512+ let ce = aQ(aN)
513+ let aP = ce._1
514+ let aS = ce._2
512515 if (!(isDefined(aP)))
513516 then throw("Something went wrong")
514517 else {
515- let ce = v(ar(F, N))
516- if ((ce != ""))
518+ let cf = v(ar(F, N))
519+ if ((cf != ""))
517520 then throw("You already added it")
518521 else {
519- let cf = v(ao(F))
520- if ((cf != ""))
522+ let cg = v(ao(F))
523+ if ((cg != ""))
521524 then throw("Hash already registered")
522525 else {
523- let cg = C(D, N, F)
524- if (!(cg))
526+ let ch = C(D, N, F)
527+ if (!(ch))
525528 then throw("Sign Certificate not found for this address.")
526- else [StringEntry(ao(F), N), StringEntry(ar(F, N), P), IntegerEntry(O(N, P), bu), StringEntry(Q(N, P), aI), StringEntry(R(N, P), aJ), StringEntry(S(N, P), at), StringEntry(U(N, P), au), StringEntry(T(N, P), ax), StringEntry(Z(N, P), aH), StringEntry(aa(N, P), aG), StringEntry(ac(N, P), bY), StringEntry(ab(N, P), aK), IntegerEntry(V(N, P), 0), StringEntry(W(N, P), D), IntegerEntry(X(N, P), 0), BooleanEntry(Y(N, P), false), StringEntry(ap(N, D), P), StringEntry(am(N, P), F), StringEntry(ae(N, P), bZ), ScriptTransfer(Address(fromBase58String(d)), aP, aS)]
529+ else [StringEntry(ao(F), N), StringEntry(ar(F, N), P), IntegerEntry(O(N, P), bu), StringEntry(Q(N, P), aI), StringEntry(R(N, P), aJ), StringEntry(S(N, P), at), StringEntry(U(N, P), au), StringEntry(T(N, P), ax), StringEntry(Z(N, P), aH), StringEntry(aa(N, P), aG), StringEntry(ac(N, P), bZ), StringEntry(ab(N, P), aK), IntegerEntry(V(N, P), 0), StringEntry(W(N, P), D), IntegerEntry(X(N, P), 0), BooleanEntry(Y(N, P), false), StringEntry(ap(N, D), P), StringEntry(am(N, P), F), StringEntry(ae(N, P), ca), ScriptTransfer(Address(fromBase58String(d)), aP, aS)]
527530 }
528531 }
529532 }
534537
535538
536539 @Callable(aN)
537-func updateArtwork (an,aI,aJ,aK,bY,at,ax,au,ay,av,bZ) = if (!(p))
540+func updateArtwork (an,aI,aJ,aK,bZ,at,ax,au,ay,av,ca) = if (!(p))
538541 then throw(q)
539542 else {
540543 let N = toBase58String(aN.caller.bytes)
541- let ch = aE(av, ay)
542- let aG = ch._1
543- let aH = ch._2
544- let cc = aF(N, at, au, aG, ax, aH, aI, aJ, aK)
545- if ((cc != ""))
544+ let ci = aE(av, ay)
545+ let aG = ci._1
546+ let aH = ci._2
547+ let cd = aF(N, at, au, aG, ax, aH, aI, aJ, aK)
548+ if ((cd != ""))
546549 then throw("Something went wrong!")
547550 else {
548- let ce = v(Q(N, an))
549- if ((ce == ""))
551+ let cf = v(Q(N, an))
552+ if ((cf == ""))
550553 then throw("Entry not found")
551554 else {
552- let ci = v(ai(N, an))
553- if ((ci == "ILLEGAL"))
555+ let cj = v(ai(N, an))
556+ if ((cj == "ILLEGAL"))
554557 then throw("Cannot update ILLEGAL artwork")
555558 else if (!(aT(N, an)))
556- then [StringEntry(Q(N, an), aI), StringEntry(R(N, an), aJ), StringEntry(S(N, an), at), StringEntry(U(N, an), au), StringEntry(T(N, an), ax), StringEntry(aa(N, an), aG), StringEntry(Z(N, an), aH), StringEntry(ab(N, an), aK), StringEntry(ac(N, an), bY), StringEntry(ae(N, an), bZ)]
559+ then [StringEntry(Q(N, an), aI), StringEntry(R(N, an), aJ), StringEntry(S(N, an), at), StringEntry(U(N, an), au), StringEntry(T(N, an), ax), StringEntry(aa(N, an), aG), StringEntry(Z(N, an), aH), StringEntry(ab(N, an), aK), StringEntry(ac(N, an), bZ), StringEntry(ae(N, an), ca)]
557560 else throw("Already minted")
558561 }
559562 }
562565
563566
564567 @Callable(aN)
565-func flagArtwork (P,cj,ci,ck) = {
566- let cl = bn(aN)
567- let bt = cl._1
568- let N = cl._2
568+func flagArtwork (P,ck,cj,cl) = {
569+ let cm = bn(aN)
570+ let bt = cm._1
571+ let N = cm._2
569572 if (containsElement([j, toString(this)], N))
570- then if (containsElement(["CONSENT", "", "CHANGE_REQUIRED", "FLAGGED", "ILLEGAL"], ci))
571- then [StringEntry(ai(cj, P), ci), StringEntry(ad(cj, P), ck)]
572- else throw(("Unknow status " + ci))
573+ then if (containsElement(["CONSENT", "", "CHANGE_REQUIRED", "FLAGGED", "ILLEGAL"], cj))
574+ then [StringEntry(ai(ck, P), cj), StringEntry(ad(ck, P), cl)]
575+ else throw(("Unknow status " + cj))
573576 else throw("You are not allowed")
574577 }
575578
576579
577580
578581 @Callable(aN)
579-func deleteArtwork (P,cj) = {
580- let cm = bn(aN)
581- let bt = cm._1
582- let N = cm._2
582+func deleteArtwork (P,ck) = {
583+ let cn = bn(aN)
584+ let bt = cn._1
585+ let N = cn._2
583586 let aU = if (containsElement([j, k, toString(this)], N))
584- then cj
587+ then ck
585588 else N
586- let ce = valueOrErrorMessage(v(Q(aU, P)), "No art matching for this address")
587- if ((ce == ""))
589+ let cf = valueOrErrorMessage(v(Q(aU, P)), "No art matching for this address")
590+ if ((cf == ""))
588591 then throw("No art matching for this address")
589592 else {
590593 let F = v(am(aU, P))
595598 if ((D == ""))
596599 then throw("No SIGN ID matching")
597600 else {
598- let cn = [DeleteEntry(O(aU, P)), DeleteEntry(Q(aU, P)), DeleteEntry(R(aU, P)), DeleteEntry(S(aU, P)), DeleteEntry(U(aU, P)), DeleteEntry(T(aU, P)), DeleteEntry(Z(aU, P)), DeleteEntry(aa(aU, P)), DeleteEntry(ac(aU, P)), DeleteEntry(ab(aU, P)), DeleteEntry(V(aU, P)), DeleteEntry(W(aU, P)), DeleteEntry(X(aU, P)), DeleteEntry(Y(aU, P)), DeleteEntry(ai(aU, P)), DeleteEntry(af(aU, P)), DeleteEntry(ah(aU, P)), DeleteEntry(ao(F)), DeleteEntry(ap(aU, D)), DeleteEntry(ar(F, aU)), DeleteEntry(ag(aU, P)), DeleteEntry(ad(aU, P)), DeleteEntry(ae(aU, P))]
601+ let co = [DeleteEntry(O(aU, P)), DeleteEntry(Q(aU, P)), DeleteEntry(R(aU, P)), DeleteEntry(S(aU, P)), DeleteEntry(U(aU, P)), DeleteEntry(T(aU, P)), DeleteEntry(Z(aU, P)), DeleteEntry(aa(aU, P)), DeleteEntry(ac(aU, P)), DeleteEntry(ab(aU, P)), DeleteEntry(V(aU, P)), DeleteEntry(W(aU, P)), DeleteEntry(X(aU, P)), DeleteEntry(Y(aU, P)), DeleteEntry(ai(aU, P)), DeleteEntry(af(aU, P)), DeleteEntry(ah(aU, P)), DeleteEntry(ao(F)), DeleteEntry(ap(aU, D)), DeleteEntry(ar(F, aU)), DeleteEntry(ag(aU, P)), DeleteEntry(ad(aU, P)), DeleteEntry(ae(aU, P))]
599602 if (!(aT(aU, P)))
600603 then if (!(p))
601604 then throw(q)
602- else cn
605+ else co
603606 else if (containsElement([j, toString(this)], N))
604- then cn
607+ then co
605608 else throw("Art already minted, you cannot delete it")
606609 }
607610 }
611614
612615
613616 @Callable(aN)
614-func sellArtwork (P,bc,co,aS,bw) = {
615- let cp = bn(aN)
616- let bt = cp._1
617- let N = cp._2
617+func sellArtwork (P,bc,cp,aS,bw) = {
618+ let cq = bn(aN)
619+ let bt = cq._1
620+ let N = cq._2
618621 let bz = v(Q(N, P))
619622 if ((bz == ""))
620623 then throw("This art doesn't match your account")
621624 else {
622- let ci = v(ai(N, P))
623- if (containsElement(["CHANGE_REQUIRED", "FLAGGED", "ILLEGAL"], ci))
625+ let cj = v(ai(N, P))
626+ if (containsElement(["CHANGE_REQUIRED", "FLAGGED", "ILLEGAL"], cj))
624627 then throw("Flagged artwork")
625628 else {
626- let cq = y(("current_bidamount_" + P))
629+ let cr = y(("current_bidamount_" + P))
627630 if ((0 > bw))
628631 then throw("Negative end")
629632 else if (if ((bw > 0))
630- then if ((co != 1))
633+ then if ((cp != 1))
631634 then true
632635 else (bc != 0)
633636 else false)
634637 then throw("Timed offer only allowed for unique edition and offer only")
635638 else {
636- let cr = if ((bw == 0))
639+ let cs = if ((bw == 0))
637640 then 0
638641 else height
639642 if (!(ba(aS)))
647650 else {
648651 let bB = y(X(N, P))
649652 let bC = y(V(N, P))
650- if ((co > 100))
653+ if ((cp > 100))
651654 then throw("100 editions max per artwork")
652655 else if (if ((bB != 0))
653656 then (bB == bC)
654657 else false)
655658 then throw("Max edition reached.")
656659 else if (if ((bB > 0))
657- then (bC != co)
660+ then (bC != cp)
658661 else false)
659662 then throw("Cannot change maximum issuable anymore")
660- else if (if ((cq > 0))
661- then (bC != co)
663+ else if (if ((cr > 0))
664+ then (bC != cp)
662665 else false)
663666 then throw("Cannot change maximum issuable with active orders")
664667 else {
665668 let bP = if (if ((bc > 0))
666- then (co > 0)
669+ then (cp > 0)
667670 else false)
668671 then true
669672 else false
670-[BooleanEntry(Y(N, P), bP), IntegerEntry(af(N, P), bc), IntegerEntry(V(N, P), co), StringEntry(ah(N, P), aS), IntegerEntry(ag(N, P), (cr + bw))]
673+[BooleanEntry(Y(N, P), bP), IntegerEntry(af(N, P), bc), IntegerEntry(V(N, P), cp), StringEntry(ah(N, P), aS), IntegerEntry(ag(N, P), (cs + bw))]
671674 }
672675 }
673676 }
685688
686689 @Callable(aN)
687690 func setBid (P,bp) = {
688- let cs = bn(aN)
689- let bt = cs._1
690- let N = cs._2
691- let bu = cs._3
692- let ct = aM(aN)
693- let aO = ct._1
694- let aP = ct._2
691+ let ct = bn(aN)
692+ let bt = ct._1
693+ let N = ct._2
694+ let bu = ct._3
695+ let cu = aM(aN)
696+ let aO = cu._1
697+ let aP = cu._2
695698 let aS = if (!(isDefined(aO.assetId)))
696699 then "WAVES"
697700 else toBase58String(value(aO.assetId))
701704 else false)
702705 then throw("Sale ended.")
703706 else {
704- let cq = y(("current_bidamount_" + P))
707+ let cr = y(("current_bidamount_" + P))
705708 if (!(ba(aS)))
706709 then throw("asset not accepted")
707710 else if (!(bb(aS, aP)))
713716 then throw("No max edition set for this artwork")
714717 else if ((bB >= bC))
715718 then throw("Sold out, you cannot bid")
716- else [StringEntry((((((((("bid_" + P) + "_") + bp) + "_") + N) + "_") + bt) + "_OPEN"), ((((aS + "_") + toString(aP)) + "_") + toString(bu))), IntegerEntry(("current_bidamount_" + P), (cq + 1))]
719+ else [StringEntry((((((((("bid_" + P) + "_") + bp) + "_") + N) + "_") + bt) + "_OPEN"), ((((aS + "_") + toString(aP)) + "_") + toString(bu))), IntegerEntry(("current_bidamount_" + P), (cr + 1))]
717720 }
718721 }
719722 }
732735
733736 @Callable(aN)
734737 func cancelBid (P,bp,bq,br) = {
735- let cu = bn(aN)
736- let bt = cu._1
737- let N = cu._2
738- let bu = cu._3
738+ let cv = bn(aN)
739+ let bt = cv._1
740+ let N = cv._2
741+ let bu = cv._3
739742 if (if ((N != br))
740743 then (N != bp)
741744 else false)
742745 then throw("You cannot do this action")
743746 else {
744- let cv = if ((N == bp))
747+ let cw = if ((N == bp))
745748 then br
746749 else N
747- let cq = y(("current_bidamount_" + P))
750+ let cr = y(("current_bidamount_" + P))
748751 let bi = ((((((("bid_" + P) + "_") + bp) + "_") + br) + "_") + bq)
749752 let bj = v((bi + "_OPEN"))
750753 if ((bj == ""))
752755 else {
753756 let bk = split(bj, "_")
754757 let aS = bg(bk[0])
755- let cw = "CANCELED"
756-[DeleteEntry((bi + "_OPEN")), StringEntry(((bi + "_") + cw), ((bj + "_") + toString(bu))), IntegerEntry(("current_bidamount_" + P), (cq - 1)), ScriptTransfer(Address(fromBase58String(cv)), parseIntValue(bk[1]), aS)]
758+ let cx = "CANCELED"
759+[DeleteEntry((bi + "_OPEN")), StringEntry(((bi + "_") + cx), ((bj + "_") + toString(bu))), IntegerEntry(("current_bidamount_" + P), (cr - 1)), ScriptTransfer(Address(fromBase58String(cw)), parseIntValue(bk[1]), aS)]
757760 }
758761 }
759762 }
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = false
55
66 let b = value(addressFromString("3N2s5RtaHPBenCsx2ECcoFRbYHx3noZhXW1"))
77
88 let c = value(addressFromString("3NC28hSivrmsTUXaYD1x6L362J4ZpUnoTdB"))
99
1010 let d = "3N1E6tXddRoVaRfQ9dQ3vg5LaW2fsd8HKub"
1111
1212 let e = if (a)
1313 then value(addressFromString("3Mt4RGMEyjSWYAocTPqd55wdHQQB3PU2UCm"))
1414 else value(addressFromString("3N8xXaYjE27Aa79d5hHrhHu9HaFoTBmhDEj"))
1515
1616 let f = value(addressFromString("3N6BaV1dCB4zg43goNNHaCtvR13BcyJ5Gsq"))
1717
1818 let g = base58'Gf9t8FA4H3ssoZPCwrg3KwUFCci8zuUFP9ssRsUY3s6a'
1919
2020 let h = base58'25FEqEjRkqK6yCkiT7Lz6SAYz7gUFCtxfCChnrVFD5AT'
2121
2222 let i = base58''
2323
2424 let j = "3MsG6jPNCrVJUtYB7XJBxS7utWsXAf4n9Vp"
2525
2626 let k = "3Mzm4VLwsN9uZwbTMzPj3XuxV6kEfAR8UDN"
2727
2828 let l = 7
2929
3030 let m = 10
3131
3232 let n = "bafybeifuyo4pqu54ismqgtb6e4h6kkvgx7zg4u3zibh2r7y6mb64i7bzza/licence.pdf"
3333
3434 let o = "a87758c354e30a9e78fb84fa3a0010a5090ab20df0be11ad45b5720cc187e639"
3535
3636 let p = valueOrElse(getBoolean(e, "conf_dapp_is_running"), true)
3737
3838 let q = valueOrElse(getString(e, "conf_maintenance_msg"), "")
3939
4040 let r = "SUSPENDED"
4141
4242 let s = "REMOVED"
4343
4444 let t = "UNREGISTERED"
4545
4646 let u = "ALLOWED"
4747
4848 func v (w) = valueOrElse(getString(this, w), "")
4949
5050
5151 func x (w) = valueOrErrorMessage(getInteger(b, w), "Integer undefine or 0 in oracle")
5252
5353
5454 func y (w) = valueOrElse(getInteger(this, w), 0)
5555
5656
5757 func z (w) = valueOrElse(getInteger(f, w), 0)
5858
5959
6060 func A (w) = valueOrElse(getBoolean(this, w), false)
6161
6262
6363 let B = x(("certification_fee_" + toBase58String(g)))
6464
6565 func C (D,E,F) = {
6666 let G = getString(c, ((("data_fc_" + D) + "_") + E))
6767 if ($isInstanceOf(G, "String"))
6868 then {
6969 let H = G
7070 if (contains(H, F))
7171 then true
7272 else false
7373 }
7474 else false
7575 }
7676
7777
7878 func I (J) = if (contains(J, "/"))
7979 then if (if ((76 > size(J)))
8080 then (size(split(J, "/")[0]) == 59)
8181 else false)
8282 then (16 > size(split(J, "/")[1]))
8383 else false
8484 else false
8585
8686
8787 func K (L) = (size(L) == 64)
8888
8989
9090 func M (N) = ("user_status_" + N)
9191
9292
9393 func O (N,P) = ((("art_date_" + P) + "_") + N)
9494
9595
9696 func Q (N,P) = ((("art_name_" + P) + "_") + N)
9797
9898
9999 func R (N,P) = ((("art_desc_" + P) + "_") + N)
100100
101101
102102 func S (N,P) = ((("art_display_cid_" + P) + "_") + N)
103103
104104
105105 func T (N,P) = ((("art_export_hash_" + P) + "_") + N)
106106
107107
108108 func U (N,P) = ((("art_export_cid_" + P) + "_") + N)
109109
110110
111111 func V (N,P) = ((("art_maxmint_" + P) + "_") + N)
112112
113113
114114 func W (N,P) = ((("art_signid_" + P) + "_") + N)
115115
116116
117117 func X (N,P) = ((("art_issued_" + P) + "_") + N)
118118
119119
120120 func Y (N,P) = ((("art_onsale_" + P) + "_") + N)
121121
122122
123123 func Z (N,P) = ((("art_licence_hash_" + P) + "_") + N)
124124
125125
126126 func aa (N,P) = ((("art_licence_cid_" + P) + "_") + N)
127127
128128
129129 func ab (N,P) = ((("art_tags_" + P) + "_") + N)
130130
131131
132132 func ac (N,P) = ((("art_type_" + P) + "_") + N)
133133
134134
135135 func ad (N,P) = ((("art_note_" + P) + "_") + N)
136136
137137
138138 func ae (N,P) = ((("art_crawler_cid_" + P) + "_") + N)
139139
140140
141141 func af (N,P) = ((("art_price_" + P) + "_") + N)
142142
143143
144144 func ag (N,P) = ((("art_endsale_" + P) + "_") + N)
145145
146146
147147 func ah (N,P) = ((("art_assetAccepted_" + P) + "_") + N)
148148
149149
150150 func ai (N,P) = ((("art_flag_" + P) + "_") + N)
151151
152152
153153 func aj (ak) = ("artist_agent_" + ak)
154154
155155
156156 func al (ak) = ("artist_agent_primary_" + ak)
157157
158158
159159 func am (N,an) = ((("get_hashbytxidaddr_" + an) + "_") + N)
160160
161161
162162 func ao (F) = ("get_owner_by_hash_" + F)
163163
164164
165165 func ap (N,aq) = ((("get_artidbysignid_" + aq) + "_") + N)
166166
167167
168168 func ar (F,N) = ("get_txid_by_hash_owner_" + toBase58String(sha256_16Kb(toBytes((F + N)))))
169169
170170
171171 func as (at,au,av) = if (!(I(at)))
172172 then throw("Wrong Display CID")
173173 else if (!(I(au)))
174174 then throw("Wrong Export CID")
175175 else if (if ((av != ""))
176176 then !(I(av))
177177 else false)
178178 then throw("Wrong Licence CID")
179179 else true
180180
181181
182182 func aw (ax,ay) = if (!(K(ax)))
183183 then throw("Export Hash 64 char. max")
184184 else if (!(K(ay)))
185185 then throw("Licence Hash 64 char. max")
186186 else true
187187
188188
189189 func az (aA,aB) = if ((size(aA) == 0))
190190 then throw("Field cannot be is empty")
191191 else if ((size(aA) > aB))
192192 then throw((aA + " is too long"))
193193 else true
194194
195195
196196 func aC (N) = {
197197 let aD = valueOrElse(getString(e, M(N)), t)
198198 if (if ((aD == t))
199199 then true
200200 else (aD == u))
201201 then "Register this account first with \"Account\" tab"
202202 else if ((aD == r))
203203 then "Account suspended"
204204 else if ((aD == s))
205205 then "Account removed"
206206 else ""
207207 }
208208
209209
210210 func aE (av,ay) = {
211211 let J = if ((size(av) == 0))
212212 then n
213213 else av
214214 let L = if ((size(ay) == 0))
215215 then o
216216 else ay
217217 $Tuple2(J, L)
218218 }
219219
220220
221221 func aF (N,at,au,aG,ax,aH,aI,aJ,aK) = {
222222 let aL = aC(N)
223223 if ((aL != ""))
224224 then throw(aL)
225225 else if ((size(at) == 0))
226226 then throw("Display CID cannot be empty")
227227 else if (!(as(at, au, aG)))
228228 then throw("Problem with CID")
229229 else if (!(aw(ax, aH)))
230230 then throw("Problem with Hashes")
231231 else if (!(az(aI, 100)))
232232 then throw("100 Char. max name")
233233 else if (!(az(aJ, 1000)))
234234 then throw("1000 Char. max description")
235235 else if ((size(split(aK, ",")) > 5))
236236 then throw("5 tags max.")
237237 else ""
238238 }
239239
240240
241241 func aM (aN) = if ((size(aN.payments) == 0))
242242 then throw("No payment attached")
243243 else {
244244 let aO = value(aN.payments[0])
245245 let aP = value(aO.amount)
246246 $Tuple2(aO, aP)
247247 }
248248
249249
250250 func aQ (aN) = {
251251 let aR = aM(aN)
252252 let aO = aR._1
253253 let aP = aR._2
254254 let aS = if (if (isDefined(aO.assetId))
255255 then (aO.assetId == g)
256256 else false)
257257 then aO.assetId
258258 else throw("Only SIGN token accepted as transaction fee")
259259 if ((aP != B))
260260 then throw(("Payment amount should be " + toString(B)))
261261 else $Tuple2(aP, aS)
262262 }
263263
264264
265265 func aT (aU,P) = {
266266 let G = getInteger(this, X(aU, P))
267267 if ($isInstanceOf(G, "Int"))
268268 then {
269269 let aV = G
270270 if ((aV != 0))
271271 then true
272272 else false
273273 }
274274 else false
275275 }
276276
277277
278278 func aW (aN,aX,aY) = {
279279 let aZ = aM(aN)
280280 let aO = aZ._1
281281 let aP = aZ._2
282282 let aS = if (!(isDefined(aO.assetId)))
283283 then unit
284284 else if (if ((size(aX) > 0))
285285 then (toBase58String(value(aO.assetId)) == aX)
286286 else false)
287287 then aO.assetId
288288 else throw("Wrong asset id")
289289 if (if ((aS == unit))
290290 then (aX != "")
291291 else false)
292292 then throw("Wrong asset id")
293293 else if ((aY != aP))
294294 then throw("Payment don't match")
295295 else $Tuple2(aP, aS)
296296 }
297297
298298
299299 func ba (aS) = if (if (if (if ((aS != toBase58String(g)))
300300 then (aS != toBase58String(i))
301301 else false)
302302 then (aS != "WAVES")
303303 else false)
304304 then (aS != toBase58String(h))
305305 else false)
306306 then throw("Only SIGN, USDN or WAVES accepted")
307307 else true
308308
309309
310310 func bb (aS,bc) = {
311311 let bd = if (a)
312312 then 10
313313 else x("waves_min_sell")
314314 let be = 1000000
315315 let bf = if (a)
316316 then 1
317317 else (B * 2)
318318 if (if (if (if (if ((aS == toBase58String(h)))
319319 then (be > bc)
320320 else false)
321321 then (bc != 0)
322322 else false)
323323 then true
324324 else if (if ((aS == toBase58String(g)))
325325 then (bf > bc)
326326 else false)
327327 then (bc != 0)
328328 else false)
329329 then true
330330 else if (if (if ((aS == toBase58String(i)))
331331 then true
332332 else (aS == "WAVES"))
333333 then (bd > bc)
334334 else false)
335335 then (bc != 0)
336336 else false)
337337 then throw("Wrong minimum sell price")
338338 else true
339339 }
340340
341341
342342 func bg (aS) = if ((aS == "WAVES"))
343343 then unit
344344 else fromBase58String(aS)
345345
346346
347347 func bh (bi) = {
348348 let bj = v((bi + "_OPEN"))
349349 if ((bj == ""))
350350 then throw("Bid not found")
351351 else {
352352 let bk = split(bj, "_")
353353 let bl = parseIntValue(bk[1])
354354 let bm = bg(bk[0])
355355 if ((0 >= bl))
356356 then throw("Wrong amount")
357357 else $Tuple2(bl, bm)
358358 }
359359 }
360360
361361
362362 func bn (aN) = if (!(p))
363363 then throw(q)
364364 else $Tuple3(toBase58String(aN.transactionId), toBase58String(aN.caller.bytes), lastBlock.timestamp)
365365
366366
367367 func bo (aN,P,bp,bq,br) = {
368368 let bs = bn(aN)
369369 let bt = bs._1
370370 let N = bs._2
371371 let bu = bs._3
372372 let bv = if (if (if ((toBase58String(aN.caller.bytes) == bp))
373373 then (br != "")
374374 else false)
375375 then (bq != "")
376376 else false)
377377 then true
378378 else false
379379 let bw = y(ag(N, P))
380380 if (if (if ((bw != 0))
381381 then (height >= bw)
382382 else false)
383383 then !(bv)
384384 else false)
385385 then throw("Sale ended.")
386386 else {
387387 let bx = (toBase58String(aN.caller.bytes) == bp)
388388 let by = y("total_nft_issued")
389389 let D = v(W(bp, P))
390390 let bz = v(Q(bp, P))
391391 if ((bz == ""))
392392 then throw("Art doesn't exist")
393393 else {
394394 let bA = A(Y(bp, P))
395395 let bB = y(X(bp, P))
396396 let aY = if (bx)
397397 then (B * 2)
398398 else y(af(bp, P))
399399 let aX = if (bx)
400400 then toBase58String(g)
401401 else v(ah(bp, P))
402402 let bC = y(V(bp, P))
403403 if (if (if (!(bv))
404404 then !(bx)
405405 else false)
406406 then if (if ((0 >= aY))
407407 then true
408408 else !(bA))
409409 then true
410410 else (0 >= bC)
411411 else false)
412412 then throw("Art not for sale")
413413 else if (if (if (!(bv))
414414 then bx
415415 else false)
416416 then (0 >= bC)
417417 else false)
418418 then throw("Max issuable not set")
419419 else {
420420 let aL = aC(bp)
421421 if (if (bv)
422422 then (aL != "")
423423 else false)
424424 then throw(aL)
425425 else {
426426 let bi = ((((((("bid_" + P) + "_") + bp) + "_") + br) + "_") + bq)
427427 let bD = if (bv)
428428 then bh(bi)
429429 else aW(aN, aX, aY)
430430 let aP = bD._1
431431 let aS = bD._2
432432 let bE = valueOrElse(getString(e, aj(bp)), d)
433433 let bF = valueOrElse(getInteger(e, al(bp)), 0)
434434 let bG = z(bp)
435435 let bH = if ((bG > height))
436436 then 0
437437 else if ((aS == g))
438438 then l
439439 else m
440440 let bI = fraction(aP, bH, 100)
441441 let bJ = if (if ((bE != d))
442442 then (bF > 0)
443443 else false)
444444 then fraction(aP, bF, 100)
445445 else 0
446446 let bK = (aP - bI)
447447 if ((bB == bC))
448448 then throw("Art sold out")
449449 else {
450450 let bL = (bB + 1)
451451 let bM = ((((((((((("Creator: " + bp) + ",
452452 ArtID: ") + P) + ",
453453 SignID: ") + D) + ",
454454 Artwork name: ") + bz) + ",
455455 Issue: ") + toString(bL)) + "/") + toString(bC))
456456 let bN = Issue(("SA_" + toString((by + 1))), bM, 1, 0, false)
457457 let bO = calculateAssetId(bN)
458458 let bP = if (if ((bL == bC))
459459 then true
460460 else !(bA))
461461 then false
462462 else true
463463 let bQ = if (if (if ((N == bp))
464464 then (br != "")
465465 else false)
466466 then (bq != "")
467467 else false)
468468 then addressFromStringValue(br)
469469 else aN.caller
470470 let bR = if (!(isDefined(aS)))
471471 then "WAVES"
472472 else toBase58String(value(aS))
473473 let bj = v((bi + "_OPEN"))
474474 let bS = DeleteEntry((bi + "_OPEN"))
475475 let bT = StringEntry((bi + "_CLOSED"), ((bj + "_") + toString(bu)))
476476 let bU = ((((((("art_sold_" + toString(bL)) + "_of_") + toString(bC)) + "_") + P) + "_") + bp)
477477 let bV = if (!(bv))
478478 then ((((((((((N + "_") + toString(bu)) + "_") + bt) + "_") + toString(aY)) + "_") + aX) + "_") + toBase58String(bO))
479479 else ((((((((((toString(bQ) + "_") + toString(bu)) + "_") + bt) + "_") + toString(aP)) + "_") + bR) + "_") + toBase58String(bO))
480480 let bW = StringEntry(bU, bV)
481- let bX = [IntegerEntry(X(bp, P), bL), StringEntry(("nft_" + toBase58String(bO)), bU), IntegerEntry("total_nft_issued", (by + 1)), IntegerEntry(ag(bp, P), 0), BooleanEntry(Y(bp, P), bP), bN, ScriptTransfer(Address(fromBase58String(bp)), bK, aS), ScriptTransfer(Address(fromBase58String(d)), (bI - bJ), aS), ScriptTransfer(Address(fromBase58String(bE)), bJ, aS), ScriptTransfer(bQ, 1, bO)]
481+ let bX = if ((bJ != 0))
482+ then [ScriptTransfer(Address(fromBase58String(d)), (bI - bJ), aS), ScriptTransfer(Address(fromBase58String(bE)), bJ, aS)]
483+ else [ScriptTransfer(Address(fromBase58String(d)), bI, aS)]
484+ let bY = ([IntegerEntry(X(bp, P), bL), StringEntry(("nft_" + toBase58String(bO)), bU), IntegerEntry("total_nft_issued", (by + 1)), IntegerEntry(ag(bp, P), 0), BooleanEntry(Y(bp, P), bP), bN, ScriptTransfer(Address(fromBase58String(bp)), bK, aS), ScriptTransfer(bQ, 1, bO)] ++ bX)
482485 if (bv)
483- then [bW, bT, bS] :: bX
484- else bW :: bX
486+ then [bW, bT, bS] :: bY
487+ else bW :: bY
485488 }
486489 }
487490 }
488491 }
489492 }
490493 }
491494
492495
493496 @Callable(aN)
494-func addArtwork (F,D,aI,aJ,aK,bY,at,ax,au,ay,av,bZ) = {
495- let ca = bn(aN)
496- let P = ca._1
497- let N = ca._2
498- let bu = ca._3
497+func addArtwork (F,D,aI,aJ,aK,bZ,at,ax,au,ay,av,ca) = {
498+ let cb = bn(aN)
499+ let P = cb._1
500+ let N = cb._2
501+ let bu = cb._3
499502 if (!(K(F)))
500503 then throw("Hash should be 64 characters maximum")
501504 else {
502- let cb = aE(av, ay)
503- let aG = cb._1
504- let aH = cb._2
505- let cc = aF(N, at, au, aG, ax, aH, aI, aJ, aK)
506- if ((cc != ""))
505+ let cc = aE(av, ay)
506+ let aG = cc._1
507+ let aH = cc._2
508+ let cd = aF(N, at, au, aG, ax, aH, aI, aJ, aK)
509+ if ((cd != ""))
507510 then throw("Something went wrong!")
508511 else {
509- let cd = aQ(aN)
510- let aP = cd._1
511- let aS = cd._2
512+ let ce = aQ(aN)
513+ let aP = ce._1
514+ let aS = ce._2
512515 if (!(isDefined(aP)))
513516 then throw("Something went wrong")
514517 else {
515- let ce = v(ar(F, N))
516- if ((ce != ""))
518+ let cf = v(ar(F, N))
519+ if ((cf != ""))
517520 then throw("You already added it")
518521 else {
519- let cf = v(ao(F))
520- if ((cf != ""))
522+ let cg = v(ao(F))
523+ if ((cg != ""))
521524 then throw("Hash already registered")
522525 else {
523- let cg = C(D, N, F)
524- if (!(cg))
526+ let ch = C(D, N, F)
527+ if (!(ch))
525528 then throw("Sign Certificate not found for this address.")
526- else [StringEntry(ao(F), N), StringEntry(ar(F, N), P), IntegerEntry(O(N, P), bu), StringEntry(Q(N, P), aI), StringEntry(R(N, P), aJ), StringEntry(S(N, P), at), StringEntry(U(N, P), au), StringEntry(T(N, P), ax), StringEntry(Z(N, P), aH), StringEntry(aa(N, P), aG), StringEntry(ac(N, P), bY), StringEntry(ab(N, P), aK), IntegerEntry(V(N, P), 0), StringEntry(W(N, P), D), IntegerEntry(X(N, P), 0), BooleanEntry(Y(N, P), false), StringEntry(ap(N, D), P), StringEntry(am(N, P), F), StringEntry(ae(N, P), bZ), ScriptTransfer(Address(fromBase58String(d)), aP, aS)]
529+ else [StringEntry(ao(F), N), StringEntry(ar(F, N), P), IntegerEntry(O(N, P), bu), StringEntry(Q(N, P), aI), StringEntry(R(N, P), aJ), StringEntry(S(N, P), at), StringEntry(U(N, P), au), StringEntry(T(N, P), ax), StringEntry(Z(N, P), aH), StringEntry(aa(N, P), aG), StringEntry(ac(N, P), bZ), StringEntry(ab(N, P), aK), IntegerEntry(V(N, P), 0), StringEntry(W(N, P), D), IntegerEntry(X(N, P), 0), BooleanEntry(Y(N, P), false), StringEntry(ap(N, D), P), StringEntry(am(N, P), F), StringEntry(ae(N, P), ca), ScriptTransfer(Address(fromBase58String(d)), aP, aS)]
527530 }
528531 }
529532 }
530533 }
531534 }
532535 }
533536
534537
535538
536539 @Callable(aN)
537-func updateArtwork (an,aI,aJ,aK,bY,at,ax,au,ay,av,bZ) = if (!(p))
540+func updateArtwork (an,aI,aJ,aK,bZ,at,ax,au,ay,av,ca) = if (!(p))
538541 then throw(q)
539542 else {
540543 let N = toBase58String(aN.caller.bytes)
541- let ch = aE(av, ay)
542- let aG = ch._1
543- let aH = ch._2
544- let cc = aF(N, at, au, aG, ax, aH, aI, aJ, aK)
545- if ((cc != ""))
544+ let ci = aE(av, ay)
545+ let aG = ci._1
546+ let aH = ci._2
547+ let cd = aF(N, at, au, aG, ax, aH, aI, aJ, aK)
548+ if ((cd != ""))
546549 then throw("Something went wrong!")
547550 else {
548- let ce = v(Q(N, an))
549- if ((ce == ""))
551+ let cf = v(Q(N, an))
552+ if ((cf == ""))
550553 then throw("Entry not found")
551554 else {
552- let ci = v(ai(N, an))
553- if ((ci == "ILLEGAL"))
555+ let cj = v(ai(N, an))
556+ if ((cj == "ILLEGAL"))
554557 then throw("Cannot update ILLEGAL artwork")
555558 else if (!(aT(N, an)))
556- then [StringEntry(Q(N, an), aI), StringEntry(R(N, an), aJ), StringEntry(S(N, an), at), StringEntry(U(N, an), au), StringEntry(T(N, an), ax), StringEntry(aa(N, an), aG), StringEntry(Z(N, an), aH), StringEntry(ab(N, an), aK), StringEntry(ac(N, an), bY), StringEntry(ae(N, an), bZ)]
559+ then [StringEntry(Q(N, an), aI), StringEntry(R(N, an), aJ), StringEntry(S(N, an), at), StringEntry(U(N, an), au), StringEntry(T(N, an), ax), StringEntry(aa(N, an), aG), StringEntry(Z(N, an), aH), StringEntry(ab(N, an), aK), StringEntry(ac(N, an), bZ), StringEntry(ae(N, an), ca)]
557560 else throw("Already minted")
558561 }
559562 }
560563 }
561564
562565
563566
564567 @Callable(aN)
565-func flagArtwork (P,cj,ci,ck) = {
566- let cl = bn(aN)
567- let bt = cl._1
568- let N = cl._2
568+func flagArtwork (P,ck,cj,cl) = {
569+ let cm = bn(aN)
570+ let bt = cm._1
571+ let N = cm._2
569572 if (containsElement([j, toString(this)], N))
570- then if (containsElement(["CONSENT", "", "CHANGE_REQUIRED", "FLAGGED", "ILLEGAL"], ci))
571- then [StringEntry(ai(cj, P), ci), StringEntry(ad(cj, P), ck)]
572- else throw(("Unknow status " + ci))
573+ then if (containsElement(["CONSENT", "", "CHANGE_REQUIRED", "FLAGGED", "ILLEGAL"], cj))
574+ then [StringEntry(ai(ck, P), cj), StringEntry(ad(ck, P), cl)]
575+ else throw(("Unknow status " + cj))
573576 else throw("You are not allowed")
574577 }
575578
576579
577580
578581 @Callable(aN)
579-func deleteArtwork (P,cj) = {
580- let cm = bn(aN)
581- let bt = cm._1
582- let N = cm._2
582+func deleteArtwork (P,ck) = {
583+ let cn = bn(aN)
584+ let bt = cn._1
585+ let N = cn._2
583586 let aU = if (containsElement([j, k, toString(this)], N))
584- then cj
587+ then ck
585588 else N
586- let ce = valueOrErrorMessage(v(Q(aU, P)), "No art matching for this address")
587- if ((ce == ""))
589+ let cf = valueOrErrorMessage(v(Q(aU, P)), "No art matching for this address")
590+ if ((cf == ""))
588591 then throw("No art matching for this address")
589592 else {
590593 let F = v(am(aU, P))
591594 if ((F == ""))
592595 then throw("No art hash matching for this address")
593596 else {
594597 let D = v(W(aU, P))
595598 if ((D == ""))
596599 then throw("No SIGN ID matching")
597600 else {
598- let cn = [DeleteEntry(O(aU, P)), DeleteEntry(Q(aU, P)), DeleteEntry(R(aU, P)), DeleteEntry(S(aU, P)), DeleteEntry(U(aU, P)), DeleteEntry(T(aU, P)), DeleteEntry(Z(aU, P)), DeleteEntry(aa(aU, P)), DeleteEntry(ac(aU, P)), DeleteEntry(ab(aU, P)), DeleteEntry(V(aU, P)), DeleteEntry(W(aU, P)), DeleteEntry(X(aU, P)), DeleteEntry(Y(aU, P)), DeleteEntry(ai(aU, P)), DeleteEntry(af(aU, P)), DeleteEntry(ah(aU, P)), DeleteEntry(ao(F)), DeleteEntry(ap(aU, D)), DeleteEntry(ar(F, aU)), DeleteEntry(ag(aU, P)), DeleteEntry(ad(aU, P)), DeleteEntry(ae(aU, P))]
601+ let co = [DeleteEntry(O(aU, P)), DeleteEntry(Q(aU, P)), DeleteEntry(R(aU, P)), DeleteEntry(S(aU, P)), DeleteEntry(U(aU, P)), DeleteEntry(T(aU, P)), DeleteEntry(Z(aU, P)), DeleteEntry(aa(aU, P)), DeleteEntry(ac(aU, P)), DeleteEntry(ab(aU, P)), DeleteEntry(V(aU, P)), DeleteEntry(W(aU, P)), DeleteEntry(X(aU, P)), DeleteEntry(Y(aU, P)), DeleteEntry(ai(aU, P)), DeleteEntry(af(aU, P)), DeleteEntry(ah(aU, P)), DeleteEntry(ao(F)), DeleteEntry(ap(aU, D)), DeleteEntry(ar(F, aU)), DeleteEntry(ag(aU, P)), DeleteEntry(ad(aU, P)), DeleteEntry(ae(aU, P))]
599602 if (!(aT(aU, P)))
600603 then if (!(p))
601604 then throw(q)
602- else cn
605+ else co
603606 else if (containsElement([j, toString(this)], N))
604- then cn
607+ then co
605608 else throw("Art already minted, you cannot delete it")
606609 }
607610 }
608611 }
609612 }
610613
611614
612615
613616 @Callable(aN)
614-func sellArtwork (P,bc,co,aS,bw) = {
615- let cp = bn(aN)
616- let bt = cp._1
617- let N = cp._2
617+func sellArtwork (P,bc,cp,aS,bw) = {
618+ let cq = bn(aN)
619+ let bt = cq._1
620+ let N = cq._2
618621 let bz = v(Q(N, P))
619622 if ((bz == ""))
620623 then throw("This art doesn't match your account")
621624 else {
622- let ci = v(ai(N, P))
623- if (containsElement(["CHANGE_REQUIRED", "FLAGGED", "ILLEGAL"], ci))
625+ let cj = v(ai(N, P))
626+ if (containsElement(["CHANGE_REQUIRED", "FLAGGED", "ILLEGAL"], cj))
624627 then throw("Flagged artwork")
625628 else {
626- let cq = y(("current_bidamount_" + P))
629+ let cr = y(("current_bidamount_" + P))
627630 if ((0 > bw))
628631 then throw("Negative end")
629632 else if (if ((bw > 0))
630- then if ((co != 1))
633+ then if ((cp != 1))
631634 then true
632635 else (bc != 0)
633636 else false)
634637 then throw("Timed offer only allowed for unique edition and offer only")
635638 else {
636- let cr = if ((bw == 0))
639+ let cs = if ((bw == 0))
637640 then 0
638641 else height
639642 if (!(ba(aS)))
640643 then throw("Something went wrong!")
641644 else if (!(bb(aS, bc)))
642645 then throw("Something went wrong!")
643646 else {
644647 let aL = aC(N)
645648 if ((aL != ""))
646649 then throw(aL)
647650 else {
648651 let bB = y(X(N, P))
649652 let bC = y(V(N, P))
650- if ((co > 100))
653+ if ((cp > 100))
651654 then throw("100 editions max per artwork")
652655 else if (if ((bB != 0))
653656 then (bB == bC)
654657 else false)
655658 then throw("Max edition reached.")
656659 else if (if ((bB > 0))
657- then (bC != co)
660+ then (bC != cp)
658661 else false)
659662 then throw("Cannot change maximum issuable anymore")
660- else if (if ((cq > 0))
661- then (bC != co)
663+ else if (if ((cr > 0))
664+ then (bC != cp)
662665 else false)
663666 then throw("Cannot change maximum issuable with active orders")
664667 else {
665668 let bP = if (if ((bc > 0))
666- then (co > 0)
669+ then (cp > 0)
667670 else false)
668671 then true
669672 else false
670-[BooleanEntry(Y(N, P), bP), IntegerEntry(af(N, P), bc), IntegerEntry(V(N, P), co), StringEntry(ah(N, P), aS), IntegerEntry(ag(N, P), (cr + bw))]
673+[BooleanEntry(Y(N, P), bP), IntegerEntry(af(N, P), bc), IntegerEntry(V(N, P), cp), StringEntry(ah(N, P), aS), IntegerEntry(ag(N, P), (cs + bw))]
671674 }
672675 }
673676 }
674677 }
675678 }
676679 }
677680 }
678681
679682
680683
681684 @Callable(aN)
682685 func buyArtwork (P,bp) = bo(aN, P, bp, "", "")
683686
684687
685688
686689 @Callable(aN)
687690 func setBid (P,bp) = {
688- let cs = bn(aN)
689- let bt = cs._1
690- let N = cs._2
691- let bu = cs._3
692- let ct = aM(aN)
693- let aO = ct._1
694- let aP = ct._2
691+ let ct = bn(aN)
692+ let bt = ct._1
693+ let N = ct._2
694+ let bu = ct._3
695+ let cu = aM(aN)
696+ let aO = cu._1
697+ let aP = cu._2
695698 let aS = if (!(isDefined(aO.assetId)))
696699 then "WAVES"
697700 else toBase58String(value(aO.assetId))
698701 let bw = y(ag(bp, P))
699702 if (if ((bw != 0))
700703 then (height >= bw)
701704 else false)
702705 then throw("Sale ended.")
703706 else {
704- let cq = y(("current_bidamount_" + P))
707+ let cr = y(("current_bidamount_" + P))
705708 if (!(ba(aS)))
706709 then throw("asset not accepted")
707710 else if (!(bb(aS, aP)))
708711 then throw("Wrong min sell")
709712 else {
710713 let bB = y(X(bp, P))
711714 let bC = y(V(bp, P))
712715 if ((0 >= bC))
713716 then throw("No max edition set for this artwork")
714717 else if ((bB >= bC))
715718 then throw("Sold out, you cannot bid")
716- else [StringEntry((((((((("bid_" + P) + "_") + bp) + "_") + N) + "_") + bt) + "_OPEN"), ((((aS + "_") + toString(aP)) + "_") + toString(bu))), IntegerEntry(("current_bidamount_" + P), (cq + 1))]
719+ else [StringEntry((((((((("bid_" + P) + "_") + bp) + "_") + N) + "_") + bt) + "_OPEN"), ((((aS + "_") + toString(aP)) + "_") + toString(bu))), IntegerEntry(("current_bidamount_" + P), (cr + 1))]
717720 }
718721 }
719722 }
720723
721724
722725
723726 @Callable(aN)
724727 func acceptBid (P,bp,bq,br) = {
725728 let N = toBase58String(aN.caller.bytes)
726729 if ((N != bp))
727730 then throw("You cannot do this action")
728731 else bo(aN, P, bp, bq, br)
729732 }
730733
731734
732735
733736 @Callable(aN)
734737 func cancelBid (P,bp,bq,br) = {
735- let cu = bn(aN)
736- let bt = cu._1
737- let N = cu._2
738- let bu = cu._3
738+ let cv = bn(aN)
739+ let bt = cv._1
740+ let N = cv._2
741+ let bu = cv._3
739742 if (if ((N != br))
740743 then (N != bp)
741744 else false)
742745 then throw("You cannot do this action")
743746 else {
744- let cv = if ((N == bp))
747+ let cw = if ((N == bp))
745748 then br
746749 else N
747- let cq = y(("current_bidamount_" + P))
750+ let cr = y(("current_bidamount_" + P))
748751 let bi = ((((((("bid_" + P) + "_") + bp) + "_") + br) + "_") + bq)
749752 let bj = v((bi + "_OPEN"))
750753 if ((bj == ""))
751754 then throw("Bid not found")
752755 else {
753756 let bk = split(bj, "_")
754757 let aS = bg(bk[0])
755- let cw = "CANCELED"
756-[DeleteEntry((bi + "_OPEN")), StringEntry(((bi + "_") + cw), ((bj + "_") + toString(bu))), IntegerEntry(("current_bidamount_" + P), (cq - 1)), ScriptTransfer(Address(fromBase58String(cv)), parseIntValue(bk[1]), aS)]
758+ let cx = "CANCELED"
759+[DeleteEntry((bi + "_OPEN")), StringEntry(((bi + "_") + cx), ((bj + "_") + toString(bu))), IntegerEntry(("current_bidamount_" + P), (cr - 1)), ScriptTransfer(Address(fromBase58String(cw)), parseIntValue(bk[1]), aS)]
757760 }
758761 }
759762 }
760763
761764

github/deemru/w8io/169f3d6 
161.01 ms