tx · 9abaXntAh2E4saPquLXaXJ3yg6QKm9qQCSkBgg2CkpoE

3N2jbPqJWnhAAhUGHQqJk9n7ySs4K39wXAb:  -0.01000000 Waves

2022.09.05 10:55 [2215554] smart account 3N2jbPqJWnhAAhUGHQqJk9n7ySs4K39wXAb > SELF 0.00000000 Waves

{ "type": 13, "id": "9abaXntAh2E4saPquLXaXJ3yg6QKm9qQCSkBgg2CkpoE", "fee": 1000000, "feeAssetId": null, "timestamp": 1662364579381, "version": 2, "chainId": 84, "sender": "3N2jbPqJWnhAAhUGHQqJk9n7ySs4K39wXAb", "senderPublicKey": "3XmcmpAXz2UDBVikr29xnqV1NQwMt1KcQBSKLLChQSfM", "proofs": [ "ZeREpDoSvqB9YJ6gVMWW75bRUm23BtNaBqCSrft1BGDAWa7gsHT87xoNG9m7PsqiPqh4B6msrxCVYRdDBcZ2akU" ], "script": "base64:BgIjCAISABIAEgASAwoBBBIAEgASBAoCAQQSAwoBBBIDCgEIEgAmAAtrZXlNQWNjUEtleQIJbWFzdGVyX3BrAQxnZXRDRkFkZHJlc3MACQERQGV4dHJOYXRpdmUoMTA2MikBCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUEdGhpcwIKQ0ZfQUREUkVTUwIUQ0ZfQUREUkVTUyBub3QgZm91bmQACG1BY2NQS2V5CQDZBAEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCCQEMZ2V0Q0ZBZGRyZXNzAAULa2V5TUFjY1BLZXkJAKwCAgULa2V5TUFjY1BLZXkCCiBub3QgZm91bmQACG1BY2NBZGRyCQCnCAEFCG1BY2NQS2V5ARFnZXRDb3Vwb25zQWRkcmVzcwAJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARFAZXh0ck5hdGl2ZSgxMDUzKQIFCG1BY2NBZGRyAg9DT1VQT05TX0FERFJFU1MAEGtleVRvdGFsQ29tcG91bmQCDnRvdGFsX2NvbXBvdW5kABFrZXlTdGFrZWRDb21wb3VuZAIPc3Rha2VkX2NvbXBvdW5kAAlrZXlMYXN0VlACEmxhc3RfdmlydHVhbF9wcmljZQAHVlBTY2FsZQCAwtcvARVrZXlTdGFrZWRDb21wb3VuZFVzZXIBBHVzZXIJAKwCAgkArAICCQClCAEFBHVzZXICAV8FEWtleVN0YWtlZENvbXBvdW5kARBjYWxjVmlydHVhbFByaWNlAgt0b3RhbFN0YWtlZAV0b3RhbAMJAAACBQV0b3RhbAAAAAEDCQAAAgULdG90YWxTdGFrZWQAAAABCQBrAwUFdG90YWwFB1ZQU2NhbGUFC3RvdGFsU3Rha2VkAAVTY2FsZQCAwtcvAQ9rZXlTdGFrZWRBbW91bnQBB2FkZHJlc3MJAKwCAgkApQgBBQdhZGRyZXNzAgxfZmFybV9zdGFrZWQBFGtleUxhc3RDaGVja0ludGVyZXN0AQdhZGRyZXNzCQCsAgIJAKUIAQUHYWRkcmVzcwITX2xhc3RDaGVja19pbnRlcmVzdAENa2V5RWdnQ2xhaW1lZAEHYWRkcmVzcwkArAICCQClCAEFB2FkZHJlc3MCCF9jbGFpbWVkABVrZXlHbG9iYWxMYXN0SW50ZXJlc3QCGWdsb2JhbF9sYXN0Q2hlY2tfaW50ZXJlc3QAD2tleUdsb2JhbFN0YWtlZAINZ2xvYmFsX3N0YWtlZAASa2V5R2xvYmFsRWdnRWFybmVkAg9nbG9iYWxfZWFybmluZ3MAEmtMb2NrZWRJbnZlc3RtZW50cwISbG9ja2VkX2ludmVzdG1lbnRzARZpc0NvbGxlY3RpdmVGYXJtTG9ja2VkAAQHJG1hdGNoMAkAmwgCCQEMZ2V0Q0ZBZGRyZXNzAAUSa0xvY2tlZEludmVzdG1lbnRzAwkAAQIFByRtYXRjaDACB0Jvb2xlYW4EAWIFByRtYXRjaDAFAWIHAQhnZXRFZ2dJZAAJANkEAQkBEUBleHRyTmF0aXZlKDEwNTMpAgUIbUFjY0FkZHICDEVHR19BU1NFVF9JRAEXc2V0Q0ZBZGRyZXNzQW5kSW5pdGlhdGUBB2FkZHJlc3MJAMwIAgkBC1N0cmluZ0VudHJ5AgIKQ0ZfQUREUkVTUwUHYWRkcmVzcwkAzAgCCQEMSW50ZWdlckVudHJ5AgUVa2V5R2xvYmFsTGFzdEludGVyZXN0AAEFA25pbAEPZ2V0U2hhcmVBc3NldElkAAkA2QQBCQERQGV4dHJOYXRpdmUoMTA1MykCCQEMZ2V0Q0ZBZGRyZXNzAAIOU0hBUkVfQVNTRVRfSUQBFXRyeUdldEludGVnZXJFeHRlcm5hbAIHYWRkcmVzcwNrZXkEByRtYXRjaDAJAJoIAgUHYWRkcmVzcwUDa2V5AwkAAQIFByRtYXRjaDACA0ludAQBYgUHJG1hdGNoMAUBYgAAAQ10cnlHZXRJbnRlZ2VyAQNrZXkJARV0cnlHZXRJbnRlZ2VyRXh0ZXJuYWwCBQR0aGlzBQNrZXkBDHRyeUdldFN0cmluZwEDa2V5BAckbWF0Y2gwCQCdCAIFBHRoaXMFA2tleQMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAWEFByRtYXRjaDAFAWECAAEQZ2V0Vm90ZUhlaWdodEtleQACEVZPVEVfSEVJR0hUX1NUQVJUAQtnZXREdXJhdGlvbgADCQAAAgkBFXRyeUdldEludGVnZXJFeHRlcm5hbAIFCG1BY2NBZGRyAg1WT1RFX0RVUkFUSU9OAAAAkE4JARV0cnlHZXRJbnRlZ2VyRXh0ZXJuYWwCBQhtQWNjQWRkcgINVk9URV9EVVJBVElPTgEQZ2V0Vm90ZUJ5VXNlcktleQIEdXNlcgZoZWlnaHQJAKwCAgkArAICCQCsAgICBVZPVEVfBQR1c2VyAgFfBQZoZWlnaHQBFWdldFRvdGFsVm90ZUJ5VHlwZUtleQIEdHlwZQZoZWlnaHQJAKwCAgkArAICCQCsAgICC1ZPVEVfVE9UQUxfBQR0eXBlAgFfBQZoZWlnaHQBD2dldFRvdGFsVm90ZUtleQEGaGVpZ2h0CQCsAgICC1ZPVEVfVE9UQUxfBQZoZWlnaHQBDXJlc3VsdFZvdGVLZXkBBmhlaWdodAkArAICAgtMSVFVSURBVEVEXwUGaGVpZ2h0AQ1xdW9ydW1Wb3RlS2V5AQZoZWlnaHQJAKwCAgIHUVVPUlVNXwUGaGVpZ2h0ARJjbGFpbVN0YWtpbmdSZXN1bHQBB2FkZHJlc3MED2N1cnJlbnRJbnRlcmVzdAkBDXRyeUdldEludGVnZXIBBRVrZXlHbG9iYWxMYXN0SW50ZXJlc3QEEWxhc3RDaGVja0ludGVyZXN0CQENdHJ5R2V0SW50ZWdlcgEJARRrZXlMYXN0Q2hlY2tJbnRlcmVzdAEFB2FkZHJlc3MEDHN0YWtlZEFtb3VudAkBDXRyeUdldEludGVnZXIBCQEPa2V5U3Rha2VkQW1vdW50AQUHYWRkcmVzcwQGcmV3YXJkAwkAZgIFEWxhc3RDaGVja0ludGVyZXN0AAAJAGsDCQBlAgUPY3VycmVudEludGVyZXN0BRFsYXN0Q2hlY2tJbnRlcmVzdAUMc3Rha2VkQW1vdW50BQVTY2FsZQAABAh0cmFuc2ZlcgMJAGYCBQZyZXdhcmQAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQdhZGRyZXNzBQZyZXdhcmQJAQhnZXRFZ2dJZAAFA25pbAUDbmlsCQDOCAIFCHRyYW5zZmVyCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEUa2V5TGFzdENoZWNrSW50ZXJlc3QBBQdhZGRyZXNzBQ9jdXJyZW50SW50ZXJlc3QJAMwIAgkBDEludGVnZXJFbnRyeQIJAQ1rZXlFZ2dDbGFpbWVkAQUHYWRkcmVzcwkAZAIJAQ10cnlHZXRJbnRlZ2VyAQkBDWtleUVnZ0NsYWltZWQBBQdhZGRyZXNzBQZyZXdhcmQFA25pbAESaGFuZGxlU3Rha2luZ1RvcFVwAQZhbW91bnQED2N1cnJlbnRJbnRlcmVzdAkBDXRyeUdldEludGVnZXIBBRVrZXlHbG9iYWxMYXN0SW50ZXJlc3QEEXRvdGFsU3Rha2VkQW1vdW50CQENdHJ5R2V0SW50ZWdlcgEFD2tleUdsb2JhbFN0YWtlZAQNaW50ZXJlc3REZWx0YQMJAGYCBRF0b3RhbFN0YWtlZEFtb3VudAAACQBrAwUGYW1vdW50BQVTY2FsZQURdG90YWxTdGFrZWRBbW91bnQAAAkAzAgCCQEMSW50ZWdlckVudHJ5AgUSa2V5R2xvYmFsRWdnRWFybmVkCQBkAgkBDXRyeUdldEludGVnZXIBBRJrZXlHbG9iYWxFZ2dFYXJuZWQFBmFtb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgUVa2V5R2xvYmFsTGFzdEludGVyZXN0CQBkAgUPY3VycmVudEludGVyZXN0BQ1pbnRlcmVzdERlbHRhBQNuaWwBDGFkZFZvdGVQb3dlcgQGY2FsbGVyAWgEdm90ZQl2b3RlUG93ZXIDAwkAAAIFAWgAAAYJAAACBQR2b3RlAgAFA25pbAMJAGYCBQZoZWlnaHQJAGQCBQFoCQELZ2V0RHVyYXRpb24ACQACAQkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICM0NBVlA6IFZvdGluZyBpcyBmaW5pc2hlZCwgcGxlYXNlIGZpbmFsaXplIHRoZSB2b3RlOwIMIEFyZ3VtZW50czogBQZjYWxsZXICAiwgCQCkAwEFAWgCAiwgBQR2b3RlAgIsIAkApAMBBQl2b3RlUG93ZXIED3ZvdGVUb3RhbEJ5VHlwZQkBDXRyeUdldEludGVnZXIBCQEVZ2V0VG90YWxWb3RlQnlUeXBlS2V5AgUEdm90ZQkApAMBBQFoBAl0b3RhbFZvdGUJAQ10cnlHZXRJbnRlZ2VyAQkBD2dldFRvdGFsVm90ZUtleQEJAKQDAQUBaAkAzAgCCQELU3RyaW5nRW50cnkCCQEQZ2V0Vm90ZUJ5VXNlcktleQIFBmNhbGxlcgkApAMBBQFoBQR2b3RlCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEVZ2V0VG90YWxWb3RlQnlUeXBlS2V5AgUEdm90ZQkApAMBBQFoCQBkAgUPdm90ZVRvdGFsQnlUeXBlBQl2b3RlUG93ZXIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQ9nZXRUb3RhbFZvdGVLZXkBCQCkAwEFAWgJAGQCBQl0b3RhbFZvdGUFCXZvdGVQb3dlcgUDbmlsARNhZGFwdFZvdGVQb3dlclN0YWtlAgZjYWxsZXIJdm90ZVBvd2VyBAp2b3RlSGVpZ2h0CQENdHJ5R2V0SW50ZWdlcgEJARBnZXRWb3RlSGVpZ2h0S2V5AAQQdm90ZUJ5VXNlclN0cmluZwkBDHRyeUdldFN0cmluZwEJARBnZXRWb3RlQnlVc2VyS2V5AgUGY2FsbGVyCQCkAwEFCnZvdGVIZWlnaHQJAQxhZGRWb3RlUG93ZXIEBQZjYWxsZXIFCnZvdGVIZWlnaHQFEHZvdGVCeVVzZXJTdHJpbmcFCXZvdGVQb3dlcgEMaXNMaXF1aWRhdGVkAAQKdm90ZUhlaWdodAkBDXRyeUdldEludGVnZXIBCQEQZ2V0Vm90ZUhlaWdodEtleQADCQAAAgUKdm90ZUhlaWdodAAABwkBEUBleHRyTmF0aXZlKDEwNTYpAQkBDXJlc3VsdFZvdGVLZXkBCQCkAwEFCnZvdGVIZWlnaHQKAWkBEWNsYWltUmVmdW5kU3Rha2VkAAQKYWRkcmVzc1N0cgkApQgBCAUBaQZjYWxsZXIEDHN0YWtlZEFtb3VudAkBDXRyeUdldEludGVnZXIBCQEPa2V5U3Rha2VkQW1vdW50AQgFAWkGY2FsbGVyBAp2b3RlSGVpZ2h0CQENdHJ5R2V0SW50ZWdlcgEJARBnZXRWb3RlSGVpZ2h0S2V5AAQQdm90ZUJ5VXNlclN0cmluZwkBDHRyeUdldFN0cmluZwEJARBnZXRWb3RlQnlVc2VyS2V5AgUKYWRkcmVzc1N0cgkApAMBBQp2b3RlSGVpZ2h0BAptdWx0aXBsaWVyAwkAAAIFEHZvdGVCeVVzZXJTdHJpbmcCAAAHAAoEBnJlZnVuZAkAaAIJAGkCBQxzdGFrZWRBbW91bnQACgUKbXVsdGlwbGllcgQLY291cG9uc0NhbGwJAPwHBAkBEWdldENvdXBvbnNBZGRyZXNzAAIIQ0ZSZWZ1bmQJAMwIAgUKYWRkcmVzc1N0cgkAzAgCBQZyZWZ1bmQFA25pbAUDbmlsAwkAAAIFC2NvdXBvbnNDYWxsBQtjb3Vwb25zQ2FsbAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBD2tleVN0YWtlZEFtb3VudAEIBQFpBmNhbGxlcgAACQDMCAIJAQRCdXJuAgkBD2dldFNoYXJlQXNzZXRJZAAFDHN0YWtlZEFtb3VudAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBE2NsYWltUmVmdW5kVW5zdGFrZWQABAxzaGFyZVRva2VuSWQJAQ9nZXRTaGFyZUFzc2V0SWQAAwkAZgIJAJADAQgFAWkIcGF5bWVudHMAAQkAAgECHENTRlQ6IFRvIG1hbnkgcGF5bWVudHMgYWRkZWQDCQECIT0CCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQFDHNoYXJlVG9rZW5JZAkAAgECE0NTRlQ6IFdyb25nIGFzc2V0SWQEBmFtb3VudAgJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQDCQAAAgUGYW1vdW50AAAJAAIBAipDU0ZUOiBQbGVhc2UgYXR0YWNoIHBvc2l0aXZlIGFzc2V0IGFtb3VudCEECmFkZHJlc3NTdHIJAKUIAQgFAWkGY2FsbGVyBAptdWx0aXBsaWVyAAcEBnJlZnVuZAkAaAIJAGkCBQZhbW91bnQACgUKbXVsdGlwbGllcgQLY291cG9uc0NhbGwJAPwHBAkBEWdldENvdXBvbnNBZGRyZXNzAAIIQ0ZSZWZ1bmQJAMwIAgUKYWRkcmVzc1N0cgkAzAgCBQZyZWZ1bmQFA25pbAUDbmlsAwkAAAIFC2NvdXBvbnNDYWxsBQtjb3Vwb25zQ2FsbAkAzAgCCQEEQnVybgIJAQ9nZXRTaGFyZUFzc2V0SWQABQZhbW91bnQFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQlzdGFydFZvdGUAAwkBAiE9AggFAWkGY2FsbGVyBQhtQWNjQWRkcgkAAgECOUNTVjogT25seSB0aGUgYWRtaW4gY2FuIHN0YXJ0IGEgbGlxdWlkYXRpb24gdm90ZSBmb3Igbm93IQMJAQIhPQIJAQ10cnlHZXRJbnRlZ2VyAQkBEGdldFZvdGVIZWlnaHRLZXkAAAAJAAIBAiVDU1Y6IFRoZXJlIGlzIGFscmVhZHkgYSB2b3RlIHJ1bm5pbmchCQDMCAIJAQxJbnRlZ2VyRW50cnkCAhFWT1RFX0hFSUdIVF9TVEFSVAUGaGVpZ2h0BQNuaWwBaQEPdm90ZVRvTGlxdWlkYXRlAQR2b3RlBAl2b3RlUG93ZXIJAQ10cnlHZXRJbnRlZ2VyAQkBD2tleVN0YWtlZEFtb3VudAEIBQFpBmNhbGxlcgMJAAACBQl2b3RlUG93ZXIAAAkAAgECM0NWVEw6IFBsZWFzZSBzdGFrZSBzb21lIHRva2VucyBiZWZvcmUgeW91IGNhbiB2b3RlIQQMdm90ZUFzU3RyaW5nCQClAwEFBHZvdGUECnZvdGVIZWlnaHQJAQ10cnlHZXRJbnRlZ2VyAQkBEGdldFZvdGVIZWlnaHRLZXkAAwkAZgIFBmhlaWdodAkAZAIFCnZvdGVIZWlnaHQJAQtnZXREdXJhdGlvbgAJAAIBAjNDVlRMOiBWb3RpbmcgaXMgZmluaXNoZWQsIHBsZWFzZSBmaW5hbGl6ZSB0aGUgdm90ZSEEEHZvdGVCeVVzZXJTdHJpbmcJAQx0cnlHZXRTdHJpbmcBCQEQZ2V0Vm90ZUJ5VXNlcktleQIJAKUIAQgFAWkGY2FsbGVyCQCkAwEFCnZvdGVIZWlnaHQDCQECIT0CBRB2b3RlQnlVc2VyU3RyaW5nAgAJAAIBAiNDVlRMOiBZb3UgY2FuIG5vdCBjaGFuZ2UgeW91ciB2b3RlIQkBDGFkZFZvdGVQb3dlcgQJAKUIAQgFAWkGY2FsbGVyBQp2b3RlSGVpZ2h0BQx2b3RlQXNTdHJpbmcFCXZvdGVQb3dlcgFpAQxmaW5hbGl6ZVZvdGUABAp2b3RlSGVpZ2h0CQENdHJ5R2V0SW50ZWdlcgEJARBnZXRWb3RlSGVpZ2h0S2V5AAMJAGYCCQBkAgUKdm90ZUhlaWdodAkBC2dldER1cmF0aW9uAAUGaGVpZ2h0CQACAQIcQ0ZWOiBWb3RpbmcgaXMgbm90IGZpbmlzaGVkIQQRdG90YWxTdGFrZWRBbW91bnQJAQ10cnlHZXRJbnRlZ2VyAQUPa2V5R2xvYmFsU3Rha2VkBAl0b3RhbFZvdGUJAQ10cnlHZXRJbnRlZ2VyAQkBD2dldFRvdGFsVm90ZUtleQEJAKQDAQUKdm90ZUhlaWdodAQGcXVvcnVtCQBoAgkAaQIFCXRvdGFsVm90ZQURdG90YWxTdGFrZWRBbW91bnQAZAQOdm90ZVRvdGFsQnlZZXMJAQ10cnlHZXRJbnRlZ2VyAQkBFWdldFRvdGFsVm90ZUJ5VHlwZUtleQICBHRydWUJAKQDAQUKdm90ZUhlaWdodAQNdm90ZVRvdGFsQnlObwkBDXRyeUdldEludGVnZXIBCQEVZ2V0VG90YWxWb3RlQnlUeXBlS2V5AgIFZmFsc2UJAKQDAQUKdm90ZUhlaWdodAQKbGlxdWlkYXRlZAMJAGYCABQFBnF1b3J1bQYDCQBmAgUOdm90ZVRvdGFsQnlZZXMFDXZvdGVUb3RhbEJ5Tm8GBwQIcmVzZXRLZXkDBQpsaXF1aWRhdGVkBQNuaWwJAMwIAgkBDEludGVnZXJFbnRyeQIJARBnZXRWb3RlSGVpZ2h0S2V5AAAABQNuaWwJAM4IAgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBDXF1b3J1bVZvdGVLZXkBCQCkAwEFCnZvdGVIZWlnaHQFBnF1b3J1bQkAzAgCCQEMQm9vbGVhbkVudHJ5AgkBDXJlc3VsdFZvdGVLZXkBCQCkAwEFCnZvdGVIZWlnaHQFCmxpcXVpZGF0ZWQFA25pbAUIcmVzZXRLZXkBaQELdG9wVXBSZXdhcmQAAwkBDGlzTGlxdWlkYXRlZAAJAAIBAhdDVFVSOiBDRiBpcyBsaXF1aWRhdGVkIQQKZWdnQXNzZXRJZAkBCGdldEVnZ0lkAAMJAQIhPQIICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAUKZWdnQXNzZXRJZAkAAgECKkNUVVA6IFdyb25nIGFzc2V0SWQsIHBheW1lbnQgc2hvdWxkIGJlIEVHRwQQcmVzSGFuZGxlU3Rha2luZwkBEmhhbmRsZVN0YWtpbmdUb3BVcAEICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50CQCUCgIFEHJlc0hhbmRsZVN0YWtpbmcGAWkBEndpdGhkcmF3RmFybVRva2VucwIGYW1vdW50CGNvbXBvdW5kAwkBDGlzTGlxdWlkYXRlZAAJAAIBAhdDVFVSOiBDRiBpcyBsaXF1aWRhdGVkIQMJAGYCCQCQAwEIBQFpCHBheW1lbnRzAAAJAAIBAh9DV0ZUOiBQbGVhc2UgZG9uJ3QgYWRkIHBheW1lbnRzBAxzaGFyZVRva2VuSWQJAQ9nZXRTaGFyZUFzc2V0SWQAAwUIY29tcG91bmQEBnN0YWtlZAkBDXRyeUdldEludGVnZXIBBRFrZXlTdGFrZWRDb21wb3VuZAQFdG90YWwJAQ10cnlHZXRJbnRlZ2VyAQUQa2V5VG90YWxDb21wb3VuZAQCdnAJARBjYWxjVmlydHVhbFByaWNlAgUGc3Rha2VkBQV0b3RhbAQSa2V5U3Rha2VkQ29tcG91bmRVCQEVa2V5U3Rha2VkQ29tcG91bmRVc2VyAQgFAWkGY2FsbGVyBA5wZXJzb25hbFN0YWtlZAkBDXRyeUdldEludGVnZXIBBRJrZXlTdGFrZWRDb21wb3VuZFUECXZpcnR1YWxXZAMJAAACBQZhbW91bnQA////////////AQUOcGVyc29uYWxTdGFrZWQJAGsDBQZhbW91bnQFB1ZQU2NhbGUFAnZwBAhhbW91bnRXZAMJAAACBQZhbW91bnQA////////////AQkAawMFCXZpcnR1YWxXZAUCdnAFB1ZQU2NhbGUFBmFtb3VudAMJAGYCBQl2aXJ0dWFsV2QFDnBlcnNvbmFsU3Rha2VkCQACAQIuQ1dGVDogWW91IGRvbid0IGhhdmUgc28gbXVjaCBmdW5kcyB0byB3aXRoZHJhdwkAzAgCCQEMSW50ZWdlckVudHJ5AgUSa2V5U3Rha2VkQ29tcG91bmRVCQBlAgUOcGVyc29uYWxTdGFrZWQFCXZpcnR1YWxXZAkAzAgCCQEMSW50ZWdlckVudHJ5AgURa2V5U3Rha2VkQ29tcG91bmQJAGUCBQZzdGFrZWQFCXZpcnR1YWxXZAkAzAgCCQEMSW50ZWdlckVudHJ5AgUQa2V5VG90YWxDb21wb3VuZAkAZQIFBXRvdGFsBQhhbW91bnRXZAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIFCGFtb3VudFdkBQxzaGFyZVRva2VuSWQJAMwIAgkBDEludGVnZXJFbnRyeQIFCWtleUxhc3RWUAUCdnAJAMwIAgkBDEludGVnZXJFbnRyeQICFWxhc3RfdmlydF9jb21wb3VuZF93ZAUJdmlydHVhbFdkCQDMCAIJAQxJbnRlZ2VyRW50cnkCAhdsYXN0X2Ftb3VudF9jb21wb3VuZF93ZAUIYW1vdW50V2QFA25pbAQKYWRkcmVzc1N0cgkApQgBCAUBaQZjYWxsZXIEDHN0YWtlZEFtb3VudAkBDXRyeUdldEludGVnZXIBCQEPa2V5U3Rha2VkQW1vdW50AQgFAWkGY2FsbGVyBAh3ZEFtb3VudAMJAAACBQZhbW91bnQA////////////AQUMc3Rha2VkQW1vdW50BQZhbW91bnQDCQBmAgUId2RBbW91bnQFDHN0YWtlZEFtb3VudAkAAgECJUNXRlQ6IHlvdSBkb24ndCBoYXZlIHRva2VucyBhdmFpbGFibGUECXZvdGVQb3dlcgkBE2FkYXB0Vm90ZVBvd2VyU3Rha2UCCQClCAEIBQFpBmNhbGxlcgkBAS0BBQh3ZEFtb3VudAkAzggCCQDOCAIJARJjbGFpbVN0YWtpbmdSZXN1bHQBCAUBaQZjYWxsZXIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQ9rZXlTdGFrZWRBbW91bnQBCAUBaQZjYWxsZXIJAGUCBQxzdGFrZWRBbW91bnQFCHdkQW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCBQ9rZXlHbG9iYWxTdGFrZWQJAGUCCQENdHJ5R2V0SW50ZWdlcgEFD2tleUdsb2JhbFN0YWtlZAUId2RBbW91bnQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyBQh3ZEFtb3VudAUMc2hhcmVUb2tlbklkCQDMCAIJAQxJbnRlZ2VyRW50cnkCAg9sYXN0X3N0YWtpbmdfd2QFCHdkQW1vdW50BQNuaWwFCXZvdGVQb3dlcgFpAQ9zdGFrZUZhcm1Ub2tlbnMBCGNvbXBvdW5kAwkBDGlzTGlxdWlkYXRlZAAJAAIBAhdDU0ZUOiBDRiBpcyBsaXF1aWRhdGVkIQQMc2hhcmVUb2tlbklkCQEPZ2V0U2hhcmVBc3NldElkAAMJAGYCCQCQAwEIBQFpCHBheW1lbnRzAAEJAAIBAhxDU0ZUOiBUbyBtYW55IHBheW1lbnRzIGFkZGVkAwkBAiE9AggJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkBQxzaGFyZVRva2VuSWQJAAIBAhNDU0ZUOiBXcm9uZyBhc3NldElkBAZhbW91bnQICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50AwkAAAIFBmFtb3VudAAACQACAQIqQ1NGVDogUGxlYXNlIGF0dGFjaCBwb3NpdGl2ZSBhc3NldCBhbW91bnQhAwUIY29tcG91bmQJAAIBAhxDU0ZUOiBDb21wb3VuZCB3YXMgZGlzYWJsZWQhBAphZGRyZXNzU3RyCQClCAEIBQFpBmNhbGxlcgQRdG90YWxTdGFrZWRBbW91bnQJAQ10cnlHZXRJbnRlZ2VyAQUPa2V5R2xvYmFsU3Rha2VkAwkBAiE9AggJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkBQxzaGFyZVRva2VuSWQJAAIBAhpDU0ZUOiB3cm9uZyBhc3NldCBhdHRhY2hlZAQJdm90ZVBvd2VyCQETYWRhcHRWb3RlUG93ZXJTdGFrZQIJAKUIAQgFAWkGY2FsbGVyBQZhbW91bnQJAM4IAgkAzggCCQESY2xhaW1TdGFraW5nUmVzdWx0AQgFAWkGY2FsbGVyCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQ9rZXlHbG9iYWxTdGFrZWQJAGQCBRF0b3RhbFN0YWtlZEFtb3VudAUGYW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEPa2V5U3Rha2VkQW1vdW50AQgFAWkGY2FsbGVyCQBkAgkBDXRyeUdldEludGVnZXIBCQEPa2V5U3Rha2VkQW1vdW50AQgFAWkGY2FsbGVyBQZhbW91bnQFA25pbAUJdm90ZVBvd2VyAWkBDGluaXRpYXRlRGFwcAEHYWRkcmVzcwMJAQxpc0xpcXVpZGF0ZWQACQACAQIWQ0lEOiBDRiBpcyBsaXF1aWRhdGVkIQMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECK0NJRDogQ2FuIGJlIGNhbGxlZCBvbmx5IGJ5IHRoZSBkYXBwLWFjY291bnQJARdzZXRDRkFkZHJlc3NBbmRJbml0aWF0ZQEFB2FkZHJlc3MBaQELY2xhaW1SZXdhcmQAAwkBDGlzTGlxdWlkYXRlZAAJAAIBAhZDQ1I6IENGIGlzIGxpcXVpZGF0ZWQhAwkAZgIJAJADAQgFAWkIcGF5bWVudHMAAAkAAgECHkNDUjogUGxlYXNlIGRvbid0IGFkZCBwYXltZW50cwkBEmNsYWltU3Rha2luZ1Jlc3VsdAEIBQFpBmNhbGxlcgCRCxWY", "height": 2215554, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: none Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 6 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let a = "master_pk"
5+
6+func b () = addressFromStringValue(valueOrErrorMessage(getString(this, "CF_ADDRESS"), "CF_ADDRESS not found"))
7+
8+
9+let c = fromBase58String(valueOrErrorMessage(getString(b(), a), (a + " not found")))
10+
11+let d = addressFromPublicKey(c)
12+
13+func e () = addressFromStringValue(getStringValue(d, "COUPONS_ADDRESS"))
14+
15+
16+let f = "total_compound"
17+
18+let g = "staked_compound"
19+
20+let h = "last_virtual_price"
21+
22+let i = 100000000
23+
24+func j (k) = ((toString(k) + "_") + g)
25+
26+
27+func l (m,n) = if ((n == 0))
28+ then 1
29+ else if ((m == 0))
30+ then 1
31+ else fraction(n, i, m)
32+
33+
34+let o = 100000000
35+
36+func p (q) = (toString(q) + "_farm_staked")
37+
38+
39+func r (q) = (toString(q) + "_lastCheck_interest")
40+
41+
42+func s (q) = (toString(q) + "_claimed")
43+
44+
45+let t = "global_lastCheck_interest"
46+
47+let u = "global_staked"
48+
49+let v = "global_earnings"
50+
51+let w = "locked_investments"
52+
53+func x () = {
54+ let y = getBoolean(b(), w)
55+ if ($isInstanceOf(y, "Boolean"))
56+ then {
57+ let z = y
58+ z
59+ }
60+ else false
61+ }
62+
63+
64+func A () = fromBase58String(getStringValue(d, "EGG_ASSET_ID"))
65+
66+
67+func B (q) = [StringEntry("CF_ADDRESS", q), IntegerEntry(t, 1)]
68+
69+
70+func C () = fromBase58String(getStringValue(b(), "SHARE_ASSET_ID"))
71+
72+
73+func D (q,E) = {
74+ let y = getInteger(q, E)
75+ if ($isInstanceOf(y, "Int"))
76+ then {
77+ let z = y
78+ z
79+ }
80+ else 0
81+ }
82+
83+
84+func F (E) = D(this, E)
85+
86+
87+func G (E) = {
88+ let y = getString(this, E)
89+ if ($isInstanceOf(y, "String"))
90+ then {
91+ let H = y
92+ H
93+ }
94+ else ""
95+ }
96+
97+
98+func I () = "VOTE_HEIGHT_START"
99+
100+
101+func J () = if ((D(d, "VOTE_DURATION") == 0))
102+ then 10000
103+ else D(d, "VOTE_DURATION")
104+
105+
106+func K (k,L) = ((("VOTE_" + k) + "_") + L)
107+
108+
109+func M (N,L) = ((("VOTE_TOTAL_" + N) + "_") + L)
110+
111+
112+func O (L) = ("VOTE_TOTAL_" + L)
113+
114+
115+func P (L) = ("LIQUIDATED_" + L)
116+
117+
118+func Q (L) = ("QUORUM_" + L)
119+
120+
121+func R (q) = {
122+ let S = F(t)
123+ let T = F(r(q))
124+ let U = F(p(q))
125+ let V = if ((T > 0))
126+ then fraction((S - T), U, o)
127+ else 0
128+ let W = if ((V > 0))
129+ then [ScriptTransfer(q, V, A())]
130+ else nil
131+ (W ++ [IntegerEntry(r(q), S), IntegerEntry(s(q), (F(s(q)) + V))])
132+ }
133+
134+
135+func X (Y) = {
136+ let S = F(t)
137+ let Z = F(u)
138+ let aa = if ((Z > 0))
139+ then fraction(Y, o, Z)
140+ else 0
141+[IntegerEntry(v, (F(v) + Y)), IntegerEntry(t, (S + aa))]
142+ }
143+
144+
145+func ab (ac,ad,ae,af) = if (if ((ad == 0))
146+ then true
147+ else (ae == ""))
148+ then nil
149+ else if ((height > (ad + J())))
150+ then throw((((((((("CAVP: Voting is finished, please finalize the vote;" + " Arguments: ") + ac) + ", ") + toString(ad)) + ", ") + ae) + ", ") + toString(af)))
151+ else {
152+ let ag = F(M(ae, toString(ad)))
153+ let ah = F(O(toString(ad)))
154+[StringEntry(K(ac, toString(ad)), ae), IntegerEntry(M(ae, toString(ad)), (ag + af)), IntegerEntry(O(toString(ad)), (ah + af))]
155+ }
156+
157+
158+func ai (ac,af) = {
159+ let aj = F(I())
160+ let ak = G(K(ac, toString(aj)))
161+ ab(ac, aj, ak, af)
162+ }
163+
164+
165+func al () = {
166+ let aj = F(I())
167+ if ((aj == 0))
168+ then false
169+ else getBooleanValue(P(toString(aj)))
170+ }
171+
172+
173+@Callable(am)
174+func claimRefundStaked () = {
175+ let an = toString(am.caller)
176+ let U = F(p(am.caller))
177+ let aj = F(I())
178+ let ak = G(K(an, toString(aj)))
179+ let ao = if ((ak == ""))
180+ then 7
181+ else 10
182+ let ap = ((U / 10) * ao)
183+ let aq = invoke(e(), "CFRefund", [an, ap], nil)
184+ if ((aq == aq))
185+ then [IntegerEntry(p(am.caller), 0), Burn(C(), U)]
186+ else throw("Strict value is not equal to itself.")
187+ }
188+
189+
190+
191+@Callable(am)
192+func claimRefundUnstaked () = {
193+ let ar = C()
194+ if ((size(am.payments) > 1))
195+ then throw("CSFT: To many payments added")
196+ else if ((am.payments[0].assetId != ar))
197+ then throw("CSFT: Wrong assetId")
198+ else {
199+ let Y = am.payments[0].amount
200+ if ((Y == 0))
201+ then throw("CSFT: Please attach positive asset amount!")
202+ else {
203+ let an = toString(am.caller)
204+ let ao = 7
205+ let ap = ((Y / 10) * ao)
206+ let aq = invoke(e(), "CFRefund", [an, ap], nil)
207+ if ((aq == aq))
208+ then [Burn(C(), Y)]
209+ else throw("Strict value is not equal to itself.")
210+ }
211+ }
212+ }
213+
214+
215+
216+@Callable(am)
217+func startVote () = if ((am.caller != d))
218+ then throw("CSV: Only the admin can start a liquidation vote for now!")
219+ else if ((F(I()) != 0))
220+ then throw("CSV: There is already a vote running!")
221+ else [IntegerEntry("VOTE_HEIGHT_START", height)]
222+
223+
224+
225+@Callable(am)
226+func voteToLiquidate (ae) = {
227+ let af = F(p(am.caller))
228+ if ((af == 0))
229+ then throw("CVTL: Please stake some tokens before you can vote!")
230+ else {
231+ let as = toString(ae)
232+ let aj = F(I())
233+ if ((height > (aj + J())))
234+ then throw("CVTL: Voting is finished, please finalize the vote!")
235+ else {
236+ let ak = G(K(toString(am.caller), toString(aj)))
237+ if ((ak != ""))
238+ then throw("CVTL: You can not change your vote!")
239+ else ab(toString(am.caller), aj, as, af)
240+ }
241+ }
242+ }
243+
244+
245+
246+@Callable(am)
247+func finalizeVote () = {
248+ let aj = F(I())
249+ if (((aj + J()) > height))
250+ then throw("CFV: Voting is not finished!")
251+ else {
252+ let Z = F(u)
253+ let ah = F(O(toString(aj)))
254+ let at = ((ah / Z) * 100)
255+ let au = F(M("true", toString(aj)))
256+ let av = F(M("false", toString(aj)))
257+ let aw = if ((20 > at))
258+ then true
259+ else if ((au > av))
260+ then true
261+ else false
262+ let ax = if (aw)
263+ then nil
264+ else [IntegerEntry(I(), 0)]
265+ ([IntegerEntry(Q(toString(aj)), at), BooleanEntry(P(toString(aj)), aw)] ++ ax)
266+ }
267+ }
268+
269+
270+
271+@Callable(am)
272+func topUpReward () = if (al())
273+ then throw("CTUR: CF is liquidated!")
274+ else {
275+ let ay = A()
276+ if ((am.payments[0].assetId != ay))
277+ then throw("CTUP: Wrong assetId, payment should be EGG")
278+ else {
279+ let az = X(am.payments[0].amount)
280+ $Tuple2(az, true)
281+ }
282+ }
283+
284+
285+
286+@Callable(am)
287+func withdrawFarmTokens (Y,aA) = if (al())
288+ then throw("CTUR: CF is liquidated!")
289+ else if ((size(am.payments) > 0))
290+ then throw("CWFT: Please don't add payments")
291+ else {
292+ let ar = C()
293+ if (aA)
294+ then {
295+ let aB = F(g)
296+ let n = F(f)
297+ let aC = l(aB, n)
298+ let aD = j(am.caller)
299+ let aE = F(aD)
300+ let aF = if ((Y == -1))
301+ then aE
302+ else fraction(Y, i, aC)
303+ let aG = if ((Y == -1))
304+ then fraction(aF, aC, i)
305+ else Y
306+ if ((aF > aE))
307+ then throw("CWFT: You don't have so much funds to withdraw")
308+ else [IntegerEntry(aD, (aE - aF)), IntegerEntry(g, (aB - aF)), IntegerEntry(f, (n - aG)), ScriptTransfer(am.caller, aG, ar), IntegerEntry(h, aC), IntegerEntry("last_virt_compound_wd", aF), IntegerEntry("last_amount_compound_wd", aG)]
309+ }
310+ else {
311+ let an = toString(am.caller)
312+ let U = F(p(am.caller))
313+ let aH = if ((Y == -1))
314+ then U
315+ else Y
316+ if ((aH > U))
317+ then throw("CWFT: you don't have tokens available")
318+ else {
319+ let af = ai(toString(am.caller), -(aH))
320+ ((R(am.caller) ++ [IntegerEntry(p(am.caller), (U - aH)), IntegerEntry(u, (F(u) - aH)), ScriptTransfer(am.caller, aH, ar), IntegerEntry("last_staking_wd", aH)]) ++ af)
321+ }
322+ }
323+ }
324+
325+
326+
327+@Callable(am)
328+func stakeFarmTokens (aA) = if (al())
329+ then throw("CSFT: CF is liquidated!")
330+ else {
331+ let ar = C()
332+ if ((size(am.payments) > 1))
333+ then throw("CSFT: To many payments added")
334+ else if ((am.payments[0].assetId != ar))
335+ then throw("CSFT: Wrong assetId")
336+ else {
337+ let Y = am.payments[0].amount
338+ if ((Y == 0))
339+ then throw("CSFT: Please attach positive asset amount!")
340+ else if (aA)
341+ then throw("CSFT: Compound was disabled!")
342+ else {
343+ let an = toString(am.caller)
344+ let Z = F(u)
345+ if ((am.payments[0].assetId != ar))
346+ then throw("CSFT: wrong asset attached")
347+ else {
348+ let af = ai(toString(am.caller), Y)
349+ ((R(am.caller) ++ [IntegerEntry(u, (Z + Y)), IntegerEntry(p(am.caller), (F(p(am.caller)) + Y))]) ++ af)
350+ }
351+ }
352+ }
353+ }
354+
355+
356+
357+@Callable(am)
358+func initiateDapp (q) = if (al())
359+ then throw("CID: CF is liquidated!")
360+ else if ((am.caller != this))
361+ then throw("CID: Can be called only by the dapp-account")
362+ else B(q)
363+
364+
365+
366+@Callable(am)
367+func claimReward () = if (al())
368+ then throw("CCR: CF is liquidated!")
369+ else if ((size(am.payments) > 0))
370+ then throw("CCR: Please don't add payments")
371+ else R(am.caller)
372+
373+

github/deemru/w8io/026f985 
22.99 ms