tx · H1K2u4rQ2pRmD3uGHNEUoJimbdsBVXhfL6seYoYTnzkv

3Mp3nG9T5fKGziHW8mcCqx3jMFx3towh3WA:  -0.02100000 Waves

2022.12.09 14:18 [2352704] smart account 3Mp3nG9T5fKGziHW8mcCqx3jMFx3towh3WA > SELF 0.00000000 Waves

{ "type": 13, "id": "H1K2u4rQ2pRmD3uGHNEUoJimbdsBVXhfL6seYoYTnzkv", "fee": 2100000, "feeAssetId": null, "timestamp": 1670584711514, "version": 1, "sender": "3Mp3nG9T5fKGziHW8mcCqx3jMFx3towh3WA", "senderPublicKey": "D46gQxzmdzdCTYRg6dMcwFoUrc6ZmxF6GKd5ZoTkvzp1", "proofs": [ "4xMHEzXi2M7ywA4VDodDUFaev7UN4Mv8FvUAeBzr2WnkbQNF1PvFZfR5ssPh7FpFSpJiDp97JCVqCSsj5frwkb5g" ], "script": "base64:BgLFEwgCEgMKAQgSABIECgIIARIHCgUICAgIARIECgIICBIFCgMICAESBAoCCAgSAwoBARIDCgEBEgQKAggIEgQKAggEEgASAwoBARIAEgQKAggIEgQKAggIEgQKAggIIglzZXBhcmF0b3IiDnBvb2xXZWlnaHRNdWx0Ig9tYXhEZXB0aERlZmF1bHQiFmZpbmFsaXphdGlvblN0YWdlVG90YWwiF2ZpbmFsaXphdGlvblN0YWdlU2hhcmVzIg5rZXlFcG9jaExlbmd0aCIPa2V5Q3VycmVudEVwb2NoIgtrZXlNYXhEZXB0aCIia2V5Vm90aW5nRW1pc3Npb25DYW5kaWRhdGVDb250cmFjdCISa2V5RmFjdG9yeUNvbnRyYWN0IhNrZXlCb29zdGluZ0NvbnRyYWN0IhJrZXlTdGFraW5nQ29udHJhY3QiFGtleUZpbmFsaXphdGlvblN0YWdlIgtrZXlOZXh0UG9vbCILa2V5TmV4dFVzZXIiDmtleVN0YXJ0SGVpZ2h0IhFrZXlDdXJyZW50RXBvY2hVaSIQa2V5U3RhcnRIZWlnaHRVaSIda2V5RmluYWxpemF0aW9uU2hvdWxkQmVGb3JjZWQiFWtleVN0YXJ0SGVpZ2h0QnlFcG9jaCIFZXBvY2giDGtleUZpbmFsaXplZCIJa2V5SW5MaXN0IgRwb29sIgskdDAxNTExMTU1MSINYW1vdW50QXNzZXRJZCIMcHJpY2VBc3NldElkIgdrZXlVc2VkIgdhZGRyZXNzIgdrZXlWb3RlIgskdDAxODI1MTg2NSIPa2V5Vm90aW5nUmVzdWx0IgskdDAyMDQ3MjA4NyIMa2V5UG9vbFNoYXJlIgskdDAyMjUyMjI5MiINa2V5VG90YWxWb3RlcyIOZ2V0VmFsdWVPckZhaWwiA2tleSIEdHlwZSIFZXJyb3IiByRtYXRjaDAiA3N0ciIDaW50IgxnZXRTdHJPckZhaWwiAUAiDGdldEludE9yRmFpbCIMcG9vbFRvU3RyaW5nIgxzdHJpbmdUb1Bvb2wiBXBhcnRzIhZnZXRMcEFzc2V0QnlQb29sQXNzZXRzIh9rZXlNYXBwaW5nc0Jhc2VBc3NldDJpbnRlcm5hbElkIgxiYXNlQXNzZXRTdHIiKWtleU1hcHBpbmdQb29sQXNzZXRzVG9Qb29sQ29udHJhY3RBZGRyZXNzIhhpbnRlcm5hbEFtb3VudEFzc2V0SWRTdHIiF2ludGVybmFsUHJpY2VBc3NldElkU3RyIh9rZXlNYXBwaW5nUG9vbENvbnRyYWN0VG9MUEFzc2V0IhNwb29sQ29udHJhY3RBZGRyZXNzIg9mYWN0b3J5Q29udHJhY3QiFWFtb3VudEFzc2V0SW50ZXJuYWxJZCIUcHJpY2VBc3NldEludGVybmFsSWQiCWxwQXNzZXRJZCIYY2hlY2tXeEVtaXNzaW9uUG9vbExhYmVsIgskdDA0NTM0NDU3NCINcG9vbHNMaXN0TmFtZSIQZ2V0Vm90ZXNMaXN0TmFtZSILJHQwNDg3NTQ5MTUiC2tleUxpc3RIZWFkIghsaXN0TmFtZSIEbWV0YSILa2V5TGlzdFNpemUiC2tleUxpc3RQcmV2IgJpZCILa2V5TGlzdE5leHQiDGNvbnRhaW5zTm9kZSIKaGVhZE9yVW5pdCIKcHJldk9yVW5pdCIKbmV4dE9yVW5pdCIRaW5zZXJ0Tm9kZUFjdGlvbnMiCGxpc3RTaXplIgljaGVja05vZGUiEWRlbGV0ZU5vZGVBY3Rpb25zIhNrZXlNYW5hZ2VyUHVibGljS2V5IhprZXlQZW5kaW5nTWFuYWdlclB1YmxpY0tleSIWbWFuYWdlclB1YmxpY0tleU9yVW5pdCIBcyIdcGVuZGluZ01hbmFnZXJQdWJsaWNLZXlPclVuaXQiFXBlcm1pc3Npb25EZW5pZWRFcnJvciIIbXVzdFRoaXMiAWkiC211c3RNYW5hZ2VyIgJwayIXcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkiC2NoZWNrQ2FsbGVyIhVjaGVja01hbmFnZXJQdWJsaWNLZXkiAnBtIgVoYXNQTSIHY2hlY2tQTSILdXNlckFkZHJlc3MiDHRhcmdldEhlaWdodCIXYm9vc3RpbmdDb250cmFjdEFkZHJlc3MiH3ZvdGluZ0VtaXNzaW9uQ2FuZGlkYXRlQ29udHJhY3QiEGJvb3N0aW5nQ29udHJhY3QiD3N0YWtpbmdDb250cmFjdCILZXBvY2hMZW5ndGgiBmNoZWNrcyINaW5MaXN0QWN0aW9ucyIYY3VycmVudEVwb2NoSXNOb3REZWZpbmVkIhJzdGFydEhlaWdodEFjdGlvbnMiBmFtb3VudCILc3RhcnRIZWlnaHQiCWVuZEhlaWdodCIXZmluYWxpemF0aW9uU3RhZ2VPclVuaXQiBHVzZWQiBHZvdGUiCnBvb2xSZXN1bHQiCnRvdGFsVm90ZXMiE2d3eEFtb3VudEF0RW5kVG90YWwiCWF2YWlsYWJsZSIHbmV3Vm90ZSIKd3hFbWlzc2lvbiINdm90ZXNMaXN0TmFtZSIOdXNlckFkZHJlc3NTdHIiEHZvdGVzTGlzdEFjdGlvbnMiDm5ld0Vwb2NoTGVuZ3RoIgtuZXdNYXhEZXB0aCIHcG9vbFN0ciINZXBvY2hQcmV2aW91cyITc3RhcnRIZWlnaHRQcmV2aW91cyIRZW5kSGVpZ2h0UHJldmlvdXMiEGNoZWNrVGFyZ2V0RXBvY2giDSR0MDE3MjcwMTczMTAiG2d3eEFtb3VudEF0RW5kVG90YWxQcmV2aW91cyIMdm90aW5nUmVzdWx0Igx2b3RlUHJldmlvdXMiB2FjdGlvbnMiBWZvcmNlIgt0YXJnZXRFcG9jaCIMY3VycmVudEVwb2NoIg0kdDAxOTAzNjE5MDc2IgFyIgVzaGFyZSIPbW9kaWZ5V2VpZ2h0SW52IhBwb29sc0xpc3RBY3Rpb25zIg1wcmV2aW91c0Vwb2NoIghuZXdFcG9jaCIKcG9vbE9yVW5pdCIKdXNlck9yVW5pdCIHJG1hdGNoMSIMcG9vbHNIZWFkU3RyIg5uZXh0VXNlck9yVW5pdCIEdXNlciIEbmV4dCIOcHJvY2Vzc1ZvdGVJbnYiDm5leHRQb29sT3JVbml0IgckbWF0Y2gyIghuZXh0VXNlciILbmV4dFBvb2xTdHIiB2NvdW50ZXIiBnJlc3VsdCIIbWF4RGVwdGgiA2ludiICdHgiBnZlcmlmeSIPdGFyZ2V0UHVibGljS2V5MgABYQICX18AAWIAgMLXLwABYwAKAAFkAAAAAWUAAQABZgkAuQkCCQDMCAICAiVzCQDMCAICC2Vwb2NoTGVuZ3RoBQNuaWwFAWEAAWcJALkJAgkAzAgCAgIlcwkAzAgCAgxjdXJyZW50RXBvY2gFA25pbAUBYQABaAkAuQkCCQDMCAICAiVzCQDMCAICCG1heERlcHRoBQNuaWwFAWEAAWkJALkJAgkAzAgCAgIlcwkAzAgCAh92b3RpbmdFbWlzc2lvbkNhbmRpZGF0ZUNvbnRyYWN0BQNuaWwFAWEAAWoJALkJAgkAzAgCAgIlcwkAzAgCAg9mYWN0b3J5Q29udHJhY3QFA25pbAUBYQABawkAuQkCCQDMCAICAiVzCQDMCAICEGJvb3N0aW5nQ29udHJhY3QFA25pbAUBYQABbAkAuQkCCQDMCAICAiVzCQDMCAICD3N0YWtpbmdDb250cmFjdAUDbmlsBQFhAAFtCQC5CQIJAMwIAgICJXMJAMwIAgIRZmluYWxpemF0aW9uU3RhZ2UFA25pbAUBYQABbgkAuQkCCQDMCAICAiVzCQDMCAICCG5leHRQb29sBQNuaWwFAWEAAW8JALkJAgkAzAgCAgIlcwkAzAgCAghuZXh0VXNlcgUDbmlsBQFhAAFwCQC5CQIJAMwIAgICJXMJAMwIAgILc3RhcnRIZWlnaHQFA25pbAUBYQABcQkAuQkCCQDMCAICAiVzCQDMCAICDmN1cnJlbnRFcG9jaFVpBQNuaWwFAWEAAXIJALkJAgkAzAgCAgIlcwkAzAgCAg1zdGFydEhlaWdodFVpBQNuaWwFAWEAAXMJALkJAgkAzAgCAgIlcwkAzAgCAgVmb3JjZQUDbmlsBQFhAQF0AQF1CQC5CQIJAMwIAgIEJXMlZAkAzAgCAgtzdGFydEhlaWdodAkAzAgCCQCkAwEFAXUFA25pbAUBYQEBdgEBdQkAuQkCCQDMCAICBCVzJWQJAMwIAgIJZmluYWxpemVkCQDMCAIJAKQDAQUBdQUDbmlsBQFhAQF3AQF4BAF5BQF4BAF6CAUBeQJfMQQBQQgFAXkCXzIJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgIGaW5MaXN0CQDMCAIFAXoJAMwIAgUBQQUDbmlsBQFhAQFCAgFDAXUJALkJAgkAzAgCAgYlcyVzJWQJAMwIAgIEdXNlZAkAzAgCCQClCAEFAUMJAMwIAgkApAMBBQF1BQNuaWwFAWEBAUQDAXgBQwF1BAFFBQF4BAF6CAUBRQJfMQQBQQgFAUUCXzIJALkJAgkAzAgCAgolcyVzJXMlcyVkCQDMCAICBHZvdGUJAMwIAgUBegkAzAgCBQFBCQDMCAIJAKUIAQUBQwkAzAgCCQCkAwEFAXUFA25pbAUBYQEBRgIBeAF1BAFHBQF4BAF6CAUBRwJfMQQBQQgFAUcCXzIJALkJAgkAzAgCAgglcyVzJXMlZAkAzAgCAgx2b3RpbmdSZXN1bHQJAMwIAgUBegkAzAgCBQFBCQDMCAIJAKQDAQUBdQUDbmlsBQFhAQFIAgF4AXUEAUkFAXgEAXoIBQFJAl8xBAFBCAUBSQJfMgkAuQkCCQDMCAICCCVzJXMlcyVkCQDMCAICCXBvb2xTaGFyZQkAzAgCBQF6CQDMCAIFAUEJAMwIAgkApAMBBQF1BQNuaWwFAWEBAUoBAXUJALkJAgkAzAgCAgQlcyVkCQDMCAICCnRvdGFsVm90ZXMJAMwIAgkApAMBBQF1BQNuaWwFAWEBAUsDAUMBTAFNBAFOCQC5CQIJAMwIAgIKbWFuZGF0b3J5IAkAzAgCCQClCAEFAUMJAMwIAgIBLgkAzAgCBQFMCQDMCAICDyBpcyBub3QgZGVmaW5lZAUDbmlsAgAJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgQBTwUBTQMJAAECBQFPAgZTdHJpbmcEAVAFAU8JAJ0IAgUBQwUBTAMJAAECBQFPAgNJbnQEAVEFAU8JAJoIAgUBQwUBTAkAAgECEmludmFsaWQgZW50cnkgdHlwZQUBTgEBUgIBQwFMCgABUwkBAUsDBQFDBQFMAgADCQABAgUBUwIGU3RyaW5nBQFTCQACAQkArAICCQADAQUBUwIbIGNvdWxkbid0IGJlIGNhc3QgdG8gU3RyaW5nAQFUAgFDAUwKAAFTCQEBSwMFAUMFAUwAAAMJAAECBQFTAgNJbnQFAVMJAAIBCQCsAgIJAAMBBQFTAhggY291bGRuJ3QgYmUgY2FzdCB0byBJbnQBAVUBAXgJAKwCAgkArAICCAUBeAJfMQUBYQgFAXgCXzIBAVYBAVAEAVcJALUJAgUBUAUBYQMJAAACCQCQAwEFAVcAAgkAlAoCCQCRAwIFAVcAAAkAkQMCBQFXAAEJAAIBAhNpbnZhbGlkIHBvb2wgc3RyaW5nAQFYAgF6AUEKAQFZAQFaCQCsAgICKCVzJXMlc19fbWFwcGluZ3NfX2Jhc2VBc3NldDJpbnRlcm5hbElkX18FAVoKAQJhYQICYWICYWMJAKwCAgkArAICCQCsAgIJAKwCAgIKJWQlZCVzJXNfXwkApAMBBQJhYgICX18JAKQDAQUCYWMCI19fbWFwcGluZ3NfX3Bvb2xBc3NldHMyUG9vbENvbnRyYWN0CgECYWQBAmFlCQCsAgIJAKwCAgIIJXMlcyVzX18FAmFlAiBfX21hcHBpbmdzX19wb29sQ29udHJhY3QyTHBBc3NldAQCYWYJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQFSAgUEdGhpcwUBagQCYWcJAQFUAgUCYWYJAQFZAQUBegQCYWgJAQFUAgUCYWYJAQFZAQUBQQQCYWUJAQFSAgUCYWYJAQJhYQIFAmFnBQJhaAQCYWkJAQFSAgUCYWYJAQJhZAEFAmFlBQJhaQECYWoBAXgEAmFrBQF4BAF6CAUCYWsCXzEEAUEIBQJhawJfMgQCYWYJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQFSAgUEdGhpcwUBagoAAVMJAPwHBAUCYWYCGGNoZWNrV3hFbWlzc2lvblBvb2xMYWJlbAkAzAgCBQF6CQDMCAIFAUEFA25pbAUDbmlsAwkAAQIFAVMCB0Jvb2xlYW4FAVMJAAIBCQCsAgIJAAMBBQFTAhwgY291bGRuJ3QgYmUgY2FzdCB0byBCb29sZWFuAAJhbAIFcG9vbHMBAmFtAQF4BAJhbgUBeAQBeggFAmFuAl8xBAFBCAUCYW4CXzIJALkJAgkAzAgCAgV2b3RlcwkAzAgCBQF6CQDMCAIFAUEFA25pbAUBYQECYW8BAmFwBAJhcQMJAAACBQJhcAUCYWwCBCVzJXMCCCVzJXMlcyVzCQC5CQIJAMwIAgUCYXEJAMwIAgUCYXAJAMwIAgIEaGVhZAUDbmlsBQFhAQJhcgECYXAEAmFxAwkAAAIFAmFwBQJhbAIEJXMlcwIIJXMlcyVzJXMJALkJAgkAzAgCBQJhcQkAzAgCBQJhcAkAzAgCAgRzaXplBQNuaWwFAWEBAmFzAgJhcAJhdAQCYXEDCQAAAgUCYXAFAmFsAgglcyVzJXMlcwIKJXMlcyVzJXMlcwkAuQkCCQDMCAIFAmFxCQDMCAIFAmFwCQDMCAIFAmF0CQDMCAICBHByZXYFA25pbAUBYQECYXUCAmFwAmF0BAJhcQMJAAACBQJhcAUCYWwCCCVzJXMlcyVzAgolcyVzJXMlcyVzCQC5CQIJAMwIAgUCYXEJAMwIAgUCYXAJAMwIAgUCYXQJAMwIAgIEbmV4dAUDbmlsBQFhAQJhdgICYXACYXQEAmF3CQCdCAIFBHRoaXMJAQJhbwEFAmFwBAJheAkAnQgCBQR0aGlzCQECYXMCBQJhcAUCYXQEAmF5CQCdCAIFBHRoaXMJAQJhdQIFAmFwBQJhdAMDCQAAAgUCYXQJAQt2YWx1ZU9yRWxzZQIFAmF3AgAGCQECIT0CBQJheAUEdW5pdAYJAQIhPQIFAmF5BQR1bml0AQJhegICYXACYXQEAmF3CQCdCAIFBHRoaXMJAQJhbwEFAmFwBAJhQQkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQECYXIBBQJhcAAABAJhQgMJAQEhAQkBAmF2AgUCYXAFAmF0BgkAAgECC05vZGUgZXhpc3RzAwkAAAIFAmFCBQJhQgkAzggCCQDOCAIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhcgEFAmFwCQBkAgUCYUEAAQUDbmlsAwkBAiE9AgUCYXcFBHVuaXQJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmF1AgUCYXAFAmF0CQEFdmFsdWUBBQJhdwkAzAgCCQELU3RyaW5nRW50cnkCCQECYXMCBQJhcAkBBXZhbHVlAQUCYXcFAmF0BQNuaWwFA25pbAkAzAgCCQELU3RyaW5nRW50cnkCCQECYW8BBQJhcAUCYXQFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECYUMCAmFwAmF0BAJhdwkAnQgCBQR0aGlzCQECYW8BBQJhcAQCYUEJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBAmFyAQUCYXAAAAQCYXgJAJ0IAgUEdGhpcwkBAmFzAgUCYXAFAmF0BAJheQkAnQgCBQR0aGlzCQECYXUCBQJhcAUCYXQJAM4IAgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFyAQUCYXAJAGUCBQJhQQABBQNuaWwDAwkBAiE9AgUCYXgFBHVuaXQJAQIhPQIFAmF5BQR1bml0BwkAzAgCCQELU3RyaW5nRW50cnkCCQECYXUCBQJhcAkBBXZhbHVlAQUCYXgJAQV2YWx1ZQEFAmF5CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhcwIFAmFwCQEFdmFsdWUBBQJheQkBBXZhbHVlAQUCYXgJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAmFzAgUCYXAFAmF0CQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhdQIFAmFwBQJhdAUDbmlsAwkBAiE9AgUCYXkFBHVuaXQJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFvAQUCYXAJAQV2YWx1ZQEFAmF5CQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhdQIFAmFwBQJhdAkAzAgCCQELRGVsZXRlRW50cnkBCQECYXMCBQJhcAkBBXZhbHVlAQUCYXkFA25pbAMJAQIhPQIFAmF4BQR1bml0CQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhcwIFAmFwBQJhdAkAzAgCCQELRGVsZXRlRW50cnkBCQECYXUCBQJhcAkBBXZhbHVlAQUCYXgFA25pbAMJAAACBQJhdAkBC3ZhbHVlT3JFbHNlAgUCYXcCAAkAzAgCCQELRGVsZXRlRW50cnkBCQECYW8BBQJhcAUDbmlsCQACAQkArAICCQCsAgIJAKwCAgIOaW52YWxpZCBub2RlOiAFAmFwAgEuBQJhdAECYUQAAhQlc19fbWFuYWdlclB1YmxpY0tleQECYUUAAhslc19fcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkBAmFGAAQBTwkAoggBCQECYUQAAwkAAQIFAU8CBlN0cmluZwQCYUcFAU8JANkEAQUCYUcDCQABAgUBTwIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yAQJhSAAEAU8JAKIIAQkBAmFFAAMJAAECBQFPAgZTdHJpbmcEAmFHBQFPCQDZBAEFAmFHAwkAAQIFAU8CBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgACYUkJAAIBAhFQZXJtaXNzaW9uIGRlbmllZAECYUoBAmFLAwkAAAIIBQJhSwZjYWxsZXIFBHRoaXMGBQJhSQECYUwBAmFLBAFPCQECYUYAAwkAAQIFAU8CCkJ5dGVWZWN0b3IEAmFNBQFPAwkAAAIIBQJhSw9jYWxsZXJQdWJsaWNLZXkFAmFNBgUCYUkDCQABAgUBTwIEVW5pdAkBAmFKAQUCYUsJAAIBAgtNYXRjaCBlcnJvchECYUsBCnNldE1hbmFnZXIBAmFOBAJhTwkBAmFMAQUCYUsDCQAAAgUCYU8FAmFPBAJhUAkA2QQBBQJhTgMJAAACBQJhUAUCYVAJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFFAAUCYU4FA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJhSwEOY29uZmlybU1hbmFnZXIABAJhUQkBAmFIAAQCYVIDCQEJaXNEZWZpbmVkAQUCYVEGCQACAQISTm8gcGVuZGluZyBtYW5hZ2VyAwkAAAIFAmFSBQJhUgQCYVMDCQAAAggFAmFLD2NhbGxlclB1YmxpY0tleQkBBXZhbHVlAQUCYVEGCQACAQIbWW91IGFyZSBub3QgcGVuZGluZyBtYW5hZ2VyAwkAAAIFAmFTBQJhUwkAzAgCCQELU3RyaW5nRW50cnkCCQECYUQACQDYBAEJAQV2YWx1ZQEFAmFRCQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhRQAFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJhSwEYZ2V0VXNlckd3eEFtb3VudEF0SGVpZ2h0AgJhVAJhVQQCYVYJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQEBUgIFBHRoaXMFAWsCIWludmFsaWQgYm9vc3RpbmcgY29udHJhY3QgYWRkcmVzcwkAlAoCBQNuaWwKAAFTCQD8BwQFAmFWAiBnZXRVc2VyR3d4QW1vdW50QXRIZWlnaHRSRUFET05MWQkAzAgCBQJhVAkAzAgCBQJhVQUDbmlsBQNuaWwDCQABAgUBUwIDSW50BQFTCQACAQkArAICCQADAQUBUwIYIGNvdWxkbid0IGJlIGNhc3QgdG8gSW50AmFLAQtjb25zdHJ1Y3RvcgUCYWYCYVcCYVgCYVkCYVoEAmJhCQDMCAIJAQJhTAEFAmFLCQDMCAIDCQECIT0CCQCmCAEFAmFmBQR1bml0BgIgaW52YWxpZCBmYWN0b3J5IGNvbnRyYWN0IGFkZHJlc3MJAMwIAgMJAQIhPQIJAKYIAQUCYVcFBHVuaXQGAjJpbnZhbGlkIHZvdGluZyBlbWlzc2lvbiBjYW5kaWRhdGUgY29udHJhY3QgYWRkcmVzcwkAzAgCAwkBAiE9AgkApggBBQJhWAUEdW5pdAYCIWludmFsaWQgYm9vc3RpbmcgY29udHJhY3QgYWRkcmVzcwkAzAgCAwkBAiE9AgkApggBBQJhWQUEdW5pdAYCIGludmFsaWQgc3Rha2luZyBjb250cmFjdCBhZGRyZXNzCQDMCAIDCQBmAgUCYVoAAAYJAAIBAhRpbnZhbGlkIGVwb2NoIGxlbmd0aAUDbmlsAwkAAAIFAmJhBQJiYQkAlAoCCQDMCAIJAQtTdHJpbmdFbnRyeQIFAWoFAmFmCQDMCAIJAQtTdHJpbmdFbnRyeQIFAWkFAmFXCQDMCAIJAQtTdHJpbmdFbnRyeQIFAWsFAmFYCQDMCAIJAQtTdHJpbmdFbnRyeQIFAWwFAmFZCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQFmBQJhWgUDbmlsBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmFLAQZjcmVhdGUCAXoBQQQCYmEJAMwIAgMJAAACCQDYBAEICAUCYUsGY2FsbGVyBWJ5dGVzCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMFAWkCAAYJAQJhTAEFAmFLBQNuaWwDCQAAAgUCYmEFAmJhBAF4CQCUCgIFAXoFAUEEAmJiCQDOCAIJAMwIAgkBDEJvb2xlYW5FbnRyeQIJAQF3AQUBeAYFA25pbAkBAmF6AgUCYWwJAQFVAQUBeAQCYmMJAAACCQCaCAIFBHRoaXMFAWcFBHVuaXQEAmJkAwUCYmMEAXUAAAkAzAgCCQEMSW50ZWdlckVudHJ5AgUBZwUBdQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAXQBBQF1BQZoZWlnaHQJAMwIAgkBDEludGVnZXJFbnRyeQIFAXAFBmhlaWdodAkAzAgCCQEMSW50ZWdlckVudHJ5AgUBcQUBdQkAzAgCCQEMSW50ZWdlckVudHJ5AgUBcgUGaGVpZ2h0BQNuaWwFA25pbAkAlAoCCQDOCAIFAmJiBQJiZAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJhSwEEdm90ZQMBegFBAmJlBAF4CQCUCgIFAXoFAUEEAXUJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUBZwAABAJiZgkBAVQCBQR0aGlzCQEBdAEFAXUEAmFaCQEBVAIFBHRoaXMFAWYEAmJnCQBkAgUCYmYFAmFaBAJiaAkAmggCBQR0aGlzBQFtBAJiaQkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQEBQgIIBQJhSwZjYWxsZXIFAXUAAAQCYmoJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBAUQDBQF4CAUCYUsGY2FsbGVyBQF1AAAEAmJrCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQFGAgUBeAUBdQAABAJibAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQEBSgEFAXUAAAQCYm0KAAFTCQD8BwQFBHRoaXMCGGdldFVzZXJHd3hBbW91bnRBdEhlaWdodAkAzAgCCQDYBAEICAUCYUsGY2FsbGVyBWJ5dGVzCQDMCAIFAmJnBQNuaWwFA25pbAMJAAECBQFTAgNJbnQFAVMJAAIBCQCsAgIJAAMBBQFTAhggY291bGRuJ3QgYmUgY2FzdCB0byBJbnQEAmJuCQBlAgUCYm0FAmJpBAJibwkAZAIFAmJqBQJiZQQCYnAJAQJhagEFAXgEAmJhCQDMCAIDCQECIT0CCQCgCAEJAQF3AQUBeAUEdW5pdAYJAAIBAg5pbnZhbGlkIGFzc2V0cwkAzAgCAwkAZgIFAmJnBQZoZWlnaHQGCQACAQIOaW52YWxpZCBoZWlnaHQJAMwIAgMJAAACBQJiaAUEdW5pdAYJAAIBAhhmaW5hbGl6YXRpb24gaW4gcHJvZ3Jlc3MJAMwIAgMJAGYCBQJibQAABgkAAgECE3lvdSBkbyBub3QgaGF2ZSBnV1gJAMwIAgMDCQBmAgUCYmUAAAkAZwIFAmJuBQJiZQcGCQACAQIOaW52YWxpZCBhbW91bnQJAMwIAgMFAmJwBgkAAgECHXBvb2wgaGFzbid0IFdYX0VNSVNTSU9OIGxhYmVsBQNuaWwDCQAAAgUCYmEFAmJhBAJicQkBAmFtAQUBeAQCYnIJAKUIAQgFAmFLBmNhbGxlcgQCYnMDCQECYXYCBQJicQUCYnIFA25pbAkBAmF6AgUCYnEFAmJyCQCUCgIJAM4IAgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAUICCAUCYUsGY2FsbGVyBQF1CQBkAgUCYmkFAmJlCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBRAMFAXgIBQJhSwZjYWxsZXIFAXUFAmJvCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBRgIFAXgFAXUJAGQCBQJiawUCYmUJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFKAQUBdQkAZAIFAmJsBQJiZQUDbmlsBQJicwUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJhSwEKY2FuY2VsVm90ZQIBegFBBAF4CQCUCgIFAXoFAUEEAXUJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUBZwAABAJiZgkBAVQCBQR0aGlzCQEBdAEFAXUEAmFaCQEBVAIFBHRoaXMFAWYEAmJnCQBkAgUCYmYFAmFaBAJiaAkAmggCBQR0aGlzBQFtBAJiaQkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQEBQgIIBQJhSwZjYWxsZXIFAXUAAAQCYmoJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBAUQDBQF4CAUCYUsGY2FsbGVyBQF1AAAEAmJrCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQFGAgUBeAUBdQAABAJibAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQEBSgEFAXUAAAQCYmEJAMwIAgMJAQIhPQIJAKAIAQkBAXcBBQF4BQR1bml0BgkAAgECDmludmFsaWQgYXNzZXRzCQDMCAIDCQBmAgUCYmcFBmhlaWdodAYJAAIBAg5pbnZhbGlkIGhlaWdodAkAzAgCAwkAAAIFAmJoBQR1bml0BgkAAgECGGZpbmFsaXphdGlvbiBpbiBwcm9ncmVzcwkAzAgCAwkAZgIFAmJqAAAGCQACAQIHbm8gdm90ZQUDbmlsAwkAAAIFAmJhBQJiYQQCYnEJAQJhbQEFAXgEAmJyCQClCAEIBQJhSwZjYWxsZXIJAJQKAgkAzggCCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBQgIIBQJhSwZjYWxsZXIFAXUJAJYDAQkAzAgCCQBlAgUCYmkFAmJqCQDMCAIAAAUDbmlsCQDMCAIJAQtEZWxldGVFbnRyeQEJAQFEAwUBeAgFAmFLBmNhbGxlcgUBdQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAUYCBQF4BQF1CQBlAgUCYmsFAmJqCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBSgEFAXUJAGUCBQJibAUCYmoFA25pbAkBAmFDAgUCYnEFAmJyBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmFLAQ5zZXRFcG9jaExlbmd0aAECYnQEAmJhCQDMCAIJAQJhTAEFAmFLCQDMCAIDCQBmAgUCYnQAAAYJAAIBAhRpbnZhbGlkIGVwb2NoIGxlbmd0aAUDbmlsAwkAAAIFAmJhBQJiYQkAlAoCCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQFmBQJidAUDbmlsBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmFLAQtzZXRNYXhEZXB0aAECYnUEAmJhCQDMCAIJAQJhTAEFAmFLCQDMCAIDCQBmAgUCYnUAAAYJAAIBAhFpbnZhbGlkIG1heCBkZXB0aAUDbmlsAwkAAAIFAmJhBQJiYQkAlAoCCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQFoBQJidQUDbmlsBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmFLARNwcm9jZXNzVm90ZUlOVEVSTkFMAgJidgJicgQCYU8JAQJhSgEFAmFLAwkAAAIFAmFPBQJhTwQCYVQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBBQJicgkArAICAipwcm9jZXNzVm90ZUlOVEVSTkFMOiBpbnZhbGlkIHVzZXIgYWRkcmVzcyAFAmJyBAF1CQEBVAIFBHRoaXMFAWcEAmJ3CQBlAgUBdQABBAJhWgkBAVQCBQR0aGlzBQFmBAJiZgkBAVQCBQR0aGlzCQEBdAEFAXUEAmJnCQBkAgUCYmYFAmFaBAJieAkBAVQCBQR0aGlzCQEBdAEFAmJ3BAJieQkAZAIFAmJ4BQJhWgQCYnoDCQBnAgUCYncAAAYJAAIBAitwcm9jZXNzVm90ZUlOVEVSTkFMOiBpbnZhbGlkIHByZXZpb3VzIGVwb2NoAwkAAAIFAmJ6BQJiegQBeAkBAVYBBQJidgQCYkEFAXgEAXoIBQJiQQJfMQQBQQgFAmJBAl8y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IGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmFLAQ5maW5hbGl6ZUhlbHBlcgAEAmJGCQELdmFsdWVPckVsc2UCCQCgCAEFAXMHBAF1CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFAWcAAAQCYk4JAGUCBQF1AAEEAmJmCQEBVAIFBHRoaXMJAQF0AQUBdQQCYVoJAQFUAgUEdGhpcwUBZgQCYmcJAGQCBQJiZgUCYVoEAmJoCQCaCAIFBHRoaXMFAW0DAwMJAGcCBQZoZWlnaHQFAmJnCQAAAgUCYmgFBHVuaXQHCQEBIQEFAmJGBwQCYk8JAGQCBQF1AAEJAJQKAgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAXQBBQJiTwUGaGVpZ2h0CQDMCAIJAQxJbnRlZ2VyRW50cnkCBQFwBQZoZWlnaHQJAMwIAgkBDEludGVnZXJFbnRyeQIFAWcFAmJPCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQFtBQFkBQNuaWwGAwMFAmJGCQAAAgUCYmgFBHVuaXQHCQCUCgIJAMwIAgkBDEludGVnZXJFbnRyeQIFAW0FAWUFA25pbAYDCQAAAgUCYmgFBHVuaXQJAJQKAgUDbmlsBwMJAAACBQJiaAUBZAQCYlAJAKIIAQUBbgQCYlEJAKIIAQUBbwQBTwUCYlADCQABAgUBTwIEVW5pdAQCYlIJAKIIAQkBAmFvAQUCYWwDCQABAgUCYlICBFVuaXQJAJQKAgkAzAgCCQEMSW50ZWdlckVudHJ5AgUBbQUBZQkAzAgCCQELRGVsZXRlRW50cnkBBQFuCQDMCAIJAQtEZWxldGVFbnRyeQEFAW8FA25pbAYDCQABAgUCYlICBlN0cmluZwQCYlMFAmJSCQCUCgIJAMwIAgkBC1N0cmluZ0VudHJ5AgUBbgUCYlMFA25pbAYJAAIBAgtNYXRjaCBlcnJvcgMJAAECBQFPAgZTdHJpbmcEAmJ2BQFPBAF4CQEBVgEFAmJ2BAJiVAQCYlIFAmJRAwkAAQIFAmJSAgRVbml0CQCiCAEJAQJhbwEJAQJhbQEFAXgDCQABAgUCYlICBlN0cmluZwQCYlUFAmJSBAJiVgkAoggBCQECYXUCCQECYW0BBQF4BQJiVQMJAAACBQJiVgUCYlYEAmJXCQD8BwQFBHRoaXMCE3Byb2Nlc3NWb3RlSU5URVJOQUwJAMwIAgUCYnYJAMwIAgUCYlUFA25pbAUDbmlsAwkAAAIFAmJXBQJiVwUCYlYJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAgtNYXRjaCBlcnJvcgQCYlIFAmJUAwkAAQIFAmJSAgRVbml0BAJiWAkAoggBCQECYXUCBQJhbAUCYnYEAmJZBQJiWAMJAAECBQJiWQIEVW5pdAkAlAoCCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQFtBQFlCQDMCAIJAQtEZWxldGVFbnRyeQEFAW4JAMwIAgkBC0RlbGV0ZUVudHJ5AQUBbwUDbmlsBgMJAAECBQJiWQIGU3RyaW5nBAJhRwUCYlkJAJQKAgkAzAgCCQELU3RyaW5nRW50cnkCBQFuBQJhRwkAzAgCCQELRGVsZXRlRW50cnkBBQFvBQNuaWwGCQACAQILTWF0Y2ggZXJyb3IDCQABAgUCYlICBlN0cmluZwQCYloFAmJSCQCUCgIJAMwIAgkBC1N0cmluZ0VudHJ5AgUBbwUCYloFA25pbAYJAAIBAgtNYXRjaCBlcnJvcgkAAgECC01hdGNoIGVycm9yAwkAAAIFAmJoBQFlBAJiUAkAoggBBQFuBAFPBQJiUAMJAAECBQFPAgRVbml0BAJiUgkAoggBCQECYW8BBQJhbAMJAAECBQJiUgIEVW5pdAQCYkUDBQJiRgkAzAgCCQELRGVsZXRlRW50cnkBBQFtCQDMCAIJAQtEZWxldGVFbnRyeQEFAXMFA25pbAkAzAgCCQELRGVsZXRlRW50cnkBBQFtCQDMCAIJAQxCb29sZWFuRW50cnkCCQEBdgEFAmJOBgkAzAgCCQEMSW50ZWdlckVudHJ5AgUBcQUBdQkAzAgCCQEMSW50ZWdlckVudHJ5AgUBcgUCYmYFA25pbAkAlAoCBQJiRQYDCQABAgUCYlICBlN0cmluZwQCY2EFAmJSCQCUCgIJAMwIAgkBC1N0cmluZ0VudHJ5AgUBbgUCY2EFA25pbAYJAAIBAgtNYXRjaCBlcnJvcgMJAAECBQFPAgZTdHJpbmcEAmJ2BQFPBAJiWAkAoggBCQECYXUCBQJhbAUCYnYDCQAAAgUCYlgFAmJYBAJiSgoAAVMJAPwHBAUEdGhpcwITcHJvY2Vzc1Bvb2xJTlRFUk5BTAkAzAgCBQJidgkAzAgCBQJiRgUDbmlsBQNuaWwDCQABAgUBUwIHQm9vbGVhbgUBUwkAAgEJAKwCAgkAAwEFAVMCHCBjb3VsZG4ndCBiZSBjYXN0IHRvIEJvb2xlYW4DCQAAAgUCYkoFAmJKAwUCYkoJAJQKAgUDbmlsBgQCYlIFAmJYAwkAAQIFAmJSAgRVbml0BAJiRQMFAmJGCQDMCAIJAQtEZWxldGVFbnRyeQEFAW0JAMwIAgkBC0RlbGV0ZUVudHJ5AQUBcwkAzAgCCQELRGVsZXRlRW50cnkBBQFuBQNuaWwJAMwIAgkBC0RlbGV0ZUVudHJ5AQUBbQkAzAgCCQEMQm9vbGVhbkVudHJ5AgkBAXYBBQJiTgYJAMwIAgkBDEludGVnZXJFbnRyeQIFAXEFAXUJAMwIAgkBDEludGVnZXJFbnRyeQIFAXIFAmJmCQDMCAIJAQtEZWxldGVFbnRyeQEFAW4FA25pbAkAlAoCBQJiRQYDCQABAgUCYlICBlN0cmluZwQCY2EFAmJSCQCUCgIJAMwIAgkBC1N0cmluZ0VudHJ5AgUBbgUCY2EFA25pbAYJAAIBAgtNYXRjaCBlcnJvcgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECC01hdGNoIGVycm9yCQACAQIWZmluYWxpemF0aW9uIGlzIGJyb2tlbgJhSwEPZmluYWxpemVXcmFwcGVyAQJjYgQCY2MKAAFTCQD8BwQFBHRoaXMCDmZpbmFsaXplSGVscGVyBQNuaWwFA25pbAMJAAECBQFTAgdCb29sZWFuBQFTCQACAQkArAICCQADAQUBUwIcIGNvdWxkbid0IGJlIGNhc3QgdG8gQm9vbGVhbgMJAAACBQJjYwUCY2MDCQEBIQEFAmNjAwkAAAIFAmNiAAAJAAIBAh5DdXJyZW50IHZvdGluZyBpcyBub3Qgb3ZlciB5ZXQJAJQKAgUDbmlsBQR1bml0BAJjZAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQFoBQFjAwkAZgIFAmNkBQJjYgQCY2UJAPwHBAUEdGhpcwIPZmluYWxpemVXcmFwcGVyCQDMCAIJAGQCBQJjYgABBQNuaWwFA25pbAMJAAACBQJjZQUCY2UJAJQKAgUDbmlsBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQCUCgIFA25pbAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJhSwEIZmluYWxpemUABAJjZQkA/AcEBQR0aGlzAg9maW5hbGl6ZVdyYXBwZXIJAMwIAgAABQNuaWwFA25pbAMJAAACBQJjZQUCY2UJAJQKAgUDbmlsBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmFLARRjb250YWluc05vZGVSRUFET05MWQICYXACYXQJAJQKAgUDbmlsCQECYXYCBQJhcAUCYXQCYUsBCmluc2VydE5vZGUCAmFwAmF0BAJhTwkBAmFMAQUCYUsDCQAAAgUCYU8FAmFPCQCUCgIJAQJhegIFAmFwBQJhdAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJhSwEKZGVsZXRlTm9kZQICYXACYXQEAmFPCQECYUwBBQJhSwMJAAACBQJhTwUCYU8JAJQKAgkBAmFDAgUCYXAFAmF0BQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJjZgECY2cABAJjaAQBTwkBAmFGAAMJAAECBQFPAgpCeXRlVmVjdG9yBAJhTQUBTwUCYU0DCQABAgUBTwIEVW5pdAgFAmNmD3NlbmRlclB1YmxpY0tleQkAAgECC01hdGNoIGVycm9yCQD0AwMIBQJjZglib2R5Qnl0ZXMJAJEDAggFAmNmBnByb29mcwAABQJjaE88kmM=", "chainId": 84, "height": 2352704, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: CTRfpKuBhPrSohAaLoopKiyvAn2htBoPoc2NepCTSjXs Next: Bjrq5ZKKTXBH7kVYjFrqip8Zue5XQsyunE7JCEV1FkxF Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "__"
55
66 let b = 100000000
77
88 let c = 10
99
1010 let d = 0
1111
1212 let e = 1
1313
1414 let f = makeString(["%s", "epochLength"], a)
1515
1616 let g = makeString(["%s", "currentEpoch"], a)
1717
1818 let h = makeString(["%s", "maxDepth"], a)
1919
2020 let i = makeString(["%s", "votingEmissionCandidateContract"], a)
2121
2222 let j = makeString(["%s", "factoryContract"], a)
2323
2424 let k = makeString(["%s", "boostingContract"], a)
2525
2626 let l = makeString(["%s", "stakingContract"], a)
2727
2828 let m = makeString(["%s", "finalizationStage"], a)
2929
3030 let n = makeString(["%s", "nextPool"], a)
3131
3232 let o = makeString(["%s", "nextUser"], a)
3333
3434 let p = makeString(["%s", "startHeight"], a)
3535
3636 let q = makeString(["%s", "currentEpochUi"], a)
3737
3838 let r = makeString(["%s", "startHeightUi"], a)
3939
4040 let s = makeString(["%s", "force"], a)
4141
4242 func t (u) = makeString(["%s%d", "startHeight", toString(u)], a)
4343
4444
4545 func v (u) = makeString(["%s%d", "finalized", toString(u)], a)
4646
4747
4848 func w (x) = {
4949 let y = x
5050 let z = y._1
5151 let A = y._2
5252 makeString(["%s%s%s", "inList", z, A], a)
5353 }
5454
5555
5656 func B (C,u) = makeString(["%s%s%d", "used", toString(C), toString(u)], a)
5757
5858
5959 func D (x,C,u) = {
6060 let E = x
6161 let z = E._1
6262 let A = E._2
6363 makeString(["%s%s%s%s%d", "vote", z, A, toString(C), toString(u)], a)
6464 }
6565
6666
6767 func F (x,u) = {
6868 let G = x
6969 let z = G._1
7070 let A = G._2
7171 makeString(["%s%s%s%d", "votingResult", z, A, toString(u)], a)
7272 }
7373
7474
7575 func H (x,u) = {
7676 let I = x
7777 let z = I._1
7878 let A = I._2
7979 makeString(["%s%s%s%d", "poolShare", z, A, toString(u)], a)
8080 }
8181
8282
8383 func J (u) = makeString(["%s%d", "totalVotes", toString(u)], a)
8484
8585
8686 func K (C,L,M) = {
8787 let N = makeString(["mandatory ", toString(C), ".", L, " is not defined"], "")
8888 valueOrErrorMessage({
8989 let O = M
9090 if ($isInstanceOf(O, "String"))
9191 then {
9292 let P = O
9393 getString(C, L)
9494 }
9595 else if ($isInstanceOf(O, "Int"))
9696 then {
9797 let Q = O
9898 getInteger(C, L)
9999 }
100100 else throw("invalid entry type")
101101 }, N)
102102 }
103103
104104
105105 func R (C,L) = {
106106 let S = K(C, L, "")
107107 if ($isInstanceOf(S, "String"))
108108 then S
109109 else throw(($getType(S) + " couldn't be cast to String"))
110110 }
111111
112112
113113 func T (C,L) = {
114114 let S = K(C, L, 0)
115115 if ($isInstanceOf(S, "Int"))
116116 then S
117117 else throw(($getType(S) + " couldn't be cast to Int"))
118118 }
119119
120120
121121 func U (x) = ((x._1 + a) + x._2)
122122
123123
124124 func V (P) = {
125125 let W = split(P, a)
126126 if ((size(W) == 2))
127127 then $Tuple2(W[0], W[1])
128128 else throw("invalid pool string")
129129 }
130130
131131
132132 func X (z,A) = {
133133 func Y (Z) = ("%s%s%s__mappings__baseAsset2internalId__" + Z)
134134
135135 func aa (ab,ac) = (((("%d%d%s%s__" + toString(ab)) + "__") + toString(ac)) + "__mappings__poolAssets2PoolContract")
136136
137137 func ad (ae) = (("%s%s%s__" + ae) + "__mappings__poolContract2LpAsset")
138138
139139 let af = addressFromStringValue(R(this, j))
140140 let ag = T(af, Y(z))
141141 let ah = T(af, Y(A))
142142 let ae = R(af, aa(ag, ah))
143143 let ai = R(af, ad(ae))
144144 ai
145145 }
146146
147147
148148 func aj (x) = {
149149 let ak = x
150150 let z = ak._1
151151 let A = ak._2
152152 let af = addressFromStringValue(R(this, j))
153153 let S = invoke(af, "checkWxEmissionPoolLabel", [z, A], nil)
154154 if ($isInstanceOf(S, "Boolean"))
155155 then S
156156 else throw(($getType(S) + " couldn't be cast to Boolean"))
157157 }
158158
159159
160160 let al = "pools"
161161
162162 func am (x) = {
163163 let an = x
164164 let z = an._1
165165 let A = an._2
166166 makeString(["votes", z, A], a)
167167 }
168168
169169
170170 func ao (ap) = {
171171 let aq = if ((ap == al))
172172 then "%s%s"
173173 else "%s%s%s%s"
174174 makeString([aq, ap, "head"], a)
175175 }
176176
177177
178178 func ar (ap) = {
179179 let aq = if ((ap == al))
180180 then "%s%s"
181181 else "%s%s%s%s"
182182 makeString([aq, ap, "size"], a)
183183 }
184184
185185
186186 func as (ap,at) = {
187187 let aq = if ((ap == al))
188188 then "%s%s%s%s"
189189 else "%s%s%s%s%s"
190190 makeString([aq, ap, at, "prev"], a)
191191 }
192192
193193
194194 func au (ap,at) = {
195195 let aq = if ((ap == al))
196196 then "%s%s%s%s"
197197 else "%s%s%s%s%s"
198198 makeString([aq, ap, at, "next"], a)
199199 }
200200
201201
202202 func av (ap,at) = {
203203 let aw = getString(this, ao(ap))
204204 let ax = getString(this, as(ap, at))
205205 let ay = getString(this, au(ap, at))
206206 if (if ((at == valueOrElse(aw, "")))
207207 then true
208208 else (ax != unit))
209209 then true
210210 else (ay != unit)
211211 }
212212
213213
214214 func az (ap,at) = {
215215 let aw = getString(this, ao(ap))
216216 let aA = valueOrElse(getInteger(this, ar(ap)), 0)
217217 let aB = if (!(av(ap, at)))
218218 then true
219219 else throw("Node exists")
220220 if ((aB == aB))
221221 then (([IntegerEntry(ar(ap), (aA + 1))] ++ (if ((aw != unit))
222222 then [StringEntry(au(ap, at), value(aw)), StringEntry(as(ap, value(aw)), at)]
223223 else nil)) ++ [StringEntry(ao(ap), at)])
224224 else throw("Strict value is not equal to itself.")
225225 }
226226
227227
228228 func aC (ap,at) = {
229229 let aw = getString(this, ao(ap))
230230 let aA = valueOrElse(getInteger(this, ar(ap)), 0)
231231 let ax = getString(this, as(ap, at))
232232 let ay = getString(this, au(ap, at))
233233 ([IntegerEntry(ar(ap), (aA - 1))] ++ (if (if ((ax != unit))
234234 then (ay != unit)
235235 else false)
236236 then [StringEntry(au(ap, value(ax)), value(ay)), StringEntry(as(ap, value(ay)), value(ax)), DeleteEntry(as(ap, at)), DeleteEntry(au(ap, at))]
237237 else if ((ay != unit))
238238 then [StringEntry(ao(ap), value(ay)), DeleteEntry(au(ap, at)), DeleteEntry(as(ap, value(ay)))]
239239 else if ((ax != unit))
240240 then [DeleteEntry(as(ap, at)), DeleteEntry(au(ap, value(ax)))]
241241 else if ((at == valueOrElse(aw, "")))
242242 then [DeleteEntry(ao(ap))]
243243 else throw(((("invalid node: " + ap) + ".") + at))))
244244 }
245245
246246
247247 func aD () = "%s__managerPublicKey"
248248
249249
250250 func aE () = "%s__pendingManagerPublicKey"
251251
252252
253253 func aF () = {
254254 let O = getString(aD())
255255 if ($isInstanceOf(O, "String"))
256256 then {
257257 let aG = O
258258 fromBase58String(aG)
259259 }
260260 else if ($isInstanceOf(O, "Unit"))
261261 then unit
262262 else throw("Match error")
263263 }
264264
265265
266266 func aH () = {
267267 let O = getString(aE())
268268 if ($isInstanceOf(O, "String"))
269269 then {
270270 let aG = O
271271 fromBase58String(aG)
272272 }
273273 else if ($isInstanceOf(O, "Unit"))
274274 then unit
275275 else throw("Match error")
276276 }
277277
278278
279279 let aI = throw("Permission denied")
280280
281281 func aJ (aK) = if ((aK.caller == this))
282282 then true
283283 else aI
284284
285285
286286 func aL (aK) = {
287287 let O = aF()
288288 if ($isInstanceOf(O, "ByteVector"))
289289 then {
290290 let aM = O
291291 if ((aK.callerPublicKey == aM))
292292 then true
293293 else aI
294294 }
295295 else if ($isInstanceOf(O, "Unit"))
296296 then aJ(aK)
297297 else throw("Match error")
298298 }
299299
300300
301301 @Callable(aK)
302302 func setManager (aN) = {
303303 let aO = aL(aK)
304304 if ((aO == aO))
305305 then {
306306 let aP = fromBase58String(aN)
307307 if ((aP == aP))
308308 then [StringEntry(aE(), aN)]
309309 else throw("Strict value is not equal to itself.")
310310 }
311311 else throw("Strict value is not equal to itself.")
312312 }
313313
314314
315315
316316 @Callable(aK)
317317 func confirmManager () = {
318318 let aQ = aH()
319319 let aR = if (isDefined(aQ))
320320 then true
321321 else throw("No pending manager")
322322 if ((aR == aR))
323323 then {
324324 let aS = if ((aK.callerPublicKey == value(aQ)))
325325 then true
326326 else throw("You are not pending manager")
327327 if ((aS == aS))
328328 then [StringEntry(aD(), toBase58String(value(aQ))), DeleteEntry(aE())]
329329 else throw("Strict value is not equal to itself.")
330330 }
331331 else throw("Strict value is not equal to itself.")
332332 }
333333
334334
335335
336336 @Callable(aK)
337337 func getUserGwxAmountAtHeight (aT,aU) = {
338338 let aV = valueOrErrorMessage(addressFromString(R(this, k)), "invalid boosting contract address")
339339 $Tuple2(nil, {
340340 let S = invoke(aV, "getUserGwxAmountAtHeightREADONLY", [aT, aU], nil)
341341 if ($isInstanceOf(S, "Int"))
342342 then S
343343 else throw(($getType(S) + " couldn't be cast to Int"))
344344 })
345345 }
346346
347347
348348
349349 @Callable(aK)
350350 func constructor (af,aW,aX,aY,aZ) = {
351351 let ba = [aL(aK), if ((addressFromString(af) != unit))
352352 then true
353353 else "invalid factory contract address", if ((addressFromString(aW) != unit))
354354 then true
355355 else "invalid voting emission candidate contract address", if ((addressFromString(aX) != unit))
356356 then true
357357 else "invalid boosting contract address", if ((addressFromString(aY) != unit))
358358 then true
359359 else "invalid staking contract address", if ((aZ > 0))
360360 then true
361361 else throw("invalid epoch length")]
362362 if ((ba == ba))
363363 then $Tuple2([StringEntry(j, af), StringEntry(i, aW), StringEntry(k, aX), StringEntry(l, aY), IntegerEntry(f, aZ)], unit)
364364 else throw("Strict value is not equal to itself.")
365365 }
366366
367367
368368
369369 @Callable(aK)
370370 func create (z,A) = {
371371 let ba = [if ((toBase58String(aK.caller.bytes) == valueOrElse(getString(this, i), "")))
372372 then true
373373 else aL(aK)]
374374 if ((ba == ba))
375375 then {
376376 let x = $Tuple2(z, A)
377377 let bb = ([BooleanEntry(w(x), true)] ++ az(al, U(x)))
378378 let bc = (getInteger(this, g) == unit)
379379 let bd = if (bc)
380380 then {
381381 let u = 0
382382 [IntegerEntry(g, u), IntegerEntry(t(u), height), IntegerEntry(p, height), IntegerEntry(q, u), IntegerEntry(r, height)]
383383 }
384384 else nil
385385 $Tuple2((bb ++ bd), unit)
386386 }
387387 else throw("Strict value is not equal to itself.")
388388 }
389389
390390
391391
392392 @Callable(aK)
393393 func vote (z,A,be) = {
394394 let x = $Tuple2(z, A)
395395 let u = valueOrElse(getInteger(this, g), 0)
396396 let bf = T(this, t(u))
397397 let aZ = T(this, f)
398398 let bg = (bf + aZ)
399399 let bh = getInteger(this, m)
400400 let bi = valueOrElse(getInteger(this, B(aK.caller, u)), 0)
401401 let bj = valueOrElse(getInteger(this, D(x, aK.caller, u)), 0)
402402 let bk = valueOrElse(getInteger(this, F(x, u)), 0)
403403 let bl = valueOrElse(getInteger(this, J(u)), 0)
404404 let bm = {
405405 let S = invoke(this, "getUserGwxAmountAtHeight", [toBase58String(aK.caller.bytes), bg], nil)
406406 if ($isInstanceOf(S, "Int"))
407407 then S
408408 else throw(($getType(S) + " couldn't be cast to Int"))
409409 }
410410 let bn = (bm - bi)
411411 let bo = (bj + be)
412412 let bp = aj(x)
413413 let ba = [if ((getBoolean(w(x)) != unit))
414414 then true
415415 else throw("invalid assets"), if ((bg > height))
416416 then true
417417 else throw("invalid height"), if ((bh == unit))
418418 then true
419419 else throw("finalization in progress"), if ((bm > 0))
420420 then true
421421 else throw("you do not have gWX"), if (if ((be > 0))
422422 then (bn >= be)
423423 else false)
424424 then true
425425 else throw("invalid amount"), if (bp)
426426 then true
427427 else throw("pool hasn't WX_EMISSION label")]
428428 if ((ba == ba))
429429 then {
430430 let bq = am(x)
431431 let br = toString(aK.caller)
432432 let bs = if (av(bq, br))
433433 then nil
434434 else az(bq, br)
435435 $Tuple2(([IntegerEntry(B(aK.caller, u), (bi + be)), IntegerEntry(D(x, aK.caller, u), bo), IntegerEntry(F(x, u), (bk + be)), IntegerEntry(J(u), (bl + be))] ++ bs), unit)
436436 }
437437 else throw("Strict value is not equal to itself.")
438438 }
439439
440440
441441
442442 @Callable(aK)
443443 func cancelVote (z,A) = {
444444 let x = $Tuple2(z, A)
445445 let u = valueOrElse(getInteger(this, g), 0)
446446 let bf = T(this, t(u))
447447 let aZ = T(this, f)
448448 let bg = (bf + aZ)
449449 let bh = getInteger(this, m)
450450 let bi = valueOrElse(getInteger(this, B(aK.caller, u)), 0)
451451 let bj = valueOrElse(getInteger(this, D(x, aK.caller, u)), 0)
452452 let bk = valueOrElse(getInteger(this, F(x, u)), 0)
453453 let bl = valueOrElse(getInteger(this, J(u)), 0)
454454 let ba = [if ((getBoolean(w(x)) != unit))
455455 then true
456456 else throw("invalid assets"), if ((bg > height))
457457 then true
458458 else throw("invalid height"), if ((bh == unit))
459459 then true
460460 else throw("finalization in progress"), if ((bj > 0))
461461 then true
462462 else throw("no vote")]
463463 if ((ba == ba))
464464 then {
465465 let bq = am(x)
466466 let br = toString(aK.caller)
467467 $Tuple2(([IntegerEntry(B(aK.caller, u), max([(bi - bj), 0])), DeleteEntry(D(x, aK.caller, u)), IntegerEntry(F(x, u), (bk - bj)), IntegerEntry(J(u), (bl - bj))] ++ aC(bq, br)), unit)
468468 }
469469 else throw("Strict value is not equal to itself.")
470470 }
471471
472472
473473
474474 @Callable(aK)
475475 func setEpochLength (bt) = {
476476 let ba = [aL(aK), if ((bt > 0))
477477 then true
478478 else throw("invalid epoch length")]
479479 if ((ba == ba))
480480 then $Tuple2([IntegerEntry(f, bt)], unit)
481481 else throw("Strict value is not equal to itself.")
482482 }
483483
484484
485485
486486 @Callable(aK)
487487 func setMaxDepth (bu) = {
488488 let ba = [aL(aK), if ((bu > 0))
489489 then true
490490 else throw("invalid max depth")]
491491 if ((ba == ba))
492492 then $Tuple2([IntegerEntry(h, bu)], unit)
493493 else throw("Strict value is not equal to itself.")
494494 }
495495
496496
497497
498498 @Callable(aK)
499499 func processVoteINTERNAL (bv,br) = {
500500 let aO = aJ(aK)
501501 if ((aO == aO))
502502 then {
503503 let aT = valueOrErrorMessage(addressFromString(br), ("processVoteINTERNAL: invalid user address " + br))
504504 let u = T(this, g)
505505 let bw = (u - 1)
506506 let aZ = T(this, f)
507507 let bf = T(this, t(u))
508508 let bg = (bf + aZ)
509509 let bx = T(this, t(bw))
510510 let by = (bx + aZ)
511511 let bz = if ((bw >= 0))
512512 then true
513513 else throw("processVoteINTERNAL: invalid previous epoch")
514514 if ((bz == bz))
515515 then {
516516 let x = V(bv)
517517 let bA = x
518518 let z = bA._1
519519 let A = bA._2
520520 let bp = aj(x)
521521 let bm = {
522522 let S = invoke(this, "getUserGwxAmountAtHeight", [br, bg], nil)
523523 if ($isInstanceOf(S, "Int"))
524524 then S
525525 else throw(($getType(S) + " couldn't be cast to Int"))
526526 }
527527 let bB = {
528528 let S = invoke(this, "getUserGwxAmountAtHeight", [br, by], nil)
529529 if ($isInstanceOf(S, "Int"))
530530 then S
531531 else throw(($getType(S) + " couldn't be cast to Int"))
532532 }
533533 let bl = valueOrElse(getInteger(J(u)), 0)
534534 let bC = valueOrElse(getInteger(F(x, u)), 0)
535535 let bD = valueOrErrorMessage(getInteger(D(x, aT, bw)), (((("processVoteINTERNAL " + bv) + " ") + br) + ": no previous vote"))
536536 let bi = valueOrElse(getInteger(this, B(aT, u)), 0)
537537 let bo = if ((bB > 0))
538538 then fraction(bD, bm, bB)
539539 else 0
540540 let bE = if (if ((bo > 0))
541541 then bp
542542 else false)
543543 then [IntegerEntry(D(x, aT, u), bo), IntegerEntry(J(u), (bl + bo)), IntegerEntry(F(x, u), (bC + bo)), IntegerEntry(B(aT, u), (bi + bo))]
544544 else aC(am(x), br)
545545 $Tuple2(bE, unit)
546546 }
547547 else throw("Strict value is not equal to itself.")
548548 }
549549 else throw("Strict value is not equal to itself.")
550550 }
551551
552552
553553
554554 @Callable(aK)
555555 func processPoolINTERNAL (bv,bF) = {
556556 let aO = aJ(aK)
557557 if ((aO == aO))
558558 then {
559559 let bG = {
560560 let bH = T(this, g)
561561 if (bF)
562562 then bH
563563 else (bH - 1)
564564 }
565565 let bz = if ((bG >= 0))
566566 then true
567567 else throw("processPoolINTERNAL: invalid target epoch")
568568 if ((bz == bz))
569569 then {
570570 let x = V(bv)
571571 let bI = x
572572 let z = bI._1
573573 let A = bI._2
574574 let aY = addressFromStringValue(R(this, l))
575575 let af = addressFromStringValue(R(this, j))
576576 let ai = X(z, A)
577577 let bJ = {
578578 let S = invoke(aY, "usersListTraversal", [ai], nil)
579579 if ($isInstanceOf(S, "Boolean"))
580580 then S
581581 else throw(($getType(S) + " couldn't be cast to Boolean"))
582582 }
583583 if ((bJ == bJ))
584584 then if (bJ)
585585 then $Tuple2(nil, true)
586586 else {
587587 let bp = aj(x)
588588 let bl = valueOrElse(getInteger(this, J(bG)), 0)
589589 let bC = valueOrElse(getInteger(this, F(x, bG)), 0)
590590 let bK = if (if ((bl == 0))
591591 then true
592592 else !(bp))
593593 then 0
594594 else fraction(bC, b, bl)
595595 let bL = invoke(af, "modifyWeight", [ai, bK], nil)
596596 if ((bL == bL))
597597 then {
598598 let bM = if (if (bp)
599599 then true
600600 else bF)
601601 then nil
602602 else ([DeleteEntry(w(x))] ++ aC(al, bv))
603603 $Tuple2(([IntegerEntry(H(x, bG), bK)] ++ bM), false)
604604 }
605605 else throw("Strict value is not equal to itself.")
606606 }
607607 else throw("Strict value is not equal to itself.")
608608 }
609609 else throw("Strict value is not equal to itself.")
610610 }
611611 else throw("Strict value is not equal to itself.")
612612 }
613613
614614
615615
616616 @Callable(aK)
617617 func finalizeHelper () = {
618618 let bF = valueOrElse(getBoolean(s), false)
619619 let u = valueOrElse(getInteger(this, g), 0)
620620 let bN = (u - 1)
621621 let bf = T(this, t(u))
622622 let aZ = T(this, f)
623623 let bg = (bf + aZ)
624624 let bh = getInteger(this, m)
625625 if (if (if ((height >= bg))
626626 then (bh == unit)
627627 else false)
628628 then !(bF)
629629 else false)
630630 then {
631631 let bO = (u + 1)
632632 $Tuple2([IntegerEntry(t(bO), height), IntegerEntry(p, height), IntegerEntry(g, bO), IntegerEntry(m, d)], true)
633633 }
634634 else if (if (bF)
635635 then (bh == unit)
636636 else false)
637637 then $Tuple2([IntegerEntry(m, e)], true)
638638 else if ((bh == unit))
639639 then $Tuple2(nil, false)
640640 else if ((bh == d))
641641 then {
642642 let bP = getString(n)
643643 let bQ = getString(o)
644644 let O = bP
645645 if ($isInstanceOf(O, "Unit"))
646646 then {
647647 let bR = getString(ao(al))
648648 if ($isInstanceOf(bR, "Unit"))
649649 then $Tuple2([IntegerEntry(m, e), DeleteEntry(n), DeleteEntry(o)], true)
650650 else if ($isInstanceOf(bR, "String"))
651651 then {
652652 let bS = bR
653653 $Tuple2([StringEntry(n, bS)], true)
654654 }
655655 else throw("Match error")
656656 }
657657 else if ($isInstanceOf(O, "String"))
658658 then {
659659 let bv = O
660660 let x = V(bv)
661661 let bT = {
662662 let bR = bQ
663663 if ($isInstanceOf(bR, "Unit"))
664664 then getString(ao(am(x)))
665665 else if ($isInstanceOf(bR, "String"))
666666 then {
667667 let bU = bR
668668 let bV = getString(au(am(x), bU))
669669 if ((bV == bV))
670670 then {
671671 let bW = invoke(this, "processVoteINTERNAL", [bv, bU], nil)
672672 if ((bW == bW))
673673 then bV
674674 else throw("Strict value is not equal to itself.")
675675 }
676676 else throw("Strict value is not equal to itself.")
677677 }
678678 else throw("Match error")
679679 }
680680 let bR = bT
681681 if ($isInstanceOf(bR, "Unit"))
682682 then {
683683 let bX = getString(au(al, bv))
684684 let bY = bX
685685 if ($isInstanceOf(bY, "Unit"))
686686 then $Tuple2([IntegerEntry(m, e), DeleteEntry(n), DeleteEntry(o)], true)
687687 else if ($isInstanceOf(bY, "String"))
688688 then {
689689 let aG = bY
690690 $Tuple2([StringEntry(n, aG), DeleteEntry(o)], true)
691691 }
692692 else throw("Match error")
693693 }
694694 else if ($isInstanceOf(bR, "String"))
695695 then {
696696 let bZ = bR
697697 $Tuple2([StringEntry(o, bZ)], true)
698698 }
699699 else throw("Match error")
700700 }
701701 else throw("Match error")
702702 }
703703 else if ((bh == e))
704704 then {
705705 let bP = getString(n)
706706 let O = bP
707707 if ($isInstanceOf(O, "Unit"))
708708 then {
709709 let bR = getString(ao(al))
710710 if ($isInstanceOf(bR, "Unit"))
711711 then {
712712 let bE = if (bF)
713713 then [DeleteEntry(m), DeleteEntry(s)]
714714 else [DeleteEntry(m), BooleanEntry(v(bN), true), IntegerEntry(q, u), IntegerEntry(r, bf)]
715715 $Tuple2(bE, true)
716716 }
717717 else if ($isInstanceOf(bR, "String"))
718718 then {
719719 let ca = bR
720720 $Tuple2([StringEntry(n, ca)], true)
721721 }
722722 else throw("Match error")
723723 }
724724 else if ($isInstanceOf(O, "String"))
725725 then {
726726 let bv = O
727727 let bX = getString(au(al, bv))
728728 if ((bX == bX))
729729 then {
730730 let bJ = {
731731 let S = invoke(this, "processPoolINTERNAL", [bv, bF], nil)
732732 if ($isInstanceOf(S, "Boolean"))
733733 then S
734734 else throw(($getType(S) + " couldn't be cast to Boolean"))
735735 }
736736 if ((bJ == bJ))
737737 then if (bJ)
738738 then $Tuple2(nil, true)
739739 else {
740740 let bR = bX
741741 if ($isInstanceOf(bR, "Unit"))
742742 then {
743743 let bE = if (bF)
744744 then [DeleteEntry(m), DeleteEntry(s), DeleteEntry(n)]
745745 else [DeleteEntry(m), BooleanEntry(v(bN), true), IntegerEntry(q, u), IntegerEntry(r, bf), DeleteEntry(n)]
746746 $Tuple2(bE, true)
747747 }
748748 else if ($isInstanceOf(bR, "String"))
749749 then {
750750 let ca = bR
751751 $Tuple2([StringEntry(n, ca)], true)
752752 }
753753 else throw("Match error")
754754 }
755755 else throw("Strict value is not equal to itself.")
756756 }
757757 else throw("Strict value is not equal to itself.")
758758 }
759759 else throw("Match error")
760760 }
761761 else throw("finalization is broken")
762762 }
763763
764764
765765
766766 @Callable(aK)
767767 func finalizeWrapper (cb) = {
768768 let cc = {
769769 let S = invoke(this, "finalizeHelper", nil, nil)
770770 if ($isInstanceOf(S, "Boolean"))
771771 then S
772772 else throw(($getType(S) + " couldn't be cast to Boolean"))
773773 }
774774 if ((cc == cc))
775775 then if (!(cc))
776776 then if ((cb == 0))
777777 then throw("Current voting is not over yet")
778778 else $Tuple2(nil, unit)
779779 else {
780780 let cd = valueOrElse(getInteger(this, h), c)
781781 if ((cd > cb))
782782 then {
783783 let ce = invoke(this, "finalizeWrapper", [(cb + 1)], nil)
784784 if ((ce == ce))
785785 then $Tuple2(nil, unit)
786786 else throw("Strict value is not equal to itself.")
787787 }
788788 else $Tuple2(nil, unit)
789789 }
790790 else throw("Strict value is not equal to itself.")
791791 }
792792
793793
794794
795795 @Callable(aK)
796796 func finalize () = {
797797 let ce = invoke(this, "finalizeWrapper", [0], nil)
798798 if ((ce == ce))
799799 then $Tuple2(nil, unit)
800800 else throw("Strict value is not equal to itself.")
801801 }
802802
803803
804804
805805 @Callable(aK)
806806 func containsNodeREADONLY (ap,at) = $Tuple2(nil, av(ap, at))
807807
808808
809809
810810 @Callable(aK)
811811 func insertNode (ap,at) = {
812812 let aO = aL(aK)
813813 if ((aO == aO))
814814 then $Tuple2(az(ap, at), unit)
815815 else throw("Strict value is not equal to itself.")
816816 }
817817
818818
819819
820820 @Callable(aK)
821821 func deleteNode (ap,at) = {
822822 let aO = aL(aK)
823823 if ((aO == aO))
824824 then $Tuple2(aC(ap, at), unit)
825825 else throw("Strict value is not equal to itself.")
826826 }
827827
828828
829829 @Verifier(cf)
830830 func cg () = {
831831 let ch = {
832832 let O = aF()
833833 if ($isInstanceOf(O, "ByteVector"))
834834 then {
835835 let aM = O
836836 aM
837837 }
838838 else if ($isInstanceOf(O, "Unit"))
839839 then cf.senderPublicKey
840840 else throw("Match error")
841841 }
842842 sigVerify(cf.bodyBytes, cf.proofs[0], ch)
843843 }
844844

github/deemru/w8io/026f985 
75.74 ms