tx · 8T6vEMJpsX79mNPztRcnRGziBV7db3ebeAQgRM93bTb9

3N2PjXqef29HexCE7PeGZa9eRjS2jVeaFe4:  -0.05000000 Waves

2023.08.28 09:56 [2730190] smart account 3N2PjXqef29HexCE7PeGZa9eRjS2jVeaFe4 > SELF 0.00000000 Waves

{ "type": 13, "id": "8T6vEMJpsX79mNPztRcnRGziBV7db3ebeAQgRM93bTb9", "fee": 5000000, "feeAssetId": null, "timestamp": 1693205821882, "version": 2, "chainId": 84, "sender": "3N2PjXqef29HexCE7PeGZa9eRjS2jVeaFe4", "senderPublicKey": "DU1U4j8FqHUMRr9WgfF3yo67ULEFkjp7dtMWMpjBK1ar", "proofs": [ "3iVrrEp4kRu1moNYASzgrDZr8cR9QFxE9r8KvRgkLdRKrraWEZVnnzCSSHkXuR3bsQhmKSDEW4E1g5HszvXpPg1", "4hy8Kwx6Q6Ji1gve1kf6urB7ByEuvixFHPhiH2k1owTD5RZ9dzhCSXKiuD3cZtdbCGS2BkdzVp9Hqz8hxvfHBnvZ" ], "script": "base64:BgImCAISBwoFCAgICAESABIDCgEBEgASABIDCgEIEgASBQoDCAgIEgAbAAZTQ0FMRTgAgMLXLwAJa0ludGVyZXN0AghpbnRlcmVzdAANa1VzZXJJbnRlcmVzdAINX3VzZXJJbnRlcmVzdAAOa1VzZXJBdmFpbGFibGUCE191c2VyQXZhaWxhYmxlQ2xhaW0AEGtVc2VyVG9rZW5TdGFrZWQCEF91c2VyVG9rZW5TdGFrZWQAEWtUb3RhbFRva2VuU3Rha2VkAhB0b3RhbFRva2VuU3Rha2VkAAxrTkZUSW50ZXJlc3QCC05GVEludGVyZXN0ABBrTkZUVXNlckludGVyZXN0AhBfTkZUVXNlckludGVyZXN0ABZrTkZUVXNlckF2YWlsYWJsZUNsYWltAhZfTkZUVXNlckF2YWlsYWJsZUNsYWltAA9rTkZUVG90YWxTdGFrZWQCDk5GVFRvdGFsU3Rha2VkAA5rdXNlck5GVFN0YWtlZAIOX3VzZXJORlRTdGFrZWQAEGt1c2VyTkZUU3Rha2VkSWQCEF91c2VyTkZUU3Rha2VkSWQAC2tORlRDcmVhdGVkAgtfTkZUQ3JlYXRlZAAIa1Rva2VuaWQCB3Rva2VuSWQADmtQZXJzZW50Rm9yTkZUAg1wZXJjZW50Rm9yTkZUAAlrQWRtaW4xUEsCC2FkbWluX3B1Yl8xAAlrQWRtaW4yUEsCC2FkbWluX3B1Yl8yAAlrQWRtaW4zUEsCC2FkbWluX3B1Yl8zAAhhZG1pbjFQSwkA2QQBCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUEdGhpcwUJa0FkbWluMVBLAhJDYW4ndCBnZXQgYWRtaW4xUEsACGFkbWluMlBLCQDZBAEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQR0aGlzBQlrQWRtaW4yUEsCEkNhbid0IGdldCBhZG1pbjJQSwAIYWRtaW4zUEsJANkEAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFBHRoaXMFCWtBZG1pbjNQSwIUQ2FuJ3QgZ2V0IG9wZXJhdG9yUEsAB3Rva2VuSWQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQR0aGlzBQhrVG9rZW5pZAIXQ2FuJ3QgZ2V0IHN0YWtpbmcgdG9rZW4BC2lzQWRtaW5DYWxsAQFpAwkBD2NvbnRhaW5zRWxlbWVudAIJAMwIAgUIYWRtaW4xUEsJAMwIAgUIYWRtaW4yUEsJAMwIAgUIYWRtaW4zUEsFA25pbAgFAWkPY2FsbGVyUHVibGljS2V5BQR1bml0CQACAQIhT25seSBhZG1pbiBjYW4gY2FsbCB0aGlzIGZ1bmN0aW9uAQppc1NlbGZDYWxsAQFpAwkAAAIIBQFpBmNhbGxlcgUEdGhpcwUEdW5pdAkAAgECK09ubHkgY29udHJhY3QgaXRzZWxmIGNhbiBjYWxsIHRoaXMgZnVuY3Rpb24BDGFzc2V0SWRUb1N0cgEHYXNzZXRJZAQHJG1hdGNoMAUHYXNzZXRJZAMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAJpZAUHJG1hdGNoMAkA2AQBBQJpZAMJAAECBQckbWF0Y2gwAgRVbml0BAV3YXZlcwUHJG1hdGNoMAIFV0FWRVMJAAIBAgxOb3QgQXNzZXQgaWQBCWNsYWltQ2FsYwEEdXNlcgQQdG90YWxUb2tlblN0YWtlZAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBRFrVG90YWxUb2tlblN0YWtlZAAABAtjdXJJbnRlcmVzdAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQlrSW50ZXJlc3QAAAQRYXZhaWxhYmxlRm9yQ2xhaW0JAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkArAICBQR1c2VyBQ5rVXNlckF2YWlsYWJsZQAABAx1c2VySW50ZXJlc3QJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkArAICBQR1c2VyBQ1rVXNlckludGVyZXN0BQtjdXJJbnRlcmVzdAQPdXNlclRva2VuU3Rha2VkCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAKwCAgUEdXNlcgUQa1VzZXJUb2tlblN0YWtlZAAABAtjbGFpbUFtb3VudAkAawMFD3VzZXJUb2tlblN0YWtlZAkAZQIFC2N1ckludGVyZXN0BQx1c2VySW50ZXJlc3QFBlNDQUxFOAkAlgoEBQtjdXJJbnRlcmVzdAkAZAIFC2NsYWltQW1vdW50BRFhdmFpbGFibGVGb3JDbGFpbQUPdXNlclRva2VuU3Rha2VkBRB0b3RhbFRva2VuU3Rha2VkAQxjbGFpbUNhbGNOZnQBBHVzZXIEDnRvdGFsTmZ0U3Rha2VkCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFD2tORlRUb3RhbFN0YWtlZAAABAtjdXJJbnRlcmVzdAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQxrTkZUSW50ZXJlc3QAAAQRYXZhaWxhYmxlRm9yQ2xhaW0JAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkArAICBQR1c2VyBRZrTkZUVXNlckF2YWlsYWJsZUNsYWltAAAEDHVzZXJJbnRlcmVzdAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQCsAgIFBHVzZXIFEGtORlRVc2VySW50ZXJlc3QFC2N1ckludGVyZXN0BA11c2VyTmZ0U3Rha2VkCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAKwCAgUEdXNlcgUOa3VzZXJORlRTdGFrZWQAAAQLY2xhaW1BbW91bnQJAGsDBQ11c2VyTmZ0U3Rha2VkCQBlAgULY3VySW50ZXJlc3QFDHVzZXJJbnRlcmVzdAUGU0NBTEU4CQCWCgQFC2N1ckludGVyZXN0CQBkAgULY2xhaW1BbW91bnQFEWF2YWlsYWJsZUZvckNsYWltBQ11c2VyTmZ0U3Rha2VkBQ50b3RhbE5mdFN0YWtlZAkBaQEEaW5pdAUHdG9rZW5JZAdhZG0xUHViB2FkbTJQdWIHYWRtM1B1Ygx0b05GVFBlcmNlbnQJAQt2YWx1ZU9yRWxzZQIJAQppc1NlbGZDYWxsAQUBaQMJAQlpc0RlZmluZWQBCQCdCAIFBHRoaXMFCGtUb2tlbmlkCQACAQITREFwcCBhbHJlYWR5IGluaXRlZAMJAQEhAQkBCWlzRGVmaW5lZAEJAOwHAQkA2QQBBQd0b2tlbklkCQACAQIgYXNzZXQgaWQgaXMgbm90IGNvcnJlY3QgYXNzZXQgaWQDCQECIT0CCQDIAQEJANkEAQUHYWRtMVB1YgAgCQACAQIhZ3JvdXAxQWRtaW4xUHViS2V5IGlzIG5vdCBjb3JyZWN0AwkBAiE9AgkAyAEBCQDZBAEFB2FkbTJQdWIAIAkAAgECIWdyb3VwMUFkbWluMVB1YktleSBpcyBub3QgY29ycmVjdAMJAQIhPQIJAMgBAQkA2QQBBQdhZG0zUHViACAJAAIBAiFncm91cDFBZG1pbjFQdWJLZXkgaXMgbm90IGNvcnJlY3QJAMwIAgkBC1N0cmluZ0VudHJ5AgUIa1Rva2VuaWQFB3Rva2VuSWQJAMwIAgkBC1N0cmluZ0VudHJ5AgUJa0FkbWluMVBLBQdhZG0xUHViCQDMCAIJAQtTdHJpbmdFbnRyeQIFCWtBZG1pbjJQSwUHYWRtMlB1YgkAzAgCCQELU3RyaW5nRW50cnkCBQlrQWRtaW4zUEsFB2FkbTNQdWIJAMwIAgkBDEludGVnZXJFbnRyeQIFDmtQZXJzZW50Rm9yTkZUBQx0b05GVFBlcmNlbnQFA25pbAFpAQVzdGFrZQADCQECIT0CCQCQAwEIBQFpCHBheW1lbnRzAAEJAAIBAhRPbmUgcGF5bWVudCBleHBlY3RlZAQLJHQwMzY5NTM3NzAJAJQKAggJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAQJcG10QW1vdW50CAULJHQwMzY5NTM3NzACXzEECnBtdEFzc2V0SWQIBQskdDAzNjk1Mzc3MAJfMgMJAQIhPQIFCnBtdEFzc2V0SWQJANkEAQUHdG9rZW5JZAkAAgECE1dyb25nIHBheW1lbnQgYXNzZXQEBHVzZXIJAKUIAQgFAWkGY2FsbGVyBAskdDAzODkxMzk4NwkBCWNsYWltQ2FsYwEFBHVzZXIED3VzZXJOZXdJbnRlcmVzdAgFCyR0MDM4OTEzOTg3Al8xBBRjbGFpbUFtb3VudEF2YWlsYWJsZQgFCyR0MDM4OTEzOTg3Al8yBA91c2VyVG9rZW5TdGFrZWQIBQskdDAzODkxMzk4NwJfMwQQdG90YWxUb2tlblN0YWtlZAgFCyR0MDM4OTEzOTg3Al80CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFBHVzZXIFDWtVc2VySW50ZXJlc3QFD3VzZXJOZXdJbnRlcmVzdAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQR1c2VyBQ5rVXNlckF2YWlsYWJsZQUUY2xhaW1BbW91bnRBdmFpbGFibGUJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUEdXNlcgUQa1VzZXJUb2tlblN0YWtlZAkAZAIFD3VzZXJUb2tlblN0YWtlZAUJcG10QW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCBRFrVG90YWxUb2tlblN0YWtlZAkAZAIFEHRvdGFsVG9rZW5TdGFrZWQFCXBtdEFtb3VudAUDbmlsAWkBB3Vuc3Rha2UBBmFtb3VudAQEdXNlcgkApQgBCAUBaQZjYWxsZXIDCQBnAgAABQZhbW91bnQJAAIBAh1BbW91bnQgbXVzdCBiZSBncmVhdGVyIHRoYW4gMAQLJHQwNDQwMTQ0OTcJAQljbGFpbUNhbGMBBQR1c2VyBA91c2VyTmV3SW50ZXJlc3QIBQskdDA0NDAxNDQ5NwJfMQQUY2xhaW1BbW91bnRBdmFpbGFibGUIBQskdDA0NDAxNDQ5NwJfMgQPdXNlclRva2VuU3Rha2VkCAULJHQwNDQwMTQ0OTcCXzMEEHRvdGFsVG9rZW5TdGFrZWQIBQskdDA0NDAxNDQ5NwJfNAMJAGYCBQZhbW91bnQFD3VzZXJUb2tlblN0YWtlZAkAAgECIllvdSBjYW4ndCB1bnN0YWtlIG1vcmUgdGhhbiBzdGFrZWQJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUEdXNlcgUNa1VzZXJJbnRlcmVzdAUPdXNlck5ld0ludGVyZXN0CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFBHVzZXIFDmtVc2VyQXZhaWxhYmxlBRRjbGFpbUFtb3VudEF2YWlsYWJsZQkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQR1c2VyBRBrVXNlclRva2VuU3Rha2VkCQBlAgUPdXNlclRva2VuU3Rha2VkBQZhbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQIFEWtUb3RhbFRva2VuU3Rha2VkCQBlAgUQdG90YWxUb2tlblN0YWtlZAUGYW1vdW50BQNuaWwBaQEFY2xhaW0ABAR1c2VyCQClCAEIBQFpBmNhbGxlcgQLJHQwNDkxMzUwMDkJAQljbGFpbUNhbGMBBQR1c2VyBA91c2VyTmV3SW50ZXJlc3QIBQskdDA0OTEzNTAwOQJfMQQUY2xhaW1BbW91bnRBdmFpbGFibGUIBQskdDA0OTEzNTAwOQJfMgQPdXNlclRva2VuU3Rha2VkCAULJHQwNDkxMzUwMDkCXzMEEHRvdGFsVG9rZW5TdGFrZWQIBQskdDA0OTEzNTAwOQJfNAMJAAACBRRjbGFpbUFtb3VudEF2YWlsYWJsZQAACQACAQIQTm90aGluZyB0byBjbGFpbQkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQR1c2VyBQ1rVXNlckludGVyZXN0BQ91c2VyTmV3SW50ZXJlc3QJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUEdXNlcgUOa1VzZXJBdmFpbGFibGUAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIFFGNsYWltQW1vdW50QXZhaWxhYmxlCQDZBAEFB3Rva2VuSWQFA25pbAFpAQhzdGFrZU5GVAADCQECIT0CCQCQAwEIBQFpCHBheW1lbnRzAAAJAAIBAhRPbmUgcGF5bWVudCBleHBlY3RlZAQLJHQwNTM3NDU0NDkJAJQKAggJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAQJcG10QW1vdW50CAULJHQwNTM3NDU0NDkCXzEECnBtdEFzc2V0SWQIBQskdDA1Mzc0NTQ0OQJfMgQNcG10QXNzZXRJZFN0cgkBDGFzc2V0SWRUb1N0cgEFCnBtdEFzc2V0SWQDCQEBIQEJAQlpc0RlZmluZWQBCQCdCAIFBHRoaXMJAKwCAgUNcG10QXNzZXRJZFN0cgULa05GVENyZWF0ZWQJAAIBAg9Xcm9uZyBuZnQgYXNzZXQEBHVzZXIJAKUIAQgFAWkGY2FsbGVyBAskdDA1NjMwNTcyNQkBDGNsYWltQ2FsY05mdAEFBHVzZXIED3VzZXJOZXdJbnRlcmVzdAgFCyR0MDU2MzA1NzI1Al8xBBRjbGFpbUFtb3VudEF2YWlsYWJsZQgFCyR0MDU2MzA1NzI1Al8yBA11c2VyTkZUU3Rha2VkCAULJHQwNTYzMDU3MjUCXzMEDnRvdGFsTkZUU3Rha2VkCAULJHQwNTYzMDU3MjUCXzQJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUEdXNlcgUQa05GVFVzZXJJbnRlcmVzdAUPdXNlck5ld0ludGVyZXN0CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFBHVzZXIFFmtORlRVc2VyQXZhaWxhYmxlQ2xhaW0FFGNsYWltQW1vdW50QXZhaWxhYmxlCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFBHVzZXIFDmt1c2VyTkZUU3Rha2VkCQBkAgUNdXNlck5GVFN0YWtlZAUJcG10QW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCBQ9rTkZUVG90YWxTdGFrZWQJAGQCBQ50b3RhbE5GVFN0YWtlZAUJcG10QW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgkArAICBQR1c2VyAgFfBQ1wbXRBc3NldElkU3RyBRBrdXNlck5GVFN0YWtlZElkAAEFA25pbAFpAQp1bnN0YWtlTkZUAQJpZAQEdXNlcgkApQgBCAUBaQZjYWxsZXIDCQEJaXNEZWZpbmVkAQkAnQgCBQR0aGlzCQCsAgIJAKwCAgkArAICBQR1c2VyBQJpZAIBXwUQa3VzZXJORlRTdGFrZWRJZAkAAgECEVlvdSBkaWRuJ3Qgc3Rha2VkBAskdDA2MjUwNjM0NQkBDGNsYWltQ2FsY05mdAEFBHVzZXIED3VzZXJOZXdJbnRlcmVzdAgFCyR0MDYyNTA2MzQ1Al8xBBRjbGFpbUFtb3VudEF2YWlsYWJsZQgFCyR0MDYyNTA2MzQ1Al8yBA11c2VyTkZUU3Rha2VkCAULJHQwNjI1MDYzNDUCXzMEDnRvdGFsTkZUU3Rha2VkCAULJHQwNjI1MDYzNDUCXzQJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUEdXNlcgUQa05GVFVzZXJJbnRlcmVzdAUPdXNlck5ld0ludGVyZXN0CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFBHVzZXIFFmtORlRVc2VyQXZhaWxhYmxlQ2xhaW0FFGNsYWltQW1vdW50QXZhaWxhYmxlCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFBHVzZXIFDmt1c2VyTkZUU3Rha2VkCQBlAgUNdXNlck5GVFN0YWtlZAABCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQ9rTkZUVG90YWxTdGFrZWQJAGUCBQ50b3RhbE5GVFN0YWtlZAABCQDMCAIJAQtEZWxldGVFbnRyeQEJAKwCAgkArAICCQCsAgIFBHVzZXICAV8FAmlkBRBrdXNlck5GVFN0YWtlZElkCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgABCQDZBAEFAmlkBQNuaWwBaQEIY2xhaW1ORlQABAR1c2VyCQClCAEIBQFpBmNhbGxlcgQLJHQwNjc3OTY4NzQJAQxjbGFpbUNhbGNOZnQBBQR1c2VyBA91c2VyTmV3SW50ZXJlc3QIBQskdDA2Nzc5Njg3NAJfMQQUY2xhaW1BbW91bnRBdmFpbGFibGUIBQskdDA2Nzc5Njg3NAJfMgQNdXNlck5GVFN0YWtlZAgFCyR0MDY3Nzk2ODc0Al8zBA50b3RhbE5GVFN0YWtlZAgFCyR0MDY3Nzk2ODc0Al80AwkAAAIFFGNsYWltQW1vdW50QXZhaWxhYmxlAAAJAAIBAhBOb3RoaW5nIHRvIGNsYWltCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFBHVzZXIFEGtORlRVc2VySW50ZXJlc3QFD3VzZXJOZXdJbnRlcmVzdAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQR1c2VyBRZrTkZUVXNlckF2YWlsYWJsZUNsYWltAAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyBRRjbGFpbUFtb3VudEF2YWlsYWJsZQkA2QQBBQd0b2tlbklkBQNuaWwBaQEIaXNzdWVORlQDCHVzZXJBZGRyBG5hbWUFZGVzY3IJAQt2YWx1ZU9yRWxzZQIJAQtpc0FkbWluQ2FsbAEFAWkEBXVBZGRyCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQUIdXNlckFkZHICEldyb25nIHVzZXIgYWRkcmVzcwQFaXNzdWUJAMIIBQUEbmFtZQUFZGVzY3IAAQABBwQFbmZ0SWQJALgIAQUFaXNzdWUJAMwIAgUFaXNzdWUJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQDYBAEFBW5mdElkBQtrTkZUQ3JlYXRlZAUIdXNlckFkZHIJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUFdUFkZHIAAQUFbmZ0SWQFA25pbAFpAQdhaXJkcm9wAAkBC3ZhbHVlT3JFbHNlAgkBC2lzQWRtaW5DYWxsAQUBaQMJAQIhPQIJAJADAQgFAWkIcGF5bWVudHMAAQkAAgECFE9uZSBwYXltZW50IGV4cGVjdGVkBAskdDA3Njc0Nzc0OQkAlAoCCAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAgJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkBAlwbXRBbW91bnQIBQskdDA3Njc0Nzc0OQJfMQQKcG10QXNzZXRJZAgFCyR0MDc2NzQ3NzQ5Al8yAwkBAiE9AgUKcG10QXNzZXRJZAkA2QQBBQd0b2tlbklkCQACAQITV3JvbmcgcGF5bWVudCBhc3NldAQNcGVyY2VudEZvck5GVAkBEUBleHRyTmF0aXZlKDEwNTApAgUEdGhpcwUOa1BlcnNlbnRGb3JORlQEEHRvdGFsVG9rZW5TdGFrZWQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwURa1RvdGFsVG9rZW5TdGFrZWQAAAQOdG90YWxORlRTdGFrZWQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUPa05GVFRvdGFsU3Rha2VkAAAEC2N1ckludGVyZXN0CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFCWtJbnRlcmVzdAAABA5jdXJORlRJbnRlcmVzdAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQxrTkZUSW50ZXJlc3QAAAQLJHQwODE3MjgzNDcDCQAAAgUOdG90YWxORlRTdGFrZWQAAAkAlAoCAAAFCXBtdEFtb3VudAQEbmZ0UAkAawMFCXBtdEFtb3VudAUNcGVyY2VudEZvck5GVABkCQCUCgIFBG5mdFAJAGUCBQlwbXRBbW91bnQFBG5mdFAEBnBtdE5GVAgFCyR0MDgxNzI4MzQ3Al8xBAhwbXRUb2tlbggFCyR0MDgxNzI4MzQ3Al8yBAtpbnRlcmVzdE5ldwMJAGYCBRB0b3RhbFRva2VuU3Rha2VkAAAJAGQCBQtjdXJJbnRlcmVzdAkAawMFCHBtdFRva2VuBQZTQ0FMRTgFEHRvdGFsVG9rZW5TdGFrZWQFC2N1ckludGVyZXN0BA5pbnRlcmVzdE5GVE5ldwMJAGYCBQ50b3RhbE5GVFN0YWtlZAAACQBkAgUOY3VyTkZUSW50ZXJlc3QJAGsDBQZwbXRORlQFBlNDQUxFOAUOdG90YWxORlRTdGFrZWQFDmN1ck5GVEludGVyZXN0CQDMCAIJAQxJbnRlZ2VyRW50cnkCBQlrSW50ZXJlc3QFC2ludGVyZXN0TmV3CQDMCAIJAQxJbnRlZ2VyRW50cnkCBQxrTkZUSW50ZXJlc3QFDmludGVyZXN0TkZUTmV3BQNuaWwBAnR4AQZ2ZXJpZnkABBNtdWx0aVNpZ25lZEJ5QWRtaW5zBBJhZG1pblB1YktleTFTaWduZWQDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAABQhhZG1pbjFQSwABAAAEEmFkbWluUHViS2V5MlNpZ25lZAMJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAEFCGFkbWluMlBLAAEAAAQSYWRtaW5QdWJLZXkzU2lnbmVkAwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAgUIYWRtaW4zUEsAAQAACQBnAgkAZAIJAGQCBRJhZG1pblB1YktleTFTaWduZWQFEmFkbWluUHViS2V5MlNpZ25lZAUSYWRtaW5QdWJLZXkzU2lnbmVkAAIEByRtYXRjaDAFAnR4AwkAAQIFByRtYXRjaDACF0ludm9rZVNjcmlwdFRyYW5zYWN0aW9uBANpbnYFByRtYXRjaDAEBmlzU2VsZgkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAgFAnR4D3NlbmRlclB1YmxpY0tleQQKaXNSaWdodEZlZQMJAAACCAUDaW52A2ZlZQCg9zYJAAACCAUDaW52CmZlZUFzc2V0SWQFBHVuaXQHBAppc0luaXRDYWxsCQAAAggFA2ludghmdW5jdGlvbgIEaW5pdAQMaXNub1BheW1lbnRzCQAAAgkAkAMBCAUDaW52CHBheW1lbnRzAAADAwMDBQppc1JpZ2h0RmVlBQppc0luaXRDYWxsBwUGaXNTZWxmBwUMaXNub1BheW1lbnRzBwYFE211bHRpU2lnbmVkQnlBZG1pbnMFE211bHRpU2lnbmVkQnlBZG1pbnPlenIK", "height": 2730190, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: J5SDjSBRijMgCTmtGHGSL1xvahTHYiUBVjDSDLS1kHLB Next: JCcveBURngrSofoCxyUV2Ki6TcFZu1x6FkUHCdQXfdt7 Diff:
OldNewDifferences
9494
9595
9696 @Callable(x)
97-func init (v,P,Q,R,S) = valueOrElse(y(x), if (!(isDefined(assetInfo(fromBase58String(v)))))
98- then throw("asset id is not correct asset id")
99- else if ((size(fromBase58String(P)) != 32))
100- then throw("group1Admin1PubKey is not correct")
101- else if ((size(fromBase58String(Q)) != 32))
97+func init (v,P,Q,R,S) = valueOrElse(y(x), if (isDefined(getString(this, n)))
98+ then throw("DApp already inited")
99+ else if (!(isDefined(assetInfo(fromBase58String(v)))))
100+ then throw("asset id is not correct asset id")
101+ else if ((size(fromBase58String(P)) != 32))
102102 then throw("group1Admin1PubKey is not correct")
103- else if ((size(fromBase58String(R)) != 32))
103+ else if ((size(fromBase58String(Q)) != 32))
104104 then throw("group1Admin1PubKey is not correct")
105- else [StringEntry(n, v), StringEntry(p, P), StringEntry(q, Q), StringEntry(r, R), IntegerEntry(o, S)])
105+ else if ((size(fromBase58String(R)) != 32))
106+ then throw("group1Admin1PubKey is not correct")
107+ else [StringEntry(n, v), StringEntry(p, P), StringEntry(q, Q), StringEntry(r, R), IntegerEntry(o, S)])
106108
107109
108110
222224 let am = valueOrErrorMessage(addressFromString(aj), "Wrong user address")
223225 let an = Issue(ak, al, 1, 1, false)
224226 let ao = calculateAssetId(an)
225-[StringEntry((toBase58String(ao) + m), aj), ScriptTransfer(am, 1, ao)]
227+[an, StringEntry((toBase58String(ao) + m), aj), ScriptTransfer(am, 1, ao)]
226228 })
227229
228230
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 100000000
55
66 let b = "interest"
77
88 let c = "_userInterest"
99
1010 let d = "_userAvailableClaim"
1111
1212 let e = "_userTokenStaked"
1313
1414 let f = "totalTokenStaked"
1515
1616 let g = "NFTInterest"
1717
1818 let h = "_NFTUserInterest"
1919
2020 let i = "_NFTUserAvailableClaim"
2121
2222 let j = "NFTTotalStaked"
2323
2424 let k = "_userNFTStaked"
2525
2626 let l = "_userNFTStakedId"
2727
2828 let m = "_NFTCreated"
2929
3030 let n = "tokenId"
3131
3232 let o = "percentForNFT"
3333
3434 let p = "admin_pub_1"
3535
3636 let q = "admin_pub_2"
3737
3838 let r = "admin_pub_3"
3939
4040 let s = fromBase58String(valueOrErrorMessage(getString(this, p), "Can't get admin1PK"))
4141
4242 let t = fromBase58String(valueOrErrorMessage(getString(this, q), "Can't get admin2PK"))
4343
4444 let u = fromBase58String(valueOrErrorMessage(getString(this, r), "Can't get operatorPK"))
4545
4646 let v = valueOrErrorMessage(getString(this, n), "Can't get staking token")
4747
4848 func w (x) = if (containsElement([s, t, u], x.callerPublicKey))
4949 then unit
5050 else throw("Only admin can call this function")
5151
5252
5353 func y (x) = if ((x.caller == this))
5454 then unit
5555 else throw("Only contract itself can call this function")
5656
5757
5858 func z (A) = {
5959 let B = A
6060 if ($isInstanceOf(B, "ByteVector"))
6161 then {
6262 let C = B
6363 toBase58String(C)
6464 }
6565 else if ($isInstanceOf(B, "Unit"))
6666 then {
6767 let D = B
6868 "WAVES"
6969 }
7070 else throw("Not Asset id")
7171 }
7272
7373
7474 func E (F) = {
7575 let G = valueOrElse(getInteger(this, f), 0)
7676 let H = valueOrElse(getInteger(this, b), 0)
7777 let I = valueOrElse(getInteger(this, (F + d)), 0)
7878 let J = valueOrElse(getInteger(this, (F + c)), H)
7979 let K = valueOrElse(getInteger(this, (F + e)), 0)
8080 let L = fraction(K, (H - J), a)
8181 $Tuple4(H, (L + I), K, G)
8282 }
8383
8484
8585 func M (F) = {
8686 let N = valueOrElse(getInteger(this, j), 0)
8787 let H = valueOrElse(getInteger(this, g), 0)
8888 let I = valueOrElse(getInteger(this, (F + i)), 0)
8989 let J = valueOrElse(getInteger(this, (F + h)), H)
9090 let O = valueOrElse(getInteger(this, (F + k)), 0)
9191 let L = fraction(O, (H - J), a)
9292 $Tuple4(H, (L + I), O, N)
9393 }
9494
9595
9696 @Callable(x)
97-func init (v,P,Q,R,S) = valueOrElse(y(x), if (!(isDefined(assetInfo(fromBase58String(v)))))
98- then throw("asset id is not correct asset id")
99- else if ((size(fromBase58String(P)) != 32))
100- then throw("group1Admin1PubKey is not correct")
101- else if ((size(fromBase58String(Q)) != 32))
97+func init (v,P,Q,R,S) = valueOrElse(y(x), if (isDefined(getString(this, n)))
98+ then throw("DApp already inited")
99+ else if (!(isDefined(assetInfo(fromBase58String(v)))))
100+ then throw("asset id is not correct asset id")
101+ else if ((size(fromBase58String(P)) != 32))
102102 then throw("group1Admin1PubKey is not correct")
103- else if ((size(fromBase58String(R)) != 32))
103+ else if ((size(fromBase58String(Q)) != 32))
104104 then throw("group1Admin1PubKey is not correct")
105- else [StringEntry(n, v), StringEntry(p, P), StringEntry(q, Q), StringEntry(r, R), IntegerEntry(o, S)])
105+ else if ((size(fromBase58String(R)) != 32))
106+ then throw("group1Admin1PubKey is not correct")
107+ else [StringEntry(n, v), StringEntry(p, P), StringEntry(q, Q), StringEntry(r, R), IntegerEntry(o, S)])
106108
107109
108110
109111 @Callable(x)
110112 func stake () = if ((size(x.payments) != 1))
111113 then throw("One payment expected")
112114 else {
113115 let T = $Tuple2(x.payments[0].amount, x.payments[0].assetId)
114116 let U = T._1
115117 let V = T._2
116118 if ((V != fromBase58String(v)))
117119 then throw("Wrong payment asset")
118120 else {
119121 let F = toString(x.caller)
120122 let W = E(F)
121123 let X = W._1
122124 let Y = W._2
123125 let K = W._3
124126 let G = W._4
125127 [IntegerEntry((F + c), X), IntegerEntry((F + d), Y), IntegerEntry((F + e), (K + U)), IntegerEntry(f, (G + U))]
126128 }
127129 }
128130
129131
130132
131133 @Callable(x)
132134 func unstake (Z) = {
133135 let F = toString(x.caller)
134136 if ((0 >= Z))
135137 then throw("Amount must be greater than 0")
136138 else {
137139 let aa = E(F)
138140 let X = aa._1
139141 let Y = aa._2
140142 let K = aa._3
141143 let G = aa._4
142144 if ((Z > K))
143145 then throw("You can't unstake more than staked")
144146 else [IntegerEntry((F + c), X), IntegerEntry((F + d), Y), IntegerEntry((F + e), (K - Z)), IntegerEntry(f, (G - Z))]
145147 }
146148 }
147149
148150
149151
150152 @Callable(x)
151153 func claim () = {
152154 let F = toString(x.caller)
153155 let ab = E(F)
154156 let X = ab._1
155157 let Y = ab._2
156158 let K = ab._3
157159 let G = ab._4
158160 if ((Y == 0))
159161 then throw("Nothing to claim")
160162 else [IntegerEntry((F + c), X), IntegerEntry((F + d), 0), ScriptTransfer(x.caller, Y, fromBase58String(v))]
161163 }
162164
163165
164166
165167 @Callable(x)
166168 func stakeNFT () = if ((size(x.payments) != 0))
167169 then throw("One payment expected")
168170 else {
169171 let ac = $Tuple2(x.payments[0].amount, x.payments[0].assetId)
170172 let U = ac._1
171173 let V = ac._2
172174 let ad = z(V)
173175 if (!(isDefined(getString(this, (ad + m)))))
174176 then throw("Wrong nft asset")
175177 else {
176178 let F = toString(x.caller)
177179 let ae = M(F)
178180 let X = ae._1
179181 let Y = ae._2
180182 let af = ae._3
181183 let ag = ae._4
182184 [IntegerEntry((F + h), X), IntegerEntry((F + i), Y), IntegerEntry((F + k), (af + U)), IntegerEntry(j, (ag + U)), IntegerEntry((((F + "_") + ad) + l), 1)]
183185 }
184186 }
185187
186188
187189
188190 @Callable(x)
189191 func unstakeNFT (C) = {
190192 let F = toString(x.caller)
191193 if (isDefined(getString(this, (((F + C) + "_") + l))))
192194 then throw("You didn't staked")
193195 else {
194196 let ah = M(F)
195197 let X = ah._1
196198 let Y = ah._2
197199 let af = ah._3
198200 let ag = ah._4
199201 [IntegerEntry((F + h), X), IntegerEntry((F + i), Y), IntegerEntry((F + k), (af - 1)), IntegerEntry(j, (ag - 1)), DeleteEntry((((F + "_") + C) + l)), ScriptTransfer(x.caller, 1, fromBase58String(C))]
200202 }
201203 }
202204
203205
204206
205207 @Callable(x)
206208 func claimNFT () = {
207209 let F = toString(x.caller)
208210 let ai = M(F)
209211 let X = ai._1
210212 let Y = ai._2
211213 let af = ai._3
212214 let ag = ai._4
213215 if ((Y == 0))
214216 then throw("Nothing to claim")
215217 else [IntegerEntry((F + h), X), IntegerEntry((F + i), 0), ScriptTransfer(x.caller, Y, fromBase58String(v))]
216218 }
217219
218220
219221
220222 @Callable(x)
221223 func issueNFT (aj,ak,al) = valueOrElse(w(x), {
222224 let am = valueOrErrorMessage(addressFromString(aj), "Wrong user address")
223225 let an = Issue(ak, al, 1, 1, false)
224226 let ao = calculateAssetId(an)
225-[StringEntry((toBase58String(ao) + m), aj), ScriptTransfer(am, 1, ao)]
227+[an, StringEntry((toBase58String(ao) + m), aj), ScriptTransfer(am, 1, ao)]
226228 })
227229
228230
229231
230232 @Callable(x)
231233 func airdrop () = valueOrElse(w(x), if ((size(x.payments) != 1))
232234 then throw("One payment expected")
233235 else {
234236 let ap = $Tuple2(x.payments[0].amount, x.payments[0].assetId)
235237 let U = ap._1
236238 let V = ap._2
237239 if ((V != fromBase58String(v)))
238240 then throw("Wrong payment asset")
239241 else {
240242 let aq = getIntegerValue(this, o)
241243 let G = valueOrElse(getInteger(this, f), 0)
242244 let ag = valueOrElse(getInteger(this, j), 0)
243245 let H = valueOrElse(getInteger(this, b), 0)
244246 let ar = valueOrElse(getInteger(this, g), 0)
245247 let as = if ((ag == 0))
246248 then $Tuple2(0, U)
247249 else {
248250 let at = fraction(U, aq, 100)
249251 $Tuple2(at, (U - at))
250252 }
251253 let au = as._1
252254 let av = as._2
253255 let aw = if ((G > 0))
254256 then (H + fraction(av, a, G))
255257 else H
256258 let ax = if ((ag > 0))
257259 then (ar + fraction(au, a, ag))
258260 else ar
259261 [IntegerEntry(b, aw), IntegerEntry(g, ax)]
260262 }
261263 })
262264
263265
264266 @Verifier(ay)
265267 func az () = {
266268 let aA = {
267269 let aB = if (sigVerify(ay.bodyBytes, ay.proofs[0], s))
268270 then 1
269271 else 0
270272 let aC = if (sigVerify(ay.bodyBytes, ay.proofs[1], t))
271273 then 1
272274 else 0
273275 let aD = if (sigVerify(ay.bodyBytes, ay.proofs[2], u))
274276 then 1
275277 else 0
276278 (((aB + aC) + aD) >= 2)
277279 }
278280 let B = ay
279281 if ($isInstanceOf(B, "InvokeScriptTransaction"))
280282 then {
281283 let aE = B
282284 let aF = sigVerify(ay.bodyBytes, ay.proofs[0], ay.senderPublicKey)
283285 let aG = if ((aE.fee == 900000))
284286 then (aE.feeAssetId == unit)
285287 else false
286288 let aH = (aE.function == "init")
287289 let aI = (size(aE.payments) == 0)
288290 if (if (if (if (aG)
289291 then aH
290292 else false)
291293 then aF
292294 else false)
293295 then aI
294296 else false)
295297 then true
296298 else aA
297299 }
298300 else aA
299301 }
300302

github/deemru/w8io/169f3d6 
61.35 ms