tx · x2dZ7cFEoCPPWzv3HYFUZypX8r9vea3nbUSrNVMqAuU

3N9evuqxGecMq9hBmpdJu2VkMzdR5VNVrvK:  -0.02200000 Waves

2022.06.30 19:12 [2119390] smart account 3N9evuqxGecMq9hBmpdJu2VkMzdR5VNVrvK > SELF 0.00000000 Waves

{ "type": 13, "id": "x2dZ7cFEoCPPWzv3HYFUZypX8r9vea3nbUSrNVMqAuU", "fee": 2200000, "feeAssetId": null, "timestamp": 1656605559673, "version": 2, "chainId": 84, "sender": "3N9evuqxGecMq9hBmpdJu2VkMzdR5VNVrvK", "senderPublicKey": "AHY8zupoYc6HPJ5fh1gQiGE9bNZSeifFbcQQ89okxVug", "proofs": [ "4XkyjipWnAtg2TWDWPhV3je71uz1Bdu1TPc5HXdRkuRmsDeD3DJyX4eLpCVHccQEXfGF4VcJevMZDXc3eJSiEsmE" ], "script": "base64:BgIlCAISABIAEgASABIDCgEBEgASAwoBARIAEgASAwoBCBIECgIBAQQAC1N0YWtlZFRva2VuASD5rl2FqqDB81weFWSW9S5FyKYquYAb4MpXXcAlqscPUAALR292ZXJuVG9rZW4BIAFshcLXQMYuV8Rzs8ULZ07fOlzF6BxYes7P/1GRlpktABRMaWtlUGFja2FnZUFTSU1JQ29zdAkAaAIAAQCAwtcvABZMaWtlUGFja2FnZVRST0lLQU5Db3N0CQBoAgAFAIDC1y8LAWkBC0RldldpdGhkcmF3AAQKY3VycmVudEtleQkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzAwkAAAIFCmN1cnJlbnRLZXkCIzNQNzRidUh0OThCbm9qRmNhUkVKWnRiOThLRHlVbVpHZW1KBAxEZXZCb3hBbW91bnQEByRtYXRjaDAJAJoIAgUEdGhpcwIGRGV2Qm94AwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAAAwkAZgIAAAUMRGV2Qm94QW1vdW50CQACAQISTm90IGVub3VnaCBiYWxhbmNlCQDMCAIJAQxJbnRlZ2VyRW50cnkCAgZEZXZCb3gAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIFDERldkJveEFtb3VudAULR292ZXJuVG9rZW4FA25pbAkAAgECLFlvdSBjYW5ub3Qgd2l0aGRyYXcgYXMgeW91ciBhcmUgbm90IHRoZSBEZXYuAWkBFVdpdGhkcmF3V2Vla2x5RWFybmluZwAEGkNvbnRyYWN0V2FsbGV0U3Rha2VCYWxhbmNlCQDwBwIFBHRoaXMFC1N0YWtlZFRva2VuBAxNYXhEZXBvc2l0ZXIJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMCDE1heERlcG9zaXRlcgQSVXNlcldlZWtseUVhcm5pbmdzCQCsAgIJANgEAQgIBQFpBmNhbGxlcgVieXRlcwIMX1dlZWtFYXJuaW5nBAxTdGFrZUJhbGFuY2UEByRtYXRjaDAJAJoIAgUEdGhpcwIMU3Rha2VCYWxhbmNlAwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAABAtQcml6ZUFtb3VudAQHJG1hdGNoMAkAmggCBQR0aGlzAgdGdW5kQm94AwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAABBVIZWlnaHRUcmFuc2FjdEZ1bmRCb3gEByRtYXRjaDAJAJoIAgUEdGhpcwILUHJpemVIZWlnaHQDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEEFByaXplSGVpZ2h0VmFsdWUDAwkAAAIFFUhlaWdodFRyYW5zYWN0RnVuZEJveAAACQAAAgULUHJpemVBbW91bnQAAAcAAAMDCQAAAgUVSGVpZ2h0VHJhbnNhY3RGdW5kQm94AAAJAQIhPQIFC1ByaXplQW1vdW50AAAHBQZoZWlnaHQDAwkBAiE9AgUVSGVpZ2h0VHJhbnNhY3RGdW5kQm94AAAJAQIhPQIFC1ByaXplQW1vdW50AAAHBRVIZWlnaHRUcmFuc2FjdEZ1bmRCb3gAAAQKY3VycmVudEtleQkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzBAluZXdBbW91bnQEByRtYXRjaDAJAJoIAgUEdGhpcwUSVXNlcldlZWtseUVhcm5pbmdzAwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAAAwkAZgIAAAUJbmV3QW1vdW50CQACAQIeQ2FuJ3Qgd2l0aGRyYXcgbmVnYXRpdmUgYW1vdW50AwkAZgIAAAUJbmV3QW1vdW50CQACAQkArAICAkFVc2VyIGNhbm5vdCB3aXRoZHJhdyBtb3JlIHRoYW4gZGVwb3NpdGVkIGZ1bmRzLCBZb3VyIGRlcG9zaXQgaXM6IAkApAMBCQBpAgUJbmV3QW1vdW50AIDC1y8JAMwIAgkBDEludGVnZXJFbnRyeQIFElVzZXJXZWVrbHlFYXJuaW5ncwAACQDMCAIJAQxJbnRlZ2VyRW50cnkCAgtQcml6ZUhlaWdodAUQUHJpemVIZWlnaHRWYWx1ZQkAzAgCCQEMSW50ZWdlckVudHJ5AgIKTWF4RGVwb3NpdAAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgUJbmV3QW1vdW50BQtTdGFrZWRUb2tlbgUDbmlsAWkBClB1c2hSZXdhcmQABAxtaW5QdXNoQmxvY2sACgQNbWluU3Rha2VCbG9jawkAaAIABwCgCwQORGVsYXlBZnRlclB1c2gAPAQIV2FpdFRpbWUJAGgCAKALAAEEBm1pbnJlZgADBA5GaXJzdFB1c2hUaW1lcgkAaAIABwCgCwQXdXNlcldhbGxldEdvdmVybkJhbGFuY2UJAPAHAgkBB0FkZHJlc3MBCAgFAWkGY2FsbGVyBWJ5dGVzBQtHb3Zlcm5Ub2tlbgQDcG10AwkAAAIJAJADAQgFAWkIcGF5bWVudHMAAQkAkQMCCAUBaQhwYXltZW50cwAACQACAQIcQXR0YWNoZWQgcGF5bWVudCBpcyByZXF1aXJlZAQIVXNlclB1c2gJAKwCAgkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzAgVfUHVzaAQUVXNlckxhc3RQdXNoT2xkVmFsdWUEByRtYXRjaDAJAJoIAgUEdGhpcwUIVXNlclB1c2gDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEC1VzZXJSZWZzTnVtCQCsAgIJANgEAQgIBQFpBmNhbGxlcgVieXRlcwIFX3JlZnMEEFVzZXJSZWZzTnVtVmFsdWUEByRtYXRjaDAJAJoIAgUEdGhpcwULVXNlclJlZnNOdW0DCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEEEhpZ2hlc3RQdXNoVmFsdWUEByRtYXRjaDAJAJoIAgUEdGhpcwILSGlnaGVzdFB1c2gDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAADCQBmAgUXdXNlcldhbGxldEdvdmVybkJhbGFuY2UIBQNwbXQGYW1vdW50AwMJAGYCCQBkAggFA3BtdAZhbW91bnQFFFVzZXJMYXN0UHVzaE9sZFZhbHVlBRBIaWdoZXN0UHVzaFZhbHVlCQAAAggFA3BtdAdhc3NldElkBQtHb3Zlcm5Ub2tlbgcEEVVzZXJMYXN0UHVzaEJsb2NrCQCsAgIJANgEAQgIBQFpBmNhbGxlcgVieXRlcwISX1VzZXJMYXN0UHVzaEJsb2NrBBJVc2VyTGFzdFN0YWtlQmxvY2sJAKwCAgkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzAhNfVXNlckxhc3RTdGFrZUJsb2NrBAlVc2VyU3Rha2UJAKwCAgkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzAghfU3Rha2luZwQaQ29udHJhY3RXYWxsZXRTdGFrZUJhbGFuY2UJAPAHAgUEdGhpcwULU3Rha2VkVG9rZW4EDFN0YWtlQmFsYW5jZQQHJG1hdGNoMAkAmggCBQR0aGlzAgxTdGFrZUJhbGFuY2UDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEC1ByaXplQW1vdW50BAckbWF0Y2gwCQCaCAIFBHRoaXMCB0Z1bmRCb3gDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEFUhlaWdodFRyYW5zYWN0RnVuZEJveAQHJG1hdGNoMAkAmggCBQR0aGlzAgtQcml6ZUhlaWdodAMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAQQUHJpemVIZWlnaHRWYWx1ZQMDCQAAAgUVSGVpZ2h0VHJhbnNhY3RGdW5kQm94AAAJAAACBQtQcml6ZUFtb3VudAAABwAAAwMJAAACBRVIZWlnaHRUcmFuc2FjdEZ1bmRCb3gAAAkBAiE9AgULUHJpemVBbW91bnQAAAcFBmhlaWdodAMDCQECIT0CBRVIZWlnaHRUcmFuc2FjdEZ1bmRCb3gAAAkBAiE9AgULUHJpemVBbW91bnQAAAcFFUhlaWdodFRyYW5zYWN0RnVuZEJveAAABAtBY3R1YWxEZWxheQQHJG1hdGNoMAkAmggCBQR0aGlzAgVEZWxheQMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAQSSGlnaGVzdFB1c2hBZGRyZXNzBAckbWF0Y2gwCQCaCAIFBHRoaXMCEkhpZ2hlc3RQdXNoQWRkcmVzcwMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAQWVXNlckxhc3RQdXNoQmxvY2tWYWx1ZQQHJG1hdGNoMAkAmggCBQR0aGlzBRFVc2VyTGFzdFB1c2hCbG9jawMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAQXVXNlckxhc3RTdGFrZUJsb2NrVmFsdWUEByRtYXRjaDAJAJoIAgUEdGhpcwUSVXNlckxhc3RTdGFrZUJsb2NrAwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAABA5Vc2VyU3Rha2VWYWx1ZQQHJG1hdGNoMAkAmggCBQR0aGlzBQlVc2VyU3Rha2UDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEDURldkJveEJhbGFuY2UEByRtYXRjaDAJAJoIAgUEdGhpcwIGRGV2Qm94AwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAABAxEZXZCb3hBbW91bnQJAGQCBQ1EZXZCb3hCYWxhbmNlCQBpAgkAaAIIBQNwbXQGYW1vdW50AAUA6AcEDVVzZXJQdXNodmFsdWUJAGQCCAUDcG10BmFtb3VudAUUVXNlckxhc3RQdXNoT2xkVmFsdWUECE5ld0RlbGF5AwMJAGYCBQZoZWlnaHQJAGQCCQBkAgUQUHJpemVIZWlnaHRWYWx1ZQULQWN0dWFsRGVsYXkFCFdhaXRUaW1lCQBmAgUQSGlnaGVzdFB1c2hWYWx1ZQAABwUORmlyc3RQdXNoVGltZXIJAGQCBQtBY3R1YWxEZWxheQUORGVsYXlBZnRlclB1c2gEF0hpZ2hlc3RQdXNoQWRkcmVzc1ZhbHVlAwMJAGYCBQZoZWlnaHQJAGQCCQBkAgUQUHJpemVIZWlnaHRWYWx1ZQUITmV3RGVsYXkFCFdhaXRUaW1lCQBmAgUQSGlnaGVzdFB1c2hWYWx1ZQAABwIABRJIaWdoZXN0UHVzaEFkZHJlc3MEE1ByaXplSGVpZ2h0VmFsdWVOZXcDAwkAZgIFBmhlaWdodAkAZAIJAGQCBRBQcml6ZUhlaWdodFZhbHVlBQhOZXdEZWxheQUIV2FpdFRpbWUJAGYCBRBIaWdoZXN0UHVzaFZhbHVlAAAHBQZoZWlnaHQFEFByaXplSGVpZ2h0VmFsdWUDAwkAZgIFDVVzZXJQdXNodmFsdWUAAAkAZgIJAGUCBQZoZWlnaHQFF1VzZXJMYXN0U3Rha2VCbG9ja1ZhbHVlBQ1taW5TdGFrZUJsb2NrBwMJAGYCCQBlAgUGaGVpZ2h0BRZVc2VyTGFzdFB1c2hCbG9ja1ZhbHVlBQxtaW5QdXNoQmxvY2sDCQBmAgUOVXNlclN0YWtlVmFsdWUAAAMJAGYCBQ1Vc2VyUHVzaHZhbHVlBRBIaWdoZXN0UHVzaFZhbHVlAwkAZgIFC1ByaXplQW1vdW50AAADAwMDCQBnAgkAZAIFE1ByaXplSGVpZ2h0VmFsdWVOZXcFCE5ld0RlbGF5BQZoZWlnaHQGCQBnAgUGaGVpZ2h0CQBkAgkAZAIFE1ByaXplSGVpZ2h0VmFsdWVOZXcFCE5ld0RlbGF5BQhXYWl0VGltZQkAZgIFEEhpZ2hlc3RQdXNoVmFsdWUAAAcGCQAAAgUQSGlnaGVzdFB1c2hWYWx1ZQAAAwkAZwIFEFVzZXJSZWZzTnVtVmFsdWUFBm1pbnJlZgkAzAgCCQEMSW50ZWdlckVudHJ5AgUIVXNlclB1c2gFDVVzZXJQdXNodmFsdWUJAMwIAgkBC1N0cmluZ0VudHJ5AgISSGlnaGVzdFB1c2hBZGRyZXNzCQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMJAMwIAgkBDEludGVnZXJFbnRyeQICC0hpZ2hlc3RQdXNoBQ1Vc2VyUHVzaHZhbHVlCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRFVc2VyTGFzdFB1c2hCbG9jawUGaGVpZ2h0CQDMCAIJAQxJbnRlZ2VyRW50cnkCAgtQcml6ZUhlaWdodAUTUHJpemVIZWlnaHRWYWx1ZU5ldwkAzAgCCQEMSW50ZWdlckVudHJ5AgIFRGVsYXkFCE5ld0RlbGF5CQDMCAIJAQxJbnRlZ2VyRW50cnkCAgZEZXZCb3gFDERldkJveEFtb3VudAUDbmlsCQACAQkArAICCQCsAgICEVlvdSBoYXZlIHRvIGhhdmUgCQCkAwEFBm1pbnJlZgI8IHJlZmVycmFscyBhbHJlYWR5IHN0YWtpbmcgZm9yIGEgbWluaW11bSBvZiAxMCBkYXlzLCB0byBwdXNoBAN0eHQDCQBmAgUQSGlnaGVzdFB1c2hWYWx1ZQAAAk9Zb3UgY2Fubm90IFB1c2ggYWZ0ZXIgcmV3YXJkaW5nIFByaXplIGFuZCBiZWZvcmUgT25lIGRheSBoYXMgcGFzc2VkIGFmdGVyIGF3YXJkAhBVbmV4cGVjdGVkIGVycm9yCQACAQUDdHh0CQACAQJOWW91IGNhbm5vdCBwdXNoIGJlZm9yZSB0aGUgcmV3YXJkIGlzIHVubG9ja2VkLCBubyByZXdhcmQgaGFzIGJlZW4gZGV0ZWN0ZWQgeWV0CQACAQJDWW91ciBwdXNoIGluIHRyb2lrYW4gdG9rZW4sIHNob3VsZCBiZSBIaWdoZXIgdGhhbiBsYXN0IEhpZ2hlc3QgUHVzaAkAAgECWFRvIGJlIGFibGUgdG8gcGFydGljaXBhdGUgaW4gUHVzaGluZyBmb3IgdGhlIHJld2FyZCB5b3UgbmVlZCB0byBTdGFrZSBBU0lNSXMgaW4gdGhlIGRBcHAJAAIBAjVZb3UgaGF2ZSB0byB3YWl0IDEwbWluIGJlZm9yZSB5b3UgY2FuIG1ha2UgYSBuZXcgUHVzaAkAAgEJAKwCAgI6WW91ciBQdXNoIGRvdCBub3QgY29tcGx5IG9uZSBvZiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6IAJdMS4gUG9zaXRpdmUgVmFsdWUgZm9yIFB1c2ggaW4gVHJvaWthbiBUb2tlCiAyLiBNdXN0IFN0YWtlZCBBU0lNSSBUb2tlbiBmb3IgYSBtaW5pbXVtIG9mIHdlZWsgCQACAQkArAICCQCsAgICdkNhbiBkZXBvc2l0IG9ubHkgcG9zaXRpdmUgYW1vdW50cyBvZiBUcm9pa2FuIFRva2VuLCBvciBDaGVjayB5b3VyIFdhbGxldCBiYWxhbmNlIGluIFRyb2lrYSwgeW91IHNob3VsZCBoYXZlIG1vcmUgdGhhbiAJAKQDAQUQSGlnaGVzdFB1c2hWYWx1ZQIIIHRvIHB1c2gJAAIBAqQBWW91IGRvIG5vdCBoYXZlIGVub3VnaCBUcm9pa2FuIFRva2VucyBpbiB5b3VyIFdhbGxldCBCYWxhbmNlLCBQbGVhc2UgSGFydmVzdCBpZiB5b3UgaGF2ZSBlYXJuZWQgVHJvaWthbiB3YWxsZXQgb3IgdHJhbnNmZXIgdG8geW91ciB3YWxsZXQgbmVjZXNzYXJ5IFRyb2lrYW4gYW1vdW50ICEBaQEFU3Rha2UABAhXYWl0VGltZQkAaAIAoAsAAQQDcG10AwkAAAIJAJADAQgFAWkIcGF5bWVudHMAAQkAkQMCCAUBaQhwYXltZW50cwAACQACAQIcQXR0YWNoZWQgcGF5bWVudCBpcyByZXF1aXJlZAMDCQBmAggFA3BtdAZhbW91bnQAAAkAAAIIBQNwbXQHYXNzZXRJZAULU3Rha2VkVG9rZW4HBB9Hb3Zlcm5Ub2tlblNtYXJ0Q29udHJhY3RCYWxhbmNlCQDwBwIFBHRoaXMFC0dvdmVyblRva2VuBAdVc2VyQVBZCQCsAgIJANgEAQgIBQFpBmNhbGxlcgVieXRlcwIEX0FQWQQIVXNlclB1c2gJAKwCAgkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzAgVfUHVzaAQSVXNlclN0YWtlZFRva2VuS2V5CQCsAgIJANgEAQgIBQFpBmNhbGxlcgVieXRlcwIIX1N0YWtpbmcEElVzZXJHb3Zlcm5Ub2tlbktleQkArAICCQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMCCV9FYXJuaW5ncwQSVXNlckxhc3RTdGFrZUJsb2NrCQCsAgIJANgEAQgIBQFpBmNhbGxlcgVieXRlcwITX1VzZXJMYXN0U3Rha2VCbG9jawQYVXNlclN0YWtlVHJhbnNhY3Rpb25zS2V5CQCsAgIJANgEAQgIBQFpBmNhbGxlcgVieXRlcwITX1N0YWtlZFRyYW5zYWN0aW9ucwQNQWRkcmVzc0hlaWdodAkArAICCQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMCDF9Qcml6ZUhlaWdodAQQVXNlcldlZWtFYXJuaW5ncwkArAICCQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMCDF9XZWVrRWFybmluZwQVVXNlclN0YWtlVHJhbnNhY3Rpb25zBAckbWF0Y2gwCQCaCAIFBHRoaXMFGFVzZXJTdGFrZVRyYW5zYWN0aW9uc0tleQMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAQMTWF4RGVwb3NpdGVyCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzAgxNYXhEZXBvc2l0ZXIED01heERlcG9zaXRCbG9jawQHJG1hdGNoMAkAmggCBQR0aGlzAg9NYXhEZXBvc2l0QmxvY2sDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAECk1heERlcG9zaXQEByRtYXRjaDAJAJoIAgUEdGhpcwIKTWF4RGVwb3NpdAMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAQRTWF4RGVwb3NpdGVyVmFsdWUDCQBmAggFA3BtdAZhbW91bnQFCk1heERlcG9zaXQJANgEAQgIBQFpBmNhbGxlcgVieXRlcwUMTWF4RGVwb3NpdGVyBA9NYXhEZXBvc2l0VmFsdWUDCQBmAggFA3BtdAZhbW91bnQFCk1heERlcG9zaXQIBQNwbXQGYW1vdW50BQpNYXhEZXBvc2l0BBRNYXhEZXBvc2l0QmxvY2tWYWx1ZQMJAGYCCAUDcG10BmFtb3VudAUKTWF4RGVwb3NpdAUGaGVpZ2h0BQ9NYXhEZXBvc2l0QmxvY2sEDVVzZXJQdXNoVmFsdWUEByRtYXRjaDAJAJoIAgUEdGhpcwUIVXNlclB1c2gDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEF1VzZXJMYXN0U3Rha2VCbG9ja1ZhbHVlBAckbWF0Y2gwCQCaCAIFBHRoaXMFElVzZXJMYXN0U3Rha2VCbG9jawMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAQaVXNlckxhc3RTdGFrZUJsb2NrTmV3VmFsdWUDCQAAAgUXVXNlckxhc3RTdGFrZUJsb2NrVmFsdWUAAAUGaGVpZ2h0BRdVc2VyTGFzdFN0YWtlQmxvY2tWYWx1ZQQYTmV3VXNlclN0YWtlVHJhbnNhY3Rpb25zCQBkAgUVVXNlclN0YWtlVHJhbnNhY3Rpb25zAAEEGGN1cnJlbnRBbW91bnRTdGFrZWRUb2tlbgQHJG1hdGNoMAkAmggCBQR0aGlzBRJVc2VyU3Rha2VkVG9rZW5LZXkDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEFG5ld0Ftb3VudFN0YWtlZFRva2VuCQBkAgUYY3VycmVudEFtb3VudFN0YWtlZFRva2VuCAUDcG10BmFtb3VudAQaQ29udHJhY3RXYWxsZXRTdGFrZUJhbGFuY2UJAPAHAgUEdGhpcwULU3Rha2VkVG9rZW4EDFN0YWtlQmFsYW5jZQQHJG1hdGNoMAkAmggCBQR0aGlzAgxTdGFrZUJhbGFuY2UDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEElN0YWtlQmFsYW5jZUFtb3VudAkAZAIFDFN0YWtlQmFsYW5jZQgFA3BtdAZhbW91bnQEC1ByaXplQW1vdW50BAckbWF0Y2gwCQCaCAIFBHRoaXMCB0Z1bmRCb3gDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEFVVzZXJXZWVrRWFybmluZ3NWYWx1ZQQHJG1hdGNoMAkAmggCBQR0aGlzBRBVc2VyV2Vla0Vhcm5pbmdzAwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAABBhjdXJyZW50QW1vdW50R292ZXJuVG9rZW4EByRtYXRjaDAJAJoIAgUEdGhpcwUSVXNlckdvdmVyblRva2VuS2V5AwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAABBVIZWlnaHRUcmFuc2FjdEZ1bmRCb3gEByRtYXRjaDAJAJoIAgUEdGhpcwILUHJpemVIZWlnaHQDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEEFByaXplSGVpZ2h0VmFsdWUDAwkAAAIFFUhlaWdodFRyYW5zYWN0RnVuZEJveAAACQAAAgULUHJpemVBbW91bnQAAAcAAAMDCQAAAgUVSGVpZ2h0VHJhbnNhY3RGdW5kQm94AAAJAQIhPQIFC1ByaXplQW1vdW50AAAHBQZoZWlnaHQDAwkBAiE9AgUVSGVpZ2h0VHJhbnNhY3RGdW5kQm94AAAJAQIhPQIFC1ByaXplQW1vdW50AAAHBRVIZWlnaHRUcmFuc2FjdEZ1bmRCb3gAAAQLQWN0dWFsRGVsYXkEByRtYXRjaDAJAJoIAgUEdGhpcwIFRGVsYXkDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEEEhpZ2hlc3RQdXNoVmFsdWUEByRtYXRjaDAJAJoIAgUEdGhpcwILSGlnaGVzdFB1c2gDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEEkhpZ2hlc3RQdXNoQWRkcmVzcwkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwISSGlnaGVzdFB1c2hBZGRyZXNzBBdIaWdoZXN0UHVzaEFkZHJlc3NWYWx1ZQMDCQBmAgUGaGVpZ2h0CQBkAgkAZAIFEFByaXplSGVpZ2h0VmFsdWUFC0FjdHVhbERlbGF5BQhXYWl0VGltZQkAZgIFEEhpZ2hlc3RQdXNoVmFsdWUAAAcCAAUSSGlnaGVzdFB1c2hBZGRyZXNzBBNQcml6ZUhlaWdodFZhbHVlTmV3AwMJAGYCBQZoZWlnaHQJAGQCCQBkAgUQUHJpemVIZWlnaHRWYWx1ZQULQWN0dWFsRGVsYXkFCFdhaXRUaW1lCQBmAgUQSGlnaGVzdFB1c2hWYWx1ZQAABwUGaGVpZ2h0BRBQcml6ZUhlaWdodFZhbHVlAwkAZgIAgMLXLwUfR292ZXJuVG9rZW5TbWFydENvbnRyYWN0QmFsYW5jZQkAAgECPk5vIGVub3VnaCBHb3Zlcm5Ub2tlbiBJbiBDb250cmFjdCwgUGxlYXNlIGRlcG9zaXQgR292ZXJuVG9rZW5zBAZSZXdhcmQDCQAAAgUMU3Rha2VCYWxhbmNlAAAAkE4DCQBmAgUYTmV3VXNlclN0YWtlVHJhbnNhY3Rpb25zAAoJAGgCCQBoAgCQTgUYTmV3VXNlclN0YWtlVHJhbnNhY3Rpb25zCQBkAgABCQBpAgUUbmV3QW1vdW50U3Rha2VkVG9rZW4FDFN0YWtlQmFsYW5jZQkAaAIAkE4JAGQCAAEJAGkCBRRuZXdBbW91bnRTdGFrZWRUb2tlbgUMU3Rha2VCYWxhbmNlBAxVc2VyQVBZVmFsdWUDCQBmAgUYY3VycmVudEFtb3VudEdvdmVyblRva2VuAAAJAGkCCQBoAgBkBQZSZXdhcmQFGGN1cnJlbnRBbW91bnRHb3Zlcm5Ub2tlbgAABBRuZXdBbW91bnRHb3Zlcm5Ub2tlbgkAZAIFGGN1cnJlbnRBbW91bnRHb3Zlcm5Ub2tlbgUGUmV3YXJkCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRJVc2VyR292ZXJuVG9rZW5LZXkFFG5ld0Ftb3VudEdvdmVyblRva2VuCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRJVc2VyU3Rha2VkVG9rZW5LZXkFFG5ld0Ftb3VudFN0YWtlZFRva2VuCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRhVc2VyU3Rha2VUcmFuc2FjdGlvbnNLZXkFGE5ld1VzZXJTdGFrZVRyYW5zYWN0aW9ucwkAzAgCCQEMSW50ZWdlckVudHJ5AgIMU3Rha2VCYWxhbmNlBRJTdGFrZUJhbGFuY2VBbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQICC1ByaXplSGVpZ2h0BRNQcml6ZUhlaWdodFZhbHVlTmV3CQDMCAIJAQxJbnRlZ2VyRW50cnkCBQdVc2VyQVBZBQxVc2VyQVBZVmFsdWUJAMwIAgkBDEludGVnZXJFbnRyeQIFElVzZXJMYXN0U3Rha2VCbG9jawUaVXNlckxhc3RTdGFrZUJsb2NrTmV3VmFsdWUJAMwIAgkBDEludGVnZXJFbnRyeQIFCFVzZXJQdXNoBQ1Vc2VyUHVzaFZhbHVlCQDMCAIJAQtTdHJpbmdFbnRyeQICDE1heERlcG9zaXRlcgURTWF4RGVwb3NpdGVyVmFsdWUJAMwIAgkBDEludGVnZXJFbnRyeQICCk1heERlcG9zaXQFD01heERlcG9zaXRWYWx1ZQkAzAgCCQEMSW50ZWdlckVudHJ5AgIPTWF4RGVwb3NpdEJsb2NrBRRNYXhEZXBvc2l0QmxvY2tWYWx1ZQkAzAgCCQELU3RyaW5nRW50cnkCAhJIaWdoZXN0UHVzaEFkZHJlc3MFF0hpZ2hlc3RQdXNoQWRkcmVzc1ZhbHVlCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRBVc2VyV2Vla0Vhcm5pbmdzBRVVc2VyV2Vla0Vhcm5pbmdzVmFsdWUJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyBQZSZXdhcmQFC0dvdmVyblRva2VuBQNuaWwJAAIBAhtDYW4gZGVwb3NpdCBvbmx5IFN0YWtlVG9rZW4BaQETV2l0aGRyYXdTdGFrZWRGdW5kcwEGYW1vdW50BAhXYWl0VGltZQkAaAIAoAsAAQQSVXNlckxhc3RTdGFrZUJsb2NrCQCsAgIJANgEAQgIBQFpBmNhbGxlcgVieXRlcwITX1VzZXJMYXN0U3Rha2VCbG9jawQSVXNlclN0YWtlZFRva2VuS2V5CQCsAgIJANgEAQgIBQFpBmNhbGxlcgVieXRlcwIIX1N0YWtpbmcEElVzZXJHb3Zlcm5Ub2tlbktleQkArAICCQCsAgIJANgEAQgIBQFpBmNhbGxlcgVieXRlcwIBXwkA2AQBBQtHb3Zlcm5Ub2tlbgQaQ29udHJhY3RXYWxsZXRTdGFrZUJhbGFuY2UJAPAHAgUEdGhpcwULU3Rha2VkVG9rZW4EF1VzZXJMYXN0U3Rha2VCbG9ja1ZhbHVlBAckbWF0Y2gwCQCaCAIFBHRoaXMFElVzZXJMYXN0U3Rha2VCbG9jawMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAQMU3Rha2VCYWxhbmNlBAckbWF0Y2gwCQCaCAIFBHRoaXMCDFN0YWtlQmFsYW5jZQMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAQLUHJpemVBbW91bnQEByRtYXRjaDAJAJoIAgUEdGhpcwIHRnVuZEJveAMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAQVSGVpZ2h0VHJhbnNhY3RGdW5kQm94BAckbWF0Y2gwCQCaCAIFBHRoaXMCC1ByaXplSGVpZ2h0AwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAABAtBY3R1YWxEZWxheQQHJG1hdGNoMAkAmggCBQR0aGlzAgVEZWxheQMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAQQSGlnaGVzdFB1c2hWYWx1ZQQHJG1hdGNoMAkAmggCBQR0aGlzAgtIaWdoZXN0UHVzaAMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAQQUHJpemVIZWlnaHRWYWx1ZQMDCQAAAgUVSGVpZ2h0VHJhbnNhY3RGdW5kQm94AAAJAAACBQtQcml6ZUFtb3VudAAABwAAAwMJAAACBRVIZWlnaHRUcmFuc2FjdEZ1bmRCb3gAAAkBAiE9AgULUHJpemVBbW91bnQAAAcFBmhlaWdodAMDCQECIT0CBRVIZWlnaHRUcmFuc2FjdEZ1bmRCb3gAAAkBAiE9AgULUHJpemVBbW91bnQAAAcFFUhlaWdodFRyYW5zYWN0RnVuZEJveAAABBJIaWdoZXN0UHVzaEFkZHJlc3MJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMCEkhpZ2hlc3RQdXNoQWRkcmVzcwQXSGlnaGVzdFB1c2hBZGRyZXNzVmFsdWUDAwkAZgIFBmhlaWdodAkAZAIJAGQCBRBQcml6ZUhlaWdodFZhbHVlBQtBY3R1YWxEZWxheQUIV2FpdFRpbWUJAGYCBRBIaWdoZXN0UHVzaFZhbHVlAAAHAgAFEkhpZ2hlc3RQdXNoQWRkcmVzcwQTUHJpemVIZWlnaHRWYWx1ZU5ldwMDCQBmAgUGaGVpZ2h0CQBkAgkAZAIFEFByaXplSGVpZ2h0VmFsdWUFC0FjdHVhbERlbGF5BQhXYWl0VGltZQkAZgIFEEhpZ2hlc3RQdXNoVmFsdWUAAAcFBmhlaWdodAUQUHJpemVIZWlnaHRWYWx1ZQQKY3VycmVudEtleQkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzBA1jdXJyZW50QW1vdW50BAckbWF0Y2gwCQCaCAIFBHRoaXMFElVzZXJTdGFrZWRUb2tlbktleQMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAQJbmV3QW1vdW50CQBlAgUNY3VycmVudEFtb3VudAUGYW1vdW50BBJTdGFrZUJhbGFuY2VBbW91bnQJAGUCBQxTdGFrZUJhbGFuY2UFBmFtb3VudAQaVXNlckxhc3RTdGFrZUJsb2NrTmV3VmFsdWUDCQAAAgUSU3Rha2VCYWxhbmNlQW1vdW50AAAAAAUXVXNlckxhc3RTdGFrZUJsb2NrVmFsdWUDCQBmAgAABQZhbW91bnQJAAIBAh5DYW4ndCB3aXRoZHJhdyBuZWdhdGl2ZSBhbW91bnQDCQBmAgAABQluZXdBbW91bnQJAAIBCQCsAgICQVVzZXIgY2Fubm90IHdpdGhkcmF3IG1vcmUgdGhhbiBkZXBvc2l0ZWQgZnVuZHMsIFlvdXIgZGVwb3NpdCBpczogCQCkAwEJAGkCBQ1jdXJyZW50QW1vdW50AIDC1y8DCQBmAgCAwtcvCQDwBwIFBHRoaXMFC0dvdmVyblRva2VuCQACAQkArAICAh9Ob3QgZW5vdWdoIFRyb2lrYSBJbiBDb250cmFjdDogCQCkAwEJAGkCCQDwBwIFBHRoaXMFC0dvdmVyblRva2VuAIDC1y8JAMwIAgkBDEludGVnZXJFbnRyeQIFElVzZXJHb3Zlcm5Ub2tlbktleQCAwtcvCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRJVc2VyU3Rha2VkVG9rZW5LZXkFCW5ld0Ftb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgIMU3Rha2VCYWxhbmNlBRJTdGFrZUJhbGFuY2VBbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQICC1ByaXplSGVpZ2h0BRNQcml6ZUhlaWdodFZhbHVlTmV3CQDMCAIJAQxJbnRlZ2VyRW50cnkCBRJVc2VyTGFzdFN0YWtlQmxvY2sFGlVzZXJMYXN0U3Rha2VCbG9ja05ld1ZhbHVlCQDMCAIJAQtTdHJpbmdFbnRyeQICEkhpZ2hlc3RQdXNoQWRkcmVzcwUXSGlnaGVzdFB1c2hBZGRyZXNzVmFsdWUJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyAIDC1y8FC0dvdmVyblRva2VuCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgUGYW1vdW50BQtTdGFrZWRUb2tlbgUDbmlsAWkBFldpdGhkcmF3QmlnU3Rha2VSZXdhcmQABAhXYWl0VGltZQkAaAIAoAsAAQQYTGFzdEJpZ1N0YWtlclJld2FyZEJsb2NrCQCsAgIJANgEAQgIBQFpBmNhbGxlcgVieXRlcwIZX0xhc3RCaWdTdGFrZXJSZXdhcmRCbG9jawQPQmlnU3Rha2VyUmV3YXJkCQCsAgIJANgEAQgIBQFpBmNhbGxlcgVieXRlcwIKX0JpZ1N0YWtlcgQSVXNlckdvdmVyblRva2VuS2V5CQCsAgIJANgEAQgIBQFpBmNhbGxlcgVieXRlcwIJX0Vhcm5pbmdzBBJMaW1pV2l0aGRyYXdSZXdhcmQACgQVVXNlckdvdmVyblRva2VuQW1vdW50BAckbWF0Y2gwCQCaCAIFBHRoaXMFElVzZXJHb3Zlcm5Ub2tlbktleQMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAQdTGFzdEJpZ1N0YWtlclJld2FyZEJsb2NrVmFsdWUEByRtYXRjaDAJAJoIAgUEdGhpcwUYTGFzdEJpZ1N0YWtlclJld2FyZEJsb2NrAwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAABBlCaWdTdGFrZXJSZXdhcmRUb3RhbFZhbHVlBAckbWF0Y2gwCQCaCAIFBHRoaXMCFEJpZ1N0YWtlclJld2FyZFRvdGFsAwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAABAtQcml6ZUFtb3VudAQHJG1hdGNoMAkAmggCBQR0aGlzAgdGdW5kQm94AwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAABBVIZWlnaHRUcmFuc2FjdEZ1bmRCb3gEByRtYXRjaDAJAJoIAgUEdGhpcwILUHJpemVIZWlnaHQDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEEFByaXplSGVpZ2h0VmFsdWUDAwkAAAIFFUhlaWdodFRyYW5zYWN0RnVuZEJveAAACQAAAgULUHJpemVBbW91bnQAAAcAAAMDCQAAAgUVSGVpZ2h0VHJhbnNhY3RGdW5kQm94AAAJAQIhPQIFC1ByaXplQW1vdW50AAAHBQZoZWlnaHQDAwkBAiE9AgUVSGVpZ2h0VHJhbnNhY3RGdW5kQm94AAAJAQIhPQIFC1ByaXplQW1vdW50AAAHBRVIZWlnaHRUcmFuc2FjdEZ1bmRCb3gAAAQLQWN0dWFsRGVsYXkEByRtYXRjaDAJAJoIAgUEdGhpcwIFRGVsYXkDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEEEhpZ2hlc3RQdXNoVmFsdWUEByRtYXRjaDAJAJoIAgUEdGhpcwILSGlnaGVzdFB1c2gDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEEkhpZ2hlc3RQdXNoQWRkcmVzcwkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwISSGlnaGVzdFB1c2hBZGRyZXNzBBdIaWdoZXN0UHVzaEFkZHJlc3NWYWx1ZQMDCQBmAgUGaGVpZ2h0CQBkAgkAZAIFEFByaXplSGVpZ2h0VmFsdWUFC0FjdHVhbERlbGF5BQhXYWl0VGltZQkAZgIFEEhpZ2hlc3RQdXNoVmFsdWUAAAcCAAUSSGlnaGVzdFB1c2hBZGRyZXNzBBNQcml6ZUhlaWdodFZhbHVlTmV3AwMJAGYCBQZoZWlnaHQJAGQCCQBkAgUQUHJpemVIZWlnaHRWYWx1ZQULQWN0dWFsRGVsYXkFCFdhaXRUaW1lCQBmAgUQSGlnaGVzdFB1c2hWYWx1ZQAABwUGaGVpZ2h0BRBQcml6ZUhlaWdodFZhbHVlBApjdXJyZW50S2V5CQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMEBmFtb3VudAQHJG1hdGNoMAkAmggCBQR0aGlzBQ9CaWdTdGFrZXJSZXdhcmQDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEElN0YWtlQmFsYW5jZUFtb3VudAkAZQIFGUJpZ1N0YWtlclJld2FyZFRvdGFsVmFsdWUFBmFtb3VudAQSQmlnU3Rha2VyUmV3YXJkVGF4AwkAZgIAAAkAaAIJAGkCBRVVc2VyR292ZXJuVG9rZW5BbW91bnQA6AcJAGUCAOgHCQBpAgkAaAIA6AcJAGUCBQZoZWlnaHQFHUxhc3RCaWdTdGFrZXJSZXdhcmRCbG9ja1ZhbHVlCQBoAgUSTGltaVdpdGhkcmF3UmV3YXJkAKALCQBoAgDoBwCAwtcvCQBoAgkAaQIFFVVzZXJHb3Zlcm5Ub2tlbkFtb3VudADoBwkAZQIA6AcJAGkCCQBoAgDoBwkAZQIFBmhlaWdodAUdTGFzdEJpZ1N0YWtlclJld2FyZEJsb2NrVmFsdWUJAGgCBRJMaW1pV2l0aGRyYXdSZXdhcmQAoAsDCQBmAgAABQZhbW91bnQJAAIBCQCsAgIJAKwCAgkArAICAh9DYW4ndCB3aXRoZHJhdyBuZWdhdGl2ZSBhbW91bnQgCQCkAwEJAGUCBRVVc2VyR292ZXJuVG9rZW5BbW91bnQJAGgCAOgHAIDC1y8CBSAuLi4gCQCkAwEFBmFtb3VudAMDAwkAZgIJAGgCAOgHAIDC1y8FFVVzZXJHb3Zlcm5Ub2tlbkFtb3VudAYJAGYCAAEFBmFtb3VudAYJAGYCAAAJAGUCBRVVc2VyR292ZXJuVG9rZW5BbW91bnQFEkJpZ1N0YWtlclJld2FyZFRheAkAAgEJAKwCAgJcTm8gQVNJTUkgcmV3YXJkIGF2YWlsYWJsZSwgb3IgTm90IGVub3VnaCBFYXJuZWQgVHJvaWthbiBUb2tlbnMgdG8gZG8gdHJhbnNhY3Rpb24sIHlvdSBoYXZlOiAJAKQDAQkAaQIFFVVzZXJHb3Zlcm5Ub2tlbkFtb3VudACAwtcvAwkAZgIFElN0YWtlQmFsYW5jZUFtb3VudAAACQDMCAIJAQxJbnRlZ2VyRW50cnkCBQ9CaWdTdGFrZXJSZXdhcmQAAAkAzAgCCQEMSW50ZWdlckVudHJ5AgIUQmlnU3Rha2VyUmV3YXJkVG90YWwFElN0YWtlQmFsYW5jZUFtb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgUSVXNlckdvdmVyblRva2VuS2V5CQBlAgUVVXNlckdvdmVyblRva2VuQW1vdW50BRJCaWdTdGFrZXJSZXdhcmRUYXgJAMwIAgkBDEludGVnZXJFbnRyeQICC1ByaXplSGVpZ2h0BRBQcml6ZUhlaWdodFZhbHVlCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRhMYXN0QmlnU3Rha2VyUmV3YXJkQmxvY2sFBmhlaWdodAkAzAgCCQELU3RyaW5nRW50cnkCAhJIaWdoZXN0UHVzaEFkZHJlc3MFF0hpZ2hlc3RQdXNoQWRkcmVzc1ZhbHVlCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgUGYW1vdW50BQtTdGFrZWRUb2tlbgUDbmlsCQACAQJSQmFsYW5jZSBFcnJvciwgVG90YWwgQmlnIFN0YWtlcnMgY2Fubm90IGJlIG5lZ2F0aXZlLCBPcGVyYXRpb24gd29uJ3QgYmUgYXV0aG9yaXplZAFpARNIYXJ2ZXN0R292ZXJuVG9pa2VuAQZhbW91bnQEGkNvbnRyYWN0V2FsbGV0U3Rha2VCYWxhbmNlCQDwBwIFBHRoaXMFC1N0YWtlZFRva2VuBBJVc2VyR292ZXJuVG9rZW5LZXkJAKwCAgkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzAglfRWFybmluZ3MEDFN0YWtlQmFsYW5jZQQHJG1hdGNoMAkAmggCBQR0aGlzAgxTdGFrZUJhbGFuY2UDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEC1ByaXplQW1vdW50BAckbWF0Y2gwCQCaCAIFBHRoaXMCB0Z1bmRCb3gDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEFUhlaWdodFRyYW5zYWN0RnVuZEJveAQHJG1hdGNoMAkAmggCBQR0aGlzAgtQcml6ZUhlaWdodAMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAQQUHJpemVIZWlnaHRWYWx1ZQMDCQAAAgUVSGVpZ2h0VHJhbnNhY3RGdW5kQm94AAAJAAACBQtQcml6ZUFtb3VudAAABwAAAwMJAAACBRVIZWlnaHRUcmFuc2FjdEZ1bmRCb3gAAAkBAiE9AgULUHJpemVBbW91bnQAAAcFBmhlaWdodAMDCQECIT0CBRVIZWlnaHRUcmFuc2FjdEZ1bmRCb3gAAAkBAiE9AgULUHJpemVBbW91bnQAAAcFFUhlaWdodFRyYW5zYWN0RnVuZEJveAAABApjdXJyZW50S2V5CQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMEDWN1cnJlbnRBbW91bnQEByRtYXRjaDAJAJoIAgUEdGhpcwUSVXNlckdvdmVyblRva2VuS2V5AwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAABAluZXdBbW91bnQJAGUCBQ1jdXJyZW50QW1vdW50BQZhbW91bnQDCQBmAgAABQZhbW91bnQJAAIBAh5DYW4ndCB3aXRoZHJhdyBuZWdhdGl2ZSBhbW91bnQDCQBmAgAABQluZXdBbW91bnQJAAIBCQCsAgICQVVzZXIgY2Fubm90IHdpdGhkcmF3IG1vcmUgdGhhbiBkZXBvc2l0ZWQgZnVuZHMsIFlvdXIgZGVwb3NpdCBpczogCQCkAwEJAGkCBQ1jdXJyZW50QW1vdW50AIDC1y8JAMwIAgkBDEludGVnZXJFbnRyeQIFElVzZXJHb3Zlcm5Ub2tlbktleQUJbmV3QW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCAgtQcml6ZUhlaWdodAUQUHJpemVIZWlnaHRWYWx1ZQkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIFBmFtb3VudAULR292ZXJuVG9rZW4FA25pbAFpAQpkZWxheXByaXplAAQJRGVsYXlEYXlzCQBoAgCgCwABBAhXYWl0VGltZQkAaAIAoAsAAQQSVXNlckdvdmVyblRva2VuS2V5CQCsAgIJAKwCAgkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzAgFfCQDYBAEFC0dvdmVyblRva2VuBBhVc2VyV2FsbGV0U0dvdmVybkJhbGFuY2UJAPAHAgkBB0FkZHJlc3MBCAgFAWkGY2FsbGVyBWJ5dGVzBQtHb3Zlcm5Ub2tlbgQaQ29udHJhY3RXYWxsZXRTdGFrZUJhbGFuY2UJAPAHAgUEdGhpcwULU3Rha2VkVG9rZW4EDFN0YWtlQmFsYW5jZQQHJG1hdGNoMAkAmggCBQR0aGlzAgxTdGFrZUJhbGFuY2UDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEC1ByaXplQW1vdW50BAckbWF0Y2gwCQCaCAIFBHRoaXMCB0Z1bmRCb3gDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEFUhlaWdodFRyYW5zYWN0RnVuZEJveAQHJG1hdGNoMAkAmggCBQR0aGlzAgtQcml6ZUhlaWdodAMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAQLQWN0dWFsRGVsYXkEByRtYXRjaDAJAJoIAgUEdGhpcwIFRGVsYXkDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEEFByaXplSGVpZ2h0VmFsdWUDAwkAAAIFFUhlaWdodFRyYW5zYWN0RnVuZEJveAAACQAAAgULUHJpemVBbW91bnQAAAcAAAMDCQAAAgUVSGVpZ2h0VHJhbnNhY3RGdW5kQm94AAAJAQIhPQIFC1ByaXplQW1vdW50AAAHBQZoZWlnaHQDAwkBAiE9AgUVSGVpZ2h0VHJhbnNhY3RGdW5kQm94AAAJAQIhPQIFC1ByaXplQW1vdW50AAAHBRVIZWlnaHRUcmFuc2FjdEZ1bmRCb3gAAAQQSGlnaGVzdFB1c2hWYWx1ZQQHJG1hdGNoMAkAmggCBQR0aGlzAgtIaWdoZXN0UHVzaAMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAQSSGlnaGVzdFB1c2hBZGRyZXNzCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzAhJIaWdoZXN0UHVzaEFkZHJlc3MEF0hpZ2hlc3RQdXNoQWRkcmVzc1ZhbHVlAwMJAGYCBQZoZWlnaHQJAGQCCQBkAgUQUHJpemVIZWlnaHRWYWx1ZQULQWN0dWFsRGVsYXkFCFdhaXRUaW1lCQBmAgUQSGlnaGVzdFB1c2hWYWx1ZQAABwIABRJIaWdoZXN0UHVzaEFkZHJlc3MEE1ByaXplSGVpZ2h0VmFsdWVOZXcDAwkAZgIFBmhlaWdodAkAZAIJAGQCBRBQcml6ZUhlaWdodFZhbHVlBQtBY3R1YWxEZWxheQUIV2FpdFRpbWUJAGYCBRBIaWdoZXN0UHVzaFZhbHVlAAAHBQZoZWlnaHQFEFByaXplSGVpZ2h0VmFsdWUED0FjdHVhbERlbGF5Q29zdAQHJG1hdGNoMAkAmggCBQR0aGlzAglEZWxheUNvc3QDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAoEA3BtdAMJAAACCQCQAwEIBQFpCHBheW1lbnRzAAEJAJEDAggFAWkIcGF5bWVudHMAAAkAAgECHEF0dGFjaGVkIHBheW1lbnQgaXMgcmVxdWlyZWQEDURldkJveEJhbGFuY2UEByRtYXRjaDAJAJoIAgUEdGhpcwIGRGV2Qm94AwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAAAwMJAQlpc0RlZmluZWQBCAUDcG10B2Fzc2V0SWQJAAACCAUDcG10B2Fzc2V0SWQFC0dvdmVyblRva2VuBwMJAGYCBQtQcml6ZUFtb3VudAAABBVVc2VyR292ZXJuVG9rZW5BbW91bnQIBQNwbXQGYW1vdW50BAxEZXZCb3hBbW91bnQJAGQCBQ1EZXZCb3hCYWxhbmNlCQBpAgkAaAIIBQNwbXQGYW1vdW50AAUA6AcEDE5ld0RlbGF5Q29zdAMJAAACBQ9BY3R1YWxEZWxheUNvc3QAAACAlOvcAwkAaAIAAgUPQWN0dWFsRGVsYXlDb3N0AwkAZwIFFVVzZXJHb3Zlcm5Ub2tlbkFtb3VudAUMTmV3RGVsYXlDb3N0BAhOZXdEZWxheQkAZAIFC0FjdHVhbERlbGF5BQlEZWxheURheXMJAMwIAgkBDEludGVnZXJFbnRyeQICBURlbGF5BQhOZXdEZWxheQkAzAgCCQEMSW50ZWdlckVudHJ5AgIJRGVsYXlDb3N0BQxOZXdEZWxheUNvc3QJAMwIAgkBDEludGVnZXJFbnRyeQICC1ByaXplSGVpZ2h0BRNQcml6ZUhlaWdodFZhbHVlTmV3CQDMCAIJAQxJbnRlZ2VyRW50cnkCAgZEZXZCb3gFDERldkJveEFtb3VudAkAzAgCCQELU3RyaW5nRW50cnkCAhJIaWdoZXN0UHVzaEFkZHJlc3MFF0hpZ2hlc3RQdXNoQWRkcmVzc1ZhbHVlBQNuaWwJAAIBCQCsAgIJAKwCAgJJVG8gZGVsYXkgdGhlIHJlbGVhc2Ugb2YgdGhlIHJld2FyZCBPTkUgREFZIGxhdGVyIHRoYW4gZXhwZWN0ZWQsIHlvdSBuZWVkIAkApAMBBQxOZXdEZWxheUNvc3QCB1RST0lLQXMJAAIBAl5Zb3UgY2Fubm90IGRlbGF5IHRoZSByZXdhcmQgYmVmb3JlIHJld2FyZCBpcyByZWNlaXZlZCEgUGxlYXNlIHdhaXQgdW50aWwgYSByZXdhcmQgaXMgYXZhaWxhYmxlCQACAQIpQ2FuIFVzZSBvbmx5IFRyb2lrYSBUb2tlbiB0byBEZWxheSBSZXdhcmQBaQEKQ2xhaW1Qcml6ZQAEElVzZXJTdGFrZWRUb2tlbktleQkArAICCQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMCCF9TdGFraW5nBAhVc2VyUHVzaAkArAICCQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMCBV9QdXNoBBJVc2VyTGFzdFN0YWtlQmxvY2sJAKwCAgkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzAhNfVXNlckxhc3RTdGFrZUJsb2NrBA1taW5TdGFrZUJsb2NrCQBoAgCgCwAHBAZtaW5yZWYAAwQXQ29udHJhY3RHb3ZUb2tlbkJhbGFuY2UJAPAHAgUEdGhpcwULR292ZXJuVG9rZW4EGkNvbnRyYWN0V2FsbGV0U3Rha2VCYWxhbmNlCQDwBwIFBHRoaXMFC1N0YWtlZFRva2VuBAxTdGFrZUJhbGFuY2UEByRtYXRjaDAJAJoIAgUEdGhpcwIMU3Rha2VCYWxhbmNlAwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAABAtQcml6ZUFtb3VudAQHJG1hdGNoMAkAmggCBQR0aGlzAgdGdW5kQm94AwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAABA1Vc2VyUHVzaFZhbHVlBAckbWF0Y2gwCQCaCAIFBHRoaXMFCFVzZXJQdXNoAwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAABBdVc2VyTGFzdFN0YWtlQmxvY2tWYWx1ZQQHJG1hdGNoMAkAmggCBQR0aGlzBRJVc2VyTGFzdFN0YWtlQmxvY2sDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEFVVzZXJTdGFrZWRUb2tlbkFtb3VudAQHJG1hdGNoMAkAmggCBQR0aGlzBRJVc2VyU3Rha2VkVG9rZW5LZXkDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEC0FjdHVhbERlbGF5BAckbWF0Y2gwCQCaCAIFBHRoaXMCBURlbGF5AwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAABAtQcml6ZVdpbm5lcgkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwISSGlnaGVzdFB1c2hBZGRyZXNzBAtQcml6ZUhlaWdodAQHJG1hdGNoMAkAmggCBQR0aGlzAgtQcml6ZUhlaWdodAMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAQQSGlnaGVzdFB1c2hWYWx1ZQQHJG1hdGNoMAkAmggCBQR0aGlzAgtIaWdoZXN0UHVzaAMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAQLVXNlclJlZnNOdW0JAKwCAgkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzAgVfcmVmcwQQVXNlclJlZnNOdW1WYWx1ZQQHJG1hdGNoMAkAmggCBQR0aGlzBQtVc2VyUmVmc051bQMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAMDCQAAAgULUHJpemVBbW91bnQAAAYJAGYCAIDIr6AlBRdDb250cmFjdEdvdlRva2VuQmFsYW5jZQkAAgECSU5vIHByaXplIHRvIENsYWltIG9yIE5vdCBlbm91Z2ggR292ZXJuIFRva2VuIGVuIENvbnRyYWN0IChNaW4gMTAwIFRyb2lrYSkDCQECIT0CCQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMFC1ByaXplV2lubmVyCQACAQI2WW91IGFyZSBub3QgdGhlIHdpbm5lciBoZW5jZSBjYW5ub3QgY2xhaW0gdGhlIHJld2FyZCAgAwMJAGYCAIDC1y8FFVVzZXJTdGFrZWRUb2tlbkFtb3VudAkAZgIFDW1pblN0YWtlQmxvY2sFF1VzZXJMYXN0U3Rha2VCbG9ja1ZhbHVlBwkAAgECLllvdSBoYXZlIHRvIFN0YWtlIEFTSU1JIFRva2VuIHRvIGNsYWltIHJld2FyZCADAwkAZgIFBmhlaWdodAkAZAIFC1ByaXplSGVpZ2h0BQtBY3R1YWxEZWxheQkAZwIFDVVzZXJQdXNoVmFsdWUFEEhpZ2hlc3RQdXNoVmFsdWUHAwkAZwIFEFVzZXJSZWZzTnVtVmFsdWUFBm1pbnJlZgkAzAgCCQEMSW50ZWdlckVudHJ5AgULUHJpemVXaW5uZXIFC1ByaXplQW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCAgdGdW5kQm94AAAJAMwIAgkBDEludGVnZXJFbnRyeQICC0hpZ2hlc3RQdXNoAAAJAMwIAgkBDEludGVnZXJFbnRyeQIFCFVzZXJQdXNoAAAJAMwIAgkBC1N0cmluZ0VudHJ5AgISSGlnaGVzdFB1c2hBZGRyZXNzAgAJAMwIAgkBDEludGVnZXJFbnRyeQICC1ByaXplSGVpZ2h0AAAJAMwIAgkBDEludGVnZXJFbnRyeQICBURlbGF5AAAJAMwIAgkBDEludGVnZXJFbnRyeQICCURlbGF5Q29zdAAACQDMCAIJAQtTdHJpbmdFbnRyeQICCkxhc3RXaW5uZXIFC1ByaXplV2lubmVyCQDMCAIJAQxJbnRlZ2VyRW50cnkCAglMYXN0UHJpemUFC1ByaXplQW1vdW50CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgULUHJpemVBbW91bnQFC1N0YWtlZFRva2VuCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgCAlOvcAwULR292ZXJuVG9rZW4FA25pbAkAAgEJAKwCAgkArAICAhJZb3UgaGF2ZSB0byBoYXZlICAJAKQDAQUGbWlucmVmAkcgIHJlZmVycmFscyBhbHJlYWR5IHN0YWtpbmcgZm9yIGEgbWluaW11bSBvZiAxMCBkYXlzIHRvIENsYWltIHRoZSBwcml6ZQkAAgECYVlvdSBoYXZlIHRvIGJlIHRoZSB1c2VyIHdpdGggdGhlIGhpZ2hlc3QgUHVzaCBhbmQgd2FpdCB0aWxsIGNvdW50b3duIGlzIGZpbmlzaGVkLCB0byBjbGFpbSBSZXdhcmQBaQEJQWRkbWVudG9yAQZNZW50b3IEEVVzZXJNZW50b3JBZGRyZXNzCQCsAgIJANgEAQgIBQFpBmNhbGxlcgVieXRlcwIHX01lbnRvcgMJAQIhPQIFBk1lbnRvcgIACQDMCAIJAQtTdHJpbmdFbnRyeQIFEVVzZXJNZW50b3JBZGRyZXNzBQZNZW50b3IFA25pbAkAAgECIE1lbnRvcidzIEFkZHJlc3MgY2Fubm90IGJlIGVtcHR5AWkBD0dldExpa2VzUGFja2FnZQINVHdpdHRlclVzZXJJZAdUd2l0dElkBANwbXQDCQAAAgkAkAMBCAUBaQhwYXltZW50cwACCQCRAwIIBQFpCHBheW1lbnRzAAAJAAIBAhxBdHRhY2hlZCBwYXltZW50IGlzIHJlcXVpcmVkAwMJAAACCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQFC1N0YWtlZFRva2VuCQAAAggJAJEDAggFAWkIcGF5bWVudHMAAQdhc3NldElkBQtHb3Zlcm5Ub2tlbgcDCQBnAggJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQFFExpa2VQYWNrYWdlQVNJTUlDb3N0AwkAZwIICQCRAwIIBQFpCHBheW1lbnRzAAEGYW1vdW50BRZMaWtlUGFja2FnZVRST0lLQU5Db3N0CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKQDAQUNVHdpdHRlclVzZXJJZAILX1R3aXR0Mkxpa2UFB1R3aXR0SWQFA25pbAkAAgEJAKwCAgIaVFJPSUtBTiBBbW91bnQgc2hvdWxkIGJlIDoJAKQDAQkAaQIFFExpa2VQYWNrYWdlQVNJTUlDb3N0AIDC1y8JAAIBCQCsAgICGEFTSU1JIEFtb3VudCBzaG91bGQgYmUgOgkApAMBCQBpAgUWTGlrZVBhY2thZ2VUUk9JS0FOQ29zdACAwtcvCQACAQIwUGF5bWVudHMgc2hvdWxkIGJlIGJvdGggQVNJTUkgYW5kIFRST0lLQU4gdG9rZW5zAEEmD4s=", "height": 2119390, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: GxUGLb2hgZGZKjBraoFee4fs4H4hDkmd4u7QardUtamR Next: ADLHFrGsg6gMGn9C8mBWLGtBxphLrHt37U9KCMxZRJ75 Diff:
OldNewDifferences
55
66 let GovernToken = base58'6ZPMzZseuYoMP4ByozJpVxbugXBobwJYF22zVjW5JjN'
77
8-let LikePackagePrice = (1 * 100000000)
8+let LikePackageASIMICost = (1 * 100000000)
9+
10+let LikePackageTROIKANCost = (5 * 100000000)
911
1012 @Callable(i)
1113 func DevWithdraw () = {
842844 if (if ((i.payments[0].assetId == StakedToken))
843845 then (i.payments[1].assetId == GovernToken)
844846 else false)
845- then if ((pmt.amount > LikePackagePrice))
846- then [IntegerEntry((toString(TwitterUserId) + "_Twitt2Like"), TwittId)]
847- else throw(("Amount should be :" + toString((pmt.amount / 100000000))))
847+ then if ((i.payments[0].amount >= LikePackageASIMICost))
848+ then if ((i.payments[1].amount >= LikePackageTROIKANCost))
849+ then [IntegerEntry((toString(TwitterUserId) + "_Twitt2Like"), TwittId)]
850+ else throw(("TROIKAN Amount should be :" + toString((LikePackageASIMICost / 100000000))))
851+ else throw(("ASIMI Amount should be :" + toString((LikePackageTROIKANCost / 100000000))))
848852 else throw("Payments should be both ASIMI and TROIKAN tokens")
849853 }
850854
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
8-let LikePackagePrice = (1 * 100000000)
8+let LikePackageASIMICost = (1 * 100000000)
9+
10+let LikePackageTROIKANCost = (5 * 100000000)
911
1012 @Callable(i)
1113 func DevWithdraw () = {
1214 let currentKey = toBase58String(i.caller.bytes)
1315 if ((currentKey == "3P74buHt98BnojFcaREJZtb98KDyUmZGemJ"))
1416 then {
1517 let DevBoxAmount = match getInteger(this, "DevBox") {
1618 case a: Int =>
1719 a
1820 case _ =>
1921 0
2022 }
2123 if ((0 > DevBoxAmount))
2224 then throw("Not enough balance")
2325 else [IntegerEntry("DevBox", 0), ScriptTransfer(i.caller, DevBoxAmount, GovernToken)]
2426 }
2527 else throw("You cannot withdraw as your are not the Dev.")
2628 }
2729
2830
2931
3032 @Callable(i)
3133 func WithdrawWeeklyEarning () = {
3234 let ContractWalletStakeBalance = assetBalance(this, StakedToken)
3335 let MaxDepositer = getStringValue(this, "MaxDepositer")
3436 let UserWeeklyEarnings = (toBase58String(i.caller.bytes) + "_WeekEarning")
3537 let StakeBalance = match getInteger(this, "StakeBalance") {
3638 case a: Int =>
3739 a
3840 case _ =>
3941 0
4042 }
4143 let PrizeAmount = match getInteger(this, "FundBox") {
4244 case a: Int =>
4345 a
4446 case _ =>
4547 0
4648 }
4749 let HeightTransactFundBox = match getInteger(this, "PrizeHeight") {
4850 case a: Int =>
4951 a
5052 case _ =>
5153 0
5254 }
5355 let PrizeHeightValue = if (if ((HeightTransactFundBox == 0))
5456 then (PrizeAmount == 0)
5557 else false)
5658 then 0
5759 else if (if ((HeightTransactFundBox == 0))
5860 then (PrizeAmount != 0)
5961 else false)
6062 then height
6163 else if (if ((HeightTransactFundBox != 0))
6264 then (PrizeAmount != 0)
6365 else false)
6466 then HeightTransactFundBox
6567 else 0
6668 let currentKey = toBase58String(i.caller.bytes)
6769 let newAmount = match getInteger(this, UserWeeklyEarnings) {
6870 case a: Int =>
6971 a
7072 case _ =>
7173 0
7274 }
7375 if ((0 > newAmount))
7476 then throw("Can't withdraw negative amount")
7577 else if ((0 > newAmount))
7678 then throw(("User cannot withdraw more than deposited funds, Your deposit is: " + toString((newAmount / 100000000))))
7779 else [IntegerEntry(UserWeeklyEarnings, 0), IntegerEntry("PrizeHeight", PrizeHeightValue), IntegerEntry("MaxDeposit", 0), ScriptTransfer(i.caller, newAmount, StakedToken)]
7880 }
7981
8082
8183
8284 @Callable(i)
8385 func PushReward () = {
8486 let minPushBlock = 10
8587 let minStakeBlock = (7 * 1440)
8688 let DelayAfterPush = 60
8789 let WaitTime = (1440 * 1)
8890 let minref = 3
8991 let FirstPushTimer = (7 * 1440)
9092 let userWalletGovernBalance = assetBalance(Address(i.caller.bytes), GovernToken)
9193 let pmt = if ((size(i.payments) == 1))
9294 then i.payments[0]
9395 else throw("Attached payment is required")
9496 let UserPush = (toBase58String(i.caller.bytes) + "_Push")
9597 let UserLastPushOldValue = match getInteger(this, UserPush) {
9698 case a: Int =>
9799 a
98100 case _ =>
99101 0
100102 }
101103 let UserRefsNum = (toBase58String(i.caller.bytes) + "_refs")
102104 let UserRefsNumValue = match getInteger(this, UserRefsNum) {
103105 case a: Int =>
104106 a
105107 case _ =>
106108 0
107109 }
108110 let HighestPushValue = match getInteger(this, "HighestPush") {
109111 case a: Int =>
110112 a
111113 case _ =>
112114 0
113115 }
114116 if ((userWalletGovernBalance > pmt.amount))
115117 then if (if (((pmt.amount + UserLastPushOldValue) > HighestPushValue))
116118 then (pmt.assetId == GovernToken)
117119 else false)
118120 then {
119121 let UserLastPushBlock = (toBase58String(i.caller.bytes) + "_UserLastPushBlock")
120122 let UserLastStakeBlock = (toBase58String(i.caller.bytes) + "_UserLastStakeBlock")
121123 let UserStake = (toBase58String(i.caller.bytes) + "_Staking")
122124 let ContractWalletStakeBalance = assetBalance(this, StakedToken)
123125 let StakeBalance = match getInteger(this, "StakeBalance") {
124126 case a: Int =>
125127 a
126128 case _ =>
127129 0
128130 }
129131 let PrizeAmount = match getInteger(this, "FundBox") {
130132 case a: Int =>
131133 a
132134 case _ =>
133135 0
134136 }
135137 let HeightTransactFundBox = match getInteger(this, "PrizeHeight") {
136138 case a: Int =>
137139 a
138140 case _ =>
139141 0
140142 }
141143 let PrizeHeightValue = if (if ((HeightTransactFundBox == 0))
142144 then (PrizeAmount == 0)
143145 else false)
144146 then 0
145147 else if (if ((HeightTransactFundBox == 0))
146148 then (PrizeAmount != 0)
147149 else false)
148150 then height
149151 else if (if ((HeightTransactFundBox != 0))
150152 then (PrizeAmount != 0)
151153 else false)
152154 then HeightTransactFundBox
153155 else 0
154156 let ActualDelay = match getInteger(this, "Delay") {
155157 case a: Int =>
156158 a
157159 case _ =>
158160 0
159161 }
160162 let HighestPushAddress = match getInteger(this, "HighestPushAddress") {
161163 case a: Int =>
162164 a
163165 case _ =>
164166 0
165167 }
166168 let UserLastPushBlockValue = match getInteger(this, UserLastPushBlock) {
167169 case a: Int =>
168170 a
169171 case _ =>
170172 0
171173 }
172174 let UserLastStakeBlockValue = match getInteger(this, UserLastStakeBlock) {
173175 case a: Int =>
174176 a
175177 case _ =>
176178 0
177179 }
178180 let UserStakeValue = match getInteger(this, UserStake) {
179181 case a: Int =>
180182 a
181183 case _ =>
182184 0
183185 }
184186 let DevBoxBalance = match getInteger(this, "DevBox") {
185187 case a: Int =>
186188 a
187189 case _ =>
188190 0
189191 }
190192 let DevBoxAmount = (DevBoxBalance + ((pmt.amount * 5) / 1000))
191193 let UserPushvalue = (pmt.amount + UserLastPushOldValue)
192194 let NewDelay = if (if ((height > ((PrizeHeightValue + ActualDelay) + WaitTime)))
193195 then (HighestPushValue > 0)
194196 else false)
195197 then FirstPushTimer
196198 else (ActualDelay + DelayAfterPush)
197199 let HighestPushAddressValue = if (if ((height > ((PrizeHeightValue + NewDelay) + WaitTime)))
198200 then (HighestPushValue > 0)
199201 else false)
200202 then ""
201203 else HighestPushAddress
202204 let PrizeHeightValueNew = if (if ((height > ((PrizeHeightValue + NewDelay) + WaitTime)))
203205 then (HighestPushValue > 0)
204206 else false)
205207 then height
206208 else PrizeHeightValue
207209 if (if ((UserPushvalue > 0))
208210 then ((height - UserLastStakeBlockValue) > minStakeBlock)
209211 else false)
210212 then if (((height - UserLastPushBlockValue) > minPushBlock))
211213 then if ((UserStakeValue > 0))
212214 then if ((UserPushvalue > HighestPushValue))
213215 then if ((PrizeAmount > 0))
214216 then if (if (if (if (((PrizeHeightValueNew + NewDelay) >= height))
215217 then true
216218 else (height >= ((PrizeHeightValueNew + NewDelay) + WaitTime)))
217219 then (HighestPushValue > 0)
218220 else false)
219221 then true
220222 else (HighestPushValue == 0))
221223 then if ((UserRefsNumValue >= minref))
222224 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)]
223225 else throw((("You have to have " + toString(minref)) + " referrals already staking for a minimum of 10 days, to push"))
224226 else {
225227 let txt = if ((HighestPushValue > 0))
226228 then "You cannot Push after rewarding Prize and before One day has passed after award"
227229 else "Unexpected error"
228230 throw(txt)
229231 }
230232 else throw("You cannot push before the reward is unlocked, no reward has been detected yet")
231233 else throw("Your push in troikan token, should be Higher than last Highest Push")
232234 else throw("To be able to participate in Pushing for the reward you need to Stake ASIMIs in the dApp")
233235 else throw("You have to wait 10min before you can make a new Push")
234236 else throw(("Your Push dot not comply one of the following conditions: " + "1. Positive Value for Push in Troikan Toke
235237 2. Must Staked ASIMI Token for a minimum of week "))
236238 }
237239 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"))
238240 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 !")
239241 }
240242
241243
242244
243245 @Callable(i)
244246 func Stake () = {
245247 let WaitTime = (1440 * 1)
246248 let pmt = if ((size(i.payments) == 1))
247249 then i.payments[0]
248250 else throw("Attached payment is required")
249251 if (if ((pmt.amount > 0))
250252 then (pmt.assetId == StakedToken)
251253 else false)
252254 then {
253255 let GovernTokenSmartContractBalance = assetBalance(this, GovernToken)
254256 let UserAPY = (toBase58String(i.caller.bytes) + "_APY")
255257 let UserPush = (toBase58String(i.caller.bytes) + "_Push")
256258 let UserStakedTokenKey = (toBase58String(i.caller.bytes) + "_Staking")
257259 let UserGovernTokenKey = (toBase58String(i.caller.bytes) + "_Earnings")
258260 let UserLastStakeBlock = (toBase58String(i.caller.bytes) + "_UserLastStakeBlock")
259261 let UserStakeTransactionsKey = (toBase58String(i.caller.bytes) + "_StakedTransactions")
260262 let AddressHeight = (toBase58String(i.caller.bytes) + "_PrizeHeight")
261263 let UserWeekEarnings = (toBase58String(i.caller.bytes) + "_WeekEarning")
262264 let UserStakeTransactions = match getInteger(this, UserStakeTransactionsKey) {
263265 case a: Int =>
264266 a
265267 case _ =>
266268 0
267269 }
268270 let MaxDepositer = getStringValue(this, "MaxDepositer")
269271 let MaxDepositBlock = match getInteger(this, "MaxDepositBlock") {
270272 case a: Int =>
271273 a
272274 case _ =>
273275 0
274276 }
275277 let MaxDeposit = match getInteger(this, "MaxDeposit") {
276278 case a: Int =>
277279 a
278280 case _ =>
279281 0
280282 }
281283 let MaxDepositerValue = if ((pmt.amount > MaxDeposit))
282284 then toBase58String(i.caller.bytes)
283285 else MaxDepositer
284286 let MaxDepositValue = if ((pmt.amount > MaxDeposit))
285287 then pmt.amount
286288 else MaxDeposit
287289 let MaxDepositBlockValue = if ((pmt.amount > MaxDeposit))
288290 then height
289291 else MaxDepositBlock
290292 let UserPushValue = match getInteger(this, UserPush) {
291293 case a: Int =>
292294 a
293295 case _ =>
294296 0
295297 }
296298 let UserLastStakeBlockValue = match getInteger(this, UserLastStakeBlock) {
297299 case a: Int =>
298300 a
299301 case _ =>
300302 0
301303 }
302304 let UserLastStakeBlockNewValue = if ((UserLastStakeBlockValue == 0))
303305 then height
304306 else UserLastStakeBlockValue
305307 let NewUserStakeTransactions = (UserStakeTransactions + 1)
306308 let currentAmountStakedToken = match getInteger(this, UserStakedTokenKey) {
307309 case a: Int =>
308310 a
309311 case _ =>
310312 0
311313 }
312314 let newAmountStakedToken = (currentAmountStakedToken + pmt.amount)
313315 let ContractWalletStakeBalance = assetBalance(this, StakedToken)
314316 let StakeBalance = match getInteger(this, "StakeBalance") {
315317 case a: Int =>
316318 a
317319 case _ =>
318320 0
319321 }
320322 let StakeBalanceAmount = (StakeBalance + pmt.amount)
321323 let PrizeAmount = match getInteger(this, "FundBox") {
322324 case a: Int =>
323325 a
324326 case _ =>
325327 0
326328 }
327329 let UserWeekEarningsValue = match getInteger(this, UserWeekEarnings) {
328330 case a: Int =>
329331 a
330332 case _ =>
331333 0
332334 }
333335 let currentAmountGovernToken = match getInteger(this, UserGovernTokenKey) {
334336 case a: Int =>
335337 a
336338 case _ =>
337339 0
338340 }
339341 let HeightTransactFundBox = match getInteger(this, "PrizeHeight") {
340342 case a: Int =>
341343 a
342344 case _ =>
343345 0
344346 }
345347 let PrizeHeightValue = if (if ((HeightTransactFundBox == 0))
346348 then (PrizeAmount == 0)
347349 else false)
348350 then 0
349351 else if (if ((HeightTransactFundBox == 0))
350352 then (PrizeAmount != 0)
351353 else false)
352354 then height
353355 else if (if ((HeightTransactFundBox != 0))
354356 then (PrizeAmount != 0)
355357 else false)
356358 then HeightTransactFundBox
357359 else 0
358360 let ActualDelay = match getInteger(this, "Delay") {
359361 case a: Int =>
360362 a
361363 case _ =>
362364 0
363365 }
364366 let HighestPushValue = match getInteger(this, "HighestPush") {
365367 case a: Int =>
366368 a
367369 case _ =>
368370 0
369371 }
370372 let HighestPushAddress = getStringValue(this, "HighestPushAddress")
371373 let HighestPushAddressValue = if (if ((height > ((PrizeHeightValue + ActualDelay) + WaitTime)))
372374 then (HighestPushValue > 0)
373375 else false)
374376 then ""
375377 else HighestPushAddress
376378 let PrizeHeightValueNew = if (if ((height > ((PrizeHeightValue + ActualDelay) + WaitTime)))
377379 then (HighestPushValue > 0)
378380 else false)
379381 then height
380382 else PrizeHeightValue
381383 if ((100000000 > GovernTokenSmartContractBalance))
382384 then throw("No enough GovernToken In Contract, Please deposit GovernTokens")
383385 else {
384386 let Reward = if ((StakeBalance == 0))
385387 then 10000
386388 else if ((NewUserStakeTransactions > 10))
387389 then ((10000 * NewUserStakeTransactions) * (1 + (newAmountStakedToken / StakeBalance)))
388390 else (10000 * (1 + (newAmountStakedToken / StakeBalance)))
389391 let UserAPYValue = if ((currentAmountGovernToken > 0))
390392 then ((100 * Reward) / currentAmountGovernToken)
391393 else 0
392394 let newAmountGovernToken = (currentAmountGovernToken + Reward)
393395 [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)]
394396 }
395397 }
396398 else throw("Can deposit only StakeToken")
397399 }
398400
399401
400402
401403 @Callable(i)
402404 func WithdrawStakedFunds (amount) = {
403405 let WaitTime = (1440 * 1)
404406 let UserLastStakeBlock = (toBase58String(i.caller.bytes) + "_UserLastStakeBlock")
405407 let UserStakedTokenKey = (toBase58String(i.caller.bytes) + "_Staking")
406408 let UserGovernTokenKey = ((toBase58String(i.caller.bytes) + "_") + toBase58String(GovernToken))
407409 let ContractWalletStakeBalance = assetBalance(this, StakedToken)
408410 let UserLastStakeBlockValue = match getInteger(this, UserLastStakeBlock) {
409411 case a: Int =>
410412 a
411413 case _ =>
412414 0
413415 }
414416 let StakeBalance = match getInteger(this, "StakeBalance") {
415417 case a: Int =>
416418 a
417419 case _ =>
418420 0
419421 }
420422 let PrizeAmount = match getInteger(this, "FundBox") {
421423 case a: Int =>
422424 a
423425 case _ =>
424426 0
425427 }
426428 let HeightTransactFundBox = match getInteger(this, "PrizeHeight") {
427429 case a: Int =>
428430 a
429431 case _ =>
430432 0
431433 }
432434 let ActualDelay = match getInteger(this, "Delay") {
433435 case a: Int =>
434436 a
435437 case _ =>
436438 0
437439 }
438440 let HighestPushValue = match getInteger(this, "HighestPush") {
439441 case a: Int =>
440442 a
441443 case _ =>
442444 0
443445 }
444446 let PrizeHeightValue = if (if ((HeightTransactFundBox == 0))
445447 then (PrizeAmount == 0)
446448 else false)
447449 then 0
448450 else if (if ((HeightTransactFundBox == 0))
449451 then (PrizeAmount != 0)
450452 else false)
451453 then height
452454 else if (if ((HeightTransactFundBox != 0))
453455 then (PrizeAmount != 0)
454456 else false)
455457 then HeightTransactFundBox
456458 else 0
457459 let HighestPushAddress = getStringValue(this, "HighestPushAddress")
458460 let HighestPushAddressValue = if (if ((height > ((PrizeHeightValue + ActualDelay) + WaitTime)))
459461 then (HighestPushValue > 0)
460462 else false)
461463 then ""
462464 else HighestPushAddress
463465 let PrizeHeightValueNew = if (if ((height > ((PrizeHeightValue + ActualDelay) + WaitTime)))
464466 then (HighestPushValue > 0)
465467 else false)
466468 then height
467469 else PrizeHeightValue
468470 let currentKey = toBase58String(i.caller.bytes)
469471 let currentAmount = match getInteger(this, UserStakedTokenKey) {
470472 case a: Int =>
471473 a
472474 case _ =>
473475 0
474476 }
475477 let newAmount = (currentAmount - amount)
476478 let StakeBalanceAmount = (StakeBalance - amount)
477479 let UserLastStakeBlockNewValue = if ((StakeBalanceAmount == 0))
478480 then 0
479481 else UserLastStakeBlockValue
480482 if ((0 > amount))
481483 then throw("Can't withdraw negative amount")
482484 else if ((0 > newAmount))
483485 then throw(("User cannot withdraw more than deposited funds, Your deposit is: " + toString((currentAmount / 100000000))))
484486 else if ((100000000 > assetBalance(this, GovernToken)))
485487 then throw(("Not enough Troika In Contract: " + toString((assetBalance(this, GovernToken) / 100000000))))
486488 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)]
487489 }
488490
489491
490492
491493 @Callable(i)
492494 func WithdrawBigStakeReward () = {
493495 let WaitTime = (1440 * 1)
494496 let LastBigStakerRewardBlock = (toBase58String(i.caller.bytes) + "_LastBigStakerRewardBlock")
495497 let BigStakerReward = (toBase58String(i.caller.bytes) + "_BigStaker")
496498 let UserGovernTokenKey = (toBase58String(i.caller.bytes) + "_Earnings")
497499 let LimiWithdrawReward = 10
498500 let UserGovernTokenAmount = match getInteger(this, UserGovernTokenKey) {
499501 case a: Int =>
500502 a
501503 case _ =>
502504 0
503505 }
504506 let LastBigStakerRewardBlockValue = match getInteger(this, LastBigStakerRewardBlock) {
505507 case a: Int =>
506508 a
507509 case _ =>
508510 0
509511 }
510512 let BigStakerRewardTotalValue = match getInteger(this, "BigStakerRewardTotal") {
511513 case a: Int =>
512514 a
513515 case _ =>
514516 0
515517 }
516518 let PrizeAmount = match getInteger(this, "FundBox") {
517519 case a: Int =>
518520 a
519521 case _ =>
520522 0
521523 }
522524 let HeightTransactFundBox = match getInteger(this, "PrizeHeight") {
523525 case a: Int =>
524526 a
525527 case _ =>
526528 0
527529 }
528530 let PrizeHeightValue = if (if ((HeightTransactFundBox == 0))
529531 then (PrizeAmount == 0)
530532 else false)
531533 then 0
532534 else if (if ((HeightTransactFundBox == 0))
533535 then (PrizeAmount != 0)
534536 else false)
535537 then height
536538 else if (if ((HeightTransactFundBox != 0))
537539 then (PrizeAmount != 0)
538540 else false)
539541 then HeightTransactFundBox
540542 else 0
541543 let ActualDelay = match getInteger(this, "Delay") {
542544 case a: Int =>
543545 a
544546 case _ =>
545547 0
546548 }
547549 let HighestPushValue = match getInteger(this, "HighestPush") {
548550 case a: Int =>
549551 a
550552 case _ =>
551553 0
552554 }
553555 let HighestPushAddress = getStringValue(this, "HighestPushAddress")
554556 let HighestPushAddressValue = if (if ((height > ((PrizeHeightValue + ActualDelay) + WaitTime)))
555557 then (HighestPushValue > 0)
556558 else false)
557559 then ""
558560 else HighestPushAddress
559561 let PrizeHeightValueNew = if (if ((height > ((PrizeHeightValue + ActualDelay) + WaitTime)))
560562 then (HighestPushValue > 0)
561563 else false)
562564 then height
563565 else PrizeHeightValue
564566 let currentKey = toBase58String(i.caller.bytes)
565567 let amount = match getInteger(this, BigStakerReward) {
566568 case a: Int =>
567569 a
568570 case _ =>
569571 0
570572 }
571573 let StakeBalanceAmount = (BigStakerRewardTotalValue - amount)
572574 let BigStakerRewardTax = if ((0 > ((UserGovernTokenAmount / 1000) * (1000 - ((1000 * (height - LastBigStakerRewardBlockValue)) / (LimiWithdrawReward * 1440))))))
573575 then (1000 * 100000000)
574576 else ((UserGovernTokenAmount / 1000) * (1000 - ((1000 * (height - LastBigStakerRewardBlockValue)) / (LimiWithdrawReward * 1440))))
575577 if ((0 > amount))
576578 then throw(((("Can't withdraw negative amount " + toString((UserGovernTokenAmount - (1000 * 100000000)))) + " ... ") + toString(amount)))
577579 else if (if (if (((1000 * 100000000) > UserGovernTokenAmount))
578580 then true
579581 else (1 > amount))
580582 then true
581583 else (0 > (UserGovernTokenAmount - BigStakerRewardTax)))
582584 then throw(("No ASIMI reward available, or Not enough Earned Troikan Tokens to do transaction, you have: " + toString((UserGovernTokenAmount / 100000000))))
583585 else if ((StakeBalanceAmount > 0))
584586 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)]
585587 else throw("Balance Error, Total Big Stakers cannot be negative, Operation won't be authorized")
586588 }
587589
588590
589591
590592 @Callable(i)
591593 func HarvestGovernToiken (amount) = {
592594 let ContractWalletStakeBalance = assetBalance(this, StakedToken)
593595 let UserGovernTokenKey = (toBase58String(i.caller.bytes) + "_Earnings")
594596 let StakeBalance = match getInteger(this, "StakeBalance") {
595597 case a: Int =>
596598 a
597599 case _ =>
598600 0
599601 }
600602 let PrizeAmount = match getInteger(this, "FundBox") {
601603 case a: Int =>
602604 a
603605 case _ =>
604606 0
605607 }
606608 let HeightTransactFundBox = match getInteger(this, "PrizeHeight") {
607609 case a: Int =>
608610 a
609611 case _ =>
610612 0
611613 }
612614 let PrizeHeightValue = if (if ((HeightTransactFundBox == 0))
613615 then (PrizeAmount == 0)
614616 else false)
615617 then 0
616618 else if (if ((HeightTransactFundBox == 0))
617619 then (PrizeAmount != 0)
618620 else false)
619621 then height
620622 else if (if ((HeightTransactFundBox != 0))
621623 then (PrizeAmount != 0)
622624 else false)
623625 then HeightTransactFundBox
624626 else 0
625627 let currentKey = toBase58String(i.caller.bytes)
626628 let currentAmount = match getInteger(this, UserGovernTokenKey) {
627629 case a: Int =>
628630 a
629631 case _ =>
630632 0
631633 }
632634 let newAmount = (currentAmount - amount)
633635 if ((0 > amount))
634636 then throw("Can't withdraw negative amount")
635637 else if ((0 > newAmount))
636638 then throw(("User cannot withdraw more than deposited funds, Your deposit is: " + toString((currentAmount / 100000000))))
637639 else [IntegerEntry(UserGovernTokenKey, newAmount), IntegerEntry("PrizeHeight", PrizeHeightValue), ScriptTransfer(i.caller, amount, GovernToken)]
638640 }
639641
640642
641643
642644 @Callable(i)
643645 func delayprize () = {
644646 let DelayDays = (1440 * 1)
645647 let WaitTime = (1440 * 1)
646648 let UserGovernTokenKey = ((toBase58String(i.caller.bytes) + "_") + toBase58String(GovernToken))
647649 let UserWalletSGovernBalance = assetBalance(Address(i.caller.bytes), GovernToken)
648650 let ContractWalletStakeBalance = assetBalance(this, StakedToken)
649651 let StakeBalance = match getInteger(this, "StakeBalance") {
650652 case a: Int =>
651653 a
652654 case _ =>
653655 0
654656 }
655657 let PrizeAmount = match getInteger(this, "FundBox") {
656658 case a: Int =>
657659 a
658660 case _ =>
659661 0
660662 }
661663 let HeightTransactFundBox = match getInteger(this, "PrizeHeight") {
662664 case a: Int =>
663665 a
664666 case _ =>
665667 0
666668 }
667669 let ActualDelay = match getInteger(this, "Delay") {
668670 case a: Int =>
669671 a
670672 case _ =>
671673 0
672674 }
673675 let PrizeHeightValue = if (if ((HeightTransactFundBox == 0))
674676 then (PrizeAmount == 0)
675677 else false)
676678 then 0
677679 else if (if ((HeightTransactFundBox == 0))
678680 then (PrizeAmount != 0)
679681 else false)
680682 then height
681683 else if (if ((HeightTransactFundBox != 0))
682684 then (PrizeAmount != 0)
683685 else false)
684686 then HeightTransactFundBox
685687 else 0
686688 let HighestPushValue = match getInteger(this, "HighestPush") {
687689 case a: Int =>
688690 a
689691 case _ =>
690692 0
691693 }
692694 let HighestPushAddress = getStringValue(this, "HighestPushAddress")
693695 let HighestPushAddressValue = if (if ((height > ((PrizeHeightValue + ActualDelay) + WaitTime)))
694696 then (HighestPushValue > 0)
695697 else false)
696698 then ""
697699 else HighestPushAddress
698700 let PrizeHeightValueNew = if (if ((height > ((PrizeHeightValue + ActualDelay) + WaitTime)))
699701 then (HighestPushValue > 0)
700702 else false)
701703 then height
702704 else PrizeHeightValue
703705 let ActualDelayCost = match getInteger(this, "DelayCost") {
704706 case a: Int =>
705707 a
706708 case _ =>
707709 10
708710 }
709711 let pmt = if ((size(i.payments) == 1))
710712 then i.payments[0]
711713 else throw("Attached payment is required")
712714 let DevBoxBalance = match getInteger(this, "DevBox") {
713715 case a: Int =>
714716 a
715717 case _ =>
716718 0
717719 }
718720 if (if (isDefined(pmt.assetId))
719721 then (pmt.assetId == GovernToken)
720722 else false)
721723 then if ((PrizeAmount > 0))
722724 then {
723725 let UserGovernTokenAmount = pmt.amount
724726 let DevBoxAmount = (DevBoxBalance + ((pmt.amount * 5) / 1000))
725727 let NewDelayCost = if ((ActualDelayCost == 0))
726728 then 1000000000
727729 else (2 * ActualDelayCost)
728730 if ((UserGovernTokenAmount >= NewDelayCost))
729731 then {
730732 let NewDelay = (ActualDelay + DelayDays)
731733 [IntegerEntry("Delay", NewDelay), IntegerEntry("DelayCost", NewDelayCost), IntegerEntry("PrizeHeight", PrizeHeightValueNew), IntegerEntry("DevBox", DevBoxAmount), StringEntry("HighestPushAddress", HighestPushAddressValue)]
732734 }
733735 else throw((("To delay the release of the reward ONE DAY later than expected, you need " + toString(NewDelayCost)) + "TROIKAs"))
734736 }
735737 else throw("You cannot delay the reward before reward is received! Please wait until a reward is available")
736738 else throw("Can Use only Troika Token to Delay Reward")
737739 }
738740
739741
740742
741743 @Callable(i)
742744 func ClaimPrize () = {
743745 let UserStakedTokenKey = (toBase58String(i.caller.bytes) + "_Staking")
744746 let UserPush = (toBase58String(i.caller.bytes) + "_Push")
745747 let UserLastStakeBlock = (toBase58String(i.caller.bytes) + "_UserLastStakeBlock")
746748 let minStakeBlock = (1440 * 7)
747749 let minref = 3
748750 let ContractGovTokenBalance = assetBalance(this, GovernToken)
749751 let ContractWalletStakeBalance = assetBalance(this, StakedToken)
750752 let StakeBalance = match getInteger(this, "StakeBalance") {
751753 case a: Int =>
752754 a
753755 case _ =>
754756 0
755757 }
756758 let PrizeAmount = match getInteger(this, "FundBox") {
757759 case a: Int =>
758760 a
759761 case _ =>
760762 0
761763 }
762764 let UserPushValue = match getInteger(this, UserPush) {
763765 case a: Int =>
764766 a
765767 case _ =>
766768 0
767769 }
768770 let UserLastStakeBlockValue = match getInteger(this, UserLastStakeBlock) {
769771 case a: Int =>
770772 a
771773 case _ =>
772774 0
773775 }
774776 let UserStakedTokenAmount = match getInteger(this, UserStakedTokenKey) {
775777 case a: Int =>
776778 a
777779 case _ =>
778780 0
779781 }
780782 let ActualDelay = match getInteger(this, "Delay") {
781783 case a: Int =>
782784 a
783785 case _ =>
784786 0
785787 }
786788 let PrizeWinner = getStringValue(this, "HighestPushAddress")
787789 let PrizeHeight = match getInteger(this, "PrizeHeight") {
788790 case a: Int =>
789791 a
790792 case _ =>
791793 0
792794 }
793795 let HighestPushValue = match getInteger(this, "HighestPush") {
794796 case a: Int =>
795797 a
796798 case _ =>
797799 0
798800 }
799801 let UserRefsNum = (toBase58String(i.caller.bytes) + "_refs")
800802 let UserRefsNumValue = match getInteger(this, UserRefsNum) {
801803 case a: Int =>
802804 a
803805 case _ =>
804806 0
805807 }
806808 if (if ((PrizeAmount == 0))
807809 then true
808810 else (10000000000 > ContractGovTokenBalance))
809811 then throw("No prize to Claim or Not enough Govern Token en Contract (Min 100 Troika)")
810812 else if ((toBase58String(i.caller.bytes) != PrizeWinner))
811813 then throw("You are not the winner hence cannot claim the reward ")
812814 else if (if ((100000000 > UserStakedTokenAmount))
813815 then (minStakeBlock > UserLastStakeBlockValue)
814816 else false)
815817 then throw("You have to Stake ASIMI Token to claim reward ")
816818 else if (if ((height > (PrizeHeight + ActualDelay)))
817819 then (UserPushValue >= HighestPushValue)
818820 else false)
819821 then if ((UserRefsNumValue >= minref))
820822 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)]
821823 else throw((("You have to have " + toString(minref)) + " referrals already staking for a minimum of 10 days to Claim the prize"))
822824 else throw("You have to be the user with the highest Push and wait till countown is finished, to claim Reward")
823825 }
824826
825827
826828
827829 @Callable(i)
828830 func Addmentor (Mentor) = {
829831 let UserMentorAddress = (toBase58String(i.caller.bytes) + "_Mentor")
830832 if ((Mentor != ""))
831833 then [StringEntry(UserMentorAddress, Mentor)]
832834 else throw("Mentor's Address cannot be empty")
833835 }
834836
835837
836838
837839 @Callable(i)
838840 func GetLikesPackage (TwitterUserId,TwittId) = {
839841 let pmt = if ((size(i.payments) == 2))
840842 then i.payments[0]
841843 else throw("Attached payment is required")
842844 if (if ((i.payments[0].assetId == StakedToken))
843845 then (i.payments[1].assetId == GovernToken)
844846 else false)
845- then if ((pmt.amount > LikePackagePrice))
846- then [IntegerEntry((toString(TwitterUserId) + "_Twitt2Like"), TwittId)]
847- else throw(("Amount should be :" + toString((pmt.amount / 100000000))))
847+ then if ((i.payments[0].amount >= LikePackageASIMICost))
848+ then if ((i.payments[1].amount >= LikePackageTROIKANCost))
849+ then [IntegerEntry((toString(TwitterUserId) + "_Twitt2Like"), TwittId)]
850+ else throw(("TROIKAN Amount should be :" + toString((LikePackageASIMICost / 100000000))))
851+ else throw(("ASIMI Amount should be :" + toString((LikePackageTROIKANCost / 100000000))))
848852 else throw("Payments should be both ASIMI and TROIKAN tokens")
849853 }
850854
851855

github/deemru/w8io/169f3d6 
88.27 ms