tx · 2y4zFgYr76oZed8GqQd2igkX5sLVdrwh3VZb1yEKLQyy

3N9evuqxGecMq9hBmpdJu2VkMzdR5VNVrvK:  -0.02200000 Waves

2022.06.29 17:56 [2117875] smart account 3N9evuqxGecMq9hBmpdJu2VkMzdR5VNVrvK > SELF 0.00000000 Waves

{ "type": 13, "id": "2y4zFgYr76oZed8GqQd2igkX5sLVdrwh3VZb1yEKLQyy", "fee": 2200000, "feeAssetId": null, "timestamp": 1656514657928, "version": 2, "chainId": 84, "sender": "3N9evuqxGecMq9hBmpdJu2VkMzdR5VNVrvK", "senderPublicKey": "AHY8zupoYc6HPJ5fh1gQiGE9bNZSeifFbcQQ89okxVug", "proofs": [ "2cwwJdyhhjxZQ3Gazi1y5eTFdARVyFYsxyRJYw2sGW22BBCNgEeZYe57LgPUTcHkyDxcp19vDf11CL5BaC2fpo9j" ], "script": "base64:BgIlCAISABIAEgASABIDCgEBEgASAwoBARIAEgASAwoBCBIECgIBAQMAC1N0YWtlZFRva2VuASD5rl2FqqDB81weFWSW9S5FyKYquYAb4MpXXcAlqscPUAALR292ZXJuVG9rZW4BIAFshcLXQMYuV8Rzs8ULZ07fOlzF6BxYes7P/1GRlpktABBMaWtlUGFja2FnZVByaWNlCQBoAgAKAIDC1y8LAWkBC0RldldpdGhkcmF3AAQKY3VycmVudEtleQkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzAwkAAAIFCmN1cnJlbnRLZXkCIzNQNzRidUh0OThCbm9qRmNhUkVKWnRiOThLRHlVbVpHZW1KBAxEZXZCb3hBbW91bnQEByRtYXRjaDAJAJoIAgUEdGhpcwIGRGV2Qm94AwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAAAwkAZgIAAAUMRGV2Qm94QW1vdW50CQACAQISTm90IGVub3VnaCBiYWxhbmNlCQDMCAIJAQxJbnRlZ2VyRW50cnkCAgZEZXZCb3gAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIFDERldkJveEFtb3VudAULR292ZXJuVG9rZW4FA25pbAkAAgECLFlvdSBjYW5ub3Qgd2l0aGRyYXcgYXMgeW91ciBhcmUgbm90IHRoZSBEZXYuAWkBFVdpdGhkcmF3V2Vla2x5RWFybmluZwAEGkNvbnRyYWN0V2FsbGV0U3Rha2VCYWxhbmNlCQDwBwIFBHRoaXMFC1N0YWtlZFRva2VuBAxNYXhEZXBvc2l0ZXIJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMCDE1heERlcG9zaXRlcgQSVXNlcldlZWtseUVhcm5pbmdzCQCsAgIJANgEAQgIBQFpBmNhbGxlcgVieXRlcwIMX1dlZWtFYXJuaW5nBAxTdGFrZUJhbGFuY2UEByRtYXRjaDAJAJoIAgUEdGhpcwIMU3Rha2VCYWxhbmNlAwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAABAtQcml6ZUFtb3VudAQHJG1hdGNoMAkAmggCBQR0aGlzAgdGdW5kQm94AwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAABBVIZWlnaHRUcmFuc2FjdEZ1bmRCb3gEByRtYXRjaDAJAJoIAgUEdGhpcwILUHJpemVIZWlnaHQDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEEFByaXplSGVpZ2h0VmFsdWUDAwkAAAIFFUhlaWdodFRyYW5zYWN0RnVuZEJveAAACQAAAgULUHJpemVBbW91bnQAAAcAAAMDCQAAAgUVSGVpZ2h0VHJhbnNhY3RGdW5kQm94AAAJAQIhPQIFC1ByaXplQW1vdW50AAAHBQZoZWlnaHQDAwkBAiE9AgUVSGVpZ2h0VHJhbnNhY3RGdW5kQm94AAAJAQIhPQIFC1ByaXplQW1vdW50AAAHBRVIZWlnaHRUcmFuc2FjdEZ1bmRCb3gAAAQKY3VycmVudEtleQkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzBAluZXdBbW91bnQEByRtYXRjaDAJAJoIAgUEdGhpcwUSVXNlcldlZWtseUVhcm5pbmdzAwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAAAwkAZgIAAAUJbmV3QW1vdW50CQACAQIeQ2FuJ3Qgd2l0aGRyYXcgbmVnYXRpdmUgYW1vdW50AwkAZgIAAAUJbmV3QW1vdW50CQACAQkArAICAkFVc2VyIGNhbm5vdCB3aXRoZHJhdyBtb3JlIHRoYW4gZGVwb3NpdGVkIGZ1bmRzLCBZb3VyIGRlcG9zaXQgaXM6IAkApAMBCQBpAgUJbmV3QW1vdW50AIDC1y8JAMwIAgkBDEludGVnZXJFbnRyeQIFElVzZXJXZWVrbHlFYXJuaW5ncwAACQDMCAIJAQxJbnRlZ2VyRW50cnkCAgtQcml6ZUhlaWdodAUQUHJpemVIZWlnaHRWYWx1ZQkAzAgCCQEMSW50ZWdlckVudHJ5AgIKTWF4RGVwb3NpdAAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgUJbmV3QW1vdW50BQtTdGFrZWRUb2tlbgUDbmlsAWkBClB1c2hSZXdhcmQABAxtaW5QdXNoQmxvY2sACgQNbWluU3Rha2VCbG9jawkAaAIABwCgCwQORGVsYXlBZnRlclB1c2gAPAQIV2FpdFRpbWUJAGgCAKALAAEEBm1pbnJlZgADBA5GaXJzdFB1c2hUaW1lcgkAaAIABwCgCwQXdXNlcldhbGxldEdvdmVybkJhbGFuY2UJAPAHAgkBB0FkZHJlc3MBCAgFAWkGY2FsbGVyBWJ5dGVzBQtHb3Zlcm5Ub2tlbgQDcG10AwkAAAIJAJADAQgFAWkIcGF5bWVudHMAAQkAkQMCCAUBaQhwYXltZW50cwAACQACAQIcQXR0YWNoZWQgcGF5bWVudCBpcyByZXF1aXJlZAQIVXNlclB1c2gJAKwCAgkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzAgVfUHVzaAQUVXNlckxhc3RQdXNoT2xkVmFsdWUEByRtYXRjaDAJAJoIAgUEdGhpcwUIVXNlclB1c2gDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEC1VzZXJSZWZzTnVtCQCsAgIJANgEAQgIBQFpBmNhbGxlcgVieXRlcwIFX3JlZnMEEFVzZXJSZWZzTnVtVmFsdWUEByRtYXRjaDAJAJoIAgUEdGhpcwULVXNlclJlZnNOdW0DCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEEEhpZ2hlc3RQdXNoVmFsdWUEByRtYXRjaDAJAJoIAgUEdGhpcwILSGlnaGVzdFB1c2gDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAADCQBmAgUXdXNlcldhbGxldEdvdmVybkJhbGFuY2UIBQNwbXQGYW1vdW50AwMJAGYCCQBkAggFA3BtdAZhbW91bnQFFFVzZXJMYXN0UHVzaE9sZFZhbHVlBRBIaWdoZXN0UHVzaFZhbHVlCQAAAggFA3BtdAdhc3NldElkBQtHb3Zlcm5Ub2tlbgcEEVVzZXJMYXN0UHVzaEJsb2NrCQCsAgIJANgEAQgIBQFpBmNhbGxlcgVieXRlcwISX1VzZXJMYXN0UHVzaEJsb2NrBBJVc2VyTGFzdFN0YWtlQmxvY2sJAKwCAgkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzAhNfVXNlckxhc3RTdGFrZUJsb2NrBAlVc2VyU3Rha2UJAKwCAgkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzAghfU3Rha2luZwQaQ29udHJhY3RXYWxsZXRTdGFrZUJhbGFuY2UJAPAHAgUEdGhpcwULU3Rha2VkVG9rZW4EDFN0YWtlQmFsYW5jZQQHJG1hdGNoMAkAmggCBQR0aGlzAgxTdGFrZUJhbGFuY2UDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEC1ByaXplQW1vdW50BAckbWF0Y2gwCQCaCAIFBHRoaXMCB0Z1bmRCb3gDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEFUhlaWdodFRyYW5zYWN0RnVuZEJveAQHJG1hdGNoMAkAmggCBQR0aGlzAgtQcml6ZUhlaWdodAMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAQQUHJpemVIZWlnaHRWYWx1ZQMDCQAAAgUVSGVpZ2h0VHJhbnNhY3RGdW5kQm94AAAJAAACBQtQcml6ZUFtb3VudAAABwAAAwMJAAACBRVIZWlnaHRUcmFuc2FjdEZ1bmRCb3gAAAkBAiE9AgULUHJpemVBbW91bnQAAAcFBmhlaWdodAMDCQECIT0CBRVIZWlnaHRUcmFuc2FjdEZ1bmRCb3gAAAkBAiE9AgULUHJpemVBbW91bnQAAAcFFUhlaWdodFRyYW5zYWN0RnVuZEJveAAABAtBY3R1YWxEZWxheQQHJG1hdGNoMAkAmggCBQR0aGlzAgVEZWxheQMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAQSSGlnaGVzdFB1c2hBZGRyZXNzBAckbWF0Y2gwCQCaCAIFBHRoaXMCEkhpZ2hlc3RQdXNoQWRkcmVzcwMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAQWVXNlckxhc3RQdXNoQmxvY2tWYWx1ZQQHJG1hdGNoMAkAmggCBQR0aGlzBRFVc2VyTGFzdFB1c2hCbG9jawMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAQXVXNlckxhc3RTdGFrZUJsb2NrVmFsdWUEByRtYXRjaDAJAJoIAgUEdGhpcwUSVXNlckxhc3RTdGFrZUJsb2NrAwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAABA5Vc2VyU3Rha2VWYWx1ZQQHJG1hdGNoMAkAmggCBQR0aGlzBQlVc2VyU3Rha2UDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEDURldkJveEJhbGFuY2UEByRtYXRjaDAJAJoIAgUEdGhpcwIGRGV2Qm94AwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAABAxEZXZCb3hBbW91bnQJAGQCBQ1EZXZCb3hCYWxhbmNlCQBpAgkAaAIIBQNwbXQGYW1vdW50AAUA6AcEDVVzZXJQdXNodmFsdWUJAGQCCAUDcG10BmFtb3VudAUUVXNlckxhc3RQdXNoT2xkVmFsdWUECE5ld0RlbGF5AwMJAGYCBQZoZWlnaHQJAGQCCQBkAgUQUHJpemVIZWlnaHRWYWx1ZQULQWN0dWFsRGVsYXkFCFdhaXRUaW1lCQBmAgUQSGlnaGVzdFB1c2hWYWx1ZQAABwUORmlyc3RQdXNoVGltZXIJAGQCBQtBY3R1YWxEZWxheQUORGVsYXlBZnRlclB1c2gEF0hpZ2hlc3RQdXNoQWRkcmVzc1ZhbHVlAwMJAGYCBQZoZWlnaHQJAGQCCQBkAgUQUHJpemVIZWlnaHRWYWx1ZQUITmV3RGVsYXkFCFdhaXRUaW1lCQBmAgUQSGlnaGVzdFB1c2hWYWx1ZQAABwIABRJIaWdoZXN0UHVzaEFkZHJlc3MEE1ByaXplSGVpZ2h0VmFsdWVOZXcDAwkAZgIFBmhlaWdodAkAZAIJAGQCBRBQcml6ZUhlaWdodFZhbHVlBQhOZXdEZWxheQUIV2FpdFRpbWUJAGYCBRBIaWdoZXN0UHVzaFZhbHVlAAAHBQZoZWlnaHQFEFByaXplSGVpZ2h0VmFsdWUDAwkAZgIFDVVzZXJQdXNodmFsdWUAAAkAZgIJAGUCBQZoZWlnaHQFF1VzZXJMYXN0U3Rha2VCbG9ja1ZhbHVlBQ1taW5TdGFrZUJsb2NrBwMJAGYCCQBlAgUGaGVpZ2h0BRZVc2VyTGFzdFB1c2hCbG9ja1ZhbHVlBQxtaW5QdXNoQmxvY2sDCQBmAgUOVXNlclN0YWtlVmFsdWUAAAMJAGYCBQ1Vc2VyUHVzaHZhbHVlBRBIaWdoZXN0UHVzaFZhbHVlAwkAZgIFC1ByaXplQW1vdW50AAADAwMDCQBnAgkAZAIFE1ByaXplSGVpZ2h0VmFsdWVOZXcFCE5ld0RlbGF5BQZoZWlnaHQGCQBnAgUGaGVpZ2h0CQBkAgkAZAIFE1ByaXplSGVpZ2h0VmFsdWVOZXcFCE5ld0RlbGF5BQhXYWl0VGltZQkAZgIFEEhpZ2hlc3RQdXNoVmFsdWUAAAcGCQAAAgUQSGlnaGVzdFB1c2hWYWx1ZQAAAwkAZwIFEFVzZXJSZWZzTnVtVmFsdWUFBm1pbnJlZgkAzAgCCQEMSW50ZWdlckVudHJ5AgUIVXNlclB1c2gFDVVzZXJQdXNodmFsdWUJAMwIAgkBC1N0cmluZ0VudHJ5AgISSGlnaGVzdFB1c2hBZGRyZXNzCQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMJAMwIAgkBDEludGVnZXJFbnRyeQICC0hpZ2hlc3RQdXNoBQ1Vc2VyUHVzaHZhbHVlCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRFVc2VyTGFzdFB1c2hCbG9jawUGaGVpZ2h0CQDMCAIJAQxJbnRlZ2VyRW50cnkCAgtQcml6ZUhlaWdodAUTUHJpemVIZWlnaHRWYWx1ZU5ldwkAzAgCCQEMSW50ZWdlckVudHJ5AgIFRGVsYXkFCE5ld0RlbGF5CQDMCAIJAQxJbnRlZ2VyRW50cnkCAgZEZXZCb3gFDERldkJveEFtb3VudAUDbmlsCQACAQkArAICCQCsAgICEVlvdSBoYXZlIHRvIGhhdmUgCQCkAwEFBm1pbnJlZgI8IHJlZmVycmFscyBhbHJlYWR5IHN0YWtpbmcgZm9yIGEgbWluaW11bSBvZiAxMCBkYXlzLCB0byBwdXNoBAN0eHQDCQBmAgUQSGlnaGVzdFB1c2hWYWx1ZQAAAk9Zb3UgY2Fubm90IFB1c2ggYWZ0ZXIgcmV3YXJkaW5nIFByaXplIGFuZCBiZWZvcmUgT25lIGRheSBoYXMgcGFzc2VkIGFmdGVyIGF3YXJkAhBVbmV4cGVjdGVkIGVycm9yCQACAQUDdHh0CQACAQJOWW91IGNhbm5vdCBwdXNoIGJlZm9yZSB0aGUgcmV3YXJkIGlzIHVubG9ja2VkLCBubyByZXdhcmQgaGFzIGJlZW4gZGV0ZWN0ZWQgeWV0CQACAQJDWW91ciBwdXNoIGluIHRyb2lrYW4gdG9rZW4sIHNob3VsZCBiZSBIaWdoZXIgdGhhbiBsYXN0IEhpZ2hlc3QgUHVzaAkAAgECWFRvIGJlIGFibGUgdG8gcGFydGljaXBhdGUgaW4gUHVzaGluZyBmb3IgdGhlIHJld2FyZCB5b3UgbmVlZCB0byBTdGFrZSBBU0lNSXMgaW4gdGhlIGRBcHAJAAIBAjVZb3UgaGF2ZSB0byB3YWl0IDEwbWluIGJlZm9yZSB5b3UgY2FuIG1ha2UgYSBuZXcgUHVzaAkAAgEJAKwCAgI6WW91ciBQdXNoIGRvdCBub3QgY29tcGx5IG9uZSBvZiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6IAJdMS4gUG9zaXRpdmUgVmFsdWUgZm9yIFB1c2ggaW4gVHJvaWthbiBUb2tlCiAyLiBNdXN0IFN0YWtlZCBBU0lNSSBUb2tlbiBmb3IgYSBtaW5pbXVtIG9mIHdlZWsgCQACAQkArAICCQCsAgICdkNhbiBkZXBvc2l0IG9ubHkgcG9zaXRpdmUgYW1vdW50cyBvZiBUcm9pa2FuIFRva2VuLCBvciBDaGVjayB5b3VyIFdhbGxldCBiYWxhbmNlIGluIFRyb2lrYSwgeW91IHNob3VsZCBoYXZlIG1vcmUgdGhhbiAJAKQDAQUQSGlnaGVzdFB1c2hWYWx1ZQIIIHRvIHB1c2gJAAIBAqQBWW91IGRvIG5vdCBoYXZlIGVub3VnaCBUcm9pa2FuIFRva2VucyBpbiB5b3VyIFdhbGxldCBCYWxhbmNlLCBQbGVhc2UgSGFydmVzdCBpZiB5b3UgaGF2ZSBlYXJuZWQgVHJvaWthbiB3YWxsZXQgb3IgdHJhbnNmZXIgdG8geW91ciB3YWxsZXQgbmVjZXNzYXJ5IFRyb2lrYW4gYW1vdW50ICEBaQEFU3Rha2UABAhXYWl0VGltZQkAaAIAoAsAAQQDcG10AwkAAAIJAJADAQgFAWkIcGF5bWVudHMAAQkAkQMCCAUBaQhwYXltZW50cwAACQACAQIcQXR0YWNoZWQgcGF5bWVudCBpcyByZXF1aXJlZAMDCQBmAggFA3BtdAZhbW91bnQAAAkAAAIIBQNwbXQHYXNzZXRJZAULU3Rha2VkVG9rZW4HBB9Hb3Zlcm5Ub2tlblNtYXJ0Q29udHJhY3RCYWxhbmNlCQDwBwIFBHRoaXMFC0dvdmVyblRva2VuBAdVc2VyQVBZCQCsAgIJANgEAQgIBQFpBmNhbGxlcgVieXRlcwIEX0FQWQQIVXNlclB1c2gJAKwCAgkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzAgVfUHVzaAQSVXNlclN0YWtlZFRva2VuS2V5CQCsAgIJANgEAQgIBQFpBmNhbGxlcgVieXRlcwIIX1N0YWtpbmcEElVzZXJHb3Zlcm5Ub2tlbktleQkArAICCQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMCCV9FYXJuaW5ncwQSVXNlckxhc3RTdGFrZUJsb2NrCQCsAgIJANgEAQgIBQFpBmNhbGxlcgVieXRlcwITX1VzZXJMYXN0U3Rha2VCbG9jawQYVXNlclN0YWtlVHJhbnNhY3Rpb25zS2V5CQCsAgIJANgEAQgIBQFpBmNhbGxlcgVieXRlcwITX1N0YWtlZFRyYW5zYWN0aW9ucwQNQWRkcmVzc0hlaWdodAkArAICCQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMCDF9Qcml6ZUhlaWdodAQQVXNlcldlZWtFYXJuaW5ncwkArAICCQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMCDF9XZWVrRWFybmluZwQVVXNlclN0YWtlVHJhbnNhY3Rpb25zBAckbWF0Y2gwCQCaCAIFBHRoaXMFGFVzZXJTdGFrZVRyYW5zYWN0aW9uc0tleQMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAQMTWF4RGVwb3NpdGVyCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzAgxNYXhEZXBvc2l0ZXIED01heERlcG9zaXRCbG9jawQHJG1hdGNoMAkAmggCBQR0aGlzAg9NYXhEZXBvc2l0QmxvY2sDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAECk1heERlcG9zaXQEByRtYXRjaDAJAJoIAgUEdGhpcwIKTWF4RGVwb3NpdAMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAQRTWF4RGVwb3NpdGVyVmFsdWUDCQBmAggFA3BtdAZhbW91bnQFCk1heERlcG9zaXQJANgEAQgIBQFpBmNhbGxlcgVieXRlcwUMTWF4RGVwb3NpdGVyBA9NYXhEZXBvc2l0VmFsdWUDCQBmAggFA3BtdAZhbW91bnQFCk1heERlcG9zaXQIBQNwbXQGYW1vdW50BQpNYXhEZXBvc2l0BBRNYXhEZXBvc2l0QmxvY2tWYWx1ZQMJAGYCCAUDcG10BmFtb3VudAUKTWF4RGVwb3NpdAUGaGVpZ2h0BQ9NYXhEZXBvc2l0QmxvY2sEDVVzZXJQdXNoVmFsdWUEByRtYXRjaDAJAJoIAgUEdGhpcwUIVXNlclB1c2gDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEF1VzZXJMYXN0U3Rha2VCbG9ja1ZhbHVlBAckbWF0Y2gwCQCaCAIFBHRoaXMFElVzZXJMYXN0U3Rha2VCbG9jawMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAQaVXNlckxhc3RTdGFrZUJsb2NrTmV3VmFsdWUDCQAAAgUXVXNlckxhc3RTdGFrZUJsb2NrVmFsdWUAAAUGaGVpZ2h0BRdVc2VyTGFzdFN0YWtlQmxvY2tWYWx1ZQQYTmV3VXNlclN0YWtlVHJhbnNhY3Rpb25zCQBkAgUVVXNlclN0YWtlVHJhbnNhY3Rpb25zAAEEGGN1cnJlbnRBbW91bnRTdGFrZWRUb2tlbgQHJG1hdGNoMAkAmggCBQR0aGlzBRJVc2VyU3Rha2VkVG9rZW5LZXkDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEFG5ld0Ftb3VudFN0YWtlZFRva2VuCQBkAgUYY3VycmVudEFtb3VudFN0YWtlZFRva2VuCAUDcG10BmFtb3VudAQaQ29udHJhY3RXYWxsZXRTdGFrZUJhbGFuY2UJAPAHAgUEdGhpcwULU3Rha2VkVG9rZW4EDFN0YWtlQmFsYW5jZQQHJG1hdGNoMAkAmggCBQR0aGlzAgxTdGFrZUJhbGFuY2UDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEElN0YWtlQmFsYW5jZUFtb3VudAkAZAIFDFN0YWtlQmFsYW5jZQgFA3BtdAZhbW91bnQEC1ByaXplQW1vdW50BAckbWF0Y2gwCQCaCAIFBHRoaXMCB0Z1bmRCb3gDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEFVVzZXJXZWVrRWFybmluZ3NWYWx1ZQQHJG1hdGNoMAkAmggCBQR0aGlzBRBVc2VyV2Vla0Vhcm5pbmdzAwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAABBhjdXJyZW50QW1vdW50R292ZXJuVG9rZW4EByRtYXRjaDAJAJoIAgUEdGhpcwUSVXNlckdvdmVyblRva2VuS2V5AwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAABBVIZWlnaHRUcmFuc2FjdEZ1bmRCb3gEByRtYXRjaDAJAJoIAgUEdGhpcwILUHJpemVIZWlnaHQDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEEFByaXplSGVpZ2h0VmFsdWUDAwkAAAIFFUhlaWdodFRyYW5zYWN0RnVuZEJveAAACQAAAgULUHJpemVBbW91bnQAAAcAAAMDCQAAAgUVSGVpZ2h0VHJhbnNhY3RGdW5kQm94AAAJAQIhPQIFC1ByaXplQW1vdW50AAAHBQZoZWlnaHQDAwkBAiE9AgUVSGVpZ2h0VHJhbnNhY3RGdW5kQm94AAAJAQIhPQIFC1ByaXplQW1vdW50AAAHBRVIZWlnaHRUcmFuc2FjdEZ1bmRCb3gAAAQLQWN0dWFsRGVsYXkEByRtYXRjaDAJAJoIAgUEdGhpcwIFRGVsYXkDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEEEhpZ2hlc3RQdXNoVmFsdWUEByRtYXRjaDAJAJoIAgUEdGhpcwILSGlnaGVzdFB1c2gDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEEkhpZ2hlc3RQdXNoQWRkcmVzcwkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwISSGlnaGVzdFB1c2hBZGRyZXNzBBdIaWdoZXN0UHVzaEFkZHJlc3NWYWx1ZQMDCQBmAgUGaGVpZ2h0CQBkAgkAZAIFEFByaXplSGVpZ2h0VmFsdWUFC0FjdHVhbERlbGF5BQhXYWl0VGltZQkAZgIFEEhpZ2hlc3RQdXNoVmFsdWUAAAcCAAUSSGlnaGVzdFB1c2hBZGRyZXNzBBNQcml6ZUhlaWdodFZhbHVlTmV3AwMJAGYCBQZoZWlnaHQJAGQCCQBkAgUQUHJpemVIZWlnaHRWYWx1ZQULQWN0dWFsRGVsYXkFCFdhaXRUaW1lCQBmAgUQSGlnaGVzdFB1c2hWYWx1ZQAABwUGaGVpZ2h0BRBQcml6ZUhlaWdodFZhbHVlAwkAZgIAgMLXLwUfR292ZXJuVG9rZW5TbWFydENvbnRyYWN0QmFsYW5jZQkAAgECPk5vIGVub3VnaCBHb3Zlcm5Ub2tlbiBJbiBDb250cmFjdCwgUGxlYXNlIGRlcG9zaXQgR292ZXJuVG9rZW5zBAZSZXdhcmQDCQAAAgUMU3Rha2VCYWxhbmNlAAAAkE4DCQBmAgUYTmV3VXNlclN0YWtlVHJhbnNhY3Rpb25zAAoJAGgCCQBoAgCQTgUYTmV3VXNlclN0YWtlVHJhbnNhY3Rpb25zCQBkAgABCQBpAgUUbmV3QW1vdW50U3Rha2VkVG9rZW4FDFN0YWtlQmFsYW5jZQkAaAIAkE4JAGQCAAEJAGkCBRRuZXdBbW91bnRTdGFrZWRUb2tlbgUMU3Rha2VCYWxhbmNlBAxVc2VyQVBZVmFsdWUDCQBmAgUYY3VycmVudEFtb3VudEdvdmVyblRva2VuAAAJAGkCCQBoAgBkBQZSZXdhcmQFGGN1cnJlbnRBbW91bnRHb3Zlcm5Ub2tlbgAABBRuZXdBbW91bnRHb3Zlcm5Ub2tlbgkAZAIFGGN1cnJlbnRBbW91bnRHb3Zlcm5Ub2tlbgUGUmV3YXJkCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRJVc2VyR292ZXJuVG9rZW5LZXkFFG5ld0Ftb3VudEdvdmVyblRva2VuCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRJVc2VyU3Rha2VkVG9rZW5LZXkFFG5ld0Ftb3VudFN0YWtlZFRva2VuCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRhVc2VyU3Rha2VUcmFuc2FjdGlvbnNLZXkFGE5ld1VzZXJTdGFrZVRyYW5zYWN0aW9ucwkAzAgCCQEMSW50ZWdlckVudHJ5AgIMU3Rha2VCYWxhbmNlBRJTdGFrZUJhbGFuY2VBbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQICC1ByaXplSGVpZ2h0BRNQcml6ZUhlaWdodFZhbHVlTmV3CQDMCAIJAQxJbnRlZ2VyRW50cnkCBQdVc2VyQVBZBQxVc2VyQVBZVmFsdWUJAMwIAgkBDEludGVnZXJFbnRyeQIFElVzZXJMYXN0U3Rha2VCbG9jawUaVXNlckxhc3RTdGFrZUJsb2NrTmV3VmFsdWUJAMwIAgkBDEludGVnZXJFbnRyeQIFCFVzZXJQdXNoBQ1Vc2VyUHVzaFZhbHVlCQDMCAIJAQtTdHJpbmdFbnRyeQICDE1heERlcG9zaXRlcgURTWF4RGVwb3NpdGVyVmFsdWUJAMwIAgkBDEludGVnZXJFbnRyeQICCk1heERlcG9zaXQFD01heERlcG9zaXRWYWx1ZQkAzAgCCQEMSW50ZWdlckVudHJ5AgIPTWF4RGVwb3NpdEJsb2NrBRRNYXhEZXBvc2l0QmxvY2tWYWx1ZQkAzAgCCQELU3RyaW5nRW50cnkCAhJIaWdoZXN0UHVzaEFkZHJlc3MFF0hpZ2hlc3RQdXNoQWRkcmVzc1ZhbHVlCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRBVc2VyV2Vla0Vhcm5pbmdzBRVVc2VyV2Vla0Vhcm5pbmdzVmFsdWUJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyBQZSZXdhcmQFC0dvdmVyblRva2VuBQNuaWwJAAIBAhtDYW4gZGVwb3NpdCBvbmx5IFN0YWtlVG9rZW4BaQETV2l0aGRyYXdTdGFrZWRGdW5kcwEGYW1vdW50BAhXYWl0VGltZQkAaAIAoAsAAQQSVXNlckxhc3RTdGFrZUJsb2NrCQCsAgIJANgEAQgIBQFpBmNhbGxlcgVieXRlcwITX1VzZXJMYXN0U3Rha2VCbG9jawQSVXNlclN0YWtlZFRva2VuS2V5CQCsAgIJANgEAQgIBQFpBmNhbGxlcgVieXRlcwIIX1N0YWtpbmcEElVzZXJHb3Zlcm5Ub2tlbktleQkArAICCQCsAgIJANgEAQgIBQFpBmNhbGxlcgVieXRlcwIBXwkA2AQBBQtHb3Zlcm5Ub2tlbgQaQ29udHJhY3RXYWxsZXRTdGFrZUJhbGFuY2UJAPAHAgUEdGhpcwULU3Rha2VkVG9rZW4EF1VzZXJMYXN0U3Rha2VCbG9ja1ZhbHVlBAckbWF0Y2gwCQCaCAIFBHRoaXMFElVzZXJMYXN0U3Rha2VCbG9jawMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAQMU3Rha2VCYWxhbmNlBAckbWF0Y2gwCQCaCAIFBHRoaXMCDFN0YWtlQmFsYW5jZQMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAQLUHJpemVBbW91bnQEByRtYXRjaDAJAJoIAgUEdGhpcwIHRnVuZEJveAMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAQVSGVpZ2h0VHJhbnNhY3RGdW5kQm94BAckbWF0Y2gwCQCaCAIFBHRoaXMCC1ByaXplSGVpZ2h0AwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAABAtBY3R1YWxEZWxheQQHJG1hdGNoMAkAmggCBQR0aGlzAgVEZWxheQMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAQQSGlnaGVzdFB1c2hWYWx1ZQQHJG1hdGNoMAkAmggCBQR0aGlzAgtIaWdoZXN0UHVzaAMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAQQUHJpemVIZWlnaHRWYWx1ZQMDCQAAAgUVSGVpZ2h0VHJhbnNhY3RGdW5kQm94AAAJAAACBQtQcml6ZUFtb3VudAAABwAAAwMJAAACBRVIZWlnaHRUcmFuc2FjdEZ1bmRCb3gAAAkBAiE9AgULUHJpemVBbW91bnQAAAcFBmhlaWdodAMDCQECIT0CBRVIZWlnaHRUcmFuc2FjdEZ1bmRCb3gAAAkBAiE9AgULUHJpemVBbW91bnQAAAcFFUhlaWdodFRyYW5zYWN0RnVuZEJveAAABBJIaWdoZXN0UHVzaEFkZHJlc3MJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMCEkhpZ2hlc3RQdXNoQWRkcmVzcwQXSGlnaGVzdFB1c2hBZGRyZXNzVmFsdWUDAwkAZgIFBmhlaWdodAkAZAIJAGQCBRBQcml6ZUhlaWdodFZhbHVlBQtBY3R1YWxEZWxheQUIV2FpdFRpbWUJAGYCBRBIaWdoZXN0UHVzaFZhbHVlAAAHAgAFEkhpZ2hlc3RQdXNoQWRkcmVzcwQTUHJpemVIZWlnaHRWYWx1ZU5ldwMDCQBmAgUGaGVpZ2h0CQBkAgkAZAIFEFByaXplSGVpZ2h0VmFsdWUFC0FjdHVhbERlbGF5BQhXYWl0VGltZQkAZgIFEEhpZ2hlc3RQdXNoVmFsdWUAAAcFBmhlaWdodAUQUHJpemVIZWlnaHRWYWx1ZQQKY3VycmVudEtleQkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzBA1jdXJyZW50QW1vdW50BAckbWF0Y2gwCQCaCAIFBHRoaXMFElVzZXJTdGFrZWRUb2tlbktleQMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAQJbmV3QW1vdW50CQBlAgUNY3VycmVudEFtb3VudAUGYW1vdW50BBJTdGFrZUJhbGFuY2VBbW91bnQJAGUCBQxTdGFrZUJhbGFuY2UFBmFtb3VudAQaVXNlckxhc3RTdGFrZUJsb2NrTmV3VmFsdWUDCQAAAgUSU3Rha2VCYWxhbmNlQW1vdW50AAAAAAUXVXNlckxhc3RTdGFrZUJsb2NrVmFsdWUDCQBmAgAABQZhbW91bnQJAAIBAh5DYW4ndCB3aXRoZHJhdyBuZWdhdGl2ZSBhbW91bnQDCQBmAgAABQluZXdBbW91bnQJAAIBCQCsAgICQVVzZXIgY2Fubm90IHdpdGhkcmF3IG1vcmUgdGhhbiBkZXBvc2l0ZWQgZnVuZHMsIFlvdXIgZGVwb3NpdCBpczogCQCkAwEJAGkCBQ1jdXJyZW50QW1vdW50AIDC1y8DCQBmAgCAwtcvCQDwBwIFBHRoaXMFC0dvdmVyblRva2VuCQACAQkArAICAh9Ob3QgZW5vdWdoIFRyb2lrYSBJbiBDb250cmFjdDogCQCkAwEJAGkCCQDwBwIFBHRoaXMFC0dvdmVyblRva2VuAIDC1y8JAMwIAgkBDEludGVnZXJFbnRyeQIFElVzZXJHb3Zlcm5Ub2tlbktleQCAwtcvCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRJVc2VyU3Rha2VkVG9rZW5LZXkFCW5ld0Ftb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgIMU3Rha2VCYWxhbmNlBRJTdGFrZUJhbGFuY2VBbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQICC1ByaXplSGVpZ2h0BRNQcml6ZUhlaWdodFZhbHVlTmV3CQDMCAIJAQxJbnRlZ2VyRW50cnkCBRJVc2VyTGFzdFN0YWtlQmxvY2sFGlVzZXJMYXN0U3Rha2VCbG9ja05ld1ZhbHVlCQDMCAIJAQtTdHJpbmdFbnRyeQICEkhpZ2hlc3RQdXNoQWRkcmVzcwUXSGlnaGVzdFB1c2hBZGRyZXNzVmFsdWUJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyAIDC1y8FC0dvdmVyblRva2VuCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgUGYW1vdW50BQtTdGFrZWRUb2tlbgUDbmlsAWkBFldpdGhkcmF3QmlnU3Rha2VSZXdhcmQABAhXYWl0VGltZQkAaAIAoAsAAQQYTGFzdEJpZ1N0YWtlclJld2FyZEJsb2NrCQCsAgIJANgEAQgIBQFpBmNhbGxlcgVieXRlcwIZX0xhc3RCaWdTdGFrZXJSZXdhcmRCbG9jawQPQmlnU3Rha2VyUmV3YXJkCQCsAgIJANgEAQgIBQFpBmNhbGxlcgVieXRlcwIKX0JpZ1N0YWtlcgQSVXNlckdvdmVyblRva2VuS2V5CQCsAgIJANgEAQgIBQFpBmNhbGxlcgVieXRlcwIJX0Vhcm5pbmdzBBJMaW1pV2l0aGRyYXdSZXdhcmQACgQVVXNlckdvdmVyblRva2VuQW1vdW50BAckbWF0Y2gwCQCaCAIFBHRoaXMFElVzZXJHb3Zlcm5Ub2tlbktleQMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAQdTGFzdEJpZ1N0YWtlclJld2FyZEJsb2NrVmFsdWUEByRtYXRjaDAJAJoIAgUEdGhpcwUYTGFzdEJpZ1N0YWtlclJld2FyZEJsb2NrAwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAABBlCaWdTdGFrZXJSZXdhcmRUb3RhbFZhbHVlBAckbWF0Y2gwCQCaCAIFBHRoaXMCFEJpZ1N0YWtlclJld2FyZFRvdGFsAwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAABAtQcml6ZUFtb3VudAQHJG1hdGNoMAkAmggCBQR0aGlzAgdGdW5kQm94AwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAABBVIZWlnaHRUcmFuc2FjdEZ1bmRCb3gEByRtYXRjaDAJAJoIAgUEdGhpcwILUHJpemVIZWlnaHQDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEEFByaXplSGVpZ2h0VmFsdWUDAwkAAAIFFUhlaWdodFRyYW5zYWN0RnVuZEJveAAACQAAAgULUHJpemVBbW91bnQAAAcAAAMDCQAAAgUVSGVpZ2h0VHJhbnNhY3RGdW5kQm94AAAJAQIhPQIFC1ByaXplQW1vdW50AAAHBQZoZWlnaHQDAwkBAiE9AgUVSGVpZ2h0VHJhbnNhY3RGdW5kQm94AAAJAQIhPQIFC1ByaXplQW1vdW50AAAHBRVIZWlnaHRUcmFuc2FjdEZ1bmRCb3gAAAQLQWN0dWFsRGVsYXkEByRtYXRjaDAJAJoIAgUEdGhpcwIFRGVsYXkDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEEEhpZ2hlc3RQdXNoVmFsdWUEByRtYXRjaDAJAJoIAgUEdGhpcwILSGlnaGVzdFB1c2gDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEEkhpZ2hlc3RQdXNoQWRkcmVzcwkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwISSGlnaGVzdFB1c2hBZGRyZXNzBBdIaWdoZXN0UHVzaEFkZHJlc3NWYWx1ZQMDCQBmAgUGaGVpZ2h0CQBkAgkAZAIFEFByaXplSGVpZ2h0VmFsdWUFC0FjdHVhbERlbGF5BQhXYWl0VGltZQkAZgIFEEhpZ2hlc3RQdXNoVmFsdWUAAAcCAAUSSGlnaGVzdFB1c2hBZGRyZXNzBBNQcml6ZUhlaWdodFZhbHVlTmV3AwMJAGYCBQZoZWlnaHQJAGQCCQBkAgUQUHJpemVIZWlnaHRWYWx1ZQULQWN0dWFsRGVsYXkFCFdhaXRUaW1lCQBmAgUQSGlnaGVzdFB1c2hWYWx1ZQAABwUGaGVpZ2h0BRBQcml6ZUhlaWdodFZhbHVlBApjdXJyZW50S2V5CQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMEBmFtb3VudAQHJG1hdGNoMAkAmggCBQR0aGlzBQ9CaWdTdGFrZXJSZXdhcmQDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEElN0YWtlQmFsYW5jZUFtb3VudAkAZQIFGUJpZ1N0YWtlclJld2FyZFRvdGFsVmFsdWUFBmFtb3VudAQSQmlnU3Rha2VyUmV3YXJkVGF4AwkAZgIAAAkAaAIJAGkCBRVVc2VyR292ZXJuVG9rZW5BbW91bnQA6AcJAGUCAOgHCQBpAgkAaAIA6AcJAGUCBQZoZWlnaHQFHUxhc3RCaWdTdGFrZXJSZXdhcmRCbG9ja1ZhbHVlCQBoAgUSTGltaVdpdGhkcmF3UmV3YXJkAKALCQBoAgDoBwCAwtcvCQBoAgkAaQIFFVVzZXJHb3Zlcm5Ub2tlbkFtb3VudADoBwkAZQIA6AcJAGkCCQBoAgDoBwkAZQIFBmhlaWdodAUdTGFzdEJpZ1N0YWtlclJld2FyZEJsb2NrVmFsdWUJAGgCBRJMaW1pV2l0aGRyYXdSZXdhcmQAoAsDCQBmAgAABQZhbW91bnQJAAIBCQCsAgIJAKwCAgkArAICAh9DYW4ndCB3aXRoZHJhdyBuZWdhdGl2ZSBhbW91bnQgCQCkAwEJAGUCBRVVc2VyR292ZXJuVG9rZW5BbW91bnQJAGgCAOgHAIDC1y8CBSAuLi4gCQCkAwEFBmFtb3VudAMDAwkAZgIJAGgCAOgHAIDC1y8FFVVzZXJHb3Zlcm5Ub2tlbkFtb3VudAYJAGYCAAEFBmFtb3VudAYJAGYCAAAJAGUCBRVVc2VyR292ZXJuVG9rZW5BbW91bnQFEkJpZ1N0YWtlclJld2FyZFRheAkAAgEJAKwCAgJcTm8gQVNJTUkgcmV3YXJkIGF2YWlsYWJsZSwgb3IgTm90IGVub3VnaCBFYXJuZWQgVHJvaWthbiBUb2tlbnMgdG8gZG8gdHJhbnNhY3Rpb24sIHlvdSBoYXZlOiAJAKQDAQkAaQIFFVVzZXJHb3Zlcm5Ub2tlbkFtb3VudACAwtcvAwkAZgIFElN0YWtlQmFsYW5jZUFtb3VudAAACQDMCAIJAQxJbnRlZ2VyRW50cnkCBQ9CaWdTdGFrZXJSZXdhcmQAAAkAzAgCCQEMSW50ZWdlckVudHJ5AgIUQmlnU3Rha2VyUmV3YXJkVG90YWwFElN0YWtlQmFsYW5jZUFtb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgUSVXNlckdvdmVyblRva2VuS2V5CQBlAgUVVXNlckdvdmVyblRva2VuQW1vdW50BRJCaWdTdGFrZXJSZXdhcmRUYXgJAMwIAgkBDEludGVnZXJFbnRyeQICC1ByaXplSGVpZ2h0BRBQcml6ZUhlaWdodFZhbHVlCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRhMYXN0QmlnU3Rha2VyUmV3YXJkQmxvY2sFBmhlaWdodAkAzAgCCQELU3RyaW5nRW50cnkCAhJIaWdoZXN0UHVzaEFkZHJlc3MFF0hpZ2hlc3RQdXNoQWRkcmVzc1ZhbHVlCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgUGYW1vdW50BQtTdGFrZWRUb2tlbgUDbmlsCQACAQJSQmFsYW5jZSBFcnJvciwgVG90YWwgQmlnIFN0YWtlcnMgY2Fubm90IGJlIG5lZ2F0aXZlLCBPcGVyYXRpb24gd29uJ3QgYmUgYXV0aG9yaXplZAFpARNIYXJ2ZXN0R292ZXJuVG9pa2VuAQZhbW91bnQEGkNvbnRyYWN0V2FsbGV0U3Rha2VCYWxhbmNlCQDwBwIFBHRoaXMFC1N0YWtlZFRva2VuBBJVc2VyR292ZXJuVG9rZW5LZXkJAKwCAgkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzAglfRWFybmluZ3MEDFN0YWtlQmFsYW5jZQQHJG1hdGNoMAkAmggCBQR0aGlzAgxTdGFrZUJhbGFuY2UDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEC1ByaXplQW1vdW50BAckbWF0Y2gwCQCaCAIFBHRoaXMCB0Z1bmRCb3gDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEFUhlaWdodFRyYW5zYWN0RnVuZEJveAQHJG1hdGNoMAkAmggCBQR0aGlzAgtQcml6ZUhlaWdodAMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAQQUHJpemVIZWlnaHRWYWx1ZQMDCQAAAgUVSGVpZ2h0VHJhbnNhY3RGdW5kQm94AAAJAAACBQtQcml6ZUFtb3VudAAABwAAAwMJAAACBRVIZWlnaHRUcmFuc2FjdEZ1bmRCb3gAAAkBAiE9AgULUHJpemVBbW91bnQAAAcFBmhlaWdodAMDCQECIT0CBRVIZWlnaHRUcmFuc2FjdEZ1bmRCb3gAAAkBAiE9AgULUHJpemVBbW91bnQAAAcFFUhlaWdodFRyYW5zYWN0RnVuZEJveAAABApjdXJyZW50S2V5CQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMEDWN1cnJlbnRBbW91bnQEByRtYXRjaDAJAJoIAgUEdGhpcwUSVXNlckdvdmVyblRva2VuS2V5AwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAABAluZXdBbW91bnQJAGUCBQ1jdXJyZW50QW1vdW50BQZhbW91bnQDCQBmAgAABQZhbW91bnQJAAIBAh5DYW4ndCB3aXRoZHJhdyBuZWdhdGl2ZSBhbW91bnQDCQBmAgAABQluZXdBbW91bnQJAAIBCQCsAgICQVVzZXIgY2Fubm90IHdpdGhkcmF3IG1vcmUgdGhhbiBkZXBvc2l0ZWQgZnVuZHMsIFlvdXIgZGVwb3NpdCBpczogCQCkAwEJAGkCBQ1jdXJyZW50QW1vdW50AIDC1y8JAMwIAgkBDEludGVnZXJFbnRyeQIFElVzZXJHb3Zlcm5Ub2tlbktleQUJbmV3QW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCAgtQcml6ZUhlaWdodAUQUHJpemVIZWlnaHRWYWx1ZQkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIFBmFtb3VudAULR292ZXJuVG9rZW4FA25pbAFpAQpkZWxheXByaXplAAQJRGVsYXlEYXlzCQBoAgCgCwABBAhXYWl0VGltZQkAaAIAoAsAAQQSVXNlckdvdmVyblRva2VuS2V5CQCsAgIJAKwCAgkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzAgFfCQDYBAEFC0dvdmVyblRva2VuBBhVc2VyV2FsbGV0U0dvdmVybkJhbGFuY2UJAPAHAgkBB0FkZHJlc3MBCAgFAWkGY2FsbGVyBWJ5dGVzBQtHb3Zlcm5Ub2tlbgQaQ29udHJhY3RXYWxsZXRTdGFrZUJhbGFuY2UJAPAHAgUEdGhpcwULU3Rha2VkVG9rZW4EDFN0YWtlQmFsYW5jZQQHJG1hdGNoMAkAmggCBQR0aGlzAgxTdGFrZUJhbGFuY2UDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEC1ByaXplQW1vdW50BAckbWF0Y2gwCQCaCAIFBHRoaXMCB0Z1bmRCb3gDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEFUhlaWdodFRyYW5zYWN0RnVuZEJveAQHJG1hdGNoMAkAmggCBQR0aGlzAgtQcml6ZUhlaWdodAMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAQLQWN0dWFsRGVsYXkEByRtYXRjaDAJAJoIAgUEdGhpcwIFRGVsYXkDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEEFByaXplSGVpZ2h0VmFsdWUDAwkAAAIFFUhlaWdodFRyYW5zYWN0RnVuZEJveAAACQAAAgULUHJpemVBbW91bnQAAAcAAAMDCQAAAgUVSGVpZ2h0VHJhbnNhY3RGdW5kQm94AAAJAQIhPQIFC1ByaXplQW1vdW50AAAHBQZoZWlnaHQDAwkBAiE9AgUVSGVpZ2h0VHJhbnNhY3RGdW5kQm94AAAJAQIhPQIFC1ByaXplQW1vdW50AAAHBRVIZWlnaHRUcmFuc2FjdEZ1bmRCb3gAAAQQSGlnaGVzdFB1c2hWYWx1ZQQHJG1hdGNoMAkAmggCBQR0aGlzAgtIaWdoZXN0UHVzaAMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAQSSGlnaGVzdFB1c2hBZGRyZXNzCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzAhJIaWdoZXN0UHVzaEFkZHJlc3MEF0hpZ2hlc3RQdXNoQWRkcmVzc1ZhbHVlAwMJAGYCBQZoZWlnaHQJAGQCCQBkAgUQUHJpemVIZWlnaHRWYWx1ZQULQWN0dWFsRGVsYXkFCFdhaXRUaW1lCQBmAgUQSGlnaGVzdFB1c2hWYWx1ZQAABwIABRJIaWdoZXN0UHVzaEFkZHJlc3MEE1ByaXplSGVpZ2h0VmFsdWVOZXcDAwkAZgIFBmhlaWdodAkAZAIJAGQCBRBQcml6ZUhlaWdodFZhbHVlBQtBY3R1YWxEZWxheQUIV2FpdFRpbWUJAGYCBRBIaWdoZXN0UHVzaFZhbHVlAAAHBQZoZWlnaHQFEFByaXplSGVpZ2h0VmFsdWUED0FjdHVhbERlbGF5Q29zdAQHJG1hdGNoMAkAmggCBQR0aGlzAglEZWxheUNvc3QDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAoEA3BtdAMJAAACCQCQAwEIBQFpCHBheW1lbnRzAAEJAJEDAggFAWkIcGF5bWVudHMAAAkAAgECHEF0dGFjaGVkIHBheW1lbnQgaXMgcmVxdWlyZWQEDURldkJveEJhbGFuY2UEByRtYXRjaDAJAJoIAgUEdGhpcwIGRGV2Qm94AwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAAAwMJAQlpc0RlZmluZWQBCAUDcG10B2Fzc2V0SWQJAAACCAUDcG10B2Fzc2V0SWQFC0dvdmVyblRva2VuBwMJAGYCBQtQcml6ZUFtb3VudAAABBVVc2VyR292ZXJuVG9rZW5BbW91bnQIBQNwbXQGYW1vdW50BAxEZXZCb3hBbW91bnQJAGQCBQ1EZXZCb3hCYWxhbmNlCQBpAgkAaAIIBQNwbXQGYW1vdW50AAUA6AcEDE5ld0RlbGF5Q29zdAMJAAACBQ9BY3R1YWxEZWxheUNvc3QAAACAlOvcAwkAaAIAAgUPQWN0dWFsRGVsYXlDb3N0AwkAZwIFFVVzZXJHb3Zlcm5Ub2tlbkFtb3VudAUMTmV3RGVsYXlDb3N0BAhOZXdEZWxheQkAZAIFC0FjdHVhbERlbGF5BQlEZWxheURheXMJAMwIAgkBDEludGVnZXJFbnRyeQICBURlbGF5BQhOZXdEZWxheQkAzAgCCQEMSW50ZWdlckVudHJ5AgIJRGVsYXlDb3N0BQxOZXdEZWxheUNvc3QJAMwIAgkBDEludGVnZXJFbnRyeQICC1ByaXplSGVpZ2h0BRNQcml6ZUhlaWdodFZhbHVlTmV3CQDMCAIJAQxJbnRlZ2VyRW50cnkCAgZEZXZCb3gFDERldkJveEFtb3VudAkAzAgCCQELU3RyaW5nRW50cnkCAhJIaWdoZXN0UHVzaEFkZHJlc3MFF0hpZ2hlc3RQdXNoQWRkcmVzc1ZhbHVlBQNuaWwJAAIBCQCsAgIJAKwCAgJJVG8gZGVsYXkgdGhlIHJlbGVhc2Ugb2YgdGhlIHJld2FyZCBPTkUgREFZIGxhdGVyIHRoYW4gZXhwZWN0ZWQsIHlvdSBuZWVkIAkApAMBBQxOZXdEZWxheUNvc3QCB1RST0lLQXMJAAIBAl5Zb3UgY2Fubm90IGRlbGF5IHRoZSByZXdhcmQgYmVmb3JlIHJld2FyZCBpcyByZWNlaXZlZCEgUGxlYXNlIHdhaXQgdW50aWwgYSByZXdhcmQgaXMgYXZhaWxhYmxlCQACAQIpQ2FuIFVzZSBvbmx5IFRyb2lrYSBUb2tlbiB0byBEZWxheSBSZXdhcmQBaQEKQ2xhaW1Qcml6ZQAEElVzZXJTdGFrZWRUb2tlbktleQkArAICCQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMCCF9TdGFraW5nBAhVc2VyUHVzaAkArAICCQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMCBV9QdXNoBBJVc2VyTGFzdFN0YWtlQmxvY2sJAKwCAgkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzAhNfVXNlckxhc3RTdGFrZUJsb2NrBA1taW5TdGFrZUJsb2NrCQBoAgCgCwAHBAZtaW5yZWYAAwQXQ29udHJhY3RHb3ZUb2tlbkJhbGFuY2UJAPAHAgUEdGhpcwULR292ZXJuVG9rZW4EGkNvbnRyYWN0V2FsbGV0U3Rha2VCYWxhbmNlCQDwBwIFBHRoaXMFC1N0YWtlZFRva2VuBAxTdGFrZUJhbGFuY2UEByRtYXRjaDAJAJoIAgUEdGhpcwIMU3Rha2VCYWxhbmNlAwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAABAtQcml6ZUFtb3VudAQHJG1hdGNoMAkAmggCBQR0aGlzAgdGdW5kQm94AwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAABA1Vc2VyUHVzaFZhbHVlBAckbWF0Y2gwCQCaCAIFBHRoaXMFCFVzZXJQdXNoAwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAABBdVc2VyTGFzdFN0YWtlQmxvY2tWYWx1ZQQHJG1hdGNoMAkAmggCBQR0aGlzBRJVc2VyTGFzdFN0YWtlQmxvY2sDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEFVVzZXJTdGFrZWRUb2tlbkFtb3VudAQHJG1hdGNoMAkAmggCBQR0aGlzBRJVc2VyU3Rha2VkVG9rZW5LZXkDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEC0FjdHVhbERlbGF5BAckbWF0Y2gwCQCaCAIFBHRoaXMCBURlbGF5AwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAABAtQcml6ZVdpbm5lcgkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwISSGlnaGVzdFB1c2hBZGRyZXNzBAtQcml6ZUhlaWdodAQHJG1hdGNoMAkAmggCBQR0aGlzAgtQcml6ZUhlaWdodAMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAQQSGlnaGVzdFB1c2hWYWx1ZQQHJG1hdGNoMAkAmggCBQR0aGlzAgtIaWdoZXN0UHVzaAMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAQLVXNlclJlZnNOdW0JAKwCAgkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzAgVfcmVmcwQQVXNlclJlZnNOdW1WYWx1ZQQHJG1hdGNoMAkAmggCBQR0aGlzBQtVc2VyUmVmc051bQMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAMDCQAAAgULUHJpemVBbW91bnQAAAYJAGYCAIDIr6AlBRdDb250cmFjdEdvdlRva2VuQmFsYW5jZQkAAgECSU5vIHByaXplIHRvIENsYWltIG9yIE5vdCBlbm91Z2ggR292ZXJuIFRva2VuIGVuIENvbnRyYWN0IChNaW4gMTAwIFRyb2lrYSkDCQECIT0CCQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMFC1ByaXplV2lubmVyCQACAQI2WW91IGFyZSBub3QgdGhlIHdpbm5lciBoZW5jZSBjYW5ub3QgY2xhaW0gdGhlIHJld2FyZCAgAwMJAGYCAIDC1y8FFVVzZXJTdGFrZWRUb2tlbkFtb3VudAkAZgIFDW1pblN0YWtlQmxvY2sFF1VzZXJMYXN0U3Rha2VCbG9ja1ZhbHVlBwkAAgECLllvdSBoYXZlIHRvIFN0YWtlIEFTSU1JIFRva2VuIHRvIGNsYWltIHJld2FyZCADAwkAZgIFBmhlaWdodAkAZAIFC1ByaXplSGVpZ2h0BQtBY3R1YWxEZWxheQkAZwIFDVVzZXJQdXNoVmFsdWUFEEhpZ2hlc3RQdXNoVmFsdWUHAwkAZwIFEFVzZXJSZWZzTnVtVmFsdWUFBm1pbnJlZgkAzAgCCQEMSW50ZWdlckVudHJ5AgULUHJpemVXaW5uZXIFC1ByaXplQW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCAgdGdW5kQm94AAAJAMwIAgkBDEludGVnZXJFbnRyeQICC0hpZ2hlc3RQdXNoAAAJAMwIAgkBDEludGVnZXJFbnRyeQIFCFVzZXJQdXNoAAAJAMwIAgkBC1N0cmluZ0VudHJ5AgISSGlnaGVzdFB1c2hBZGRyZXNzAgAJAMwIAgkBDEludGVnZXJFbnRyeQICC1ByaXplSGVpZ2h0AAAJAMwIAgkBDEludGVnZXJFbnRyeQICBURlbGF5AAAJAMwIAgkBDEludGVnZXJFbnRyeQICCURlbGF5Q29zdAAACQDMCAIJAQtTdHJpbmdFbnRyeQICCkxhc3RXaW5uZXIFC1ByaXplV2lubmVyCQDMCAIJAQxJbnRlZ2VyRW50cnkCAglMYXN0UHJpemUFC1ByaXplQW1vdW50CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgULUHJpemVBbW91bnQFC1N0YWtlZFRva2VuCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgCAlOvcAwULR292ZXJuVG9rZW4FA25pbAkAAgEJAKwCAgkArAICAhJZb3UgaGF2ZSB0byBoYXZlICAJAKQDAQUGbWlucmVmAkcgIHJlZmVycmFscyBhbHJlYWR5IHN0YWtpbmcgZm9yIGEgbWluaW11bSBvZiAxMCBkYXlzIHRvIENsYWltIHRoZSBwcml6ZQkAAgECYVlvdSBoYXZlIHRvIGJlIHRoZSB1c2VyIHdpdGggdGhlIGhpZ2hlc3QgUHVzaCBhbmQgd2FpdCB0aWxsIGNvdW50b3duIGlzIGZpbmlzaGVkLCB0byBjbGFpbSBSZXdhcmQBaQEJQWRkbWVudG9yAQZNZW50b3IEEVVzZXJNZW50b3JBZGRyZXNzCQCsAgIJANgEAQgIBQFpBmNhbGxlcgVieXRlcwIHX01lbnRvcgMJAQIhPQIFBk1lbnRvcgIACQDMCAIJAQtTdHJpbmdFbnRyeQIFEVVzZXJNZW50b3JBZGRyZXNzBQZNZW50b3IFA25pbAkAAgECIE1lbnRvcidzIEFkZHJlc3MgY2Fubm90IGJlIGVtcHR5AWkBD0dldExpa2VzUGFja2FnZQINVHdpdHRlclVzZXJJZAdUd2l0dElkBANwbXQDCQAAAgkAkAMBCAUBaQhwYXltZW50cwABCQCRAwIIBQFpCHBheW1lbnRzAAAJAAIBAhxBdHRhY2hlZCBwYXltZW50IGlzIHJlcXVpcmVkAwMDCQBmAggFA3BtdAZhbW91bnQFEExpa2VQYWNrYWdlUHJpY2UJAAACCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQFC1N0YWtlZFRva2VuBwkAAAIICQCRAwIIBQFpCHBheW1lbnRzAAEHYXNzZXRJZAULR292ZXJuVG9rZW4HCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKQDAQUNVHdpdHRlclVzZXJJZAILX1R3aXR0Mkxpa2UFB1R3aXR0SWQFA25pbAkAAgECIllvdSBPbmx5IGNhbiBwYXkgd2l0aCBBU0lNSSBUb2tlbnMApgU1DA==", "height": 2117875, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 4EziSCfvqW2yotWXT8LjDLGqQyvZtL3RH5cxPGRMMatq Next: JC5ePv7abHrHRL1Kp2aM3PMJGLRBDe1X2YXQZDc5XTyA Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let StakedToken = base58'Hoej8L1ezqQY4Miex4Z4J7uJ33LCdcubV3DsubGHEqWP'
55
66 let GovernToken = base58'6ZPMzZseuYoMP4ByozJpVxbugXBobwJYF22zVjW5JjN'
77
88 let LikePackagePrice = (10 * 100000000)
99
1010 @Callable(i)
1111 func DevWithdraw () = {
1212 let currentKey = toBase58String(i.caller.bytes)
1313 if ((currentKey == "3P74buHt98BnojFcaREJZtb98KDyUmZGemJ"))
1414 then {
1515 let DevBoxAmount = match getInteger(this, "DevBox") {
1616 case a: Int =>
1717 a
1818 case _ =>
1919 0
2020 }
2121 if ((0 > DevBoxAmount))
2222 then throw("Not enough balance")
2323 else [IntegerEntry("DevBox", 0), ScriptTransfer(i.caller, DevBoxAmount, GovernToken)]
2424 }
2525 else throw("You cannot withdraw as your are not the Dev.")
2626 }
2727
2828
2929
3030 @Callable(i)
3131 func WithdrawWeeklyEarning () = {
3232 let ContractWalletStakeBalance = assetBalance(this, StakedToken)
3333 let MaxDepositer = getStringValue(this, "MaxDepositer")
3434 let UserWeeklyEarnings = (toBase58String(i.caller.bytes) + "_WeekEarning")
3535 let StakeBalance = match getInteger(this, "StakeBalance") {
3636 case a: Int =>
3737 a
3838 case _ =>
3939 0
4040 }
4141 let PrizeAmount = match getInteger(this, "FundBox") {
4242 case a: Int =>
4343 a
4444 case _ =>
4545 0
4646 }
4747 let HeightTransactFundBox = match getInteger(this, "PrizeHeight") {
4848 case a: Int =>
4949 a
5050 case _ =>
5151 0
5252 }
5353 let PrizeHeightValue = if (if ((HeightTransactFundBox == 0))
5454 then (PrizeAmount == 0)
5555 else false)
5656 then 0
5757 else if (if ((HeightTransactFundBox == 0))
5858 then (PrizeAmount != 0)
5959 else false)
6060 then height
6161 else if (if ((HeightTransactFundBox != 0))
6262 then (PrizeAmount != 0)
6363 else false)
6464 then HeightTransactFundBox
6565 else 0
6666 let currentKey = toBase58String(i.caller.bytes)
6767 let newAmount = match getInteger(this, UserWeeklyEarnings) {
6868 case a: Int =>
6969 a
7070 case _ =>
7171 0
7272 }
7373 if ((0 > newAmount))
7474 then throw("Can't withdraw negative amount")
7575 else if ((0 > newAmount))
7676 then throw(("User cannot withdraw more than deposited funds, Your deposit is: " + toString((newAmount / 100000000))))
7777 else [IntegerEntry(UserWeeklyEarnings, 0), IntegerEntry("PrizeHeight", PrizeHeightValue), IntegerEntry("MaxDeposit", 0), ScriptTransfer(i.caller, newAmount, StakedToken)]
7878 }
7979
8080
8181
8282 @Callable(i)
8383 func PushReward () = {
8484 let minPushBlock = 10
8585 let minStakeBlock = (7 * 1440)
8686 let DelayAfterPush = 60
8787 let WaitTime = (1440 * 1)
8888 let minref = 3
8989 let FirstPushTimer = (7 * 1440)
9090 let userWalletGovernBalance = assetBalance(Address(i.caller.bytes), GovernToken)
9191 let pmt = if ((size(i.payments) == 1))
9292 then i.payments[0]
9393 else throw("Attached payment is required")
9494 let UserPush = (toBase58String(i.caller.bytes) + "_Push")
9595 let UserLastPushOldValue = match getInteger(this, UserPush) {
9696 case a: Int =>
9797 a
9898 case _ =>
9999 0
100100 }
101101 let UserRefsNum = (toBase58String(i.caller.bytes) + "_refs")
102102 let UserRefsNumValue = match getInteger(this, UserRefsNum) {
103103 case a: Int =>
104104 a
105105 case _ =>
106106 0
107107 }
108108 let HighestPushValue = match getInteger(this, "HighestPush") {
109109 case a: Int =>
110110 a
111111 case _ =>
112112 0
113113 }
114114 if ((userWalletGovernBalance > pmt.amount))
115115 then if (if (((pmt.amount + UserLastPushOldValue) > HighestPushValue))
116116 then (pmt.assetId == GovernToken)
117117 else false)
118118 then {
119119 let UserLastPushBlock = (toBase58String(i.caller.bytes) + "_UserLastPushBlock")
120120 let UserLastStakeBlock = (toBase58String(i.caller.bytes) + "_UserLastStakeBlock")
121121 let UserStake = (toBase58String(i.caller.bytes) + "_Staking")
122122 let ContractWalletStakeBalance = assetBalance(this, StakedToken)
123123 let StakeBalance = match getInteger(this, "StakeBalance") {
124124 case a: Int =>
125125 a
126126 case _ =>
127127 0
128128 }
129129 let PrizeAmount = match getInteger(this, "FundBox") {
130130 case a: Int =>
131131 a
132132 case _ =>
133133 0
134134 }
135135 let HeightTransactFundBox = match getInteger(this, "PrizeHeight") {
136136 case a: Int =>
137137 a
138138 case _ =>
139139 0
140140 }
141141 let PrizeHeightValue = if (if ((HeightTransactFundBox == 0))
142142 then (PrizeAmount == 0)
143143 else false)
144144 then 0
145145 else if (if ((HeightTransactFundBox == 0))
146146 then (PrizeAmount != 0)
147147 else false)
148148 then height
149149 else if (if ((HeightTransactFundBox != 0))
150150 then (PrizeAmount != 0)
151151 else false)
152152 then HeightTransactFundBox
153153 else 0
154154 let ActualDelay = match getInteger(this, "Delay") {
155155 case a: Int =>
156156 a
157157 case _ =>
158158 0
159159 }
160160 let HighestPushAddress = match getInteger(this, "HighestPushAddress") {
161161 case a: Int =>
162162 a
163163 case _ =>
164164 0
165165 }
166166 let UserLastPushBlockValue = match getInteger(this, UserLastPushBlock) {
167167 case a: Int =>
168168 a
169169 case _ =>
170170 0
171171 }
172172 let UserLastStakeBlockValue = match getInteger(this, UserLastStakeBlock) {
173173 case a: Int =>
174174 a
175175 case _ =>
176176 0
177177 }
178178 let UserStakeValue = match getInteger(this, UserStake) {
179179 case a: Int =>
180180 a
181181 case _ =>
182182 0
183183 }
184184 let DevBoxBalance = match getInteger(this, "DevBox") {
185185 case a: Int =>
186186 a
187187 case _ =>
188188 0
189189 }
190190 let DevBoxAmount = (DevBoxBalance + ((pmt.amount * 5) / 1000))
191191 let UserPushvalue = (pmt.amount + UserLastPushOldValue)
192192 let NewDelay = if (if ((height > ((PrizeHeightValue + ActualDelay) + WaitTime)))
193193 then (HighestPushValue > 0)
194194 else false)
195195 then FirstPushTimer
196196 else (ActualDelay + DelayAfterPush)
197197 let HighestPushAddressValue = if (if ((height > ((PrizeHeightValue + NewDelay) + WaitTime)))
198198 then (HighestPushValue > 0)
199199 else false)
200200 then ""
201201 else HighestPushAddress
202202 let PrizeHeightValueNew = if (if ((height > ((PrizeHeightValue + NewDelay) + WaitTime)))
203203 then (HighestPushValue > 0)
204204 else false)
205205 then height
206206 else PrizeHeightValue
207207 if (if ((UserPushvalue > 0))
208208 then ((height - UserLastStakeBlockValue) > minStakeBlock)
209209 else false)
210210 then if (((height - UserLastPushBlockValue) > minPushBlock))
211211 then if ((UserStakeValue > 0))
212212 then if ((UserPushvalue > HighestPushValue))
213213 then if ((PrizeAmount > 0))
214214 then if (if (if (if (((PrizeHeightValueNew + NewDelay) >= height))
215215 then true
216216 else (height >= ((PrizeHeightValueNew + NewDelay) + WaitTime)))
217217 then (HighestPushValue > 0)
218218 else false)
219219 then true
220220 else (HighestPushValue == 0))
221221 then if ((UserRefsNumValue >= minref))
222222 then [IntegerEntry(UserPush, UserPushvalue), StringEntry("HighestPushAddress", toBase58String(i.caller.bytes)), IntegerEntry("HighestPush", UserPushvalue), IntegerEntry(UserLastPushBlock, height), IntegerEntry("PrizeHeight", PrizeHeightValueNew), IntegerEntry("Delay", NewDelay), IntegerEntry("DevBox", DevBoxAmount)]
223223 else throw((("You have to have " + toString(minref)) + " referrals already staking for a minimum of 10 days, to push"))
224224 else {
225225 let txt = if ((HighestPushValue > 0))
226226 then "You cannot Push after rewarding Prize and before One day has passed after award"
227227 else "Unexpected error"
228228 throw(txt)
229229 }
230230 else throw("You cannot push before the reward is unlocked, no reward has been detected yet")
231231 else throw("Your push in troikan token, should be Higher than last Highest Push")
232232 else throw("To be able to participate in Pushing for the reward you need to Stake ASIMIs in the dApp")
233233 else throw("You have to wait 10min before you can make a new Push")
234234 else throw(("Your Push dot not comply one of the following conditions: " + "1. Positive Value for Push in Troikan Toke
235235 2. Must Staked ASIMI Token for a minimum of week "))
236236 }
237237 else throw((("Can deposit only positive amounts of Troikan Token, or Check your Wallet balance in Troika, you should have more than " + toString(HighestPushValue)) + " to push"))
238238 else throw("You do not have enough Troikan Tokens in your Wallet Balance, Please Harvest if you have earned Troikan wallet or transfer to your wallet necessary Troikan amount !")
239239 }
240240
241241
242242
243243 @Callable(i)
244244 func Stake () = {
245245 let WaitTime = (1440 * 1)
246246 let pmt = if ((size(i.payments) == 1))
247247 then i.payments[0]
248248 else throw("Attached payment is required")
249249 if (if ((pmt.amount > 0))
250250 then (pmt.assetId == StakedToken)
251251 else false)
252252 then {
253253 let GovernTokenSmartContractBalance = assetBalance(this, GovernToken)
254254 let UserAPY = (toBase58String(i.caller.bytes) + "_APY")
255255 let UserPush = (toBase58String(i.caller.bytes) + "_Push")
256256 let UserStakedTokenKey = (toBase58String(i.caller.bytes) + "_Staking")
257257 let UserGovernTokenKey = (toBase58String(i.caller.bytes) + "_Earnings")
258258 let UserLastStakeBlock = (toBase58String(i.caller.bytes) + "_UserLastStakeBlock")
259259 let UserStakeTransactionsKey = (toBase58String(i.caller.bytes) + "_StakedTransactions")
260260 let AddressHeight = (toBase58String(i.caller.bytes) + "_PrizeHeight")
261261 let UserWeekEarnings = (toBase58String(i.caller.bytes) + "_WeekEarning")
262262 let UserStakeTransactions = match getInteger(this, UserStakeTransactionsKey) {
263263 case a: Int =>
264264 a
265265 case _ =>
266266 0
267267 }
268268 let MaxDepositer = getStringValue(this, "MaxDepositer")
269269 let MaxDepositBlock = match getInteger(this, "MaxDepositBlock") {
270270 case a: Int =>
271271 a
272272 case _ =>
273273 0
274274 }
275275 let MaxDeposit = match getInteger(this, "MaxDeposit") {
276276 case a: Int =>
277277 a
278278 case _ =>
279279 0
280280 }
281281 let MaxDepositerValue = if ((pmt.amount > MaxDeposit))
282282 then toBase58String(i.caller.bytes)
283283 else MaxDepositer
284284 let MaxDepositValue = if ((pmt.amount > MaxDeposit))
285285 then pmt.amount
286286 else MaxDeposit
287287 let MaxDepositBlockValue = if ((pmt.amount > MaxDeposit))
288288 then height
289289 else MaxDepositBlock
290290 let UserPushValue = match getInteger(this, UserPush) {
291291 case a: Int =>
292292 a
293293 case _ =>
294294 0
295295 }
296296 let UserLastStakeBlockValue = match getInteger(this, UserLastStakeBlock) {
297297 case a: Int =>
298298 a
299299 case _ =>
300300 0
301301 }
302302 let UserLastStakeBlockNewValue = if ((UserLastStakeBlockValue == 0))
303303 then height
304304 else UserLastStakeBlockValue
305305 let NewUserStakeTransactions = (UserStakeTransactions + 1)
306306 let currentAmountStakedToken = match getInteger(this, UserStakedTokenKey) {
307307 case a: Int =>
308308 a
309309 case _ =>
310310 0
311311 }
312312 let newAmountStakedToken = (currentAmountStakedToken + pmt.amount)
313313 let ContractWalletStakeBalance = assetBalance(this, StakedToken)
314314 let StakeBalance = match getInteger(this, "StakeBalance") {
315315 case a: Int =>
316316 a
317317 case _ =>
318318 0
319319 }
320320 let StakeBalanceAmount = (StakeBalance + pmt.amount)
321321 let PrizeAmount = match getInteger(this, "FundBox") {
322322 case a: Int =>
323323 a
324324 case _ =>
325325 0
326326 }
327327 let UserWeekEarningsValue = match getInteger(this, UserWeekEarnings) {
328328 case a: Int =>
329329 a
330330 case _ =>
331331 0
332332 }
333333 let currentAmountGovernToken = match getInteger(this, UserGovernTokenKey) {
334334 case a: Int =>
335335 a
336336 case _ =>
337337 0
338338 }
339339 let HeightTransactFundBox = match getInteger(this, "PrizeHeight") {
340340 case a: Int =>
341341 a
342342 case _ =>
343343 0
344344 }
345345 let PrizeHeightValue = if (if ((HeightTransactFundBox == 0))
346346 then (PrizeAmount == 0)
347347 else false)
348348 then 0
349349 else if (if ((HeightTransactFundBox == 0))
350350 then (PrizeAmount != 0)
351351 else false)
352352 then height
353353 else if (if ((HeightTransactFundBox != 0))
354354 then (PrizeAmount != 0)
355355 else false)
356356 then HeightTransactFundBox
357357 else 0
358358 let ActualDelay = match getInteger(this, "Delay") {
359359 case a: Int =>
360360 a
361361 case _ =>
362362 0
363363 }
364364 let HighestPushValue = match getInteger(this, "HighestPush") {
365365 case a: Int =>
366366 a
367367 case _ =>
368368 0
369369 }
370370 let HighestPushAddress = getStringValue(this, "HighestPushAddress")
371371 let HighestPushAddressValue = if (if ((height > ((PrizeHeightValue + ActualDelay) + WaitTime)))
372372 then (HighestPushValue > 0)
373373 else false)
374374 then ""
375375 else HighestPushAddress
376376 let PrizeHeightValueNew = if (if ((height > ((PrizeHeightValue + ActualDelay) + WaitTime)))
377377 then (HighestPushValue > 0)
378378 else false)
379379 then height
380380 else PrizeHeightValue
381381 if ((100000000 > GovernTokenSmartContractBalance))
382382 then throw("No enough GovernToken In Contract, Please deposit GovernTokens")
383383 else {
384384 let Reward = if ((StakeBalance == 0))
385385 then 10000
386386 else if ((NewUserStakeTransactions > 10))
387387 then ((10000 * NewUserStakeTransactions) * (1 + (newAmountStakedToken / StakeBalance)))
388388 else (10000 * (1 + (newAmountStakedToken / StakeBalance)))
389389 let UserAPYValue = if ((currentAmountGovernToken > 0))
390390 then ((100 * Reward) / currentAmountGovernToken)
391391 else 0
392392 let newAmountGovernToken = (currentAmountGovernToken + Reward)
393393 [IntegerEntry(UserGovernTokenKey, newAmountGovernToken), IntegerEntry(UserStakedTokenKey, newAmountStakedToken), IntegerEntry(UserStakeTransactionsKey, NewUserStakeTransactions), IntegerEntry("StakeBalance", StakeBalanceAmount), IntegerEntry("PrizeHeight", PrizeHeightValueNew), IntegerEntry(UserAPY, UserAPYValue), IntegerEntry(UserLastStakeBlock, UserLastStakeBlockNewValue), IntegerEntry(UserPush, UserPushValue), StringEntry("MaxDepositer", MaxDepositerValue), IntegerEntry("MaxDeposit", MaxDepositValue), IntegerEntry("MaxDepositBlock", MaxDepositBlockValue), StringEntry("HighestPushAddress", HighestPushAddressValue), IntegerEntry(UserWeekEarnings, UserWeekEarningsValue), ScriptTransfer(i.caller, Reward, GovernToken)]
394394 }
395395 }
396396 else throw("Can deposit only StakeToken")
397397 }
398398
399399
400400
401401 @Callable(i)
402402 func WithdrawStakedFunds (amount) = {
403403 let WaitTime = (1440 * 1)
404404 let UserLastStakeBlock = (toBase58String(i.caller.bytes) + "_UserLastStakeBlock")
405405 let UserStakedTokenKey = (toBase58String(i.caller.bytes) + "_Staking")
406406 let UserGovernTokenKey = ((toBase58String(i.caller.bytes) + "_") + toBase58String(GovernToken))
407407 let ContractWalletStakeBalance = assetBalance(this, StakedToken)
408408 let UserLastStakeBlockValue = match getInteger(this, UserLastStakeBlock) {
409409 case a: Int =>
410410 a
411411 case _ =>
412412 0
413413 }
414414 let StakeBalance = match getInteger(this, "StakeBalance") {
415415 case a: Int =>
416416 a
417417 case _ =>
418418 0
419419 }
420420 let PrizeAmount = match getInteger(this, "FundBox") {
421421 case a: Int =>
422422 a
423423 case _ =>
424424 0
425425 }
426426 let HeightTransactFundBox = match getInteger(this, "PrizeHeight") {
427427 case a: Int =>
428428 a
429429 case _ =>
430430 0
431431 }
432432 let ActualDelay = match getInteger(this, "Delay") {
433433 case a: Int =>
434434 a
435435 case _ =>
436436 0
437437 }
438438 let HighestPushValue = match getInteger(this, "HighestPush") {
439439 case a: Int =>
440440 a
441441 case _ =>
442442 0
443443 }
444444 let PrizeHeightValue = if (if ((HeightTransactFundBox == 0))
445445 then (PrizeAmount == 0)
446446 else false)
447447 then 0
448448 else if (if ((HeightTransactFundBox == 0))
449449 then (PrizeAmount != 0)
450450 else false)
451451 then height
452452 else if (if ((HeightTransactFundBox != 0))
453453 then (PrizeAmount != 0)
454454 else false)
455455 then HeightTransactFundBox
456456 else 0
457457 let HighestPushAddress = getStringValue(this, "HighestPushAddress")
458458 let HighestPushAddressValue = if (if ((height > ((PrizeHeightValue + ActualDelay) + WaitTime)))
459459 then (HighestPushValue > 0)
460460 else false)
461461 then ""
462462 else HighestPushAddress
463463 let PrizeHeightValueNew = if (if ((height > ((PrizeHeightValue + ActualDelay) + WaitTime)))
464464 then (HighestPushValue > 0)
465465 else false)
466466 then height
467467 else PrizeHeightValue
468468 let currentKey = toBase58String(i.caller.bytes)
469469 let currentAmount = match getInteger(this, UserStakedTokenKey) {
470470 case a: Int =>
471471 a
472472 case _ =>
473473 0
474474 }
475475 let newAmount = (currentAmount - amount)
476476 let StakeBalanceAmount = (StakeBalance - amount)
477477 let UserLastStakeBlockNewValue = if ((StakeBalanceAmount == 0))
478478 then 0
479479 else UserLastStakeBlockValue
480480 if ((0 > amount))
481481 then throw("Can't withdraw negative amount")
482482 else if ((0 > newAmount))
483483 then throw(("User cannot withdraw more than deposited funds, Your deposit is: " + toString((currentAmount / 100000000))))
484484 else if ((100000000 > assetBalance(this, GovernToken)))
485485 then throw(("Not enough Troika In Contract: " + toString((assetBalance(this, GovernToken) / 100000000))))
486486 else [IntegerEntry(UserGovernTokenKey, 100000000), IntegerEntry(UserStakedTokenKey, newAmount), IntegerEntry("StakeBalance", StakeBalanceAmount), IntegerEntry("PrizeHeight", PrizeHeightValueNew), IntegerEntry(UserLastStakeBlock, UserLastStakeBlockNewValue), StringEntry("HighestPushAddress", HighestPushAddressValue), ScriptTransfer(i.caller, 100000000, GovernToken), ScriptTransfer(i.caller, amount, StakedToken)]
487487 }
488488
489489
490490
491491 @Callable(i)
492492 func WithdrawBigStakeReward () = {
493493 let WaitTime = (1440 * 1)
494494 let LastBigStakerRewardBlock = (toBase58String(i.caller.bytes) + "_LastBigStakerRewardBlock")
495495 let BigStakerReward = (toBase58String(i.caller.bytes) + "_BigStaker")
496496 let UserGovernTokenKey = (toBase58String(i.caller.bytes) + "_Earnings")
497497 let LimiWithdrawReward = 10
498498 let UserGovernTokenAmount = match getInteger(this, UserGovernTokenKey) {
499499 case a: Int =>
500500 a
501501 case _ =>
502502 0
503503 }
504504 let LastBigStakerRewardBlockValue = match getInteger(this, LastBigStakerRewardBlock) {
505505 case a: Int =>
506506 a
507507 case _ =>
508508 0
509509 }
510510 let BigStakerRewardTotalValue = match getInteger(this, "BigStakerRewardTotal") {
511511 case a: Int =>
512512 a
513513 case _ =>
514514 0
515515 }
516516 let PrizeAmount = match getInteger(this, "FundBox") {
517517 case a: Int =>
518518 a
519519 case _ =>
520520 0
521521 }
522522 let HeightTransactFundBox = match getInteger(this, "PrizeHeight") {
523523 case a: Int =>
524524 a
525525 case _ =>
526526 0
527527 }
528528 let PrizeHeightValue = if (if ((HeightTransactFundBox == 0))
529529 then (PrizeAmount == 0)
530530 else false)
531531 then 0
532532 else if (if ((HeightTransactFundBox == 0))
533533 then (PrizeAmount != 0)
534534 else false)
535535 then height
536536 else if (if ((HeightTransactFundBox != 0))
537537 then (PrizeAmount != 0)
538538 else false)
539539 then HeightTransactFundBox
540540 else 0
541541 let ActualDelay = match getInteger(this, "Delay") {
542542 case a: Int =>
543543 a
544544 case _ =>
545545 0
546546 }
547547 let HighestPushValue = match getInteger(this, "HighestPush") {
548548 case a: Int =>
549549 a
550550 case _ =>
551551 0
552552 }
553553 let HighestPushAddress = getStringValue(this, "HighestPushAddress")
554554 let HighestPushAddressValue = if (if ((height > ((PrizeHeightValue + ActualDelay) + WaitTime)))
555555 then (HighestPushValue > 0)
556556 else false)
557557 then ""
558558 else HighestPushAddress
559559 let PrizeHeightValueNew = if (if ((height > ((PrizeHeightValue + ActualDelay) + WaitTime)))
560560 then (HighestPushValue > 0)
561561 else false)
562562 then height
563563 else PrizeHeightValue
564564 let currentKey = toBase58String(i.caller.bytes)
565565 let amount = match getInteger(this, BigStakerReward) {
566566 case a: Int =>
567567 a
568568 case _ =>
569569 0
570570 }
571571 let StakeBalanceAmount = (BigStakerRewardTotalValue - amount)
572572 let BigStakerRewardTax = if ((0 > ((UserGovernTokenAmount / 1000) * (1000 - ((1000 * (height - LastBigStakerRewardBlockValue)) / (LimiWithdrawReward * 1440))))))
573573 then (1000 * 100000000)
574574 else ((UserGovernTokenAmount / 1000) * (1000 - ((1000 * (height - LastBigStakerRewardBlockValue)) / (LimiWithdrawReward * 1440))))
575575 if ((0 > amount))
576576 then throw(((("Can't withdraw negative amount " + toString((UserGovernTokenAmount - (1000 * 100000000)))) + " ... ") + toString(amount)))
577577 else if (if (if (((1000 * 100000000) > UserGovernTokenAmount))
578578 then true
579579 else (1 > amount))
580580 then true
581581 else (0 > (UserGovernTokenAmount - BigStakerRewardTax)))
582582 then throw(("No ASIMI reward available, or Not enough Earned Troikan Tokens to do transaction, you have: " + toString((UserGovernTokenAmount / 100000000))))
583583 else if ((StakeBalanceAmount > 0))
584584 then [IntegerEntry(BigStakerReward, 0), IntegerEntry("BigStakerRewardTotal", StakeBalanceAmount), IntegerEntry(UserGovernTokenKey, (UserGovernTokenAmount - BigStakerRewardTax)), IntegerEntry("PrizeHeight", PrizeHeightValue), IntegerEntry(LastBigStakerRewardBlock, height), StringEntry("HighestPushAddress", HighestPushAddressValue), ScriptTransfer(i.caller, amount, StakedToken)]
585585 else throw("Balance Error, Total Big Stakers cannot be negative, Operation won't be authorized")
586586 }
587587
588588
589589
590590 @Callable(i)
591591 func HarvestGovernToiken (amount) = {
592592 let ContractWalletStakeBalance = assetBalance(this, StakedToken)
593593 let UserGovernTokenKey = (toBase58String(i.caller.bytes) + "_Earnings")
594594 let StakeBalance = match getInteger(this, "StakeBalance") {
595595 case a: Int =>
596596 a
597597 case _ =>
598598 0
599599 }
600600 let PrizeAmount = match getInteger(this, "FundBox") {
601601 case a: Int =>
602602 a
603603 case _ =>
604604 0
605605 }
606606 let HeightTransactFundBox = match getInteger(this, "PrizeHeight") {
607607 case a: Int =>
608608 a
609609 case _ =>
610610 0
611611 }
612612 let PrizeHeightValue = if (if ((HeightTransactFundBox == 0))
613613 then (PrizeAmount == 0)
614614 else false)
615615 then 0
616616 else if (if ((HeightTransactFundBox == 0))
617617 then (PrizeAmount != 0)
618618 else false)
619619 then height
620620 else if (if ((HeightTransactFundBox != 0))
621621 then (PrizeAmount != 0)
622622 else false)
623623 then HeightTransactFundBox
624624 else 0
625625 let currentKey = toBase58String(i.caller.bytes)
626626 let currentAmount = match getInteger(this, UserGovernTokenKey) {
627627 case a: Int =>
628628 a
629629 case _ =>
630630 0
631631 }
632632 let newAmount = (currentAmount - amount)
633633 if ((0 > amount))
634634 then throw("Can't withdraw negative amount")
635635 else if ((0 > newAmount))
636636 then throw(("User cannot withdraw more than deposited funds, Your deposit is: " + toString((currentAmount / 100000000))))
637637 else [IntegerEntry(UserGovernTokenKey, newAmount), IntegerEntry("PrizeHeight", PrizeHeightValue), ScriptTransfer(i.caller, amount, GovernToken)]
638638 }
639639
640640
641641
642642 @Callable(i)
643643 func delayprize () = {
644644 let DelayDays = (1440 * 1)
645645 let WaitTime = (1440 * 1)
646646 let UserGovernTokenKey = ((toBase58String(i.caller.bytes) + "_") + toBase58String(GovernToken))
647647 let UserWalletSGovernBalance = assetBalance(Address(i.caller.bytes), GovernToken)
648648 let ContractWalletStakeBalance = assetBalance(this, StakedToken)
649649 let StakeBalance = match getInteger(this, "StakeBalance") {
650650 case a: Int =>
651651 a
652652 case _ =>
653653 0
654654 }
655655 let PrizeAmount = match getInteger(this, "FundBox") {
656656 case a: Int =>
657657 a
658658 case _ =>
659659 0
660660 }
661661 let HeightTransactFundBox = match getInteger(this, "PrizeHeight") {
662662 case a: Int =>
663663 a
664664 case _ =>
665665 0
666666 }
667667 let ActualDelay = match getInteger(this, "Delay") {
668668 case a: Int =>
669669 a
670670 case _ =>
671671 0
672672 }
673673 let PrizeHeightValue = if (if ((HeightTransactFundBox == 0))
674674 then (PrizeAmount == 0)
675675 else false)
676676 then 0
677677 else if (if ((HeightTransactFundBox == 0))
678678 then (PrizeAmount != 0)
679679 else false)
680680 then height
681681 else if (if ((HeightTransactFundBox != 0))
682682 then (PrizeAmount != 0)
683683 else false)
684684 then HeightTransactFundBox
685685 else 0
686686 let HighestPushValue = match getInteger(this, "HighestPush") {
687687 case a: Int =>
688688 a
689689 case _ =>
690690 0
691691 }
692692 let HighestPushAddress = getStringValue(this, "HighestPushAddress")
693693 let HighestPushAddressValue = if (if ((height > ((PrizeHeightValue + ActualDelay) + WaitTime)))
694694 then (HighestPushValue > 0)
695695 else false)
696696 then ""
697697 else HighestPushAddress
698698 let PrizeHeightValueNew = if (if ((height > ((PrizeHeightValue + ActualDelay) + WaitTime)))
699699 then (HighestPushValue > 0)
700700 else false)
701701 then height
702702 else PrizeHeightValue
703703 let ActualDelayCost = match getInteger(this, "DelayCost") {
704704 case a: Int =>
705705 a
706706 case _ =>
707707 10
708708 }
709709 let pmt = if ((size(i.payments) == 1))
710710 then i.payments[0]
711711 else throw("Attached payment is required")
712712 let DevBoxBalance = match getInteger(this, "DevBox") {
713713 case a: Int =>
714714 a
715715 case _ =>
716716 0
717717 }
718718 if (if (isDefined(pmt.assetId))
719719 then (pmt.assetId == GovernToken)
720720 else false)
721721 then if ((PrizeAmount > 0))
722722 then {
723723 let UserGovernTokenAmount = pmt.amount
724724 let DevBoxAmount = (DevBoxBalance + ((pmt.amount * 5) / 1000))
725725 let NewDelayCost = if ((ActualDelayCost == 0))
726726 then 1000000000
727727 else (2 * ActualDelayCost)
728728 if ((UserGovernTokenAmount >= NewDelayCost))
729729 then {
730730 let NewDelay = (ActualDelay + DelayDays)
731731 [IntegerEntry("Delay", NewDelay), IntegerEntry("DelayCost", NewDelayCost), IntegerEntry("PrizeHeight", PrizeHeightValueNew), IntegerEntry("DevBox", DevBoxAmount), StringEntry("HighestPushAddress", HighestPushAddressValue)]
732732 }
733733 else throw((("To delay the release of the reward ONE DAY later than expected, you need " + toString(NewDelayCost)) + "TROIKAs"))
734734 }
735735 else throw("You cannot delay the reward before reward is received! Please wait until a reward is available")
736736 else throw("Can Use only Troika Token to Delay Reward")
737737 }
738738
739739
740740
741741 @Callable(i)
742742 func ClaimPrize () = {
743743 let UserStakedTokenKey = (toBase58String(i.caller.bytes) + "_Staking")
744744 let UserPush = (toBase58String(i.caller.bytes) + "_Push")
745745 let UserLastStakeBlock = (toBase58String(i.caller.bytes) + "_UserLastStakeBlock")
746746 let minStakeBlock = (1440 * 7)
747747 let minref = 3
748748 let ContractGovTokenBalance = assetBalance(this, GovernToken)
749749 let ContractWalletStakeBalance = assetBalance(this, StakedToken)
750750 let StakeBalance = match getInteger(this, "StakeBalance") {
751751 case a: Int =>
752752 a
753753 case _ =>
754754 0
755755 }
756756 let PrizeAmount = match getInteger(this, "FundBox") {
757757 case a: Int =>
758758 a
759759 case _ =>
760760 0
761761 }
762762 let UserPushValue = match getInteger(this, UserPush) {
763763 case a: Int =>
764764 a
765765 case _ =>
766766 0
767767 }
768768 let UserLastStakeBlockValue = match getInteger(this, UserLastStakeBlock) {
769769 case a: Int =>
770770 a
771771 case _ =>
772772 0
773773 }
774774 let UserStakedTokenAmount = match getInteger(this, UserStakedTokenKey) {
775775 case a: Int =>
776776 a
777777 case _ =>
778778 0
779779 }
780780 let ActualDelay = match getInteger(this, "Delay") {
781781 case a: Int =>
782782 a
783783 case _ =>
784784 0
785785 }
786786 let PrizeWinner = getStringValue(this, "HighestPushAddress")
787787 let PrizeHeight = match getInteger(this, "PrizeHeight") {
788788 case a: Int =>
789789 a
790790 case _ =>
791791 0
792792 }
793793 let HighestPushValue = match getInteger(this, "HighestPush") {
794794 case a: Int =>
795795 a
796796 case _ =>
797797 0
798798 }
799799 let UserRefsNum = (toBase58String(i.caller.bytes) + "_refs")
800800 let UserRefsNumValue = match getInteger(this, UserRefsNum) {
801801 case a: Int =>
802802 a
803803 case _ =>
804804 0
805805 }
806806 if (if ((PrizeAmount == 0))
807807 then true
808808 else (10000000000 > ContractGovTokenBalance))
809809 then throw("No prize to Claim or Not enough Govern Token en Contract (Min 100 Troika)")
810810 else if ((toBase58String(i.caller.bytes) != PrizeWinner))
811811 then throw("You are not the winner hence cannot claim the reward ")
812812 else if (if ((100000000 > UserStakedTokenAmount))
813813 then (minStakeBlock > UserLastStakeBlockValue)
814814 else false)
815815 then throw("You have to Stake ASIMI Token to claim reward ")
816816 else if (if ((height > (PrizeHeight + ActualDelay)))
817817 then (UserPushValue >= HighestPushValue)
818818 else false)
819819 then if ((UserRefsNumValue >= minref))
820820 then [IntegerEntry(PrizeWinner, PrizeAmount), IntegerEntry("FundBox", 0), IntegerEntry("HighestPush", 0), IntegerEntry(UserPush, 0), StringEntry("HighestPushAddress", ""), IntegerEntry("PrizeHeight", 0), IntegerEntry("Delay", 0), IntegerEntry("DelayCost", 0), StringEntry("LastWinner", PrizeWinner), IntegerEntry("LastPrize", PrizeAmount), ScriptTransfer(i.caller, PrizeAmount, StakedToken), ScriptTransfer(i.caller, 1000000000, GovernToken)]
821821 else throw((("You have to have " + toString(minref)) + " referrals already staking for a minimum of 10 days to Claim the prize"))
822822 else throw("You have to be the user with the highest Push and wait till countown is finished, to claim Reward")
823823 }
824824
825825
826826
827827 @Callable(i)
828828 func Addmentor (Mentor) = {
829829 let UserMentorAddress = (toBase58String(i.caller.bytes) + "_Mentor")
830830 if ((Mentor != ""))
831831 then [StringEntry(UserMentorAddress, Mentor)]
832832 else throw("Mentor's Address cannot be empty")
833833 }
834834
835835
836836
837837 @Callable(i)
838838 func GetLikesPackage (TwitterUserId,TwittId) = {
839839 let pmt = if ((size(i.payments) == 1))
840840 then i.payments[0]
841841 else throw("Attached payment is required")
842842 if (if (if ((pmt.amount > LikePackagePrice))
843843 then (i.payments[0].assetId == StakedToken)
844844 else false)
845845 then (i.payments[1].assetId == GovernToken)
846846 else false)
847847 then [IntegerEntry((toString(TwitterUserId) + "_Twitt2Like"), TwittId)]
848848 else throw("You Only can pay with ASIMI Tokens")
849849 }
850850
851851

github/deemru/w8io/3ef1775 
96.94 ms