tx · 5VcTFsadP1yG7jQLodR4JdCTS5aH4cSA8cWzFC2Zq4JP

3N35UaaUfENekiyXtmv6aCU17bEtDbw4FHA:  -0.01000000 Waves

2022.09.01 11:18 [2209818] smart account 3N35UaaUfENekiyXtmv6aCU17bEtDbw4FHA > SELF 0.00000000 Waves

{ "type": 13, "id": "5VcTFsadP1yG7jQLodR4JdCTS5aH4cSA8cWzFC2Zq4JP", "fee": 1000000, "feeAssetId": null, "timestamp": 1662020382433, "version": 2, "chainId": 84, "sender": "3N35UaaUfENekiyXtmv6aCU17bEtDbw4FHA", "senderPublicKey": "8YNHwg4gEH3zJALGrrm5hUt5iutQ1BGhZicDDSkUzNoH", "proofs": [ "2H6m6JfPAW7WcgpuJxqZmouXongZdpMb94a7UeZv5CT3EuE1TCWDQeY7tCJ6kVMPCcVwQAkyhSFos97MtmhU4nsq" ], "script": "base64:BgIjCAISABIAEgASAwoBBBIAEgASBAoCAQQSAwoBBBIDCgEIEgAmAAtrZXlNQWNjUEtleQIJbWFzdGVyX3BrAQxnZXRDRkFkZHJlc3MACQERQGV4dHJOYXRpdmUoMTA2MikBCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUEdGhpcwIKQ0ZfQUREUkVTUwIUQ0ZfQUREUkVTUyBub3QgZm91bmQACG1BY2NQS2V5CQDZBAEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCCQEMZ2V0Q0ZBZGRyZXNzAAULa2V5TUFjY1BLZXkJAKwCAgULa2V5TUFjY1BLZXkCCiBub3QgZm91bmQACG1BY2NBZGRyCQCnCAEFCG1BY2NQS2V5ARFnZXRDb3Vwb25zQWRkcmVzcwAJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARFAZXh0ck5hdGl2ZSgxMDUzKQIFCG1BY2NBZGRyAg9DT1VQT05TX0FERFJFU1MAEGtleVRvdGFsQ29tcG91bmQCDnRvdGFsX2NvbXBvdW5kABFrZXlTdGFrZWRDb21wb3VuZAIPc3Rha2VkX2NvbXBvdW5kAAlrZXlMYXN0VlACEmxhc3RfdmlydHVhbF9wcmljZQAHVlBTY2FsZQCAwtcvARVrZXlTdGFrZWRDb21wb3VuZFVzZXIBBHVzZXIJAKwCAgkArAICCQClCAEFBHVzZXICAV8FEWtleVN0YWtlZENvbXBvdW5kARBjYWxjVmlydHVhbFByaWNlAgt0b3RhbFN0YWtlZAV0b3RhbAMJAAACBQV0b3RhbAAAAAEDCQAAAgULdG90YWxTdGFrZWQAAAABCQBrAwUFdG90YWwFB1ZQU2NhbGUFC3RvdGFsU3Rha2VkAAVTY2FsZQCAwtcvAQ9rZXlTdGFrZWRBbW91bnQBB2FkZHJlc3MJAKwCAgkApQgBBQdhZGRyZXNzAgxfZmFybV9zdGFrZWQBFGtleUxhc3RDaGVja0ludGVyZXN0AQdhZGRyZXNzCQCsAgIJAKUIAQUHYWRkcmVzcwITX2xhc3RDaGVja19pbnRlcmVzdAENa2V5RWdnQ2xhaW1lZAEHYWRkcmVzcwkArAICCQClCAEFB2FkZHJlc3MCCF9jbGFpbWVkABVrZXlHbG9iYWxMYXN0SW50ZXJlc3QCGWdsb2JhbF9sYXN0Q2hlY2tfaW50ZXJlc3QAD2tleUdsb2JhbFN0YWtlZAINZ2xvYmFsX3N0YWtlZAASa2V5R2xvYmFsRWdnRWFybmVkAg9nbG9iYWxfZWFybmluZ3MAEmtMb2NrZWRJbnZlc3RtZW50cwISbG9ja2VkX2ludmVzdG1lbnRzARZpc0NvbGxlY3RpdmVGYXJtTG9ja2VkAAQHJG1hdGNoMAkAmwgCCQEMZ2V0Q0ZBZGRyZXNzAAUSa0xvY2tlZEludmVzdG1lbnRzAwkAAQIFByRtYXRjaDACB0Jvb2xlYW4EAWIFByRtYXRjaDAFAWIHAQhnZXRFZ2dJZAAJANkEAQkBEUBleHRyTmF0aXZlKDEwNTMpAgUIbUFjY0FkZHICDEVHR19BU1NFVF9JRAEXc2V0Q0ZBZGRyZXNzQW5kSW5pdGlhdGUBB2FkZHJlc3MJAMwIAgkBC1N0cmluZ0VudHJ5AgIKQ0ZfQUREUkVTUwUHYWRkcmVzcwkAzAgCCQEMSW50ZWdlckVudHJ5AgUVa2V5R2xvYmFsTGFzdEludGVyZXN0AAEFA25pbAEPZ2V0U2hhcmVBc3NldElkAAkA2QQBCQERQGV4dHJOYXRpdmUoMTA1MykCCQEMZ2V0Q0ZBZGRyZXNzAAIOU0hBUkVfQVNTRVRfSUQBFXRyeUdldEludGVnZXJFeHRlcm5hbAIHYWRkcmVzcwNrZXkEByRtYXRjaDAJAJoIAgUHYWRkcmVzcwUDa2V5AwkAAQIFByRtYXRjaDACA0ludAQBYgUHJG1hdGNoMAUBYgAAAQ10cnlHZXRJbnRlZ2VyAQNrZXkJARV0cnlHZXRJbnRlZ2VyRXh0ZXJuYWwCBQR0aGlzBQNrZXkBDHRyeUdldFN0cmluZwEDa2V5BAckbWF0Y2gwCQCdCAIFBHRoaXMFA2tleQMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAWEFByRtYXRjaDAFAWECAAEQZ2V0Vm90ZUhlaWdodEtleQACEVZPVEVfSEVJR0hUX1NUQVJUAQtnZXREdXJhdGlvbgADCQAAAgkBFXRyeUdldEludGVnZXJFeHRlcm5hbAIFCG1BY2NBZGRyAg1WT1RFX0RVUkFUSU9OAAAAkE4JARV0cnlHZXRJbnRlZ2VyRXh0ZXJuYWwCBQhtQWNjQWRkcgINVk9URV9EVVJBVElPTgEQZ2V0Vm90ZUJ5VXNlcktleQIEdXNlcgZoZWlnaHQJAKwCAgkArAICCQCsAgICBVZPVEVfBQR1c2VyAgFfBQZoZWlnaHQBFWdldFRvdGFsVm90ZUJ5VHlwZUtleQIEdHlwZQZoZWlnaHQJAKwCAgkArAICCQCsAgICC1ZPVEVfVE9UQUxfBQR0eXBlAgFfBQZoZWlnaHQBD2dldFRvdGFsVm90ZUtleQEGaGVpZ2h0CQCsAgICC1ZPVEVfVE9UQUxfBQZoZWlnaHQBDXJlc3VsdFZvdGVLZXkBBmhlaWdodAkArAICAgtMSVFVSURBVEVEXwUGaGVpZ2h0AQ1xdW9ydW1Wb3RlS2V5AQZoZWlnaHQJAKwCAgIHUVVPUlVNXwUGaGVpZ2h0ARJjbGFpbVN0YWtpbmdSZXN1bHQBB2FkZHJlc3MED2N1cnJlbnRJbnRlcmVzdAkBDXRyeUdldEludGVnZXIBBRVrZXlHbG9iYWxMYXN0SW50ZXJlc3QEEWxhc3RDaGVja0ludGVyZXN0CQENdHJ5R2V0SW50ZWdlcgEJARRrZXlMYXN0Q2hlY2tJbnRlcmVzdAEFB2FkZHJlc3MEDHN0YWtlZEFtb3VudAkBDXRyeUdldEludGVnZXIBCQEPa2V5U3Rha2VkQW1vdW50AQUHYWRkcmVzcwQGcmV3YXJkAwkAZgIFEWxhc3RDaGVja0ludGVyZXN0AAAJAGsDCQBlAgUPY3VycmVudEludGVyZXN0BRFsYXN0Q2hlY2tJbnRlcmVzdAUMc3Rha2VkQW1vdW50BQVTY2FsZQAABAh0cmFuc2ZlcgMJAGYCBQZyZXdhcmQAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQdhZGRyZXNzBQZyZXdhcmQJAQhnZXRFZ2dJZAAFA25pbAUDbmlsCQDOCAIFCHRyYW5zZmVyCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEUa2V5TGFzdENoZWNrSW50ZXJlc3QBBQdhZGRyZXNzBQ9jdXJyZW50SW50ZXJlc3QJAMwIAgkBDEludGVnZXJFbnRyeQIJAQ1rZXlFZ2dDbGFpbWVkAQUHYWRkcmVzcwkAZAIJAQ10cnlHZXRJbnRlZ2VyAQkBDWtleUVnZ0NsYWltZWQBBQdhZGRyZXNzBQZyZXdhcmQFA25pbAESaGFuZGxlU3Rha2luZ1RvcFVwAQZhbW91bnQED2N1cnJlbnRJbnRlcmVzdAkBDXRyeUdldEludGVnZXIBBRVrZXlHbG9iYWxMYXN0SW50ZXJlc3QEEXRvdGFsU3Rha2VkQW1vdW50CQENdHJ5R2V0SW50ZWdlcgEFD2tleUdsb2JhbFN0YWtlZAQNaW50ZXJlc3REZWx0YQMJAGYCBRF0b3RhbFN0YWtlZEFtb3VudAAACQBrAwUGYW1vdW50BQVTY2FsZQURdG90YWxTdGFrZWRBbW91bnQAAAkAzAgCCQEMSW50ZWdlckVudHJ5AgUSa2V5R2xvYmFsRWdnRWFybmVkCQBkAgkBDXRyeUdldEludGVnZXIBBRJrZXlHbG9iYWxFZ2dFYXJuZWQFBmFtb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgUVa2V5R2xvYmFsTGFzdEludGVyZXN0CQBkAgUPY3VycmVudEludGVyZXN0BQ1pbnRlcmVzdERlbHRhBQNuaWwBDGFkZFZvdGVQb3dlcgQGY2FsbGVyAWgEdm90ZQl2b3RlUG93ZXIDAwkAAAIFAWgAAAYJAAACBQR2b3RlAgAFA25pbAMJAGYCBQZoZWlnaHQJAGQCBQFoCQELZ2V0RHVyYXRpb24ACQACAQkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICM0NBVlA6IFZvdGluZyBpcyBmaW5pc2hlZCwgcGxlYXNlIGZpbmFsaXplIHRoZSB2b3RlOwIMIEFyZ3VtZW50czogBQZjYWxsZXICAiwgCQCkAwEFAWgCAiwgBQR2b3RlAgIsIAkApAMBBQl2b3RlUG93ZXIED3ZvdGVUb3RhbEJ5VHlwZQkBDXRyeUdldEludGVnZXIBCQEVZ2V0VG90YWxWb3RlQnlUeXBlS2V5AgUEdm90ZQkApAMBBQFoBAl0b3RhbFZvdGUJAQ10cnlHZXRJbnRlZ2VyAQkBD2dldFRvdGFsVm90ZUtleQEJAKQDAQUBaAkAzAgCCQELU3RyaW5nRW50cnkCCQEQZ2V0Vm90ZUJ5VXNlcktleQIFBmNhbGxlcgkApAMBBQFoBQR2b3RlCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEVZ2V0VG90YWxWb3RlQnlUeXBlS2V5AgUEdm90ZQkApAMBBQFoCQBkAgUPdm90ZVRvdGFsQnlUeXBlBQl2b3RlUG93ZXIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQ9nZXRUb3RhbFZvdGVLZXkBCQCkAwEFAWgJAGQCBQl0b3RhbFZvdGUFCXZvdGVQb3dlcgUDbmlsARNhZGFwdFZvdGVQb3dlclN0YWtlAgZjYWxsZXIJdm90ZVBvd2VyBAp2b3RlSGVpZ2h0CQENdHJ5R2V0SW50ZWdlcgEJARBnZXRWb3RlSGVpZ2h0S2V5AAQQdm90ZUJ5VXNlclN0cmluZwkBDHRyeUdldFN0cmluZwEJARBnZXRWb3RlQnlVc2VyS2V5AgUGY2FsbGVyCQCkAwEFCnZvdGVIZWlnaHQJAQxhZGRWb3RlUG93ZXIEBQZjYWxsZXIFCnZvdGVIZWlnaHQFEHZvdGVCeVVzZXJTdHJpbmcFCXZvdGVQb3dlcgEMaXNMaXF1aWRhdGVkAAQKdm90ZUhlaWdodAkBDXRyeUdldEludGVnZXIBCQEQZ2V0Vm90ZUhlaWdodEtleQADCQAAAgUKdm90ZUhlaWdodAAABwkBEUBleHRyTmF0aXZlKDEwNTYpAQkBDXJlc3VsdFZvdGVLZXkBCQCkAwEFCnZvdGVIZWlnaHQKAWkBEWNsYWltUmVmdW5kU3Rha2VkAAQKYWRkcmVzc1N0cgkApQgBCAUBaQZjYWxsZXIEDHN0YWtlZEFtb3VudAkBDXRyeUdldEludGVnZXIBCQEPa2V5U3Rha2VkQW1vdW50AQgFAWkGY2FsbGVyBAp2b3RlSGVpZ2h0CQENdHJ5R2V0SW50ZWdlcgEJARBnZXRWb3RlSGVpZ2h0S2V5AAQQdm90ZUJ5VXNlclN0cmluZwkBDHRyeUdldFN0cmluZwEJARBnZXRWb3RlQnlVc2VyS2V5AgUKYWRkcmVzc1N0cgkApAMBBQp2b3RlSGVpZ2h0BAptdWx0aXBsaWVyAwkAAAIFEHZvdGVCeVVzZXJTdHJpbmcCAAAHAAoEBnJlZnVuZAkAaAIJAGkCBQxzdGFrZWRBbW91bnQACgUKbXVsdGlwbGllcgQLY291cG9uc0NhbGwJAPwHBAkBEWdldENvdXBvbnNBZGRyZXNzAAIIQ0ZSZWZ1bmQJAMwIAgUKYWRkcmVzc1N0cgkAzAgCBQZyZWZ1bmQFA25pbAUDbmlsAwkAAAIFC2NvdXBvbnNDYWxsBQtjb3Vwb25zQ2FsbAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBD2tleVN0YWtlZEFtb3VudAEIBQFpBmNhbGxlcgAACQDMCAIJAQRCdXJuAgkBD2dldFNoYXJlQXNzZXRJZAAFDHN0YWtlZEFtb3VudAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBE2NsYWltUmVmdW5kVW5zdGFrZWQABAxzaGFyZVRva2VuSWQJAQ9nZXRTaGFyZUFzc2V0SWQAAwkAZgIJAJADAQgFAWkIcGF5bWVudHMAAQkAAgECHENTRlQ6IFRvIG1hbnkgcGF5bWVudHMgYWRkZWQDCQECIT0CCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQFDHNoYXJlVG9rZW5JZAkAAgECE0NTRlQ6IFdyb25nIGFzc2V0SWQEBmFtb3VudAgJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQDCQAAAgUGYW1vdW50AAAJAAIBAipDU0ZUOiBQbGVhc2UgYXR0YWNoIHBvc2l0aXZlIGFzc2V0IGFtb3VudCEECmFkZHJlc3NTdHIJAKUIAQgFAWkGY2FsbGVyBAptdWx0aXBsaWVyAAcEBnJlZnVuZAkAaAIJAGkCBQZhbW91bnQACgUKbXVsdGlwbGllcgQLY291cG9uc0NhbGwJAPwHBAkBEWdldENvdXBvbnNBZGRyZXNzAAIIQ0ZSZWZ1bmQJAMwIAgUKYWRkcmVzc1N0cgkAzAgCBQZyZWZ1bmQFA25pbAUDbmlsAwkAAAIFC2NvdXBvbnNDYWxsBQtjb3Vwb25zQ2FsbAkAzAgCCQEEQnVybgIJAQ9nZXRTaGFyZUFzc2V0SWQABQZhbW91bnQFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQlzdGFydFZvdGUAAwkBAiE9AggFAWkGY2FsbGVyBQhtQWNjQWRkcgkAAgECOUNTVjogT25seSB0aGUgYWRtaW4gY2FuIHN0YXJ0IGEgbGlxdWlkYXRpb24gdm90ZSBmb3Igbm93IQMJAQIhPQIJAQ10cnlHZXRJbnRlZ2VyAQkBEGdldFZvdGVIZWlnaHRLZXkAAAAJAAIBAiVDU1Y6IFRoZXJlIGlzIGFscmVhZHkgYSB2b3RlIHJ1bm5pbmchCQDMCAIJAQxJbnRlZ2VyRW50cnkCAhFWT1RFX0hFSUdIVF9TVEFSVAUGaGVpZ2h0BQNuaWwBaQEPdm90ZVRvTGlxdWlkYXRlAQR2b3RlBAl2b3RlUG93ZXIJAQ10cnlHZXRJbnRlZ2VyAQkBD2tleVN0YWtlZEFtb3VudAEIBQFpBmNhbGxlcgMJAAACBQl2b3RlUG93ZXIAAAkAAgECM0NWVEw6IFBsZWFzZSBzdGFrZSBzb21lIHRva2VucyBiZWZvcmUgeW91IGNhbiB2b3RlIQQMdm90ZUFzU3RyaW5nCQClAwEFBHZvdGUECnZvdGVIZWlnaHQJAQ10cnlHZXRJbnRlZ2VyAQkBEGdldFZvdGVIZWlnaHRLZXkAAwkAZgIFBmhlaWdodAkAZAIFCnZvdGVIZWlnaHQJAQtnZXREdXJhdGlvbgAJAAIBAjFDVjogVm90aW5nIGlzIGZpbmlzaGVkLCBwbGVhc2UgZmluYWxpemUgdGhlIHZvdGUhBBB2b3RlQnlVc2VyU3RyaW5nCQEMdHJ5R2V0U3RyaW5nAQkBEGdldFZvdGVCeVVzZXJLZXkCCQClCAEIBQFpBmNhbGxlcgkApAMBBQp2b3RlSGVpZ2h0AwkBAiE9AgUQdm90ZUJ5VXNlclN0cmluZwIACQACAQIhQ1Y6IFlvdSBjYW4gbm90IGNoYW5nZSB5b3VyIHZvdGUhCQEMYWRkVm90ZVBvd2VyBAkApQgBCAUBaQZjYWxsZXIFCnZvdGVIZWlnaHQFDHZvdGVBc1N0cmluZwUJdm90ZVBvd2VyAWkBDGZpbmFsaXplVm90ZQAECnZvdGVIZWlnaHQJAQ10cnlHZXRJbnRlZ2VyAQkBEGdldFZvdGVIZWlnaHRLZXkAAwkAZgIJAGQCBQp2b3RlSGVpZ2h0CQELZ2V0RHVyYXRpb24ABQZoZWlnaHQJAAIBAhxDRlY6IFZvdGluZyBpcyBub3QgZmluaXNoZWQhBBF0b3RhbFN0YWtlZEFtb3VudAkBDXRyeUdldEludGVnZXIBBQ9rZXlHbG9iYWxTdGFrZWQECXRvdGFsVm90ZQkBDXRyeUdldEludGVnZXIBCQEPZ2V0VG90YWxWb3RlS2V5AQkApAMBBQp2b3RlSGVpZ2h0BAZxdW9ydW0JAGgCCQBpAgUJdG90YWxWb3RlBRF0b3RhbFN0YWtlZEFtb3VudABkBA52b3RlVG90YWxCeVllcwkBDXRyeUdldEludGVnZXIBCQEVZ2V0VG90YWxWb3RlQnlUeXBlS2V5AgIEdHJ1ZQkApAMBBQp2b3RlSGVpZ2h0BA12b3RlVG90YWxCeU5vCQENdHJ5R2V0SW50ZWdlcgEJARVnZXRUb3RhbFZvdGVCeVR5cGVLZXkCAgVmYWxzZQkApAMBBQp2b3RlSGVpZ2h0BApsaXF1aWRhdGVkAwkAZgIAFAUGcXVvcnVtBgMJAGYCBQ52b3RlVG90YWxCeVllcwUNdm90ZVRvdGFsQnlObwYHBAhyZXNldEtleQMFCmxpcXVpZGF0ZWQFA25pbAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBEGdldFZvdGVIZWlnaHRLZXkAAAAFA25pbAkAzggCCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQENcXVvcnVtVm90ZUtleQEJAKQDAQUKdm90ZUhlaWdodAUGcXVvcnVtCQDMCAIJAQxCb29sZWFuRW50cnkCCQENcmVzdWx0Vm90ZUtleQEJAKQDAQUKdm90ZUhlaWdodAUKbGlxdWlkYXRlZAUDbmlsBQhyZXNldEtleQFpAQt0b3BVcFJld2FyZAADCQEMaXNMaXF1aWRhdGVkAAkAAgECF0NUVVI6IENGIGlzIGxpcXVpZGF0ZWQhBAplZ2dBc3NldElkCQEIZ2V0RWdnSWQABAxzaGFyZVRva2VuSWQJAQ9nZXRTaGFyZUFzc2V0SWQAAwkBAiE9AggJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkBQplZ2dBc3NldElkCQACAQIwQ1RVUDogV3JvbmcgYXNzZXRJZCwgZmlyc3QgcGF5bWVudCBzaG91bGQgYmUgRUdHBBByZXNIYW5kbGVTdGFraW5nCQESaGFuZGxlU3Rha2luZ1RvcFVwAQgJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQJAJQKAgUQcmVzSGFuZGxlU3Rha2luZwYBaQESd2l0aGRyYXdGYXJtVG9rZW5zAgZhbW91bnQIY29tcG91bmQDCQEMaXNMaXF1aWRhdGVkAAkAAgECF0NUVVI6IENGIGlzIGxpcXVpZGF0ZWQhAwkAZgIJAJADAQgFAWkIcGF5bWVudHMAAAkAAgECH0NXRlQ6IFBsZWFzZSBkb24ndCBhZGQgcGF5bWVudHMEDHNoYXJlVG9rZW5JZAkBD2dldFNoYXJlQXNzZXRJZAADBQhjb21wb3VuZAQGc3Rha2VkCQENdHJ5R2V0SW50ZWdlcgEFEWtleVN0YWtlZENvbXBvdW5kBAV0b3RhbAkBDXRyeUdldEludGVnZXIBBRBrZXlUb3RhbENvbXBvdW5kBAJ2cAkBEGNhbGNWaXJ0dWFsUHJpY2UCBQZzdGFrZWQFBXRvdGFsBBJrZXlTdGFrZWRDb21wb3VuZFUJARVrZXlTdGFrZWRDb21wb3VuZFVzZXIBCAUBaQZjYWxsZXIEDnBlcnNvbmFsU3Rha2VkCQENdHJ5R2V0SW50ZWdlcgEFEmtleVN0YWtlZENvbXBvdW5kVQQJdmlydHVhbFdkAwkAAAIFBmFtb3VudAD///////////8BBQ5wZXJzb25hbFN0YWtlZAkAawMFBmFtb3VudAUHVlBTY2FsZQUCdnAECGFtb3VudFdkAwkAAAIFBmFtb3VudAD///////////8BCQBrAwUJdmlydHVhbFdkBQJ2cAUHVlBTY2FsZQUGYW1vdW50AwkAZgIFCXZpcnR1YWxXZAUOcGVyc29uYWxTdGFrZWQJAAIBAi5DV0ZUOiBZb3UgZG9uJ3QgaGF2ZSBzbyBtdWNoIGZ1bmRzIHRvIHdpdGhkcmF3CQDMCAIJAQxJbnRlZ2VyRW50cnkCBRJrZXlTdGFrZWRDb21wb3VuZFUJAGUCBQ5wZXJzb25hbFN0YWtlZAUJdmlydHVhbFdkCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRFrZXlTdGFrZWRDb21wb3VuZAkAZQIFBnN0YWtlZAUJdmlydHVhbFdkCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRBrZXlUb3RhbENvbXBvdW5kCQBlAgUFdG90YWwFCGFtb3VudFdkCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgUIYW1vdW50V2QFDHNoYXJlVG9rZW5JZAkAzAgCCQEMSW50ZWdlckVudHJ5AgUJa2V5TGFzdFZQBQJ2cAkAzAgCCQEMSW50ZWdlckVudHJ5AgIVbGFzdF92aXJ0X2NvbXBvdW5kX3dkBQl2aXJ0dWFsV2QJAMwIAgkBDEludGVnZXJFbnRyeQICF2xhc3RfYW1vdW50X2NvbXBvdW5kX3dkBQhhbW91bnRXZAUDbmlsBAphZGRyZXNzU3RyCQClCAEIBQFpBmNhbGxlcgQMc3Rha2VkQW1vdW50CQENdHJ5R2V0SW50ZWdlcgEJAQ9rZXlTdGFrZWRBbW91bnQBCAUBaQZjYWxsZXIECHdkQW1vdW50AwkAAAIFBmFtb3VudAD///////////8BBQxzdGFrZWRBbW91bnQFBmFtb3VudAMJAGYCBQh3ZEFtb3VudAUMc3Rha2VkQW1vdW50CQACAQIlQ1dGVDogeW91IGRvbid0IGhhdmUgdG9rZW5zIGF2YWlsYWJsZQQJdm90ZVBvd2VyCQETYWRhcHRWb3RlUG93ZXJTdGFrZQIJAKUIAQgFAWkGY2FsbGVyCQEBLQEFCHdkQW1vdW50CQDOCAIJAM4IAgkBEmNsYWltU3Rha2luZ1Jlc3VsdAEIBQFpBmNhbGxlcgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBD2tleVN0YWtlZEFtb3VudAEIBQFpBmNhbGxlcgkAZQIFDHN0YWtlZEFtb3VudAUId2RBbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQIFD2tleUdsb2JhbFN0YWtlZAkAZQIJAQ10cnlHZXRJbnRlZ2VyAQUPa2V5R2xvYmFsU3Rha2VkBQh3ZEFtb3VudAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIFCHdkQW1vdW50BQxzaGFyZVRva2VuSWQJAMwIAgkBDEludGVnZXJFbnRyeQICD2xhc3Rfc3Rha2luZ193ZAUId2RBbW91bnQFA25pbAUJdm90ZVBvd2VyAWkBD3N0YWtlRmFybVRva2VucwEIY29tcG91bmQDCQEMaXNMaXF1aWRhdGVkAAkAAgECF0NTRlQ6IENGIGlzIGxpcXVpZGF0ZWQhBAxzaGFyZVRva2VuSWQJAQ9nZXRTaGFyZUFzc2V0SWQAAwkAZgIJAJADAQgFAWkIcGF5bWVudHMAAQkAAgECHENTRlQ6IFRvIG1hbnkgcGF5bWVudHMgYWRkZWQDCQECIT0CCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQFDHNoYXJlVG9rZW5JZAkAAgECE0NTRlQ6IFdyb25nIGFzc2V0SWQEBmFtb3VudAgJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQDCQAAAgUGYW1vdW50AAAJAAIBAipDU0ZUOiBQbGVhc2UgYXR0YWNoIHBvc2l0aXZlIGFzc2V0IGFtb3VudCEDBQhjb21wb3VuZAkAAgECHENTRlQ6IENvbXBvdW5kIHdhcyBkaXNhYmxlZCEECmFkZHJlc3NTdHIJAKUIAQgFAWkGY2FsbGVyBBF0b3RhbFN0YWtlZEFtb3VudAkBDXRyeUdldEludGVnZXIBBQ9rZXlHbG9iYWxTdGFrZWQDCQECIT0CCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQFDHNoYXJlVG9rZW5JZAkAAgECGkNTRlQ6IHdyb25nIGFzc2V0IGF0dGFjaGVkBAl2b3RlUG93ZXIJARNhZGFwdFZvdGVQb3dlclN0YWtlAgkApQgBCAUBaQZjYWxsZXIFBmFtb3VudAkAzggCCQDOCAIJARJjbGFpbVN0YWtpbmdSZXN1bHQBCAUBaQZjYWxsZXIJAMwIAgkBDEludGVnZXJFbnRyeQIFD2tleUdsb2JhbFN0YWtlZAkAZAIFEXRvdGFsU3Rha2VkQW1vdW50BQZhbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQIJAQ9rZXlTdGFrZWRBbW91bnQBCAUBaQZjYWxsZXIJAGQCCQENdHJ5R2V0SW50ZWdlcgEJAQ9rZXlTdGFrZWRBbW91bnQBCAUBaQZjYWxsZXIFBmFtb3VudAUDbmlsBQl2b3RlUG93ZXIBaQEMaW5pdGlhdGVEYXBwAQdhZGRyZXNzAwkBDGlzTGlxdWlkYXRlZAAJAAIBAhZDSUQ6IENGIGlzIGxpcXVpZGF0ZWQhAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQIrQ0lEOiBDYW4gYmUgY2FsbGVkIG9ubHkgYnkgdGhlIGRhcHAtYWNjb3VudAkBF3NldENGQWRkcmVzc0FuZEluaXRpYXRlAQUHYWRkcmVzcwFpAQtjbGFpbVJld2FyZAADCQEMaXNMaXF1aWRhdGVkAAkAAgECFkNDUjogQ0YgaXMgbGlxdWlkYXRlZCEDCQBmAgkAkAMBCAUBaQhwYXltZW50cwAACQACAQIeQ0NSOiBQbGVhc2UgZG9uJ3QgYWRkIHBheW1lbnRzCQESY2xhaW1TdGFraW5nUmVzdWx0AQgFAWkGY2FsbGVyAGwCKsM=", "height": 2209818, "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("CV: 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("CV: 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+ let ar = C()
277+ if ((am.payments[0].assetId != ay))
278+ then throw("CTUP: Wrong assetId, first payment should be EGG")
279+ else {
280+ let az = X(am.payments[0].amount)
281+ $Tuple2(az, true)
282+ }
283+ }
284+
285+
286+
287+@Callable(am)
288+func withdrawFarmTokens (Y,aA) = if (al())
289+ then throw("CTUR: CF is liquidated!")
290+ else if ((size(am.payments) > 0))
291+ then throw("CWFT: Please don't add payments")
292+ else {
293+ let ar = C()
294+ if (aA)
295+ then {
296+ let aB = F(g)
297+ let n = F(f)
298+ let aC = l(aB, n)
299+ let aD = j(am.caller)
300+ let aE = F(aD)
301+ let aF = if ((Y == -1))
302+ then aE
303+ else fraction(Y, i, aC)
304+ let aG = if ((Y == -1))
305+ then fraction(aF, aC, i)
306+ else Y
307+ if ((aF > aE))
308+ then throw("CWFT: You don't have so much funds to withdraw")
309+ 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)]
310+ }
311+ else {
312+ let an = toString(am.caller)
313+ let U = F(p(am.caller))
314+ let aH = if ((Y == -1))
315+ then U
316+ else Y
317+ if ((aH > U))
318+ then throw("CWFT: you don't have tokens available")
319+ else {
320+ let af = ai(toString(am.caller), -(aH))
321+ ((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)
322+ }
323+ }
324+ }
325+
326+
327+
328+@Callable(am)
329+func stakeFarmTokens (aA) = if (al())
330+ then throw("CSFT: CF is liquidated!")
331+ else {
332+ let ar = C()
333+ if ((size(am.payments) > 1))
334+ then throw("CSFT: To many payments added")
335+ else if ((am.payments[0].assetId != ar))
336+ then throw("CSFT: Wrong assetId")
337+ else {
338+ let Y = am.payments[0].amount
339+ if ((Y == 0))
340+ then throw("CSFT: Please attach positive asset amount!")
341+ else if (aA)
342+ then throw("CSFT: Compound was disabled!")
343+ else {
344+ let an = toString(am.caller)
345+ let Z = F(u)
346+ if ((am.payments[0].assetId != ar))
347+ then throw("CSFT: wrong asset attached")
348+ else {
349+ let af = ai(toString(am.caller), Y)
350+ ((R(am.caller) ++ [IntegerEntry(u, (Z + Y)), IntegerEntry(p(am.caller), (F(p(am.caller)) + Y))]) ++ af)
351+ }
352+ }
353+ }
354+ }
355+
356+
357+
358+@Callable(am)
359+func initiateDapp (q) = if (al())
360+ then throw("CID: CF is liquidated!")
361+ else if ((am.caller != this))
362+ then throw("CID: Can be called only by the dapp-account")
363+ else B(q)
364+
365+
366+
367+@Callable(am)
368+func claimReward () = if (al())
369+ then throw("CCR: CF is liquidated!")
370+ else if ((size(am.payments) > 0))
371+ then throw("CCR: Please don't add payments")
372+ else R(am.caller)
373+
374+

github/deemru/w8io/026f985 
21.22 ms