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:
Old | New | Differences | |
---|---|---|---|
8 | 8 | let c = { | |
9 | 9 | let d = b | |
10 | 10 | 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)) | |
11 | 29 | then base58'9wc3LXNA4TEBsXyKtoLE9mrbDD7WMHXvXrCjZvabLAsi' | |
12 | 30 | else if ((base58'2T' == d)) | |
13 | 31 | then base58'6mWwf9mZBjVgkC54idpyaZLQfAosD914wT8fGf2iiY63' | |
14 | 32 | else throw("Unknown chain") | |
15 | 33 | } | |
16 | 34 | ||
17 | - | let | |
35 | + | let g = { | |
18 | 36 | let d = b | |
19 | 37 | if ((base58'2W' == d)) | |
20 | 38 | then "3PFwYta8biEz31zpeFe5DJK8wE5trSpQVF8" | |
23 | 41 | else throw("Unknown chain") | |
24 | 42 | } | |
25 | 43 | ||
26 | - | let | |
44 | + | let h = { | |
27 | 45 | let d = b | |
28 | 46 | if ((base58'2W' == d)) | |
29 | 47 | then "3PLncXtS1U83D6cQbFD3H8rBHPLgzxSFKZ1" | |
32 | 50 | else throw("Unknown chain") | |
33 | 51 | } | |
34 | 52 | ||
35 | - | func | |
53 | + | func i (j,k) = valueOrErrorMessage(getString(j, k), makeString(["mandatory ", toString(j), ".", k, " is not defined"], "")) | |
36 | 54 | ||
37 | 55 | ||
38 | - | let | |
56 | + | let l = 1 | |
39 | 57 | ||
40 | - | let | |
58 | + | let m = 2 | |
41 | 59 | ||
42 | - | let | |
60 | + | let n = 4 | |
43 | 61 | ||
44 | - | let | |
62 | + | let o = 5 | |
45 | 63 | ||
46 | - | func | |
64 | + | func p () = "%s__restConfig" | |
47 | 65 | ||
48 | 66 | ||
49 | - | func | |
67 | + | func q () = "%s__rest2Addr" | |
50 | 68 | ||
51 | 69 | ||
52 | - | func | |
70 | + | func r (s) = split_4C(i(s, p()), a) | |
53 | 71 | ||
54 | 72 | ||
55 | - | func | |
73 | + | func t (u,v) = valueOrErrorMessage(addressFromString(u[v]), ("Rest cfg doesn't contain address at index " + toString(v))) | |
56 | 74 | ||
57 | 75 | ||
58 | - | let | |
76 | + | let w = addressFromStringValue(valueOrElse(getString(this, q()), g)) | |
59 | 77 | ||
60 | - | let | |
78 | + | let u = r(w) | |
61 | 79 | ||
62 | - | let | |
80 | + | let x = t(u, l) | |
63 | 81 | ||
64 | - | let | |
82 | + | let y = t(u, m) | |
65 | 83 | ||
66 | - | let | |
84 | + | let z = t(u, n) | |
67 | 85 | ||
68 | - | let | |
86 | + | let A = t(u, o) | |
69 | 87 | ||
70 | - | let | |
88 | + | let B = "oldAcresContract" | |
71 | 89 | ||
72 | - | func | |
90 | + | func C (D) = ("lastWeekTxIdByUser_" + D) | |
73 | 91 | ||
74 | 92 | ||
75 | - | func | |
93 | + | func E (D) = ("curWeekTxIdByUser_" + D) | |
76 | 94 | ||
77 | 95 | ||
78 | - | let | |
96 | + | let F = "wlg_assetId" | |
79 | 97 | ||
80 | - | let | |
98 | + | let G = valueOrErrorMessage(getBinary(y, F), "WLGOLD is not issued yet") | |
81 | 99 | ||
82 | - | let | |
100 | + | let H = "acresAssetId" | |
83 | 101 | ||
84 | - | let | |
102 | + | let I = valueOrErrorMessage(getBinary(x, H), "ACRES is not issued yet") | |
85 | 103 | ||
86 | - | func | |
104 | + | func J (K) = ("stakedDuckByOwner_" + K) | |
87 | 105 | ||
88 | 106 | ||
89 | - | func | |
107 | + | func L (D) = ("accountCustomNameByAddr_" + D) | |
90 | 108 | ||
91 | 109 | ||
92 | - | func | |
110 | + | func M (D) = ("accRefBy_" + D) | |
93 | 111 | ||
94 | 112 | ||
95 | - | func | |
113 | + | func N (D) = ("accReferrals_" + D) | |
96 | 114 | ||
97 | 115 | ||
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 | |
100 | 130 | if ($isInstanceOf(d, "(Int, Int, Int, Int)")) | |
101 | 131 | then { | |
102 | - | let | |
103 | - | | |
132 | + | let W = d | |
133 | + | W | |
104 | 134 | } | |
105 | 135 | else throw("fail to cast into (Int, Int, Int, Int)") | |
106 | 136 | } | |
107 | 137 | ||
108 | 138 | ||
109 | - | func | |
110 | - | let d = | |
139 | + | func X (V) = { | |
140 | + | let d = V | |
111 | 141 | if ($isInstanceOf(d, "(Int, Int, Int)")) | |
112 | 142 | then { | |
113 | - | let | |
114 | - | | |
143 | + | let W = d | |
144 | + | W | |
115 | 145 | } | |
116 | 146 | else throw("fail to cast into (Int, Int, Int)") | |
117 | 147 | } | |
118 | 148 | ||
119 | 149 | ||
120 | - | func | |
121 | - | let d = | |
150 | + | func Y (V) = { | |
151 | + | let d = V | |
122 | 152 | if ($isInstanceOf(d, "(Int, Int)")) | |
123 | 153 | then { | |
124 | - | let | |
125 | - | | |
154 | + | let W = d | |
155 | + | W | |
126 | 156 | } | |
127 | 157 | else throw("fail to cast into (Int, Int)") | |
128 | 158 | } | |
129 | 159 | ||
130 | 160 | ||
131 | - | let | |
161 | + | let Z = 1000000 | |
132 | 162 | ||
133 | - | let | |
163 | + | let aa = 100000000 | |
134 | 164 | ||
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 | |
152 | 166 | ||
153 | 167 | let ac = 100000 | |
154 | 168 | ||
155 | - | let ad = | |
169 | + | let ad = 400000 | |
156 | 170 | ||
157 | - | let ae = | |
171 | + | let ae = 31557600000 | |
158 | 172 | ||
159 | - | let af = | |
173 | + | let af = 86400000 | |
160 | 174 | ||
161 | - | let ag = | |
175 | + | let ag = 1000000000 | |
162 | 176 | ||
163 | - | let ah = | |
177 | + | let ah = 800000 | |
164 | 178 | ||
165 | - | let ai = | |
179 | + | let ai = 100000 | |
166 | 180 | ||
167 | - | let aj = | |
181 | + | let aj = 100000 | |
168 | 182 | ||
169 | - | let ak = | |
183 | + | let ak = 1731279600000 | |
170 | 184 | ||
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) | |
172 | 198 | ||
173 | 199 | ||
174 | - | func | |
200 | + | func as (at,au) = fraction(at, (ad * (au + 1)), (6 * Z)) | |
175 | 201 | ||
176 | 202 | ||
177 | - | let | |
203 | + | let av = "wlg_issue10Time" | |
178 | 204 | ||
179 | - | let | |
205 | + | let aw = "wlg_issueTime" | |
180 | 206 | ||
181 | - | let | |
207 | + | let ax = "wlg_issuedAmount" | |
182 | 208 | ||
183 | - | let | |
209 | + | let ay = "zbill_issuedAmount" | |
184 | 210 | ||
185 | - | func | |
211 | + | func az (D) = ("acresStakedAmountByUser_" + D) | |
186 | 212 | ||
187 | 213 | ||
188 | - | let | |
214 | + | let aA = "acresStakedAmountTotal" | |
189 | 215 | ||
190 | - | let | |
216 | + | let aB = "totalFarmingPower" | |
191 | 217 | ||
192 | - | let | |
218 | + | let aC = 0 | |
193 | 219 | ||
194 | - | let | |
220 | + | let aD = 1 | |
195 | 221 | ||
196 | - | let | |
222 | + | let aE = 2 | |
197 | 223 | ||
198 | - | let | |
224 | + | let aF = 3 | |
199 | 225 | ||
200 | - | let | |
226 | + | let aG = 4 | |
201 | 227 | ||
202 | - | ||
228 | + | func aH (D) = ("userFullBonus_" + D) | |
203 | 229 | ||
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) | |
209 | 230 | ||
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] | |
216 | 232 | ||
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 | |
219 | 248 | else throw("List size exceeds 10") | |
220 | 249 | ||
221 | - | | |
250 | + | aV(aS(aS(aS(aS(aS(aS(aS(aS(aS(aS(aR, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10) | |
222 | 251 | } | |
223 | 252 | ||
224 | 253 | ||
225 | - | func | |
254 | + | func aW (aK) = ((aK * 20) * (aJ(aK) + 4)) | |
226 | 255 | ||
227 | 256 | ||
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) | |
233 | 260 | } | |
234 | 261 | ||
235 | 262 | ||
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] | |
376 | 271 | } | |
377 | 272 | ||
378 | 273 | ||
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]) | |
386 | 390 | 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) | |
389 | 398 | 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] | |
406 | 402 | } | |
407 | 403 | ||
408 | 404 | ||
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)) | |
411 | 437 | then throw("permissions denied") | |
412 | 438 | else { | |
413 | - | func | |
439 | + | func de (aN,df) = (aN + "%s") | |
414 | 440 | ||
415 | - | let | |
416 | - | let | |
417 | - | let | |
418 | - | let | |
419 | - | func | |
420 | - | then | |
421 | - | else | |
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]) | |
422 | 448 | ||
423 | - | func | |
424 | - | then | |
449 | + | func aV (aT,aU) = if ((aU >= aQ)) | |
450 | + | then aT | |
425 | 451 | else throw("List size exceeds 10") | |
426 | 452 | ||
427 | - | | |
453 | + | aV(aS(aS(aS(aS(aS(aS(aS(aS(aS(aS(aR, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10) | |
428 | 454 | } | |
429 | - | [StringEntry( | |
455 | + | [StringEntry(p(), makeString(dg :: bS, a)), StringEntry(q(), toString(this))] | |
430 | 456 | } | |
431 | 457 | ||
432 | 458 | ||
433 | 459 | ||
434 | - | @Callable( | |
435 | - | func walletInfoREADONLY ( | |
460 | + | @Callable(dd) | |
461 | + | func walletInfoREADONLY (cO) = $Tuple2(nil, cN(cO)) | |
436 | 462 | ||
437 | 463 | ||
438 | 464 | ||
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)) | |
455 | 472 | let dm = dl._1 | |
456 | 473 | let dn = dl._2 | |
457 | 474 | 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))]) | |
459 | 485 | } | |
460 | 486 | ||
461 | 487 | ||
462 | 488 | ||
463 | - | @Callable( | |
464 | - | func wlgStatsREADONLY ( | |
465 | - | let | |
466 | - | $Tuple2(nil, [("%s%d__wlgAmount__" + toString( | |
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]))]) | |
467 | 493 | } | |
468 | 494 | ||
469 | 495 | ||
470 | 496 | ||
471 | - | @Callable( | |
472 | - | func lotteryStatsREADONLY ( | |
473 | - | let | |
474 | - | let | |
475 | - | let | |
476 | - | let | |
477 | - | let | |
478 | - | let | |
479 | - | let | |
480 | - | let | |
481 | - | $Tuple2(nil, [((("%s%d%d__totalTickets__" + toString( | |
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)]) | |
482 | 508 | } | |
483 | 509 | ||
484 | 510 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 6 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let a = "__" | |
5 | 5 | ||
6 | 6 | let b = take(drop(this.bytes, 1), 1) | |
7 | 7 | ||
8 | 8 | let c = { | |
9 | 9 | let d = b | |
10 | 10 | 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)) | |
11 | 29 | then base58'9wc3LXNA4TEBsXyKtoLE9mrbDD7WMHXvXrCjZvabLAsi' | |
12 | 30 | else if ((base58'2T' == d)) | |
13 | 31 | then base58'6mWwf9mZBjVgkC54idpyaZLQfAosD914wT8fGf2iiY63' | |
14 | 32 | else throw("Unknown chain") | |
15 | 33 | } | |
16 | 34 | ||
17 | - | let | |
35 | + | let g = { | |
18 | 36 | let d = b | |
19 | 37 | if ((base58'2W' == d)) | |
20 | 38 | then "3PFwYta8biEz31zpeFe5DJK8wE5trSpQVF8" | |
21 | 39 | else if ((base58'2T' == d)) | |
22 | 40 | then "3N7UuYar6264P58FBhVWKPQAh4Yua2hgngv" | |
23 | 41 | else throw("Unknown chain") | |
24 | 42 | } | |
25 | 43 | ||
26 | - | let | |
44 | + | let h = { | |
27 | 45 | let d = b | |
28 | 46 | if ((base58'2W' == d)) | |
29 | 47 | then "3PLncXtS1U83D6cQbFD3H8rBHPLgzxSFKZ1" | |
30 | 48 | else if ((base58'2T' == d)) | |
31 | 49 | then "3NDCyBG5q85JuaRiigUeEtainyjCQT3XpZm" | |
32 | 50 | else throw("Unknown chain") | |
33 | 51 | } | |
34 | 52 | ||
35 | - | func | |
53 | + | func i (j,k) = valueOrErrorMessage(getString(j, k), makeString(["mandatory ", toString(j), ".", k, " is not defined"], "")) | |
36 | 54 | ||
37 | 55 | ||
38 | - | let | |
56 | + | let l = 1 | |
39 | 57 | ||
40 | - | let | |
58 | + | let m = 2 | |
41 | 59 | ||
42 | - | let | |
60 | + | let n = 4 | |
43 | 61 | ||
44 | - | let | |
62 | + | let o = 5 | |
45 | 63 | ||
46 | - | func | |
64 | + | func p () = "%s__restConfig" | |
47 | 65 | ||
48 | 66 | ||
49 | - | func | |
67 | + | func q () = "%s__rest2Addr" | |
50 | 68 | ||
51 | 69 | ||
52 | - | func | |
70 | + | func r (s) = split_4C(i(s, p()), a) | |
53 | 71 | ||
54 | 72 | ||
55 | - | func | |
73 | + | func t (u,v) = valueOrErrorMessage(addressFromString(u[v]), ("Rest cfg doesn't contain address at index " + toString(v))) | |
56 | 74 | ||
57 | 75 | ||
58 | - | let | |
76 | + | let w = addressFromStringValue(valueOrElse(getString(this, q()), g)) | |
59 | 77 | ||
60 | - | let | |
78 | + | let u = r(w) | |
61 | 79 | ||
62 | - | let | |
80 | + | let x = t(u, l) | |
63 | 81 | ||
64 | - | let | |
82 | + | let y = t(u, m) | |
65 | 83 | ||
66 | - | let | |
84 | + | let z = t(u, n) | |
67 | 85 | ||
68 | - | let | |
86 | + | let A = t(u, o) | |
69 | 87 | ||
70 | - | let | |
88 | + | let B = "oldAcresContract" | |
71 | 89 | ||
72 | - | func | |
90 | + | func C (D) = ("lastWeekTxIdByUser_" + D) | |
73 | 91 | ||
74 | 92 | ||
75 | - | func | |
93 | + | func E (D) = ("curWeekTxIdByUser_" + D) | |
76 | 94 | ||
77 | 95 | ||
78 | - | let | |
96 | + | let F = "wlg_assetId" | |
79 | 97 | ||
80 | - | let | |
98 | + | let G = valueOrErrorMessage(getBinary(y, F), "WLGOLD is not issued yet") | |
81 | 99 | ||
82 | - | let | |
100 | + | let H = "acresAssetId" | |
83 | 101 | ||
84 | - | let | |
102 | + | let I = valueOrErrorMessage(getBinary(x, H), "ACRES is not issued yet") | |
85 | 103 | ||
86 | - | func | |
104 | + | func J (K) = ("stakedDuckByOwner_" + K) | |
87 | 105 | ||
88 | 106 | ||
89 | - | func | |
107 | + | func L (D) = ("accountCustomNameByAddr_" + D) | |
90 | 108 | ||
91 | 109 | ||
92 | - | func | |
110 | + | func M (D) = ("accRefBy_" + D) | |
93 | 111 | ||
94 | 112 | ||
95 | - | func | |
113 | + | func N (D) = ("accReferrals_" + D) | |
96 | 114 | ||
97 | 115 | ||
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 | |
100 | 130 | if ($isInstanceOf(d, "(Int, Int, Int, Int)")) | |
101 | 131 | then { | |
102 | - | let | |
103 | - | | |
132 | + | let W = d | |
133 | + | W | |
104 | 134 | } | |
105 | 135 | else throw("fail to cast into (Int, Int, Int, Int)") | |
106 | 136 | } | |
107 | 137 | ||
108 | 138 | ||
109 | - | func | |
110 | - | let d = | |
139 | + | func X (V) = { | |
140 | + | let d = V | |
111 | 141 | if ($isInstanceOf(d, "(Int, Int, Int)")) | |
112 | 142 | then { | |
113 | - | let | |
114 | - | | |
143 | + | let W = d | |
144 | + | W | |
115 | 145 | } | |
116 | 146 | else throw("fail to cast into (Int, Int, Int)") | |
117 | 147 | } | |
118 | 148 | ||
119 | 149 | ||
120 | - | func | |
121 | - | let d = | |
150 | + | func Y (V) = { | |
151 | + | let d = V | |
122 | 152 | if ($isInstanceOf(d, "(Int, Int)")) | |
123 | 153 | then { | |
124 | - | let | |
125 | - | | |
154 | + | let W = d | |
155 | + | W | |
126 | 156 | } | |
127 | 157 | else throw("fail to cast into (Int, Int)") | |
128 | 158 | } | |
129 | 159 | ||
130 | 160 | ||
131 | - | let | |
161 | + | let Z = 1000000 | |
132 | 162 | ||
133 | - | let | |
163 | + | let aa = 100000000 | |
134 | 164 | ||
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 | |
152 | 166 | ||
153 | 167 | let ac = 100000 | |
154 | 168 | ||
155 | - | let ad = | |
169 | + | let ad = 400000 | |
156 | 170 | ||
157 | - | let ae = | |
171 | + | let ae = 31557600000 | |
158 | 172 | ||
159 | - | let af = | |
173 | + | let af = 86400000 | |
160 | 174 | ||
161 | - | let ag = | |
175 | + | let ag = 1000000000 | |
162 | 176 | ||
163 | - | let ah = | |
177 | + | let ah = 800000 | |
164 | 178 | ||
165 | - | let ai = | |
179 | + | let ai = 100000 | |
166 | 180 | ||
167 | - | let aj = | |
181 | + | let aj = 100000 | |
168 | 182 | ||
169 | - | let ak = | |
183 | + | let ak = 1731279600000 | |
170 | 184 | ||
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) | |
172 | 198 | ||
173 | 199 | ||
174 | - | func | |
200 | + | func as (at,au) = fraction(at, (ad * (au + 1)), (6 * Z)) | |
175 | 201 | ||
176 | 202 | ||
177 | - | let | |
203 | + | let av = "wlg_issue10Time" | |
178 | 204 | ||
179 | - | let | |
205 | + | let aw = "wlg_issueTime" | |
180 | 206 | ||
181 | - | let | |
207 | + | let ax = "wlg_issuedAmount" | |
182 | 208 | ||
183 | - | let | |
209 | + | let ay = "zbill_issuedAmount" | |
184 | 210 | ||
185 | - | func | |
211 | + | func az (D) = ("acresStakedAmountByUser_" + D) | |
186 | 212 | ||
187 | 213 | ||
188 | - | let | |
214 | + | let aA = "acresStakedAmountTotal" | |
189 | 215 | ||
190 | - | let | |
216 | + | let aB = "totalFarmingPower" | |
191 | 217 | ||
192 | - | let | |
218 | + | let aC = 0 | |
193 | 219 | ||
194 | - | let | |
220 | + | let aD = 1 | |
195 | 221 | ||
196 | - | let | |
222 | + | let aE = 2 | |
197 | 223 | ||
198 | - | let | |
224 | + | let aF = 3 | |
199 | 225 | ||
200 | - | let | |
226 | + | let aG = 4 | |
201 | 227 | ||
202 | - | ||
228 | + | func aH (D) = ("userFullBonus_" + D) | |
203 | 229 | ||
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) | |
209 | 230 | ||
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] | |
216 | 232 | ||
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 | |
219 | 248 | else throw("List size exceeds 10") | |
220 | 249 | ||
221 | - | | |
250 | + | aV(aS(aS(aS(aS(aS(aS(aS(aS(aS(aS(aR, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10) | |
222 | 251 | } | |
223 | 252 | ||
224 | 253 | ||
225 | - | func | |
254 | + | func aW (aK) = ((aK * 20) * (aJ(aK) + 4)) | |
226 | 255 | ||
227 | 256 | ||
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) | |
233 | 260 | } | |
234 | 261 | ||
235 | 262 | ||
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] | |
376 | 271 | } | |
377 | 272 | ||
378 | 273 | ||
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]) | |
386 | 390 | 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) | |
389 | 398 | 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] | |
406 | 402 | } | |
407 | 403 | ||
408 | 404 | ||
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)) | |
411 | 437 | then throw("permissions denied") | |
412 | 438 | else { | |
413 | - | func | |
439 | + | func de (aN,df) = (aN + "%s") | |
414 | 440 | ||
415 | - | let | |
416 | - | let | |
417 | - | let | |
418 | - | let | |
419 | - | func | |
420 | - | then | |
421 | - | else | |
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]) | |
422 | 448 | ||
423 | - | func | |
424 | - | then | |
449 | + | func aV (aT,aU) = if ((aU >= aQ)) | |
450 | + | then aT | |
425 | 451 | else throw("List size exceeds 10") | |
426 | 452 | ||
427 | - | | |
453 | + | aV(aS(aS(aS(aS(aS(aS(aS(aS(aS(aS(aR, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10) | |
428 | 454 | } | |
429 | - | [StringEntry( | |
455 | + | [StringEntry(p(), makeString(dg :: bS, a)), StringEntry(q(), toString(this))] | |
430 | 456 | } | |
431 | 457 | ||
432 | 458 | ||
433 | 459 | ||
434 | - | @Callable( | |
435 | - | func walletInfoREADONLY ( | |
460 | + | @Callable(dd) | |
461 | + | func walletInfoREADONLY (cO) = $Tuple2(nil, cN(cO)) | |
436 | 462 | ||
437 | 463 | ||
438 | 464 | ||
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)) | |
455 | 472 | let dm = dl._1 | |
456 | 473 | let dn = dl._2 | |
457 | 474 | 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))]) | |
459 | 485 | } | |
460 | 486 | ||
461 | 487 | ||
462 | 488 | ||
463 | - | @Callable( | |
464 | - | func wlgStatsREADONLY ( | |
465 | - | let | |
466 | - | $Tuple2(nil, [("%s%d__wlgAmount__" + toString( | |
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]))]) | |
467 | 493 | } | |
468 | 494 | ||
469 | 495 | ||
470 | 496 | ||
471 | - | @Callable( | |
472 | - | func lotteryStatsREADONLY ( | |
473 | - | let | |
474 | - | let | |
475 | - | let | |
476 | - | let | |
477 | - | let | |
478 | - | let | |
479 | - | let | |
480 | - | let | |
481 | - | $Tuple2(nil, [((("%s%d%d__totalTickets__" + toString( | |
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)]) | |
482 | 508 | } | |
483 | 509 | ||
484 | 510 |
github/deemru/w8io/169f3d6 393.04 ms ◑![]()