tx · 9JNk5FPuKa8yLFVtyBpVucW2dDDbMvd5w7Z6LAsiPfyA

3N5F5DCmWNzT8ZPe1tBfiXaVYzWJriaJZ9E:  -0.01400000 Waves

2021.01.23 20:28 [1366456] smart account 3N5F5DCmWNzT8ZPe1tBfiXaVYzWJriaJZ9E > SELF 0.00000000 Waves

{ "type": 13, "id": "9JNk5FPuKa8yLFVtyBpVucW2dDDbMvd5w7Z6LAsiPfyA", "fee": 1400000, "feeAssetId": null, "timestamp": 1611422935677, "version": 1, "sender": "3N5F5DCmWNzT8ZPe1tBfiXaVYzWJriaJZ9E", "senderPublicKey": "ApZ1ntZBf9PT4kWa9ZRVbLxk43jqkqWHP5NWpjujGBw2", "proofs": [ "RX7bHAwjYZUQZBLFcgF2ns3Lfy4WmT4eYY2jFZ5rDWz717g11U8pZqssafSqtpZAcKt7DQ33RqNS4UFVws6hRSp" ], "script": "base64:AAIEAAAAAAAAAB0IAhIAEgUKAwgIARIFCgMICAESBQoDCAgBEgASAAAAACIAAAAADGFkbWluUHViS2V5MQEAAAAgELDi6uQgdVvao3EGz2pOOnWzKruRdXrpd4DobbWyZx8AAAAADGFkbWluUHViS2V5MgEAAAAgELDi6uQgdVvao3EGz2pOOnWzKruRdXrpd4DobbWyZx8AAAAADGFkbWluUHViS2V5MwEAAAAgELDi6uQgdVvao3EGz2pOOnWzKruRdXrpd4DobbWyZx8AAAAAFGFkbWluUHViS2V5U3RhcnRTdG9wAQAAACAQsOLq5CB1W9qjcQbPak46dbMqu5F1eul3gOhttbJnHwAAAAASYWRtaW5QdWJLZXlTdGFraW5nAQAAACAQsOLq5CB1W9qjcQbPak46dbMqu5F1eul3gOhttbJnHwAAAAAPa2V5TGFzdEludGVyZXN0AgAAAA1sYXN0X2ludGVyZXN0AAAAABNrZXlVc2VyTGFzdEludGVyZXN0AgAAAA5fbGFzdF9pbnRlcmVzdAAAAAARa2V5VXNlclNXT1BBbW91bnQCAAAADF9TV09QX2Ftb3VudAAAAAAUa2V5VXNlckdldEJhY2tIZWlnaHQCAAAADl9nZXRCYWNrSGVpZ2h0AAAAABJrZXlUb3RhbFNXT1BBbW91bnQCAAAAEXRvdGFsX1NXT1BfYW1vdW50AAAAABZrZXlVc2VyVm90ZVRvdGFsQW1vdW50AgAAABdfdG90YWxfU1dPUF92b3RlX2Ftb3VudAAAAAAXa2V5VXNlclZvdGVPcHRpb25BbW91bnQCAAAAE19TV09QX29wdGlvbl9hbW91bnQAAAAAGGtleVRvdGFsVm90ZU9wdGlvbkFtb3VudAIAAAAYdG90YWxfU1dPUF9vcHRpb25fYW1vdW50AAAAAAtrZXlWb3RlTmFtZQIAAAAJdm90ZV9uYW1lAAAAAA1rZXlPcHRpb25OYW1lAgAAAAxfb3B0aW9uX25hbWUAAAAAFGtleVZvdGluZ1N0YXJ0SGVpZ2h0AgAAAAxfc3RhcnRIZWlnaHQAAAAAD2tleVZvdGVEdXJhdGlvbgIAAAAOX3ZvdGVfZHVyYXRpb24AAAAAEmZhcm1pbmdTV09QQWRkcmVzcwkBAAAAB0FkZHJlc3MAAAABAQAAABoBVKghUbROkwMny0Q0BLPf3eLT5KwJcxyAdQAAAAAJa2V5U1dPUGlkAgAAAAdTV09QX2lkAAAAAARTV09QCQACWQAAAAEJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIFAAAAEmZhcm1pbmdTV09QQWRkcmVzcwUAAAAJa2V5U1dPUGlkAAAAAApzY2FsZVZhbHVlAAAAAAAF9eEAAQAAABJ0aHJvd05vdEVub3VnaFNXT1AAAAAACQAAAgAAAAECAAAARk5vdCBlbm91Z2ggU1dPUDogdXNlclNXT1BBbW91bnQgLSB1c2VyVG90YWxWb3RlQW1vdW50IDwgdm90ZVNXT1BBbW91bnQBAAAAE2dldExhc3RJbnRlcmVzdEluZm8AAAAABAAAAAxsYXN0SW50ZXJlc3QJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACBQAAAAR0aGlzBQAAAA9rZXlMYXN0SW50ZXJlc3QJAAEsAAAAAgIAAAAUTm8gZGF0YSBvbiB0aGUga2V5OiAFAAAAD2tleUxhc3RJbnRlcmVzdAUAAAAMbGFzdEludGVyZXN0AQAAABFnZXRVc2VyU1dPUEFtb3VudAAAAAEAAAAEdXNlcgkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAQlAAAAAQUAAAAEdXNlcgUAAAARa2V5VXNlclNXT1BBbW91bnQAAAAAAAAAAAABAAAAE2dldFVzZXJJbnRlcmVzdEluZm8AAAACAAAABHVzZXIAAAAMbGFzdEludGVyZXN0BAAAAA51c2VyU1dPUEFtb3VudAkBAAAAEWdldFVzZXJTV09QQW1vdW50AAAAAQUAAAAEdXNlcgQAAAAQdXNlckxhc3RJbnRlcmVzdAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAQlAAAAAQUAAAAEdXNlcgUAAAATa2V5VXNlckxhc3RJbnRlcmVzdAQAAAAVdXNlckxhc3RJbnRlcmVzdFZhbHVlBAAAAAckbWF0Y2gwBQAAABB1c2VyTGFzdEludGVyZXN0AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAEHVzZXJMYXN0SW50ZXJlc3QFAAAAByRtYXRjaDAFAAAAEHVzZXJMYXN0SW50ZXJlc3QFAAAADGxhc3RJbnRlcmVzdAkABRQAAAACBQAAABV1c2VyTGFzdEludGVyZXN0VmFsdWUFAAAADnVzZXJTV09QQW1vdW50AQAAABJnZXRUb3RhbFNXT1BMb2NrZWQAAAAACQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwUAAAASa2V5VG90YWxTV09QQW1vdW50CQABLAAAAAICAAAAFE5vIGRhdGEgb24gdGhlIGtleTogBQAAABJrZXlUb3RhbFNXT1BBbW91bnQBAAAAFmdldFVzZXJUb3RhbFZvdGVBbW91bnQAAAABAAAABHVzZXIJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQAEJQAAAAEFAAAABHVzZXIFAAAAFmtleVVzZXJWb3RlVG90YWxBbW91bnQAAAAAAAAAAAABAAAAF2dldFVzZXJWb3RlT3B0aW9uQW1vdW50AAAAAQAAAAR1c2VyCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQAEJQAAAAEFAAAABHVzZXIFAAAAF2tleVVzZXJWb3RlT3B0aW9uQW1vdW50CQABLAAAAAIJAAEsAAAAAgIAAAAUTm8gZGF0YSBvbiB0aGUga2V5OiAJAAQlAAAAAQUAAAAEdXNlcgUAAAAXa2V5VXNlclZvdGVPcHRpb25BbW91bnQBAAAAFGdldFZvdGluZ1N0YXJ0SGVpZ2h0AAAAAQAAAAh2b3RlTmFtZQkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAAIdm90ZU5hbWUFAAAAFGtleVZvdGluZ1N0YXJ0SGVpZ2h0CQABLAAAAAIJAAEsAAAAAgIAAAAUTm8gZGF0YSBvbiB0aGUga2V5OiAFAAAACHZvdGVOYW1lBQAAABRrZXlWb3RpbmdTdGFydEhlaWdodAEAAAATZ2V0Vm90ZU9wdGlvbkFtb3VudAAAAAMAAAAEdXNlcgAAAAh2b3RlTmFtZQAAAAZvcHRpb24JAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgQAAAAUdXNlclZvdGVPcHRpb25BbW91bnQJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAIdm90ZU5hbWUFAAAABm9wdGlvbgkABCUAAAABBQAAAAR1c2VyBQAAABdrZXlVc2VyVm90ZU9wdGlvbkFtb3VudAQAAAAEdXZvYQQAAAAHJG1hdGNoMAUAAAAUdXNlclZvdGVPcHRpb25BbW91bnQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAAEdXZvYQUAAAAHJG1hdGNoMAUAAAAEdXZvYQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAEVW5pdAQAAAAEdXZvYQUAAAAHJG1hdGNoMAAAAAAAAAAAAAkAAAIAAAABAgAAAAtNYXRjaCBlcnJvcgUAAAAEdXZvYQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAABRObyBkYXRhIG9uIHRoZSBrZXk6IAUAAAAIdm90ZU5hbWUFAAAABm9wdGlvbgkABCUAAAABBQAAAAR1c2VyBQAAABdrZXlVc2VyVm90ZU9wdGlvbkFtb3VudAEAAAAPZ2V0Vm90ZUR1cmF0aW9uAAAAAQAAAAh2b3RlTmFtZQkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAAIdm90ZU5hbWUFAAAAD2tleVZvdGVEdXJhdGlvbgkAASwAAAACCQABLAAAAAICAAAAFE5vIGRhdGEgb24gdGhlIGtleTogBQAAAAh2b3RlTmFtZQUAAAAPa2V5Vm90ZUR1cmF0aW9uAQAAABhnZXRUb3RhbFZvdGVPcHRpb25BbW91bnQAAAACAAAACHZvdGVOYW1lAAAABm9wdGlvbgQAAAAVdG90YWxWb3RlT3B0aW9uQW1vdW50CQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACBQAAAAh2b3RlTmFtZQUAAAAGb3B0aW9uBQAAABhrZXlUb3RhbFZvdGVPcHRpb25BbW91bnQEAAAABHR2b2EEAAAAByRtYXRjaDAFAAAAFXRvdGFsVm90ZU9wdGlvbkFtb3VudAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAR0dm9hBQAAAAckbWF0Y2gwBQAAAAR0dm9hAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAARVbml0BAAAAAR0dm9hBQAAAAckbWF0Y2gwAAAAAAAAAAAACQAAAgAAAAECAAAAC01hdGNoIGVycm9yBQAAAAR0dm9hAQAAABRnZXRVc2VyR2V0QmFja0Ftb3VudAAAAAQAAAAIdm90ZU5hbWUAAAAGb3B0aW9uAAAABHVzZXIAAAARZ2V0QmFja1NXT1BIZWlnaHQEAAAAA2tleQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAIdm90ZU5hbWUCAAAAAV8FAAAABm9wdGlvbgIAAAABXwkABCUAAAABBQAAAAR1c2VyAgAAAAFfCQABpAAAAAEFAAAAEWdldEJhY2tTV09QSGVpZ2h0CQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwUAAAADa2V5CQABLAAAAAICAAAAFE5vIGRhdGEgb24gdGhlIGtleTogBQAAAANrZXkBAAAACWNsYWltQ2FsYwAAAAEAAAAGY2FsbGVyBAAAABBzaGFyZVRva2VuTG9ja2VkCQEAAAASZ2V0VG90YWxTV09QTG9ja2VkAAAAAAQAAAAMbGFzdEludGVyZXN0CQEAAAATZ2V0TGFzdEludGVyZXN0SW5mbwAAAAAEAAAACyR0MDQ0NjM0NTUwCQEAAAATZ2V0VXNlckludGVyZXN0SW5mbwAAAAIFAAAABmNhbGxlcgUAAAAMbGFzdEludGVyZXN0BAAAABB1c2VyTGFzdEludGVyZXN0CAUAAAALJHQwNDQ2MzQ1NTAAAAACXzEEAAAAFXVzZXJTaGFyZVRva2Vuc0Ftb3VudAgFAAAACyR0MDQ0NjM0NTUwAAAAAl8yBAAAAAtjbGFpbUFtb3VudAkAAGsAAAADBQAAABV1c2VyU2hhcmVUb2tlbnNBbW91bnQJAABlAAAAAgUAAAAMbGFzdEludGVyZXN0BQAAABB1c2VyTGFzdEludGVyZXN0BQAAAApzY2FsZVZhbHVlBAAAAA91c2VyTmV3SW50ZXJlc3QFAAAADGxhc3RJbnRlcmVzdAkABRQAAAACBQAAAA91c2VyTmV3SW50ZXJlc3QFAAAAC2NsYWltQW1vdW50AAAABgAAAAFpAQAAAAhsb2NrU1dPUAAAAAAEAAAACyR0MDQ3NjM0ODM4CQAFFAAAAAIICQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAAAAAABmFtb3VudAgJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAAAAAHYXNzZXRJZAQAAAAJcG10QW1vdW50CAUAAAALJHQwNDc2MzQ4MzgAAAACXzEEAAAACnBtdEFzc2V0SWQIBQAAAAskdDA0NzYzNDgzOAAAAAJfMgMJAQAAAAIhPQAAAAIFAAAACnBtdEFzc2V0SWQFAAAABFNXT1AJAAACAAAAAQIAAAAUSW5jb3JyZWN0IHBtdEFzc2V0SWQEAAAADGxhc3RJbnRlcmVzdAkBAAAAE2dldExhc3RJbnRlcmVzdEluZm8AAAAABAAAAAskdDA0OTU0NTAzNgkBAAAAE2dldFVzZXJJbnRlcmVzdEluZm8AAAACCAUAAAABaQAAAAZjYWxsZXIFAAAADGxhc3RJbnRlcmVzdAQAAAAQdXNlckxhc3RJbnRlcmVzdAgFAAAACyR0MDQ5NTQ1MDM2AAAAAl8xBAAAAA51c2VyU1dPUEFtb3VudAgFAAAACyR0MDQ5NTQ1MDM2AAAAAl8yBAAAAAtjbGFpbUFtb3VudAkAAGsAAAADBQAAAA51c2VyU1dPUEFtb3VudAkAAGUAAAACBQAAAAxsYXN0SW50ZXJlc3QFAAAAEHVzZXJMYXN0SW50ZXJlc3QFAAAACnNjYWxlVmFsdWUEAAAAEXVzZXJTV09QQW1vdW50TmV3CQAAZAAAAAIJAABkAAAAAgUAAAAOdXNlclNXT1BBbW91bnQFAAAACXBtdEFtb3VudAUAAAALY2xhaW1BbW91bnQEAAAAD3VzZXJOZXdJbnRlcmVzdAUAAAAMbGFzdEludGVyZXN0BAAAAA90b3RhbFNXT1BBbW91bnQJAQAAABJnZXRUb3RhbFNXT1BMb2NrZWQAAAAABAAAABJ0b3RhbFNXT1BMb2NrZWROZXcJAABkAAAAAgUAAAAPdG90YWxTV09QQW1vdW50BQAAAAlwbXRBbW91bnQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIFAAAAE2tleVVzZXJMYXN0SW50ZXJlc3QFAAAAD3VzZXJOZXdJbnRlcmVzdAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAARa2V5VXNlclNXT1BBbW91bnQFAAAAEXVzZXJTV09QQW1vdW50TmV3CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABJrZXlUb3RhbFNXT1BBbW91bnQFAAAAEnRvdGFsU1dPUExvY2tlZE5ldwUAAAADbmlsAAAAAWkBAAAABHZvdGUAAAADAAAACHZvdGVOYW1lAAAABm9wdGlvbgAAABF2b3RlQWRkU1dPUEFtb3VudAQAAAAOdXNlclNXT1BBbW91bnQJAQAAABFnZXRVc2VyU1dPUEFtb3VudAAAAAEIBQAAAAFpAAAABmNhbGxlcgQAAAATdXNlclRvdGFsVm90ZUFtb3VudAkBAAAAFmdldFVzZXJUb3RhbFZvdGVBbW91bnQAAAABCAUAAAABaQAAAAZjYWxsZXIEAAAAFHVzZXJWb3RlT3B0aW9uQW1vdW50CQEAAAATZ2V0Vm90ZU9wdGlvbkFtb3VudAAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAAIdm90ZU5hbWUFAAAABm9wdGlvbgMJAABmAAAAAgUAAAARdm90ZUFkZFNXT1BBbW91bnQJAABlAAAAAgUAAAAOdXNlclNXT1BBbW91bnQFAAAAE3VzZXJUb3RhbFZvdGVBbW91bnQJAQAAABJ0aHJvd05vdEVub3VnaFNXT1AAAAAABAAAABV0b3RhbFZvdGVPcHRpb25BbW91bnQJAQAAABhnZXRUb3RhbFZvdGVPcHRpb25BbW91bnQAAAACBQAAAAh2b3RlTmFtZQUAAAAGb3B0aW9uBAAAAAx2b3RlRHVyYXRpb24JAQAAAA9nZXRWb3RlRHVyYXRpb24AAAABBQAAAAh2b3RlTmFtZQQAAAARdm90aW5nU3RhcnRIZWlnaHQJAQAAABRnZXRWb3RpbmdTdGFydEhlaWdodAAAAAEFAAAABm9wdGlvbgQAAAAWdXNlclRvdGFsVm90ZUFtb3VudE5ldwkAAGQAAAACBQAAABN1c2VyVG90YWxWb3RlQW1vdW50BQAAABF2b3RlQWRkU1dPUEFtb3VudAQAAAAXdXNlclZvdGVPcHRpb25BbW91bnROZXcJAABkAAAAAgUAAAAUdXNlclZvdGVPcHRpb25BbW91bnQFAAAAEXZvdGVBZGRTV09QQW1vdW50BAAAABN2b3RlT3B0aW9uQW1vdW50TmV3CQAAZAAAAAIFAAAAFXRvdGFsVm90ZU9wdGlvbkFtb3VudAUAAAARdm90ZUFkZFNXT1BBbW91bnQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAACHZvdGVOYW1lAgAAAAFfBQAAAAZvcHRpb24FAAAAGGtleVRvdGFsVm90ZU9wdGlvbkFtb3VudAUAAAATdm90ZU9wdGlvbkFtb3VudE5ldwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAIdm90ZU5hbWUFAAAABm9wdGlvbgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIFAAAAF2tleVVzZXJWb3RlT3B0aW9uQW1vdW50BQAAABd1c2VyVm90ZU9wdGlvbkFtb3VudE5ldwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAAWa2V5VXNlclZvdGVUb3RhbEFtb3VudAUAAAAWdXNlclRvdGFsVm90ZUFtb3VudE5ldwUAAAADbmlsAAAAAWkBAAAABnVudm90ZQAAAAMAAAAIdm90ZU5hbWUAAAAGb3B0aW9uAAAAEHVudm90ZVNXT1BBbW91bnQEAAAADnVzZXJTV09QQW1vdW50CQEAAAARZ2V0VXNlclNXT1BBbW91bnQAAAABCAUAAAABaQAAAAZjYWxsZXIEAAAAE3VzZXJUb3RhbFZvdGVBbW91bnQJAQAAABZnZXRVc2VyVG90YWxWb3RlQW1vdW50AAAAAQgFAAAAAWkAAAAGY2FsbGVyBAAAABR1c2VyVm90ZU9wdGlvbkFtb3VudAkBAAAAE2dldFZvdGVPcHRpb25BbW91bnQAAAADCAUAAAABaQAAAAZjYWxsZXIFAAAACHZvdGVOYW1lBQAAAAZvcHRpb24DCQAAZgAAAAIFAAAAEHVudm90ZVNXT1BBbW91bnQFAAAAFHVzZXJWb3RlT3B0aW9uQW1vdW50CQEAAAASdGhyb3dOb3RFbm91Z2hTV09QAAAAAAQAAAAVdG90YWxWb3RlT3B0aW9uQW1vdW50CQEAAAAYZ2V0VG90YWxWb3RlT3B0aW9uQW1vdW50AAAAAgUAAAAIdm90ZU5hbWUFAAAABm9wdGlvbgQAAAAMdm90ZUR1cmF0aW9uCQEAAAAPZ2V0Vm90ZUR1cmF0aW9uAAAAAQUAAAAIdm90ZU5hbWUEAAAAEXZvdGluZ1N0YXJ0SGVpZ2h0CQEAAAAUZ2V0Vm90aW5nU3RhcnRIZWlnaHQAAAABBQAAAAZvcHRpb24EAAAAF3VzZXJWb3RlT3B0aW9uQW1vdW50TmV3CQAAZQAAAAIFAAAAFHVzZXJWb3RlT3B0aW9uQW1vdW50BQAAABB1bnZvdGVTV09QQW1vdW50BAAAABN2b3RlT3B0aW9uQW1vdW50TmV3CQAAZQAAAAIFAAAAFXRvdGFsVm90ZU9wdGlvbkFtb3VudAUAAAAQdW52b3RlU1dPUEFtb3VudAQAAAARZ2V0QmFja1NXT1BIZWlnaHQJAABkAAAAAgUAAAARdm90aW5nU3RhcnRIZWlnaHQJAABoAAAAAgAAAAAAAAAAAgUAAAAMdm90ZUR1cmF0aW9uCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAh2b3RlTmFtZQIAAAABXwUAAAAGb3B0aW9uBQAAABhrZXlUb3RhbFZvdGVPcHRpb25BbW91bnQFAAAAE3ZvdGVPcHRpb25BbW91bnROZXcJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAACHZvdGVOYW1lBQAAAAZvcHRpb24JAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBQAAABdrZXlVc2VyVm90ZU9wdGlvbkFtb3VudAUAAAAXdXNlclZvdGVPcHRpb25BbW91bnROZXcJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAACHZvdGVOYW1lAgAAAAFfBQAAAAZvcHRpb24CAAAAAV8JAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyAgAAAAFfCQABpAAAAAEFAAAAEWdldEJhY2tTV09QSGVpZ2h0BQAAABB1bnZvdGVTV09QQW1vdW50BQAAAANuaWwAAAABaQEAAAAVZ2V0QmFja1NXT1Bmcm9tT3B0aW9uAAAAAwAAAAh2b3RlTmFtZQAAAAZvcHRpb24AAAARZ2V0QmFja1NXT1BIZWlnaHQEAAAAE3VzZXJUb3RhbFZvdGVBbW91bnQJAQAAABZnZXRVc2VyVG90YWxWb3RlQW1vdW50AAAAAQgFAAAAAWkAAAAGY2FsbGVyBAAAABF1c2VyR2V0QmFja0Ftb3VudAkBAAAAFGdldFVzZXJHZXRCYWNrQW1vdW50AAAABAUAAAAIdm90ZU5hbWUFAAAABm9wdGlvbggFAAAAAWkAAAAGY2FsbGVyBQAAABFnZXRCYWNrU1dPUEhlaWdodAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAIdm90ZU5hbWUCAAAAAV8FAAAABm9wdGlvbgIAAAABXwkABCUAAAABCAUAAAABaQAAAAZjYWxsZXICAAAAAV8JAAGkAAAAAQUAAAARZ2V0QmFja1NXT1BIZWlnaHQAAAAAAAAAAAAJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyBQAAABF1c2VyR2V0QmFja0Ftb3VudAUAAAAEU1dPUAUAAAADbmlsAAAAAWkBAAAAB2FpckRyb3AAAAAABAAAAAskdDA4Mzc1ODQ1MAkABRQAAAACCAkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAAAAAZhbW91bnQICQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAAAAAAB2Fzc2V0SWQEAAAACXBtdEFtb3VudAgFAAAACyR0MDgzNzU4NDUwAAAAAl8xBAAAAApwbXRBc3NldElkCAUAAAALJHQwODM3NTg0NTAAAAACXzIDCQEAAAACIT0AAAACBQAAAApwbXRBc3NldElkBQAAAARTV09QCQAAAgAAAAECAAAAFEluY29ycmVjdCBwbXRBc3NldElkBAAAAA90b3RhbFNXT1BBbW91bnQJAQAAABJnZXRUb3RhbFNXT1BMb2NrZWQAAAAABAAAAAxsYXN0SW50ZXJlc3QJAQAAABNnZXRMYXN0SW50ZXJlc3RJbmZvAAAAAAQAAAALaW50ZXJlc3ROZXcJAABkAAAAAgUAAAAMbGFzdEludGVyZXN0CQAAawAAAAMFAAAACXBtdEFtb3VudAUAAAAKc2NhbGVWYWx1ZQUAAAAPdG90YWxTV09QQW1vdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAA9rZXlMYXN0SW50ZXJlc3QFAAAAC2ludGVyZXN0TmV3BQAAAANuaWwAAAABaQEAAAAJY2xhaW1TV09QAAAAAAQAAAAPdG90YWxTV09QTG9ja2VkCQEAAAASZ2V0VG90YWxTV09QTG9ja2VkAAAAAAQAAAAMbGFzdEludGVyZXN0CQEAAAATZ2V0TGFzdEludGVyZXN0SW5mbwAAAAAEAAAACyR0MDg5NTA5MDA1CQEAAAAJY2xhaW1DYWxjAAAAAQgFAAAAAWkAAAAGY2FsbGVyBAAAAA91c2VyTmV3SW50ZXJlc3QIBQAAAAskdDA4OTUwOTAwNQAAAAJfMQQAAAALY2xhaW1BbW91bnQIBQAAAAskdDA4OTUwOTAwNQAAAAJfMgQAAAAOdXNlclZvdGVBbW91bnQJAQAAABZnZXRVc2VyVG90YWxWb3RlQW1vdW50AAAAAQgFAAAAAWkAAAAGY2FsbGVyBAAAAA1hdmFpbGFibGVGdW5kCQAAZQAAAAIJAABkAAAAAgkBAAAAEWdldFVzZXJTV09QQW1vdW50AAAAAQgFAAAAAWkAAAAGY2FsbGVyBQAAAAtjbGFpbUFtb3VudAUAAAAOdXNlclZvdGVBbW91bnQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIFAAAAE2tleVVzZXJMYXN0SW50ZXJlc3QFAAAAD3VzZXJOZXdJbnRlcmVzdAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAPa2V5TGFzdEludGVyZXN0BQAAAAxsYXN0SW50ZXJlc3QJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgIAAAABXwUAAAARa2V5VXNlclNXT1BBbW91bnQFAAAADnVzZXJWb3RlQW1vdW50CQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAANYXZhaWxhYmxlRnVuZAUAAAAEU1dPUAUAAAADbmlsAAAAAIo6C/w=", "chainId": 84, "height": 1366456, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: C29ZGAXjKxHhPnaAsJR9SiWRha4dhdjcRyz8wJ8LQU8n 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'3N5F5DCmWNzT8ZPe1tBfiXaVYzWJriaJZ9E')
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 = valueOrErrorMessage(getInteger(this, keyLastInterest), ("No data on the key: " + keyLastInterest))
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 () = valueOrErrorMessage(getInteger(this, keyTotalSWOPAmount), ("No data on the key: " + keyTotalSWOPAmount))
72+
73+
74+func getUserTotalVoteAmount (user) = valueOrElse(getInteger(this, (toString(user) + keyUserVoteTotalAmount)), 0)
75+
76+
77+func getUserVoteOptionAmount (user) = valueOrErrorMessage(getInteger(this, (toString(user) + keyUserVoteOptionAmount)), (("No data on the key: " + toString(user)) + keyUserVoteOptionAmount))
78+
79+
80+func getVotingStartHeight (voteName) = valueOrErrorMessage(getInteger(this, (voteName + keyVotingStartHeight)), (("No data on the key: " + voteName) + keyVotingStartHeight))
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 $t044634550 = getUserInterestInfo(caller, lastInterest)
124+ let userLastInterest = $t044634550._1
125+ let userShareTokensAmount = $t044634550._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 $t047634838 = $Tuple2(i.payments[0].amount, i.payments[0].assetId)
135+ let pmtAmount = $t047634838._1
136+ let pmtAssetId = $t047634838._2
137+ if ((pmtAssetId != SWOP))
138+ then throw("Incorrect pmtAssetId")
139+ else {
140+ let lastInterest = getLastInterestInfo()
141+ let $t049545036 = getUserInterestInfo(i.caller, lastInterest)
142+ let userLastInterest = $t049545036._1
143+ let userSWOPAmount = $t049545036._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 $t083758450 = $Tuple2(i.payments[0].amount, i.payments[0].assetId)
207+ let pmtAmount = $t083758450._1
208+ let pmtAssetId = $t083758450._2
209+ if ((pmtAssetId != SWOP))
210+ then throw("Incorrect pmtAssetId")
211+ else {
212+ let totalSWOPAmount = getTotalSWOPLocked()
213+ let lastInterest = getLastInterestInfo()
214+ let interestNew = (lastInterest + fraction(pmtAmount, scaleValue, totalSWOPAmount))
215+[IntegerEntry(keyLastInterest, interestNew)]
216+ }
217+ }
218+
219+
220+
221+@Callable(i)
222+func claimSWOP () = {
223+ let totalSWOPLocked = getTotalSWOPLocked()
224+ let lastInterest = getLastInterestInfo()
225+ let $t089509005 = claimCalc(i.caller)
226+ let userNewInterest = $t089509005._1
227+ let claimAmount = $t089509005._2
228+ let userVoteAmount = getUserTotalVoteAmount(i.caller)
229+ let availableFund = ((getUserSWOPAmount(i.caller) + claimAmount) - userVoteAmount)
230+[IntegerEntry((toString(i.caller) + keyUserLastInterest), userNewInterest), IntegerEntry(keyLastInterest, lastInterest), IntegerEntry(((toString(i.caller) + "_") + keyUserSWOPAmount), userVoteAmount), ScriptTransfer(i.caller, availableFund, SWOP)]
231+ }
232+
233+

github/deemru/w8io/169f3d6 
31.12 ms