tx · FDnMCRWyZePgfpPFvSBZkWsgkxV8tgimVc9YqnuNCzfZ

3N7UuYar6264P58FBhVWKPQAh4Yua2hgngv:  -0.01800000 Waves

2024.11.25 15:14 [3386928] smart account 3N7UuYar6264P58FBhVWKPQAh4Yua2hgngv > SELF 0.00000000 Waves

{ "type": 13, "id": "FDnMCRWyZePgfpPFvSBZkWsgkxV8tgimVc9YqnuNCzfZ", "fee": 1800000, "feeAssetId": null, "timestamp": 1732536936379, "version": 2, "chainId": 84, "sender": "3N7UuYar6264P58FBhVWKPQAh4Yua2hgngv", "senderPublicKey": "2fNSk5gmWbXBDTkSYSKd66xSgVvAYzrJnP9YSAFNvTwC", "proofs": [ "2ysJgZHVpFAnujukYCrq6h1DFFFhYBeMvPXyRgEE63bFmxHw2NRvnNRR57W8Jt5KeA8yPSCAdJcMw2yQUGRHdkKB" ], "script": "base64:BgIbCAISAwoBGBIDCgEIEgMKAQgSAwoBCBIDCgEIcgADU0VQAgJfXwAFY2hhaW4JAMkBAgkAygECCAUEdGhpcwVieXRlcwABAAEACkRBWV9CTE9DS1MEByRtYXRjaDAFBWNoYWluAwkAAAIBAVcFByRtYXRjaDAAoAsDCQAAAgEBVAUHJG1hdGNoMAA8CQACAQINVW5rbm93biBjaGFpbgALV0VFS19CTE9DS1MEByRtYXRjaDAFBWNoYWluAwkAAAIBAVcFByRtYXRjaDAA4E4DCQAAAgEBVAUHJG1hdGNoMAC0AQkAAgECDVVua25vd24gY2hhaW4AC3VzZHRBc3NldElkBAckbWF0Y2gwBQVjaGFpbgMJAAACAQFXBQckbWF0Y2gwASCE2nqyCAM/TtG7yo7ui5O8yYLdC136B5ao1CP5qA//uQMJAAACAQFUBQckbWF0Y2gwASBVsdifcoeC7+XjW42sBatl3ppDoS8WuwXzGreHpfHFGAkAAgECDVVua25vd24gY2hhaW4AFmRlZmF1bHRSZXN0MkFkZHJlc3NTdHIEByRtYXRjaDAFBWNoYWluAwkAAAIBAVcFByRtYXRjaDACIzNQRndZdGE4YmlFejMxenBlRmU1REpLOHdFNXRyU3BRVkY4AwkAAAIBAVQFByRtYXRjaDACIzNON1V1WWFyNjI2NFA1OEZCaFZXS1BRQWg0WXVhMmhnbmd2CQACAQINVW5rbm93biBjaGFpbgAVb2xkU3Rha2luZ0NvbnRyYWN0U3RyBAckbWF0Y2gwBQVjaGFpbgMJAAACAQFXBQckbWF0Y2gwAiMzUExuY1h0UzFVODNENmNRYkZEM0g4ckJIUExnenhTRktaMQMJAAACAQFUBQckbWF0Y2gwAiMzTkRDeUJHNXE4NUp1YVJpaWdVZUV0YWlueWpDUVQzWHBabQkAAgECDVVua25vd24gY2hhaW4BD2dldFN0cmluZ09yRmFpbAIHYWRkcmVzcwNrZXkJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQdhZGRyZXNzBQNrZXkJALkJAgkAzAgCAgptYW5kYXRvcnkgCQDMCAIJAKUIAQUHYWRkcmVzcwkAzAgCAgEuCQDMCAIFA2tleQkAzAgCAg8gaXMgbm90IGRlZmluZWQFA25pbAIAABBJZHhDZmdBY3JlczJEYXBwAAEADUlkeENmZ1dsZ0RhcHAAAgAUSWR4Q2ZnUHV6emxlUG9vbERhcHAABAAUSWR4Q2ZnSW52ZXN0RnVuZERhcHAABQEKa2V5UmVzdENmZwACDiVzX19yZXN0Q29uZmlnAQ9rZXlSZXN0MkFkZHJlc3MAAg0lc19fcmVzdDJBZGRyARFyZWFkUmVzdENmZ09yRmFpbAEEcmVzdAkAvAkCCQEPZ2V0U3RyaW5nT3JGYWlsAgUEcmVzdAkBCmtleVJlc3RDZmcABQNTRVABGGdldENvbnRyYWN0QWRkcmVzc09yRmFpbAIIcmVzdDJDZmcDaWR4CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkAkQMCBQhyZXN0MkNmZwUDaWR4CQCsAgICKlJlc3QgY2ZnIGRvZXNuJ3QgY29udGFpbiBhZGRyZXNzIGF0IGluZGV4IAkApAMBBQNpZHgADXJlc3QyQ29udHJhY3QJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwkBD2tleVJlc3QyQWRkcmVzcwAFFmRlZmF1bHRSZXN0MkFkZHJlc3NTdHIACHJlc3QyQ2ZnCQERcmVhZFJlc3RDZmdPckZhaWwBBQ1yZXN0MkNvbnRyYWN0AA5hY3JlczJDb250cmFjdAkBGGdldENvbnRyYWN0QWRkcmVzc09yRmFpbAIFCHJlc3QyQ2ZnBRBJZHhDZmdBY3JlczJEYXBwAAt3bGdDb250cmFjdAkBGGdldENvbnRyYWN0QWRkcmVzc09yRmFpbAIFCHJlc3QyQ2ZnBQ1JZHhDZmdXbGdEYXBwABJwdXp6bGVQb29sQ29udHJhY3QJARhnZXRDb250cmFjdEFkZHJlc3NPckZhaWwCBQhyZXN0MkNmZwUUSWR4Q2ZnUHV6emxlUG9vbERhcHAAEmludmVzdEZ1bmRDb250cmFjdAkBGGdldENvbnRyYWN0QWRkcmVzc09yRmFpbAIFCHJlc3QyQ2ZnBRRJZHhDZmdJbnZlc3RGdW5kRGFwcAATb2xkQWNyZXNDb250cmFjdEtleQIQb2xkQWNyZXNDb250cmFjdAEVa2V5TGFzdFdlZWtUeElkQnlVc2VyAQRhZGRyCQCsAgICE2xhc3RXZWVrVHhJZEJ5VXNlcl8FBGFkZHIBFGtleUN1cldlZWtUeElkQnlVc2VyAQRhZGRyCQCsAgICEmN1cldlZWtUeElkQnlVc2VyXwUEYWRkcgANd2xnQXNzZXRJZEtleQILd2xnX2Fzc2V0SWQACndsZ0Fzc2V0SWQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnAgCBQt3bGdDb250cmFjdAUNd2xnQXNzZXRJZEtleQIYV0xHT0xEIGlzIG5vdCBpc3N1ZWQgeWV0AA9hY3Jlc0Fzc2V0SWRLZXkCDGFjcmVzQXNzZXRJZAAMYWNyZXNBc3NldElkCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJwIAgUOYWNyZXMyQ29udHJhY3QFD2FjcmVzQXNzZXRJZEtleQIXQUNSRVMgaXMgbm90IGlzc3VlZCB5ZXQBFGtleVN0YWtlZER1Y2tCeU93bmVyAQlvd25lckFkZHIJAKwCAgISc3Rha2VkRHVja0J5T3duZXJfBQlvd25lckFkZHIBFmtleUFkZHJlc3NUb0N1c3RvbU5hbWUBBGFkZHIJAKwCAgIYYWNjb3VudEN1c3RvbU5hbWVCeUFkZHJfBQRhZGRyAQ9rZXlBZGRyZXNzUmVmQnkBBGFkZHIJAKwCAgIJYWNjUmVmQnlfBQRhZGRyARNrZXlBZGRyZXNzUmVmZXJyYWxzAQRhZGRyCQCsAgICDWFjY1JlZmVycmFsc18FBGFkZHIBCmtleVVzZXJCZXQBBGFkZHIJAKwCAgIIdXNlckJldF8FBGFkZHIBEmtleVVzZXJXZWVrVGlja2V0cwIEYWRkcgR3ZWVrCQCsAgIJAKwCAgkArAICAhB1c2VyV2Vla1RpY2tldHNfBQRhZGRyAgFfCQCkAwEFBHdlZWsBE2tleVRvdGFsV2Vla1RpY2tldHMBBHdlZWsJAKwCAgIRdG90YWxXZWVrVGlja2V0c18JAKQDAQUEd2VlawEKd2lubmluZ0JldAEDZGF5CQBqAgkAsQkBCQEFdmFsdWUBCAkBBXZhbHVlAQkA7QcBCQBoAgUDZGF5BQpEQVlfQkxPQ0tTA3ZyZgAEAQxhc1R1cGxlNEludHMBA3ZhbAQHJG1hdGNoMAUDdmFsAwkAAQIFByRtYXRjaDACFChJbnQsIEludCwgSW50LCBJbnQpBAF0BQckbWF0Y2gwBQF0CQACAQImZmFpbCB0byBjYXN0IGludG8gKEludCwgSW50LCBJbnQsIEludCkBDGFzVHVwbGUzSW50cwEDdmFsBAckbWF0Y2gwBQN2YWwDCQABAgUHJG1hdGNoMAIPKEludCwgSW50LCBJbnQpBAF0BQckbWF0Y2gwBQF0CQACAQIhZmFpbCB0byBjYXN0IGludG8gKEludCwgSW50LCBJbnQpAQxhc1R1cGxlMkludHMBA3ZhbAQHJG1hdGNoMAUDdmFsAwkAAQIFByRtYXRjaDACCihJbnQsIEludCkEAXQFByRtYXRjaDAFAXQJAAIBAhxmYWlsIHRvIGNhc3QgaW50byAoSW50LCBJbnQpAANNNl8AwIQ9AANNOF8AgMLXLwAKVEVBTV9TSEFSRQDAmgwADkFDVElWSVRZX1NIQVJFAKCNBgAMUExBWUVSX1NIQVJFAIC1GAALWUVBUl9NSUxMSVMAgIbrx3UABkRBWV9NUwCAuJkpAAdJU1NVRTEwAICU69wDAA9QTEFZRVJTMTBfU0hBUkUAgOowABFNQVJLRVRJTkcxMF9TSEFSRQCgjQYADFRFQU0xMF9TSEFSRQCgjQYAEU5FV19TVEFLSU5HX1NUQVJUAIDzuMKxMgAKdGVhbUFkcktleQIIdGVhbUFkZHIADmxhc3RUZWFtVGltS2V5AhRsYXN0Q2xhaW1lZFRpbWVfdGVhbQAOdGVhbUFtdExlZnRLZXkCDnRlYW1BbW91bnRMZWZ0ABRsYXN0QWN0aXZpdGllc1RpbUtleQIabGFzdENsYWltZWRUaW1lX2FjdGl2aXRpZXMADWFjdEFtdExlZnRLZXkCFGFjdGl2aXRpZXNBbW91bnRMZWZ0ABFzdGFrZXJzQW10TGVmdEtleQIRc3Rha2Vyc0Ftb3VudExlZnQBFmtleUxhc3RDbGFpbVRpbWVCeVVzZXIBBGFkZHIJAKwCAgIUbGFzdENsYWltZWRUaW1lVXNlcl8FBGFkZHIBDWRpc3RyQnlQZXJpb2QCDGlzc3VlZEFtb3VudAZwZXJpb2QJAGsDBQxpc3N1ZWRBbW91bnQJAGgCBQxQTEFZRVJfU0hBUkUJAGQCBQZwZXJpb2QAAQkAaAIABgUDTTZfABF3bGdJc3N1ZTEwVGltZUtleQIPd2xnX2lzc3VlMTBUaW1lAA53bGdJc3N1ZVRpbUtleQINd2xnX2lzc3VlVGltZQAPd2xnSXNzdWVkQW10S2V5AhB3bGdfaXNzdWVkQW1vdW50AA56Yklzc3VlZEFtdEtleQISemJpbGxfaXNzdWVkQW1vdW50ARdrZXlBY3Jlc1N0YWtlZEFtdEJ5VXNlcgEEYWRkcgkArAICAhhhY3Jlc1N0YWtlZEFtb3VudEJ5VXNlcl8FBGFkZHIAEmFjcmVzU3Rha2RUb3RhbEtleQIWYWNyZXNTdGFrZWRBbW91bnRUb3RhbAAUdG90YWxGYXJtaW5nUG93ZXJLZXkCEXRvdGFsRmFybWluZ1Bvd2VyAAlkYXBwMlJlc3QAAAAMZGFwcDJTdGFraW5nAAEACGRhcHAyV2xnAAIAC2RhcHAyUHV6emxlAAMAD2RhcHAySW52ZXN0RnVuZAAEARBrZXlVc2VyRnVsbEJvbnVzAQRhZGRyCQCsAgICDnVzZXJGdWxsQm9udXNfBQRhZGRyAApsZXZlbEFjcmVzCQDMCAIAAAkAzAgCAAoJAMwIAgAUCQDMCAIAKAkAzAgCAFAJAMwIAgCWAQkAzAgCAPoBCQDMCAIAkAMJAMwIAgC8BQkAzAgCAOgHBQNuaWwBD2dldExldmVsQnlBY3JlcwEFYWNyZXMEA2FjcgkAaQIJAGQCBQVhY3JlcwD/wdcvBQNNOF8KAQdjaGVja2VyAgNhY2MEaXRlbQMJAGcCBQRpdGVtBQNhY3IFA2FjYwkAZAIFA2FjYwABCgACJGwFCmxldmVsQWNyZXMKAAIkcwkAkAMBBQIkbAoABSRhY2MwAAAKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBB2NoZWNrZXICBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDEwCQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoBFmdldEZhcm1pbmdQb3dlckJ5QWNyZXMBBWFjcmVzCQBoAgkAaAIFBWFjcmVzABQJAGQCCQEPZ2V0TGV2ZWxCeUFjcmVzAQUFYWNyZXMABAEeZ2V0RmFybWluZ1Bvd2VyQnlBY3Jlc0FuZEJvbnVzAgVhY3JlcwZib251czYECm5vdEJvbnVzZWQJARZnZXRGYXJtaW5nUG93ZXJCeUFjcmVzAQUFYWNyZXMJAJQKAgkAawMFCm5vdEJvbnVzZWQJAGQCBQNNNl8FBmJvbnVzNgUDTTZfBQpub3RCb251c2VkARBnZXRGYXJtaW5nUG93ZXJzAhJ1c2VyQWRkclN0ck9yRW1wdHkOYWNyZXMyQ29udHJhY3QEB3RvdGFsRlAJAQt2YWx1ZU9yRWxzZQIJAJoIAgUOYWNyZXMyQ29udHJhY3QFFHRvdGFsRmFybWluZ1Bvd2VyS2V5AAAECXVzZXJBY3JlcwkBC3ZhbHVlT3JFbHNlAgkAmggCBQ5hY3JlczJDb250cmFjdAkBF2tleUFjcmVzU3Rha2VkQW10QnlVc2VyAQUSdXNlckFkZHJTdHJPckVtcHR5AAAECXVzZXJCb251cwkBC3ZhbHVlT3JFbHNlAgkAmggCBQ5hY3JlczJDb250cmFjdAkBEGtleVVzZXJGdWxsQm9udXMBBRJ1c2VyQWRkclN0ck9yRW1wdHkAAAQIJHQwNzkxMTkJAR5nZXRGYXJtaW5nUG93ZXJCeUFjcmVzQW5kQm9udXMCBQl1c2VyQWNyZXMFCXVzZXJCb251cwQNdXNlckZQYm9udXNlZAgFCCR0MDc5MTE5Al8xBBB1c2VyRlBub3RCb251c2VkCAUIJHQwNzkxMTkCXzIJAMwIAgUHdG90YWxGUAkAzAgCBQ11c2VyRlBib251c2VkCQDMCAIFEHVzZXJGUG5vdEJvbnVzZWQJAMwIAgUJdXNlckJvbnVzBQNuaWwACmlkeFRvdGFsRlAAAAAQaWR4VXNlckZQYm9udXNlZAABAAtpeFdsZ0Ftb3VudAAAAAhpeFdsZ1dsZwABAAppeFdsZ1ByaWNlAAIACml4V2xnRnVuZHMAAwANaXhXbGdBY3Rpdml0eQAEAAtpeFdsZ0FjcmVzMgAFAA5peFdsZ0FyYml0cmFnZQAGAAlpeFdsZ1Bvb2wABwAOaXhXbGdJc3N1ZVRpbWUACAAUaXhXbGdMYXN0VGVhbUFjdFRpbWUACQAOaXhXbGdUZWFtVG90YWwACgAPaXhXbGdUZWFtQW1MZWZ0AAsAE2l4V2xnVGVhbUFtQXZhaWxOb3cADAAPaXhXbGdUZWFtV2xnb2xkAA0ADWl4V2xnQWN0VG90YWwADgAOaXhXbGdBY3RBbUxlZnQADwASaXhXbGdBY3RBbUF2YWlsTm93ABAADml4V2xnQWN0V2xnb2xkABEADml4V2xnQ3VyUGVyaW9kABIAEGl4V2xnQW1MZWZ0VG90YWwAEwAaaXhXbGdDdXJQZXJpb2REaXN0cmlidXRpb24AFAARaXhXbGdMYXN0VXNlclRpbWUAFQAVaXhXbGdJbnZlc3RGdW5kQW1vdW50ABYAE2l4V2xnVXNlckFtQXZhaWxOb3cAFwAQaXhXbGdFZmZVc2VyVGltZQAYABJpeFdsZ0lzc3VlMTBBbW91bnQAGQAbaXhXbGdNYXJrZXRpbmdJc3N1ZTEwQW1vdW50ABoAFml4V2xnVGVhbUlzc3VlMTBBbW91bnQAGwAPaXhXbGdVc2VyMTBwYXJ0ABwAEGl4V2xnSXNzdWUxMFRpbWUAHQAWaXhXbGdUb3RhbEZhcm1pbmdQb3dlcgAeABVpeFdsZ0FjcmVzU3Rha2VkVG90YWwAHwEMZ2V0V2xnU3RhdHMyBAt1c2VyQWRkck9wdAljb250cmFjdHMGdXNkdElkFXVzZHRCYWxhbmNlQ29ycmVjdGlvbgQMaXNzdWVkQW1vdW50CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgkAkQMCBQljb250cmFjdHMFCGRhcHAyV2xnBQ93bGdJc3N1ZWRBbXRLZXkCGFdMR09MRCBpcyBub3QgaXNzdWVkIHlldAQHcmVzdFVzZAkA8AcCCQCRAwIFCWNvbnRyYWN0cwUJZGFwcDJSZXN0BQZ1c2R0SWQEBndsZ1VzZAkAZQIJAPAHAgkAkQMCBQljb250cmFjdHMFCGRhcHAyV2xnBQZ1c2R0SWQFFXVzZHRCYWxhbmNlQ29ycmVjdGlvbgQJcHV6emxlVXNkCQDwBwIJAJEDAgUJY29udHJhY3RzBQtkYXBwMlB1enpsZQUGdXNkdElkBAlhY3JlczJVc2QJAPAHAgkAkQMCBQljb250cmFjdHMFDGRhcHAyU3Rha2luZwUGdXNkdElkBBFpbnZlc3RGbmRDb250cmFjdAkAkQMCBQljb250cmFjdHMFD2RhcHAySW52ZXN0RnVuZAQPaW52ZXN0RnVuZFRvdGFsCQBkAgkA8AcCBRFpbnZlc3RGbmRDb250cmFjdAUGdXNkdElkCQELdmFsdWVPckVsc2UCCQCaCAIFEWludmVzdEZuZENvbnRyYWN0BQ56Yklzc3VlZEFtdEtleQAABA10b3RhbEZ1bmRzVXNkCQBkAgkAZAIFCWFjcmVzMlVzZAUGd2xnVXNkBQ9pbnZlc3RGdW5kVG90YWwEBXdsZ0lkCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJwIAgkAkQMCBQljb250cmFjdHMFCGRhcHAyV2xnAgt3bGdfYXNzZXRJZAITTm90IGluaXRpYWxpemVkIHlldAQDbm93CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAQJaXNzdWVUaW1lCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgkAkQMCBQljb250cmFjdHMFCGRhcHAyV2xnBQ53bGdJc3N1ZVRpbUtleQIPTm90IGluaXRpYWxpemVkBAZ3bGdXbGcJAPAHAgkAkQMCBQljb250cmFjdHMFCGRhcHAyV2xnBQV3bGdJZAQJdGVhbVRvdGFsCQBrAwUMaXNzdWVkQW1vdW50BQpURUFNX1NIQVJFBQNNNl8EDnRlYW1BbW91bnRMZWZ0CQELdmFsdWVPckVsc2UCCQCaCAIJAJEDAgUJY29udHJhY3RzBQhkYXBwMldsZwUOdGVhbUFtdExlZnRLZXkFCXRlYW1Ub3RhbAQMbGFzdFRlYW1UaW1lCQELdmFsdWVPckVsc2UCCQCaCAIJAJEDAgUJY29udHJhY3RzBQhkYXBwMldsZwUObGFzdFRlYW1UaW1LZXkFCWlzc3VlVGltZQQIdGVhbUFkZHIJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQV2YWx1ZQEJAJ0IAgkAkQMCBQljb250cmFjdHMFCGRhcHAyV2xnBQp0ZWFtQWRyS2V5BBZ0ZWFtQW1vdW50QXZhaWxhYmxlTm93CQCXAwEJAMwIAgkAawMFCXRlYW1Ub3RhbAkAZQIFA25vdwUMbGFzdFRlYW1UaW1lCQBoAgADBQtZRUFSX01JTExJUwkAzAgCBQ50ZWFtQW1vdW50TGVmdAUDbmlsBAp0ZWFtV2xnb2xkCQDwBwIFCHRlYW1BZGRyBQV3bGdJZAQIYWN0VG90YWwJAGsDBQxpc3N1ZWRBbW91bnQFDkFDVElWSVRZX1NIQVJFBQNNNl8EDWFjdEFtb3VudExlZnQJAQt2YWx1ZU9yRWxzZQIJAJoIAgkAkQMCBQljb250cmFjdHMFCGRhcHAyV2xnBQ1hY3RBbXRMZWZ0S2V5BQhhY3RUb3RhbAQSbGFzdEFjdGl2aXRpZXNUaW1lCQELdmFsdWVPckVsc2UCCQCaCAIJAJEDAgUJY29udHJhY3RzBQhkYXBwMldsZwUUbGFzdEFjdGl2aXRpZXNUaW1LZXkFCWlzc3VlVGltZQQVYWN0QW1vdW50QXZhaWxhYmxlTm93CQCXAwEJAMwIAgkAawMFCGFjdFRvdGFsCQBlAgUDbm93BRJsYXN0QWN0aXZpdGllc1RpbWUJAGgCAAMFC1lFQVJfTUlMTElTCQDMCAIFDWFjdEFtb3VudExlZnQFA25pbAQJYWN0V2xnb2xkCQDwBwIJAJEDAgUJY29udHJhY3RzBQlkYXBwMlJlc3QFBXdsZ0lkBAxsYXN0VXNlclRpbWUJAQt2YWx1ZU9yRWxzZQIJAJoIAgkAkQMCBQljb250cmFjdHMFCGRhcHAyV2xnCQEWa2V5TGFzdENsYWltVGltZUJ5VXNlcgEFC3VzZXJBZGRyT3B0BQlpc3N1ZVRpbWUEDmxhc3RVc2VyUGVyaW9kCQBpAgkAZQIFDGxhc3RVc2VyVGltZQUJaXNzdWVUaW1lBQtZRUFSX01JTExJUwQKbm93TGltaXRlZAkAlwMBCQDMCAIFA25vdwkAzAgCCQBkAgUJaXNzdWVUaW1lCQBoAgADBQtZRUFSX01JTExJUwUDbmlsBAljdXJQZXJpb2QJAJcDAQkAzAgCCQBpAgkAZQIFA25vdwUJaXNzdWVUaW1lBQtZRUFSX01JTExJUwkAzAgCAAIFA25pbAQDZWZmCQEQZ2V0RmFybWluZ1Bvd2VycwIFC3VzZXJBZGRyT3B0CQCRAwIFCWNvbnRyYWN0cwUMZGFwcDJTdGFraW5nBBVjdXJQZXJpb2REaXN0cmlidXRpb24JAQ1kaXN0ckJ5UGVyaW9kAgUMaXNzdWVkQW1vdW50BQljdXJQZXJpb2QEDXByZXZQZXJpb2RFbmQJAGQCBQlpc3N1ZVRpbWUJAGgCBQtZRUFSX01JTExJUwUJY3VyUGVyaW9kBBFwcmV2UHJldlBlcmlvZEVuZAkAZAIFCWlzc3VlVGltZQkAaAIFC1lFQVJfTUlMTElTCQBlAgUJY3VyUGVyaW9kAAEEAmEwCQBrAwUVY3VyUGVyaW9kRGlzdHJpYnV0aW9uCQBlAgUKbm93TGltaXRlZAUMbGFzdFVzZXJUaW1lBQtZRUFSX01JTExJUwQNdXNlckF2YWlsYWJsZQMJAAACBQ5sYXN0VXNlclBlcmlvZAUJY3VyUGVyaW9kBQJhMAMJAAACBQ5sYXN0VXNlclBlcmlvZAkAZQIFCWN1clBlcmlvZAABBAJhMQkAawMJAQ1kaXN0ckJ5UGVyaW9kAgUMaXNzdWVkQW1vdW50CQBlAgUJY3VyUGVyaW9kAAEJAGUCBQ1wcmV2UGVyaW9kRW5kBQxsYXN0VXNlclRpbWUFC1lFQVJfTUlMTElTCQBkAgUCYTEFAmEwBAJhMgkAawMJAQ1kaXN0ckJ5UGVyaW9kAgUMaXNzdWVkQW1vdW50CQBlAgUJY3VyUGVyaW9kAAIJAGUCBRFwcmV2UHJldlBlcmlvZEVuZAUMbGFzdFVzZXJUaW1lBQtZRUFSX01JTExJUwQCYTEJAQ1kaXN0ckJ5UGVyaW9kAgUMaXNzdWVkQW1vdW50CQBlAgUJY3VyUGVyaW9kAAEJAGQCCQBkAgUCYTIFAmExBQJhMAQPYW1vdW50TGVmdFRvdGFsCQELdmFsdWVPckVsc2UCCQCaCAIJAJEDAgUJY29udHJhY3RzBQhkYXBwMldsZwURc3Rha2Vyc0FtdExlZnRLZXkAAAQKdXNlckFtb3VudAMJAQIhPQIJAJEDAgUDZWZmBQppZHhUb3RhbEZQAAAJAGsDBQ11c2VyQXZhaWxhYmxlCQCRAwIFA2VmZgUQaWR4VXNlckZQYm9udXNlZAkAkQMCBQNlZmYFCmlkeFRvdGFsRlAAAAQPbGFzdElzc3VlMTBUaW1lCQELdmFsdWVPckVsc2UCCQCaCAIJAJEDAgUJY29udHJhY3RzBQhkYXBwMldsZwURd2xnSXNzdWUxMFRpbWVLZXkFEU5FV19TVEFLSU5HX1NUQVJUBA1pc3N1ZTEwQW1vdW50CQBrAwUHSVNTVUUxMAkAlgMBCQDMCAIJAGUCBQNub3cFD2xhc3RJc3N1ZTEwVGltZQkAzAgCAAAFA25pbAUGREFZX01TBBZtYXJrZXRpbmdJc3N1ZTEwQW1vdW50CQBrAwUNaXNzdWUxMEFtb3VudAURTUFSS0VUSU5HMTBfU0hBUkUFA002XwQRdGVhbUlzc3VlMTBBbW91bnQJAGsDBQ1pc3N1ZTEwQW1vdW50BQxURUFNMTBfU0hBUkUFA002XwQOdXNlcjEwSW50ZXJ2YWwJAJYDAQkAzAgCCQBlAgUDbm93CQCWAwEJAMwIAgURTkVXX1NUQUtJTkdfU1RBUlQJAMwIAgUMbGFzdFVzZXJUaW1lBQNuaWwJAMwIAgAABQNuaWwECnVzZXIxMHBhcnQDCQECIT0CCQCRAwIFA2VmZgUKaWR4VG90YWxGUAAACQBrAwkAawMJAGsDBQdJU1NVRTEwBQ51c2VyMTBJbnRlcnZhbAUGREFZX01TCQCRAwIFA2VmZgUQaWR4VXNlckZQYm9udXNlZAkAkQMCBQNlZmYFCmlkeFRvdGFsRlAFD1BMQVlFUlMxMF9TSEFSRQUDTTZfAAAEDm5ld0lzc3VlMTBUaW1lCQCWAwEJAMwIAgURTkVXX1NUQUtJTkdfU1RBUlQJAMwIAgUDbm93BQNuaWwEEGFjcmVzU3Rha2VkVG90YWwJAQt2YWx1ZU9yRWxzZQIJAJoIAgkAkQMCBQljb250cmFjdHMFDGRhcHAyU3Rha2luZwUSYWNyZXNTdGFrZFRvdGFsS2V5AAAJAMwIAgUMaXNzdWVkQW1vdW50CQDMCAIFBndsZ1dsZwkAzAgCCQBrAwUNdG90YWxGdW5kc1VzZAUDTThfBQxpc3N1ZWRBbW91bnQJAMwIAgUNdG90YWxGdW5kc1VzZAkAzAgCBQdyZXN0VXNkCQDMCAIFCWFjcmVzMlVzZAkAzAgCBQZ3bGdVc2QJAMwIAgUJcHV6emxlVXNkCQDMCAIFCWlzc3VlVGltZQkAzAgCBQxsYXN0VGVhbVRpbWUJAMwIAgUJdGVhbVRvdGFsCQDMCAIFDnRlYW1BbW91bnRMZWZ0CQDMCAIFFnRlYW1BbW91bnRBdmFpbGFibGVOb3cJAMwIAgUKdGVhbVdsZ29sZAkAzAgCBQhhY3RUb3RhbAkAzAgCBQ1hY3RBbW91bnRMZWZ0CQDMCAIFFWFjdEFtb3VudEF2YWlsYWJsZU5vdwkAzAgCBQlhY3RXbGdvbGQJAMwIAgUJY3VyUGVyaW9kCQDMCAIFD2Ftb3VudExlZnRUb3RhbAkAzAgCBRVjdXJQZXJpb2REaXN0cmlidXRpb24JAMwIAgUMbGFzdFVzZXJUaW1lCQDMCAIFD2ludmVzdEZ1bmRUb3RhbAkAzAgCBQp1c2VyQW1vdW50CQDMCAIFCm5vd0xpbWl0ZWQJAMwIAgUNaXNzdWUxMEFtb3VudAkAzAgCBRZtYXJrZXRpbmdJc3N1ZTEwQW1vdW50CQDMCAIFEXRlYW1Jc3N1ZTEwQW1vdW50CQDMCAIFCnVzZXIxMHBhcnQJAMwIAgUObmV3SXNzdWUxMFRpbWUJAMwIAgkAkQMCBQNlZmYFCmlkeFRvdGFsRlAJAMwIAgUQYWNyZXNTdGFrZWRUb3RhbAUDbmlsAQ53YWxsZXRJbnRlcm5hbAEOdXNlckFkZHJlc3NPcHQEBGFkZHIJAKYIAQUOdXNlckFkZHJlc3NPcHQEB2JhbGFuY2UDCQEJaXNEZWZpbmVkAQUEYWRkcgkA7wcBCQEFdmFsdWUBBQRhZGRyCQEOQmFsYW5jZURldGFpbHMEAAAAAAAAAAAEC3VzZHRCYWxhbmNlAwkBCWlzRGVmaW5lZAEFBGFkZHIJAPAHAgkBBXZhbHVlAQUEYWRkcgULdXNkdEFzc2V0SWQAAAQNd2xnb2xkQmFsYW5jZQMJAQlpc0RlZmluZWQBBQRhZGRyCQDwBwIJAQV2YWx1ZQEFBGFkZHIFCndsZ0Fzc2V0SWQAAAQKY3VzdG9tTmFtZQkBC3ZhbHVlT3JFbHNlAgkAnQgCBQ5hY3JlczJDb250cmFjdAkBFmtleUFkZHJlc3NUb0N1c3RvbU5hbWUBBQ51c2VyQWRkcmVzc09wdAUOdXNlckFkZHJlc3NPcHQECHJlZkJ5S2V5CQEPa2V5QWRkcmVzc1JlZkJ5AQUOdXNlckFkZHJlc3NPcHQEBXJlZkJ5CQCdCAIFDmFjcmVzMkNvbnRyYWN0BQhyZWZCeUtleQQEcmVmcwkBC3ZhbHVlT3JFbHNlAgkAnQgCBQ5hY3JlczJDb250cmFjdAkBE2tleUFkZHJlc3NSZWZlcnJhbHMBBQ51c2VyQWRkcmVzc09wdAIABAhsYXN0VHhJZAkBC3ZhbHVlT3JFbHNlAgkAnQgCBQ5hY3JlczJDb250cmFjdAkBFWtleUxhc3RXZWVrVHhJZEJ5VXNlcgEFDnVzZXJBZGRyZXNzT3B0AgAEB2N1clR4SWQJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUOYWNyZXMyQ29udHJhY3QJARRrZXlDdXJXZWVrVHhJZEJ5VXNlcgEFDnVzZXJBZGRyZXNzT3B0AgAEDGFjcmVzQmFsYW5jZQMJAQlpc0RlZmluZWQBBQRhZGRyCQDwBwIJAQV2YWx1ZQEFBGFkZHIFDGFjcmVzQXNzZXRJZAAABAtzdGFrZWRBY3JlcwkBC3ZhbHVlT3JFbHNlAgkAmggCBQ5hY3JlczJDb250cmFjdAkBF2tleUFjcmVzU3Rha2VkQW10QnlVc2VyAQUOdXNlckFkZHJlc3NPcHQAAAQDbHZsCQEPZ2V0TGV2ZWxCeUFjcmVzAQULc3Rha2VkQWNyZXMEAmZwCQEQZ2V0RmFybWluZ1Bvd2VycwIFDnVzZXJBZGRyZXNzT3B0BQ5hY3JlczJDb250cmFjdAQOYWNyZXNUb05leHRMdmwDCQBnAgUDbHZsCQCQAwEFCmxldmVsQWNyZXMAAAkAZQIJAGQCCQBoAgkAkQMCBQpsZXZlbEFjcmVzBQNsdmwFA004XwABBQtzdGFrZWRBY3JlcwkAzAgCCQCsAgICEiVzJXNfX2N1c3RvbU5hbWVfXwUKY3VzdG9tTmFtZQkAzAgCCQCsAgICEiVzJXNfX3JlZmVycmVkQnlfXwkBC3ZhbHVlT3JFbHNlAgUFcmVmQnkCAAkAzAgCCQCsAgICESVzJXNfX3JlZmVycmFsc19fBQRyZWZzCQDMCAIJAKwCAgIUJXMlc19fbGFzdFdlZWtUeElkX18FCGxhc3RUeElkCQDMCAIJAKwCAgITJXMlc19fY3VyV2Vla1R4SWRfXwUIbGFzdFR4SWQJAMwIAgkArAICAhQlcyVkX193YXZlc0JhbGFuY2VfXwkApAMBCAUHYmFsYW5jZQlhdmFpbGFibGUJAMwIAgkArAICAhMlcyVkX191c2R0QmFsYW5jZV9fCQCkAwEFC3VzZHRCYWxhbmNlCQDMCAIJAKwCAgIVJXMlZF9fd2xnb2xkQmFsYW5jZV9fCQCkAwEFDXdsZ29sZEJhbGFuY2UJAMwIAgkArAICAhQlcyVkX19hY3Jlc0JhbGFuY2VfXwkApAMBBQxhY3Jlc0JhbGFuY2UJAMwIAgkArAICAhMlcyVkX19zdGFrZWRBY3Jlc19fCQCkAwEFC3N0YWtlZEFjcmVzCQDMCAIJAKwCAgISJXMlZF9fY3VycmVudEx2bF9fCQCkAwEFA2x2bAkAzAgCCQCsAgICFiVzJWRfX2FjcmVzVG9OZXh0THZsX18JAKQDAQUOYWNyZXNUb05leHRMdmwJAMwIAgkArAICAhglcyVkX191c2VyRmFybWluZ1Bvd2VyX18JAKQDAQkAkQMCBQJmcAUQaWR4VXNlckZQYm9udXNlZAkAzAgCCQCsAgICGSVzJWRfX3RvdGFsRmFybWluZ1Bvd2VyX18JAKQDAQkAkQMCBQJmcAUKaWR4VG90YWxGUAUDbmlsBQFpAQ1jb25zdHJ1Y3RvclYxAQljb250cmFjdHMDCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAhJwZXJtaXNzaW9ucyBkZW5pZWQKAQpkZXNjcmlwdG9yAgNhY2MLaWdub3JlZEl0ZW0JAKwCAgUDYWNjAgIlcwQFZGVzY3IKAAIkbAUJY29udHJhY3RzCgACJHMJAJADAQUCJGwKAAUkYWNjMAIACgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQpkZXNjcmlwdG9yAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxMAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQprZXlSZXN0Q2ZnAAkAuQkCCQDMCAIFBWRlc2NyBQljb250cmFjdHMFA1NFUAkAzAgCCQELU3RyaW5nRW50cnkCCQEPa2V5UmVzdDJBZGRyZXNzAAkApQgBBQR0aGlzBQNuaWwBaQESd2FsbGV0SW5mb1JFQURPTkxZAQ51c2VyQWRkcmVzc09wdAkAlAoCBQNuaWwJAQ53YWxsZXRJbnRlcm5hbAEFDnVzZXJBZGRyZXNzT3B0AWkBFmNvbnZlcnNpb25JbmZvUkVBRE9OTFkBDnVzZXJBZGRyZXNzT3B0BA9vbGRBY3Jlc0FkZHJlc3MJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARFAZXh0ck5hdGl2ZSgxMDUzKQIFDmFjcmVzMkNvbnRyYWN0BRNvbGRBY3Jlc0NvbnRyYWN0S2V5BAskdDA0Njk1NDgxNwkBDGFzVHVwbGUySW50cwEJAPwHBAUPb2xkQWNyZXNBZGRyZXNzAhd1bnN0YWtlQWxsQWNyZXNSRUFET05MWQkAzAgCBQ51c2VyQWRkcmVzc09wdAUDbmlsBQNuaWwEDXVuc3Rha2VkQWNyZXMIBQskdDA0Njk1NDgxNwJfMQQMY2xhaW1lZEFjcmVzCAULJHQwNDY5NTQ4MTcCXzIECyR0MDQ4MjA0OTY5CQEMYXNUdXBsZTRJbnRzAQkA/AcEBQ5hY3JlczJDb250cmFjdAIUdW5zdGFrZUxhbmRzUkVBRE9OTFkJAMwIAgUOdXNlckFkZHJlc3NPcHQFA25pbAUDbmlsBA9hY3Jlc0Zyb21QaWVjZXMIBQskdDA0ODIwNDk2OQJfMQQMYWNyZXNGcm9tUmVzCAULJHQwNDgyMDQ5NjkCXzIEDGFjcmVzRnJvbU1hdAgFCyR0MDQ4MjA0OTY5Al8zBA1hY3Jlc0Zyb21Qcm9kCAULJHQwNDgyMDQ5NjkCXzQEEW9sZFN0YWtpbmdBZGRyZXNzCQERQGV4dHJOYXRpdmUoMTA2MikBBRVvbGRTdGFraW5nQ29udHJhY3RTdHIEC2R1Y2tBc3NldElkCQELdmFsdWVPckVsc2UCCQCdCAIFEW9sZFN0YWtpbmdBZGRyZXNzCQEUa2V5U3Rha2VkRHVja0J5T3duZXIBBQ51c2VyQWRkcmVzc09wdAIABAskdDA1MTQ3NTM2OQMJAQIhPQIFC2R1Y2tBc3NldElkAgAJAQxhc1R1cGxlM0ludHMBCQD8BwQFEW9sZFN0YWtpbmdBZGRyZXNzAhN1bnN0YWtlRHVja1JFQURPTkxZCQDMCAIFC2R1Y2tBc3NldElkCQDMCAIFDnVzZXJBZGRyZXNzT3B0BQNuaWwFA25pbAkAlQoDAAAAAAAABBBhY3Jlc0Zyb21EdWNrUmVzCAULJHQwNTE0NzUzNjkCXzEEEGFjcmVzRnJvbUR1Y2tNYXQIBQskdDA1MTQ3NTM2OQJfMgQRYWNyZXNGcm9tRHVja1Byb2QIBQskdDA1MTQ3NTM2OQJfMwkAlAoCBQNuaWwJAMwIAgkArAICAhUlcyVkX191bnN0YWtlZEFjcmVzX18JAKQDAQUNdW5zdGFrZWRBY3JlcwkAzAgCCQCsAgICFCVzJWRfX2NsYWltZWRBY3Jlc19fCQCkAwEFDGNsYWltZWRBY3JlcwkAzAgCCQCsAgICFyVzJWRfX2FjcmVzRnJvbVBpZWNlc19fCQCkAwEFD2FjcmVzRnJvbVBpZWNlcwkAzAgCCQCsAgICFCVzJWRfX2FjcmVzRnJvbVJlc19fCQCkAwEFDGFjcmVzRnJvbVJlcwkAzAgCCQCsAgICFCVzJWRfX2FjcmVzRnJvbU1hdF9fCQCkAwEFDGFjcmVzRnJvbU1hdAkAzAgCCQCsAgICFSVzJWRfX2FjcmVzRnJvbVByb2RfXwkApAMBBQ1hY3Jlc0Zyb21Qcm9kCQDMCAIJAKwCAgIYJXMlZF9fYWNyZXNGcm9tRHVja1Jlc19fCQCkAwEFEGFjcmVzRnJvbUR1Y2tSZXMJAMwIAgkArAICAhglcyVkX19hY3Jlc0Zyb21EdWNrTWF0X18JAKQDAQUQYWNyZXNGcm9tRHVja01hdAkAzAgCCQCsAgICGSVzJWRfX2FjcmVzRnJvbUR1Y2tQcm9kX18JAKQDAQURYWNyZXNGcm9tRHVja1Byb2QFA25pbAFpARB3bGdTdGF0c1JFQURPTkxZAQt1c2VyQWRkck9wdAQIY3VyU3RhdHMJAQxnZXRXbGdTdGF0czIEBQt1c2VyQWRkck9wdAkAzAgCBQ1yZXN0MkNvbnRyYWN0CQDMCAIFDmFjcmVzMkNvbnRyYWN0CQDMCAIFC3dsZ0NvbnRyYWN0CQDMCAIFEnB1enpsZVBvb2xDb250cmFjdAkAzAgCBRJpbnZlc3RGdW5kQ29udHJhY3QFA25pbAULdXNkdEFzc2V0SWQAAAkAlAoCBQNuaWwJAMwIAgkArAICAhElcyVkX193bGdBbW91bnRfXwkApAMBCQCRAwIFCGN1clN0YXRzBQtpeFdsZ0Ftb3VudAkAzAgCCQCsAgICDiVzJWRfX3dsZ1dsZ19fCQCkAwEJAJEDAgUIY3VyU3RhdHMFCGl4V2xnV2xnCQDMCAIJAKwCAgIQJXMlZF9fd2xnUHJpY2VfXwkApAMBCQCRAwIFCGN1clN0YXRzBQppeFdsZ1ByaWNlCQDMCAIJAKwCAgIRJXMlZF9fdXNkdEZ1bmRzX18JAKQDAQkAkQMCBQhjdXJTdGF0cwUKaXhXbGdGdW5kcwkAzAgCCQCsAgICFCVzJWRfX3VzZHRBY3Rpdml0eV9fCQCkAwEJAJEDAgUIY3VyU3RhdHMFDWl4V2xnQWN0aXZpdHkJAMwIAgkArAICAhMlcyVkX191c2R0U3Rha2luZ19fCQCkAwEJAJEDAgUIY3VyU3RhdHMFC2l4V2xnQWNyZXMyCQDMCAIJAKwCAgIVJXMlZF9fdXNkdEFyYml0cmFnZV9fCQCkAwEJAJEDAgUIY3VyU3RhdHMFDml4V2xnQXJiaXRyYWdlCQDMCAIJAKwCAgIQJXMlZF9fdXNkdFBvb2xfXwkApAMBCQCRAwIFCGN1clN0YXRzBQlpeFdsZ1Bvb2wJAMwIAgkArAICAhQlcyVkX193bGdJc3N1ZVRpbWVfXwkApAMBCQCRAwIFCGN1clN0YXRzBQ5peFdsZ0lzc3VlVGltZQkAzAgCCQCsAgICGiVzJWRfX3dsZ0xhc3RUZWFtQWN0VGltZV9fCQCkAwEJAJEDAgUIY3VyU3RhdHMFFGl4V2xnTGFzdFRlYW1BY3RUaW1lCQDMCAIJAKwCAgIUJXMlZF9fd2xnVGVhbVRvdGFsX18JAKQDAQkAkQMCBQhjdXJTdGF0cwUOaXhXbGdUZWFtVG90YWwJAMwIAgkArAICAhUlcyVkX193bGdUZWFtQW1MZWZ0X18JAKQDAQkAkQMCBQhjdXJTdGF0cwUPaXhXbGdUZWFtQW1MZWZ0CQDMCAIJAKwCAgIZJXMlZF9fd2xnVGVhbUFtQXZhaWxOb3dfXwkApAMBCQCRAwIFCGN1clN0YXRzBRNpeFdsZ1RlYW1BbUF2YWlsTm93CQDMCAIJAKwCAgIVJXMlZF9fd2xnVGVhbVdsZ29sZF9fCQCkAwEJAJEDAgUIY3VyU3RhdHMFD2l4V2xnVGVhbVdsZ29sZAkAzAgCCQCsAgICEyVzJWRfX3dsZ0FjdFRvdGFsX18JAKQDAQkAkQMCBQhjdXJTdGF0cwUNaXhXbGdBY3RUb3RhbAkAzAgCCQCsAgICFCVzJWRfX3dsZ0FjdEFtTGVmdF9fCQCkAwEJAJEDAgUIY3VyU3RhdHMFDml4V2xnQWN0QW1MZWZ0CQDMCAIJAKwCAgIYJXMlZF9fd2xnQWN0QW1BdmFpbE5vd19fCQCkAwEJAJEDAgUIY3VyU3RhdHMFEml4V2xnQWN0QW1BdmFpbE5vdwkAzAgCCQCsAgICFCVzJWRfX3dsZ0FjdFdsZ29sZF9fCQCkAwEJAJEDAgUIY3VyU3RhdHMFDml4V2xnQWN0V2xnb2xkCQDMCAIJAKwCAgIUJXMlZF9fd2xnQ3VyUGVyaW9kX18JAKQDAQkAkQMCBQhjdXJTdGF0cwUOaXhXbGdDdXJQZXJpb2QJAMwIAgkArAICAhYlcyVkX193bGdBbUxlZnRUb3RhbF9fCQCkAwEJAJEDAgUIY3VyU3RhdHMFEGl4V2xnQW1MZWZ0VG90YWwJAMwIAgkArAICAiAlcyVkX193bGdDdXJQZXJpb2REaXN0cmlidXRpb25fXwkApAMBCQCRAwIFCGN1clN0YXRzBRppeFdsZ0N1clBlcmlvZERpc3RyaWJ1dGlvbgkAzAgCCQCsAgICFyVzJWRfX3dsZ0xhc3RVc2VyVGltZV9fCQCkAwEJAJEDAgUIY3VyU3RhdHMFEWl4V2xnTGFzdFVzZXJUaW1lCQDMCAIJAKwCAgIaJXMlZF9fd2xnSW52ZXN0RnVuZFRvdGFsX18JAKQDAQkAkQMCBQhjdXJTdGF0cwUVaXhXbGdJbnZlc3RGdW5kQW1vdW50CQDMCAIJAKwCAgIZJXMlZF9fd2xnVXNlckFtQXZhaWxOb3dfXwkApAMBCQCRAwIFCGN1clN0YXRzBRNpeFdsZ1VzZXJBbUF2YWlsTm93CQDMCAIJAKwCAgIWJXMlZF9fd2xnRWZmVXNlclRpbWVfXwkApAMBCQCRAwIFCGN1clN0YXRzBRBpeFdsZ0VmZlVzZXJUaW1lCQDMCAIJAKwCAgIaJXMlZF9fd2xnSXNzdWUxMEF2YWlsTm93X18JAKQDAQkAkQMCBQhjdXJTdGF0cwUSaXhXbGdJc3N1ZTEwQW1vdW50CQDMCAIJAKwCAgIjJXMlZF9fd2xnTWFya2V0aW5nSXNzdWUxMEF2YWlsTm93X18JAKQDAQkAkQMCBQhjdXJTdGF0cwUbaXhXbGdNYXJrZXRpbmdJc3N1ZTEwQW1vdW50CQDMCAIJAKwCAgIeJXMlZF9fd2xnVGVhbUlzc3VlMTBBdmFpbE5vd19fCQCkAwEJAJEDAgUIY3VyU3RhdHMFFml4V2xnVGVhbUlzc3VlMTBBbW91bnQJAMwIAgkArAICAh4lcyVkX193bGdVc2VySXNzdWUxMEF2YWlsTm93X18JAKQDAQkAkQMCBQhjdXJTdGF0cwUPaXhXbGdVc2VyMTBwYXJ0CQDMCAIJAKwCAgIaJXMlZF9fd2xnTGFzdElzc3VlMTBUaW1lX18JAKQDAQkAkQMCBQhjdXJTdGF0cwUQaXhXbGdJc3N1ZTEwVGltZQkAzAgCCQCsAgICHCVzJWRfX3dsZ1RvdGFsRmFybWluZ1Bvd2VyX18JAKQDAQkAkQMCBQhjdXJTdGF0cwUWaXhXbGdUb3RhbEZhcm1pbmdQb3dlcgkAzAgCCQCsAgICGyVzJWRfX3dsZ0FjcmVzU3Rha2VkVG90YWxfXwkApAMBCQCRAwIFCGN1clN0YXRzBRVpeFdsZ0FjcmVzU3Rha2VkVG90YWwFA25pbAFpARRsb3R0ZXJ5U3RhdHNSRUFET05MWQELdXNlckFkZHJPcHQEBXRvZGF5CQBpAgUGaGVpZ2h0BQpEQVlfQkxPQ0tTBAR3ZWVrCQBpAgUGaGVpZ2h0BQtXRUVLX0JMT0NLUwQIbGFzdFdlZWsJAGUCBQR3ZWVrAAEEDmN1cldlZWtUaWNrZXRzCQELdmFsdWVPckVsc2UCCQCaCAIFC3dsZ0NvbnRyYWN0CQESa2V5VXNlcldlZWtUaWNrZXRzAgULdXNlckFkZHJPcHQFBHdlZWsAAAQPbGFzdFdlZWtUaWNrZXRzCQELdmFsdWVPckVsc2UCCQCaCAIFC3dsZ0NvbnRyYWN0CQESa2V5VXNlcldlZWtUaWNrZXRzAgULdXNlckFkZHJPcHQFCGxhc3RXZWVrAAAEE2N1cldlZWtUb3RhbFRpY2tldHMJAQt2YWx1ZU9yRWxzZQIJAJoIAgULd2xnQ29udHJhY3QJARNrZXlUb3RhbFdlZWtUaWNrZXRzAQUEd2VlawAABBRsYXN0V2Vla1RvdGFsVGlja2V0cwkBC3ZhbHVlT3JFbHNlAgkAmggCBQt3bGdDb250cmFjdAkBE2tleVRvdGFsV2Vla1RpY2tldHMBBQhsYXN0V2VlawAABAh1c2Vyc0JldAkBC3ZhbHVlT3JFbHNlAgkAnQgCBQt3bGdDb250cmFjdAkBCmtleVVzZXJCZXQBBQt1c2VyQWRkck9wdAIACQCUCgIFA25pbAkAzAgCCQCsAgIJAKwCAgkArAICAhYlcyVkJWRfX3RvdGFsVGlja2V0c19fCQCkAwEFFGxhc3RXZWVrVG90YWxUaWNrZXRzBQNTRVAJAKQDAQUTY3VyV2Vla1RvdGFsVGlja2V0cwkAzAgCCQCsAgIJAKwCAgkArAICAhUlcyVkJWRfX3VzZXJUaWNrZXRzX18JAKQDAQUPbGFzdFdlZWtUaWNrZXRzBQNTRVAJAKQDAQUOY3VyV2Vla1RpY2tldHMJAMwIAgkArAICAhYlcyVkX19ibG9ja2NoYWluV2Vla19fCQCkAwEFBHdlZWsJAMwIAgkArAICAhUlcyVkX19ibG9ja2NoYWluRGF5X18JAKQDAQUFdG9kYXkJAMwIAgkArAICAhglcyVkX19ibG9ja2NoYWluTWludXRlX18JAKQDAQkAagIFBmhlaWdodAUKREFZX0JMT0NLUwkAzAgCCQCsAgICFyVzJWRfX3dpbm5pbmdCZXRUb2RheV9fCQCkAwEJAQp3aW5uaW5nQmV0AQUFdG9kYXkJAMwIAgkArAICAhAlcyVzX191c2Vyc0JldF9fBQh1c2Vyc0JldAUDbmlsAFa0Pe8=", "height": 3386928, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: AvCjaHJGtztMiGkai6bR623nehv9xKK7F26ns1zJCoWa Next: GovWwQwuVtCwDcw3X3AXQkfYN9495bgKL75pnnifBvC4 Diff:
OldNewDifferences
88 let c = {
99 let d = b
1010 if ((base58'2W' == d))
11+ then 1440
12+ else if ((base58'2T' == d))
13+ then 60
14+ else throw("Unknown chain")
15+ }
16+
17+let e = {
18+ let d = b
19+ if ((base58'2W' == d))
20+ then 10080
21+ else if ((base58'2T' == d))
22+ then 180
23+ else throw("Unknown chain")
24+ }
25+
26+let f = {
27+ let d = b
28+ if ((base58'2W' == d))
1129 then base58'9wc3LXNA4TEBsXyKtoLE9mrbDD7WMHXvXrCjZvabLAsi'
1230 else if ((base58'2T' == d))
1331 then base58'6mWwf9mZBjVgkC54idpyaZLQfAosD914wT8fGf2iiY63'
1432 else throw("Unknown chain")
1533 }
1634
17-let e = {
35+let g = {
1836 let d = b
1937 if ((base58'2W' == d))
2038 then "3PFwYta8biEz31zpeFe5DJK8wE5trSpQVF8"
2341 else throw("Unknown chain")
2442 }
2543
26-let f = {
44+let h = {
2745 let d = b
2846 if ((base58'2W' == d))
2947 then "3PLncXtS1U83D6cQbFD3H8rBHPLgzxSFKZ1"
3250 else throw("Unknown chain")
3351 }
3452
35-func g (h,i) = valueOrErrorMessage(getString(h, i), makeString(["mandatory ", toString(h), ".", i, " is not defined"], ""))
53+func i (j,k) = valueOrErrorMessage(getString(j, k), makeString(["mandatory ", toString(j), ".", k, " is not defined"], ""))
3654
3755
38-let j = 1
56+let l = 1
3957
40-let k = 2
58+let m = 2
4159
42-let l = 4
60+let n = 4
4361
44-let m = 5
62+let o = 5
4563
46-func n () = "%s__restConfig"
64+func p () = "%s__restConfig"
4765
4866
49-func o () = "%s__rest2Addr"
67+func q () = "%s__rest2Addr"
5068
5169
52-func p (q) = split_4C(g(q, n()), a)
70+func r (s) = split_4C(i(s, p()), a)
5371
5472
55-func r (s,t) = valueOrErrorMessage(addressFromString(s[t]), ("Rest cfg doesn't contain address at index " + toString(t)))
73+func t (u,v) = valueOrErrorMessage(addressFromString(u[v]), ("Rest cfg doesn't contain address at index " + toString(v)))
5674
5775
58-let u = addressFromStringValue(valueOrElse(getString(this, o()), e))
76+let w = addressFromStringValue(valueOrElse(getString(this, q()), g))
5977
60-let s = p(u)
78+let u = r(w)
6179
62-let v = r(s, j)
80+let x = t(u, l)
6381
64-let w = r(s, k)
82+let y = t(u, m)
6583
66-let x = r(s, l)
84+let z = t(u, n)
6785
68-let y = r(s, m)
86+let A = t(u, o)
6987
70-let z = "oldAcresContract"
88+let B = "oldAcresContract"
7189
72-func A (B) = ("lastWeekTxIdByUser_" + B)
90+func C (D) = ("lastWeekTxIdByUser_" + D)
7391
7492
75-func C (B) = ("curWeekTxIdByUser_" + B)
93+func E (D) = ("curWeekTxIdByUser_" + D)
7694
7795
78-let D = "wlg_assetId"
96+let F = "wlg_assetId"
7997
80-let E = valueOrErrorMessage(getBinary(w, D), "WLGOLD is not issued yet")
98+let G = valueOrErrorMessage(getBinary(y, F), "WLGOLD is not issued yet")
8199
82-let F = "acresAssetId"
100+let H = "acresAssetId"
83101
84-let G = valueOrErrorMessage(getBinary(v, F), "ACRES is not issued yet")
102+let I = valueOrErrorMessage(getBinary(x, H), "ACRES is not issued yet")
85103
86-func H (I) = ("stakedDuckByOwner_" + I)
104+func J (K) = ("stakedDuckByOwner_" + K)
87105
88106
89-func J (B) = ("accountCustomNameByAddr_" + B)
107+func L (D) = ("accountCustomNameByAddr_" + D)
90108
91109
92-func K (B) = ("accRefBy_" + B)
110+func M (D) = ("accRefBy_" + D)
93111
94112
95-func L (B) = ("accReferrals_" + B)
113+func N (D) = ("accReferrals_" + D)
96114
97115
98-func M (N) = {
99- let d = N
116+func O (D) = ("userBet_" + D)
117+
118+
119+func P (D,Q) = ((("userWeekTickets_" + D) + "_") + toString(Q))
120+
121+
122+func R (Q) = ("totalWeekTickets_" + toString(Q))
123+
124+
125+func S (T) = (toInt(value(value(blockInfoByHeight((T * c))).vrf)) % 4)
126+
127+
128+func U (V) = {
129+ let d = V
100130 if ($isInstanceOf(d, "(Int, Int, Int, Int)"))
101131 then {
102- let O = d
103- O
132+ let W = d
133+ W
104134 }
105135 else throw("fail to cast into (Int, Int, Int, Int)")
106136 }
107137
108138
109-func P (N) = {
110- let d = N
139+func X (V) = {
140+ let d = V
111141 if ($isInstanceOf(d, "(Int, Int, Int)"))
112142 then {
113- let O = d
114- O
143+ let W = d
144+ W
115145 }
116146 else throw("fail to cast into (Int, Int, Int)")
117147 }
118148
119149
120-func Q (N) = {
121- let d = N
150+func Y (V) = {
151+ let d = V
122152 if ($isInstanceOf(d, "(Int, Int)"))
123153 then {
124- let O = d
125- O
154+ let W = d
155+ W
126156 }
127157 else throw("fail to cast into (Int, Int)")
128158 }
129159
130160
131-let R = 1000000
161+let Z = 1000000
132162
133-let S = 100000000
163+let aa = 100000000
134164
135-let T = 200000
136-
137-let U = 100000
138-
139-let V = 400000
140-
141-let W = 31557600000
142-
143-let X = 86400000
144-
145-let Y = 1440
146-
147-let Z = 10080
148-
149-let aa = 1000000000
150-
151-let ab = 800000
165+let ab = 200000
152166
153167 let ac = 100000
154168
155-let ad = 100000
169+let ad = 400000
156170
157-let ae = 1731279600000
171+let ae = 31557600000
158172
159-let af = "teamAddr"
173+let af = 86400000
160174
161-let ag = "lastClaimedTime_team"
175+let ag = 1000000000
162176
163-let ah = "teamAmountLeft"
177+let ah = 800000
164178
165-let ai = "lastClaimedTime_activities"
179+let ai = 100000
166180
167-let aj = "activitiesAmountLeft"
181+let aj = 100000
168182
169-let ak = "stakersAmountLeft"
183+let ak = 1731279600000
170184
171-func al (B) = ("lastClaimedTimeUser_" + B)
185+let al = "teamAddr"
186+
187+let am = "lastClaimedTime_team"
188+
189+let an = "teamAmountLeft"
190+
191+let ao = "lastClaimedTime_activities"
192+
193+let ap = "activitiesAmountLeft"
194+
195+let aq = "stakersAmountLeft"
196+
197+func ar (D) = ("lastClaimedTimeUser_" + D)
172198
173199
174-func am (an,ao) = fraction(an, (V * (ao + 1)), (6 * R))
200+func as (at,au) = fraction(at, (ad * (au + 1)), (6 * Z))
175201
176202
177-let ap = "wlg_issue10Time"
203+let av = "wlg_issue10Time"
178204
179-let aq = "wlg_issueTime"
205+let aw = "wlg_issueTime"
180206
181-let ar = "wlg_issuedAmount"
207+let ax = "wlg_issuedAmount"
182208
183-let as = "zbill_issuedAmount"
209+let ay = "zbill_issuedAmount"
184210
185-func at (B) = ("acresStakedAmountByUser_" + B)
211+func az (D) = ("acresStakedAmountByUser_" + D)
186212
187213
188-let au = "acresStakedAmountTotal"
214+let aA = "acresStakedAmountTotal"
189215
190-let av = "totalFarmingPower"
216+let aB = "totalFarmingPower"
191217
192-let aw = 0
218+let aC = 0
193219
194-let ax = 1
220+let aD = 1
195221
196-let ay = 2
222+let aE = 2
197223
198-let az = 3
224+let aF = 3
199225
200-let aA = 4
226+let aG = 4
201227
202-let aB = [0, 10, 20, 40, 80, 150, 250, 400, 700, 1000]
228+func aH (D) = ("userFullBonus_" + D)
203229
204-func aC (aD) = {
205- let aE = ((aD + 99999999) / S)
206- func aF (aG,aH) = if ((aH >= aE))
207- then aG
208- else (aG + 1)
209230
210- let aI = aB
211- let aJ = size(aI)
212- let aK = 0
213- func aL (aM,aN) = if ((aN >= aJ))
214- then aM
215- else aF(aM, aI[aN])
231+let aI = [0, 10, 20, 40, 80, 150, 250, 400, 700, 1000]
216232
217- func aO (aM,aN) = if ((aN >= aJ))
218- then aM
233+func aJ (aK) = {
234+ let aL = ((aK + 99999999) / aa)
235+ func aM (aN,aO) = if ((aO >= aL))
236+ then aN
237+ else (aN + 1)
238+
239+ let aP = aI
240+ let aQ = size(aP)
241+ let aR = 0
242+ func aS (aT,aU) = if ((aU >= aQ))
243+ then aT
244+ else aM(aT, aP[aU])
245+
246+ func aV (aT,aU) = if ((aU >= aQ))
247+ then aT
219248 else throw("List size exceeds 10")
220249
221- aO(aL(aL(aL(aL(aL(aL(aL(aL(aL(aL(aK, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
250+ aV(aS(aS(aS(aS(aS(aS(aS(aS(aS(aS(aR, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
222251 }
223252
224253
225-func aP (aD) = ((aD * 20) * (aC(aD) + 4))
254+func aW (aK) = ((aK * 20) * (aJ(aK) + 4))
226255
227256
228-func aQ (aR,v) = {
229- let aS = valueOrElse(getInteger(v, av), 0)
230- let aT = valueOrElse(getInteger(v, at(aR)), 0)
231- let aU = aP(aT)
232-[aS, aU]
257+func aX (aK,aY) = {
258+ let aZ = aW(aK)
259+ $Tuple2(fraction(aZ, (Z + aY), Z), aZ)
233260 }
234261
235262
236-func aV (B) = ("userBet_" + B)
237-
238-
239-func aW (B,aX) = ((("userWeekTickets_" + B) + "_") + toString(aX))
240-
241-
242-func aY (aX) = ("totalWeekTickets_" + toString(aX))
243-
244-
245-func aZ (ba) = (toInt(value(value(blockInfoByHeight((ba * Y))).vrf)) % 4)
246-
247-
248-let bb = 0
249-
250-let bc = 1
251-
252-let bd = 0
253-
254-let be = 1
255-
256-let bf = 2
257-
258-let bg = 3
259-
260-let bh = 4
261-
262-let bi = 5
263-
264-let bj = 6
265-
266-let bk = 7
267-
268-let bl = 8
269-
270-let bm = 9
271-
272-let bn = 10
273-
274-let bo = 11
275-
276-let bp = 12
277-
278-let bq = 13
279-
280-let br = 14
281-
282-let bs = 15
283-
284-let bt = 16
285-
286-let bu = 17
287-
288-let bv = 18
289-
290-let bw = 19
291-
292-let bx = 20
293-
294-let by = 21
295-
296-let bz = 22
297-
298-let bA = 23
299-
300-let bB = 24
301-
302-let bC = 25
303-
304-let bD = 26
305-
306-let bE = 27
307-
308-let bF = 28
309-
310-let bG = 29
311-
312-let bH = 30
313-
314-let bI = 31
315-
316-func bJ (bK,bL,bM,bN) = {
317- let an = valueOrErrorMessage(getInteger(bL[ay], ar), "WLGOLD is not issued yet")
318- let bO = assetBalance(bL[aw], bM)
319- let bP = (assetBalance(bL[ay], bM) - bN)
320- let bQ = assetBalance(bL[az], bM)
321- let bR = assetBalance(bL[ax], bM)
322- let bS = bL[aA]
323- let bT = (assetBalance(bS, bM) + valueOrElse(getInteger(bS, as), 0))
324- let bU = ((bR + bP) + bT)
325- let bV = valueOrErrorMessage(getBinary(bL[ay], "wlg_assetId"), "Not initialized yet")
326- let bW = lastBlock.timestamp
327- let bX = valueOrErrorMessage(getInteger(bL[ay], aq), "Not initialized")
328- let bY = assetBalance(bL[ay], bV)
329- let bZ = fraction(an, T, R)
330- let ca = valueOrElse(getInteger(bL[ay], ah), bZ)
331- let cb = valueOrElse(getInteger(bL[ay], ag), bX)
332- let cc = addressFromStringValue(value(getString(bL[ay], af)))
333- let cd = min([fraction(bZ, (bW - cb), (3 * W)), ca])
334- let ce = assetBalance(cc, bV)
335- let cf = fraction(an, U, R)
336- let cg = valueOrElse(getInteger(bL[ay], aj), cf)
337- let ch = valueOrElse(getInteger(bL[ay], ai), bX)
338- let ci = min([fraction(cf, (bW - ch), (3 * W)), cg])
339- let cj = assetBalance(bL[aw], bV)
340- let ck = valueOrElse(getInteger(bL[ay], al(bK)), bX)
341- let cl = ((ck - bX) / W)
342- let cm = min([bW, (bX + (3 * W))])
343- let cn = min([((bW - bX) / W), 2])
344- let co = aQ(bK, bL[ax])
345- let cp = am(an, cn)
346- let cq = (bX + (W * cn))
347- let cr = (bX + (W * (cn - 1)))
348- let cs = fraction(cp, (cm - ck), W)
349- let ct = if ((cl == cn))
350- then cs
351- else if ((cl == (cn - 1)))
352- then {
353- let cu = fraction(am(an, (cn - 1)), (cq - ck), W)
354- (cu + cs)
355- }
356- else {
357- let cv = fraction(am(an, (cn - 2)), (cr - ck), W)
358- let cu = am(an, (cn - 1))
359- ((cv + cu) + cs)
360- }
361- let cw = valueOrElse(getInteger(bL[ay], ak), 0)
362- let cx = if ((co[bb] != 0))
363- then fraction(ct, co[bc], co[bb])
364- else 0
365- let cy = valueOrElse(getInteger(bL[ay], ap), ae)
366- let cz = fraction(aa, max([(bW - cy), 0]), X)
367- let cA = fraction(cz, ac, R)
368- let cB = fraction(cz, ad, R)
369- let cC = max([(bW - max([ae, ck])), 0])
370- let cD = if ((co[bb] != 0))
371- then fraction(fraction(fraction(aa, cC, X), co[bc], co[bb]), ab, R)
372- else 0
373- let cE = max([ae, bW])
374- let cF = valueOrElse(getInteger(bL[ax], au), 0)
375-[an, bY, fraction(bU, S, an), bU, bO, bR, bP, bQ, bX, cb, bZ, ca, cd, ce, cf, cg, ci, cj, cn, cw, cp, ck, bT, cx, cm, cz, cA, cB, cD, cE, co[bb], cF]
263+func ba (bb,x) = {
264+ let bc = valueOrElse(getInteger(x, aB), 0)
265+ let bd = valueOrElse(getInteger(x, az(bb)), 0)
266+ let be = valueOrElse(getInteger(x, aH(bb)), 0)
267+ let bf = aX(bd, be)
268+ let bg = bf._1
269+ let bh = bf._2
270+[bc, bg, bh, be]
376271 }
377272
378273
379-func cG (cH) = {
380- let B = addressFromString(cH)
381- let cI = if (isDefined(B))
382- then wavesBalance(value(B))
383- else BalanceDetails(0, 0, 0, 0)
384- let cJ = if (isDefined(B))
385- then assetBalance(value(B), c)
274+let bi = 0
275+
276+let bj = 1
277+
278+let bk = 0
279+
280+let bl = 1
281+
282+let bm = 2
283+
284+let bn = 3
285+
286+let bo = 4
287+
288+let bp = 5
289+
290+let bq = 6
291+
292+let br = 7
293+
294+let bs = 8
295+
296+let bt = 9
297+
298+let bu = 10
299+
300+let bv = 11
301+
302+let bw = 12
303+
304+let bx = 13
305+
306+let by = 14
307+
308+let bz = 15
309+
310+let bA = 16
311+
312+let bB = 17
313+
314+let bC = 18
315+
316+let bD = 19
317+
318+let bE = 20
319+
320+let bF = 21
321+
322+let bG = 22
323+
324+let bH = 23
325+
326+let bI = 24
327+
328+let bJ = 25
329+
330+let bK = 26
331+
332+let bL = 27
333+
334+let bM = 28
335+
336+let bN = 29
337+
338+let bO = 30
339+
340+let bP = 31
341+
342+func bQ (bR,bS,bT,bU) = {
343+ let at = valueOrErrorMessage(getInteger(bS[aE], ax), "WLGOLD is not issued yet")
344+ let bV = assetBalance(bS[aC], bT)
345+ let bW = (assetBalance(bS[aE], bT) - bU)
346+ let bX = assetBalance(bS[aF], bT)
347+ let bY = assetBalance(bS[aD], bT)
348+ let bZ = bS[aG]
349+ let ca = (assetBalance(bZ, bT) + valueOrElse(getInteger(bZ, ay), 0))
350+ let cb = ((bY + bW) + ca)
351+ let cc = valueOrErrorMessage(getBinary(bS[aE], "wlg_assetId"), "Not initialized yet")
352+ let cd = lastBlock.timestamp
353+ let ce = valueOrErrorMessage(getInteger(bS[aE], aw), "Not initialized")
354+ let cf = assetBalance(bS[aE], cc)
355+ let cg = fraction(at, ab, Z)
356+ let ch = valueOrElse(getInteger(bS[aE], an), cg)
357+ let ci = valueOrElse(getInteger(bS[aE], am), ce)
358+ let cj = addressFromStringValue(value(getString(bS[aE], al)))
359+ let ck = min([fraction(cg, (cd - ci), (3 * ae)), ch])
360+ let cl = assetBalance(cj, cc)
361+ let cm = fraction(at, ac, Z)
362+ let cn = valueOrElse(getInteger(bS[aE], ap), cm)
363+ let co = valueOrElse(getInteger(bS[aE], ao), ce)
364+ let cp = min([fraction(cm, (cd - co), (3 * ae)), cn])
365+ let cq = assetBalance(bS[aC], cc)
366+ let cr = valueOrElse(getInteger(bS[aE], ar(bR)), ce)
367+ let cs = ((cr - ce) / ae)
368+ let ct = min([cd, (ce + (3 * ae))])
369+ let cu = min([((cd - ce) / ae), 2])
370+ let cv = ba(bR, bS[aD])
371+ let cw = as(at, cu)
372+ let cx = (ce + (ae * cu))
373+ let cy = (ce + (ae * (cu - 1)))
374+ let cz = fraction(cw, (ct - cr), ae)
375+ let cA = if ((cs == cu))
376+ then cz
377+ else if ((cs == (cu - 1)))
378+ then {
379+ let cB = fraction(as(at, (cu - 1)), (cx - cr), ae)
380+ (cB + cz)
381+ }
382+ else {
383+ let cC = fraction(as(at, (cu - 2)), (cy - cr), ae)
384+ let cB = as(at, (cu - 1))
385+ ((cC + cB) + cz)
386+ }
387+ let cD = valueOrElse(getInteger(bS[aE], aq), 0)
388+ let cE = if ((cv[bi] != 0))
389+ then fraction(cA, cv[bj], cv[bi])
386390 else 0
387- let cK = if (isDefined(B))
388- then assetBalance(value(B), E)
391+ let cF = valueOrElse(getInteger(bS[aE], av), ak)
392+ let cG = fraction(ag, max([(cd - cF), 0]), af)
393+ let cH = fraction(cG, ai, Z)
394+ let cI = fraction(cG, aj, Z)
395+ let cJ = max([(cd - max([ak, cr])), 0])
396+ let cK = if ((cv[bi] != 0))
397+ then fraction(fraction(fraction(ag, cJ, af), cv[bj], cv[bi]), ah, Z)
389398 else 0
390- let cL = valueOrElse(getString(v, J(cH)), cH)
391- let cM = K(cH)
392- let cN = getString(v, cM)
393- let cO = valueOrElse(getString(v, L(cH)), "")
394- let cP = valueOrElse(getString(v, A(cH)), "")
395- let cQ = valueOrElse(getString(v, C(cH)), "")
396- let cR = if (isDefined(B))
397- then assetBalance(value(B), G)
398- else 0
399- let cS = valueOrElse(getInteger(v, at(cH)), 0)
400- let cT = aC(cS)
401- let cU = aQ(cH, v)
402- let cV = if ((cT >= size(aB)))
403- then 0
404- else (((aB[cT] * S) + 1) - cS)
405-[("%s%s__customName__" + cL), ("%s%s__referredBy__" + valueOrElse(cN, "")), ("%s%s__referrals__" + cO), ("%s%s__lastWeekTxId__" + cP), ("%s%s__curWeekTxId__" + cP), ("%s%d__wavesBalance__" + toString(cI.available)), ("%s%d__usdtBalance__" + toString(cJ)), ("%s%d__wlgoldBalance__" + toString(cK)), ("%s%d__acresBalance__" + toString(cR)), ("%s%d__stakedAcres__" + toString(cS)), ("%s%d__currentLvl__" + toString(cT)), ("%s%d__acresToNextLvl__" + toString(cV)), ("%s%d__userFarmingPower__" + toString(cU[bc])), ("%s%d__totalFarmingPower__" + toString(cU[bb]))]
399+ let cL = max([ak, cd])
400+ let cM = valueOrElse(getInteger(bS[aD], aA), 0)
401+[at, cf, fraction(cb, aa, at), cb, bV, bY, bW, bX, ce, ci, cg, ch, ck, cl, cm, cn, cp, cq, cu, cD, cw, cr, ca, cE, ct, cG, cH, cI, cK, cL, cv[bi], cM]
406402 }
407403
408404
409-@Callable(cW)
410-func constructorV1 (bL) = if ((cW.caller != this))
405+func cN (cO) = {
406+ let D = addressFromString(cO)
407+ let cP = if (isDefined(D))
408+ then wavesBalance(value(D))
409+ else BalanceDetails(0, 0, 0, 0)
410+ let cQ = if (isDefined(D))
411+ then assetBalance(value(D), f)
412+ else 0
413+ let cR = if (isDefined(D))
414+ then assetBalance(value(D), G)
415+ else 0
416+ let cS = valueOrElse(getString(x, L(cO)), cO)
417+ let cT = M(cO)
418+ let cU = getString(x, cT)
419+ let cV = valueOrElse(getString(x, N(cO)), "")
420+ let cW = valueOrElse(getString(x, C(cO)), "")
421+ let cX = valueOrElse(getString(x, E(cO)), "")
422+ let cY = if (isDefined(D))
423+ then assetBalance(value(D), I)
424+ else 0
425+ let cZ = valueOrElse(getInteger(x, az(cO)), 0)
426+ let da = aJ(cZ)
427+ let db = ba(cO, x)
428+ let dc = if ((da >= size(aI)))
429+ then 0
430+ else (((aI[da] * aa) + 1) - cZ)
431+[("%s%s__customName__" + cS), ("%s%s__referredBy__" + valueOrElse(cU, "")), ("%s%s__referrals__" + cV), ("%s%s__lastWeekTxId__" + cW), ("%s%s__curWeekTxId__" + cW), ("%s%d__wavesBalance__" + toString(cP.available)), ("%s%d__usdtBalance__" + toString(cQ)), ("%s%d__wlgoldBalance__" + toString(cR)), ("%s%d__acresBalance__" + toString(cY)), ("%s%d__stakedAcres__" + toString(cZ)), ("%s%d__currentLvl__" + toString(da)), ("%s%d__acresToNextLvl__" + toString(dc)), ("%s%d__userFarmingPower__" + toString(db[bj])), ("%s%d__totalFarmingPower__" + toString(db[bi]))]
432+ }
433+
434+
435+@Callable(dd)
436+func constructorV1 (bS) = if ((dd.caller != this))
411437 then throw("permissions denied")
412438 else {
413- func cX (aG,cY) = (aG + "%s")
439+ func de (aN,df) = (aN + "%s")
414440
415- let cZ = {
416- let aI = bL
417- let aJ = size(aI)
418- let aK = ""
419- func aL (aM,aN) = if ((aN >= aJ))
420- then aM
421- else cX(aM, aI[aN])
441+ let dg = {
442+ let aP = bS
443+ let aQ = size(aP)
444+ let aR = ""
445+ func aS (aT,aU) = if ((aU >= aQ))
446+ then aT
447+ else de(aT, aP[aU])
422448
423- func aO (aM,aN) = if ((aN >= aJ))
424- then aM
449+ func aV (aT,aU) = if ((aU >= aQ))
450+ then aT
425451 else throw("List size exceeds 10")
426452
427- aO(aL(aL(aL(aL(aL(aL(aL(aL(aL(aL(aK, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
453+ aV(aS(aS(aS(aS(aS(aS(aS(aS(aS(aS(aR, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
428454 }
429-[StringEntry(n(), makeString(cZ :: bL, a)), StringEntry(o(), toString(this))]
455+[StringEntry(p(), makeString(dg :: bS, a)), StringEntry(q(), toString(this))]
430456 }
431457
432458
433459
434-@Callable(cW)
435-func walletInfoREADONLY (cH) = $Tuple2(nil, cG(cH))
460+@Callable(dd)
461+func walletInfoREADONLY (cO) = $Tuple2(nil, cN(cO))
436462
437463
438464
439-@Callable(cW)
440-func conversionInfoREADONLY (cH) = {
441- let da = addressFromStringValue(getStringValue(v, z))
442- let db = Q(invoke(da, "unstakeAllAcresREADONLY", [cH], nil))
443- let dc = db._1
444- let dd = db._2
445- let de = M(invoke(v, "unstakeLandsREADONLY", [cH], nil))
446- let df = de._1
447- let dg = de._2
448- let dh = de._3
449- let di = de._4
450- let dj = addressFromStringValue(f)
451- let dk = valueOrElse(getString(dj, H(cH)), "")
452- let dl = if ((dk != ""))
453- then P(invoke(dj, "unstakeDuckREADONLY", [dk, cH], nil))
454- else $Tuple3(0, 0, 0)
465+@Callable(dd)
466+func conversionInfoREADONLY (cO) = {
467+ let dh = addressFromStringValue(getStringValue(x, B))
468+ let di = Y(invoke(dh, "unstakeAllAcresREADONLY", [cO], nil))
469+ let dj = di._1
470+ let dk = di._2
471+ let dl = U(invoke(x, "unstakeLandsREADONLY", [cO], nil))
455472 let dm = dl._1
456473 let dn = dl._2
457474 let do = dl._3
458- $Tuple2(nil, [("%s%d__unstakedAcres__" + toString(dc)), ("%s%d__claimedAcres__" + toString(dd)), ("%s%d__acresFromPieces__" + toString(df)), ("%s%d__acresFromRes__" + toString(dg)), ("%s%d__acresFromMat__" + toString(dh)), ("%s%d__acresFromProd__" + toString(di)), ("%s%d__acresFromDuckRes__" + toString(dm)), ("%s%d__acresFromDuckMat__" + toString(dn)), ("%s%d__acresFromDuckProd__" + toString(do))])
475+ let dp = dl._4
476+ let dq = addressFromStringValue(h)
477+ let dr = valueOrElse(getString(dq, J(cO)), "")
478+ let ds = if ((dr != ""))
479+ then X(invoke(dq, "unstakeDuckREADONLY", [dr, cO], nil))
480+ else $Tuple3(0, 0, 0)
481+ let dt = ds._1
482+ let du = ds._2
483+ let dv = ds._3
484+ $Tuple2(nil, [("%s%d__unstakedAcres__" + toString(dj)), ("%s%d__claimedAcres__" + toString(dk)), ("%s%d__acresFromPieces__" + toString(dm)), ("%s%d__acresFromRes__" + toString(dn)), ("%s%d__acresFromMat__" + toString(do)), ("%s%d__acresFromProd__" + toString(dp)), ("%s%d__acresFromDuckRes__" + toString(dt)), ("%s%d__acresFromDuckMat__" + toString(du)), ("%s%d__acresFromDuckProd__" + toString(dv))])
459485 }
460486
461487
462488
463-@Callable(cW)
464-func wlgStatsREADONLY (bK) = {
465- let dp = bJ(bK, [u, v, w, x, y], c, 0)
466- $Tuple2(nil, [("%s%d__wlgAmount__" + toString(dp[bd])), ("%s%d__wlgWlg__" + toString(dp[be])), ("%s%d__wlgPrice__" + toString(dp[bf])), ("%s%d__usdtFunds__" + toString(dp[bg])), ("%s%d__usdtActivity__" + toString(dp[bh])), ("%s%d__usdtStaking__" + toString(dp[bi])), ("%s%d__usdtArbitrage__" + toString(dp[bj])), ("%s%d__usdtPool__" + toString(dp[bk])), ("%s%d__wlgIssueTime__" + toString(dp[bl])), ("%s%d__wlgLastTeamActTime__" + toString(dp[bm])), ("%s%d__wlgTeamTotal__" + toString(dp[bn])), ("%s%d__wlgTeamAmLeft__" + toString(dp[bo])), ("%s%d__wlgTeamAmAvailNow__" + toString(dp[bp])), ("%s%d__wlgTeamWlgold__" + toString(dp[bq])), ("%s%d__wlgActTotal__" + toString(dp[br])), ("%s%d__wlgActAmLeft__" + toString(dp[bs])), ("%s%d__wlgActAmAvailNow__" + toString(dp[bt])), ("%s%d__wlgActWlgold__" + toString(dp[bu])), ("%s%d__wlgCurPeriod__" + toString(dp[bv])), ("%s%d__wlgAmLeftTotal__" + toString(dp[bw])), ("%s%d__wlgCurPeriodDistribution__" + toString(dp[bx])), ("%s%d__wlgLastUserTime__" + toString(dp[by])), ("%s%d__wlgInvestFundTotal__" + toString(dp[bz])), ("%s%d__wlgUserAmAvailNow__" + toString(dp[bA])), ("%s%d__wlgEffUserTime__" + toString(dp[bB])), ("%s%d__wlgIssue10AvailNow__" + toString(dp[bC])), ("%s%d__wlgMarketingIssue10AvailNow__" + toString(dp[bD])), ("%s%d__wlgTeamIssue10AvailNow__" + toString(dp[bE])), ("%s%d__wlgUserIssue10AvailNow__" + toString(dp[bF])), ("%s%d__wlgLastIssue10Time__" + toString(dp[bG])), ("%s%d__wlgTotalFarmingPower__" + toString(dp[bH])), ("%s%d__wlgAcresStakedTotal__" + toString(dp[bI]))])
489+@Callable(dd)
490+func wlgStatsREADONLY (bR) = {
491+ let dw = bQ(bR, [w, x, y, z, A], f, 0)
492+ $Tuple2(nil, [("%s%d__wlgAmount__" + toString(dw[bk])), ("%s%d__wlgWlg__" + toString(dw[bl])), ("%s%d__wlgPrice__" + toString(dw[bm])), ("%s%d__usdtFunds__" + toString(dw[bn])), ("%s%d__usdtActivity__" + toString(dw[bo])), ("%s%d__usdtStaking__" + toString(dw[bp])), ("%s%d__usdtArbitrage__" + toString(dw[bq])), ("%s%d__usdtPool__" + toString(dw[br])), ("%s%d__wlgIssueTime__" + toString(dw[bs])), ("%s%d__wlgLastTeamActTime__" + toString(dw[bt])), ("%s%d__wlgTeamTotal__" + toString(dw[bu])), ("%s%d__wlgTeamAmLeft__" + toString(dw[bv])), ("%s%d__wlgTeamAmAvailNow__" + toString(dw[bw])), ("%s%d__wlgTeamWlgold__" + toString(dw[bx])), ("%s%d__wlgActTotal__" + toString(dw[by])), ("%s%d__wlgActAmLeft__" + toString(dw[bz])), ("%s%d__wlgActAmAvailNow__" + toString(dw[bA])), ("%s%d__wlgActWlgold__" + toString(dw[bB])), ("%s%d__wlgCurPeriod__" + toString(dw[bC])), ("%s%d__wlgAmLeftTotal__" + toString(dw[bD])), ("%s%d__wlgCurPeriodDistribution__" + toString(dw[bE])), ("%s%d__wlgLastUserTime__" + toString(dw[bF])), ("%s%d__wlgInvestFundTotal__" + toString(dw[bG])), ("%s%d__wlgUserAmAvailNow__" + toString(dw[bH])), ("%s%d__wlgEffUserTime__" + toString(dw[bI])), ("%s%d__wlgIssue10AvailNow__" + toString(dw[bJ])), ("%s%d__wlgMarketingIssue10AvailNow__" + toString(dw[bK])), ("%s%d__wlgTeamIssue10AvailNow__" + toString(dw[bL])), ("%s%d__wlgUserIssue10AvailNow__" + toString(dw[bM])), ("%s%d__wlgLastIssue10Time__" + toString(dw[bN])), ("%s%d__wlgTotalFarmingPower__" + toString(dw[bO])), ("%s%d__wlgAcresStakedTotal__" + toString(dw[bP]))])
467493 }
468494
469495
470496
471-@Callable(cW)
472-func lotteryStatsREADONLY (bK) = {
473- let dq = (height / Y)
474- let aX = (height / Z)
475- let dr = (aX - 1)
476- let ds = valueOrElse(getInteger(w, aW(bK, aX)), 0)
477- let dt = valueOrElse(getInteger(w, aW(bK, dr)), 0)
478- let du = valueOrElse(getInteger(w, aY(aX)), 0)
479- let dv = valueOrElse(getInteger(w, aY(dr)), 0)
480- let dw = valueOrElse(getString(w, aV(bK)), "")
481- $Tuple2(nil, [((("%s%d%d__totalTickets__" + toString(dv)) + a) + toString(du)), ((("%s%d%d__userTickets__" + toString(dt)) + a) + toString(ds)), ("%s%d__blockchainWeek__" + toString(aX)), ("%s%d__blockchainDay__" + toString(dq)), ("%s%d__blockchainMinute__" + toString((height % Y))), ("%s%d__winningBetToday__" + toString(aZ(dq))), ("%s%s__usersBet__" + dw)])
497+@Callable(dd)
498+func lotteryStatsREADONLY (bR) = {
499+ let dx = (height / c)
500+ let Q = (height / e)
501+ let dy = (Q - 1)
502+ let dz = valueOrElse(getInteger(y, P(bR, Q)), 0)
503+ let dA = valueOrElse(getInteger(y, P(bR, dy)), 0)
504+ let dB = valueOrElse(getInteger(y, R(Q)), 0)
505+ let dC = valueOrElse(getInteger(y, R(dy)), 0)
506+ let dD = valueOrElse(getString(y, O(bR)), "")
507+ $Tuple2(nil, [((("%s%d%d__totalTickets__" + toString(dC)) + a) + toString(dB)), ((("%s%d%d__userTickets__" + toString(dA)) + a) + toString(dz)), ("%s%d__blockchainWeek__" + toString(Q)), ("%s%d__blockchainDay__" + toString(dx)), ("%s%d__blockchainMinute__" + toString((height % c))), ("%s%d__winningBetToday__" + toString(S(dx))), ("%s%s__usersBet__" + dD)])
482508 }
483509
484510
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "__"
55
66 let b = take(drop(this.bytes, 1), 1)
77
88 let c = {
99 let d = b
1010 if ((base58'2W' == d))
11+ then 1440
12+ else if ((base58'2T' == d))
13+ then 60
14+ else throw("Unknown chain")
15+ }
16+
17+let e = {
18+ let d = b
19+ if ((base58'2W' == d))
20+ then 10080
21+ else if ((base58'2T' == d))
22+ then 180
23+ else throw("Unknown chain")
24+ }
25+
26+let f = {
27+ let d = b
28+ if ((base58'2W' == d))
1129 then base58'9wc3LXNA4TEBsXyKtoLE9mrbDD7WMHXvXrCjZvabLAsi'
1230 else if ((base58'2T' == d))
1331 then base58'6mWwf9mZBjVgkC54idpyaZLQfAosD914wT8fGf2iiY63'
1432 else throw("Unknown chain")
1533 }
1634
17-let e = {
35+let g = {
1836 let d = b
1937 if ((base58'2W' == d))
2038 then "3PFwYta8biEz31zpeFe5DJK8wE5trSpQVF8"
2139 else if ((base58'2T' == d))
2240 then "3N7UuYar6264P58FBhVWKPQAh4Yua2hgngv"
2341 else throw("Unknown chain")
2442 }
2543
26-let f = {
44+let h = {
2745 let d = b
2846 if ((base58'2W' == d))
2947 then "3PLncXtS1U83D6cQbFD3H8rBHPLgzxSFKZ1"
3048 else if ((base58'2T' == d))
3149 then "3NDCyBG5q85JuaRiigUeEtainyjCQT3XpZm"
3250 else throw("Unknown chain")
3351 }
3452
35-func g (h,i) = valueOrErrorMessage(getString(h, i), makeString(["mandatory ", toString(h), ".", i, " is not defined"], ""))
53+func i (j,k) = valueOrErrorMessage(getString(j, k), makeString(["mandatory ", toString(j), ".", k, " is not defined"], ""))
3654
3755
38-let j = 1
56+let l = 1
3957
40-let k = 2
58+let m = 2
4159
42-let l = 4
60+let n = 4
4361
44-let m = 5
62+let o = 5
4563
46-func n () = "%s__restConfig"
64+func p () = "%s__restConfig"
4765
4866
49-func o () = "%s__rest2Addr"
67+func q () = "%s__rest2Addr"
5068
5169
52-func p (q) = split_4C(g(q, n()), a)
70+func r (s) = split_4C(i(s, p()), a)
5371
5472
55-func r (s,t) = valueOrErrorMessage(addressFromString(s[t]), ("Rest cfg doesn't contain address at index " + toString(t)))
73+func t (u,v) = valueOrErrorMessage(addressFromString(u[v]), ("Rest cfg doesn't contain address at index " + toString(v)))
5674
5775
58-let u = addressFromStringValue(valueOrElse(getString(this, o()), e))
76+let w = addressFromStringValue(valueOrElse(getString(this, q()), g))
5977
60-let s = p(u)
78+let u = r(w)
6179
62-let v = r(s, j)
80+let x = t(u, l)
6381
64-let w = r(s, k)
82+let y = t(u, m)
6583
66-let x = r(s, l)
84+let z = t(u, n)
6785
68-let y = r(s, m)
86+let A = t(u, o)
6987
70-let z = "oldAcresContract"
88+let B = "oldAcresContract"
7189
72-func A (B) = ("lastWeekTxIdByUser_" + B)
90+func C (D) = ("lastWeekTxIdByUser_" + D)
7391
7492
75-func C (B) = ("curWeekTxIdByUser_" + B)
93+func E (D) = ("curWeekTxIdByUser_" + D)
7694
7795
78-let D = "wlg_assetId"
96+let F = "wlg_assetId"
7997
80-let E = valueOrErrorMessage(getBinary(w, D), "WLGOLD is not issued yet")
98+let G = valueOrErrorMessage(getBinary(y, F), "WLGOLD is not issued yet")
8199
82-let F = "acresAssetId"
100+let H = "acresAssetId"
83101
84-let G = valueOrErrorMessage(getBinary(v, F), "ACRES is not issued yet")
102+let I = valueOrErrorMessage(getBinary(x, H), "ACRES is not issued yet")
85103
86-func H (I) = ("stakedDuckByOwner_" + I)
104+func J (K) = ("stakedDuckByOwner_" + K)
87105
88106
89-func J (B) = ("accountCustomNameByAddr_" + B)
107+func L (D) = ("accountCustomNameByAddr_" + D)
90108
91109
92-func K (B) = ("accRefBy_" + B)
110+func M (D) = ("accRefBy_" + D)
93111
94112
95-func L (B) = ("accReferrals_" + B)
113+func N (D) = ("accReferrals_" + D)
96114
97115
98-func M (N) = {
99- let d = N
116+func O (D) = ("userBet_" + D)
117+
118+
119+func P (D,Q) = ((("userWeekTickets_" + D) + "_") + toString(Q))
120+
121+
122+func R (Q) = ("totalWeekTickets_" + toString(Q))
123+
124+
125+func S (T) = (toInt(value(value(blockInfoByHeight((T * c))).vrf)) % 4)
126+
127+
128+func U (V) = {
129+ let d = V
100130 if ($isInstanceOf(d, "(Int, Int, Int, Int)"))
101131 then {
102- let O = d
103- O
132+ let W = d
133+ W
104134 }
105135 else throw("fail to cast into (Int, Int, Int, Int)")
106136 }
107137
108138
109-func P (N) = {
110- let d = N
139+func X (V) = {
140+ let d = V
111141 if ($isInstanceOf(d, "(Int, Int, Int)"))
112142 then {
113- let O = d
114- O
143+ let W = d
144+ W
115145 }
116146 else throw("fail to cast into (Int, Int, Int)")
117147 }
118148
119149
120-func Q (N) = {
121- let d = N
150+func Y (V) = {
151+ let d = V
122152 if ($isInstanceOf(d, "(Int, Int)"))
123153 then {
124- let O = d
125- O
154+ let W = d
155+ W
126156 }
127157 else throw("fail to cast into (Int, Int)")
128158 }
129159
130160
131-let R = 1000000
161+let Z = 1000000
132162
133-let S = 100000000
163+let aa = 100000000
134164
135-let T = 200000
136-
137-let U = 100000
138-
139-let V = 400000
140-
141-let W = 31557600000
142-
143-let X = 86400000
144-
145-let Y = 1440
146-
147-let Z = 10080
148-
149-let aa = 1000000000
150-
151-let ab = 800000
165+let ab = 200000
152166
153167 let ac = 100000
154168
155-let ad = 100000
169+let ad = 400000
156170
157-let ae = 1731279600000
171+let ae = 31557600000
158172
159-let af = "teamAddr"
173+let af = 86400000
160174
161-let ag = "lastClaimedTime_team"
175+let ag = 1000000000
162176
163-let ah = "teamAmountLeft"
177+let ah = 800000
164178
165-let ai = "lastClaimedTime_activities"
179+let ai = 100000
166180
167-let aj = "activitiesAmountLeft"
181+let aj = 100000
168182
169-let ak = "stakersAmountLeft"
183+let ak = 1731279600000
170184
171-func al (B) = ("lastClaimedTimeUser_" + B)
185+let al = "teamAddr"
186+
187+let am = "lastClaimedTime_team"
188+
189+let an = "teamAmountLeft"
190+
191+let ao = "lastClaimedTime_activities"
192+
193+let ap = "activitiesAmountLeft"
194+
195+let aq = "stakersAmountLeft"
196+
197+func ar (D) = ("lastClaimedTimeUser_" + D)
172198
173199
174-func am (an,ao) = fraction(an, (V * (ao + 1)), (6 * R))
200+func as (at,au) = fraction(at, (ad * (au + 1)), (6 * Z))
175201
176202
177-let ap = "wlg_issue10Time"
203+let av = "wlg_issue10Time"
178204
179-let aq = "wlg_issueTime"
205+let aw = "wlg_issueTime"
180206
181-let ar = "wlg_issuedAmount"
207+let ax = "wlg_issuedAmount"
182208
183-let as = "zbill_issuedAmount"
209+let ay = "zbill_issuedAmount"
184210
185-func at (B) = ("acresStakedAmountByUser_" + B)
211+func az (D) = ("acresStakedAmountByUser_" + D)
186212
187213
188-let au = "acresStakedAmountTotal"
214+let aA = "acresStakedAmountTotal"
189215
190-let av = "totalFarmingPower"
216+let aB = "totalFarmingPower"
191217
192-let aw = 0
218+let aC = 0
193219
194-let ax = 1
220+let aD = 1
195221
196-let ay = 2
222+let aE = 2
197223
198-let az = 3
224+let aF = 3
199225
200-let aA = 4
226+let aG = 4
201227
202-let aB = [0, 10, 20, 40, 80, 150, 250, 400, 700, 1000]
228+func aH (D) = ("userFullBonus_" + D)
203229
204-func aC (aD) = {
205- let aE = ((aD + 99999999) / S)
206- func aF (aG,aH) = if ((aH >= aE))
207- then aG
208- else (aG + 1)
209230
210- let aI = aB
211- let aJ = size(aI)
212- let aK = 0
213- func aL (aM,aN) = if ((aN >= aJ))
214- then aM
215- else aF(aM, aI[aN])
231+let aI = [0, 10, 20, 40, 80, 150, 250, 400, 700, 1000]
216232
217- func aO (aM,aN) = if ((aN >= aJ))
218- then aM
233+func aJ (aK) = {
234+ let aL = ((aK + 99999999) / aa)
235+ func aM (aN,aO) = if ((aO >= aL))
236+ then aN
237+ else (aN + 1)
238+
239+ let aP = aI
240+ let aQ = size(aP)
241+ let aR = 0
242+ func aS (aT,aU) = if ((aU >= aQ))
243+ then aT
244+ else aM(aT, aP[aU])
245+
246+ func aV (aT,aU) = if ((aU >= aQ))
247+ then aT
219248 else throw("List size exceeds 10")
220249
221- aO(aL(aL(aL(aL(aL(aL(aL(aL(aL(aL(aK, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
250+ aV(aS(aS(aS(aS(aS(aS(aS(aS(aS(aS(aR, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
222251 }
223252
224253
225-func aP (aD) = ((aD * 20) * (aC(aD) + 4))
254+func aW (aK) = ((aK * 20) * (aJ(aK) + 4))
226255
227256
228-func aQ (aR,v) = {
229- let aS = valueOrElse(getInteger(v, av), 0)
230- let aT = valueOrElse(getInteger(v, at(aR)), 0)
231- let aU = aP(aT)
232-[aS, aU]
257+func aX (aK,aY) = {
258+ let aZ = aW(aK)
259+ $Tuple2(fraction(aZ, (Z + aY), Z), aZ)
233260 }
234261
235262
236-func aV (B) = ("userBet_" + B)
237-
238-
239-func aW (B,aX) = ((("userWeekTickets_" + B) + "_") + toString(aX))
240-
241-
242-func aY (aX) = ("totalWeekTickets_" + toString(aX))
243-
244-
245-func aZ (ba) = (toInt(value(value(blockInfoByHeight((ba * Y))).vrf)) % 4)
246-
247-
248-let bb = 0
249-
250-let bc = 1
251-
252-let bd = 0
253-
254-let be = 1
255-
256-let bf = 2
257-
258-let bg = 3
259-
260-let bh = 4
261-
262-let bi = 5
263-
264-let bj = 6
265-
266-let bk = 7
267-
268-let bl = 8
269-
270-let bm = 9
271-
272-let bn = 10
273-
274-let bo = 11
275-
276-let bp = 12
277-
278-let bq = 13
279-
280-let br = 14
281-
282-let bs = 15
283-
284-let bt = 16
285-
286-let bu = 17
287-
288-let bv = 18
289-
290-let bw = 19
291-
292-let bx = 20
293-
294-let by = 21
295-
296-let bz = 22
297-
298-let bA = 23
299-
300-let bB = 24
301-
302-let bC = 25
303-
304-let bD = 26
305-
306-let bE = 27
307-
308-let bF = 28
309-
310-let bG = 29
311-
312-let bH = 30
313-
314-let bI = 31
315-
316-func bJ (bK,bL,bM,bN) = {
317- let an = valueOrErrorMessage(getInteger(bL[ay], ar), "WLGOLD is not issued yet")
318- let bO = assetBalance(bL[aw], bM)
319- let bP = (assetBalance(bL[ay], bM) - bN)
320- let bQ = assetBalance(bL[az], bM)
321- let bR = assetBalance(bL[ax], bM)
322- let bS = bL[aA]
323- let bT = (assetBalance(bS, bM) + valueOrElse(getInteger(bS, as), 0))
324- let bU = ((bR + bP) + bT)
325- let bV = valueOrErrorMessage(getBinary(bL[ay], "wlg_assetId"), "Not initialized yet")
326- let bW = lastBlock.timestamp
327- let bX = valueOrErrorMessage(getInteger(bL[ay], aq), "Not initialized")
328- let bY = assetBalance(bL[ay], bV)
329- let bZ = fraction(an, T, R)
330- let ca = valueOrElse(getInteger(bL[ay], ah), bZ)
331- let cb = valueOrElse(getInteger(bL[ay], ag), bX)
332- let cc = addressFromStringValue(value(getString(bL[ay], af)))
333- let cd = min([fraction(bZ, (bW - cb), (3 * W)), ca])
334- let ce = assetBalance(cc, bV)
335- let cf = fraction(an, U, R)
336- let cg = valueOrElse(getInteger(bL[ay], aj), cf)
337- let ch = valueOrElse(getInteger(bL[ay], ai), bX)
338- let ci = min([fraction(cf, (bW - ch), (3 * W)), cg])
339- let cj = assetBalance(bL[aw], bV)
340- let ck = valueOrElse(getInteger(bL[ay], al(bK)), bX)
341- let cl = ((ck - bX) / W)
342- let cm = min([bW, (bX + (3 * W))])
343- let cn = min([((bW - bX) / W), 2])
344- let co = aQ(bK, bL[ax])
345- let cp = am(an, cn)
346- let cq = (bX + (W * cn))
347- let cr = (bX + (W * (cn - 1)))
348- let cs = fraction(cp, (cm - ck), W)
349- let ct = if ((cl == cn))
350- then cs
351- else if ((cl == (cn - 1)))
352- then {
353- let cu = fraction(am(an, (cn - 1)), (cq - ck), W)
354- (cu + cs)
355- }
356- else {
357- let cv = fraction(am(an, (cn - 2)), (cr - ck), W)
358- let cu = am(an, (cn - 1))
359- ((cv + cu) + cs)
360- }
361- let cw = valueOrElse(getInteger(bL[ay], ak), 0)
362- let cx = if ((co[bb] != 0))
363- then fraction(ct, co[bc], co[bb])
364- else 0
365- let cy = valueOrElse(getInteger(bL[ay], ap), ae)
366- let cz = fraction(aa, max([(bW - cy), 0]), X)
367- let cA = fraction(cz, ac, R)
368- let cB = fraction(cz, ad, R)
369- let cC = max([(bW - max([ae, ck])), 0])
370- let cD = if ((co[bb] != 0))
371- then fraction(fraction(fraction(aa, cC, X), co[bc], co[bb]), ab, R)
372- else 0
373- let cE = max([ae, bW])
374- let cF = valueOrElse(getInteger(bL[ax], au), 0)
375-[an, bY, fraction(bU, S, an), bU, bO, bR, bP, bQ, bX, cb, bZ, ca, cd, ce, cf, cg, ci, cj, cn, cw, cp, ck, bT, cx, cm, cz, cA, cB, cD, cE, co[bb], cF]
263+func ba (bb,x) = {
264+ let bc = valueOrElse(getInteger(x, aB), 0)
265+ let bd = valueOrElse(getInteger(x, az(bb)), 0)
266+ let be = valueOrElse(getInteger(x, aH(bb)), 0)
267+ let bf = aX(bd, be)
268+ let bg = bf._1
269+ let bh = bf._2
270+[bc, bg, bh, be]
376271 }
377272
378273
379-func cG (cH) = {
380- let B = addressFromString(cH)
381- let cI = if (isDefined(B))
382- then wavesBalance(value(B))
383- else BalanceDetails(0, 0, 0, 0)
384- let cJ = if (isDefined(B))
385- then assetBalance(value(B), c)
274+let bi = 0
275+
276+let bj = 1
277+
278+let bk = 0
279+
280+let bl = 1
281+
282+let bm = 2
283+
284+let bn = 3
285+
286+let bo = 4
287+
288+let bp = 5
289+
290+let bq = 6
291+
292+let br = 7
293+
294+let bs = 8
295+
296+let bt = 9
297+
298+let bu = 10
299+
300+let bv = 11
301+
302+let bw = 12
303+
304+let bx = 13
305+
306+let by = 14
307+
308+let bz = 15
309+
310+let bA = 16
311+
312+let bB = 17
313+
314+let bC = 18
315+
316+let bD = 19
317+
318+let bE = 20
319+
320+let bF = 21
321+
322+let bG = 22
323+
324+let bH = 23
325+
326+let bI = 24
327+
328+let bJ = 25
329+
330+let bK = 26
331+
332+let bL = 27
333+
334+let bM = 28
335+
336+let bN = 29
337+
338+let bO = 30
339+
340+let bP = 31
341+
342+func bQ (bR,bS,bT,bU) = {
343+ let at = valueOrErrorMessage(getInteger(bS[aE], ax), "WLGOLD is not issued yet")
344+ let bV = assetBalance(bS[aC], bT)
345+ let bW = (assetBalance(bS[aE], bT) - bU)
346+ let bX = assetBalance(bS[aF], bT)
347+ let bY = assetBalance(bS[aD], bT)
348+ let bZ = bS[aG]
349+ let ca = (assetBalance(bZ, bT) + valueOrElse(getInteger(bZ, ay), 0))
350+ let cb = ((bY + bW) + ca)
351+ let cc = valueOrErrorMessage(getBinary(bS[aE], "wlg_assetId"), "Not initialized yet")
352+ let cd = lastBlock.timestamp
353+ let ce = valueOrErrorMessage(getInteger(bS[aE], aw), "Not initialized")
354+ let cf = assetBalance(bS[aE], cc)
355+ let cg = fraction(at, ab, Z)
356+ let ch = valueOrElse(getInteger(bS[aE], an), cg)
357+ let ci = valueOrElse(getInteger(bS[aE], am), ce)
358+ let cj = addressFromStringValue(value(getString(bS[aE], al)))
359+ let ck = min([fraction(cg, (cd - ci), (3 * ae)), ch])
360+ let cl = assetBalance(cj, cc)
361+ let cm = fraction(at, ac, Z)
362+ let cn = valueOrElse(getInteger(bS[aE], ap), cm)
363+ let co = valueOrElse(getInteger(bS[aE], ao), ce)
364+ let cp = min([fraction(cm, (cd - co), (3 * ae)), cn])
365+ let cq = assetBalance(bS[aC], cc)
366+ let cr = valueOrElse(getInteger(bS[aE], ar(bR)), ce)
367+ let cs = ((cr - ce) / ae)
368+ let ct = min([cd, (ce + (3 * ae))])
369+ let cu = min([((cd - ce) / ae), 2])
370+ let cv = ba(bR, bS[aD])
371+ let cw = as(at, cu)
372+ let cx = (ce + (ae * cu))
373+ let cy = (ce + (ae * (cu - 1)))
374+ let cz = fraction(cw, (ct - cr), ae)
375+ let cA = if ((cs == cu))
376+ then cz
377+ else if ((cs == (cu - 1)))
378+ then {
379+ let cB = fraction(as(at, (cu - 1)), (cx - cr), ae)
380+ (cB + cz)
381+ }
382+ else {
383+ let cC = fraction(as(at, (cu - 2)), (cy - cr), ae)
384+ let cB = as(at, (cu - 1))
385+ ((cC + cB) + cz)
386+ }
387+ let cD = valueOrElse(getInteger(bS[aE], aq), 0)
388+ let cE = if ((cv[bi] != 0))
389+ then fraction(cA, cv[bj], cv[bi])
386390 else 0
387- let cK = if (isDefined(B))
388- then assetBalance(value(B), E)
391+ let cF = valueOrElse(getInteger(bS[aE], av), ak)
392+ let cG = fraction(ag, max([(cd - cF), 0]), af)
393+ let cH = fraction(cG, ai, Z)
394+ let cI = fraction(cG, aj, Z)
395+ let cJ = max([(cd - max([ak, cr])), 0])
396+ let cK = if ((cv[bi] != 0))
397+ then fraction(fraction(fraction(ag, cJ, af), cv[bj], cv[bi]), ah, Z)
389398 else 0
390- let cL = valueOrElse(getString(v, J(cH)), cH)
391- let cM = K(cH)
392- let cN = getString(v, cM)
393- let cO = valueOrElse(getString(v, L(cH)), "")
394- let cP = valueOrElse(getString(v, A(cH)), "")
395- let cQ = valueOrElse(getString(v, C(cH)), "")
396- let cR = if (isDefined(B))
397- then assetBalance(value(B), G)
398- else 0
399- let cS = valueOrElse(getInteger(v, at(cH)), 0)
400- let cT = aC(cS)
401- let cU = aQ(cH, v)
402- let cV = if ((cT >= size(aB)))
403- then 0
404- else (((aB[cT] * S) + 1) - cS)
405-[("%s%s__customName__" + cL), ("%s%s__referredBy__" + valueOrElse(cN, "")), ("%s%s__referrals__" + cO), ("%s%s__lastWeekTxId__" + cP), ("%s%s__curWeekTxId__" + cP), ("%s%d__wavesBalance__" + toString(cI.available)), ("%s%d__usdtBalance__" + toString(cJ)), ("%s%d__wlgoldBalance__" + toString(cK)), ("%s%d__acresBalance__" + toString(cR)), ("%s%d__stakedAcres__" + toString(cS)), ("%s%d__currentLvl__" + toString(cT)), ("%s%d__acresToNextLvl__" + toString(cV)), ("%s%d__userFarmingPower__" + toString(cU[bc])), ("%s%d__totalFarmingPower__" + toString(cU[bb]))]
399+ let cL = max([ak, cd])
400+ let cM = valueOrElse(getInteger(bS[aD], aA), 0)
401+[at, cf, fraction(cb, aa, at), cb, bV, bY, bW, bX, ce, ci, cg, ch, ck, cl, cm, cn, cp, cq, cu, cD, cw, cr, ca, cE, ct, cG, cH, cI, cK, cL, cv[bi], cM]
406402 }
407403
408404
409-@Callable(cW)
410-func constructorV1 (bL) = if ((cW.caller != this))
405+func cN (cO) = {
406+ let D = addressFromString(cO)
407+ let cP = if (isDefined(D))
408+ then wavesBalance(value(D))
409+ else BalanceDetails(0, 0, 0, 0)
410+ let cQ = if (isDefined(D))
411+ then assetBalance(value(D), f)
412+ else 0
413+ let cR = if (isDefined(D))
414+ then assetBalance(value(D), G)
415+ else 0
416+ let cS = valueOrElse(getString(x, L(cO)), cO)
417+ let cT = M(cO)
418+ let cU = getString(x, cT)
419+ let cV = valueOrElse(getString(x, N(cO)), "")
420+ let cW = valueOrElse(getString(x, C(cO)), "")
421+ let cX = valueOrElse(getString(x, E(cO)), "")
422+ let cY = if (isDefined(D))
423+ then assetBalance(value(D), I)
424+ else 0
425+ let cZ = valueOrElse(getInteger(x, az(cO)), 0)
426+ let da = aJ(cZ)
427+ let db = ba(cO, x)
428+ let dc = if ((da >= size(aI)))
429+ then 0
430+ else (((aI[da] * aa) + 1) - cZ)
431+[("%s%s__customName__" + cS), ("%s%s__referredBy__" + valueOrElse(cU, "")), ("%s%s__referrals__" + cV), ("%s%s__lastWeekTxId__" + cW), ("%s%s__curWeekTxId__" + cW), ("%s%d__wavesBalance__" + toString(cP.available)), ("%s%d__usdtBalance__" + toString(cQ)), ("%s%d__wlgoldBalance__" + toString(cR)), ("%s%d__acresBalance__" + toString(cY)), ("%s%d__stakedAcres__" + toString(cZ)), ("%s%d__currentLvl__" + toString(da)), ("%s%d__acresToNextLvl__" + toString(dc)), ("%s%d__userFarmingPower__" + toString(db[bj])), ("%s%d__totalFarmingPower__" + toString(db[bi]))]
432+ }
433+
434+
435+@Callable(dd)
436+func constructorV1 (bS) = if ((dd.caller != this))
411437 then throw("permissions denied")
412438 else {
413- func cX (aG,cY) = (aG + "%s")
439+ func de (aN,df) = (aN + "%s")
414440
415- let cZ = {
416- let aI = bL
417- let aJ = size(aI)
418- let aK = ""
419- func aL (aM,aN) = if ((aN >= aJ))
420- then aM
421- else cX(aM, aI[aN])
441+ let dg = {
442+ let aP = bS
443+ let aQ = size(aP)
444+ let aR = ""
445+ func aS (aT,aU) = if ((aU >= aQ))
446+ then aT
447+ else de(aT, aP[aU])
422448
423- func aO (aM,aN) = if ((aN >= aJ))
424- then aM
449+ func aV (aT,aU) = if ((aU >= aQ))
450+ then aT
425451 else throw("List size exceeds 10")
426452
427- aO(aL(aL(aL(aL(aL(aL(aL(aL(aL(aL(aK, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
453+ aV(aS(aS(aS(aS(aS(aS(aS(aS(aS(aS(aR, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
428454 }
429-[StringEntry(n(), makeString(cZ :: bL, a)), StringEntry(o(), toString(this))]
455+[StringEntry(p(), makeString(dg :: bS, a)), StringEntry(q(), toString(this))]
430456 }
431457
432458
433459
434-@Callable(cW)
435-func walletInfoREADONLY (cH) = $Tuple2(nil, cG(cH))
460+@Callable(dd)
461+func walletInfoREADONLY (cO) = $Tuple2(nil, cN(cO))
436462
437463
438464
439-@Callable(cW)
440-func conversionInfoREADONLY (cH) = {
441- let da = addressFromStringValue(getStringValue(v, z))
442- let db = Q(invoke(da, "unstakeAllAcresREADONLY", [cH], nil))
443- let dc = db._1
444- let dd = db._2
445- let de = M(invoke(v, "unstakeLandsREADONLY", [cH], nil))
446- let df = de._1
447- let dg = de._2
448- let dh = de._3
449- let di = de._4
450- let dj = addressFromStringValue(f)
451- let dk = valueOrElse(getString(dj, H(cH)), "")
452- let dl = if ((dk != ""))
453- then P(invoke(dj, "unstakeDuckREADONLY", [dk, cH], nil))
454- else $Tuple3(0, 0, 0)
465+@Callable(dd)
466+func conversionInfoREADONLY (cO) = {
467+ let dh = addressFromStringValue(getStringValue(x, B))
468+ let di = Y(invoke(dh, "unstakeAllAcresREADONLY", [cO], nil))
469+ let dj = di._1
470+ let dk = di._2
471+ let dl = U(invoke(x, "unstakeLandsREADONLY", [cO], nil))
455472 let dm = dl._1
456473 let dn = dl._2
457474 let do = dl._3
458- $Tuple2(nil, [("%s%d__unstakedAcres__" + toString(dc)), ("%s%d__claimedAcres__" + toString(dd)), ("%s%d__acresFromPieces__" + toString(df)), ("%s%d__acresFromRes__" + toString(dg)), ("%s%d__acresFromMat__" + toString(dh)), ("%s%d__acresFromProd__" + toString(di)), ("%s%d__acresFromDuckRes__" + toString(dm)), ("%s%d__acresFromDuckMat__" + toString(dn)), ("%s%d__acresFromDuckProd__" + toString(do))])
475+ let dp = dl._4
476+ let dq = addressFromStringValue(h)
477+ let dr = valueOrElse(getString(dq, J(cO)), "")
478+ let ds = if ((dr != ""))
479+ then X(invoke(dq, "unstakeDuckREADONLY", [dr, cO], nil))
480+ else $Tuple3(0, 0, 0)
481+ let dt = ds._1
482+ let du = ds._2
483+ let dv = ds._3
484+ $Tuple2(nil, [("%s%d__unstakedAcres__" + toString(dj)), ("%s%d__claimedAcres__" + toString(dk)), ("%s%d__acresFromPieces__" + toString(dm)), ("%s%d__acresFromRes__" + toString(dn)), ("%s%d__acresFromMat__" + toString(do)), ("%s%d__acresFromProd__" + toString(dp)), ("%s%d__acresFromDuckRes__" + toString(dt)), ("%s%d__acresFromDuckMat__" + toString(du)), ("%s%d__acresFromDuckProd__" + toString(dv))])
459485 }
460486
461487
462488
463-@Callable(cW)
464-func wlgStatsREADONLY (bK) = {
465- let dp = bJ(bK, [u, v, w, x, y], c, 0)
466- $Tuple2(nil, [("%s%d__wlgAmount__" + toString(dp[bd])), ("%s%d__wlgWlg__" + toString(dp[be])), ("%s%d__wlgPrice__" + toString(dp[bf])), ("%s%d__usdtFunds__" + toString(dp[bg])), ("%s%d__usdtActivity__" + toString(dp[bh])), ("%s%d__usdtStaking__" + toString(dp[bi])), ("%s%d__usdtArbitrage__" + toString(dp[bj])), ("%s%d__usdtPool__" + toString(dp[bk])), ("%s%d__wlgIssueTime__" + toString(dp[bl])), ("%s%d__wlgLastTeamActTime__" + toString(dp[bm])), ("%s%d__wlgTeamTotal__" + toString(dp[bn])), ("%s%d__wlgTeamAmLeft__" + toString(dp[bo])), ("%s%d__wlgTeamAmAvailNow__" + toString(dp[bp])), ("%s%d__wlgTeamWlgold__" + toString(dp[bq])), ("%s%d__wlgActTotal__" + toString(dp[br])), ("%s%d__wlgActAmLeft__" + toString(dp[bs])), ("%s%d__wlgActAmAvailNow__" + toString(dp[bt])), ("%s%d__wlgActWlgold__" + toString(dp[bu])), ("%s%d__wlgCurPeriod__" + toString(dp[bv])), ("%s%d__wlgAmLeftTotal__" + toString(dp[bw])), ("%s%d__wlgCurPeriodDistribution__" + toString(dp[bx])), ("%s%d__wlgLastUserTime__" + toString(dp[by])), ("%s%d__wlgInvestFundTotal__" + toString(dp[bz])), ("%s%d__wlgUserAmAvailNow__" + toString(dp[bA])), ("%s%d__wlgEffUserTime__" + toString(dp[bB])), ("%s%d__wlgIssue10AvailNow__" + toString(dp[bC])), ("%s%d__wlgMarketingIssue10AvailNow__" + toString(dp[bD])), ("%s%d__wlgTeamIssue10AvailNow__" + toString(dp[bE])), ("%s%d__wlgUserIssue10AvailNow__" + toString(dp[bF])), ("%s%d__wlgLastIssue10Time__" + toString(dp[bG])), ("%s%d__wlgTotalFarmingPower__" + toString(dp[bH])), ("%s%d__wlgAcresStakedTotal__" + toString(dp[bI]))])
489+@Callable(dd)
490+func wlgStatsREADONLY (bR) = {
491+ let dw = bQ(bR, [w, x, y, z, A], f, 0)
492+ $Tuple2(nil, [("%s%d__wlgAmount__" + toString(dw[bk])), ("%s%d__wlgWlg__" + toString(dw[bl])), ("%s%d__wlgPrice__" + toString(dw[bm])), ("%s%d__usdtFunds__" + toString(dw[bn])), ("%s%d__usdtActivity__" + toString(dw[bo])), ("%s%d__usdtStaking__" + toString(dw[bp])), ("%s%d__usdtArbitrage__" + toString(dw[bq])), ("%s%d__usdtPool__" + toString(dw[br])), ("%s%d__wlgIssueTime__" + toString(dw[bs])), ("%s%d__wlgLastTeamActTime__" + toString(dw[bt])), ("%s%d__wlgTeamTotal__" + toString(dw[bu])), ("%s%d__wlgTeamAmLeft__" + toString(dw[bv])), ("%s%d__wlgTeamAmAvailNow__" + toString(dw[bw])), ("%s%d__wlgTeamWlgold__" + toString(dw[bx])), ("%s%d__wlgActTotal__" + toString(dw[by])), ("%s%d__wlgActAmLeft__" + toString(dw[bz])), ("%s%d__wlgActAmAvailNow__" + toString(dw[bA])), ("%s%d__wlgActWlgold__" + toString(dw[bB])), ("%s%d__wlgCurPeriod__" + toString(dw[bC])), ("%s%d__wlgAmLeftTotal__" + toString(dw[bD])), ("%s%d__wlgCurPeriodDistribution__" + toString(dw[bE])), ("%s%d__wlgLastUserTime__" + toString(dw[bF])), ("%s%d__wlgInvestFundTotal__" + toString(dw[bG])), ("%s%d__wlgUserAmAvailNow__" + toString(dw[bH])), ("%s%d__wlgEffUserTime__" + toString(dw[bI])), ("%s%d__wlgIssue10AvailNow__" + toString(dw[bJ])), ("%s%d__wlgMarketingIssue10AvailNow__" + toString(dw[bK])), ("%s%d__wlgTeamIssue10AvailNow__" + toString(dw[bL])), ("%s%d__wlgUserIssue10AvailNow__" + toString(dw[bM])), ("%s%d__wlgLastIssue10Time__" + toString(dw[bN])), ("%s%d__wlgTotalFarmingPower__" + toString(dw[bO])), ("%s%d__wlgAcresStakedTotal__" + toString(dw[bP]))])
467493 }
468494
469495
470496
471-@Callable(cW)
472-func lotteryStatsREADONLY (bK) = {
473- let dq = (height / Y)
474- let aX = (height / Z)
475- let dr = (aX - 1)
476- let ds = valueOrElse(getInteger(w, aW(bK, aX)), 0)
477- let dt = valueOrElse(getInteger(w, aW(bK, dr)), 0)
478- let du = valueOrElse(getInteger(w, aY(aX)), 0)
479- let dv = valueOrElse(getInteger(w, aY(dr)), 0)
480- let dw = valueOrElse(getString(w, aV(bK)), "")
481- $Tuple2(nil, [((("%s%d%d__totalTickets__" + toString(dv)) + a) + toString(du)), ((("%s%d%d__userTickets__" + toString(dt)) + a) + toString(ds)), ("%s%d__blockchainWeek__" + toString(aX)), ("%s%d__blockchainDay__" + toString(dq)), ("%s%d__blockchainMinute__" + toString((height % Y))), ("%s%d__winningBetToday__" + toString(aZ(dq))), ("%s%s__usersBet__" + dw)])
497+@Callable(dd)
498+func lotteryStatsREADONLY (bR) = {
499+ let dx = (height / c)
500+ let Q = (height / e)
501+ let dy = (Q - 1)
502+ let dz = valueOrElse(getInteger(y, P(bR, Q)), 0)
503+ let dA = valueOrElse(getInteger(y, P(bR, dy)), 0)
504+ let dB = valueOrElse(getInteger(y, R(Q)), 0)
505+ let dC = valueOrElse(getInteger(y, R(dy)), 0)
506+ let dD = valueOrElse(getString(y, O(bR)), "")
507+ $Tuple2(nil, [((("%s%d%d__totalTickets__" + toString(dC)) + a) + toString(dB)), ((("%s%d%d__userTickets__" + toString(dA)) + a) + toString(dz)), ("%s%d__blockchainWeek__" + toString(Q)), ("%s%d__blockchainDay__" + toString(dx)), ("%s%d__blockchainMinute__" + toString((height % c))), ("%s%d__winningBetToday__" + toString(S(dx))), ("%s%s__usersBet__" + dD)])
482508 }
483509
484510

github/deemru/w8io/169f3d6 
393.04 ms