tx · HuqzhDdDhCyM3hyM3Dwj4xwDZkAHCeRTRpZUtDgAvb9g

3PLHVWCqA9DJPDbadUofTohnCULLauiDWhS:  -0.01400000 Waves

2021.02.05 15:29 [2448643] smart account 3PLHVWCqA9DJPDbadUofTohnCULLauiDWhS > SELF 0.00000000 Waves

{ "type": 13, "id": "HuqzhDdDhCyM3hyM3Dwj4xwDZkAHCeRTRpZUtDgAvb9g", "fee": 1400000, "feeAssetId": null, "timestamp": 1612528175008, "version": 2, "chainId": 87, "sender": "3PLHVWCqA9DJPDbadUofTohnCULLauiDWhS", "senderPublicKey": "gdzFTUAhKUmzuC3fAh3iFZ8Ha9dvTp5WRkRS18eoiPh", "proofs": [ "3LeprAz4VpDEGPjiGwXWkiQ5X4yPZCFrNzwzgp18tdbWcfqn3yhwnvJdPM2QN4FJBU1Jo5rLk6An7VhTopFgtxiS" ], "script": "base64:AAIEAAAAAAAAAA8IAhIAEgASAwoBARIAEgAAAAAjAAAAAAxhZG1pblB1YktleTEBAAAAILoJ1zuJWaTRXaD/8bsz0KrhOWkPy+K9kdY77k9eqOATAAAAAAxhZG1pblB1YktleTIBAAAAIMKRRJmz0rC0DSKlkVi9iLyhN7sIy//djOaU71sWDn5AAAAAAAxhZG1pblB1YktleTMBAAAAII4eFy54sQc79EhOejMoYHYod/yZ5ZIwoyDCz6ir6Q5VAAAAAA9rZXlMYXN0SW50ZXJlc3QCAAAADWxhc3RfaW50ZXJlc3QAAAAAE2tleVVzZXJMYXN0SW50ZXJlc3QCAAAADl9sYXN0X2ludGVyZXN0AAAAABFrZXlVc2VyU1dPUEFtb3VudAIAAAAMX1NXT1BfYW1vdW50AAAAABRrZXlVc2VyR2V0QmFja0hlaWdodAIAAAAOX2dldEJhY2tIZWlnaHQAAAAAEmtleVRvdGFsU1dPUEFtb3VudAIAAAARdG90YWxfU1dPUF9hbW91bnQAAAAAFmtleVVzZXJWb3RlVG90YWxBbW91bnQCAAAAF190b3RhbF9TV09QX3ZvdGVfYW1vdW50AAAAABdrZXlVc2VyVm90ZU9wdGlvbkFtb3VudAIAAAATX1NXT1Bfb3B0aW9uX2Ftb3VudAAAAAAYa2V5VG90YWxWb3RlT3B0aW9uQW1vdW50AgAAABh0b3RhbF9TV09QX29wdGlvbl9hbW91bnQAAAAAGGtleVVzZXJTV09QQ2xhaW1lZEFtb3VudAIAAAAUX1NXT1BfY2xhaW1lZF9hbW91bnQAAAAAHGtleVVzZXJTV09QTGFzdENsYWltZWRBbW91bnQCAAAAGV9TV09QX2xhc3RfY2xhaW1lZF9hbW91bnQAAAAAC2tleVZvdGVOYW1lAgAAAAl2b3RlX25hbWUAAAAADWtleU9wdGlvbk5hbWUCAAAADF9vcHRpb25fbmFtZQAAAAAUa2V5Vm90aW5nU3RhcnRIZWlnaHQCAAAADF9zdGFydEhlaWdodAAAAAAPa2V5Vm90ZUR1cmF0aW9uAgAAAA5fdm90ZV9kdXJhdGlvbgAAAAASZmFybWluZ1NXT1BBZGRyZXNzCQEAAAAHQWRkcmVzcwAAAAEBAAAAGgFXOA3mS0bn/lAXI/6gVE3IB+UeLVkQk5pKAAAAAAlrZXlTV09QaWQCAAAAB1NXT1BfaWQAAAAABFNXT1AJAAJZAAAAAQkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgUAAAASZmFybWluZ1NXT1BBZGRyZXNzBQAAAAlrZXlTV09QaWQAAAAACnNjYWxlVmFsdWUAAAAAAAX14QABAAAAEnRocm93Tm90RW5vdWdoU1dPUAAAAAAJAAACAAAAAQIAAABGTm90IGVub3VnaCBTV09QOiB1c2VyU1dPUEFtb3VudCAtIHVzZXJUb3RhbFZvdGVBbW91bnQgPCB2b3RlU1dPUEFtb3VudAEAAAATZ2V0TGFzdEludGVyZXN0SW5mbwAAAAAEAAAADGxhc3RJbnRlcmVzdAkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzBQAAAA9rZXlMYXN0SW50ZXJlc3QAAAAAAAAAAAAFAAAADGxhc3RJbnRlcmVzdAEAAAARZ2V0VXNlclNXT1BBbW91bnQAAAABAAAABHVzZXIJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQAEJQAAAAEFAAAABHVzZXIFAAAAEWtleVVzZXJTV09QQW1vdW50AAAAAAAAAAAAAQAAABhnZXRVc2VyU1dPUENsYWltZWRBbW91bnQAAAABAAAABHVzZXIJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQAEJQAAAAEFAAAABHVzZXIFAAAAGGtleVVzZXJTV09QQ2xhaW1lZEFtb3VudAAAAAAAAAAAAAEAAAATZ2V0VXNlckludGVyZXN0SW5mbwAAAAIAAAAEdXNlcgAAAAxsYXN0SW50ZXJlc3QEAAAADnVzZXJTV09QQW1vdW50CQEAAAARZ2V0VXNlclNXT1BBbW91bnQAAAABBQAAAAR1c2VyBAAAABB1c2VyTGFzdEludGVyZXN0CQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkABCUAAAABBQAAAAR1c2VyBQAAABNrZXlVc2VyTGFzdEludGVyZXN0BAAAABV1c2VyTGFzdEludGVyZXN0VmFsdWUEAAAAByRtYXRjaDAFAAAAEHVzZXJMYXN0SW50ZXJlc3QDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAAQdXNlckxhc3RJbnRlcmVzdAUAAAAHJG1hdGNoMAUAAAAQdXNlckxhc3RJbnRlcmVzdAUAAAAMbGFzdEludGVyZXN0CQAFFAAAAAIFAAAAFXVzZXJMYXN0SW50ZXJlc3RWYWx1ZQUAAAAOdXNlclNXT1BBbW91bnQBAAAAEmdldFRvdGFsU1dPUExvY2tlZAAAAAAJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwUAAAASa2V5VG90YWxTV09QQW1vdW50AAAAAAAAAAAAAQAAABZnZXRVc2VyVG90YWxWb3RlQW1vdW50AAAAAQAAAAR1c2VyCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkABCUAAAABBQAAAAR1c2VyBQAAABZrZXlVc2VyVm90ZVRvdGFsQW1vdW50AAAAAAAAAAAAAQAAABdnZXRVc2VyVm90ZU9wdGlvbkFtb3VudAAAAAEAAAAEdXNlcgkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAQlAAAAAQUAAAAEdXNlcgUAAAAXa2V5VXNlclZvdGVPcHRpb25BbW91bnQAAAAAAAAAAAABAAAAFGdldFZvdGluZ1N0YXJ0SGVpZ2h0AAAAAQAAAAh2b3RlTmFtZQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIFAAAACHZvdGVOYW1lBQAAABRrZXlWb3RpbmdTdGFydEhlaWdodAAAAAAAAAAAAAEAAAATZ2V0Vm90ZU9wdGlvbkFtb3VudAAAAAMAAAAEdXNlcgAAAAh2b3RlTmFtZQAAAAZvcHRpb24EAAAAFHVzZXJWb3RlT3B0aW9uQW1vdW50CQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAACHZvdGVOYW1lBQAAAAZvcHRpb24JAAQlAAAAAQUAAAAEdXNlcgUAAAAXa2V5VXNlclZvdGVPcHRpb25BbW91bnQEAAAABHV2b2EEAAAAByRtYXRjaDAFAAAAFHVzZXJWb3RlT3B0aW9uQW1vdW50AwkAAAEA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cG10QW1vdW50CAUAAAALJHQwNDQzMjQ1MDcAAAACXzEEAAAACnBtdEFzc2V0SWQIBQAAAAskdDA0NDMyNDUwNwAAAAJfMgMJAQAAAAIhPQAAAAIFAAAACnBtdEFzc2V0SWQFAAAABFNXT1AJAAACAAAAAQIAAAAUSW5jb3JyZWN0IHBtdEFzc2V0SWQEAAAAD3RvdGFsU1dPUEFtb3VudAkBAAAAEmdldFRvdGFsU1dPUExvY2tlZAAAAAAEAAAAEnRvdGFsU1dPUEFtb3VudE5ldwkAAGQAAAACBQAAAA90b3RhbFNXT1BBbW91bnQFAAAACXBtdEFtb3VudAQAAAAMbGFzdEludGVyZXN0CQEAAAATZ2V0TGFzdEludGVyZXN0SW5mbwAAAAAEAAAAC2ludGVyZXN0TmV3CQAAZAAAAAIFAAAADGxhc3RJbnRlcmVzdAkAAGsAAAADBQAAAAlwbXRBbW91bnQFAAAACnNjYWxlVmFsdWUFAAAAD3RvdGFsU1dPUEFtb3VudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAPa2V5TGFzdEludGVyZXN0BQAAAAtpbnRlcmVzdE5ldwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAASa2V5VG90YWxTV09QQW1vdW50BQAAABJ0b3RhbFNXT1BBbW91bnROZXcFAAAAA25pbAAAAAFpAQAAAAhsb2NrU1dPUAAAAAAEAAAACyR0MDUwMzY1MTExCQAFFAAAAAIICQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAAAAAABmFtb3VudAgJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAAAAAHYXNzZXRJZAQAAAAJcG10QW1vdW50CAUAAAALJHQwNTAzNjUxMTEAAAACXzEEAAAACnBtdEFzc2V0SWQIBQAAAAskdDA1MDM2NTExMQAAAAJfMgMJAQAAAAIhPQAAAAIFAAAACnBtdEFzc2V0SWQFAAAABFNXT1AJAAACAAAAAQIAAAAUSW5jb3JyZWN0IHBtdEFzc2V0SWQEAAAADGxhc3RJbnRlcmVzdAkBAAAAE2dldExhc3RJbnRlcmVzdEluZm8AAAAABAAAAAskdDA1MjI3NTMwOQkBAAAAE2dldFVzZXJJbnRlcmVzdEluZm8AAAACCAUAAAABaQAAAAZjYWxsZXIFAAAADGxhc3RJbnRlcmVzdAQAAAAQdXNlckxhc3RJbnRlcmVzdAgFAAAACyR0MDUyMjc1MzA5AAAAAl8xBAAAAA51c2VyU1dPUEFtb3VudAgFAAAACyR0MDUyMjc1MzA5AAAAAl8yBAAAAAtjbGFpbUFtb3VudAkAAGsAAAADBQAAAA51c2VyU1dPUEFtb3VudAkAAGUAAAACBQAAAAxsYXN0SW50ZXJlc3QFAAAAEHVzZXJMYXN0SW50ZXJlc3QFAAAACnNjYWxlVmFsdWUEAAAAEXVzZXJTV09QQW1vdW50TmV3CQAAZAAAAAIJAABkAAAAAgUAAAAOdXNlclNXT1BBbW91bnQFAAAACXBtdEFtb3VudAUAAAALY2xhaW1BbW91bnQEAAAAD3VzZXJOZXdJbnRlcmVzdAUAAAAMbGFzdEludGVyZXN0BAAAAA90b3RhbFNXT1BBbW91bnQJAQAAABJnZXRUb3RhbFNXT1BMb2NrZWQAAAAABAAAABJ0b3RhbFNXT1BMb2NrZWROZXcJAABkAAAAAgkAAGQAAAACBQAAAA90b3RhbFNXT1BBbW91bnQFAAAACXBtdEFtb3VudAUAAAALY2xhaW1BbW91bnQEAAAAEXVzZXJDbGFpbWVkQW1vdW50CQEAAAAYZ2V0VXNlclNXT1BDbGFpbWVkQW1vdW50AAAAAQgFAAAAAWkAAAAGY2FsbGVyBAAAABR1c2VyQ2xhaW1lZEFtb3VudE5ldwkAAGQAAAACBQAAABF1c2VyQ2xhaW1lZEFtb3VudAUAAAALY2xhaW1BbW91bnQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIFAAAAE2tleVVzZXJMYXN0SW50ZXJlc3QFAAAAD3VzZXJOZXdJbnRlcmVzdAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAARa2V5VXNlclNXT1BBbW91bnQFAAAAEXVzZXJTV09QQW1vdW50TmV3CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABJrZXlUb3RhbFNXT1BBbW91bnQFAAAAEnRvdGFsU1dPUExvY2tlZE5ldwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAAYa2V5VXNlclNXT1BDbGFpbWVkQW1vdW50BQAAABR1c2VyQ2xhaW1lZEFtb3VudE5ldwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAAca2V5VXNlclNXT1BMYXN0Q2xhaW1lZEFtb3VudAUAAAALY2xhaW1BbW91bnQFAAAAA25pbAAAAAFpAQAAAAx3aXRoZHJhd1NXT1AAAAABAAAADndpdGhkcmF3QW1vdW50BAAAAA90b3RhbFNXT1BMb2NrZWQJAQAAABJnZXRUb3RhbFNXT1BMb2NrZWQAAAAABAAAAA51c2VyU1dPUGFtb3VudAkBAAAAEWdldFVzZXJTV09QQW1vdW50AAAAAQgFAAAAAWkAAAAGY2FsbGVyBAAAAAskdDA2MzI1NjM4MAkBAAAACWNsYWltQ2FsYwAAAAEIBQAAAAFpAAAABmNhbGxlcgQAAAAPdXNlck5ld0ludGVyZXN0CAUAAAALJHQwNjMyNTYzODAAAAACXzEEAAAAC2NsYWltQW1vdW50CAUAAAALJHQwNjMyNTYzODAAAAACXzIEAAAADnVzZXJWb3RlQW1vdW50CQEAAAAWZ2V0VXNlclRvdGFsVm90ZUFtb3VudAAAAAEIBQAAAAFpAAAABmNhbGxlcgQAAAANYXZhaWxhYmxlRnVuZAkAAGUAAAACBQAAAA51c2VyU1dPUGFtb3VudAUAAAAOdXNlclZvdGVBbW91bnQDCQAAZgAAAAIFAAAADndpdGhkcmF3QW1vdW50BQAAAA1hdmFpbGFibGVGdW5kCQAAAgAAAAECAAAAHndpdGhkcmF3QW1vdW50ID4gYXZhaWxhYmxlRnVuZAQAAAASdG90YWxTV09QTG9ja2VkTmV3CQAAZQAAAAIJAABkAAAAAgUAAAAPdG90YWxTV09QTG9ja2VkBQAAAAtjbGFpbUFtb3VudAUAAAAOd2l0aGRyYXdBbW91bnQEAAAAEXVzZXJTV09QYW1vdW50TmV3CQAAZQAAAAIJAABkAAAAAgUAAAAOdXNlclNXT1BhbW91bnQFAAAAC2NsYWltQW1vdW50BQAAAA53aXRoZHJhd0Ftb3VudAQAAAARdXNlckNsYWltZWRBbW91bnQJAQAAABhnZXRVc2VyU1dPUENsYWltZWRBbW91bnQAAAABCAUAAAABaQAAAAZjYWxsZXIEAAAAFHVzZXJDbGFpbWVkQW1vdW50TmV3CQAAZAAAAAIFAAAAEXVzZXJDbGFpbWVkQW1vdW50BQAAAAtjbGFpbUFtb3VudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAATa2V5VXNlckxhc3RJbnRlcmVzdAUAAAAPdXNlck5ld0ludGVyZXN0CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBQAAABFrZXlVc2VyU1dPUEFtb3VudAUAAAARdXNlclNXT1BhbW91bnROZXcJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAEmtleVRvdGFsU1dPUEFtb3VudAUAAAASdG90YWxTV09QTG9ja2VkTmV3CQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAAOd2l0aGRyYXdBbW91bnQFAAAABFNXT1AJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIFAAAAGGtleVVzZXJTV09QQ2xhaW1lZEFtb3VudAUAAAAUdXNlckNsYWltZWRBbW91bnROZXcJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIFAAAAHGtleVVzZXJTV09QTGFzdENsYWltZWRBbW91bnQFAAAAC2NsYWltQW1vdW50BQAAAANuaWwAAAABaQEAAAAUY2xhaW1BbmRXaXRoZHJhd1NXT1AAAAAABAAAAA90b3RhbFNXT1BMb2NrZWQJAQAAABJnZXRUb3RhbFNXT1BMb2NrZWQAAAAABAAAAAxsYXN0SW50ZXJlc3QJAQAAABNnZXRMYXN0SW50ZXJlc3RJbmZvAAAAAAQAAAALJHQwNzQ3Nzc1MzIJAQAAAAljbGFpbUNhbGMAAAABCAUAAAABaQAAAAZjYWxsZXIEAAAAD3VzZXJOZXdJbnRlcmVzdAgFAAAACyR0MDc0Nzc3NTMyAAAAAl8xBAAAAAtjbGFpbUFtb3VudAgFAAAACyR0MDc0Nzc3NTMyAAAAAl8yBAAAABF1c2VyQ2xhaW1lZEFtb3VudAkBAAAAGGdldFVzZXJTV09QQ2xhaW1lZEFtb3VudAAAAAEIBQAAAAFpAAAABmNhbGxlcgQAAAAUdXNlckNsYWltZWRBbW91bnROZXcJAABkAAAAAgUAAAARdXNlckNsYWltZWRBbW91bnQFAAAAC2NsYWltQW1vdW50AwkAAAAAAAACBQAAAAtjbGFpbUFtb3VudAAAAAAAAAAAAAkAAAIAAAABAgAAABlZb3UgaGF2ZSAwIGF2YWlsYWJsZSBTV09QCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBQAAABNrZXlVc2VyTGFzdEludGVyZXN0BQAAAA91c2VyTmV3SW50ZXJlc3QJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAD2tleUxhc3RJbnRlcmVzdAUAAAAMbGFzdEludGVyZXN0CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBQAAABhrZXlVc2VyU1dPUENsYWltZWRBbW91bnQFAAAAFHVzZXJDbGFpbWVkQW1vdW50TmV3CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBQAAABxrZXlVc2VyU1dPUExhc3RDbGFpbWVkQW1vdW50BQAAAAtjbGFpbUFtb3VudAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIFAAAAC2NsYWltQW1vdW50BQAAAARTV09QBQAAAANuaWwAAAABaQEAAAARY2xhaW1BbmRTdGFrZVNXT1AAAAAABAAAAA90b3RhbFNXT1BMb2NrZWQJAQAAABJnZXRUb3RhbFNXT1BMb2NrZWQAAAAABAAAAAxsYXN0SW50ZXJlc3QJAQAAABNnZXRMYXN0SW50ZXJlc3RJbmZvAAAAAAQAAAALJHQwODI0NzgzMDIJAQAAAAljbGFpbUNhbGMAAAABCAUAAAABaQAAAAZjYWxsZXIEAAAAD3VzZXJOZXdJbnRlcmVzdAgFAAAACyR0MDgyNDc4MzAyAAAAAl8xBAAAAAtjbGFpbUFtb3VudAgFAAAACyR0MDgyNDc4MzAyAAAAAl8yBAAAAA51c2VyVm90ZUFtb3VudAkBAAAAFmdldFVzZXJUb3RhbFZvdGVBbW91bnQAAAABCAUAAAABaQAAAAZjYWxsZXIEAAAADWF2YWlsYWJsZUZ1bmQJAABlAAAAAgkAAGQAAAACCQEAAAARZ2V0VXNlclNXT1BBbW91bnQAAAABCAUAAAABaQAAAAZjYWxsZXIFAAAAC2NsYWltQW1vdW50BQAAAA51c2VyVm90ZUFtb3VudAQAAAASdG90YWxTV09QTG9ja2VkTmV3CQAAZQAAAAIFAAAAD3RvdGFsU1dPUExvY2tlZAUAAAANYXZhaWxhYmxlRnVuZAQAAAARdXNlckNsYWltZWRBbW91bnQJAQAAABhnZXRVc2VyU1dPUENsYWltZWRBbW91bnQAAAABCAUAAAABaQAAAAZjYWxsZXIEAAAAFHVzZXJDbGFpbWVkQW1vdW50TmV3CQAAZAAAAAIFAAAAEXVzZXJDbGFpbWVkQW1vdW50BQAAAAtjbGFpbUFtb3VudAMJAAAAAAAAAgUAAAALY2xhaW1BbW91bnQAAAAAAAAAAAAJAAACAAAAAQIAAAAZWW91IGhhdmUgMCBhdmFpbGFibGUgU1dPUAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAATa2V5VXNlckxhc3RJbnRlcmVzdAUAAAAPdXNlck5ld0ludGVyZXN0CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAA9rZXlMYXN0SW50ZXJlc3QFAAAADGxhc3RJbnRlcmVzdAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAASa2V5VG90YWxTV09QQW1vdW50BQAAABJ0b3RhbFNXT1BMb2NrZWROZXcJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIFAAAAEWtleVVzZXJTV09QQW1vdW50CQAAZAAAAAIFAAAADWF2YWlsYWJsZUZ1bmQFAAAADnVzZXJWb3RlQW1vdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBQAAABhrZXlVc2VyU1dPUENsYWltZWRBbW91bnQFAAAAFHVzZXJDbGFpbWVkQW1vdW50TmV3CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBQAAABxrZXlVc2VyU1dPUExhc3RDbGFpbWVkQW1vdW50BQAAAAtjbGFpbUFtb3VudAUAAAADbmlsAAAAAQAAAAJ0eAEAAAAGdmVyaWZ5AAAAAAQAAAASYWRtaW5QdWJLZXkxU2lnbmVkAwkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAFAAAADGFkbWluUHViS2V5MQAAAAAAAAAAAQAAAAAAAAAAAAQAAAASYWRtaW5QdWJLZXkyU2lnbmVkAwkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAEFAAAADGFkbWluUHViS2V5MgAAAAAAAAAAAQAAAAAAAAAAAAQAAAASYWRtaW5QdWJLZXkzU2lnbmVkAwkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAIFAAAADGFkbWluUHViS2V5MwAAAAAAAAAAAQAAAAAAAAAAAAkAAGcAAAACCQAAZAAAAAIJAABkAAAAAgUAAAASYWRtaW5QdWJLZXkxU2lnbmVkBQAAABJhZG1pblB1YktleTJTaWduZWQFAAAAEmFkbWluUHViS2V5M1NpZ25lZAAAAAAAAAAAAjAIfuY=", "height": 2448643, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: Afbhtm9xAb2bZpUVJ8yWSHdUoCdBC722ezEoJHrk64yM Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 4 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let adminPubKey1 = base58'DXDY2itiEcYBtGkVLnkpHtDFyWQUkoLJz79uJ7ECbMrA'
5+
6+let adminPubKey2 = base58'E6Wa1SGoktYcjHjsKrvjMiqJY3SWmGKcD8Q5L8kxSPS7'
7+
8+let adminPubKey3 = base58'AZmWJtuy4GeVrMmJH4hfFBRApe1StvhJSk4jcbT6bArQ'
9+
10+let keyLastInterest = "last_interest"
11+
12+let keyUserLastInterest = "_last_interest"
13+
14+let keyUserSWOPAmount = "_SWOP_amount"
15+
16+let keyUserGetBackHeight = "_getBackHeight"
17+
18+let keyTotalSWOPAmount = "total_SWOP_amount"
19+
20+let keyUserVoteTotalAmount = "_total_SWOP_vote_amount"
21+
22+let keyUserVoteOptionAmount = "_SWOP_option_amount"
23+
24+let keyTotalVoteOptionAmount = "total_SWOP_option_amount"
25+
26+let keyUserSWOPClaimedAmount = "_SWOP_claimed_amount"
27+
28+let keyUserSWOPLastClaimedAmount = "_SWOP_last_claimed_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'3P73HDkPqG15nLXevjCbmXtazHYTZbpPoPw')
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 getUserSWOPClaimedAmount (user) = valueOrElse(getInteger(this, (toString(user) + keyUserSWOPClaimedAmount)), 0)
59+
60+
61+func getUserInterestInfo (user,lastInterest) = {
62+ let userSWOPAmount = getUserSWOPAmount(user)
63+ let userLastInterest = getInteger(this, (toString(user) + keyUserLastInterest))
64+ let userLastInterestValue = match userLastInterest {
65+ case userLastInterest: Int =>
66+ userLastInterest
67+ case _ =>
68+ lastInterest
69+ }
70+ $Tuple2(userLastInterestValue, userSWOPAmount)
71+ }
72+
73+
74+func getTotalSWOPLocked () = valueOrElse(getInteger(this, keyTotalSWOPAmount), 0)
75+
76+
77+func getUserTotalVoteAmount (user) = valueOrElse(getInteger(this, (toString(user) + keyUserVoteTotalAmount)), 0)
78+
79+
80+func getUserVoteOptionAmount (user) = valueOrElse(getInteger(this, (toString(user) + keyUserVoteOptionAmount)), 0)
81+
82+
83+func getVotingStartHeight (voteName) = valueOrElse(getInteger(this, (voteName + keyVotingStartHeight)), 0)
84+
85+
86+func getVoteOptionAmount (user,voteName,option) = {
87+ let userVoteOptionAmount = getInteger(this, (((voteName + option) + toString(user)) + keyUserVoteOptionAmount))
88+ let uvoa = match userVoteOptionAmount {
89+ case uvoa: Int =>
90+ uvoa
91+ case uvoa: Unit =>
92+ 0
93+ case _ =>
94+ throw("Match error")
95+ }
96+ valueOrErrorMessage(uvoa, (((("No data on the key: " + voteName) + option) + toString(user)) + keyUserVoteOptionAmount))
97+ }
98+
99+
100+func getVoteDuration (voteName) = valueOrErrorMessage(getInteger(this, (voteName + keyVoteDuration)), (("No data on the key: " + voteName) + keyVoteDuration))
101+
102+
103+func getTotalVoteOptionAmount (voteName,option) = {
104+ let totalVoteOptionAmount = getInteger(this, ((voteName + option) + keyTotalVoteOptionAmount))
105+ let tvoa = match totalVoteOptionAmount {
106+ case tvoa: Int =>
107+ tvoa
108+ case tvoa: Unit =>
109+ 0
110+ case _ =>
111+ throw("Match error")
112+ }
113+ tvoa
114+ }
115+
116+
117+func getUserGetBackAmount (voteName,option,user,getBackSWOPHeight) = {
118+ let key = ((((((voteName + "_") + option) + "_") + toString(user)) + "_") + toString(getBackSWOPHeight))
119+ valueOrErrorMessage(getInteger(this, key), ("No data on the key: " + key))
120+ }
121+
122+
123+func claimCalc (caller) = {
124+ let shareTokenLocked = getTotalSWOPLocked()
125+ let lastInterest = getLastInterestInfo()
126+ let $t041514231 = getUserInterestInfo(caller, lastInterest)
127+ let userLastInterest = $t041514231._1
128+ let userSWOPAmount = $t041514231._2
129+ let claimAmount = fraction(userSWOPAmount, (lastInterest - userLastInterest), scaleValue)
130+ let userNewInterest = lastInterest
131+ $Tuple2(userNewInterest, claimAmount)
132+ }
133+
134+
135+@Callable(i)
136+func airDrop () = {
137+ let $t044324507 = $Tuple2(i.payments[0].amount, i.payments[0].assetId)
138+ let pmtAmount = $t044324507._1
139+ let pmtAssetId = $t044324507._2
140+ if ((pmtAssetId != SWOP))
141+ then throw("Incorrect pmtAssetId")
142+ else {
143+ let totalSWOPAmount = getTotalSWOPLocked()
144+ let totalSWOPAmountNew = (totalSWOPAmount + pmtAmount)
145+ let lastInterest = getLastInterestInfo()
146+ let interestNew = (lastInterest + fraction(pmtAmount, scaleValue, totalSWOPAmount))
147+[IntegerEntry(keyLastInterest, interestNew), IntegerEntry(keyTotalSWOPAmount, totalSWOPAmountNew)]
148+ }
149+ }
150+
151+
152+
153+@Callable(i)
154+func lockSWOP () = {
155+ let $t050365111 = $Tuple2(i.payments[0].amount, i.payments[0].assetId)
156+ let pmtAmount = $t050365111._1
157+ let pmtAssetId = $t050365111._2
158+ if ((pmtAssetId != SWOP))
159+ then throw("Incorrect pmtAssetId")
160+ else {
161+ let lastInterest = getLastInterestInfo()
162+ let $t052275309 = getUserInterestInfo(i.caller, lastInterest)
163+ let userLastInterest = $t052275309._1
164+ let userSWOPAmount = $t052275309._2
165+ let claimAmount = fraction(userSWOPAmount, (lastInterest - userLastInterest), scaleValue)
166+ let userSWOPAmountNew = ((userSWOPAmount + pmtAmount) + claimAmount)
167+ let userNewInterest = lastInterest
168+ let totalSWOPAmount = getTotalSWOPLocked()
169+ let totalSWOPLockedNew = ((totalSWOPAmount + pmtAmount) + claimAmount)
170+ let userClaimedAmount = getUserSWOPClaimedAmount(i.caller)
171+ let userClaimedAmountNew = (userClaimedAmount + claimAmount)
172+[IntegerEntry((toString(i.caller) + keyUserLastInterest), userNewInterest), IntegerEntry((toString(i.caller) + keyUserSWOPAmount), userSWOPAmountNew), IntegerEntry(keyTotalSWOPAmount, totalSWOPLockedNew), IntegerEntry((toString(i.caller) + keyUserSWOPClaimedAmount), userClaimedAmountNew), IntegerEntry((toString(i.caller) + keyUserSWOPLastClaimedAmount), claimAmount)]
173+ }
174+ }
175+
176+
177+
178+@Callable(i)
179+func withdrawSWOP (withdrawAmount) = {
180+ let totalSWOPLocked = getTotalSWOPLocked()
181+ let userSWOPamount = getUserSWOPAmount(i.caller)
182+ let $t063256380 = claimCalc(i.caller)
183+ let userNewInterest = $t063256380._1
184+ let claimAmount = $t063256380._2
185+ let userVoteAmount = getUserTotalVoteAmount(i.caller)
186+ let availableFund = (userSWOPamount - userVoteAmount)
187+ if ((withdrawAmount > availableFund))
188+ then throw("withdrawAmount > availableFund")
189+ else {
190+ let totalSWOPLockedNew = ((totalSWOPLocked + claimAmount) - withdrawAmount)
191+ let userSWOPamountNew = ((userSWOPamount + claimAmount) - withdrawAmount)
192+ let userClaimedAmount = getUserSWOPClaimedAmount(i.caller)
193+ let userClaimedAmountNew = (userClaimedAmount + claimAmount)
194+[IntegerEntry((toString(i.caller) + keyUserLastInterest), userNewInterest), IntegerEntry((toString(i.caller) + keyUserSWOPAmount), userSWOPamountNew), IntegerEntry(keyTotalSWOPAmount, totalSWOPLockedNew), ScriptTransfer(i.caller, withdrawAmount, SWOP), IntegerEntry((toString(i.caller) + keyUserSWOPClaimedAmount), userClaimedAmountNew), IntegerEntry((toString(i.caller) + keyUserSWOPLastClaimedAmount), claimAmount)]
195+ }
196+ }
197+
198+
199+
200+@Callable(i)
201+func claimAndWithdrawSWOP () = {
202+ let totalSWOPLocked = getTotalSWOPLocked()
203+ let lastInterest = getLastInterestInfo()
204+ let $t074777532 = claimCalc(i.caller)
205+ let userNewInterest = $t074777532._1
206+ let claimAmount = $t074777532._2
207+ let userClaimedAmount = getUserSWOPClaimedAmount(i.caller)
208+ let userClaimedAmountNew = (userClaimedAmount + claimAmount)
209+ if ((claimAmount == 0))
210+ then throw("You have 0 available SWOP")
211+ else [IntegerEntry((toString(i.caller) + keyUserLastInterest), userNewInterest), IntegerEntry(keyLastInterest, lastInterest), IntegerEntry((toString(i.caller) + keyUserSWOPClaimedAmount), userClaimedAmountNew), IntegerEntry((toString(i.caller) + keyUserSWOPLastClaimedAmount), claimAmount), ScriptTransfer(i.caller, claimAmount, SWOP)]
212+ }
213+
214+
215+
216+@Callable(i)
217+func claimAndStakeSWOP () = {
218+ let totalSWOPLocked = getTotalSWOPLocked()
219+ let lastInterest = getLastInterestInfo()
220+ let $t082478302 = claimCalc(i.caller)
221+ let userNewInterest = $t082478302._1
222+ let claimAmount = $t082478302._2
223+ let userVoteAmount = getUserTotalVoteAmount(i.caller)
224+ let availableFund = ((getUserSWOPAmount(i.caller) + claimAmount) - userVoteAmount)
225+ let totalSWOPLockedNew = (totalSWOPLocked - availableFund)
226+ let userClaimedAmount = getUserSWOPClaimedAmount(i.caller)
227+ let userClaimedAmountNew = (userClaimedAmount + claimAmount)
228+ if ((claimAmount == 0))
229+ then throw("You have 0 available SWOP")
230+ else [IntegerEntry((toString(i.caller) + keyUserLastInterest), userNewInterest), IntegerEntry(keyLastInterest, lastInterest), IntegerEntry(keyTotalSWOPAmount, totalSWOPLockedNew), IntegerEntry((toString(i.caller) + keyUserSWOPAmount), (availableFund + userVoteAmount)), IntegerEntry((toString(i.caller) + keyUserSWOPClaimedAmount), userClaimedAmountNew), IntegerEntry((toString(i.caller) + keyUserSWOPLastClaimedAmount), claimAmount)]
231+ }
232+
233+
234+@Verifier(tx)
235+func verify () = {
236+ let adminPubKey1Signed = if (sigVerify(tx.bodyBytes, tx.proofs[0], adminPubKey1))
237+ then 1
238+ else 0
239+ let adminPubKey2Signed = if (sigVerify(tx.bodyBytes, tx.proofs[1], adminPubKey2))
240+ then 1
241+ else 0
242+ let adminPubKey3Signed = if (sigVerify(tx.bodyBytes, tx.proofs[2], adminPubKey3))
243+ then 1
244+ else 0
245+ (((adminPubKey1Signed + adminPubKey2Signed) + adminPubKey3Signed) >= 2)
246+ }
247+

github/deemru/w8io/3ef1775 
27.48 ms