tx · 6Yzi2fRXUk2kgvu2xmBAt5oqtWQT5z74yD7N2wrHivi9

3N4LZUtraMUi2ABEMkny2jPuW4YtMb1Mptu:  -0.01400000 Waves

2021.01.23 22:01 [1366547] smart account 3N4LZUtraMUi2ABEMkny2jPuW4YtMb1Mptu > SELF 0.00000000 Waves

{ "type": 13, "id": "6Yzi2fRXUk2kgvu2xmBAt5oqtWQT5z74yD7N2wrHivi9", "fee": 1400000, "feeAssetId": null, "timestamp": 1611428572230, "version": 1, "sender": "3N4LZUtraMUi2ABEMkny2jPuW4YtMb1Mptu", "senderPublicKey": "5HCGPojca71eK6HQ2LLv6xriZLjgp7V5febuNekZMZgX", "proofs": [ "5uMDRePK88c8bvQcogdLgLygKro9UhKHDTE5xPKHxc2CATBggMeWaJxpu7VcavkWJTbx9qWnzfJerJ3Vd2vW36ZL" ], "script": "base64:AAIEAAAAAAAAAB8IAhIAEgUKAwgIARIFCgMICAESBQoDCAgBEgASABIAAAAAIgAAAAAMYWRtaW5QdWJLZXkxAQAAACAQsOLq5CB1W9qjcQbPak46dbMqu5F1eul3gOhttbJnHwAAAAAMYWRtaW5QdWJLZXkyAQAAACAQsOLq5CB1W9qjcQbPak46dbMqu5F1eul3gOhttbJnHwAAAAAMYWRtaW5QdWJLZXkzAQAAACAQsOLq5CB1W9qjcQbPak46dbMqu5F1eul3gOhttbJnHwAAAAAUYWRtaW5QdWJLZXlTdGFydFN0b3ABAAAAIBCw4urkIHVb2qNxBs9qTjp1syq7kXV66XeA6G21smcfAAAAABJhZG1pblB1YktleVN0YWtpbmcBAAAAIBCw4urkIHVb2qNxBs9qTjp1syq7kXV66XeA6G21smcfAAAAAA9rZXlMYXN0SW50ZXJlc3QCAAAADWxhc3RfaW50ZXJlc3QAAAAAE2tleVVzZXJMYXN0SW50ZXJlc3QCAAAADl9sYXN0X2ludGVyZXN0AAAAABFrZXlVc2VyU1dPUEFtb3VudAIAAAAMX1NXT1BfYW1vdW50AAAAABRrZXlVc2VyR2V0QmFja0hlaWdodAIAAAAOX2dldEJhY2tIZWlnaHQAAAAAEmtleVRvdGFsU1dPUEFtb3VudAIAAAARdG90YWxfU1dPUF9hbW91bnQAAAAAFmtleVVzZXJWb3RlVG90YWxBbW91bnQCAAAAF190b3RhbF9TV09QX3ZvdGVfYW1vdW50AAAAABdrZXlVc2VyVm90ZU9wdGlvbkFtb3VudAIAAAATX1NXT1Bfb3B0aW9uX2Ftb3VudAAAAAAYa2V5VG90YWxWb3RlT3B0aW9uQW1vdW50AgAAABh0b3RhbF9TV09QX29wdGlvbl9hbW91bnQAAAAAC2tleVZvdGVOYW1lAgAAAAl2b3RlX25hbWUAAAAADWtleU9wdGlvbk5hbWUCAAAADF9vcHRpb25fbmFtZQAAAAAUa2V5Vm90aW5nU3RhcnRIZWlnaHQCAAAADF9zdGFydEhlaWdodAAAAAAPa2V5Vm90ZUR1cmF0aW9uAgAAAA5fdm90ZV9kdXJhdGlvbgAAAAASZmFybWluZ1NXT1BBZGRyZXNzCQEAAAAHQWRkcmVzcwAAAAEBAAAAGgFU5XLFGrUKLZ8yDzx+uehGN3uVazlJrGZqAAAAAAlrZXlTV09QaWQCAAAAB1NXT1BfaWQAAAAABFNXT1AJAAJZAAAAAQkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgUAAAASZmFybWluZ1NXT1BBZGRyZXNzBQAAAAlrZXlTV09QaWQAAAAACnNjYWxlVmFsdWUAAAAAAAX14QABAAAAEnRocm93Tm90RW5vdWdoU1dPUAAAAAAJAAACAAAAAQIAAABGTm90IGVub3VnaCBTV09QOiB1c2VyU1dPUEFtb3VudCAtIHVzZXJUb3RhbFZvdGVBbW91bnQgPCB2b3RlU1dPUEFtb3VudAEAAAATZ2V0TGFzdEludGVyZXN0SW5mbwAAAAAEAAAADGxhc3RJbnRlcmVzdAkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzBQAAAA9rZXlMYXN0SW50ZXJlc3QAAAAAAAAAAAAFAAAADGxhc3RJbnRlcmVzdAEAAAARZ2V0VXNlclNXT1BBbW91bnQAAAABAAAABHVzZXIJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQAEJQAAAAEFAAAABHVzZXIFAAAAEWtleVVzZXJTV09QQW1vdW50AAAAAAAAAAAAAQAAABNnZXRVc2VySW50ZXJlc3RJbmZvAAAAAgAAAAR1c2VyAAAADGxhc3RJbnRlcmVzdAQAAAAOdXNlclNXT1BBbW91bnQJAQAAABFnZXRVc2VyU1dPUEFtb3VudAAAAAEFAAAABHVzZXIEAAAAEHVzZXJMYXN0SW50ZXJlc3QJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQAEJQAAAAEFAAAABHVzZXIFAAAAE2tleVVzZXJMYXN0SW50ZXJlc3QEAAAAFXVzZXJMYXN0SW50ZXJlc3RWYWx1ZQQAAAAHJG1hdGNoMAUAAAAQdXNlckxhc3RJbnRlcmVzdAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAABB1c2VyTGFzdEludGVyZXN0BQAAAAckbWF0Y2gwBQAAABB1c2VyTGFzdEludGVyZXN0BQAAAAxsYXN0SW50ZXJlc3QJAAUUAAAAAgUAAAAVdXNlckxhc3RJbnRlcmVzdFZhbHVlBQAAAA51c2VyU1dPUEFtb3VudAEAAAASZ2V0VG90YWxTV09QTG9ja2VkAAAAAAkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzBQAAABJrZXlUb3RhbFNXT1BBbW91bnQAAAAAAAAAAAABAAAAFmdldFVzZXJUb3RhbFZvdGVBbW91bnQAAAABAAAABHVzZXIJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQAEJQAAAAEFAAAABHVzZXIFAAAAFmtleVVzZXJWb3RlVG90YWxBbW91bnQAAAAAAAAAAAABAAAAF2dldFVzZXJWb3RlT3B0aW9uQW1vdW50AAAAAQAAAAR1c2VyCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkABCUAAAABBQAAAAR1c2VyBQAAABdrZXlVc2VyVm90ZU9wdGlvbkFtb3VudAAAAAAAAAAAAAEAAAAUZ2V0Vm90aW5nU3RhcnRIZWlnaHQAAAABAAAACHZvdGVOYW1lCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAAIdm90ZU5hbWUFAAAAFGtleVZvdGluZ1N0YXJ0SGVpZ2h0AAAAAAAAAAAAAQAAABNnZXRWb3RlT3B0aW9uQW1vdW50AAAAAwAAAAR1c2VyAAAACHZvdGVOYW1lAAAABm9wdGlvbgkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACBAAAABR1c2VyVm90ZU9wdGlvbkFtb3VudAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAh2b3RlTmFtZQUAAAAGb3B0aW9uCQAEJQAAAAEFAAAABHVzZXIFAAAAF2tleVVzZXJWb3RlT3B0aW9uQW1vdW50BAAAAAR1dm9hBAAAAAckbWF0Y2gwBQAAABR1c2VyVm90ZU9wdGlvbkFtb3VudAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAR1dm9hBQAAAAckbWF0Y2gwBQAAAAR1dm9hAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAARVbml0BAAAAAR1dm9hBQAAAAckbWF0Y2gwAAAAAAAAAAAACQAAAgAAAAECAAAAC01hdGNoIGVycm9yBQAAAAR1dm9hCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAFE5vIGRhdGEgb24gdGhlIGtleTogBQAAAAh2b3RlTmFtZQUAAAAGb3B0aW9uCQAEJQAAAAEFAAAABHVzZXIFAAAAF2tleVVzZXJWb3RlT3B0aW9uQW1vdW50AQAAAA9nZXRWb3RlRHVyYXRpb24AAAABAAAACHZvdGVOYW1lCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAAh2b3RlTmFtZQUAAAAPa2V5Vm90ZUR1cmF0aW9uCQABLAAAAAIJAAEsAAAAAgIAAAAUTm8gZGF0YSBvbiB0aGUga2V5OiAFAAAACHZvdGVOYW1lBQAAAA9rZXlWb3RlRHVyYXRpb24BAAAAGGdldFRvdGFsVm90ZU9wdGlvbkFtb3VudAAAAAIAAAAIdm90ZU5hbWUAAAAGb3B0aW9uBAAAABV0b3RhbFZvdGVPcHRpb25BbW91bnQJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIFAAAACHZvdGVOYW1lBQAAAAZvcHRpb24FAAAAGGtleVRvdGFsVm90ZU9wdGlvbkFtb3VudAQAAAAEdHZvYQQAAAAHJG1hdGNoMAUAAAAVdG90YWxWb3RlT3B0aW9uQW1vdW50AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAABHR2b2EFAAAAByRtYXRjaDAFAAAABHR2b2EDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABFVuaXQEAAAABHR2b2EFAAAAByRtYXRjaDAAAAAAAAAAAAAJAAACAAAAAQIAAAALTWF0Y2ggZXJyb3IFAAAABHR2b2EBAAAAFGdldFVzZXJHZXRCYWNrQW1vdW50AAAABAAAAAh2b3RlTmFtZQAAAAZvcHRpb24AAAAEdXNlcgAAABFnZXRCYWNrU1dPUEhlaWdodAQAAAADa2V5CQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAh2b3RlTmFtZQIAAAABXwUAAAAGb3B0aW9uAgAAAAFfCQAEJQAAAAEFAAAABHVzZXICAAAAAV8JAAGkAAAAAQUAAAARZ2V0QmFja1NXT1BIZWlnaHQJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACBQAAAAR0aGlzBQAAAANrZXkJAAEsAAAAAgIAAAAUTm8gZGF0YSBvbiB0aGUga2V5OiAFAAAAA2tleQEAAAAJY2xhaW1DYWxjAAAAAQAAAAZjYWxsZXIEAAAAEHNoYXJlVG9rZW5Mb2NrZWQJAQAAABJnZXRUb3RhbFNXT1BMb2NrZWQAAAAABAAAAAxsYXN0SW50ZXJlc3QJAQAAABNnZXRMYXN0SW50ZXJlc3RJbmZvAAAAAAQAAAALJHQwNDIyODQzMTUJAQAAABNnZXRVc2VySW50ZXJlc3RJbmZvAAAAAgUAAAAGY2FsbGVyBQAAAAxsYXN0SW50ZXJlc3QEAAAAEHVzZXJMYXN0SW50ZXJlc3QIBQAAAAskdDA0MjI4NDMxNQAAAAJfMQQAAAAVdXNlclNoYXJlVG9rZW5zQW1vdW50CAUAAAALJHQwNDIyODQzMTUAAAACXzIEAAAAC2NsYWltQW1vdW50CQAAawAAAAMFAAAAFXVzZXJTaGFyZVRva2Vuc0Ftb3VudAkAAGUAAAACBQAAAAxsYXN0SW50ZXJlc3QFAAAAEHVzZXJMYXN0SW50ZXJlc3QFAAAACnNjYWxlVmFsdWUEAAAAD3VzZXJOZXdJbnRlcmVzdAUAAAAMbGFzdEludGVyZXN0CQAFFAAAAAIFAAAAD3VzZXJOZXdJbnRlcmVzdAUAAAALY2xhaW1BbW91bnQAAAAHAAAAAWkBAAAACGxvY2tTV09QAAAAAAQAAAALJHQwNDUyNzQ2MDIJAAUUAAAAAggJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAAAAAGYW1vdW50CAkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAAAAAdhc3NldElkBAAAAAlwbXRBbW91bnQIBQAAAAskdDA0NTI3NDYwMgAAAAJfMQQAAAAKcG10QXNzZXRJZAgFAAAACyR0MDQ1Mjc0NjAyAAAAAl8yAwkBAAAAAiE9AAAAAgUAAAAKcG10QXNzZXRJZAUAAAAEU1dPUAkAAAIAAAABAgAAABRJbmNvcnJlY3QgcG10QXNzZXRJZAQAAAAMbGFzdEludGVyZXN0CQEAAAATZ2V0TGFzdEludGVyZXN0SW5mbwAAAAAEAAAACyR0MDQ3MTg0ODAwCQEAAAATZ2V0VXNlckludGVyZXN0SW5mbwAAAAIIBQAAAAFpAAAABmNhbGxlcgUAAAAMbGFzdEludGVyZXN0BAAAABB1c2VyTGFzdEludGVyZXN0CAUAAAALJHQwNDcxODQ4MDAAAAACXzEEAAAADnVzZXJTV09QQW1vdW50CAUAAAALJHQwNDcxODQ4MDAAAAACXzIEAAAAC2NsYWltQW1vdW50CQAAawAAAAMFAAAADnVzZXJTV09QQW1vdW50CQAAZQAAAAIFAAAADGxhc3RJbnRlcmVzdAUAAAAQdXNlckxhc3RJbnRlcmVzdAUAAAAKc2NhbGVWYWx1ZQQAAAARdXNlclNXT1BBbW91bnROZXcJAABkAAAAAgkAAGQAAAACBQAAAA51c2VyU1dPUEFtb3VudAUAAAAJcG10QW1vdW50BQAAAAtjbGFpbUFtb3VudAQAAAAPdXNlck5ld0ludGVyZXN0BQAAAAxsYXN0SW50ZXJlc3QEAAAAD3RvdGFsU1dPUEFtb3VudAkBAAAAEmdldFRvdGFsU1dPUExvY2tlZAAAAAAEAAAAEnRvdGFsU1dPUExvY2tlZE5ldwkAAGQAAAACBQAAAA90b3RhbFNXT1BBbW91bnQFAAAACXBtdEFtb3VudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAATa2V5VXNlckxhc3RJbnRlcmVzdAUAAAAPdXNlck5ld0ludGVyZXN0CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBQAAABFrZXlVc2VyU1dPUEFtb3VudAUAAAARdXNlclNXT1BBbW91bnROZXcJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAEmtleVRvdGFsU1dPUEFtb3VudAUAAAASdG90YWxTV09QTG9ja2VkTmV3BQAAAANuaWwAAAABaQEAAAAEdm90ZQAAAAMAAAAIdm90ZU5hbWUAAAAGb3B0aW9uAAAAEXZvdGVBZGRTV09QQW1vdW50BAAAAA51c2VyU1dPUEFtb3VudAkBAAAAEWdldFVzZXJTV09QQW1vdW50AAAAAQgFAAAAAWkAAAAGY2FsbGVyBAAAABN1c2VyVG90YWxWb3RlQW1vdW50CQEAAAAWZ2V0VXNlclRvdGFsVm90ZUFtb3VudAAAAAEIBQAAAAFpAAAABmNhbGxlcgQAAAAUdXNlclZvdGVPcHRpb25BbW91bnQJAQAAABNnZXRWb3RlT3B0aW9uQW1vdW50AAAAAwgFAAAAAWkAAAAGY2FsbGVyBQAAAAh2b3RlTmFtZQUAAAAGb3B0aW9uAwkAAGYAAAACBQAAABF2b3RlQWRkU1dPUEFtb3VudAkAAGUAAAACBQAAAA51c2VyU1dPUEFtb3VudAUAAAATdXNlclRvdGFsVm90ZUFtb3VudAkBAAAAEnRocm93Tm90RW5vdWdoU1dPUAAAAAAEAAAAFXRvdGFsVm90ZU9wdGlvbkFtb3VudAkBAAAAGGdldFRvdGFsVm90ZU9wdGlvbkFtb3VudAAAAAIFAAAACHZvdGVOYW1lBQAAAAZvcHRpb24EAAAADHZvdGVEdXJhdGlvbgkBAAAAD2dldFZvdGVEdXJhdGlvbgAAAAEFAAAACHZvdGVOYW1lBAAAABF2b3RpbmdTdGFydEhlaWdodAkBAAAAFGdldFZvdGluZ1N0YXJ0SGVpZ2h0AAAAAQUAAAAGb3B0aW9uBAAAABZ1c2VyVG90YWxWb3RlQW1vdW50TmV3CQAAZAAAAAIFAAAAE3VzZXJUb3RhbFZvdGVBbW91bnQFAAAAEXZvdGVBZGRTV09QQW1vdW50BAAAABd1c2VyVm90ZU9wdGlvbkFtb3VudE5ldwkAAGQAAAACBQAAABR1c2VyVm90ZU9wdGlvbkFtb3VudAUAAAARdm90ZUFkZFNXT1BBbW91bnQEAAAAE3ZvdGVPcHRpb25BbW91bnROZXcJAABkAAAAAgUAAAAVdG90YWxWb3RlT3B0aW9uQW1vdW50BQAAABF2b3RlQWRkU1dPUEFtb3VudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAIdm90ZU5hbWUCAAAAAV8FAAAABm9wdGlvbgUAAAAYa2V5VG90YWxWb3RlT3B0aW9uQW1vdW50BQAAABN2b3RlT3B0aW9uQW1vdW50TmV3CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAh2b3RlTmFtZQUAAAAGb3B0aW9uCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAAXa2V5VXNlclZvdGVPcHRpb25BbW91bnQFAAAAF3VzZXJWb3RlT3B0aW9uQW1vdW50TmV3CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBQAAABZrZXlVc2VyVm90ZVRvdGFsQW1vdW50BQAAABZ1c2VyVG90YWxWb3RlQW1vdW50TmV3BQAAAANuaWwAAAABaQEAAAAGdW52b3RlAAAAAwAAAAh2b3RlTmFtZQAAAAZvcHRpb24AAAAQdW52b3RlU1dPUEFtb3VudAQAAAAOdXNlclNXT1BBbW91bnQJAQAAABFnZXRVc2VyU1dPUEFtb3VudAAAAAEIBQAAAAFpAAAABmNhbGxlcgQAAAATdXNlclRvdGFsVm90ZUFtb3VudAkBAAAAFmdldFVzZXJUb3RhbFZvdGVBbW91bnQAAAABCAUAAAABaQAAAAZjYWxsZXIEAAAAFHVzZXJWb3RlT3B0aW9uQW1vdW50CQEAAAATZ2V0Vm90ZU9wdGlvbkFtb3VudAAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAAIdm90ZU5hbWUFAAAABm9wdGlvbgMJAABmAAAAAgUAAAAQdW52b3RlU1dPUEFtb3VudAUAAAAUdXNlclZvdGVPcHRpb25BbW91bnQJAQAAABJ0aHJvd05vdEVub3VnaFNXT1AAAAAABAAAABV0b3RhbFZvdGVPcHRpb25BbW91bnQJAQAAABhnZXRUb3RhbFZvdGVPcHRpb25BbW91bnQAAAACBQAAAAh2b3RlTmFtZQUAAAAGb3B0aW9uBAAAAAx2b3RlRHVyYXRpb24JAQAAAA9nZXRWb3RlRHVyYXRpb24AAAABBQAAAAh2b3RlTmFtZQQAAAARdm90aW5nU3RhcnRIZWlnaHQJAQAAABRnZXRWb3RpbmdTdGFydEhlaWdodAAAAAEFAAAABm9wdGlvbgQAAAAXdXNlclZvdGVPcHRpb25BbW91bnROZXcJAABlAAAAAgUAAAAUdXNlclZvdGVPcHRpb25BbW91bnQFAAAAEHVudm90ZVNXT1BBbW91bnQEAAAAE3ZvdGVPcHRpb25BbW91bnROZXcJAABlAAAAAgUAAAAVdG90YWxWb3RlT3B0aW9uQW1vdW50BQAAABB1bnZvdGVTV09QQW1vdW50BAAAABFnZXRCYWNrU1dPUEhlaWdodAkAAGQAAAACBQAAABF2b3RpbmdTdGFydEhlaWdodAkAAGgAAAACAAAAAAAAAAACBQAAAAx2b3RlRHVyYXRpb24JAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAACHZvdGVOYW1lAgAAAAFfBQAAAAZvcHRpb24FAAAAGGtleVRvdGFsVm90ZU9wdGlvbkFtb3VudAUAAAATdm90ZU9wdGlvbkFtb3VudE5ldwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAIdm90ZU5hbWUFAAAABm9wdGlvbgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIFAAAAF2tleVVzZXJWb3RlT3B0aW9uQW1vdW50BQAAABd1c2VyVm90ZU9wdGlvbkFtb3VudE5ldwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAIdm90ZU5hbWUCAAAAAV8FAAAABm9wdGlvbgIAAAABXwkABCUAAAABCAUAAAABaQAAAAZjYWxsZXICAAAAAV8JAAGkAAAAAQUAAAARZ2V0QmFja1NXT1BIZWlnaHQFAAAAEHVudm90ZVNXT1BBbW91bnQFAAAAA25pbAAAAAFpAQAAABVnZXRCYWNrU1dPUGZyb21PcHRpb24AAAADAAAACHZvdGVOYW1lAAAABm9wdGlvbgAAABFnZXRCYWNrU1dPUEhlaWdodAQAAAATdXNlclRvdGFsVm90ZUFtb3VudAkBAAAAFmdldFVzZXJUb3RhbFZvdGVBbW91bnQAAAABCAUAAAABaQAAAAZjYWxsZXIEAAAAEXVzZXJHZXRCYWNrQW1vdW50CQEAAAAUZ2V0VXNlckdldEJhY2tBbW91bnQAAAAEBQAAAAh2b3RlTmFtZQUAAAAGb3B0aW9uCAUAAAABaQAAAAZjYWxsZXIFAAAAEWdldEJhY2tTV09QSGVpZ2h0CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAh2b3RlTmFtZQIAAAABXwUAAAAGb3B0aW9uAgAAAAFfCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgIAAAABXwkAAaQAAAABBQAAABFnZXRCYWNrU1dPUEhlaWdodAAAAAAAAAAAAAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIFAAAAEXVzZXJHZXRCYWNrQW1vdW50BQAAAARTV09QBQAAAANuaWwAAAABaQEAAAAHYWlyRHJvcAAAAAAEAAAACyR0MDgxNDA4MjE1CQAFFAAAAAIICQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAAAAAABmFtb3VudAgJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAAAAAHYXNzZXRJZAQAAAAJcG10QW1vdW50CAUAAAALJHQwODE0MDgyMTUAAAACXzEEAAAACnBtdEFzc2V0SWQIBQAAAAskdDA4MTQwODIxNQAAAAJfMgMJAQAAAAIhPQAAAAIFAAAACnBtdEFzc2V0SWQFAAAABFNXT1AJAAACAAAAAQIAAAAUSW5jb3JyZWN0IHBtdEFzc2V0SWQEAAAAD3RvdGFsU1dPUEFtb3VudAkBAAAAEmdldFRvdGFsU1dPUExvY2tlZAAAAAAEAAAAEnRvdGFsU1dPUEFtb3VudE5ldwkAAGQAAAACBQAAAA90b3RhbFNXT1BBbW91bnQFAAAACXBtdEFtb3VudAQAAAAMbGFzdEludGVyZXN0CQEAAAATZ2V0TGFzdEludGVyZXN0SW5mbwAAAAAEAAAAC2ludGVyZXN0TmV3CQAAZAAAAAIFAAAADGxhc3RJbnRlcmVzdAkAAGsAAAADBQAAAAlwbXRBbW91bnQFAAAACnNjYWxlVmFsdWUFAAAAD3RvdGFsU1dPUEFtb3VudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAPa2V5TGFzdEludGVyZXN0BQAAAAtpbnRlcmVzdE5ldwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAASa2V5VG90YWxTV09QQW1vdW50BQAAABJ0b3RhbFNXT1BBbW91bnROZXcFAAAAA25pbAAAAAFpAQAAAAljbGFpbVNXT1AAAAAABAAAAA90b3RhbFNXT1BMb2NrZWQJAQAAABJnZXRUb3RhbFNXT1BMb2NrZWQAAAAABAAAAAxsYXN0SW50ZXJlc3QJAQAAABNnZXRMYXN0SW50ZXJlc3RJbmZvAAAAAAQAAAALJHQwODgzNDg4ODkJAQAAAAljbGFpbUNhbGMAAAABCAUAAAABaQAAAAZjYWxsZXIEAAAAD3VzZXJOZXdJbnRlcmVzdAgFAAAACyR0MDg4MzQ4ODg5AAAAAl8xBAAAAAtjbGFpbUFtb3VudAgFAAAACyR0MDg4MzQ4ODg5AAAAAl8yBAAAAA51c2VyVm90ZUFtb3VudAkBAAAAFmdldFVzZXJUb3RhbFZvdGVBbW91bnQAAAABCAUAAAABaQAAAAZjYWxsZXIEAAAADWF2YWlsYWJsZUZ1bmQJAABlAAAAAgkAAGQAAAACCQEAAAARZ2V0VXNlclNXT1BBbW91bnQAAAABCAUAAAABaQAAAAZjYWxsZXIFAAAAC2NsYWltQW1vdW50BQAAAA51c2VyVm90ZUFtb3VudAQAAAASdG90YWxTV09QTG9ja2VkTmV3CQAAZQAAAAIFAAAAD3RvdGFsU1dPUExvY2tlZAUAAAANYXZhaWxhYmxlRnVuZAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAATa2V5VXNlckxhc3RJbnRlcmVzdAUAAAAPdXNlck5ld0ludGVyZXN0CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAA9rZXlMYXN0SW50ZXJlc3QFAAAADGxhc3RJbnRlcmVzdAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAARa2V5VXNlclNXT1BBbW91bnQFAAAADnVzZXJWb3RlQW1vdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABJrZXlUb3RhbFNXT1BBbW91bnQFAAAAEnRvdGFsU1dPUExvY2tlZE5ldwkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIFAAAADWF2YWlsYWJsZUZ1bmQFAAAABFNXT1AFAAAAA25pbAAAAAFpAQAAABFjbGFpbVNXT1BhbmRTdGFrZQAAAAAEAAAAD3RvdGFsU1dPUExvY2tlZAkBAAAAEmdldFRvdGFsU1dPUExvY2tlZAAAAAAEAAAADGxhc3RJbnRlcmVzdAkBAAAAE2dldExhc3RJbnRlcmVzdEluZm8AAAAABAAAAAskdDA5NTc2OTYzMQkBAAAACWNsYWltQ2FsYwAAAAEIBQAAAAFpAAAABmNhbGxlcgQAAAAPdXNlck5ld0ludGVyZXN0CAUAAAALJHQwOTU3Njk2MzEAAAACXzEEAAAAC2NsYWltQW1vdW50CAUAAAALJHQwOTU3Njk2MzEAAAACXzIEAAAADnVzZXJWb3RlQW1vdW50CQEAAAAWZ2V0VXNlclRvdGFsVm90ZUFtb3VudAAAAAEIBQAAAAFpAAAABmNhbGxlcgQAAAANYXZhaWxhYmxlRnVuZAkAAGUAAAACCQAAZAAAAAIJAQAAABFnZXRVc2VyU1dPUEFtb3VudAAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAALY2xhaW1BbW91bnQFAAAADnVzZXJWb3RlQW1vdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBQAAABNrZXlVc2VyTGFzdEludGVyZXN0BQAAAA91c2VyTmV3SW50ZXJlc3QJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAD2tleUxhc3RJbnRlcmVzdAUAAAAMbGFzdEludGVyZXN0CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABJrZXlUb3RhbFNXT1BBbW91bnQFAAAADnVzZXJWb3RlQW1vdW50CQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAANYXZhaWxhYmxlRnVuZAUAAAAEU1dPUAUAAAADbmlsAAAAAIdd5Co=", "chainId": 84, "height": 1366547, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: 3Tdkx8yoS5hubKuViF6czsLpQLN7iDWMSmuynZR2dTJJ Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 4 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let adminPubKey1 = base58'289xpUrYrKbLjaKkqH3XNhfecukcYRaDRT3JDrvkvQRU'
5+
6+let adminPubKey2 = base58'289xpUrYrKbLjaKkqH3XNhfecukcYRaDRT3JDrvkvQRU'
7+
8+let adminPubKey3 = base58'289xpUrYrKbLjaKkqH3XNhfecukcYRaDRT3JDrvkvQRU'
9+
10+let adminPubKeyStartStop = base58'289xpUrYrKbLjaKkqH3XNhfecukcYRaDRT3JDrvkvQRU'
11+
12+let adminPubKeyStaking = base58'289xpUrYrKbLjaKkqH3XNhfecukcYRaDRT3JDrvkvQRU'
13+
14+let keyLastInterest = "last_interest"
15+
16+let keyUserLastInterest = "_last_interest"
17+
18+let keyUserSWOPAmount = "_SWOP_amount"
19+
20+let keyUserGetBackHeight = "_getBackHeight"
21+
22+let keyTotalSWOPAmount = "total_SWOP_amount"
23+
24+let keyUserVoteTotalAmount = "_total_SWOP_vote_amount"
25+
26+let keyUserVoteOptionAmount = "_SWOP_option_amount"
27+
28+let keyTotalVoteOptionAmount = "total_SWOP_option_amount"
29+
30+let keyVoteName = "vote_name"
31+
32+let keyOptionName = "_option_name"
33+
34+let keyVotingStartHeight = "_startHeight"
35+
36+let keyVoteDuration = "_vote_duration"
37+
38+let farmingSWOPAddress = Address(base58'3NAqJ1CqP1iTzXR9wENKwEXHMvT4CS4YGBb')
39+
40+let keySWOPid = "SWOP_id"
41+
42+let SWOP = fromBase58String(getStringValue(farmingSWOPAddress, keySWOPid))
43+
44+let scaleValue = 100000000
45+
46+func throwNotEnoughSWOP () = throw("Not enough SWOP: userSWOPAmount - userTotalVoteAmount < voteSWOPAmount")
47+
48+
49+func getLastInterestInfo () = {
50+ let lastInterest = valueOrElse(getInteger(this, keyLastInterest), 0)
51+ lastInterest
52+ }
53+
54+
55+func getUserSWOPAmount (user) = valueOrElse(getInteger(this, (toString(user) + keyUserSWOPAmount)), 0)
56+
57+
58+func getUserInterestInfo (user,lastInterest) = {
59+ let userSWOPAmount = getUserSWOPAmount(user)
60+ let userLastInterest = getInteger(this, (toString(user) + keyUserLastInterest))
61+ let userLastInterestValue = match userLastInterest {
62+ case userLastInterest: Int =>
63+ userLastInterest
64+ case _ =>
65+ lastInterest
66+ }
67+ $Tuple2(userLastInterestValue, userSWOPAmount)
68+ }
69+
70+
71+func getTotalSWOPLocked () = valueOrElse(getInteger(this, keyTotalSWOPAmount), 0)
72+
73+
74+func getUserTotalVoteAmount (user) = valueOrElse(getInteger(this, (toString(user) + keyUserVoteTotalAmount)), 0)
75+
76+
77+func getUserVoteOptionAmount (user) = valueOrElse(getInteger(this, (toString(user) + keyUserVoteOptionAmount)), 0)
78+
79+
80+func getVotingStartHeight (voteName) = valueOrElse(getInteger(this, (voteName + keyVotingStartHeight)), 0)
81+
82+
83+func getVoteOptionAmount (user,voteName,option) = valueOrErrorMessage({
84+ let userVoteOptionAmount = getInteger(this, (((voteName + option) + toString(user)) + keyUserVoteOptionAmount))
85+ let uvoa = match userVoteOptionAmount {
86+ case uvoa: Int =>
87+ uvoa
88+ case uvoa: Unit =>
89+ 0
90+ case _ =>
91+ throw("Match error")
92+ }
93+ uvoa
94+ }, (((("No data on the key: " + voteName) + option) + toString(user)) + keyUserVoteOptionAmount))
95+
96+
97+func getVoteDuration (voteName) = valueOrErrorMessage(getInteger(this, (voteName + keyVoteDuration)), (("No data on the key: " + voteName) + keyVoteDuration))
98+
99+
100+func getTotalVoteOptionAmount (voteName,option) = {
101+ let totalVoteOptionAmount = getInteger(this, ((voteName + option) + keyTotalVoteOptionAmount))
102+ let tvoa = match totalVoteOptionAmount {
103+ case tvoa: Int =>
104+ tvoa
105+ case tvoa: Unit =>
106+ 0
107+ case _ =>
108+ throw("Match error")
109+ }
110+ tvoa
111+ }
112+
113+
114+func getUserGetBackAmount (voteName,option,user,getBackSWOPHeight) = {
115+ let key = ((((((voteName + "_") + option) + "_") + toString(user)) + "_") + toString(getBackSWOPHeight))
116+ valueOrErrorMessage(getInteger(this, key), ("No data on the key: " + key))
117+ }
118+
119+
120+func claimCalc (caller) = {
121+ let shareTokenLocked = getTotalSWOPLocked()
122+ let lastInterest = getLastInterestInfo()
123+ let $t042284315 = getUserInterestInfo(caller, lastInterest)
124+ let userLastInterest = $t042284315._1
125+ let userShareTokensAmount = $t042284315._2
126+ let claimAmount = fraction(userShareTokensAmount, (lastInterest - userLastInterest), scaleValue)
127+ let userNewInterest = lastInterest
128+ $Tuple2(userNewInterest, claimAmount)
129+ }
130+
131+
132+@Callable(i)
133+func lockSWOP () = {
134+ let $t045274602 = $Tuple2(i.payments[0].amount, i.payments[0].assetId)
135+ let pmtAmount = $t045274602._1
136+ let pmtAssetId = $t045274602._2
137+ if ((pmtAssetId != SWOP))
138+ then throw("Incorrect pmtAssetId")
139+ else {
140+ let lastInterest = getLastInterestInfo()
141+ let $t047184800 = getUserInterestInfo(i.caller, lastInterest)
142+ let userLastInterest = $t047184800._1
143+ let userSWOPAmount = $t047184800._2
144+ let claimAmount = fraction(userSWOPAmount, (lastInterest - userLastInterest), scaleValue)
145+ let userSWOPAmountNew = ((userSWOPAmount + pmtAmount) + claimAmount)
146+ let userNewInterest = lastInterest
147+ let totalSWOPAmount = getTotalSWOPLocked()
148+ let totalSWOPLockedNew = (totalSWOPAmount + pmtAmount)
149+[IntegerEntry((toString(i.caller) + keyUserLastInterest), userNewInterest), IntegerEntry((toString(i.caller) + keyUserSWOPAmount), userSWOPAmountNew), IntegerEntry(keyTotalSWOPAmount, totalSWOPLockedNew)]
150+ }
151+ }
152+
153+
154+
155+@Callable(i)
156+func vote (voteName,option,voteAddSWOPAmount) = {
157+ let userSWOPAmount = getUserSWOPAmount(i.caller)
158+ let userTotalVoteAmount = getUserTotalVoteAmount(i.caller)
159+ let userVoteOptionAmount = getVoteOptionAmount(i.caller, voteName, option)
160+ if ((voteAddSWOPAmount > (userSWOPAmount - userTotalVoteAmount)))
161+ then throwNotEnoughSWOP()
162+ else {
163+ let totalVoteOptionAmount = getTotalVoteOptionAmount(voteName, option)
164+ let voteDuration = getVoteDuration(voteName)
165+ let votingStartHeight = getVotingStartHeight(option)
166+ let userTotalVoteAmountNew = (userTotalVoteAmount + voteAddSWOPAmount)
167+ let userVoteOptionAmountNew = (userVoteOptionAmount + voteAddSWOPAmount)
168+ let voteOptionAmountNew = (totalVoteOptionAmount + voteAddSWOPAmount)
169+[IntegerEntry((((voteName + "_") + option) + keyTotalVoteOptionAmount), voteOptionAmountNew), IntegerEntry((((voteName + option) + toString(i.caller)) + keyUserVoteOptionAmount), userVoteOptionAmountNew), IntegerEntry((toString(i.caller) + keyUserVoteTotalAmount), userTotalVoteAmountNew)]
170+ }
171+ }
172+
173+
174+
175+@Callable(i)
176+func unvote (voteName,option,unvoteSWOPAmount) = {
177+ let userSWOPAmount = getUserSWOPAmount(i.caller)
178+ let userTotalVoteAmount = getUserTotalVoteAmount(i.caller)
179+ let userVoteOptionAmount = getVoteOptionAmount(i.caller, voteName, option)
180+ if ((unvoteSWOPAmount > userVoteOptionAmount))
181+ then throwNotEnoughSWOP()
182+ else {
183+ let totalVoteOptionAmount = getTotalVoteOptionAmount(voteName, option)
184+ let voteDuration = getVoteDuration(voteName)
185+ let votingStartHeight = getVotingStartHeight(option)
186+ let userVoteOptionAmountNew = (userVoteOptionAmount - unvoteSWOPAmount)
187+ let voteOptionAmountNew = (totalVoteOptionAmount - unvoteSWOPAmount)
188+ let getBackSWOPHeight = (votingStartHeight + (2 * voteDuration))
189+[IntegerEntry((((voteName + "_") + option) + keyTotalVoteOptionAmount), voteOptionAmountNew), IntegerEntry((((voteName + option) + toString(i.caller)) + keyUserVoteOptionAmount), userVoteOptionAmountNew), IntegerEntry(((((((voteName + "_") + option) + "_") + toString(i.caller)) + "_") + toString(getBackSWOPHeight)), unvoteSWOPAmount)]
190+ }
191+ }
192+
193+
194+
195+@Callable(i)
196+func getBackSWOPfromOption (voteName,option,getBackSWOPHeight) = {
197+ let userTotalVoteAmount = getUserTotalVoteAmount(i.caller)
198+ let userGetBackAmount = getUserGetBackAmount(voteName, option, i.caller, getBackSWOPHeight)
199+[IntegerEntry(((((((voteName + "_") + option) + "_") + toString(i.caller)) + "_") + toString(getBackSWOPHeight)), 0), ScriptTransfer(i.caller, userGetBackAmount, SWOP)]
200+ }
201+
202+
203+
204+@Callable(i)
205+func airDrop () = {
206+ let $t081408215 = $Tuple2(i.payments[0].amount, i.payments[0].assetId)
207+ let pmtAmount = $t081408215._1
208+ let pmtAssetId = $t081408215._2
209+ if ((pmtAssetId != SWOP))
210+ then throw("Incorrect pmtAssetId")
211+ else {
212+ let totalSWOPAmount = getTotalSWOPLocked()
213+ let totalSWOPAmountNew = (totalSWOPAmount + pmtAmount)
214+ let lastInterest = getLastInterestInfo()
215+ let interestNew = (lastInterest + fraction(pmtAmount, scaleValue, totalSWOPAmount))
216+[IntegerEntry(keyLastInterest, interestNew), IntegerEntry(keyTotalSWOPAmount, totalSWOPAmountNew)]
217+ }
218+ }
219+
220+
221+
222+@Callable(i)
223+func claimSWOP () = {
224+ let totalSWOPLocked = getTotalSWOPLocked()
225+ let lastInterest = getLastInterestInfo()
226+ let $t088348889 = claimCalc(i.caller)
227+ let userNewInterest = $t088348889._1
228+ let claimAmount = $t088348889._2
229+ let userVoteAmount = getUserTotalVoteAmount(i.caller)
230+ let availableFund = ((getUserSWOPAmount(i.caller) + claimAmount) - userVoteAmount)
231+ let totalSWOPLockedNew = (totalSWOPLocked - availableFund)
232+[IntegerEntry((toString(i.caller) + keyUserLastInterest), userNewInterest), IntegerEntry(keyLastInterest, lastInterest), IntegerEntry((toString(i.caller) + keyUserSWOPAmount), userVoteAmount), IntegerEntry(keyTotalSWOPAmount, totalSWOPLockedNew), ScriptTransfer(i.caller, availableFund, SWOP)]
233+ }
234+
235+
236+
237+@Callable(i)
238+func claimSWOPandStake () = {
239+ let totalSWOPLocked = getTotalSWOPLocked()
240+ let lastInterest = getLastInterestInfo()
241+ let $t095769631 = claimCalc(i.caller)
242+ let userNewInterest = $t095769631._1
243+ let claimAmount = $t095769631._2
244+ let userVoteAmount = getUserTotalVoteAmount(i.caller)
245+ let availableFund = ((getUserSWOPAmount(i.caller) + claimAmount) - userVoteAmount)
246+[IntegerEntry((toString(i.caller) + keyUserLastInterest), userNewInterest), IntegerEntry(keyLastInterest, lastInterest), IntegerEntry(keyTotalSWOPAmount, userVoteAmount), ScriptTransfer(i.caller, availableFund, SWOP)]
247+ }
248+
249+

github/deemru/w8io/169f3d6 
46.05 ms