tx · 4EziSCfvqW2yotWXT8LjDLGqQyvZtL3RH5cxPGRMMatq

3N9evuqxGecMq9hBmpdJu2VkMzdR5VNVrvK:  -0.02200000 Waves

2022.06.29 17:54 [2117874] smart account 3N9evuqxGecMq9hBmpdJu2VkMzdR5VNVrvK > SELF 0.00000000 Waves

{ "type": 13, "id": "4EziSCfvqW2yotWXT8LjDLGqQyvZtL3RH5cxPGRMMatq", "fee": 2200000, "feeAssetId": null, "timestamp": 1656514539340, "version": 2, "chainId": 84, "sender": "3N9evuqxGecMq9hBmpdJu2VkMzdR5VNVrvK", "senderPublicKey": "AHY8zupoYc6HPJ5fh1gQiGE9bNZSeifFbcQQ89okxVug", "proofs": [ "4yZiSvkXzLg3hXyRMykVo1pyJa56oeUB3y5LcBfC4p2Znv1Zxu7XNTgTedbowZUnoVnwsm2HbpNeuw2NJnUdkoc7" ], "script": "base64:BgIlCAISABIAEgASABIDCgEBEgASAwoBARIAEgASAwoBCBIECgIBAQMAC1N0YWtlZFRva2VuASD5rl2FqqDB81weFWSW9S5FyKYquYAb4MpXXcAlqscPUAALR292ZXJuVG9rZW4BIAFshcLXQMYuV8Rzs8ULZ07fOlzF6BxYes7P/1GRlpktABBMaWtlUGFja2FnZVByaWNlCQBoAgAKAIDC1y8LAWkBC0RldldpdGhkcmF3AAQKY3VycmVudEtleQkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzAwkAAAIFCmN1cnJlbnRLZXkCIzNQNzRidUh0OThCbm9qRmNhUkVKWnRiOThLRHlVbVpHZW1KBAxEZXZCb3hBbW91bnQEByRtYXRjaDAJAJoIAgUEdGhpcwIGRGV2Qm94AwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAAAwkAZgIAAAUMRGV2Qm94QW1vdW50CQACAQISTm90IGVub3VnaCBiYWxhbmNlCQDMCAIJAQxJbnRlZ2VyRW50cnkCAgZEZXZCb3gAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIFDERldkJveEFtb3VudAULR292ZXJuVG9rZW4FA25pbAkAAgECLFlvdSBjYW5ub3Qgd2l0aGRyYXcgYXMgeW91ciBhcmUgbm90IHRoZSBEZXYuAWkBFVdpdGhkcmF3V2Vla2x5RWFybmluZwAEGkNvbnRyYWN0V2FsbGV0U3Rha2VCYWxhbmNlCQDwBwIFBHRoaXMFC1N0YWtlZFRva2VuBAxNYXhEZXBvc2l0ZXIJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMCDE1heERlcG9zaXRlcgQSVXNlcldlZWtseUVhcm5pbmdzCQCsAgIJANgEAQgIBQFpBmNhbGxlcgVieXRlcwIMX1dlZWtFYXJuaW5nBAxTdGFrZUJhbGFuY2UEByRtYXRjaDAJAJoIAgUEdGhpcwIMU3Rha2VCYWxhbmNlAwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAABAtQcml6ZUFtb3VudAQHJG1hdGNoMAkAmggCBQR0aGlzAgdGdW5kQm94AwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAABBVIZWlnaHRUcmFuc2FjdEZ1bmRCb3gEByRtYXRjaDAJAJoIAgUEdGhpcwILUHJpemVIZWlnaHQDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEEFByaXplSGVpZ2h0VmFsdWUDAwkAAAIFFUhlaWdodFRyYW5zYWN0RnVuZEJveAAACQAAAgULUHJpemVBbW91bnQAAAcAAAMDCQAAAgUVSGVpZ2h0VHJhbnNhY3RGdW5kQm94AAAJAQIhPQIFC1ByaXplQW1vdW50AAAHBQZoZWlnaHQDAwkBAiE9AgUVSGVpZ2h0VHJhbnNhY3RGdW5kQm94AAAJAQIhPQIFC1ByaXplQW1vdW50AAAHBRVIZWlnaHRUcmFuc2FjdEZ1bmRCb3gAAAQKY3VycmVudEtleQkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzBAluZXdBbW91bnQEByRtYXRjaDAJAJoIAgUEdGhpcwUSVXNlcldlZWtseUVhcm5pbmdzAwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAAAwkAZgIAAAUJbmV3QW1vdW50CQACAQIeQ2FuJ3Qgd2l0aGRyYXcgbmVnYXRpdmUgYW1vdW50AwkAZgIAAAUJbmV3QW1vdW50CQACAQkArAICAkFVc2VyIGNhbm5vdCB3aXRoZHJhdyBtb3JlIHRoYW4gZGVwb3NpdGVkIGZ1bmRzLCBZb3VyIGRlcG9zaXQgaXM6IAkApAMBCQBpAgUJbmV3QW1vdW50AIDC1y8JAMwIAgkBDEludGVnZXJFbnRyeQIFElVzZXJXZWVrbHlFYXJuaW5ncwAACQDMCAIJAQxJbnRlZ2VyRW50cnkCAgtQcml6ZUhlaWdodAUQUHJpemVIZWlnaHRWYWx1ZQkAzAgCCQEMSW50ZWdlckVudHJ5AgIKTWF4RGVwb3NpdAAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgUJbmV3QW1vdW50BQtTdGFrZWRUb2tlbgUDbmlsAWkBClB1c2hSZXdhcmQABAxtaW5QdXNoQmxvY2sACgQNbWluU3Rha2VCbG9jawkAaAIABwCgCwQORGVsYXlBZnRlclB1c2gAPAQIV2FpdFRpbWUJAGgCAKALAAEEBm1pbnJlZgADBA5GaXJzdFB1c2hUaW1lcgkAaAIABwCgCwQXdXNlcldhbGxldEdvdmVybkJhbGFuY2UJAPAHAgkBB0FkZHJlc3MBCAgFAWkGY2FsbGVyBWJ5dGVzBQtHb3Zlcm5Ub2tlbgQDcG10AwkAAAIJAJADAQgFAWkIcGF5bWVudHMAAQkAkQMCCAUBaQhwYXltZW50cwAACQACAQIcQXR0YWNoZWQgcGF5bWVudCBpcyByZXF1aXJlZAQIVXNlclB1c2gJAKwCAgkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzAgVfUHVzaAQUVXNlckxhc3RQdXNoT2xkVmFsdWUEByRtYXRjaDAJAJoIAgUEdGhpcwUIVXNlclB1c2gDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEC1VzZXJSZWZzTnVtCQCsAgIJANgEAQgIBQFpBmNhbGxlcgVieXRlcwIFX3JlZnMEEFVzZXJSZWZzTnVtVmFsdWUEByRtYXRjaDAJAJoIAgUEdGhpcwULVXNlclJlZnNOdW0DCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEEEhpZ2hlc3RQdXNoVmFsdWUEByRtYXRjaDAJAJoIAgUEdGhpcwILSGlnaGVzdFB1c2gDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAADCQBmAgUXdXNlcldhbGxldEdvdmVybkJhbGFuY2UIBQNwbXQGYW1vdW50AwMJAGYCCQBkAggFA3BtdAZhbW91bnQFFFVzZXJMYXN0UHVzaE9sZFZhbHVlBRBIaWdoZXN0UHVzaFZhbHVlCQAAAggFA3BtdAdhc3NldElkBQtHb3Zlcm5Ub2tlbgcEEVVzZXJMYXN0UHVzaEJsb2NrCQCsAgIJANgEAQgIBQFpBmNhbGxlcgVieXRlcwISX1VzZXJMYXN0UHVzaEJsb2NrBBJVc2VyTGFzdFN0YWtlQmxvY2sJAKwCAgkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzAhNfVXNlckxhc3RTdGFrZUJsb2NrBAlVc2VyU3Rha2UJAKwCAgkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzAghfU3Rha2luZwQaQ29udHJhY3RXYWxsZXRTdGFrZUJhbGFuY2UJAPAHAgUEdGhpcwULU3Rha2VkVG9rZW4EDFN0YWtlQmFsYW5jZQQHJG1hdGNoMAkAmggCBQR0aGlzAgxTdGFrZUJhbGFuY2UDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEC1ByaXplQW1vdW50BAckbWF0Y2gwCQCaCAIFBHRoaXMCB0Z1bmRCb3gDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEFUhlaWdodFRyYW5zYWN0RnVuZEJveAQHJG1hdGNoMAkAmggCBQR0aGlzAgtQcml6ZUhlaWdodAMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAQQUHJpemVIZWlnaHRWYWx1ZQMDCQAAAgUVSGVpZ2h0VHJhbnNhY3RGdW5kQm94AAAJAAACBQtQcml6ZUFtb3VudAAABwAAAwMJAAACBRVIZWlnaHRUcmFuc2FjdEZ1bmRCb3gAAAkBAiE9AgULUHJpemVBbW91bnQAAAcFBmhlaWdodAMDCQECIT0CBRVIZWlnaHRUcmFuc2FjdEZ1bmRCb3gAAAkBAiE9AgULUHJpemVBbW91bnQAAAcFFUhlaWdodFRyYW5zYWN0RnVuZEJveAAABAtBY3R1YWxEZWxheQQHJG1hdGNoMAkAmggCBQR0aGlzAgVEZWxheQMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAQSSGlnaGVzdFB1c2hBZGRyZXNzBAckbWF0Y2gwCQCaCAIFBHRoaXMCEkhpZ2hlc3RQdXNoQWRkcmVzcwMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAQWVXNlckxhc3RQdXNoQmxvY2tWYWx1ZQQHJG1hdGNoMAkAmggCBQR0aGlzBRFVc2VyTGFzdFB1c2hCbG9jawMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAQXVXNlckxhc3RTdGFrZUJsb2NrVmFsdWUEByRtYXRjaDAJAJoIAgUEdGhpcwUSVXNlckxhc3RTdGFrZUJsb2NrAwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAABA5Vc2VyU3Rha2VWYWx1ZQQHJG1hdGNoMAkAmggCBQR0aGlzBQlVc2VyU3Rha2UDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEDURldkJveEJhbGFuY2UEByRtYXRjaDAJAJoIAgUEdGhpcwIGRGV2Qm94AwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAABAxEZXZCb3hBbW91bnQJAGQCBQ1EZXZCb3hCYWxhbmNlCQBpAgkAaAIIBQNwbXQGYW1vdW50AAUA6AcEDVVzZXJQdXNodmFsdWUJAGQCCAUDcG10BmFtb3VudAUUVXNlckxhc3RQdXNoT2xkVmFsdWUECE5ld0RlbGF5AwMJAGYCBQZoZWlnaHQJAGQCCQBkAgUQUHJpemVIZWlnaHRWYWx1ZQULQWN0dWFsRGVsYXkFCFdhaXRUaW1lCQBmAgUQSGlnaGVzdFB1c2hWYWx1ZQAABwUORmlyc3RQdXNoVGltZXIJAGQCBQtBY3R1YWxEZWxheQUORGVsYXlBZnRlclB1c2gEF0hpZ2hlc3RQdXNoQWRkcmVzc1ZhbHVlAwMJAGYCBQZoZWlnaHQJAGQCCQBkAgUQUHJpemVIZWlnaHRWYWx1ZQUITmV3RGVsYXkFCFdhaXRUaW1lCQBmAgUQSGlnaGVzdFB1c2hWYWx1ZQAABwIABRJIaWdoZXN0UHVzaEFkZHJlc3MEE1ByaXplSGVpZ2h0VmFsdWVOZXcDAwkAZgIFBmhlaWdodAkAZAIJAGQCBRBQcml6ZUhlaWdodFZhbHVlBQhOZXdEZWxheQUIV2FpdFRpbWUJAGYCBRBIaWdoZXN0UHVzaFZhbHVlAAAHBQZoZWlnaHQFEFByaXplSGVpZ2h0VmFsdWUDAwkAZgIFDVVzZXJQdXNodmFsdWUAAAkAZgIJAGUCBQZoZWlnaHQFF1VzZXJMYXN0U3Rha2VCbG9ja1ZhbHVlBQ1taW5TdGFrZUJsb2NrBwMJAGYCCQBlAgUGaGVpZ2h0BRZVc2VyTGFzdFB1c2hCbG9ja1ZhbHVlBQxtaW5QdXNoQmxvY2sDCQBmAgUOVXNlclN0YWtlVmFsdWUAAAMJAGYCBQ1Vc2VyUHVzaHZhbHVlBRBIaWdoZXN0UHVzaFZhbHVlAwkAZgIFC1ByaXplQW1vdW50AAADAwMDCQBnAgkAZAIFE1ByaXplSGVpZ2h0VmFsdWVOZXcFCE5ld0RlbGF5BQZoZWlnaHQGCQBnAgUGaGVpZ2h0CQBkAgkAZAIFE1ByaXplSGVpZ2h0VmFsdWVOZXcFCE5ld0RlbGF5BQhXYWl0VGltZQkAZgIFEEhpZ2hlc3RQdXNoVmFsdWUAAAcGCQAAAgUQSGlnaGVzdFB1c2hWYWx1ZQAAAwkAZwIFEFVzZXJSZWZzTnVtVmFsdWUFBm1pbnJlZgkAzAgCCQEMSW50ZWdlckVudHJ5AgUIVXNlclB1c2gFDVVzZXJQdXNodmFsdWUJAMwIAgkBC1N0cmluZ0VudHJ5AgISSGlnaGVzdFB1c2hBZGRyZXNzCQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMJAMwIAgkBDEludGVnZXJFbnRyeQICC0hpZ2hlc3RQdXNoBQ1Vc2VyUHVzaHZhbHVlCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRFVc2VyTGFzdFB1c2hCbG9jawUGaGVpZ2h0CQDMCAIJAQxJbnRlZ2VyRW50cnkCAgtQcml6ZUhlaWdodAUTUHJpemVIZWlnaHRWYWx1ZU5ldwkAzAgCCQEMSW50ZWdlckVudHJ5AgIFRGVsYXkFCE5ld0RlbGF5CQDMCAIJAQxJbnRlZ2VyRW50cnkCAgZEZXZCb3gFDERldkJveEFtb3VudAUDbmlsCQACAQkArAICCQCsAgICEVlvdSBoYXZlIHRvIGhhdmUgCQCkAwEFBm1pbnJlZgI8IHJlZmVycmFscyBhbHJlYWR5IHN0YWtpbmcgZm9yIGEgbWluaW11bSBvZiAxMCBkYXlzLCB0byBwdXNoBAN0eHQDCQBmAgUQSGlnaGVzdFB1c2hWYWx1ZQAAAk9Zb3UgY2Fubm90IFB1c2ggYWZ0ZXIgcmV3YXJkaW5nIFByaXplIGFuZCBiZWZvcmUgT25lIGRheSBoYXMgcGFzc2VkIGFmdGVyIGF3YXJkAhBVbmV4cGVjdGVkIGVycm9yCQACAQUDdHh0CQACAQJOWW91IGNhbm5vdCBwdXNoIGJlZm9yZSB0aGUgcmV3YXJkIGlzIHVubG9ja2VkLCBubyByZXdhcmQgaGFzIGJlZW4gZGV0ZWN0ZWQgeWV0CQACAQJDWW91ciBwdXNoIGluIHRyb2lrYW4gdG9rZW4sIHNob3VsZCBiZSBIaWdoZXIgdGhhbiBsYXN0IEhpZ2hlc3QgUHVzaAkAAgECWFRvIGJlIGFibGUgdG8gcGFydGljaXBhdGUgaW4gUHVzaGluZyBmb3IgdGhlIHJld2FyZCB5b3UgbmVlZCB0byBTdGFrZSBBU0lNSXMgaW4gdGhlIGRBcHAJAAIBAjVZb3UgaGF2ZSB0byB3YWl0IDEwbWluIGJlZm9yZSB5b3UgY2FuIG1ha2UgYSBuZXcgUHVzaAkAAgEJAKwCAgI6WW91ciBQdXNoIGRvdCBub3QgY29tcGx5IG9uZSBvZiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6IAJdMS4gUG9zaXRpdmUgVmFsdWUgZm9yIFB1c2ggaW4gVHJvaWthbiBUb2tlCiAyLiBNdXN0IFN0YWtlZCBBU0lNSSBUb2tlbiBmb3IgYSBtaW5pbXVtIG9mIHdlZWsgCQACAQkArAICCQCsAgICdkNhbiBkZXBvc2l0IG9ubHkgcG9zaXRpdmUgYW1vdW50cyBvZiBUcm9pa2FuIFRva2VuLCBvciBDaGVjayB5b3VyIFdhbGxldCBiYWxhbmNlIGluIFRyb2lrYSwgeW91IHNob3VsZCBoYXZlIG1vcmUgdGhhbiAJAKQDAQUQSGlnaGVzdFB1c2hWYWx1ZQIIIHRvIHB1c2gJAAIBAqQBWW91IGRvIG5vdCBoYXZlIGVub3VnaCBUcm9pa2FuIFRva2VucyBpbiB5b3VyIFdhbGxldCBCYWxhbmNlLCBQbGVhc2UgSGFydmVzdCBpZiB5b3UgaGF2ZSBlYXJuZWQgVHJvaWthbiB3YWxsZXQgb3IgdHJhbnNmZXIgdG8geW91ciB3YWxsZXQgbmVjZXNzYXJ5IFRyb2lrYW4gYW1vdW50ICEBaQEFU3Rha2UABAhXYWl0VGltZQkAaAIAoAsAAQQDcG10AwkAAAIJAJADAQgFAWkIcGF5bWVudHMAAQkAkQMCCAUBaQhwYXltZW50cwAACQACAQIcQXR0YWNoZWQgcGF5bWVudCBpcyByZXF1aXJlZAMDCQBmAggFA3BtdAZhbW91bnQAAAkAAAIIBQNwbXQHYXNzZXRJZAULU3Rha2VkVG9rZW4HBB9Hb3Zlcm5Ub2tlblNtYXJ0Q29udHJhY3RCYWxhbmNlCQDwBwIFBHRoaXMFC0dvdmVyblRva2VuBAdVc2VyQVBZCQCsAgIJANgEAQgIBQFpBmNhbGxlcgVieXRlcwIEX0FQWQQIVXNlclB1c2gJAKwCAgkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzAgVfUHVzaAQSVXNlclN0YWtlZFRva2VuS2V5CQCsAgIJANgEAQgIBQFpBmNhbGxlcgVieXRlcwIIX1N0YWtpbmcEElVzZXJHb3Zlcm5Ub2tlbktleQkArAICCQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMCCV9FYXJuaW5ncwQSVXNlckxhc3RTdGFrZUJsb2NrCQCsAgIJANgEAQgIBQFpBmNhbGxlcgVieXRlcwITX1VzZXJMYXN0U3Rha2VCbG9jawQYVXNlclN0YWtlVHJhbnNhY3Rpb25zS2V5CQCsAgIJANgEAQgIBQFpBmNhbGxlcgVieXRlcwITX1N0YWtlZFRyYW5zYWN0aW9ucwQNQWRkcmVzc0hlaWdodAkArAICCQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMCDF9Qcml6ZUhlaWdodAQQVXNlcldlZWtFYXJuaW5ncwkArAICCQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMCDF9XZWVrRWFybmluZwQVVXNlclN0YWtlVHJhbnNhY3Rpb25zBAckbWF0Y2gwCQCaCAIFBHRoaXMFGFVzZXJTdGFrZVRyYW5zYWN0aW9uc0tleQMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAQMTWF4RGVwb3NpdGVyCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzAgxNYXhEZXBvc2l0ZXIED01heERlcG9zaXRCbG9jawQHJG1hdGNoMAkAmggCBQR0aGlzAg9NYXhEZXBvc2l0QmxvY2sDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAECk1heERlcG9zaXQEByRtYXRjaDAJAJoIAgUEdGhpcwIKTWF4RGVwb3NpdAMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAQRTWF4RGVwb3NpdGVyVmFsdWUDCQBmAggFA3BtdAZhbW91bnQFCk1heERlcG9zaXQJANgEAQgIBQFpBmNhbGxlcgVieXRlcwUMTWF4RGVwb3NpdGVyBA9NYXhEZXBvc2l0VmFsdWUDCQBmAggFA3BtdAZhbW91bnQFCk1heERlcG9zaXQIBQNwbXQGYW1vdW50BQpNYXhEZXBvc2l0BBRNYXhEZXBvc2l0QmxvY2tWYWx1ZQMJAGYCCAUDcG10BmFtb3VudAUKTWF4RGVwb3NpdAUGaGVpZ2h0BQ9NYXhEZXBvc2l0QmxvY2sEDVVzZXJQdXNoVmFsdWUEByRtYXRjaDAJAJoIAgUEdGhpcwUIVXNlclB1c2gDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEF1VzZXJMYXN0U3Rha2VCbG9ja1ZhbHVlBAckbWF0Y2gwCQCaCAIFBHRoaXMFElVzZXJMYXN0U3Rha2VCbG9jawMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAQaVXNlckxhc3RTdGFrZUJsb2NrTmV3VmFsdWUDCQAAAgUXVXNlckxhc3RTdGFrZUJsb2NrVmFsdWUAAAUGaGVpZ2h0BRdVc2VyTGFzdFN0YWtlQmxvY2tWYWx1ZQQYTmV3VXNlclN0YWtlVHJhbnNhY3Rpb25zCQBkAgUVVXNlclN0YWtlVHJhbnNhY3Rpb25zAAEEGGN1cnJlbnRBbW91bnRTdGFrZWRUb2tlbgQHJG1hdGNoMAkAmggCBQR0aGlzBRJVc2VyU3Rha2VkVG9rZW5LZXkDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEFG5ld0Ftb3VudFN0YWtlZFRva2VuCQBkAgUYY3VycmVudEFtb3VudFN0YWtlZFRva2VuCAUDcG10BmFtb3VudAQaQ29udHJhY3RXYWxsZXRTdGFrZUJhbGFuY2UJAPAHAgUEdGhpcwULU3Rha2VkVG9rZW4EDFN0YWtlQmFsYW5jZQQHJG1hdGNoMAkAmggCBQR0aGlzAgxTdGFrZUJhbGFuY2UDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEElN0YWtlQmFsYW5jZUFtb3VudAkAZAIFDFN0YWtlQmFsYW5jZQgFA3BtdAZhbW91bnQEC1ByaXplQW1vdW50BAckbWF0Y2gwCQCaCAIFBHRoaXMCB0Z1bmRCb3gDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEFVVzZXJXZWVrRWFybmluZ3NWYWx1ZQQHJG1hdGNoMAkAmggCBQR0aGlzBRBVc2VyV2Vla0Vhcm5pbmdzAwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAABBhjdXJyZW50QW1vdW50R292ZXJuVG9rZW4EByRtYXRjaDAJAJoIAgUEdGhpcwUSVXNlckdvdmVyblRva2VuS2V5AwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAABBVIZWlnaHRUcmFuc2FjdEZ1bmRCb3gEByRtYXRjaDAJAJoIAgUEdGhpcwILUHJpemVIZWlnaHQDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEEFByaXplSGVpZ2h0VmFsdWUDAwkAAAIFFUhlaWdodFRyYW5zYWN0RnVuZEJveAAACQAAAgULUHJpemVBbW91bnQAAAcAAAMDCQAAAgUVSGVpZ2h0VHJhbnNhY3RGdW5kQm94AAAJAQIhPQIFC1ByaXplQW1vdW50AAAHBQZoZWlnaHQDAwkBAiE9AgUVSGVpZ2h0VHJhbnNhY3RGdW5kQm94AAAJAQIhPQIFC1ByaXplQW1vdW50AAAHBRVIZWlnaHRUcmFuc2FjdEZ1bmRCb3gAAAQLQWN0dWFsRGVsYXkEByRtYXRjaDAJAJoIAgUEdGhpcwIFRGVsYXkDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEEEhpZ2hlc3RQdXNoVmFsdWUEByRtYXRjaDAJAJoIAgUEdGhpcwILSGlnaGVzdFB1c2gDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEEkhpZ2hlc3RQdXNoQWRkcmVzcwkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwISSGlnaGVzdFB1c2hBZGRyZXNzBBdIaWdoZXN0UHVzaEFkZHJlc3NWYWx1ZQMDCQBmAgUGaGVpZ2h0CQBkAgkAZAIFEFByaXplSGVpZ2h0VmFsdWUFC0FjdHVhbERlbGF5BQhXYWl0VGltZQkAZgIFEEhpZ2hlc3RQdXNoVmFsdWUAAAcCAAUSSGlnaGVzdFB1c2hBZGRyZXNzBBNQcml6ZUhlaWdodFZhbHVlTmV3AwMJAGYCBQZoZWlnaHQJAGQCCQBkAgUQUHJpemVIZWlnaHRWYWx1ZQULQWN0dWFsRGVsYXkFCFdhaXRUaW1lCQBmAgUQSGlnaGVzdFB1c2hWYWx1ZQAABwUGaGVpZ2h0BRBQcml6ZUhlaWdodFZhbHVlAwkAZgIAgMLXLwUfR292ZXJuVG9rZW5TbWFydENvbnRyYWN0QmFsYW5jZQkAAgECPk5vIGVub3VnaCBHb3Zlcm5Ub2tlbiBJbiBDb250cmFjdCwgUGxlYXNlIGRlcG9zaXQgR292ZXJuVG9rZW5zBAZSZXdhcmQDCQAAAgUMU3Rha2VCYWxhbmNlAAAAkE4DCQBmAgUYTmV3VXNlclN0YWtlVHJhbnNhY3Rpb25zAAoJAGgCCQBoAgCQTgUYTmV3VXNlclN0YWtlVHJhbnNhY3Rpb25zCQBkAgABCQBpAgUUbmV3QW1vdW50U3Rha2VkVG9rZW4FDFN0YWtlQmFsYW5jZQkAaAIAkE4JAGQCAAEJAGkCBRRuZXdBbW91bnRTdGFrZWRUb2tlbgUMU3Rha2VCYWxhbmNlBAxVc2VyQVBZVmFsdWUDCQBmAgUYY3VycmVudEFtb3VudEdvdmVyblRva2VuAAAJAGkCCQBoAgBkBQZSZXdhcmQFGGN1cnJlbnRBbW91bnRHb3Zlcm5Ub2tlbgAABBRuZXdBbW91bnRHb3Zlcm5Ub2tlbgkAZAIFGGN1cnJlbnRBbW91bnRHb3Zlcm5Ub2tlbgUGUmV3YXJkCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRJVc2VyR292ZXJuVG9rZW5LZXkFFG5ld0Ftb3VudEdvdmVyblRva2VuCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRJVc2VyU3Rha2VkVG9rZW5LZXkFFG5ld0Ftb3VudFN0YWtlZFRva2VuCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRhVc2VyU3Rha2VUcmFuc2FjdGlvbnNLZXkFGE5ld1VzZXJTdGFrZVRyYW5zYWN0aW9ucwkAzAgCCQEMSW50ZWdlckVudHJ5AgIMU3Rha2VCYWxhbmNlBRJTdGFrZUJhbGFuY2VBbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQICC1ByaXplSGVpZ2h0BRNQcml6ZUhlaWdodFZhbHVlTmV3CQDMCAIJAQxJbnRlZ2VyRW50cnkCBQdVc2VyQVBZBQxVc2VyQVBZVmFsdWUJAMwIAgkBDEludGVnZXJFbnRyeQIFElVzZXJMYXN0U3Rha2VCbG9jawUaVXNlckxhc3RTdGFrZUJsb2NrTmV3VmFsdWUJAMwIAgkBDEludGVnZXJFbnRyeQIFCFVzZXJQdXNoBQ1Vc2VyUHVzaFZhbHVlCQDMCAIJAQtTdHJpbmdFbnRyeQICDE1heERlcG9zaXRlcgURTWF4RGVwb3NpdGVyVmFsdWUJAMwIAgkBDEludGVnZXJFbnRyeQICCk1heERlcG9zaXQFD01heERlcG9zaXRWYWx1ZQkAzAgCCQEMSW50ZWdlckVudHJ5AgIPTWF4RGVwb3NpdEJsb2NrBRRNYXhEZXBvc2l0QmxvY2tWYWx1ZQkAzAgCCQELU3RyaW5nRW50cnkCAhJIaWdoZXN0UHVzaEFkZHJlc3MFF0hpZ2hlc3RQdXNoQWRkcmVzc1ZhbHVlCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRBVc2VyV2Vla0Vhcm5pbmdzBRVVc2VyV2Vla0Vhcm5pbmdzVmFsdWUJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyBQZSZXdhcmQFC0dvdmVyblRva2VuBQNuaWwJAAIBAhtDYW4gZGVwb3NpdCBvbmx5IFN0YWtlVG9rZW4BaQETV2l0aGRyYXdTdGFrZWRGdW5kcwEGYW1vdW50BAhXYWl0VGltZQkAaAIAoAsAAQQSVXNlckxhc3RTdGFrZUJsb2NrCQCsAgIJANgEAQgIBQFpBmNhbGxlcgVieXRlcwITX1VzZXJMYXN0U3Rha2VCbG9jawQSVXNlclN0YWtlZFRva2VuS2V5CQCsAgIJANgEAQgIBQFpBmNhbGxlcgVieXRlcwIIX1N0YWtpbmcEElVzZXJHb3Zlcm5Ub2tlbktleQkArAICCQCsAgIJANgEAQgIBQFpBmNhbGxlcgVieXRlcwIBXwkA2AQBBQtHb3Zlcm5Ub2tlbgQaQ29udHJhY3RXYWxsZXRTdGFrZUJhbGFuY2UJAPAHAgUEdGhpcwULU3Rha2VkVG9rZW4EF1VzZXJMYXN0U3Rha2VCbG9ja1ZhbHVlBAckbWF0Y2gwCQCaCAIFBHRoaXMFElVzZXJMYXN0U3Rha2VCbG9jawMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAQMU3Rha2VCYWxhbmNlBAckbWF0Y2gwCQCaCAIFBHRoaXMCDFN0YWtlQmFsYW5jZQMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAQLUHJpemVBbW91bnQEByRtYXRjaDAJAJoIAgUEdGhpcwIHRnVuZEJveAMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAQVSGVpZ2h0VHJhbnNhY3RGdW5kQm94BAckbWF0Y2gwCQCaCAIFBHRoaXMCC1ByaXplSGVpZ2h0AwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAABAtBY3R1YWxEZWxheQQHJG1hdGNoMAkAmggCBQR0aGlzAgVEZWxheQMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAQQSGlnaGVzdFB1c2hWYWx1ZQQHJG1hdGNoMAkAmggCBQR0aGlzAgtIaWdoZXN0UHVzaAMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAQQUHJpemVIZWlnaHRWYWx1ZQMDCQAAAgUVSGVpZ2h0VHJhbnNhY3RGdW5kQm94AAAJAAACBQtQcml6ZUFtb3VudAAABwAAAwMJAAACBRVIZWlnaHRUcmFuc2FjdEZ1bmRCb3gAAAkBAiE9AgULUHJpemVBbW91bnQAAAcFBmhlaWdodAMDCQECIT0CBRVIZWlnaHRUcmFuc2FjdEZ1bmRCb3gAAAkBAiE9AgULUHJpemVBbW91bnQAAAcFFUhlaWdodFRyYW5zYWN0RnVuZEJveAAABBJIaWdoZXN0UHVzaEFkZHJlc3MJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMCEkhpZ2hlc3RQdXNoQWRkcmVzcwQXSGlnaGVzdFB1c2hBZGRyZXNzVmFsdWUDAwkAZgIFBmhlaWdodAkAZAIJAGQCBRBQcml6ZUhlaWdodFZhbHVlBQtBY3R1YWxEZWxheQUIV2FpdFRpbWUJAGYCBRBIaWdoZXN0UHVzaFZhbHVlAAAHAgAFEkhpZ2hlc3RQdXNoQWRkcmVzcwQTUHJpemVIZWlnaHRWYWx1ZU5ldwMDCQBmAgUGaGVpZ2h0CQBkAgkAZAIFEFByaXplSGVpZ2h0VmFsdWUFC0FjdHVhbERlbGF5BQhXYWl0VGltZQkAZgIFEEhpZ2hlc3RQdXNoVmFsdWUAAAcFBmhlaWdodAUQUHJpemVIZWlnaHRWYWx1ZQQKY3VycmVudEtleQkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzBA1jdXJyZW50QW1vdW50BAckbWF0Y2gwCQCaCAIFBHRoaXMFElVzZXJTdGFrZWRUb2tlbktleQMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAQJbmV3QW1vdW50CQBlAgUNY3VycmVudEFtb3VudAUGYW1vdW50BBJTdGFrZUJhbGFuY2VBbW91bnQJAGUCBQxTdGFrZUJhbGFuY2UFBmFtb3VudAQaVXNlckxhc3RTdGFrZUJsb2NrTmV3VmFsdWUDCQAAAgUSU3Rha2VCYWxhbmNlQW1vdW50AAAAAAUXVXNlckxhc3RTdGFrZUJsb2NrVmFsdWUDCQBmAgAABQZhbW91bnQJAAIBAh5DYW4ndCB3aXRoZHJhdyBuZWdhdGl2ZSBhbW91bnQDCQBmAgAABQluZXdBbW91bnQJAAIBCQCsAgICQVVzZXIgY2Fubm90IHdpdGhkcmF3IG1vcmUgdGhhbiBkZXBvc2l0ZWQgZnVuZHMsIFlvdXIgZGVwb3NpdCBpczogCQCkAwEJAGkCBQ1jdXJyZW50QW1vdW50AIDC1y8DCQBmAgCAwtcvCQDwBwIFBHRoaXMFC0dvdmVyblRva2VuCQACAQkArAICAh9Ob3QgZW5vdWdoIFRyb2lrYSBJbiBDb250cmFjdDogCQCkAwEJAGkCCQDwBwIFBHRoaXMFC0dvdmVyblRva2VuAIDC1y8JAMwIAgkBDEludGVnZXJFbnRyeQIFElVzZXJHb3Zlcm5Ub2tlbktleQCAwtcvCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRJVc2VyU3Rha2VkVG9rZW5LZXkFCW5ld0Ftb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgIMU3Rha2VCYWxhbmNlBRJTdGFrZUJhbGFuY2VBbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQICC1ByaXplSGVpZ2h0BRNQcml6ZUhlaWdodFZhbHVlTmV3CQDMCAIJAQxJbnRlZ2VyRW50cnkCBRJVc2VyTGFzdFN0YWtlQmxvY2sFGlVzZXJMYXN0U3Rha2VCbG9ja05ld1ZhbHVlCQDMCAIJAQtTdHJpbmdFbnRyeQICEkhpZ2hlc3RQdXNoQWRkcmVzcwUXSGlnaGVzdFB1c2hBZGRyZXNzVmFsdWUJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyAIDC1y8FC0dvdmVyblRva2VuCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgUGYW1vdW50BQtTdGFrZWRUb2tlbgUDbmlsAWkBFldpdGhkcmF3QmlnU3Rha2VSZXdhcmQABAhXYWl0VGltZQkAaAIAoAsAAQQYTGFzdEJpZ1N0YWtlclJld2FyZEJsb2NrCQCsAgIJANgEAQgIBQFpBmNhbGxlcgVieXRlcwIZX0xhc3RCaWdTdGFrZXJSZXdhcmRCbG9jawQPQmlnU3Rha2VyUmV3YXJkCQCsAgIJANgEAQgIBQFpBmNhbGxlcgVieXRlcwIKX0JpZ1N0YWtlcgQSVXNlckdvdmVyblRva2VuS2V5CQCsAgIJANgEAQgIBQFpBmNhbGxlcgVieXRlcwIJX0Vhcm5pbmdzBBJMaW1pV2l0aGRyYXdSZXdhcmQACgQVVXNlckdvdmVyblRva2VuQW1vdW50BAckbWF0Y2gwCQCaCAIFBHRoaXMFElVzZXJHb3Zlcm5Ub2tlbktleQMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAQdTGFzdEJpZ1N0YWtlclJld2FyZEJsb2NrVmFsdWUEByRtYXRjaDAJAJoIAgUEdGhpcwUYTGFzdEJpZ1N0YWtlclJld2FyZEJsb2NrAwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAABBlCaWdTdGFrZXJSZXdhcmRUb3RhbFZhbHVlBAckbWF0Y2gwCQCaCAIFBHRoaXMCFEJpZ1N0YWtlclJld2FyZFRvdGFsAwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAABAtQcml6ZUFtb3VudAQHJG1hdGNoMAkAmggCBQR0aGlzAgdGdW5kQm94AwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAABBVIZWlnaHRUcmFuc2FjdEZ1bmRCb3gEByRtYXRjaDAJAJoIAgUEdGhpcwILUHJpemVIZWlnaHQDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEEFByaXplSGVpZ2h0VmFsdWUDAwkAAAIFFUhlaWdodFRyYW5zYWN0RnVuZEJveAAACQAAAgULUHJpemVBbW91bnQAAAcAAAMDCQAAAgUVSGVpZ2h0VHJhbnNhY3RGdW5kQm94AAAJAQIhPQIFC1ByaXplQW1vdW50AAAHBQZoZWlnaHQDAwkBAiE9AgUVSGVpZ2h0VHJhbnNhY3RGdW5kQm94AAAJAQIhPQIFC1ByaXplQW1vdW50AAAHBRVIZWlnaHRUcmFuc2FjdEZ1bmRCb3gAAAQLQWN0dWFsRGVsYXkEByRtYXRjaDAJAJoIAgUEdGhpcwIFRGVsYXkDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEEEhpZ2hlc3RQdXNoVmFsdWUEByRtYXRjaDAJAJoIAgUEdGhpcwILSGlnaGVzdFB1c2gDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEEkhpZ2hlc3RQdXNoQWRkcmVzcwkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwISSGlnaGVzdFB1c2hBZGRyZXNzBBdIaWdoZXN0UHVzaEFkZHJlc3NWYWx1ZQMDCQBmAgUGaGVpZ2h0CQBkAgkAZAIFEFByaXplSGVpZ2h0VmFsdWUFC0FjdHVhbERlbGF5BQhXYWl0VGltZQkAZgIFEEhpZ2hlc3RQdXNoVmFsdWUAAAcCAAUSSGlnaGVzdFB1c2hBZGRyZXNzBBNQcml6ZUhlaWdodFZhbHVlTmV3AwMJAGYCBQZoZWlnaHQJAGQCCQBkAgUQUHJpemVIZWlnaHRWYWx1ZQULQWN0dWFsRGVsYXkFCFdhaXRUaW1lCQBmAgUQSGlnaGVzdFB1c2hWYWx1ZQAABwUGaGVpZ2h0BRBQcml6ZUhlaWdodFZhbHVlBApjdXJyZW50S2V5CQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMEBmFtb3VudAQHJG1hdGNoMAkAmggCBQR0aGlzBQ9CaWdTdGFrZXJSZXdhcmQDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEElN0YWtlQmFsYW5jZUFtb3VudAkAZQIFGUJpZ1N0YWtlclJld2FyZFRvdGFsVmFsdWUFBmFtb3VudAQSQmlnU3Rha2VyUmV3YXJkVGF4AwkAZgIAAAkAaAIJAGkCBRVVc2VyR292ZXJuVG9rZW5BbW91bnQA6AcJAGUCAOgHCQBpAgkAaAIA6AcJAGUCBQZoZWlnaHQFHUxhc3RCaWdTdGFrZXJSZXdhcmRCbG9ja1ZhbHVlCQBoAgUSTGltaVdpdGhkcmF3UmV3YXJkAKALCQBoAgDoBwCAwtcvCQBoAgkAaQIFFVVzZXJHb3Zlcm5Ub2tlbkFtb3VudADoBwkAZQIA6AcJAGkCCQBoAgDoBwkAZQIFBmhlaWdodAUdTGFzdEJpZ1N0YWtlclJld2FyZEJsb2NrVmFsdWUJAGgCBRJMaW1pV2l0aGRyYXdSZXdhcmQAoAsDCQBmAgAABQZhbW91bnQJAAIBCQCsAgIJAKwCAgkArAICAh9DYW4ndCB3aXRoZHJhdyBuZWdhdGl2ZSBhbW91bnQgCQCkAwEJAGUCBRVVc2VyR292ZXJuVG9rZW5BbW91bnQJAGgCAOgHAIDC1y8CBSAuLi4gCQCkAwEFBmFtb3VudAMDAwkAZgIJAGgCAOgHAIDC1y8FFVVzZXJHb3Zlcm5Ub2tlbkFtb3VudAYJAGYCAAEFBmFtb3VudAYJAGYCAAAJAGUCBRVVc2VyR292ZXJuVG9rZW5BbW91bnQFEkJpZ1N0YWtlclJld2FyZFRheAkAAgEJAKwCAgJcTm8gQVNJTUkgcmV3YXJkIGF2YWlsYWJsZSwgb3IgTm90IGVub3VnaCBFYXJuZWQgVHJvaWthbiBUb2tlbnMgdG8gZG8gdHJhbnNhY3Rpb24sIHlvdSBoYXZlOiAJAKQDAQkAaQIFFVVzZXJHb3Zlcm5Ub2tlbkFtb3VudACAwtcvAwkAZgIFElN0YWtlQmFsYW5jZUFtb3VudAAACQDMCAIJAQxJbnRlZ2VyRW50cnkCBQ9CaWdTdGFrZXJSZXdhcmQAAAkAzAgCCQEMSW50ZWdlckVudHJ5AgIUQmlnU3Rha2VyUmV3YXJkVG90YWwFElN0YWtlQmFsYW5jZUFtb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgUSVXNlckdvdmVyblRva2VuS2V5CQBlAgUVVXNlckdvdmVyblRva2VuQW1vdW50BRJCaWdTdGFrZXJSZXdhcmRUYXgJAMwIAgkBDEludGVnZXJFbnRyeQICC1ByaXplSGVpZ2h0BRBQcml6ZUhlaWdodFZhbHVlCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRhMYXN0QmlnU3Rha2VyUmV3YXJkQmxvY2sFBmhlaWdodAkAzAgCCQELU3RyaW5nRW50cnkCAhJIaWdoZXN0UHVzaEFkZHJlc3MFF0hpZ2hlc3RQdXNoQWRkcmVzc1ZhbHVlCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgUGYW1vdW50BQtTdGFrZWRUb2tlbgUDbmlsCQACAQJSQmFsYW5jZSBFcnJvciwgVG90YWwgQmlnIFN0YWtlcnMgY2Fubm90IGJlIG5lZ2F0aXZlLCBPcGVyYXRpb24gd29uJ3QgYmUgYXV0aG9yaXplZAFpARNIYXJ2ZXN0R292ZXJuVG9pa2VuAQZhbW91bnQEGkNvbnRyYWN0V2FsbGV0U3Rha2VCYWxhbmNlCQDwBwIFBHRoaXMFC1N0YWtlZFRva2VuBBJVc2VyR292ZXJuVG9rZW5LZXkJAKwCAgkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzAglfRWFybmluZ3MEDFN0YWtlQmFsYW5jZQQHJG1hdGNoMAkAmggCBQR0aGlzAgxTdGFrZUJhbGFuY2UDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEC1ByaXplQW1vdW50BAckbWF0Y2gwCQCaCAIFBHRoaXMCB0Z1bmRCb3gDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEFUhlaWdodFRyYW5zYWN0RnVuZEJveAQHJG1hdGNoMAkAmggCBQR0aGlzAgtQcml6ZUhlaWdodAMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAQQUHJpemVIZWlnaHRWYWx1ZQMDCQAAAgUVSGVpZ2h0VHJhbnNhY3RGdW5kQm94AAAJAAACBQtQcml6ZUFtb3VudAAABwAAAwMJAAACBRVIZWlnaHRUcmFuc2FjdEZ1bmRCb3gAAAkBAiE9AgULUHJpemVBbW91bnQAAAcFBmhlaWdodAMDCQECIT0CBRVIZWlnaHRUcmFuc2FjdEZ1bmRCb3gAAAkBAiE9AgULUHJpemVBbW91bnQAAAcFFUhlaWdodFRyYW5zYWN0RnVuZEJveAAABApjdXJyZW50S2V5CQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMEDWN1cnJlbnRBbW91bnQEByRtYXRjaDAJAJoIAgUEdGhpcwUSVXNlckdvdmVyblRva2VuS2V5AwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAABAluZXdBbW91bnQJAGUCBQ1jdXJyZW50QW1vdW50BQZhbW91bnQDCQBmAgAABQZhbW91bnQJAAIBAh5DYW4ndCB3aXRoZHJhdyBuZWdhdGl2ZSBhbW91bnQDCQBmAgAABQluZXdBbW91bnQJAAIBCQCsAgICQVVzZXIgY2Fubm90IHdpdGhkcmF3IG1vcmUgdGhhbiBkZXBvc2l0ZWQgZnVuZHMsIFlvdXIgZGVwb3NpdCBpczogCQCkAwEJAGkCBQ1jdXJyZW50QW1vdW50AIDC1y8JAMwIAgkBDEludGVnZXJFbnRyeQIFElVzZXJHb3Zlcm5Ub2tlbktleQUJbmV3QW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCAgtQcml6ZUhlaWdodAUQUHJpemVIZWlnaHRWYWx1ZQkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIFBmFtb3VudAULR292ZXJuVG9rZW4FA25pbAFpAQpkZWxheXByaXplAAQJRGVsYXlEYXlzCQBoAgCgCwABBAhXYWl0VGltZQkAaAIAoAsAAQQSVXNlckdvdmVyblRva2VuS2V5CQCsAgIJAKwCAgkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzAgFfCQDYBAEFC0dvdmVyblRva2VuBBhVc2VyV2FsbGV0U0dvdmVybkJhbGFuY2UJAPAHAgkBB0FkZHJlc3MBCAgFAWkGY2FsbGVyBWJ5dGVzBQtHb3Zlcm5Ub2tlbgQaQ29udHJhY3RXYWxsZXRTdGFrZUJhbGFuY2UJAPAHAgUEdGhpcwULU3Rha2VkVG9rZW4EDFN0YWtlQmFsYW5jZQQHJG1hdGNoMAkAmggCBQR0aGlzAgxTdGFrZUJhbGFuY2UDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEC1ByaXplQW1vdW50BAckbWF0Y2gwCQCaCAIFBHRoaXMCB0Z1bmRCb3gDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEFUhlaWdodFRyYW5zYWN0RnVuZEJveAQHJG1hdGNoMAkAmggCBQR0aGlzAgtQcml6ZUhlaWdodAMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAQLQWN0dWFsRGVsYXkEByRtYXRjaDAJAJoIAgUEdGhpcwIFRGVsYXkDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEEFByaXplSGVpZ2h0VmFsdWUDAwkAAAIFFUhlaWdodFRyYW5zYWN0RnVuZEJveAAACQAAAgULUHJpemVBbW91bnQAAAcAAAMDCQAAAgUVSGVpZ2h0VHJhbnNhY3RGdW5kQm94AAAJAQIhPQIFC1ByaXplQW1vdW50AAAHBQZoZWlnaHQDAwkBAiE9AgUVSGVpZ2h0VHJhbnNhY3RGdW5kQm94AAAJAQIhPQIFC1ByaXplQW1vdW50AAAHBRVIZWlnaHRUcmFuc2FjdEZ1bmRCb3gAAAQQSGlnaGVzdFB1c2hWYWx1ZQQHJG1hdGNoMAkAmggCBQR0aGlzAgtIaWdoZXN0UHVzaAMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAQSSGlnaGVzdFB1c2hBZGRyZXNzCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzAhJIaWdoZXN0UHVzaEFkZHJlc3MEF0hpZ2hlc3RQdXNoQWRkcmVzc1ZhbHVlAwMJAGYCBQZoZWlnaHQJAGQCCQBkAgUQUHJpemVIZWlnaHRWYWx1ZQULQWN0dWFsRGVsYXkFCFdhaXRUaW1lCQBmAgUQSGlnaGVzdFB1c2hWYWx1ZQAABwIABRJIaWdoZXN0UHVzaEFkZHJlc3MEE1ByaXplSGVpZ2h0VmFsdWVOZXcDAwkAZgIFBmhlaWdodAkAZAIJAGQCBRBQcml6ZUhlaWdodFZhbHVlBQtBY3R1YWxEZWxheQUIV2FpdFRpbWUJAGYCBRBIaWdoZXN0UHVzaFZhbHVlAAAHBQZoZWlnaHQFEFByaXplSGVpZ2h0VmFsdWUED0FjdHVhbERlbGF5Q29zdAQHJG1hdGNoMAkAmggCBQR0aGlzAglEZWxheUNvc3QDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAoEA3BtdAMJAAACCQCQAwEIBQFpCHBheW1lbnRzAAEJAJEDAggFAWkIcGF5bWVudHMAAAkAAgECHEF0dGFjaGVkIHBheW1lbnQgaXMgcmVxdWlyZWQEDURldkJveEJhbGFuY2UEByRtYXRjaDAJAJoIAgUEdGhpcwIGRGV2Qm94AwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAAAwMJAQlpc0RlZmluZWQBCAUDcG10B2Fzc2V0SWQJAAACCAUDcG10B2Fzc2V0SWQFC0dvdmVyblRva2VuBwMJAGYCBQtQcml6ZUFtb3VudAAABBVVc2VyR292ZXJuVG9rZW5BbW91bnQIBQNwbXQGYW1vdW50BAxEZXZCb3hBbW91bnQJAGQCBQ1EZXZCb3hCYWxhbmNlCQBpAgkAaAIIBQNwbXQGYW1vdW50AAUA6AcEDE5ld0RlbGF5Q29zdAMJAAACBQ9BY3R1YWxEZWxheUNvc3QAAACAlOvcAwkAaAIAAgUPQWN0dWFsRGVsYXlDb3N0AwkAZwIFFVVzZXJHb3Zlcm5Ub2tlbkFtb3VudAUMTmV3RGVsYXlDb3N0BAhOZXdEZWxheQkAZAIFC0FjdHVhbERlbGF5BQlEZWxheURheXMJAMwIAgkBDEludGVnZXJFbnRyeQICBURlbGF5BQhOZXdEZWxheQkAzAgCCQEMSW50ZWdlckVudHJ5AgIJRGVsYXlDb3N0BQxOZXdEZWxheUNvc3QJAMwIAgkBDEludGVnZXJFbnRyeQICC1ByaXplSGVpZ2h0BRNQcml6ZUhlaWdodFZhbHVlTmV3CQDMCAIJAQxJbnRlZ2VyRW50cnkCAgZEZXZCb3gFDERldkJveEFtb3VudAkAzAgCCQELU3RyaW5nRW50cnkCAhJIaWdoZXN0UHVzaEFkZHJlc3MFF0hpZ2hlc3RQdXNoQWRkcmVzc1ZhbHVlBQNuaWwJAAIBCQCsAgIJAKwCAgJJVG8gZGVsYXkgdGhlIHJlbGVhc2Ugb2YgdGhlIHJld2FyZCBPTkUgREFZIGxhdGVyIHRoYW4gZXhwZWN0ZWQsIHlvdSBuZWVkIAkApAMBBQxOZXdEZWxheUNvc3QCB1RST0lLQXMJAAIBAl5Zb3UgY2Fubm90IGRlbGF5IHRoZSByZXdhcmQgYmVmb3JlIHJld2FyZCBpcyByZWNlaXZlZCEgUGxlYXNlIHdhaXQgdW50aWwgYSByZXdhcmQgaXMgYXZhaWxhYmxlCQACAQIpQ2FuIFVzZSBvbmx5IFRyb2lrYSBUb2tlbiB0byBEZWxheSBSZXdhcmQBaQEKQ2xhaW1Qcml6ZQAEElVzZXJTdGFrZWRUb2tlbktleQkArAICCQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMCCF9TdGFraW5nBAhVc2VyUHVzaAkArAICCQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMCBV9QdXNoBBJVc2VyTGFzdFN0YWtlQmxvY2sJAKwCAgkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzAhNfVXNlckxhc3RTdGFrZUJsb2NrBA1taW5TdGFrZUJsb2NrCQBoAgCgCwAHBAZtaW5yZWYAAwQXQ29udHJhY3RHb3ZUb2tlbkJhbGFuY2UJAPAHAgUEdGhpcwULR292ZXJuVG9rZW4EGkNvbnRyYWN0V2FsbGV0U3Rha2VCYWxhbmNlCQDwBwIFBHRoaXMFC1N0YWtlZFRva2VuBAxTdGFrZUJhbGFuY2UEByRtYXRjaDAJAJoIAgUEdGhpcwIMU3Rha2VCYWxhbmNlAwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAABAtQcml6ZUFtb3VudAQHJG1hdGNoMAkAmggCBQR0aGlzAgdGdW5kQm94AwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAABA1Vc2VyUHVzaFZhbHVlBAckbWF0Y2gwCQCaCAIFBHRoaXMFCFVzZXJQdXNoAwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAABBdVc2VyTGFzdFN0YWtlQmxvY2tWYWx1ZQQHJG1hdGNoMAkAmggCBQR0aGlzBRJVc2VyTGFzdFN0YWtlQmxvY2sDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEFVVzZXJTdGFrZWRUb2tlbkFtb3VudAQHJG1hdGNoMAkAmggCBQR0aGlzBRJVc2VyU3Rha2VkVG9rZW5LZXkDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAAEC0FjdHVhbERlbGF5BAckbWF0Y2gwCQCaCAIFBHRoaXMCBURlbGF5AwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAABAtQcml6ZVdpbm5lcgkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwISSGlnaGVzdFB1c2hBZGRyZXNzBAtQcml6ZUhlaWdodAQHJG1hdGNoMAkAmggCBQR0aGlzAgtQcml6ZUhlaWdodAMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAQQSGlnaGVzdFB1c2hWYWx1ZQQHJG1hdGNoMAkAmggCBQR0aGlzAgtIaWdoZXN0UHVzaAMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAQLVXNlclJlZnNOdW0JAKwCAgkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzAgVfcmVmcwQQVXNlclJlZnNOdW1WYWx1ZQQHJG1hdGNoMAkAmggCBQR0aGlzBQtVc2VyUmVmc051bQMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAMDCQAAAgULUHJpemVBbW91bnQAAAYJAGYCAIDIr6AlBRdDb250cmFjdEdvdlRva2VuQmFsYW5jZQkAAgECSU5vIHByaXplIHRvIENsYWltIG9yIE5vdCBlbm91Z2ggR292ZXJuIFRva2VuIGVuIENvbnRyYWN0IChNaW4gMTAwIFRyb2lrYSkDCQECIT0CCQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMFC1ByaXplV2lubmVyCQACAQI2WW91IGFyZSBub3QgdGhlIHdpbm5lciBoZW5jZSBjYW5ub3QgY2xhaW0gdGhlIHJld2FyZCAgAwMJAGYCAIDC1y8FFVVzZXJTdGFrZWRUb2tlbkFtb3VudAkAZgIFDW1pblN0YWtlQmxvY2sFF1VzZXJMYXN0U3Rha2VCbG9ja1ZhbHVlBwkAAgECLllvdSBoYXZlIHRvIFN0YWtlIEFTSU1JIFRva2VuIHRvIGNsYWltIHJld2FyZCADAwkAZgIFBmhlaWdodAkAZAIFC1ByaXplSGVpZ2h0BQtBY3R1YWxEZWxheQkAZwIFDVVzZXJQdXNoVmFsdWUFEEhpZ2hlc3RQdXNoVmFsdWUHAwkAZwIFEFVzZXJSZWZzTnVtVmFsdWUFBm1pbnJlZgkAzAgCCQEMSW50ZWdlckVudHJ5AgULUHJpemVXaW5uZXIFC1ByaXplQW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCAgdGdW5kQm94AAAJAMwIAgkBDEludGVnZXJFbnRyeQICC0hpZ2hlc3RQdXNoAAAJAMwIAgkBDEludGVnZXJFbnRyeQIFCFVzZXJQdXNoAAAJAMwIAgkBC1N0cmluZ0VudHJ5AgISSGlnaGVzdFB1c2hBZGRyZXNzAgAJAMwIAgkBDEludGVnZXJFbnRyeQICC1ByaXplSGVpZ2h0AAAJAMwIAgkBDEludGVnZXJFbnRyeQICBURlbGF5AAAJAMwIAgkBDEludGVnZXJFbnRyeQICCURlbGF5Q29zdAAACQDMCAIJAQtTdHJpbmdFbnRyeQICCkxhc3RXaW5uZXIFC1ByaXplV2lubmVyCQDMCAIJAQxJbnRlZ2VyRW50cnkCAglMYXN0UHJpemUFC1ByaXplQW1vdW50CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgULUHJpemVBbW91bnQFC1N0YWtlZFRva2VuCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgCAlOvcAwULR292ZXJuVG9rZW4FA25pbAkAAgEJAKwCAgkArAICAhJZb3UgaGF2ZSB0byBoYXZlICAJAKQDAQUGbWlucmVmAkcgIHJlZmVycmFscyBhbHJlYWR5IHN0YWtpbmcgZm9yIGEgbWluaW11bSBvZiAxMCBkYXlzIHRvIENsYWltIHRoZSBwcml6ZQkAAgECYVlvdSBoYXZlIHRvIGJlIHRoZSB1c2VyIHdpdGggdGhlIGhpZ2hlc3QgUHVzaCBhbmQgd2FpdCB0aWxsIGNvdW50b3duIGlzIGZpbmlzaGVkLCB0byBjbGFpbSBSZXdhcmQBaQEJQWRkbWVudG9yAQZNZW50b3IEEVVzZXJNZW50b3JBZGRyZXNzCQCsAgIJANgEAQgIBQFpBmNhbGxlcgVieXRlcwIHX01lbnRvcgMJAQIhPQIFBk1lbnRvcgIACQDMCAIJAQtTdHJpbmdFbnRyeQIFEVVzZXJNZW50b3JBZGRyZXNzBQZNZW50b3IFA25pbAkAAgECIE1lbnRvcidzIEFkZHJlc3MgY2Fubm90IGJlIGVtcHR5AWkBD0dldExpa2VzUGFja2FnZQINVHdpdHRlclVzZXJJZAdUd2l0dElkBANwbXQDCQAAAgkAkAMBCAUBaQhwYXltZW50cwABCQCRAwIIBQFpCHBheW1lbnRzAAAJAAIBAhxBdHRhY2hlZCBwYXltZW50IGlzIHJlcXVpcmVkAwMDCQBmAggFA3BtdAZhbW91bnQFEExpa2VQYWNrYWdlUHJpY2UJAAACCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQFC1N0YWtlZFRva2VuBwkAAAIICQCRAwIIBQFpCHBheW1lbnRzAAEHYXNzZXRJZAULR292ZXJuVG9rZW4HCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKQDAQUNVHdpdHRlclVzZXJJZAILX1R3aXR0Mkxpa2UFB1R3aXR0SWQFA25pbAkAAgECIllvdSBPbmx5IGNhbiBwYXkgd2l0aCBBU0lNSSBUb2tlbnMApgU1DA==", "height": 2117874, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 5Ziexti6AS6qrL4R5FkpavV51aEuPYP1gowSC6khcyX Next: 2y4zFgYr76oZed8GqQd2igkX5sLVdrwh3VZb1yEKLQyy Diff:
OldNewDifferences
1-{-# STDLIB_VERSION 3 #-}
1+{-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let StakedToken = base58'Hoej8L1ezqQY4Miex4Z4J7uJ33LCdcubV3DsubGHEqWP'
55
66 let GovernToken = base58'6ZPMzZseuYoMP4ByozJpVxbugXBobwJYF22zVjW5JjN'
7+
8+let LikePackagePrice = (10 * 100000000)
79
810 @Callable(i)
911 func DevWithdraw () = {
1820 }
1921 if ((0 > DevBoxAmount))
2022 then throw("Not enough balance")
21- else ScriptResult(WriteSet([DataEntry("DevBox", 0)]), TransferSet([ScriptTransfer(i.caller, DevBoxAmount, GovernToken)]))
23+ else [IntegerEntry("DevBox", 0), ScriptTransfer(i.caller, DevBoxAmount, GovernToken)]
2224 }
2325 else throw("You cannot withdraw as your are not the Dev.")
2426 }
7274 then throw("Can't withdraw negative amount")
7375 else if ((0 > newAmount))
7476 then throw(("User cannot withdraw more than deposited funds, Your deposit is: " + toString((newAmount / 100000000))))
75- else ScriptResult(WriteSet([DataEntry(UserWeeklyEarnings, 0), DataEntry("PrizeHeight", PrizeHeightValue), DataEntry("MaxDeposit", 0)]), TransferSet([ScriptTransfer(i.caller, newAmount, StakedToken)]))
77+ else [IntegerEntry(UserWeeklyEarnings, 0), IntegerEntry("PrizeHeight", PrizeHeightValue), IntegerEntry("MaxDeposit", 0), ScriptTransfer(i.caller, newAmount, StakedToken)]
7678 }
7779
7880
8688 let minref = 3
8789 let FirstPushTimer = (7 * 1440)
8890 let userWalletGovernBalance = assetBalance(Address(i.caller.bytes), GovernToken)
89- let pmt = extract(i.payment)
91+ let pmt = if ((size(i.payments) == 1))
92+ then i.payments[0]
93+ else throw("Attached payment is required")
9094 let UserPush = (toBase58String(i.caller.bytes) + "_Push")
9195 let UserLastPushOldValue = match getInteger(this, UserPush) {
9296 case a: Int =>
215219 then true
216220 else (HighestPushValue == 0))
217221 then if ((UserRefsNumValue >= minref))
218- then WriteSet([DataEntry(UserPush, UserPushvalue), DataEntry("HighestPushAddress", toBase58String(i.caller.bytes)), DataEntry("HighestPush", UserPushvalue), DataEntry(UserLastPushBlock, height), DataEntry("PrizeHeight", PrizeHeightValueNew), DataEntry("Delay", NewDelay), DataEntry("DevBox", DevBoxAmount)])
222+ 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)]
219223 else throw((("You have to have " + toString(minref)) + " referrals already staking for a minimum of 10 days, to push"))
220224 else {
221225 let txt = if ((HighestPushValue > 0))
239243 @Callable(i)
240244 func Stake () = {
241245 let WaitTime = (1440 * 1)
242- let pmt = extract(i.payment)
246+ let pmt = if ((size(i.payments) == 1))
247+ then i.payments[0]
248+ else throw("Attached payment is required")
243249 if (if ((pmt.amount > 0))
244250 then (pmt.assetId == StakedToken)
245251 else false)
361367 case _ =>
362368 0
363369 }
364- let HighestPushAddress = match getInteger(this, "HighestPushAddress") {
365- case a: Int =>
366- a
367- case _ =>
368- 0
369- }
370+ let HighestPushAddress = getStringValue(this, "HighestPushAddress")
370371 let HighestPushAddressValue = if (if ((height > ((PrizeHeightValue + ActualDelay) + WaitTime)))
371372 then (HighestPushValue > 0)
372373 else false)
389390 then ((100 * Reward) / currentAmountGovernToken)
390391 else 0
391392 let newAmountGovernToken = (currentAmountGovernToken + Reward)
392- ScriptResult(WriteSet([DataEntry(UserGovernTokenKey, newAmountGovernToken), DataEntry(UserStakedTokenKey, newAmountStakedToken), DataEntry(UserStakeTransactionsKey, NewUserStakeTransactions), DataEntry("StakeBalance", StakeBalanceAmount), DataEntry("PrizeHeight", PrizeHeightValueNew), DataEntry(UserAPY, UserAPYValue), DataEntry(UserLastStakeBlock, UserLastStakeBlockNewValue), DataEntry(UserPush, UserPushValue), DataEntry("MaxDepositer", MaxDepositerValue), DataEntry("MaxDeposit", MaxDepositValue), DataEntry("MaxDepositBlock", MaxDepositBlockValue), DataEntry("HighestPushAddress", HighestPushAddressValue), DataEntry(UserWeekEarnings, UserWeekEarningsValue)]), TransferSet([ScriptTransfer(i.caller, Reward, GovernToken)]))
393+[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)]
393394 }
394395 }
395396 else throw("Can deposit only StakeToken")
453454 else false)
454455 then HeightTransactFundBox
455456 else 0
456- let HighestPushAddress = match getInteger(this, "HighestPushAddress") {
457- case a: Int =>
458- a
459- case _ =>
460- 0
461- }
457+ let HighestPushAddress = getStringValue(this, "HighestPushAddress")
462458 let HighestPushAddressValue = if (if ((height > ((PrizeHeightValue + ActualDelay) + WaitTime)))
463459 then (HighestPushValue > 0)
464460 else false)
487483 then throw(("User cannot withdraw more than deposited funds, Your deposit is: " + toString((currentAmount / 100000000))))
488484 else if ((100000000 > assetBalance(this, GovernToken)))
489485 then throw(("Not enough Troika In Contract: " + toString((assetBalance(this, GovernToken) / 100000000))))
490- else ScriptResult(WriteSet([DataEntry(UserGovernTokenKey, 100000000), DataEntry(UserStakedTokenKey, newAmount), DataEntry("StakeBalance", StakeBalanceAmount), DataEntry("PrizeHeight", PrizeHeightValueNew), DataEntry(UserLastStakeBlock, UserLastStakeBlockNewValue), DataEntry("HighestPushAddress", HighestPushAddressValue)]), TransferSet([ScriptTransfer(i.caller, 100000000, GovernToken), ScriptTransfer(i.caller, amount, StakedToken)]))
486+ 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)]
491487 }
492488
493489
554550 case _ =>
555551 0
556552 }
557- let HighestPushAddress = match getInteger(this, "HighestPushAddress") {
558- case a: Int =>
559- a
560- case _ =>
561- 0
562- }
553+ let HighestPushAddress = getStringValue(this, "HighestPushAddress")
563554 let HighestPushAddressValue = if (if ((height > ((PrizeHeightValue + ActualDelay) + WaitTime)))
564555 then (HighestPushValue > 0)
565556 else false)
590581 else (0 > (UserGovernTokenAmount - BigStakerRewardTax)))
591582 then throw(("No ASIMI reward available, or Not enough Earned Troikan Tokens to do transaction, you have: " + toString((UserGovernTokenAmount / 100000000))))
592583 else if ((StakeBalanceAmount > 0))
593- then ScriptResult(WriteSet([DataEntry(BigStakerReward, 0), DataEntry("BigStakerRewardTotal", StakeBalanceAmount), DataEntry(UserGovernTokenKey, (UserGovernTokenAmount - BigStakerRewardTax)), DataEntry("PrizeHeight", PrizeHeightValue), DataEntry(LastBigStakerRewardBlock, height), DataEntry("HighestPushAddress", HighestPushAddressValue)]), TransferSet([ScriptTransfer(i.caller, amount, StakedToken)]))
584+ 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)]
594585 else throw("Balance Error, Total Big Stakers cannot be negative, Operation won't be authorized")
595586 }
596587
643634 then throw("Can't withdraw negative amount")
644635 else if ((0 > newAmount))
645636 then throw(("User cannot withdraw more than deposited funds, Your deposit is: " + toString((currentAmount / 100000000))))
646- else ScriptResult(WriteSet([DataEntry(UserGovernTokenKey, newAmount), DataEntry("PrizeHeight", PrizeHeightValue)]), TransferSet([ScriptTransfer(i.caller, amount, GovernToken)]))
637+ else [IntegerEntry(UserGovernTokenKey, newAmount), IntegerEntry("PrizeHeight", PrizeHeightValue), ScriptTransfer(i.caller, amount, GovernToken)]
647638 }
648639
649640
698689 case _ =>
699690 0
700691 }
701- let HighestPushAddress = match getInteger(this, "HighestPushAddress") {
702- case a: Int =>
703- a
704- case _ =>
705- 0
706- }
692+ let HighestPushAddress = getStringValue(this, "HighestPushAddress")
707693 let HighestPushAddressValue = if (if ((height > ((PrizeHeightValue + ActualDelay) + WaitTime)))
708694 then (HighestPushValue > 0)
709695 else false)
720706 case _ =>
721707 10
722708 }
723- let pmt = extract(i.payment)
709+ let pmt = if ((size(i.payments) == 1))
710+ then i.payments[0]
711+ else throw("Attached payment is required")
724712 let DevBoxBalance = match getInteger(this, "DevBox") {
725713 case a: Int =>
726714 a
728716 0
729717 }
730718 if (if (isDefined(pmt.assetId))
731- then (extract(pmt.assetId) == GovernToken)
719+ then (pmt.assetId == GovernToken)
732720 else false)
733721 then if ((PrizeAmount > 0))
734722 then {
740728 if ((UserGovernTokenAmount >= NewDelayCost))
741729 then {
742730 let NewDelay = (ActualDelay + DelayDays)
743- WriteSet([DataEntry("Delay", NewDelay), DataEntry("DelayCost", NewDelayCost), DataEntry("PrizeHeight", PrizeHeightValueNew), DataEntry("DevBox", DevBoxAmount), DataEntry("HighestPushAddress", HighestPushAddressValue)])
731+[IntegerEntry("Delay", NewDelay), IntegerEntry("DelayCost", NewDelayCost), IntegerEntry("PrizeHeight", PrizeHeightValueNew), IntegerEntry("DevBox", DevBoxAmount), StringEntry("HighestPushAddress", HighestPushAddressValue)]
744732 }
745733 else throw((("To delay the release of the reward ONE DAY later than expected, you need " + toString(NewDelayCost)) + "TROIKAs"))
746734 }
747735 else throw("You cannot delay the reward before reward is received! Please wait until a reward is available")
748736 else throw("Can Use only Troika Token to Delay Reward")
749- }
750-
751-
752-
753-@Callable(i)
754-func CreateTeam (TeamName) = {
755- let UserStakedTokenKey = (toBase58String(i.caller.bytes) + "_Staking")
756- let UserGovernTokenKey = (toBase58String(i.caller.bytes) + "_Earnings")
757- let CreateTeamFeeASIMI = 5
758- let CreateTeamFeeTroikan = (1000 * CreateTeamFeeASIMI)
759- let UserGovernTokenAmount = match getInteger(this, UserGovernTokenKey) {
760- case a: Int =>
761- a
762- case _ =>
763- 0
764- }
765- let currentAmount = match getInteger(this, UserStakedTokenKey) {
766- case a: Int =>
767- a
768- case _ =>
769- 0
770- }
771- if ((TeamName != ""))
772- then WriteSet([DataEntry("TeamName", TeamName), DataEntry("UserStakedTokenKey", (currentAmount - (CreateTeamFeeASIMI * 100000000))), DataEntry("UserGovernTokenKey", (UserGovernTokenAmount - (CreateTeamFeeTroikan * 100000000)))])
773- else throw("The team' s name cannot be empty")
774737 }
775738
776739
854817 then (UserPushValue >= HighestPushValue)
855818 else false)
856819 then if ((UserRefsNumValue >= minref))
857- then ScriptResult(WriteSet([DataEntry(PrizeWinner, PrizeAmount), DataEntry("FundBox", 0), DataEntry("HighestPush", 0), DataEntry(UserPush, 0), DataEntry("HighestPushAddress", ""), DataEntry("PrizeHeight", 0), DataEntry("Delay", 0), DataEntry("DelayCost", 0), DataEntry("LastWinner", PrizeWinner), DataEntry("LastPrize", PrizeAmount)]), TransferSet([ScriptTransfer(i.caller, PrizeAmount, StakedToken), ScriptTransfer(i.caller, 1000000000, GovernToken)]))
820+ 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)]
858821 else throw((("You have to have " + toString(minref)) + " referrals already staking for a minimum of 10 days to Claim the prize"))
859822 else throw("You have to be the user with the highest Push and wait till countown is finished, to claim Reward")
860823 }
865828 func Addmentor (Mentor) = {
866829 let UserMentorAddress = (toBase58String(i.caller.bytes) + "_Mentor")
867830 if ((Mentor != ""))
868- then WriteSet([DataEntry(UserMentorAddress, Mentor)])
831+ then [StringEntry(UserMentorAddress, Mentor)]
869832 else throw("Mentor's Address cannot be empty")
870833 }
871834
873836
874837 @Callable(i)
875838 func GetLikesPackage (TwitterUserId,TwittId) = {
876- let pmt = extract(i.payment)
877- if (if ((pmt.amount > 0))
878- then (pmt.assetId == GovernToken)
839+ let pmt = if ((size(i.payments) == 1))
840+ then i.payments[0]
841+ else throw("Attached payment is required")
842+ if (if (if ((pmt.amount > LikePackagePrice))
843+ then (i.payments[0].assetId == StakedToken)
879844 else false)
880- then WriteSet([DataEntry((toString(TwitterUserId) + "_Twitt2Like"), TwittId)])
845+ then (i.payments[1].assetId == GovernToken)
846+ else false)
847+ then [IntegerEntry((toString(TwitterUserId) + "_Twitt2Like"), TwittId)]
881848 else throw("You Only can pay with ASIMI Tokens")
882849 }
883850
Full:
OldNewDifferences
1-{-# STDLIB_VERSION 3 #-}
1+{-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let StakedToken = base58'Hoej8L1ezqQY4Miex4Z4J7uJ33LCdcubV3DsubGHEqWP'
55
66 let GovernToken = base58'6ZPMzZseuYoMP4ByozJpVxbugXBobwJYF22zVjW5JjN'
7+
8+let LikePackagePrice = (10 * 100000000)
79
810 @Callable(i)
911 func DevWithdraw () = {
1012 let currentKey = toBase58String(i.caller.bytes)
1113 if ((currentKey == "3P74buHt98BnojFcaREJZtb98KDyUmZGemJ"))
1214 then {
1315 let DevBoxAmount = match getInteger(this, "DevBox") {
1416 case a: Int =>
1517 a
1618 case _ =>
1719 0
1820 }
1921 if ((0 > DevBoxAmount))
2022 then throw("Not enough balance")
21- else ScriptResult(WriteSet([DataEntry("DevBox", 0)]), TransferSet([ScriptTransfer(i.caller, DevBoxAmount, GovernToken)]))
23+ else [IntegerEntry("DevBox", 0), ScriptTransfer(i.caller, DevBoxAmount, GovernToken)]
2224 }
2325 else throw("You cannot withdraw as your are not the Dev.")
2426 }
2527
2628
2729
2830 @Callable(i)
2931 func WithdrawWeeklyEarning () = {
3032 let ContractWalletStakeBalance = assetBalance(this, StakedToken)
3133 let MaxDepositer = getStringValue(this, "MaxDepositer")
3234 let UserWeeklyEarnings = (toBase58String(i.caller.bytes) + "_WeekEarning")
3335 let StakeBalance = match getInteger(this, "StakeBalance") {
3436 case a: Int =>
3537 a
3638 case _ =>
3739 0
3840 }
3941 let PrizeAmount = match getInteger(this, "FundBox") {
4042 case a: Int =>
4143 a
4244 case _ =>
4345 0
4446 }
4547 let HeightTransactFundBox = match getInteger(this, "PrizeHeight") {
4648 case a: Int =>
4749 a
4850 case _ =>
4951 0
5052 }
5153 let PrizeHeightValue = if (if ((HeightTransactFundBox == 0))
5254 then (PrizeAmount == 0)
5355 else false)
5456 then 0
5557 else if (if ((HeightTransactFundBox == 0))
5658 then (PrizeAmount != 0)
5759 else false)
5860 then height
5961 else if (if ((HeightTransactFundBox != 0))
6062 then (PrizeAmount != 0)
6163 else false)
6264 then HeightTransactFundBox
6365 else 0
6466 let currentKey = toBase58String(i.caller.bytes)
6567 let newAmount = match getInteger(this, UserWeeklyEarnings) {
6668 case a: Int =>
6769 a
6870 case _ =>
6971 0
7072 }
7173 if ((0 > newAmount))
7274 then throw("Can't withdraw negative amount")
7375 else if ((0 > newAmount))
7476 then throw(("User cannot withdraw more than deposited funds, Your deposit is: " + toString((newAmount / 100000000))))
75- else ScriptResult(WriteSet([DataEntry(UserWeeklyEarnings, 0), DataEntry("PrizeHeight", PrizeHeightValue), DataEntry("MaxDeposit", 0)]), TransferSet([ScriptTransfer(i.caller, newAmount, StakedToken)]))
77+ else [IntegerEntry(UserWeeklyEarnings, 0), IntegerEntry("PrizeHeight", PrizeHeightValue), IntegerEntry("MaxDeposit", 0), ScriptTransfer(i.caller, newAmount, StakedToken)]
7678 }
7779
7880
7981
8082 @Callable(i)
8183 func PushReward () = {
8284 let minPushBlock = 10
8385 let minStakeBlock = (7 * 1440)
8486 let DelayAfterPush = 60
8587 let WaitTime = (1440 * 1)
8688 let minref = 3
8789 let FirstPushTimer = (7 * 1440)
8890 let userWalletGovernBalance = assetBalance(Address(i.caller.bytes), GovernToken)
89- let pmt = extract(i.payment)
91+ let pmt = if ((size(i.payments) == 1))
92+ then i.payments[0]
93+ else throw("Attached payment is required")
9094 let UserPush = (toBase58String(i.caller.bytes) + "_Push")
9195 let UserLastPushOldValue = match getInteger(this, UserPush) {
9296 case a: Int =>
9397 a
9498 case _ =>
9599 0
96100 }
97101 let UserRefsNum = (toBase58String(i.caller.bytes) + "_refs")
98102 let UserRefsNumValue = match getInteger(this, UserRefsNum) {
99103 case a: Int =>
100104 a
101105 case _ =>
102106 0
103107 }
104108 let HighestPushValue = match getInteger(this, "HighestPush") {
105109 case a: Int =>
106110 a
107111 case _ =>
108112 0
109113 }
110114 if ((userWalletGovernBalance > pmt.amount))
111115 then if (if (((pmt.amount + UserLastPushOldValue) > HighestPushValue))
112116 then (pmt.assetId == GovernToken)
113117 else false)
114118 then {
115119 let UserLastPushBlock = (toBase58String(i.caller.bytes) + "_UserLastPushBlock")
116120 let UserLastStakeBlock = (toBase58String(i.caller.bytes) + "_UserLastStakeBlock")
117121 let UserStake = (toBase58String(i.caller.bytes) + "_Staking")
118122 let ContractWalletStakeBalance = assetBalance(this, StakedToken)
119123 let StakeBalance = match getInteger(this, "StakeBalance") {
120124 case a: Int =>
121125 a
122126 case _ =>
123127 0
124128 }
125129 let PrizeAmount = match getInteger(this, "FundBox") {
126130 case a: Int =>
127131 a
128132 case _ =>
129133 0
130134 }
131135 let HeightTransactFundBox = match getInteger(this, "PrizeHeight") {
132136 case a: Int =>
133137 a
134138 case _ =>
135139 0
136140 }
137141 let PrizeHeightValue = if (if ((HeightTransactFundBox == 0))
138142 then (PrizeAmount == 0)
139143 else false)
140144 then 0
141145 else if (if ((HeightTransactFundBox == 0))
142146 then (PrizeAmount != 0)
143147 else false)
144148 then height
145149 else if (if ((HeightTransactFundBox != 0))
146150 then (PrizeAmount != 0)
147151 else false)
148152 then HeightTransactFundBox
149153 else 0
150154 let ActualDelay = match getInteger(this, "Delay") {
151155 case a: Int =>
152156 a
153157 case _ =>
154158 0
155159 }
156160 let HighestPushAddress = match getInteger(this, "HighestPushAddress") {
157161 case a: Int =>
158162 a
159163 case _ =>
160164 0
161165 }
162166 let UserLastPushBlockValue = match getInteger(this, UserLastPushBlock) {
163167 case a: Int =>
164168 a
165169 case _ =>
166170 0
167171 }
168172 let UserLastStakeBlockValue = match getInteger(this, UserLastStakeBlock) {
169173 case a: Int =>
170174 a
171175 case _ =>
172176 0
173177 }
174178 let UserStakeValue = match getInteger(this, UserStake) {
175179 case a: Int =>
176180 a
177181 case _ =>
178182 0
179183 }
180184 let DevBoxBalance = match getInteger(this, "DevBox") {
181185 case a: Int =>
182186 a
183187 case _ =>
184188 0
185189 }
186190 let DevBoxAmount = (DevBoxBalance + ((pmt.amount * 5) / 1000))
187191 let UserPushvalue = (pmt.amount + UserLastPushOldValue)
188192 let NewDelay = if (if ((height > ((PrizeHeightValue + ActualDelay) + WaitTime)))
189193 then (HighestPushValue > 0)
190194 else false)
191195 then FirstPushTimer
192196 else (ActualDelay + DelayAfterPush)
193197 let HighestPushAddressValue = if (if ((height > ((PrizeHeightValue + NewDelay) + WaitTime)))
194198 then (HighestPushValue > 0)
195199 else false)
196200 then ""
197201 else HighestPushAddress
198202 let PrizeHeightValueNew = if (if ((height > ((PrizeHeightValue + NewDelay) + WaitTime)))
199203 then (HighestPushValue > 0)
200204 else false)
201205 then height
202206 else PrizeHeightValue
203207 if (if ((UserPushvalue > 0))
204208 then ((height - UserLastStakeBlockValue) > minStakeBlock)
205209 else false)
206210 then if (((height - UserLastPushBlockValue) > minPushBlock))
207211 then if ((UserStakeValue > 0))
208212 then if ((UserPushvalue > HighestPushValue))
209213 then if ((PrizeAmount > 0))
210214 then if (if (if (if (((PrizeHeightValueNew + NewDelay) >= height))
211215 then true
212216 else (height >= ((PrizeHeightValueNew + NewDelay) + WaitTime)))
213217 then (HighestPushValue > 0)
214218 else false)
215219 then true
216220 else (HighestPushValue == 0))
217221 then if ((UserRefsNumValue >= minref))
218- then WriteSet([DataEntry(UserPush, UserPushvalue), DataEntry("HighestPushAddress", toBase58String(i.caller.bytes)), DataEntry("HighestPush", UserPushvalue), DataEntry(UserLastPushBlock, height), DataEntry("PrizeHeight", PrizeHeightValueNew), DataEntry("Delay", NewDelay), DataEntry("DevBox", DevBoxAmount)])
222+ 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)]
219223 else throw((("You have to have " + toString(minref)) + " referrals already staking for a minimum of 10 days, to push"))
220224 else {
221225 let txt = if ((HighestPushValue > 0))
222226 then "You cannot Push after rewarding Prize and before One day has passed after award"
223227 else "Unexpected error"
224228 throw(txt)
225229 }
226230 else throw("You cannot push before the reward is unlocked, no reward has been detected yet")
227231 else throw("Your push in troikan token, should be Higher than last Highest Push")
228232 else throw("To be able to participate in Pushing for the reward you need to Stake ASIMIs in the dApp")
229233 else throw("You have to wait 10min before you can make a new Push")
230234 else throw(("Your Push dot not comply one of the following conditions: " + "1. Positive Value for Push in Troikan Toke
231235 2. Must Staked ASIMI Token for a minimum of week "))
232236 }
233237 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"))
234238 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 !")
235239 }
236240
237241
238242
239243 @Callable(i)
240244 func Stake () = {
241245 let WaitTime = (1440 * 1)
242- let pmt = extract(i.payment)
246+ let pmt = if ((size(i.payments) == 1))
247+ then i.payments[0]
248+ else throw("Attached payment is required")
243249 if (if ((pmt.amount > 0))
244250 then (pmt.assetId == StakedToken)
245251 else false)
246252 then {
247253 let GovernTokenSmartContractBalance = assetBalance(this, GovernToken)
248254 let UserAPY = (toBase58String(i.caller.bytes) + "_APY")
249255 let UserPush = (toBase58String(i.caller.bytes) + "_Push")
250256 let UserStakedTokenKey = (toBase58String(i.caller.bytes) + "_Staking")
251257 let UserGovernTokenKey = (toBase58String(i.caller.bytes) + "_Earnings")
252258 let UserLastStakeBlock = (toBase58String(i.caller.bytes) + "_UserLastStakeBlock")
253259 let UserStakeTransactionsKey = (toBase58String(i.caller.bytes) + "_StakedTransactions")
254260 let AddressHeight = (toBase58String(i.caller.bytes) + "_PrizeHeight")
255261 let UserWeekEarnings = (toBase58String(i.caller.bytes) + "_WeekEarning")
256262 let UserStakeTransactions = match getInteger(this, UserStakeTransactionsKey) {
257263 case a: Int =>
258264 a
259265 case _ =>
260266 0
261267 }
262268 let MaxDepositer = getStringValue(this, "MaxDepositer")
263269 let MaxDepositBlock = match getInteger(this, "MaxDepositBlock") {
264270 case a: Int =>
265271 a
266272 case _ =>
267273 0
268274 }
269275 let MaxDeposit = match getInteger(this, "MaxDeposit") {
270276 case a: Int =>
271277 a
272278 case _ =>
273279 0
274280 }
275281 let MaxDepositerValue = if ((pmt.amount > MaxDeposit))
276282 then toBase58String(i.caller.bytes)
277283 else MaxDepositer
278284 let MaxDepositValue = if ((pmt.amount > MaxDeposit))
279285 then pmt.amount
280286 else MaxDeposit
281287 let MaxDepositBlockValue = if ((pmt.amount > MaxDeposit))
282288 then height
283289 else MaxDepositBlock
284290 let UserPushValue = match getInteger(this, UserPush) {
285291 case a: Int =>
286292 a
287293 case _ =>
288294 0
289295 }
290296 let UserLastStakeBlockValue = match getInteger(this, UserLastStakeBlock) {
291297 case a: Int =>
292298 a
293299 case _ =>
294300 0
295301 }
296302 let UserLastStakeBlockNewValue = if ((UserLastStakeBlockValue == 0))
297303 then height
298304 else UserLastStakeBlockValue
299305 let NewUserStakeTransactions = (UserStakeTransactions + 1)
300306 let currentAmountStakedToken = match getInteger(this, UserStakedTokenKey) {
301307 case a: Int =>
302308 a
303309 case _ =>
304310 0
305311 }
306312 let newAmountStakedToken = (currentAmountStakedToken + pmt.amount)
307313 let ContractWalletStakeBalance = assetBalance(this, StakedToken)
308314 let StakeBalance = match getInteger(this, "StakeBalance") {
309315 case a: Int =>
310316 a
311317 case _ =>
312318 0
313319 }
314320 let StakeBalanceAmount = (StakeBalance + pmt.amount)
315321 let PrizeAmount = match getInteger(this, "FundBox") {
316322 case a: Int =>
317323 a
318324 case _ =>
319325 0
320326 }
321327 let UserWeekEarningsValue = match getInteger(this, UserWeekEarnings) {
322328 case a: Int =>
323329 a
324330 case _ =>
325331 0
326332 }
327333 let currentAmountGovernToken = match getInteger(this, UserGovernTokenKey) {
328334 case a: Int =>
329335 a
330336 case _ =>
331337 0
332338 }
333339 let HeightTransactFundBox = match getInteger(this, "PrizeHeight") {
334340 case a: Int =>
335341 a
336342 case _ =>
337343 0
338344 }
339345 let PrizeHeightValue = if (if ((HeightTransactFundBox == 0))
340346 then (PrizeAmount == 0)
341347 else false)
342348 then 0
343349 else if (if ((HeightTransactFundBox == 0))
344350 then (PrizeAmount != 0)
345351 else false)
346352 then height
347353 else if (if ((HeightTransactFundBox != 0))
348354 then (PrizeAmount != 0)
349355 else false)
350356 then HeightTransactFundBox
351357 else 0
352358 let ActualDelay = match getInteger(this, "Delay") {
353359 case a: Int =>
354360 a
355361 case _ =>
356362 0
357363 }
358364 let HighestPushValue = match getInteger(this, "HighestPush") {
359365 case a: Int =>
360366 a
361367 case _ =>
362368 0
363369 }
364- let HighestPushAddress = match getInteger(this, "HighestPushAddress") {
365- case a: Int =>
366- a
367- case _ =>
368- 0
369- }
370+ let HighestPushAddress = getStringValue(this, "HighestPushAddress")
370371 let HighestPushAddressValue = if (if ((height > ((PrizeHeightValue + ActualDelay) + WaitTime)))
371372 then (HighestPushValue > 0)
372373 else false)
373374 then ""
374375 else HighestPushAddress
375376 let PrizeHeightValueNew = if (if ((height > ((PrizeHeightValue + ActualDelay) + WaitTime)))
376377 then (HighestPushValue > 0)
377378 else false)
378379 then height
379380 else PrizeHeightValue
380381 if ((100000000 > GovernTokenSmartContractBalance))
381382 then throw("No enough GovernToken In Contract, Please deposit GovernTokens")
382383 else {
383384 let Reward = if ((StakeBalance == 0))
384385 then 10000
385386 else if ((NewUserStakeTransactions > 10))
386387 then ((10000 * NewUserStakeTransactions) * (1 + (newAmountStakedToken / StakeBalance)))
387388 else (10000 * (1 + (newAmountStakedToken / StakeBalance)))
388389 let UserAPYValue = if ((currentAmountGovernToken > 0))
389390 then ((100 * Reward) / currentAmountGovernToken)
390391 else 0
391392 let newAmountGovernToken = (currentAmountGovernToken + Reward)
392- ScriptResult(WriteSet([DataEntry(UserGovernTokenKey, newAmountGovernToken), DataEntry(UserStakedTokenKey, newAmountStakedToken), DataEntry(UserStakeTransactionsKey, NewUserStakeTransactions), DataEntry("StakeBalance", StakeBalanceAmount), DataEntry("PrizeHeight", PrizeHeightValueNew), DataEntry(UserAPY, UserAPYValue), DataEntry(UserLastStakeBlock, UserLastStakeBlockNewValue), DataEntry(UserPush, UserPushValue), DataEntry("MaxDepositer", MaxDepositerValue), DataEntry("MaxDeposit", MaxDepositValue), DataEntry("MaxDepositBlock", MaxDepositBlockValue), DataEntry("HighestPushAddress", HighestPushAddressValue), DataEntry(UserWeekEarnings, UserWeekEarningsValue)]), TransferSet([ScriptTransfer(i.caller, Reward, GovernToken)]))
393+[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)]
393394 }
394395 }
395396 else throw("Can deposit only StakeToken")
396397 }
397398
398399
399400
400401 @Callable(i)
401402 func WithdrawStakedFunds (amount) = {
402403 let WaitTime = (1440 * 1)
403404 let UserLastStakeBlock = (toBase58String(i.caller.bytes) + "_UserLastStakeBlock")
404405 let UserStakedTokenKey = (toBase58String(i.caller.bytes) + "_Staking")
405406 let UserGovernTokenKey = ((toBase58String(i.caller.bytes) + "_") + toBase58String(GovernToken))
406407 let ContractWalletStakeBalance = assetBalance(this, StakedToken)
407408 let UserLastStakeBlockValue = match getInteger(this, UserLastStakeBlock) {
408409 case a: Int =>
409410 a
410411 case _ =>
411412 0
412413 }
413414 let StakeBalance = match getInteger(this, "StakeBalance") {
414415 case a: Int =>
415416 a
416417 case _ =>
417418 0
418419 }
419420 let PrizeAmount = match getInteger(this, "FundBox") {
420421 case a: Int =>
421422 a
422423 case _ =>
423424 0
424425 }
425426 let HeightTransactFundBox = match getInteger(this, "PrizeHeight") {
426427 case a: Int =>
427428 a
428429 case _ =>
429430 0
430431 }
431432 let ActualDelay = match getInteger(this, "Delay") {
432433 case a: Int =>
433434 a
434435 case _ =>
435436 0
436437 }
437438 let HighestPushValue = match getInteger(this, "HighestPush") {
438439 case a: Int =>
439440 a
440441 case _ =>
441442 0
442443 }
443444 let PrizeHeightValue = if (if ((HeightTransactFundBox == 0))
444445 then (PrizeAmount == 0)
445446 else false)
446447 then 0
447448 else if (if ((HeightTransactFundBox == 0))
448449 then (PrizeAmount != 0)
449450 else false)
450451 then height
451452 else if (if ((HeightTransactFundBox != 0))
452453 then (PrizeAmount != 0)
453454 else false)
454455 then HeightTransactFundBox
455456 else 0
456- let HighestPushAddress = match getInteger(this, "HighestPushAddress") {
457- case a: Int =>
458- a
459- case _ =>
460- 0
461- }
457+ let HighestPushAddress = getStringValue(this, "HighestPushAddress")
462458 let HighestPushAddressValue = if (if ((height > ((PrizeHeightValue + ActualDelay) + WaitTime)))
463459 then (HighestPushValue > 0)
464460 else false)
465461 then ""
466462 else HighestPushAddress
467463 let PrizeHeightValueNew = if (if ((height > ((PrizeHeightValue + ActualDelay) + WaitTime)))
468464 then (HighestPushValue > 0)
469465 else false)
470466 then height
471467 else PrizeHeightValue
472468 let currentKey = toBase58String(i.caller.bytes)
473469 let currentAmount = match getInteger(this, UserStakedTokenKey) {
474470 case a: Int =>
475471 a
476472 case _ =>
477473 0
478474 }
479475 let newAmount = (currentAmount - amount)
480476 let StakeBalanceAmount = (StakeBalance - amount)
481477 let UserLastStakeBlockNewValue = if ((StakeBalanceAmount == 0))
482478 then 0
483479 else UserLastStakeBlockValue
484480 if ((0 > amount))
485481 then throw("Can't withdraw negative amount")
486482 else if ((0 > newAmount))
487483 then throw(("User cannot withdraw more than deposited funds, Your deposit is: " + toString((currentAmount / 100000000))))
488484 else if ((100000000 > assetBalance(this, GovernToken)))
489485 then throw(("Not enough Troika In Contract: " + toString((assetBalance(this, GovernToken) / 100000000))))
490- else ScriptResult(WriteSet([DataEntry(UserGovernTokenKey, 100000000), DataEntry(UserStakedTokenKey, newAmount), DataEntry("StakeBalance", StakeBalanceAmount), DataEntry("PrizeHeight", PrizeHeightValueNew), DataEntry(UserLastStakeBlock, UserLastStakeBlockNewValue), DataEntry("HighestPushAddress", HighestPushAddressValue)]), TransferSet([ScriptTransfer(i.caller, 100000000, GovernToken), ScriptTransfer(i.caller, amount, StakedToken)]))
486+ 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)]
491487 }
492488
493489
494490
495491 @Callable(i)
496492 func WithdrawBigStakeReward () = {
497493 let WaitTime = (1440 * 1)
498494 let LastBigStakerRewardBlock = (toBase58String(i.caller.bytes) + "_LastBigStakerRewardBlock")
499495 let BigStakerReward = (toBase58String(i.caller.bytes) + "_BigStaker")
500496 let UserGovernTokenKey = (toBase58String(i.caller.bytes) + "_Earnings")
501497 let LimiWithdrawReward = 10
502498 let UserGovernTokenAmount = match getInteger(this, UserGovernTokenKey) {
503499 case a: Int =>
504500 a
505501 case _ =>
506502 0
507503 }
508504 let LastBigStakerRewardBlockValue = match getInteger(this, LastBigStakerRewardBlock) {
509505 case a: Int =>
510506 a
511507 case _ =>
512508 0
513509 }
514510 let BigStakerRewardTotalValue = match getInteger(this, "BigStakerRewardTotal") {
515511 case a: Int =>
516512 a
517513 case _ =>
518514 0
519515 }
520516 let PrizeAmount = match getInteger(this, "FundBox") {
521517 case a: Int =>
522518 a
523519 case _ =>
524520 0
525521 }
526522 let HeightTransactFundBox = match getInteger(this, "PrizeHeight") {
527523 case a: Int =>
528524 a
529525 case _ =>
530526 0
531527 }
532528 let PrizeHeightValue = if (if ((HeightTransactFundBox == 0))
533529 then (PrizeAmount == 0)
534530 else false)
535531 then 0
536532 else if (if ((HeightTransactFundBox == 0))
537533 then (PrizeAmount != 0)
538534 else false)
539535 then height
540536 else if (if ((HeightTransactFundBox != 0))
541537 then (PrizeAmount != 0)
542538 else false)
543539 then HeightTransactFundBox
544540 else 0
545541 let ActualDelay = match getInteger(this, "Delay") {
546542 case a: Int =>
547543 a
548544 case _ =>
549545 0
550546 }
551547 let HighestPushValue = match getInteger(this, "HighestPush") {
552548 case a: Int =>
553549 a
554550 case _ =>
555551 0
556552 }
557- let HighestPushAddress = match getInteger(this, "HighestPushAddress") {
558- case a: Int =>
559- a
560- case _ =>
561- 0
562- }
553+ let HighestPushAddress = getStringValue(this, "HighestPushAddress")
563554 let HighestPushAddressValue = if (if ((height > ((PrizeHeightValue + ActualDelay) + WaitTime)))
564555 then (HighestPushValue > 0)
565556 else false)
566557 then ""
567558 else HighestPushAddress
568559 let PrizeHeightValueNew = if (if ((height > ((PrizeHeightValue + ActualDelay) + WaitTime)))
569560 then (HighestPushValue > 0)
570561 else false)
571562 then height
572563 else PrizeHeightValue
573564 let currentKey = toBase58String(i.caller.bytes)
574565 let amount = match getInteger(this, BigStakerReward) {
575566 case a: Int =>
576567 a
577568 case _ =>
578569 0
579570 }
580571 let StakeBalanceAmount = (BigStakerRewardTotalValue - amount)
581572 let BigStakerRewardTax = if ((0 > ((UserGovernTokenAmount / 1000) * (1000 - ((1000 * (height - LastBigStakerRewardBlockValue)) / (LimiWithdrawReward * 1440))))))
582573 then (1000 * 100000000)
583574 else ((UserGovernTokenAmount / 1000) * (1000 - ((1000 * (height - LastBigStakerRewardBlockValue)) / (LimiWithdrawReward * 1440))))
584575 if ((0 > amount))
585576 then throw(((("Can't withdraw negative amount " + toString((UserGovernTokenAmount - (1000 * 100000000)))) + " ... ") + toString(amount)))
586577 else if (if (if (((1000 * 100000000) > UserGovernTokenAmount))
587578 then true
588579 else (1 > amount))
589580 then true
590581 else (0 > (UserGovernTokenAmount - BigStakerRewardTax)))
591582 then throw(("No ASIMI reward available, or Not enough Earned Troikan Tokens to do transaction, you have: " + toString((UserGovernTokenAmount / 100000000))))
592583 else if ((StakeBalanceAmount > 0))
593- then ScriptResult(WriteSet([DataEntry(BigStakerReward, 0), DataEntry("BigStakerRewardTotal", StakeBalanceAmount), DataEntry(UserGovernTokenKey, (UserGovernTokenAmount - BigStakerRewardTax)), DataEntry("PrizeHeight", PrizeHeightValue), DataEntry(LastBigStakerRewardBlock, height), DataEntry("HighestPushAddress", HighestPushAddressValue)]), TransferSet([ScriptTransfer(i.caller, amount, StakedToken)]))
584+ 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)]
594585 else throw("Balance Error, Total Big Stakers cannot be negative, Operation won't be authorized")
595586 }
596587
597588
598589
599590 @Callable(i)
600591 func HarvestGovernToiken (amount) = {
601592 let ContractWalletStakeBalance = assetBalance(this, StakedToken)
602593 let UserGovernTokenKey = (toBase58String(i.caller.bytes) + "_Earnings")
603594 let StakeBalance = match getInteger(this, "StakeBalance") {
604595 case a: Int =>
605596 a
606597 case _ =>
607598 0
608599 }
609600 let PrizeAmount = match getInteger(this, "FundBox") {
610601 case a: Int =>
611602 a
612603 case _ =>
613604 0
614605 }
615606 let HeightTransactFundBox = match getInteger(this, "PrizeHeight") {
616607 case a: Int =>
617608 a
618609 case _ =>
619610 0
620611 }
621612 let PrizeHeightValue = if (if ((HeightTransactFundBox == 0))
622613 then (PrizeAmount == 0)
623614 else false)
624615 then 0
625616 else if (if ((HeightTransactFundBox == 0))
626617 then (PrizeAmount != 0)
627618 else false)
628619 then height
629620 else if (if ((HeightTransactFundBox != 0))
630621 then (PrizeAmount != 0)
631622 else false)
632623 then HeightTransactFundBox
633624 else 0
634625 let currentKey = toBase58String(i.caller.bytes)
635626 let currentAmount = match getInteger(this, UserGovernTokenKey) {
636627 case a: Int =>
637628 a
638629 case _ =>
639630 0
640631 }
641632 let newAmount = (currentAmount - amount)
642633 if ((0 > amount))
643634 then throw("Can't withdraw negative amount")
644635 else if ((0 > newAmount))
645636 then throw(("User cannot withdraw more than deposited funds, Your deposit is: " + toString((currentAmount / 100000000))))
646- else ScriptResult(WriteSet([DataEntry(UserGovernTokenKey, newAmount), DataEntry("PrizeHeight", PrizeHeightValue)]), TransferSet([ScriptTransfer(i.caller, amount, GovernToken)]))
637+ else [IntegerEntry(UserGovernTokenKey, newAmount), IntegerEntry("PrizeHeight", PrizeHeightValue), ScriptTransfer(i.caller, amount, GovernToken)]
647638 }
648639
649640
650641
651642 @Callable(i)
652643 func delayprize () = {
653644 let DelayDays = (1440 * 1)
654645 let WaitTime = (1440 * 1)
655646 let UserGovernTokenKey = ((toBase58String(i.caller.bytes) + "_") + toBase58String(GovernToken))
656647 let UserWalletSGovernBalance = assetBalance(Address(i.caller.bytes), GovernToken)
657648 let ContractWalletStakeBalance = assetBalance(this, StakedToken)
658649 let StakeBalance = match getInteger(this, "StakeBalance") {
659650 case a: Int =>
660651 a
661652 case _ =>
662653 0
663654 }
664655 let PrizeAmount = match getInteger(this, "FundBox") {
665656 case a: Int =>
666657 a
667658 case _ =>
668659 0
669660 }
670661 let HeightTransactFundBox = match getInteger(this, "PrizeHeight") {
671662 case a: Int =>
672663 a
673664 case _ =>
674665 0
675666 }
676667 let ActualDelay = match getInteger(this, "Delay") {
677668 case a: Int =>
678669 a
679670 case _ =>
680671 0
681672 }
682673 let PrizeHeightValue = if (if ((HeightTransactFundBox == 0))
683674 then (PrizeAmount == 0)
684675 else false)
685676 then 0
686677 else if (if ((HeightTransactFundBox == 0))
687678 then (PrizeAmount != 0)
688679 else false)
689680 then height
690681 else if (if ((HeightTransactFundBox != 0))
691682 then (PrizeAmount != 0)
692683 else false)
693684 then HeightTransactFundBox
694685 else 0
695686 let HighestPushValue = match getInteger(this, "HighestPush") {
696687 case a: Int =>
697688 a
698689 case _ =>
699690 0
700691 }
701- let HighestPushAddress = match getInteger(this, "HighestPushAddress") {
702- case a: Int =>
703- a
704- case _ =>
705- 0
706- }
692+ let HighestPushAddress = getStringValue(this, "HighestPushAddress")
707693 let HighestPushAddressValue = if (if ((height > ((PrizeHeightValue + ActualDelay) + WaitTime)))
708694 then (HighestPushValue > 0)
709695 else false)
710696 then ""
711697 else HighestPushAddress
712698 let PrizeHeightValueNew = if (if ((height > ((PrizeHeightValue + ActualDelay) + WaitTime)))
713699 then (HighestPushValue > 0)
714700 else false)
715701 then height
716702 else PrizeHeightValue
717703 let ActualDelayCost = match getInteger(this, "DelayCost") {
718704 case a: Int =>
719705 a
720706 case _ =>
721707 10
722708 }
723- let pmt = extract(i.payment)
709+ let pmt = if ((size(i.payments) == 1))
710+ then i.payments[0]
711+ else throw("Attached payment is required")
724712 let DevBoxBalance = match getInteger(this, "DevBox") {
725713 case a: Int =>
726714 a
727715 case _ =>
728716 0
729717 }
730718 if (if (isDefined(pmt.assetId))
731- then (extract(pmt.assetId) == GovernToken)
719+ then (pmt.assetId == GovernToken)
732720 else false)
733721 then if ((PrizeAmount > 0))
734722 then {
735723 let UserGovernTokenAmount = pmt.amount
736724 let DevBoxAmount = (DevBoxBalance + ((pmt.amount * 5) / 1000))
737725 let NewDelayCost = if ((ActualDelayCost == 0))
738726 then 1000000000
739727 else (2 * ActualDelayCost)
740728 if ((UserGovernTokenAmount >= NewDelayCost))
741729 then {
742730 let NewDelay = (ActualDelay + DelayDays)
743- WriteSet([DataEntry("Delay", NewDelay), DataEntry("DelayCost", NewDelayCost), DataEntry("PrizeHeight", PrizeHeightValueNew), DataEntry("DevBox", DevBoxAmount), DataEntry("HighestPushAddress", HighestPushAddressValue)])
731+[IntegerEntry("Delay", NewDelay), IntegerEntry("DelayCost", NewDelayCost), IntegerEntry("PrizeHeight", PrizeHeightValueNew), IntegerEntry("DevBox", DevBoxAmount), StringEntry("HighestPushAddress", HighestPushAddressValue)]
744732 }
745733 else throw((("To delay the release of the reward ONE DAY later than expected, you need " + toString(NewDelayCost)) + "TROIKAs"))
746734 }
747735 else throw("You cannot delay the reward before reward is received! Please wait until a reward is available")
748736 else throw("Can Use only Troika Token to Delay Reward")
749- }
750-
751-
752-
753-@Callable(i)
754-func CreateTeam (TeamName) = {
755- let UserStakedTokenKey = (toBase58String(i.caller.bytes) + "_Staking")
756- let UserGovernTokenKey = (toBase58String(i.caller.bytes) + "_Earnings")
757- let CreateTeamFeeASIMI = 5
758- let CreateTeamFeeTroikan = (1000 * CreateTeamFeeASIMI)
759- let UserGovernTokenAmount = match getInteger(this, UserGovernTokenKey) {
760- case a: Int =>
761- a
762- case _ =>
763- 0
764- }
765- let currentAmount = match getInteger(this, UserStakedTokenKey) {
766- case a: Int =>
767- a
768- case _ =>
769- 0
770- }
771- if ((TeamName != ""))
772- then WriteSet([DataEntry("TeamName", TeamName), DataEntry("UserStakedTokenKey", (currentAmount - (CreateTeamFeeASIMI * 100000000))), DataEntry("UserGovernTokenKey", (UserGovernTokenAmount - (CreateTeamFeeTroikan * 100000000)))])
773- else throw("The team' s name cannot be empty")
774737 }
775738
776739
777740
778741 @Callable(i)
779742 func ClaimPrize () = {
780743 let UserStakedTokenKey = (toBase58String(i.caller.bytes) + "_Staking")
781744 let UserPush = (toBase58String(i.caller.bytes) + "_Push")
782745 let UserLastStakeBlock = (toBase58String(i.caller.bytes) + "_UserLastStakeBlock")
783746 let minStakeBlock = (1440 * 7)
784747 let minref = 3
785748 let ContractGovTokenBalance = assetBalance(this, GovernToken)
786749 let ContractWalletStakeBalance = assetBalance(this, StakedToken)
787750 let StakeBalance = match getInteger(this, "StakeBalance") {
788751 case a: Int =>
789752 a
790753 case _ =>
791754 0
792755 }
793756 let PrizeAmount = match getInteger(this, "FundBox") {
794757 case a: Int =>
795758 a
796759 case _ =>
797760 0
798761 }
799762 let UserPushValue = match getInteger(this, UserPush) {
800763 case a: Int =>
801764 a
802765 case _ =>
803766 0
804767 }
805768 let UserLastStakeBlockValue = match getInteger(this, UserLastStakeBlock) {
806769 case a: Int =>
807770 a
808771 case _ =>
809772 0
810773 }
811774 let UserStakedTokenAmount = match getInteger(this, UserStakedTokenKey) {
812775 case a: Int =>
813776 a
814777 case _ =>
815778 0
816779 }
817780 let ActualDelay = match getInteger(this, "Delay") {
818781 case a: Int =>
819782 a
820783 case _ =>
821784 0
822785 }
823786 let PrizeWinner = getStringValue(this, "HighestPushAddress")
824787 let PrizeHeight = match getInteger(this, "PrizeHeight") {
825788 case a: Int =>
826789 a
827790 case _ =>
828791 0
829792 }
830793 let HighestPushValue = match getInteger(this, "HighestPush") {
831794 case a: Int =>
832795 a
833796 case _ =>
834797 0
835798 }
836799 let UserRefsNum = (toBase58String(i.caller.bytes) + "_refs")
837800 let UserRefsNumValue = match getInteger(this, UserRefsNum) {
838801 case a: Int =>
839802 a
840803 case _ =>
841804 0
842805 }
843806 if (if ((PrizeAmount == 0))
844807 then true
845808 else (10000000000 > ContractGovTokenBalance))
846809 then throw("No prize to Claim or Not enough Govern Token en Contract (Min 100 Troika)")
847810 else if ((toBase58String(i.caller.bytes) != PrizeWinner))
848811 then throw("You are not the winner hence cannot claim the reward ")
849812 else if (if ((100000000 > UserStakedTokenAmount))
850813 then (minStakeBlock > UserLastStakeBlockValue)
851814 else false)
852815 then throw("You have to Stake ASIMI Token to claim reward ")
853816 else if (if ((height > (PrizeHeight + ActualDelay)))
854817 then (UserPushValue >= HighestPushValue)
855818 else false)
856819 then if ((UserRefsNumValue >= minref))
857- then ScriptResult(WriteSet([DataEntry(PrizeWinner, PrizeAmount), DataEntry("FundBox", 0), DataEntry("HighestPush", 0), DataEntry(UserPush, 0), DataEntry("HighestPushAddress", ""), DataEntry("PrizeHeight", 0), DataEntry("Delay", 0), DataEntry("DelayCost", 0), DataEntry("LastWinner", PrizeWinner), DataEntry("LastPrize", PrizeAmount)]), TransferSet([ScriptTransfer(i.caller, PrizeAmount, StakedToken), ScriptTransfer(i.caller, 1000000000, GovernToken)]))
820+ 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)]
858821 else throw((("You have to have " + toString(minref)) + " referrals already staking for a minimum of 10 days to Claim the prize"))
859822 else throw("You have to be the user with the highest Push and wait till countown is finished, to claim Reward")
860823 }
861824
862825
863826
864827 @Callable(i)
865828 func Addmentor (Mentor) = {
866829 let UserMentorAddress = (toBase58String(i.caller.bytes) + "_Mentor")
867830 if ((Mentor != ""))
868- then WriteSet([DataEntry(UserMentorAddress, Mentor)])
831+ then [StringEntry(UserMentorAddress, Mentor)]
869832 else throw("Mentor's Address cannot be empty")
870833 }
871834
872835
873836
874837 @Callable(i)
875838 func GetLikesPackage (TwitterUserId,TwittId) = {
876- let pmt = extract(i.payment)
877- if (if ((pmt.amount > 0))
878- then (pmt.assetId == GovernToken)
839+ let pmt = if ((size(i.payments) == 1))
840+ then i.payments[0]
841+ else throw("Attached payment is required")
842+ if (if (if ((pmt.amount > LikePackagePrice))
843+ then (i.payments[0].assetId == StakedToken)
879844 else false)
880- then WriteSet([DataEntry((toString(TwitterUserId) + "_Twitt2Like"), TwittId)])
845+ then (i.payments[1].assetId == GovernToken)
846+ else false)
847+ then [IntegerEntry((toString(TwitterUserId) + "_Twitt2Like"), TwittId)]
881848 else throw("You Only can pay with ASIMI Tokens")
882849 }
883850
884851

github/deemru/w8io/3ef1775 
163.31 ms