tx · 584KtjiUpTiUmMidANyKgcvXwFdKFAgnXYohibibg4VG

3N9evuqxGecMq9hBmpdJu2VkMzdR5VNVrvK:  -0.02300000 Waves

2022.07.01 20:37 [2120893] smart account 3N9evuqxGecMq9hBmpdJu2VkMzdR5VNVrvK > SELF 0.00000000 Waves

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

github/deemru/w8io/3ef1775 
99.07 ms