tx · 5dSyRTeK8fmHAMxrT2jEyWX8uJW41UvbJExcpAsUZGU4

3N2PjXqef29HexCE7PeGZa9eRjS2jVeaFe4:  -0.01700000 Waves

2023.09.15 16:46 [2756590] smart account 3N2PjXqef29HexCE7PeGZa9eRjS2jVeaFe4 > SELF 0.00000000 Waves

{ "type": 13, "id": "5dSyRTeK8fmHAMxrT2jEyWX8uJW41UvbJExcpAsUZGU4", "fee": 1700000, "feeAssetId": null, "timestamp": 1694785604355, "version": 2, "chainId": 84, "sender": "3N2PjXqef29HexCE7PeGZa9eRjS2jVeaFe4", "senderPublicKey": "DU1U4j8FqHUMRr9WgfF3yo67ULEFkjp7dtMWMpjBK1ar", "proofs": [ "5pAnkYsSkFcLuWR5YFd9LXyhQ1s4vEV4i2XxoKAQjYy6vu7QTER6Neq258eHWJhzr412pQTxuXRyf2BCqY1Vd3cz", "53AeZ6HHMoKdmifKskMLMXz145q12f8HCXhuFCHeHmDr5Q1MUeVJspLFXpXwetzUoX7DmM56gRRXibVMfkX5bjj6" ], "script": "base64:BgI0CAISABIDCgEIEgMKAQgSBwoFCAgICAESABIDCgEBEgASABIDCgEIEgUKAwgICBIAEgASACMABlNDQUxFOACAwtcvAA1QRVJDRU5UX1NDQUxFAJBOAAlTRVBBUkFUT1ICAl9fAAlrSW50ZXJlc3QCCGludGVyZXN0AA1rVXNlckludGVyZXN0Ag1fdXNlckludGVyZXN0AA5rVXNlckF2YWlsYWJsZQITX3VzZXJBdmFpbGFibGVDbGFpbQAQa1VzZXJUb2tlblN0YWtlZAIQX3VzZXJUb2tlblN0YWtlZAARa1RvdGFsVG9rZW5TdGFrZWQCEHRvdGFsVG9rZW5TdGFrZWQADGtORlRJbnRlcmVzdAILTkZUSW50ZXJlc3QAEGtORlRVc2VySW50ZXJlc3QCEF9ORlRVc2VySW50ZXJlc3QAFmtORlRVc2VyQXZhaWxhYmxlQ2xhaW0CFl9ORlRVc2VyQXZhaWxhYmxlQ2xhaW0AD2tORlRUb3RhbFN0YWtlZAIOTkZUVG90YWxTdGFrZWQADmt1c2VyTkZUU3Rha2VkAg5fdXNlck5GVFN0YWtlZAAQa3VzZXJORlRTdGFrZWRJZAIQX3VzZXJORlRTdGFrZWRJZAALa05GVENyZWF0ZWQCC19ORlRDcmVhdGVkAAxrTGFzdEFpcmRyb3ACDF9sYXN0QWlyZHJvcAAIa1Rva2VuaWQCB3Rva2VuSWQADmtQZXJzZW50Rm9yTkZUAg1wZXJjZW50Rm9yTkZUAA9rTkZUQ3JlYXRlZExpc3QCDm5mdENyZWF0ZWRMaXN0AAdrQWN0aXZlAgZhY3RpdmUACWtBZG1pbjFQSwILYWRtaW5fcHViXzEACWtBZG1pbjJQSwILYWRtaW5fcHViXzIACWtBZG1pbjNQSwILYWRtaW5fcHViXzMACGFkbWluMVBLCQDZBAEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQR0aGlzBQlrQWRtaW4xUEsCEkNhbid0IGdldCBhZG1pbjFQSwAIYWRtaW4yUEsJANkEAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFBHRoaXMFCWtBZG1pbjJQSwISQ2FuJ3QgZ2V0IGFkbWluMlBLAAhhZG1pbjNQSwkA2QQBCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUEdGhpcwUJa0FkbWluM1BLAhRDYW4ndCBnZXQgb3BlcmF0b3JQSwAHdG9rZW5JZAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFBHRoaXMFCGtUb2tlbmlkAhdDYW4ndCBnZXQgc3Rha2luZyB0b2tlbgELaXNBZG1pbkNhbGwBAWkDCQEPY29udGFpbnNFbGVtZW50AgkAzAgCBQhhZG1pbjFQSwkAzAgCBQhhZG1pbjJQSwkAzAgCBQhhZG1pbjNQSwUDbmlsCAUBaQ9jYWxsZXJQdWJsaWNLZXkFBHVuaXQJAAIBAiFPbmx5IGFkbWluIGNhbiBjYWxsIHRoaXMgZnVuY3Rpb24BCmlzU2VsZkNhbGwBAWkDCQAAAggFAWkGY2FsbGVyBQR0aGlzBQR1bml0CQACAQIrT25seSBjb250cmFjdCBpdHNlbGYgY2FuIGNhbGwgdGhpcyBmdW5jdGlvbgEIaXNBY3RpdmUAAwkBC3ZhbHVlT3JFbHNlAgkAmwgCBQR0aGlzBQdrQWN0aXZlBgUEdW5pdAkAAgECH0RBcHAgaXMgaW5hY3RpdmUgYXQgdGhpcyBtb21lbnQBDGFzc2V0SWRUb1N0cgEHYXNzZXRJZAQHJG1hdGNoMAUHYXNzZXRJZAMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAJpZAUHJG1hdGNoMAkA2AQBBQJpZAMJAAECBQckbWF0Y2gwAgRVbml0BAV3YXZlcwUHJG1hdGNoMAIFV0FWRVMJAAIBAgxOb3QgQXNzZXQgaWQBCWNsYWltQ2FsYwEEdXNlcgQQdG90YWxUb2tlblN0YWtlZAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBRFrVG90YWxUb2tlblN0YWtlZAAABAtjdXJJbnRlcmVzdAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQlrSW50ZXJlc3QAAAQRYXZhaWxhYmxlRm9yQ2xhaW0JAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkArAICBQR1c2VyBQ5rVXNlckF2YWlsYWJsZQAABAx1c2VySW50ZXJlc3QJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkArAICBQR1c2VyBQ1rVXNlckludGVyZXN0BQtjdXJJbnRlcmVzdAQPdXNlclRva2VuU3Rha2VkCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAKwCAgUEdXNlcgUQa1VzZXJUb2tlblN0YWtlZAAABAtjbGFpbUFtb3VudAkAawMFD3VzZXJUb2tlblN0YWtlZAkAZQIFC2N1ckludGVyZXN0BQx1c2VySW50ZXJlc3QFBlNDQUxFOAkAlgoEBQtjdXJJbnRlcmVzdAkAZAIFC2NsYWltQW1vdW50BRFhdmFpbGFibGVGb3JDbGFpbQUPdXNlclRva2VuU3Rha2VkBRB0b3RhbFRva2VuU3Rha2VkAQxjbGFpbUNhbGNOZnQBBHVzZXIEDnRvdGFsTmZ0U3Rha2VkCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFD2tORlRUb3RhbFN0YWtlZAAABAtjdXJJbnRlcmVzdAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQxrTkZUSW50ZXJlc3QAAAQRYXZhaWxhYmxlRm9yQ2xhaW0JAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkArAICBQR1c2VyBRZrTkZUVXNlckF2YWlsYWJsZUNsYWltAAAEDHVzZXJJbnRlcmVzdAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQCsAgIFBHVzZXIFEGtORlRVc2VySW50ZXJlc3QFC2N1ckludGVyZXN0BA11c2VyTmZ0U3Rha2VkCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAKwCAgUEdXNlcgUOa3VzZXJORlRTdGFrZWQAAAQLY2xhaW1BbW91bnQJAGgCBQ11c2VyTmZ0U3Rha2VkCQBlAgULY3VySW50ZXJlc3QFDHVzZXJJbnRlcmVzdAkAlgoEBQtjdXJJbnRlcmVzdAkAZAIFC2NsYWltQW1vdW50BRFhdmFpbGFibGVGb3JDbGFpbQUNdXNlck5mdFN0YWtlZAUOdG90YWxOZnRTdGFrZWQBDGNhbGNUb2tlbkFwcgAEC2xhc3RBaXJkcm9wCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFDGtMYXN0QWlyZHJvcAAABBB0b3RhbFRva2VuU3Rha2VkCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFEWtUb3RhbFRva2VuU3Rha2VkAAAEDnRvdGFsTkZUU3Rha2VkCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFD2tORlRUb3RhbFN0YWtlZAAABA1wZXJjZW50Rm9yTkZUCQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzBQ5rUGVyc2VudEZvck5GVAQMdG9rZW5BaXJkcm9wAwkAAAIFDnRvdGFsTkZUU3Rha2VkAAAFC2xhc3RBaXJkcm9wCQBrAwULbGFzdEFpcmRyb3AJAJcDAQkAzAgCBQ1wZXJjZW50Rm9yTkZUCQDMCAIJAGgCBQ50b3RhbE5GVFN0YWtlZAAKBQNuaWwAZAkAaAIJAGsDBQx0b2tlbkFpcmRyb3AFDVBFUkNFTlRfU0NBTEUFEHRvdGFsVG9rZW5TdGFrZWQANAEQZ2V0VXNlclN0YWtlZE5GVAEEdXNlcgoBBmZvck5mdAIEdU5GVAVuZnRJZAMJAQlpc0RlZmluZWQBCQCbCAIFBHRoaXMJAKwCAgkArAICCQCsAgIFBHVzZXICAV8FBW5mdElkBRBrdXNlck5GVFN0YWtlZElkCQDNCAIFBHVORlQFBW5mdElkBQR1TkZUBAduZnRzU3RyCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMFD2tORlRDcmVhdGVkTGlzdAIABAduZnRMaXN0AwkAAAIFB25mdHNTdHICAAUDbmlsCQC1CQIFB25mdHNTdHIFCVNFUEFSQVRPUgQIdXNlck5mdHMKAAIkbAUHbmZ0TGlzdAoAAiRzCQCQAwEFAiRsCgAFJGFjYzAFA25pbAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEGZm9yTmZ0AgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhNMaXN0IHNpemUgZXhjZWVkcyA1CQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQkAuQkCBQh1c2VyTmZ0cwIBLA0BaQEQZ2V0U3RhdHNSRUFET05MWQAEA2FwcgkBDGNhbGNUb2tlbkFwcgAEEHRvdGFsVG9rZW5TdGFrZWQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwURa1RvdGFsVG9rZW5TdGFrZWQAAAQOdG90YWxOZnRTdGFrZWQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUPa05GVFRvdGFsU3Rha2VkAAAJAJQKAgUDbmlsCQC5CQIJAMwIAgIGJWQlZCVkCQDMCAIJAKQDAQUDYXByCQDMCAIJAKQDAQUQdG90YWxUb2tlblN0YWtlZAkAzAgCCQCkAwEFDnRvdGFsTmZ0U3Rha2VkBQNuaWwFCVNFUEFSQVRPUgFpARZnZXRTdGF0c0J5VXNlclJFQURPTkxZAQR1c2VyBAh1c2VyQWRkcgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEFBHVzZXICEldyb25nIHVzZXIgYWRkcmVzcwQLJHQwNDQ5NDQ1OTAJAQljbGFpbUNhbGMBBQR1c2VyBA91c2VyTmV3SW50ZXJlc3QIBQskdDA0NDk0NDU5MAJfMQQUY2xhaW1BbW91bnRBdmFpbGFibGUIBQskdDA0NDk0NDU5MAJfMgQPdXNlclRva2VuU3Rha2VkCAULJHQwNDQ5NDQ1OTACXzMEEHRvdGFsVG9rZW5TdGFrZWQIBQskdDA0NDk0NDU5MAJfNAQLJHQwNDU5MzQ2OTQJAQxjbGFpbUNhbGNOZnQBBQR1c2VyBBJ1c2VyTmV3SW50ZXJlc3RORlQIBQskdDA0NTkzNDY5NAJfMQQXY2xhaW1BbW91bnRBdmFpbGFibGVORlQIBQskdDA0NTkzNDY5NAJfMgQNdXNlck5GVFN0YWtlZAgFCyR0MDQ1OTM0Njk0Al8zBA50b3RhbE5GVFN0YWtlZAgFCyR0MDQ1OTM0Njk0Al80BBB1c2VyVG9rZW5CYWxhbmNlCQDwBwIFCHVzZXJBZGRyCQDZBAEFB3Rva2VuSWQECHVzZXJOZnRzCQEQZ2V0VXNlclN0YWtlZE5GVAEFBHVzZXIJAJQKAgUDbmlsCQC5CQIJAMwIAgIKJWQlZCVkJWQlcwkAzAgCCQCkAwEFEHVzZXJUb2tlbkJhbGFuY2UJAMwIAgkApAMBBQ91c2VyVG9rZW5TdGFrZWQJAMwIAgkApAMBBRRjbGFpbUFtb3VudEF2YWlsYWJsZQkAzAgCCQCkAwEFF2NsYWltQW1vdW50QXZhaWxhYmxlTkZUCQDMCAIFCHVzZXJOZnRzBQNuaWwFCVNFUEFSQVRPUgFpARRnZXRVc2VyU3RhdHNSRUFET05MWQEEdXNlcgQDYXByCQEMY2FsY1Rva2VuQXByAAQLJHQwNTEzOTU3MzgDCQAAAgUEdXNlcgIACQCWCgQAAAAAAAAAAAQIdXNlckFkZHIJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBBQR1c2VyAhJXcm9uZyB1c2VyIGFkZHJlc3MECyR0MDUzNzY1NDcyCQEJY2xhaW1DYWxjAQUEdXNlcgQPdXNlck5ld0ludGVyZXN0CAULJHQwNTM3NjU0NzICXzEEFGNsYWltQW1vdW50QXZhaWxhYmxlCAULJHQwNTM3NjU0NzICXzIED3VzZXJUb2tlblN0YWtlZAgFCyR0MDUzNzY1NDcyAl8zBBB0b3RhbFRva2VuU3Rha2VkCAULJHQwNTM3NjU0NzICXzQECyR0MDU0Nzk1NTgwCQEMY2xhaW1DYWxjTmZ0AQUEdXNlcgQSdXNlck5ld0ludGVyZXN0TkZUCAULJHQwNTQ3OTU1ODACXzEEF2NsYWltQW1vdW50QXZhaWxhYmxlTkZUCAULJHQwNTQ3OTU1ODACXzIEDXVzZXJORlRTdGFrZWQIBQskdDA1NDc5NTU4MAJfMwQOdG90YWxORlRTdGFrZWQIBQskdDA1NDc5NTU4MAJfNAQLdXNlckJhbGFuY2UJAPAHAgUIdXNlckFkZHIJANkEAQUHdG9rZW5JZAkAlgoEBQt1c2VyQmFsYW5jZQUPdXNlclRva2VuU3Rha2VkBRRjbGFpbUFtb3VudEF2YWlsYWJsZQUXY2xhaW1BbW91bnRBdmFpbGFibGVORlQEEHVzZXJUb2tlbkJhbGFuY2UIBQskdDA1MTM5NTczOAJfMQQPdXNlclRva2VuU3Rha2VkCAULJHQwNTEzOTU3MzgCXzIEFGNsYWltQW1vdW50QXZhaWxhYmxlCAULJHQwNTEzOTU3MzgCXzMEF2NsYWltQW1vdW50QXZhaWxhYmxlTkZUCAULJHQwNTEzOTU3MzgCXzQJAJQKAgUDbmlsCQC5CQIJAMwIAgIKJWQlZCVkJWQlZAkAzAgCCQCkAwEFA2FwcgkAzAgCCQCkAwEFEHVzZXJUb2tlbkJhbGFuY2UJAMwIAgkApAMBBQ91c2VyVG9rZW5TdGFrZWQJAMwIAgkApAMBBRRjbGFpbUFtb3VudEF2YWlsYWJsZQkAzAgCCQCkAwEFF2NsYWltQW1vdW50QXZhaWxhYmxlTkZUBQNuaWwFCVNFUEFSQVRPUgFpAQRpbml0BQd0b2tlbklkB2FkbTFQdWIHYWRtMlB1YgdhZG0zUHViDHRvTkZUUGVyY2VudAkBC3ZhbHVlT3JFbHNlAgkBCmlzU2VsZkNhbGwBBQFpAwkBCWlzRGVmaW5lZAEJAJ0IAgUEdGhpcwUIa1Rva2VuaWQJAAIBAhNEQXBwIGFscmVhZHkgaW5pdGVkAwkBASEBCQEJaXNEZWZpbmVkAQkA7AcBCQDZBAEFB3Rva2VuSWQJAAIBAiBhc3NldCBpZCBpcyBub3QgY29ycmVjdCBhc3NldCBpZAMJAQIhPQIJAMgBAQkA2QQBBQdhZG0xUHViACAJAAIBAiFncm91cDFBZG1pbjFQdWJLZXkgaXMgbm90IGNvcnJlY3QDCQECIT0CCQDIAQEJANkEAQUHYWRtMlB1YgAgCQACAQIhZ3JvdXAxQWRtaW4xUHViS2V5IGlzIG5vdCBjb3JyZWN0AwkBAiE9AgkAyAEBCQDZBAEFB2FkbTNQdWIAIAkAAgECIWdyb3VwMUFkbWluMVB1YktleSBpcyBub3QgY29ycmVjdAkAzAgCCQELU3RyaW5nRW50cnkCBQhrVG9rZW5pZAUHdG9rZW5JZAkAzAgCCQELU3RyaW5nRW50cnkCBQlrQWRtaW4xUEsFB2FkbTFQdWIJAMwIAgkBC1N0cmluZ0VudHJ5AgUJa0FkbWluMlBLBQdhZG0yUHViCQDMCAIJAQtTdHJpbmdFbnRyeQIFCWtBZG1pbjNQSwUHYWRtM1B1YgkAzAgCCQEMSW50ZWdlckVudHJ5AgUOa1BlcnNlbnRGb3JORlQFDHRvTkZUUGVyY2VudAUDbmlsAWkBBXN0YWtlAAkBC3ZhbHVlT3JFbHNlAgkBCGlzQWN0aXZlAAMJAQIhPQIJAJADAQgFAWkIcGF5bWVudHMAAQkAAgECFE9uZSBwYXltZW50IGV4cGVjdGVkBAskdDA2OTQxNzAxNgkAlAoCCAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAgJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkBAlwbXRBbW91bnQIBQskdDA2OTQxNzAxNgJfMQQKcG10QXNzZXRJZAgFCyR0MDY5NDE3MDE2Al8yAwkBAiE9AgUKcG10QXNzZXRJZAkA2QQBBQd0b2tlbklkCQACAQITV3JvbmcgcGF5bWVudCBhc3NldAQEdXNlcgkApQgBCAUBaQZjYWxsZXIECyR0MDcxMzc3MjMzCQEJY2xhaW1DYWxjAQUEdXNlcgQPdXNlck5ld0ludGVyZXN0CAULJHQwNzEzNzcyMzMCXzEEFGNsYWltQW1vdW50QXZhaWxhYmxlCAULJHQwNzEzNzcyMzMCXzIED3VzZXJUb2tlblN0YWtlZAgFCyR0MDcxMzc3MjMzAl8zBBB0b3RhbFRva2VuU3Rha2VkCAULJHQwNzEzNzcyMzMCXzQJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUEdXNlcgUNa1VzZXJJbnRlcmVzdAUPdXNlck5ld0ludGVyZXN0CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFBHVzZXIFDmtVc2VyQXZhaWxhYmxlBRRjbGFpbUFtb3VudEF2YWlsYWJsZQkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQR1c2VyBRBrVXNlclRva2VuU3Rha2VkCQBkAgUPdXNlclRva2VuU3Rha2VkBQlwbXRBbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQIFEWtUb3RhbFRva2VuU3Rha2VkCQBkAgUQdG90YWxUb2tlblN0YWtlZAUJcG10QW1vdW50BQNuaWwBaQEHdW5zdGFrZQEGYW1vdW50CQELdmFsdWVPckVsc2UCCQEIaXNBY3RpdmUABAR1c2VyCQClCAEIBQFpBmNhbGxlcgMJAGcCAAAFBmFtb3VudAkAAgECHUFtb3VudCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAwBAskdDA3NjcxNzc2NwkBCWNsYWltQ2FsYwEFBHVzZXIED3VzZXJOZXdJbnRlcmVzdAgFCyR0MDc2NzE3NzY3Al8xBBRjbGFpbUFtb3VudEF2YWlsYWJsZQgFCyR0MDc2NzE3NzY3Al8yBA91c2VyVG9rZW5TdGFrZWQIBQskdDA3NjcxNzc2NwJfMwQQdG90YWxUb2tlblN0YWtlZAgFCyR0MDc2NzE3NzY3Al80AwkAZgIFBmFtb3VudAUPdXNlclRva2VuU3Rha2VkCQACAQIiWW91IGNhbid0IHVuc3Rha2UgbW9yZSB0aGFuIHN0YWtlZAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQR1c2VyBQ1rVXNlckludGVyZXN0BQ91c2VyTmV3SW50ZXJlc3QJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUEdXNlcgUOa1VzZXJBdmFpbGFibGUFFGNsYWltQW1vdW50QXZhaWxhYmxlCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFBHVzZXIFEGtVc2VyVG9rZW5TdGFrZWQJAGUCBQ91c2VyVG9rZW5TdGFrZWQFBmFtb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgURa1RvdGFsVG9rZW5TdGFrZWQJAGUCBRB0b3RhbFRva2VuU3Rha2VkBQZhbW91bnQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyBQZhbW91bnQJANkEAQUHdG9rZW5JZAUDbmlsAWkBBWNsYWltAAkBC3ZhbHVlT3JFbHNlAgkBCGlzQWN0aXZlAAQEdXNlcgkApQgBCAUBaQZjYWxsZXIECyR0MDgyNzM4MzY5CQEJY2xhaW1DYWxjAQUEdXNlcgQPdXNlck5ld0ludGVyZXN0CAULJHQwODI3MzgzNjkCXzEEFGNsYWltQW1vdW50QXZhaWxhYmxlCAULJHQwODI3MzgzNjkCXzIED3VzZXJUb2tlblN0YWtlZAgFCyR0MDgyNzM4MzY5Al8zBBB0b3RhbFRva2VuU3Rha2VkCAULJHQwODI3MzgzNjkCXzQECyR0MDgzNzI4NDczCQEMY2xhaW1DYWxjTmZ0AQUEdXNlcgQSdXNlck5ld0ludGVyZXN0TkZUCAULJHQwODM3Mjg0NzMCXzEEF2NsYWltQW1vdW50QXZhaWxhYmxlTkZUCAULJHQwODM3Mjg0NzMCXzIEDXVzZXJORlRTdGFrZWQIBQskdDA4MzcyODQ3MwJfMwQOdG90YWxORlRTdGFrZWQIBQskdDA4MzcyODQ3MwJfNAMJAAACCQBkAgUUY2xhaW1BbW91bnRBdmFpbGFibGUFF2NsYWltQW1vdW50QXZhaWxhYmxlTkZUAAAJAAIBAhBOb3RoaW5nIHRvIGNsYWltCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFBHVzZXIFDWtVc2VySW50ZXJlc3QFD3VzZXJOZXdJbnRlcmVzdAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQR1c2VyBQ5rVXNlckF2YWlsYWJsZQAACQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFBHVzZXIFEGtORlRVc2VySW50ZXJlc3QFEnVzZXJOZXdJbnRlcmVzdE5GVAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQR1c2VyBRZrTkZUVXNlckF2YWlsYWJsZUNsYWltAAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyCQBkAgUUY2xhaW1BbW91bnRBdmFpbGFibGUFF2NsYWltQW1vdW50QXZhaWxhYmxlTkZUCQDZBAEFB3Rva2VuSWQFA25pbAFpAQhzdGFrZU5GVAAJAQt2YWx1ZU9yRWxzZQIJAQhpc0FjdGl2ZQADCQECIT0CCQCQAwEIBQFpCHBheW1lbnRzAAEJAAIBAhRPbmUgcGF5bWVudCBleHBlY3RlZAQLJHQwOTAyOTkxMDQJAJQKAggJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAQJcG10QW1vdW50CAULJHQwOTAyOTkxMDQCXzEECnBtdEFzc2V0SWQIBQskdDA5MDI5OTEwNAJfMgQNcG10QXNzZXRJZFN0cgkBDGFzc2V0SWRUb1N0cgEFCnBtdEFzc2V0SWQDCQEBIQEJAQlpc0RlZmluZWQBCQCdCAIFBHRoaXMJAKwCAgUNcG10QXNzZXRJZFN0cgULa05GVENyZWF0ZWQJAAIBAg9Xcm9uZyBuZnQgYXNzZXQEBHVzZXIJAKUIAQgFAWkGY2FsbGVyBAskdDA5Mjg1OTM4MAkBDGNsYWltQ2FsY05mdAEFBHVzZXIED3VzZXJOZXdJbnRlcmVzdAgFCyR0MDkyODU5MzgwAl8xBBRjbGFpbUFtb3VudEF2YWlsYWJsZQgFCyR0MDkyODU5MzgwAl8yBA11c2VyTkZUU3Rha2VkCAULJHQwOTI4NTkzODACXzMEDnRvdGFsTkZUU3Rha2VkCAULJHQwOTI4NTkzODACXzQJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUEdXNlcgUQa05GVFVzZXJJbnRlcmVzdAUPdXNlck5ld0ludGVyZXN0CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFBHVzZXIFFmtORlRVc2VyQXZhaWxhYmxlQ2xhaW0FFGNsYWltQW1vdW50QXZhaWxhYmxlCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFBHVzZXIFDmt1c2VyTkZUU3Rha2VkCQBkAgUNdXNlck5GVFN0YWtlZAABCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQ9rTkZUVG90YWxTdGFrZWQJAGQCBQ50b3RhbE5GVFN0YWtlZAABCQDMCAIJAQxCb29sZWFuRW50cnkCCQCsAgIJAKwCAgkArAICBQR1c2VyAgFfBQ1wbXRBc3NldElkU3RyBRBrdXNlck5GVFN0YWtlZElkBgUDbmlsAWkBCnVuc3Rha2VORlQBAmlkCQELdmFsdWVPckVsc2UCCQEIaXNBY3RpdmUABAR1c2VyCQClCAEIBQFpBmNhbGxlcgMJAQEhAQkBCWlzRGVmaW5lZAEJAJsIAgUEdGhpcwkArAICCQCsAgIJAKwCAgUEdXNlcgIBXwUCaWQFEGt1c2VyTkZUU3Rha2VkSWQJAAIBAhFZb3UgZGlkbid0IHN0YWtlZAQMJHQwOTkxODEwMDEzCQEMY2xhaW1DYWxjTmZ0AQUEdXNlcgQPdXNlck5ld0ludGVyZXN0CAUMJHQwOTkxODEwMDEzAl8xBBRjbGFpbUFtb3VudEF2YWlsYWJsZQgFDCR0MDk5MTgxMDAxMwJfMgQNdXNlck5GVFN0YWtlZAgFDCR0MDk5MTgxMDAxMwJfMwQOdG90YWxORlRTdGFrZWQIBQwkdDA5OTE4MTAwMTMCXzQJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUEdXNlcgUQa05GVFVzZXJJbnRlcmVzdAUPdXNlck5ld0ludGVyZXN0CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFBHVzZXIFFmtORlRVc2VyQXZhaWxhYmxlQ2xhaW0FFGNsYWltQW1vdW50QXZhaWxhYmxlCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFBHVzZXIFDmt1c2VyTkZUU3Rha2VkCQBlAgUNdXNlck5GVFN0YWtlZAABCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQ9rTkZUVG90YWxTdGFrZWQJAGUCBQ50b3RhbE5GVFN0YWtlZAABCQDMCAIJAQtEZWxldGVFbnRyeQEJAKwCAgkArAICCQCsAgIFBHVzZXICAV8FAmlkBRBrdXNlck5GVFN0YWtlZElkCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgABCQDZBAEFAmlkBQNuaWwBaQEIaXNzdWVORlQDCHVzZXJBZGRyBG5hbWUFZGVzY3IJAQt2YWx1ZU9yRWxzZQIJAQhpc0FjdGl2ZQAJAQt2YWx1ZU9yRWxzZQIJAQtpc0FkbWluQ2FsbAEFAWkEBXVBZGRyCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQUIdXNlckFkZHICEldyb25nIHVzZXIgYWRkcmVzcwQFaXNzdWUJAMIIBQUEbmFtZQUFZGVzY3IAAQAABwQFbmZ0SWQJALgIAQUFaXNzdWUEB25mdExpc3QJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwUPa05GVENyZWF0ZWRMaXN0AgAECm5ld05mdExpc3QJAKwCAgUHbmZ0TGlzdAMJAQIhPQIFB25mdExpc3QCAAkArAICBQlTRVBBUkFUT1IJANgEAQUFbmZ0SWQJAKwCAgIACQDYBAEFBW5mdElkCQDMCAIFBWlzc3VlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkA2AQBBQVuZnRJZAULa05GVENyZWF0ZWQFCHVzZXJBZGRyCQDMCAIJAQtTdHJpbmdFbnRyeQIFD2tORlRDcmVhdGVkTGlzdAUKbmV3TmZ0TGlzdAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQV1QWRkcgABBQVuZnRJZAUDbmlsAWkBB2FpcmRyb3AACQELdmFsdWVPckVsc2UCCQEIaXNBY3RpdmUACQELdmFsdWVPckVsc2UCCQELaXNBZG1pbkNhbGwBBQFpAwkBAiE9AgkAkAMBCAUBaQhwYXltZW50cwABCQACAQIUT25lIHBheW1lbnQgZXhwZWN0ZWQEDSR0MDExMTgzMTEyNTgJAJQKAggJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAQJcG10QW1vdW50CAUNJHQwMTExODMxMTI1OAJfMQQKcG10QXNzZXRJZAgFDSR0MDExMTgzMTEyNTgCXzIDCQECIT0CBQpwbXRBc3NldElkCQDZBAEFB3Rva2VuSWQJAAIBAhNXcm9uZyBwYXltZW50IGFzc2V0BA1wZXJjZW50Rm9yTkZUCQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzBQ5rUGVyc2VudEZvck5GVAQQdG90YWxUb2tlblN0YWtlZAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBRFrVG90YWxUb2tlblN0YWtlZAAABA50b3RhbE5GVFN0YWtlZAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQ9rTkZUVG90YWxTdGFrZWQAAAQLY3VySW50ZXJlc3QJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUJa0ludGVyZXN0AAAEDmN1ck5GVEludGVyZXN0CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFDGtORlRJbnRlcmVzdAAABA0kdDAxMTY4MTExODg1AwkAAAIFDnRvdGFsTkZUU3Rha2VkAAAJAJQKAgAABQlwbXRBbW91bnQEBG5mdFAJAGsDBQlwbXRBbW91bnQJAJcDAQkAzAgCBQ1wZXJjZW50Rm9yTkZUCQDMCAIJAGgCBQ50b3RhbE5GVFN0YWtlZAAKBQNuaWwAZAkAlAoCBQRuZnRQCQBlAgUJcG10QW1vdW50BQRuZnRQBAZwbXRORlQIBQ0kdDAxMTY4MTExODg1Al8xBAhwbXRUb2tlbggFDSR0MDExNjgxMTE4ODUCXzIEC2ludGVyZXN0TmV3AwkAZgIFEHRvdGFsVG9rZW5TdGFrZWQAAAkAZAIFC2N1ckludGVyZXN0CQBrAwUIcG10VG9rZW4FBlNDQUxFOAUQdG90YWxUb2tlblN0YWtlZAULY3VySW50ZXJlc3QEDmludGVyZXN0TkZUTmV3AwkAZgIFDnRvdGFsTkZUU3Rha2VkAAAJAGQCBQ5jdXJORlRJbnRlcmVzdAkAaQIFBnBtdE5GVAUOdG90YWxORlRTdGFrZWQFDmN1ck5GVEludGVyZXN0CQDMCAIJAQxJbnRlZ2VyRW50cnkCBQlrSW50ZXJlc3QFC2ludGVyZXN0TmV3CQDMCAIJAQxJbnRlZ2VyRW50cnkCBQxrTkZUSW50ZXJlc3QFDmludGVyZXN0TkZUTmV3CQDMCAIJAQxJbnRlZ2VyRW50cnkCBQxrTGFzdEFpcmRyb3AFCXBtdEFtb3VudAUDbmlsAWkBCGFjdGl2YXRlAAkBC3ZhbHVlT3JFbHNlAgkBC2lzQWRtaW5DYWxsAQUBaQMJAQt2YWx1ZU9yRWxzZQIJAJsIAgUEdGhpcwUHa0FjdGl2ZQYJAAIBAhNkQXBwIGFscmVhZHkgYWN0aXZlCQDMCAIJAQxCb29sZWFuRW50cnkCBQdrQWN0aXZlBgUDbmlsAWkBCHNodXRkb3duAAkBC3ZhbHVlT3JFbHNlAgkBC2lzQWRtaW5DYWxsAQUBaQMJAQEhAQkBC3ZhbHVlT3JFbHNlAgkAmwgCBQR0aGlzBQdrQWN0aXZlBgkAAgECFWRBcHAgYWxyZWFkeSBzaHV0ZG93bgkAzAgCCQEMQm9vbGVhbkVudHJ5AgUHa0FjdGl2ZQcFA25pbAECdHgBBnZlcmlmeQAEE211bHRpU2lnbmVkQnlBZG1pbnMEEmFkbWluUHViS2V5MVNpZ25lZAMJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAFCGFkbWluMVBLAAEAAAQSYWRtaW5QdWJLZXkyU2lnbmVkAwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAQUIYWRtaW4yUEsAAQAABBJhZG1pblB1YktleTNTaWduZWQDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwACBQhhZG1pbjNQSwABAAAJAGcCCQBkAgkAZAIFEmFkbWluUHViS2V5MVNpZ25lZAUSYWRtaW5QdWJLZXkyU2lnbmVkBRJhZG1pblB1YktleTNTaWduZWQAAgQHJG1hdGNoMAUCdHgDCQABAgUHJG1hdGNoMAIXSW52b2tlU2NyaXB0VHJhbnNhY3Rpb24EA2ludgUHJG1hdGNoMAQGaXNTZWxmCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAACAUCdHgPc2VuZGVyUHVibGljS2V5BAppc1JpZ2h0RmVlAwkAAAIIBQNpbnYDZmVlAKD3NgkAAAIIBQNpbnYKZmVlQXNzZXRJZAUEdW5pdAcECmlzSW5pdENhbGwJAAACCAUDaW52CGZ1bmN0aW9uAgRpbml0BAxpc25vUGF5bWVudHMJAAACCQCQAwEIBQNpbnYIcGF5bWVudHMAAAMDAwMFCmlzUmlnaHRGZWUFCmlzSW5pdENhbGwHBQZpc1NlbGYHBQxpc25vUGF5bWVudHMHBgUTbXVsdGlTaWduZWRCeUFkbWlucwUTbXVsdGlTaWduZWRCeUFkbWluc4VqVYU=", "height": 2756590, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: AKGttLNzSenSUFncf6Fvw7QtGpfed3SZdZLNMWcCH6B3 Next: B6XsqtpfhnLBRPBPkyqoX2gZYPs1Tas714q4N4KJTMPH Diff:
OldNewDifferences
308308 @Callable(C)
309309 func unstakeNFT (I) = valueOrElse(E(), {
310310 let L = toString(C.caller)
311- if (isDefined(getBoolean(this, (((L + "_") + I) + n))))
311+ if (!(isDefined(getBoolean(this, (((L + "_") + I) + n)))))
312312 then throw("You didn't staked")
313313 else {
314314 let aR = S(L)
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 100000000
55
66 let b = 10000
77
88 let c = "__"
99
1010 let d = "interest"
1111
1212 let e = "_userInterest"
1313
1414 let f = "_userAvailableClaim"
1515
1616 let g = "_userTokenStaked"
1717
1818 let h = "totalTokenStaked"
1919
2020 let i = "NFTInterest"
2121
2222 let j = "_NFTUserInterest"
2323
2424 let k = "_NFTUserAvailableClaim"
2525
2626 let l = "NFTTotalStaked"
2727
2828 let m = "_userNFTStaked"
2929
3030 let n = "_userNFTStakedId"
3131
3232 let o = "_NFTCreated"
3333
3434 let p = "_lastAirdrop"
3535
3636 let q = "tokenId"
3737
3838 let r = "percentForNFT"
3939
4040 let s = "nftCreatedList"
4141
4242 let t = "active"
4343
4444 let u = "admin_pub_1"
4545
4646 let v = "admin_pub_2"
4747
4848 let w = "admin_pub_3"
4949
5050 let x = fromBase58String(valueOrErrorMessage(getString(this, u), "Can't get admin1PK"))
5151
5252 let y = fromBase58String(valueOrErrorMessage(getString(this, v), "Can't get admin2PK"))
5353
5454 let z = fromBase58String(valueOrErrorMessage(getString(this, w), "Can't get operatorPK"))
5555
5656 let A = valueOrErrorMessage(getString(this, q), "Can't get staking token")
5757
5858 func B (C) = if (containsElement([x, y, z], C.callerPublicKey))
5959 then unit
6060 else throw("Only admin can call this function")
6161
6262
6363 func D (C) = if ((C.caller == this))
6464 then unit
6565 else throw("Only contract itself can call this function")
6666
6767
6868 func E () = if (valueOrElse(getBoolean(this, t), true))
6969 then unit
7070 else throw("DApp is inactive at this moment")
7171
7272
7373 func F (G) = {
7474 let H = G
7575 if ($isInstanceOf(H, "ByteVector"))
7676 then {
7777 let I = H
7878 toBase58String(I)
7979 }
8080 else if ($isInstanceOf(H, "Unit"))
8181 then {
8282 let J = H
8383 "WAVES"
8484 }
8585 else throw("Not Asset id")
8686 }
8787
8888
8989 func K (L) = {
9090 let M = valueOrElse(getInteger(this, h), 0)
9191 let N = valueOrElse(getInteger(this, d), 0)
9292 let O = valueOrElse(getInteger(this, (L + f)), 0)
9393 let P = valueOrElse(getInteger(this, (L + e)), N)
9494 let Q = valueOrElse(getInteger(this, (L + g)), 0)
9595 let R = fraction(Q, (N - P), a)
9696 $Tuple4(N, (R + O), Q, M)
9797 }
9898
9999
100100 func S (L) = {
101101 let T = valueOrElse(getInteger(this, l), 0)
102102 let N = valueOrElse(getInteger(this, i), 0)
103103 let O = valueOrElse(getInteger(this, (L + k)), 0)
104104 let P = valueOrElse(getInteger(this, (L + j)), N)
105105 let U = valueOrElse(getInteger(this, (L + m)), 0)
106106 let R = (U * (N - P))
107107 $Tuple4(N, (R + O), U, T)
108108 }
109109
110110
111111 func V () = {
112112 let W = valueOrElse(getInteger(this, p), 0)
113113 let M = valueOrElse(getInteger(this, h), 0)
114114 let X = valueOrElse(getInteger(this, l), 0)
115115 let Y = getIntegerValue(this, r)
116116 let Z = if ((X == 0))
117117 then W
118118 else fraction(W, min([Y, (X * 10)]), 100)
119119 (fraction(Z, b, M) * 52)
120120 }
121121
122122
123123 func aa (L) = {
124124 func ab (ac,ad) = if (isDefined(getBoolean(this, (((L + "_") + ad) + n))))
125125 then (ac :+ ad)
126126 else ac
127127
128128 let ae = valueOrElse(getString(this, s), "")
129129 let af = if ((ae == ""))
130130 then nil
131131 else split(ae, c)
132132 let ag = {
133133 let ah = af
134134 let ai = size(ah)
135135 let aj = nil
136136 func ak (al,am) = if ((am >= ai))
137137 then al
138138 else ab(al, ah[am])
139139
140140 func an (al,am) = if ((am >= ai))
141141 then al
142142 else throw("List size exceeds 5")
143143
144144 an(ak(ak(ak(ak(ak(aj, 0), 1), 2), 3), 4), 5)
145145 }
146146 makeString(ag, ",")
147147 }
148148
149149
150150 @Callable(C)
151151 func getStatsREADONLY () = {
152152 let ao = V()
153153 let M = valueOrElse(getInteger(this, h), 0)
154154 let T = valueOrElse(getInteger(this, l), 0)
155155 $Tuple2(nil, makeString(["%d%d%d", toString(ao), toString(M), toString(T)], c))
156156 }
157157
158158
159159
160160 @Callable(C)
161161 func getStatsByUserREADONLY (L) = {
162162 let ap = valueOrErrorMessage(addressFromString(L), "Wrong user address")
163163 let aq = K(L)
164164 let ar = aq._1
165165 let as = aq._2
166166 let Q = aq._3
167167 let M = aq._4
168168 let at = S(L)
169169 let au = at._1
170170 let av = at._2
171171 let aw = at._3
172172 let X = at._4
173173 let ax = assetBalance(ap, fromBase58String(A))
174174 let ag = aa(L)
175175 $Tuple2(nil, makeString(["%d%d%d%d%s", toString(ax), toString(Q), toString(as), toString(av), ag], c))
176176 }
177177
178178
179179
180180 @Callable(C)
181181 func getUserStatsREADONLY (L) = {
182182 let ao = V()
183183 let ay = if ((L == ""))
184184 then $Tuple4(0, 0, 0, 0)
185185 else {
186186 let ap = valueOrErrorMessage(addressFromString(L), "Wrong user address")
187187 let az = K(L)
188188 let ar = az._1
189189 let as = az._2
190190 let Q = az._3
191191 let M = az._4
192192 let aA = S(L)
193193 let au = aA._1
194194 let av = aA._2
195195 let aw = aA._3
196196 let X = aA._4
197197 let aB = assetBalance(ap, fromBase58String(A))
198198 $Tuple4(aB, Q, as, av)
199199 }
200200 let ax = ay._1
201201 let Q = ay._2
202202 let as = ay._3
203203 let av = ay._4
204204 $Tuple2(nil, makeString(["%d%d%d%d%d", toString(ao), toString(ax), toString(Q), toString(as), toString(av)], c))
205205 }
206206
207207
208208
209209 @Callable(C)
210210 func init (A,aC,aD,aE,aF) = valueOrElse(D(C), if (isDefined(getString(this, q)))
211211 then throw("DApp already inited")
212212 else if (!(isDefined(assetInfo(fromBase58String(A)))))
213213 then throw("asset id is not correct asset id")
214214 else if ((size(fromBase58String(aC)) != 32))
215215 then throw("group1Admin1PubKey is not correct")
216216 else if ((size(fromBase58String(aD)) != 32))
217217 then throw("group1Admin1PubKey is not correct")
218218 else if ((size(fromBase58String(aE)) != 32))
219219 then throw("group1Admin1PubKey is not correct")
220220 else [StringEntry(q, A), StringEntry(u, aC), StringEntry(v, aD), StringEntry(w, aE), IntegerEntry(r, aF)])
221221
222222
223223
224224 @Callable(C)
225225 func stake () = valueOrElse(E(), if ((size(C.payments) != 1))
226226 then throw("One payment expected")
227227 else {
228228 let aG = $Tuple2(C.payments[0].amount, C.payments[0].assetId)
229229 let aH = aG._1
230230 let aI = aG._2
231231 if ((aI != fromBase58String(A)))
232232 then throw("Wrong payment asset")
233233 else {
234234 let L = toString(C.caller)
235235 let aJ = K(L)
236236 let ar = aJ._1
237237 let as = aJ._2
238238 let Q = aJ._3
239239 let M = aJ._4
240240 [IntegerEntry((L + e), ar), IntegerEntry((L + f), as), IntegerEntry((L + g), (Q + aH)), IntegerEntry(h, (M + aH))]
241241 }
242242 })
243243
244244
245245
246246 @Callable(C)
247247 func unstake (aK) = valueOrElse(E(), {
248248 let L = toString(C.caller)
249249 if ((0 >= aK))
250250 then throw("Amount must be greater than 0")
251251 else {
252252 let aL = K(L)
253253 let ar = aL._1
254254 let as = aL._2
255255 let Q = aL._3
256256 let M = aL._4
257257 if ((aK > Q))
258258 then throw("You can't unstake more than staked")
259259 else [IntegerEntry((L + e), ar), IntegerEntry((L + f), as), IntegerEntry((L + g), (Q - aK)), IntegerEntry(h, (M - aK)), ScriptTransfer(C.caller, aK, fromBase58String(A))]
260260 }
261261 })
262262
263263
264264
265265 @Callable(C)
266266 func claim () = valueOrElse(E(), {
267267 let L = toString(C.caller)
268268 let aM = K(L)
269269 let ar = aM._1
270270 let as = aM._2
271271 let Q = aM._3
272272 let M = aM._4
273273 let aN = S(L)
274274 let au = aN._1
275275 let av = aN._2
276276 let aw = aN._3
277277 let X = aN._4
278278 if (((as + av) == 0))
279279 then throw("Nothing to claim")
280280 else [IntegerEntry((L + e), ar), IntegerEntry((L + f), 0), IntegerEntry((L + j), au), IntegerEntry((L + k), 0), ScriptTransfer(C.caller, (as + av), fromBase58String(A))]
281281 })
282282
283283
284284
285285 @Callable(C)
286286 func stakeNFT () = valueOrElse(E(), if ((size(C.payments) != 1))
287287 then throw("One payment expected")
288288 else {
289289 let aO = $Tuple2(C.payments[0].amount, C.payments[0].assetId)
290290 let aH = aO._1
291291 let aI = aO._2
292292 let aP = F(aI)
293293 if (!(isDefined(getString(this, (aP + o)))))
294294 then throw("Wrong nft asset")
295295 else {
296296 let L = toString(C.caller)
297297 let aQ = S(L)
298298 let ar = aQ._1
299299 let as = aQ._2
300300 let aw = aQ._3
301301 let X = aQ._4
302302 [IntegerEntry((L + j), ar), IntegerEntry((L + k), as), IntegerEntry((L + m), (aw + 1)), IntegerEntry(l, (X + 1)), BooleanEntry((((L + "_") + aP) + n), true)]
303303 }
304304 })
305305
306306
307307
308308 @Callable(C)
309309 func unstakeNFT (I) = valueOrElse(E(), {
310310 let L = toString(C.caller)
311- if (isDefined(getBoolean(this, (((L + "_") + I) + n))))
311+ if (!(isDefined(getBoolean(this, (((L + "_") + I) + n)))))
312312 then throw("You didn't staked")
313313 else {
314314 let aR = S(L)
315315 let ar = aR._1
316316 let as = aR._2
317317 let aw = aR._3
318318 let X = aR._4
319319 [IntegerEntry((L + j), ar), IntegerEntry((L + k), as), IntegerEntry((L + m), (aw - 1)), IntegerEntry(l, (X - 1)), DeleteEntry((((L + "_") + I) + n)), ScriptTransfer(C.caller, 1, fromBase58String(I))]
320320 }
321321 })
322322
323323
324324
325325 @Callable(C)
326326 func issueNFT (ap,aS,aT) = valueOrElse(E(), valueOrElse(B(C), {
327327 let aU = valueOrErrorMessage(addressFromString(ap), "Wrong user address")
328328 let aV = Issue(aS, aT, 1, 0, false)
329329 let ad = calculateAssetId(aV)
330330 let af = valueOrElse(getString(this, s), "")
331331 let aW = (af + (if ((af != ""))
332332 then (c + toBase58String(ad))
333333 else ("" + toBase58String(ad))))
334334 [aV, StringEntry((toBase58String(ad) + o), ap), StringEntry(s, aW), ScriptTransfer(aU, 1, ad)]
335335 }))
336336
337337
338338
339339 @Callable(C)
340340 func airdrop () = valueOrElse(E(), valueOrElse(B(C), if ((size(C.payments) != 1))
341341 then throw("One payment expected")
342342 else {
343343 let aX = $Tuple2(C.payments[0].amount, C.payments[0].assetId)
344344 let aH = aX._1
345345 let aI = aX._2
346346 if ((aI != fromBase58String(A)))
347347 then throw("Wrong payment asset")
348348 else {
349349 let Y = getIntegerValue(this, r)
350350 let M = valueOrElse(getInteger(this, h), 0)
351351 let X = valueOrElse(getInteger(this, l), 0)
352352 let N = valueOrElse(getInteger(this, d), 0)
353353 let aY = valueOrElse(getInteger(this, i), 0)
354354 let aZ = if ((X == 0))
355355 then $Tuple2(0, aH)
356356 else {
357357 let ba = fraction(aH, min([Y, (X * 10)]), 100)
358358 $Tuple2(ba, (aH - ba))
359359 }
360360 let bb = aZ._1
361361 let bc = aZ._2
362362 let bd = if ((M > 0))
363363 then (N + fraction(bc, a, M))
364364 else N
365365 let be = if ((X > 0))
366366 then (aY + (bb / X))
367367 else aY
368368 [IntegerEntry(d, bd), IntegerEntry(i, be), IntegerEntry(p, aH)]
369369 }
370370 }))
371371
372372
373373
374374 @Callable(C)
375375 func activate () = valueOrElse(B(C), if (valueOrElse(getBoolean(this, t), true))
376376 then throw("dApp already active")
377377 else [BooleanEntry(t, true)])
378378
379379
380380
381381 @Callable(C)
382382 func shutdown () = valueOrElse(B(C), if (!(valueOrElse(getBoolean(this, t), true)))
383383 then throw("dApp already shutdown")
384384 else [BooleanEntry(t, false)])
385385
386386
387387 @Verifier(bf)
388388 func bg () = {
389389 let bh = {
390390 let bi = if (sigVerify(bf.bodyBytes, bf.proofs[0], x))
391391 then 1
392392 else 0
393393 let bj = if (sigVerify(bf.bodyBytes, bf.proofs[1], y))
394394 then 1
395395 else 0
396396 let bk = if (sigVerify(bf.bodyBytes, bf.proofs[2], z))
397397 then 1
398398 else 0
399399 (((bi + bj) + bk) >= 2)
400400 }
401401 let H = bf
402402 if ($isInstanceOf(H, "InvokeScriptTransaction"))
403403 then {
404404 let bl = H
405405 let bm = sigVerify(bf.bodyBytes, bf.proofs[0], bf.senderPublicKey)
406406 let bn = if ((bl.fee == 900000))
407407 then (bl.feeAssetId == unit)
408408 else false
409409 let bo = (bl.function == "init")
410410 let bp = (size(bl.payments) == 0)
411411 if (if (if (if (bn)
412412 then bo
413413 else false)
414414 then bm
415415 else false)
416416 then bp
417417 else false)
418418 then true
419419 else bh
420420 }
421421 else bh
422422 }
423423

github/deemru/w8io/873ac7e 
56.97 ms