tx · 8Ds6Piek6eJMmGvCQNGtTkPRJqkiNqWr6RCLYMDxhXSH

3P86ne9inVG1Cf4smrEGSdcXyBuEApPcMAc:  -0.00800000 Waves

2023.10.23 09:26 [3876739] smart account 3P86ne9inVG1Cf4smrEGSdcXyBuEApPcMAc > SELF 0.00000000 Waves

{ "type": 13, "id": "8Ds6Piek6eJMmGvCQNGtTkPRJqkiNqWr6RCLYMDxhXSH", "fee": 800000, "feeAssetId": null, "timestamp": 1698042375861, "version": 1, "sender": "3P86ne9inVG1Cf4smrEGSdcXyBuEApPcMAc", "senderPublicKey": "6hjWe2YQdsZKtjcACiKTUMEGGnow19LjCF763eE2Tt91", "proofs": [ "LuSRaq47hdAY3nWGDaa2X5djhX8iBPRciCDaWX2YmwvMMYgPkN1xbQQHX8nk3nzRWLukkmZXekqZW31a5JXARre" ], "script": "base64:BgIsCAISABIDCgEIEgMKAQgSAwoBARIECgIIARIDCgEIEgMKAQgSABIAEgMKAQgqARB3cml0ZUNvbnN0U3RyaW5nAgNrZXkFdmFsdWUDCQEBIQEJAQlpc0RlZmluZWQBCQCdCAIFBHRoaXMFA2tleQkBC1N0cmluZ0VudHJ5AgUDa2V5BQV2YWx1ZQkAAgEJAKwCAgIVYWxyZWFkeSBpbml0aWFsaXplZDogBQNrZXkBCHdyaXRlSW50AgNrZXkFdmFsdWUDCQBmAgAABQV2YWx1ZQkAAgEJAKwCAgkArAICCQCsAgICF3dyaXRpbmcgbmVnYXRpdmUgdmFsdWUgCQCkAwEFBXZhbHVlAgkgZm9yIGtleSAFA2tleQkBDEludGVnZXJFbnRyeQIFA2tleQUFdmFsdWUBCGNoYW5nZUJ5AgNrZXkFdmFsdWUJAQh3cml0ZUludAIFA2tleQkAZAIJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUDa2V5AAAFBXZhbHVlABJjb25maWdBZGRyZXNzU3RvcmUCBmNvbmZpZwANY29uZmlnQWRkcmVzcwkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQR0aGlzBRJjb25maWdBZGRyZXNzU3RvcmUCIXN0YWtpbmc6IGNvbmZpZyBhZGRyZXNzIG5vdCBmb3VuZAIWaW52YWxpZCBjb25maWcgYWRkcmVzcwEHYWxsb3dlZAECb3AJAPwHBAUNY29uZmlnQWRkcmVzcwIJb3BBbGxvd2VkCQDMCAIFAm9wBQNuaWwFA25pbAANcHdyQXNzZXRJZFN0cgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFDWNvbmZpZ0FkZHJlc3MCDHBvd2VyQXNzZXRJZAIWcHdyIGFzc2V0IGlkIG5vdCBmb3VuZAAKcHdyQXNzZXRJZAkA2QQBBQ1wd3JBc3NldElkU3RyAA5taW50ZXJDb250cmFjdAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQ1jb25maWdBZGRyZXNzAg9jb250cmFjdF9taW50ZXICEm5vIGNvbnRyYWN0X21pbnRlcgIXaW52YWxpZCBtaW50ZXIgY29udHJhY3QADW1haW5BZGRyZXNzZXMJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUNY29uZmlnQWRkcmVzcwIObWFpbl9hZGRyZXNzZXMCAAALbWluTG9ja1RpbWUJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBQ1jb25maWdBZGRyZXNzCQCsAgIJAKUIAQUEdGhpcwIOX21pbl9sb2NrX3RpbWUCFW1pbl9sb2NrX3RpbWUgbm90IHNldAEPdXNlclNoYXJlc1N0b3JlAQR1c2VyCQCsAgIFBHVzZXICB19zaGFyZXMBC3N0b3JlSGVpZ2h0AQVzdG9yZQkArAICBQVzdG9yZQIHX2hlaWdodAEJc3RvcmVMb2NrAQVzdG9yZQkArAICBQVzdG9yZQIFX2xvY2sBC3N0YWtlSGVpZ2h0AQdhZGRyZXNzCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUEdGhpcwkBC3N0b3JlSGVpZ2h0AQkBD3VzZXJTaGFyZXNTdG9yZQEFB2FkZHJlc3MCD25vIHN0YWtlIGhlaWdodAEKbG9ja0hlaWdodAEHYWRkcmVzcwkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQEJc3RvcmVMb2NrAQkBD3VzZXJTaGFyZXNTdG9yZQEFB2FkZHJlc3MAAAEMdW5sb2NrSGVpZ2h0AQdhZGRyZXNzCQBkAgkBCmxvY2tIZWlnaHQBBQdhZGRyZXNzBQttaW5Mb2NrVGltZQENdW5zdGFrZUhlaWdodAEHYWRkcmVzcwkAZAIJAQtzdGFrZUhlaWdodAEFB2FkZHJlc3MFC21pbkxvY2tUaW1lAAhzbGFzaGVycwkBC3ZhbHVlT3JFbHNlAgkAnQgCBQ1jb25maWdBZGRyZXNzCQCsAgIJAKUIAQUEdGhpcwIJX3NsYXNoZXJzAgAABkhFSUdIVAUGaGVpZ2h0ABFzdGFrZWRIZWlnaHRTdG9yZQIMc3Rha2VkSGVpZ2h0ABB0b3RhbFNoYXJlc1N0b3JlAgt0b3RhbFNoYXJlcwALc3Rha2VkU3RvcmUCBnN0YWtlZAAFUkJhc2UAgICE/qbe4REAA2FwcgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFDWNvbmZpZ0FkZHJlc3MJAKwCAgkApQgBBQR0aGlzAgtfc3Rha2VyX2FwcgINbm8gc3Rha2VyX2FwcgANYmxvY2tzUGVyWWVhcgkAaAIJAGgCAO0CABgAPAAJUlBlckJsb2NrCQBrAwUDYXByBQVSQmFzZQkAaAIA6AcFDWJsb2Nrc1BlclllYXIAC3RvdGFsU3Rha2VkCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFC3N0YWtlZFN0b3JlAAAADWN1cnJlbnRTdGFrZWQEDHN0YWtlZEhlaWdodAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBRFzdGFrZWRIZWlnaHRTdG9yZQAABAFkCQBlAgUGSEVJR0hUBQxzdGFrZWRIZWlnaHQEAXIJAGQCBQVSQmFzZQkAaAIFAWQFCVJQZXJCbG9jawkAawMFC3RvdGFsU3Rha2VkBQFyBQVSQmFzZQELcHdyVG9TaGFyZXMBCXB3ckFtb3VudAQLdG90YWxTaGFyZXMJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUQdG90YWxTaGFyZXNTdG9yZQAAAwkAAAIFC3RvdGFsU2hhcmVzAAAFCXB3ckFtb3VudAkAawMFCXB3ckFtb3VudAULdG90YWxTaGFyZXMFDWN1cnJlbnRTdGFrZWQBC3NoYXJlc1RvUHdyAQxzaGFyZXNBbW91bnQEC3RvdGFsU2hhcmVzCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFEHRvdGFsU2hhcmVzU3RvcmUAAAMJAAACBQt0b3RhbFNoYXJlcwAABQxzaGFyZXNBbW91bnQJAGsDBQxzaGFyZXNBbW91bnQFDWN1cnJlbnRTdGFrZWQFC3RvdGFsU2hhcmVzARBlbnN1cmVQd3JCYWxhbmNlAQZhbW91bnQECnB3ckJhbGFuY2UJAPAHAgUEdGhpcwUKcHdyQXNzZXRJZAMJAGYCBQZhbW91bnQFCnB3ckJhbGFuY2UEBG1pbnQJAPwHBAUObWludGVyQ29udHJhY3QCBG1pbnQJAMwIAgkAZQIFBmFtb3VudAUKcHdyQmFsYW5jZQUDbmlsBQNuaWwDCQAAAgUEbWludAUEbWludAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuBQNuaWwBBnBheW91dAIEdXNlcgZhbW91bnQEBmVuc3VyZQkBEGVuc3VyZVB3ckJhbGFuY2UBBQZhbW91bnQDCQAAAgUGZW5zdXJlBQZlbnN1cmUJAQ5TY3JpcHRUcmFuc2ZlcgMJARFAZXh0ck5hdGl2ZSgxMDYyKQEFBHVzZXIFBmFtb3VudAUKcHdyQXNzZXRJZAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgEGc2hhcmVzAQdhZGRyZXNzCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQ91c2VyU2hhcmVzU3RvcmUBBQdhZGRyZXNzAAABBnN0YWtlZAEHYWRkcmVzcwkBC3NoYXJlc1RvUHdyAQkBBnNoYXJlcwEFB2FkZHJlc3MBBmFkdmlzZQAEC3RvdGFsU2hhcmVzCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFEHRvdGFsU2hhcmVzU3RvcmUAAAQMdG90YWxTdGFrZWQxCQELc2hhcmVzVG9Qd3IBBQt0b3RhbFNoYXJlcwkArAICCQCsAgIJAKwCAgkArAICCQCsAgICCGhlaWdodDogCQCkAwEFBkhFSUdIVAIPLCB0b3RhbFN0YWtlZDogCQCkAwEFDHRvdGFsU3Rha2VkMQIPLCB0b3RhbFNoYXJlczogCQCkAwEFC3RvdGFsU2hhcmVzAQphZHZpc2VVc2VyAQR1c2VyBAdzaGFyZXMxCQEGc2hhcmVzAQUEdXNlcgQJYXZhaWxhYmxlCQELc2hhcmVzVG9Qd3IBBQdzaGFyZXMxBAxoZWlnaHRBbmRBY2MJAKwCAgkArAICCQCsAgICCGhlaWdodDogCQCkAwEFBkhFSUdIVAILLCBhY2NvdW50OiAFBHVzZXIDCQAAAgUHc2hhcmVzMQAACQCsAgIJAKwCAgkArAICCQCsAgIFDGhlaWdodEFuZEFjYwILLCBzdGFrZWQ6IDACESwgdm90aW5nX3Bvd2VyOiAwAhIsIHN0YWtlX2hlaWdodDogLTECFCwgdW5zdGFrZV9oZWlnaHQ6IC0xCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgUMaGVpZ2h0QW5kQWNjAgosIHN0YWtlZDogCQCkAwEFCWF2YWlsYWJsZQIQLCB2b3RpbmdfcG93ZXI6IAkApAMBBQdzaGFyZXMxAhAsIHN0YWtlX2hlaWdodDogCQCkAwEJAQtzdGFrZUhlaWdodAEFBHVzZXICEiwgdW5zdGFrZV9oZWlnaHQ6IAkApAMBCQCWAwEJAMwIAgkBDXVuc3Rha2VIZWlnaHQBBQR1c2VyCQDMCAIJAQx1bmxvY2tIZWlnaHQBBQR1c2VyBQNuaWwBC3N0YWtlRm9ySW50AgdhZGRyZXNzAXADCQECIT0CCAUBcAdhc3NldElkBQpwd3JBc3NldElkCQACAQIQaW52YWxpZCBhc3NldCBpZAQKYWRkaXRpb25hbAgFAXAGYW1vdW50BAxzaGFyZXNBbW91bnQJAQtwd3JUb1NoYXJlcwEFCmFkZGl0aW9uYWwJAMwIAgkBCHdyaXRlSW50AgULc3Rha2VkU3RvcmUJAGQCBQ1jdXJyZW50U3Rha2VkBQphZGRpdGlvbmFsCQDMCAIJAQh3cml0ZUludAIFEXN0YWtlZEhlaWdodFN0b3JlBQZIRUlHSFQJAMwIAgkBCGNoYW5nZUJ5AgUQdG90YWxTaGFyZXNTdG9yZQUMc2hhcmVzQW1vdW50CQDMCAIJAQhjaGFuZ2VCeQIJAQ91c2VyU2hhcmVzU3RvcmUBBQdhZGRyZXNzBQxzaGFyZXNBbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQIJAQtzdG9yZUhlaWdodAEJAQ91c2VyU2hhcmVzU3RvcmUBBQdhZGRyZXNzBQZIRUlHSFQFA25pbAEOdW5zdGFrZUZyb21JbnQDB2FkZHJlc3MNcGF5b3V0QWRkcmVzcwlwd3JBbW91bnQEB3NoYXJlczEJAQZzaGFyZXMBBQdhZGRyZXNzAwkAAAIFB3NoYXJlczEAAAkAAgECEm5vdGhpbmcgdG8gdW5zdGFrZQQMbWF4QXZhaWxhYmxlCQELc2hhcmVzVG9Qd3IBBQdzaGFyZXMxBAZhbW91bnQDCQAAAgUJcHdyQW1vdW50AP///////////wEFDG1heEF2YWlsYWJsZQUJcHdyQW1vdW50AwkAZgIAAAUGYW1vdW50CQACAQIeY2Fubm90IHVuc3Rha2UgbmVnYXRpdmUgYW1vdW50AwkAZgIFBmFtb3VudAUMbWF4QXZhaWxhYmxlCQACAQIhY2Fubm90IHVuc3Rha2UgbW9yZSB0aGFuIHlvdSBoYXZlBAxzaGFyZXNBbW91bnQJAJcDAQkAzAgCCQELcHdyVG9TaGFyZXMBBQZhbW91bnQJAMwIAgUHc2hhcmVzMQUDbmlsAwkAAAIFDHNoYXJlc0Ftb3VudAAACQACAQIXY2Fubm90IHVuc3Rha2UgMCBzaGFyZXMJAJQKAgkAzAgCCQEId3JpdGVJbnQCBQtzdGFrZWRTdG9yZQkAZQIFDWN1cnJlbnRTdGFrZWQFBmFtb3VudAkAzAgCCQEId3JpdGVJbnQCBRFzdGFrZWRIZWlnaHRTdG9yZQUGSEVJR0hUCQDMCAIJAQhjaGFuZ2VCeQIFEHRvdGFsU2hhcmVzU3RvcmUJAQEtAQUMc2hhcmVzQW1vdW50CQDMCAIJAQhjaGFuZ2VCeQIJAQ91c2VyU2hhcmVzU3RvcmUBBQdhZGRyZXNzCQEBLQEFDHNoYXJlc0Ftb3VudAkAzAgCCQEGcGF5b3V0AgUNcGF5b3V0QWRkcmVzcwUGYW1vdW50BQNuaWwFBmFtb3VudAAEYm90cwkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUNY29uZmlnQWRkcmVzcwIPdHdpdHRlcl9haXJkcm9wAiMzUE4ydmNweWpBQlRDTXZQcGtrcGF0QlFQYW45ZFVNOGRpYgIfaW52YWxpZCB0d2l0dGVyX2FpcmRyb3AgYWRkcmVzcwATYm90c0RhaWx5VG90YWxTdG9yZQkArAICAhFib3RzX2RhaWx5X2xpbWl0XwkApAMBCQBrAwUGSEVJR0hUAAEAoAsADmJvdHNEYWlseUxpbWl0CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMCEGJvdHNfZGFpbHlfbGltaXQAgJTr3AMKAWkBBXN0YWtlAAQBYQkBB2FsbG93ZWQBAgVzdGFrZQMJAAACBQFhBQFhCQELc3Rha2VGb3JJbnQCCQClCAEIBQFpBmNhbGxlcgkAkQMCCAUBaQhwYXltZW50cwAACQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBCHN0YWtlRm9yAQdhZGRyZXNzBAFhCQEHYWxsb3dlZAECCHN0YWtlRm9yAwkAAAIFAWEFAWEDAwkBAiE9AgUHYWRkcmVzcwkApQgBCAUBaQxvcmlnaW5DYWxsZXIJAQEhAQkBCGNvbnRhaW5zAgUNbWFpbkFkZHJlc3NlcwkApQgBCAUBaQZjYWxsZXIHCQACAQIPc3Rha2VGb3IgZGVuaWVkCQELc3Rha2VGb3JJbnQCBQdhZGRyZXNzCQCRAwIIBQFpCHBheW1lbnRzAAAJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEKcmVzdGFrZUZvcgEHYWRkcmVzcwQBYQkBB2FsbG93ZWQBAgpyZXN0YWtlRm9yAwkAAAIFAWEFAWEDCQEBIQEJAQhjb250YWlucwIFDW1haW5BZGRyZXNzZXMJAKUIAQgFAWkGY2FsbGVyCQACAQIGZGVuaWVkCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEJc3RvcmVMb2NrAQkBD3VzZXJTaGFyZXNTdG9yZQEFB2FkZHJlc3MFBkhFSUdIVAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBB3Vuc3Rha2UBCXB3ckFtb3VudAQBYQkBB2FsbG93ZWQBAgd1bnN0YWtlAwkAAAIFAWEFAWEEB2FjY291bnQJAKUIAQgFAWkGY2FsbGVyAwkAZgIJAQ11bnN0YWtlSGVpZ2h0AQUHYWNjb3VudAUGSEVJR0hUCQACAQIXc3RpbGwgbG9ja2VkIGluIHN0YWtpbmcDCQBmAgkBDHVubG9ja0hlaWdodAEFB2FjY291bnQFBkhFSUdIVAkAAgECFnN0aWxsIGxvY2tlZCBpbiB2b3RpbmcECyR0MDcwMTM3MDc2CQEOdW5zdGFrZUZyb21JbnQDBQdhY2NvdW50BQdhY2NvdW50BQlwd3JBbW91bnQEA2NtZAgFCyR0MDcwMTM3MDc2Al8xBAZhbW91bnQIBQskdDA3MDEzNzA3NgJfMgMJAQlpc0RlZmluZWQBCQCaCAIFBGJvdHMJAKwCAgUHYWNjb3VudAIIX2NsYWltZWQEBWxpbWl0CQELdmFsdWVPckVsc2UCCQCfCAEFE2JvdHNEYWlseVRvdGFsU3RvcmUFDmJvdHNEYWlseUxpbWl0BAhuZXdMaW1pdAkAZQIFBWxpbWl0BQZhbW91bnQDCQBmAgAABQhuZXdMaW1pdAkAAgECCW5vdCBmb3VuZAkAzAgCCQEMSW50ZWdlckVudHJ5AgUTYm90c0RhaWx5VG90YWxTdG9yZQUIbmV3TGltaXQFA2NtZAUDY21kCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBC3Vuc3Rha2VGcm9tAgdhZGRyZXNzCXB3ckFtb3VudAQBYQkBB2FsbG93ZWQBAgt1bnN0YWtlRnJvbQMJAAACBQFhBQFhBAlwYXlvdXRBZHIJAKUIAQgFAWkGY2FsbGVyAwkBASEBCQEIY29udGFpbnMCBQ1tYWluQWRkcmVzc2VzBQlwYXlvdXRBZHIJAAIBAgZkZW5pZWQJAQ51bnN0YWtlRnJvbUludAMFB2FkZHJlc3MFCXBheW91dEFkcgUJcHdyQW1vdW50CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBCnVzZXJTaGFyZXMBB2FkZHJlc3MJAJQKAgUDbmlsCQEGc2hhcmVzAQUHYWRkcmVzcwFpAQl1c2VyUG93ZXIBB2FkZHJlc3MJAJQKAgUDbmlsCQEGc3Rha2VkAQUHYWRkcmVzcwFpAQp0b3RhbFBvd2VyAAkAlAoCBQNuaWwFDWN1cnJlbnRTdGFrZWQBaQELdG90YWxTaGFyZXMACQCUCgIFA25pbAkBC3ZhbHVlT3JFbHNlAgkAnwgBBRB0b3RhbFNoYXJlc1N0b3JlAAABaQEEaW5pdAEEY29uZgkAzAgCCQEQd3JpdGVDb25zdFN0cmluZwIFEmNvbmZpZ0FkZHJlc3NTdG9yZQUEY29uZgUDbmlsAQJ0eAEGdmVyaWZ5AAQIYnlWb3RpbmcKAQ5vcEFsbG93ZWRTdG9yZQECb3AJAKwCAgkArAICAgNvcF8FAm9wAghfYWxsb3dlZAQHZW5hYmxlZAkBC3ZhbHVlT3JFbHNlAgkAmwgCBQ1jb25maWdBZGRyZXNzCQEOb3BBbGxvd2VkU3RvcmUBAhNnb3Zlcm5hbmNlX2FwcGx5X3R4BgMJAQEhAQUHZW5hYmxlZAkAAgECK3R4IGFwcGxpY2F0aW9uIHRocm93IGdvdmVybmFuY2Ugbm90IGVuYWJsZWQEAmlkCQDYBAEIBQJ0eAJpZAQNdm90aW5nUmVzdWx0cwkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQ1jb25maWdBZGRyZXNzAhZjb250cmFjdF92b3RpbmdfcmVzdWx0AiJzdGFraW5nOiBubyBjb250cmFjdF92b3RpbmdfcmVzdWx0Ah5pbnZhbGlkIGNvbnRyYWN0X3ZvdGluZ19yZXN1bHQJAGcCBQZIRUlHSFQJARFAZXh0ck5hdGl2ZSgxMDUwKQIFDXZvdGluZ1Jlc3VsdHMJAKwCAgkArAICCQCsAgICGXByb3Bvc2FsX2FsbG93X2Jyb2FkY2FzdF8JAKUIAQUEdGhpcwIBXwUCaWQDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAACAUCdHgPc2VuZGVyUHVibGljS2V5BgUIYnlWb3RpbmckFxms", "chainId": 87, "height": 3876739, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 6F1cZQuz4AZCDaF2XJNSTjrZXXRtfJmtexfcnL4uZpUe Next: none Diff:
OldNewDifferences
282282 func init (aw) = [a(f, aw)]
283283
284284
285+@Verifier(ax)
286+func ay () = {
287+ let az = {
288+ func aA (i) = (("op_" + i) + "_allowed")
289+
290+ let aB = valueOrElse(getBoolean(g, aA("governance_apply_tx")), true)
291+ if (!(aB))
292+ then throw("tx application throw governance not enabled")
293+ else {
294+ let aC = toBase58String(ax.id)
295+ let aD = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(g, "contract_voting_result"), "staking: no contract_voting_result")), "invalid contract_voting_result")
296+ (z >= getIntegerValue(aD, ((("proposal_allow_broadcast_" + toString(this)) + "_") + aC)))
297+ }
298+ }
299+ if (sigVerify(ax.bodyBytes, ax.proofs[0], ax.senderPublicKey))
300+ then true
301+ else az
302+ }
303+
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func a (b,c) = if (!(isDefined(getString(this, b))))
55 then StringEntry(b, c)
66 else throw(("already initialized: " + b))
77
88
99 func d (b,c) = if ((0 > c))
1010 then throw(((("writing negative value " + toString(c)) + " for key ") + b))
1111 else IntegerEntry(b, c)
1212
1313
1414 func e (b,c) = d(b, (valueOrElse(getInteger(this, b), 0) + c))
1515
1616
1717 let f = "config"
1818
1919 let g = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(this, f), "staking: config address not found")), "invalid config address")
2020
2121 func h (i) = invoke(g, "opAllowed", [i], nil)
2222
2323
2424 let j = valueOrErrorMessage(getString(g, "powerAssetId"), "pwr asset id not found")
2525
2626 let k = fromBase58String(j)
2727
2828 let l = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(g, "contract_minter"), "no contract_minter")), "invalid minter contract")
2929
3030 let m = valueOrElse(getString(g, "main_addresses"), "")
3131
3232 let n = valueOrErrorMessage(getInteger(g, (toString(this) + "_min_lock_time")), "min_lock_time not set")
3333
3434 func o (p) = (p + "_shares")
3535
3636
3737 func q (r) = (r + "_height")
3838
3939
4040 func s (r) = (r + "_lock")
4141
4242
4343 func t (u) = valueOrErrorMessage(getInteger(this, q(o(u))), "no stake height")
4444
4545
4646 func v (u) = valueOrElse(getInteger(this, s(o(u))), 0)
4747
4848
4949 func w (u) = (v(u) + n)
5050
5151
5252 func x (u) = (t(u) + n)
5353
5454
5555 let y = valueOrElse(getString(g, (toString(this) + "_slashers")), "")
5656
5757 let z = height
5858
5959 let A = "stakedHeight"
6060
6161 let B = "totalShares"
6262
6363 let C = "staked"
6464
6565 let D = 10000000000000000
6666
6767 let E = valueOrErrorMessage(getInteger(g, (toString(this) + "_staker_apr")), "no staker_apr")
6868
6969 let F = ((365 * 24) * 60)
7070
7171 let G = fraction(E, D, (1000 * F))
7272
7373 let H = valueOrElse(getInteger(this, C), 0)
7474
7575 let I = {
7676 let J = valueOrElse(getInteger(this, A), 0)
7777 let K = (z - J)
7878 let L = (D + (K * G))
7979 fraction(H, L, D)
8080 }
8181
8282 func M (N) = {
8383 let O = valueOrElse(getInteger(this, B), 0)
8484 if ((O == 0))
8585 then N
8686 else fraction(N, O, I)
8787 }
8888
8989
9090 func P (Q) = {
9191 let O = valueOrElse(getInteger(this, B), 0)
9292 if ((O == 0))
9393 then Q
9494 else fraction(Q, I, O)
9595 }
9696
9797
9898 func R (S) = {
9999 let T = assetBalance(this, k)
100100 if ((S > T))
101101 then {
102102 let U = invoke(l, "mint", [(S - T)], nil)
103103 if ((U == U))
104104 then nil
105105 else throw("Strict value is not equal to itself.")
106106 }
107107 else nil
108108 }
109109
110110
111111 func V (p,S) = {
112112 let W = R(S)
113113 if ((W == W))
114114 then ScriptTransfer(addressFromStringValue(p), S, k)
115115 else throw("Strict value is not equal to itself.")
116116 }
117117
118118
119119 func X (u) = valueOrElse(getInteger(this, o(u)), 0)
120120
121121
122122 func Y (u) = P(X(u))
123123
124124
125125 func Z () = {
126126 let O = valueOrElse(getInteger(this, B), 0)
127127 let aa = P(O)
128128 ((((("height: " + toString(z)) + ", totalStaked: ") + toString(aa)) + ", totalShares: ") + toString(O))
129129 }
130130
131131
132132 func ab (p) = {
133133 let ac = X(p)
134134 let ad = P(ac)
135135 let ae = ((("height: " + toString(z)) + ", account: ") + p)
136136 if ((ac == 0))
137137 then ((((ae + ", staked: 0") + ", voting_power: 0") + ", stake_height: -1") + ", unstake_height: -1")
138138 else ((((((((ae + ", staked: ") + toString(ad)) + ", voting_power: ") + toString(ac)) + ", stake_height: ") + toString(t(p))) + ", unstake_height: ") + toString(max([x(p), w(p)])))
139139 }
140140
141141
142142 func af (u,ag) = if ((ag.assetId != k))
143143 then throw("invalid asset id")
144144 else {
145145 let ah = ag.amount
146146 let Q = M(ah)
147147 [d(C, (I + ah)), d(A, z), e(B, Q), e(o(u), Q), IntegerEntry(q(o(u)), z)]
148148 }
149149
150150
151151 func ai (u,aj,N) = {
152152 let ac = X(u)
153153 if ((ac == 0))
154154 then throw("nothing to unstake")
155155 else {
156156 let ak = P(ac)
157157 let S = if ((N == -1))
158158 then ak
159159 else N
160160 if ((0 > S))
161161 then throw("cannot unstake negative amount")
162162 else if ((S > ak))
163163 then throw("cannot unstake more than you have")
164164 else {
165165 let Q = min([M(S), ac])
166166 if ((Q == 0))
167167 then throw("cannot unstake 0 shares")
168168 else $Tuple2([d(C, (I - S)), d(A, z), e(B, -(Q)), e(o(u), -(Q)), V(aj, S)], S)
169169 }
170170 }
171171 }
172172
173173
174174 let al = valueOrErrorMessage(addressFromString(valueOrElse(getString(g, "twitter_airdrop"), "3PN2vcpyjABTCMvPpkkpatBQPan9dUM8dib")), "invalid twitter_airdrop address")
175175
176176 let am = ("bots_daily_limit_" + toString(fraction(z, 1, 1440)))
177177
178178 let an = valueOrElse(getInteger(this, "bots_daily_limit"), 1000000000)
179179
180180 @Callable(ao)
181181 func stake () = {
182182 let ap = h("stake")
183183 if ((ap == ap))
184184 then af(toString(ao.caller), ao.payments[0])
185185 else throw("Strict value is not equal to itself.")
186186 }
187187
188188
189189
190190 @Callable(ao)
191191 func stakeFor (u) = {
192192 let ap = h("stakeFor")
193193 if ((ap == ap))
194194 then if (if ((u != toString(ao.originCaller)))
195195 then !(contains(m, toString(ao.caller)))
196196 else false)
197197 then throw("stakeFor denied")
198198 else af(u, ao.payments[0])
199199 else throw("Strict value is not equal to itself.")
200200 }
201201
202202
203203
204204 @Callable(ao)
205205 func restakeFor (u) = {
206206 let ap = h("restakeFor")
207207 if ((ap == ap))
208208 then if (!(contains(m, toString(ao.caller))))
209209 then throw("denied")
210210 else [IntegerEntry(s(o(u)), z)]
211211 else throw("Strict value is not equal to itself.")
212212 }
213213
214214
215215
216216 @Callable(ao)
217217 func unstake (N) = {
218218 let ap = h("unstake")
219219 if ((ap == ap))
220220 then {
221221 let aq = toString(ao.caller)
222222 if ((x(aq) > z))
223223 then throw("still locked in staking")
224224 else if ((w(aq) > z))
225225 then throw("still locked in voting")
226226 else {
227227 let ar = ai(aq, aq, N)
228228 let as = ar._1
229229 let S = ar._2
230230 if (isDefined(getInteger(al, (aq + "_claimed"))))
231231 then {
232232 let at = valueOrElse(getInteger(am), an)
233233 let au = (at - S)
234234 if ((0 > au))
235235 then throw("not found")
236236 else IntegerEntry(am, au) :: as
237237 }
238238 else as
239239 }
240240 }
241241 else throw("Strict value is not equal to itself.")
242242 }
243243
244244
245245
246246 @Callable(ao)
247247 func unstakeFrom (u,N) = {
248248 let ap = h("unstakeFrom")
249249 if ((ap == ap))
250250 then {
251251 let av = toString(ao.caller)
252252 if (!(contains(m, av)))
253253 then throw("denied")
254254 else ai(u, av, N)
255255 }
256256 else throw("Strict value is not equal to itself.")
257257 }
258258
259259
260260
261261 @Callable(ao)
262262 func userShares (u) = $Tuple2(nil, X(u))
263263
264264
265265
266266 @Callable(ao)
267267 func userPower (u) = $Tuple2(nil, Y(u))
268268
269269
270270
271271 @Callable(ao)
272272 func totalPower () = $Tuple2(nil, I)
273273
274274
275275
276276 @Callable(ao)
277277 func totalShares () = $Tuple2(nil, valueOrElse(getInteger(B), 0))
278278
279279
280280
281281 @Callable(ao)
282282 func init (aw) = [a(f, aw)]
283283
284284
285+@Verifier(ax)
286+func ay () = {
287+ let az = {
288+ func aA (i) = (("op_" + i) + "_allowed")
289+
290+ let aB = valueOrElse(getBoolean(g, aA("governance_apply_tx")), true)
291+ if (!(aB))
292+ then throw("tx application throw governance not enabled")
293+ else {
294+ let aC = toBase58String(ax.id)
295+ let aD = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(g, "contract_voting_result"), "staking: no contract_voting_result")), "invalid contract_voting_result")
296+ (z >= getIntegerValue(aD, ((("proposal_allow_broadcast_" + toString(this)) + "_") + aC)))
297+ }
298+ }
299+ if (sigVerify(ax.bodyBytes, ax.proofs[0], ax.senderPublicKey))
300+ then true
301+ else az
302+ }
303+

github/deemru/w8io/3ef1775 
45.03 ms