tx · SGheaLWpV8LqBGKJMgdmJoKw8mHDLR4BhvfihARgrdi 3N7UuYar6264P58FBhVWKPQAh4Yua2hgngv: -0.01600000 Waves 2024.11.05 01:22 [3357318] smart account 3N7UuYar6264P58FBhVWKPQAh4Yua2hgngv > SELF 0.00000000 Waves
{ "type": 13, "id": "SGheaLWpV8LqBGKJMgdmJoKw8mHDLR4BhvfihARgrdi", "fee": 1600000, "feeAssetId": null, "timestamp": 1730758958224, "version": 2, "chainId": 84, "sender": "3N7UuYar6264P58FBhVWKPQAh4Yua2hgngv", "senderPublicKey": "2fNSk5gmWbXBDTkSYSKd66xSgVvAYzrJnP9YSAFNvTwC", "proofs": [ "5YbmBKZ39robjAVBUmcm8eWaKPaKsvove4pYzQywwmp5w5YLCZ96YSnurXuk4mqS2PHtgsmEwzsm9oQVd4Wbftbw" ], "script": "base64:BgIbCAISAwoBGBIDCgEIEgMKAQgSAwoBCBIDCgEIagADU0VQAgJfXwAFY2hhaW4JAMkBAgkAygECCAUEdGhpcwVieXRlcwABAAEAC3VzZHRBc3NldElkBAckbWF0Y2gwBQVjaGFpbgMJAAACAQFXBQckbWF0Y2gwASCE2nqyCAM/TtG7yo7ui5O8yYLdC136B5ao1CP5qA//uQMJAAACAQFUBQckbWF0Y2gwASBVsdifcoeC7+XjW42sBatl3ppDoS8WuwXzGreHpfHFGAkAAgECDVVua25vd24gY2hhaW4AFmRlZmF1bHRSZXN0MkFkZHJlc3NTdHIEByRtYXRjaDAFBWNoYWluAwkAAAIBAVcFByRtYXRjaDACIzNQRndZdGE4YmlFejMxenBlRmU1REpLOHdFNXRyU3BRVkY4AwkAAAIBAVQFByRtYXRjaDACIzNON1V1WWFyNjI2NFA1OEZCaFZXS1BRQWg0WXVhMmhnbmd2CQACAQINVW5rbm93biBjaGFpbgAVb2xkU3Rha2luZ0NvbnRyYWN0U3RyBAckbWF0Y2gwBQVjaGFpbgMJAAACAQFXBQckbWF0Y2gwAiMzUExuY1h0UzFVODNENmNRYkZEM0g4ckJIUExnenhTRktaMQMJAAACAQFUBQckbWF0Y2gwAiMzTkRDeUJHNXE4NUp1YVJpaWdVZUV0YWlueWpDUVQzWHBabQkAAgECDVVua25vd24gY2hhaW4BD2dldFN0cmluZ09yRmFpbAIHYWRkcmVzcwNrZXkJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQdhZGRyZXNzBQNrZXkJALkJAgkAzAgCAgptYW5kYXRvcnkgCQDMCAIJAKUIAQUHYWRkcmVzcwkAzAgCAgEuCQDMCAIFA2tleQkAzAgCAg8gaXMgbm90IGRlZmluZWQFA25pbAIAABBJZHhDZmdBY3JlczJEYXBwAAEADUlkeENmZ1dsZ0RhcHAAAgAUSWR4Q2ZnUHV6emxlUG9vbERhcHAABAAUSWR4Q2ZnSW52ZXN0RnVuZERhcHAABQEKa2V5UmVzdENmZwACDiVzX19yZXN0Q29uZmlnAQ9rZXlSZXN0MkFkZHJlc3MAAg0lc19fcmVzdDJBZGRyARFyZWFkUmVzdENmZ09yRmFpbAEEcmVzdAkAvAkCCQEPZ2V0U3RyaW5nT3JGYWlsAgUEcmVzdAkBCmtleVJlc3RDZmcABQNTRVABGGdldENvbnRyYWN0QWRkcmVzc09yRmFpbAIIcmVzdDJDZmcDaWR4CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkAkQMCBQhyZXN0MkNmZwUDaWR4CQCsAgICKlJlc3QgY2ZnIGRvZXNuJ3QgY29udGFpbiBhZGRyZXNzIGF0IGluZGV4IAkApAMBBQNpZHgADXJlc3QyQ29udHJhY3QJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwkBD2tleVJlc3QyQWRkcmVzcwAFFmRlZmF1bHRSZXN0MkFkZHJlc3NTdHIACHJlc3QyQ2ZnCQERcmVhZFJlc3RDZmdPckZhaWwBBQ1yZXN0MkNvbnRyYWN0AA5hY3JlczJDb250cmFjdAkBGGdldENvbnRyYWN0QWRkcmVzc09yRmFpbAIFCHJlc3QyQ2ZnBRBJZHhDZmdBY3JlczJEYXBwAAt3bGdDb250cmFjdAkBGGdldENvbnRyYWN0QWRkcmVzc09yRmFpbAIFCHJlc3QyQ2ZnBQ1JZHhDZmdXbGdEYXBwABJwdXp6bGVQb29sQ29udHJhY3QJARhnZXRDb250cmFjdEFkZHJlc3NPckZhaWwCBQhyZXN0MkNmZwUUSWR4Q2ZnUHV6emxlUG9vbERhcHAAEmludmVzdEZ1bmRDb250cmFjdAkBGGdldENvbnRyYWN0QWRkcmVzc09yRmFpbAIFCHJlc3QyQ2ZnBRRJZHhDZmdJbnZlc3RGdW5kRGFwcAATb2xkQWNyZXNDb250cmFjdEtleQIQb2xkQWNyZXNDb250cmFjdAERa2V5TGFzdFR4SWRCeVVzZXIBBGFkZHIJAKwCAgIPbGFzdFR4SWRCeVVzZXJfBQRhZGRyAA13bGdBc3NldElkS2V5Agt3bGdfYXNzZXRJZAAKd2xnQXNzZXRJZAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCcCAIFC3dsZ0NvbnRyYWN0BQ13bGdBc3NldElkS2V5AhhXTEdPTEQgaXMgbm90IGlzc3VlZCB5ZXQAD2FjcmVzQXNzZXRJZEtleQIMYWNyZXNBc3NldElkAAxhY3Jlc0Fzc2V0SWQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnAgCBQ5hY3JlczJDb250cmFjdAUPYWNyZXNBc3NldElkS2V5AhdBQ1JFUyBpcyBub3QgaXNzdWVkIHlldAEUa2V5U3Rha2VkRHVja0J5T3duZXIBCW93bmVyQWRkcgkArAICAhJzdGFrZWREdWNrQnlPd25lcl8FCW93bmVyQWRkcgEWa2V5QWRkcmVzc1RvQ3VzdG9tTmFtZQEEYWRkcgkArAICAhhhY2NvdW50Q3VzdG9tTmFtZUJ5QWRkcl8FBGFkZHIBD2tleUFkZHJlc3NSZWZCeQEEYWRkcgkArAICAglhY2NSZWZCeV8FBGFkZHIBE2tleUFkZHJlc3NSZWZlcnJhbHMBBGFkZHIJAKwCAgINYWNjUmVmZXJyYWxzXwUEYWRkcgEMYXNUdXBsZTRJbnRzAQN2YWwEByRtYXRjaDAFA3ZhbAMJAAECBQckbWF0Y2gwAhQoSW50LCBJbnQsIEludCwgSW50KQQBdAUHJG1hdGNoMAUBdAkAAgECJmZhaWwgdG8gY2FzdCBpbnRvIChJbnQsIEludCwgSW50LCBJbnQpAQxhc1R1cGxlM0ludHMBA3ZhbAQHJG1hdGNoMAUDdmFsAwkAAQIFByRtYXRjaDACDyhJbnQsIEludCwgSW50KQQBdAUHJG1hdGNoMAUBdAkAAgECIWZhaWwgdG8gY2FzdCBpbnRvIChJbnQsIEludCwgSW50KQEMYXNUdXBsZTJJbnRzAQN2YWwEByRtYXRjaDAFA3ZhbAMJAAECBQckbWF0Y2gwAgooSW50LCBJbnQpBAF0BQckbWF0Y2gwBQF0CQACAQIcZmFpbCB0byBjYXN0IGludG8gKEludCwgSW50KQADTTZfAMCEPQADTThfAIDC1y8AClRFQU1fU0hBUkUAwJoMAA5BQ1RJVklUWV9TSEFSRQCgjQYADFBMQVlFUl9TSEFSRQCAtRgAC1lFQVJfTUlMTElTAICG68d1AAZEQVlfTVMAgLiZKQAKREFZX0JMT0NLUwCgCwAHSVNTVUUxMACAlOvcAwAPUExBWUVSUzEwX1NIQVJFAIDqMAARTUFSS0VUSU5HMTBfU0hBUkUAoI0GAAxURUFNMTBfU0hBUkUAoI0GABFORVdfU1RBS0lOR19TVEFSVACA2IGrpDIACnRlYW1BZHJLZXkCCHRlYW1BZGRyAA5sYXN0VGVhbVRpbUtleQIUbGFzdENsYWltZWRUaW1lX3RlYW0ADnRlYW1BbXRMZWZ0S2V5Ag50ZWFtQW1vdW50TGVmdAAUbGFzdEFjdGl2aXRpZXNUaW1LZXkCGmxhc3RDbGFpbWVkVGltZV9hY3Rpdml0aWVzAA1hY3RBbXRMZWZ0S2V5AhRhY3Rpdml0aWVzQW1vdW50TGVmdAARc3Rha2Vyc0FtdExlZnRLZXkCEXN0YWtlcnNBbW91bnRMZWZ0ARZrZXlMYXN0Q2xhaW1UaW1lQnlVc2VyAQRhZGRyCQCsAgICFGxhc3RDbGFpbWVkVGltZVVzZXJfBQRhZGRyAQ1kaXN0ckJ5UGVyaW9kAgxpc3N1ZWRBbW91bnQGcGVyaW9kCQBrAwUMaXNzdWVkQW1vdW50CQBoAgUMUExBWUVSX1NIQVJFCQBkAgUGcGVyaW9kAAEJAGgCAAYFA002XwARd2xnSXNzdWUxMFRpbWVLZXkCD3dsZ19pc3N1ZTEwVGltZQAOd2xnSXNzdWVUaW1LZXkCDXdsZ19pc3N1ZVRpbWUAD3dsZ0lzc3VlZEFtdEtleQIQd2xnX2lzc3VlZEFtb3VudAAOemJJc3N1ZWRBbXRLZXkCEnpiaWxsX2lzc3VlZEFtb3VudAEXa2V5QWNyZXNTdGFrZWRBbXRCeVVzZXIBBGFkZHIJAKwCAgIYYWNyZXNTdGFrZWRBbW91bnRCeVVzZXJfBQRhZGRyABR0b3RhbEZhcm1pbmdQb3dlcktleQIRdG90YWxGYXJtaW5nUG93ZXIACWRhcHAyUmVzdAAAAAxkYXBwMlN0YWtpbmcAAQAIZGFwcDJXbGcAAgALZGFwcDJQdXp6bGUAAwAPZGFwcDJJbnZlc3RGdW5kAAQACmxldmVsQWNyZXMJAMwIAgAACQDMCAIACgkAzAgCABQJAMwIAgAoCQDMCAIAUAkAzAgCAJYBCQDMCAIA+gEJAMwIAgCQAwkAzAgCALwFCQDMCAIA6AcFA25pbAEPZ2V0TGV2ZWxCeUFjcmVzAQVhY3JlcwQDYWNyCQBpAgkAZAIFBWFjcmVzAP/B1y8FA004XwoBB2NoZWNrZXICA2FjYwRpdGVtAwkAZwIFBGl0ZW0FA2FjcgUDYWNjCQBkAgUDYWNjAAEKAAIkbAUKbGV2ZWxBY3JlcwoAAiRzCQCQAwEFAiRsCgAFJGFjYzAAAAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEHY2hlY2tlcgIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMTAJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgEWZ2V0RmFybWluZ1Bvd2VyQnlBY3JlcwEFYWNyZXMJAGgCCQBoAgUFYWNyZXMAFAkAZAIJAQ9nZXRMZXZlbEJ5QWNyZXMBBQVhY3JlcwAEARBnZXRGYXJtaW5nUG93ZXJzAhJ1c2VyQWRkclN0ck9yRW1wdHkOYWNyZXMyQ29udHJhY3QEB3RvdGFsRlAJAQt2YWx1ZU9yRWxzZQIJAJoIAgUOYWNyZXMyQ29udHJhY3QFFHRvdGFsRmFybWluZ1Bvd2VyS2V5AAAECXVzZXJBY3JlcwkBC3ZhbHVlT3JFbHNlAgkAmggCBQ5hY3JlczJDb250cmFjdAkBF2tleUFjcmVzU3Rha2VkQW10QnlVc2VyAQUSdXNlckFkZHJTdHJPckVtcHR5AAAEBnVzZXJGUAkBFmdldEZhcm1pbmdQb3dlckJ5QWNyZXMBBQl1c2VyQWNyZXMJAMwIAgUHdG90YWxGUAkAzAgCBQZ1c2VyRlAFA25pbAEOa2V5VXNlclRpY2tldHMBBGFkZHIJAKwCAgIMdXNlclRpY2tldHNfBQRhZGRyAA9rZXlUb3RhbFRpY2tldHMCDHRvdGFsVGlja2V0cwEKd2lubmluZ0JldAEDZGF5CQBqAgkAsQkBCQEFdmFsdWUBCAkBBXZhbHVlAQkA7QcBCQBoAgUDZGF5BQpEQVlfQkxPQ0tTA3ZyZgAEAAppZHhUb3RhbEZQAAAACWlkeFVzZXJGUAABAAtpeFdsZ0Ftb3VudAAAAAhpeFdsZ1dsZwABAAppeFdsZ1ByaWNlAAIACml4V2xnRnVuZHMAAwANaXhXbGdBY3Rpdml0eQAEAAtpeFdsZ0FjcmVzMgAFAA5peFdsZ0FyYml0cmFnZQAGAAlpeFdsZ1Bvb2wABwAOaXhXbGdJc3N1ZVRpbWUACAAUaXhXbGdMYXN0VGVhbUFjdFRpbWUACQAOaXhXbGdUZWFtVG90YWwACgAPaXhXbGdUZWFtQW1MZWZ0AAsAE2l4V2xnVGVhbUFtQXZhaWxOb3cADAAPaXhXbGdUZWFtV2xnb2xkAA0ADWl4V2xnQWN0VG90YWwADgAOaXhXbGdBY3RBbUxlZnQADwASaXhXbGdBY3RBbUF2YWlsTm93ABAADml4V2xnQWN0V2xnb2xkABEADml4V2xnQ3VyUGVyaW9kABIAEGl4V2xnQW1MZWZ0VG90YWwAEwAaaXhXbGdDdXJQZXJpb2REaXN0cmlidXRpb24AFAARaXhXbGdMYXN0VXNlclRpbWUAFQAVaXhXbGdJbnZlc3RGdW5kQW1vdW50ABYAE2l4V2xnVXNlckFtQXZhaWxOb3cAFwAQaXhXbGdFZmZVc2VyVGltZQAYABJpeFdsZ0lzc3VlMTBBbW91bnQAGQAbaXhXbGdNYXJrZXRpbmdJc3N1ZTEwQW1vdW50ABoAFml4V2xnVGVhbUlzc3VlMTBBbW91bnQAGwAPaXhXbGdVc2VyMTBwYXJ0ABwAEGl4V2xnSXNzdWUxMFRpbWUAHQEMZ2V0V2xnU3RhdHMyBAt1c2VyQWRkck9wdAljb250cmFjdHMGdXNkdElkFXVzZHRCYWxhbmNlQ29ycmVjdGlvbgQMaXNzdWVkQW1vdW50CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgkAkQMCBQljb250cmFjdHMFCGRhcHAyV2xnBQ93bGdJc3N1ZWRBbXRLZXkCGFdMR09MRCBpcyBub3QgaXNzdWVkIHlldAQHcmVzdFVzZAkA8AcCCQCRAwIFCWNvbnRyYWN0cwUJZGFwcDJSZXN0BQZ1c2R0SWQEBndsZ1VzZAkAZQIJAPAHAgkAkQMCBQljb250cmFjdHMFCGRhcHAyV2xnBQZ1c2R0SWQFFXVzZHRCYWxhbmNlQ29ycmVjdGlvbgQJcHV6emxlVXNkCQDwBwIJAJEDAgUJY29udHJhY3RzBQtkYXBwMlB1enpsZQUGdXNkdElkBAlhY3JlczJVc2QJAPAHAgkAkQMCBQljb250cmFjdHMFDGRhcHAyU3Rha2luZwUGdXNkdElkBBFpbnZlc3RGbmRDb250cmFjdAkAkQMCBQljb250cmFjdHMFD2RhcHAySW52ZXN0RnVuZAQPaW52ZXN0RnVuZFRvdGFsCQBkAgkA8AcCBRFpbnZlc3RGbmRDb250cmFjdAUGdXNkdElkCQELdmFsdWVPckVsc2UCCQCaCAIFEWludmVzdEZuZENvbnRyYWN0BQ56Yklzc3VlZEFtdEtleQAABA10b3RhbEZ1bmRzVXNkCQBkAgkAZAIFCWFjcmVzMlVzZAUGd2xnVXNkBQ9pbnZlc3RGdW5kVG90YWwEBXdsZ0lkCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJwIAgkAkQMCBQljb250cmFjdHMFCGRhcHAyV2xnAgt3bGdfYXNzZXRJZAITTm90IGluaXRpYWxpemVkIHlldAQDbm93CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAQJaXNzdWVUaW1lCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgkAkQMCBQljb250cmFjdHMFCGRhcHAyV2xnBQ53bGdJc3N1ZVRpbUtleQIPTm90IGluaXRpYWxpemVkBAZ3bGdXbGcJAPAHAgkAkQMCBQljb250cmFjdHMFCGRhcHAyV2xnBQV3bGdJZAQJdGVhbVRvdGFsCQBrAwUMaXNzdWVkQW1vdW50BQpURUFNX1NIQVJFBQNNNl8EDnRlYW1BbW91bnRMZWZ0CQELdmFsdWVPckVsc2UCCQCaCAIJAJEDAgUJY29udHJhY3RzBQhkYXBwMldsZwUOdGVhbUFtdExlZnRLZXkFCXRlYW1Ub3RhbAQMbGFzdFRlYW1UaW1lCQELdmFsdWVPckVsc2UCCQCaCAIJAJEDAgUJY29udHJhY3RzBQhkYXBwMldsZwUObGFzdFRlYW1UaW1LZXkFCWlzc3VlVGltZQQIdGVhbUFkZHIJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQV2YWx1ZQEJAJ0IAgkAkQMCBQljb250cmFjdHMFCGRhcHAyV2xnBQp0ZWFtQWRyS2V5BBZ0ZWFtQW1vdW50QXZhaWxhYmxlTm93CQCXAwEJAMwIAgkAawMFCXRlYW1Ub3RhbAkAZQIFA25vdwUMbGFzdFRlYW1UaW1lCQBoAgADBQtZRUFSX01JTExJUwkAzAgCBQ50ZWFtQW1vdW50TGVmdAUDbmlsBAp0ZWFtV2xnb2xkCQDwBwIFCHRlYW1BZGRyBQV3bGdJZAQIYWN0VG90YWwJAGsDBQxpc3N1ZWRBbW91bnQFDkFDVElWSVRZX1NIQVJFBQNNNl8EDWFjdEFtb3VudExlZnQJAQt2YWx1ZU9yRWxzZQIJAJoIAgkAkQMCBQljb250cmFjdHMFCGRhcHAyV2xnBQ1hY3RBbXRMZWZ0S2V5BQhhY3RUb3RhbAQSbGFzdEFjdGl2aXRpZXNUaW1lCQELdmFsdWVPckVsc2UCCQCaCAIJAJEDAgUJY29udHJhY3RzBQhkYXBwMldsZwUUbGFzdEFjdGl2aXRpZXNUaW1LZXkFCWlzc3VlVGltZQQVYWN0QW1vdW50QXZhaWxhYmxlTm93CQCXAwEJAMwIAgkAawMFCGFjdFRvdGFsCQBlAgUDbm93BRJsYXN0QWN0aXZpdGllc1RpbWUJAGgCAAMFC1lFQVJfTUlMTElTCQDMCAIFDWFjdEFtb3VudExlZnQFA25pbAQJYWN0V2xnb2xkCQDwBwIJAJEDAgUJY29udHJhY3RzBQlkYXBwMlJlc3QFBXdsZ0lkBAxsYXN0VXNlclRpbWUJAQt2YWx1ZU9yRWxzZQIJAJoIAgkAkQMCBQljb250cmFjdHMFCGRhcHAyV2xnCQEWa2V5TGFzdENsYWltVGltZUJ5VXNlcgEFC3VzZXJBZGRyT3B0BQlpc3N1ZVRpbWUEDmxhc3RVc2VyUGVyaW9kCQBpAgkAZQIFDGxhc3RVc2VyVGltZQUJaXNzdWVUaW1lBQtZRUFSX01JTExJUwQKbm93TGltaXRlZAkAlwMBCQDMCAIFA25vdwkAzAgCCQBkAgUJaXNzdWVUaW1lCQBoAgADBQtZRUFSX01JTExJUwUDbmlsBAljdXJQZXJpb2QJAJcDAQkAzAgCCQBpAgkAZQIFA25vdwUJaXNzdWVUaW1lBQtZRUFSX01JTExJUwkAzAgCAAIFA25pbAQDZWZmCQEQZ2V0RmFybWluZ1Bvd2VycwIFC3VzZXJBZGRyT3B0CQCRAwIFCWNvbnRyYWN0cwUMZGFwcDJTdGFraW5nBBVjdXJQZXJpb2REaXN0cmlidXRpb24JAQ1kaXN0ckJ5UGVyaW9kAgUMaXNzdWVkQW1vdW50BQljdXJQZXJpb2QEDXByZXZQZXJpb2RFbmQJAGQCBQlpc3N1ZVRpbWUJAGgCBQtZRUFSX01JTExJUwUJY3VyUGVyaW9kBBFwcmV2UHJldlBlcmlvZEVuZAkAZAIFCWlzc3VlVGltZQkAaAIFC1lFQVJfTUlMTElTCQBlAgUJY3VyUGVyaW9kAAEEAmEwCQBrAwUVY3VyUGVyaW9kRGlzdHJpYnV0aW9uCQBlAgUKbm93TGltaXRlZAUMbGFzdFVzZXJUaW1lBQtZRUFSX01JTExJUwQNdXNlckF2YWlsYWJsZQMJAAACBQ5sYXN0VXNlclBlcmlvZAUJY3VyUGVyaW9kBQJhMAMJAAACBQ5sYXN0VXNlclBlcmlvZAkAZQIFCWN1clBlcmlvZAABBAJhMQkAawMJAQ1kaXN0ckJ5UGVyaW9kAgUMaXNzdWVkQW1vdW50CQBlAgUJY3VyUGVyaW9kAAEJAGUCBQ1wcmV2UGVyaW9kRW5kBQxsYXN0VXNlclRpbWUFC1lFQVJfTUlMTElTCQBkAgUCYTEFAmEwBAJhMgkAawMJAQ1kaXN0ckJ5UGVyaW9kAgUMaXNzdWVkQW1vdW50CQBlAgUJY3VyUGVyaW9kAAIJAGUCBRFwcmV2UHJldlBlcmlvZEVuZAUMbGFzdFVzZXJUaW1lBQtZRUFSX01JTExJUwQCYTEJAQ1kaXN0ckJ5UGVyaW9kAgUMaXNzdWVkQW1vdW50CQBlAgUJY3VyUGVyaW9kAAEJAGQCCQBkAgUCYTIFAmExBQJhMAQPYW1vdW50TGVmdFRvdGFsCQELdmFsdWVPckVsc2UCCQCaCAIJAJEDAgUJY29udHJhY3RzBQhkYXBwMldsZwURc3Rha2Vyc0FtdExlZnRLZXkAAAQKdXNlckFtb3VudAMJAQIhPQIJAJEDAgUDZWZmBQppZHhUb3RhbEZQAAAJAGsDBQ11c2VyQXZhaWxhYmxlCQCRAwIFA2VmZgUJaWR4VXNlckZQCQCRAwIFA2VmZgUKaWR4VG90YWxGUAAABA9sYXN0SXNzdWUxMFRpbWUJAQt2YWx1ZU9yRWxzZQIJAJoIAgkAkQMCBQljb250cmFjdHMFCGRhcHAyV2xnBRF3bGdJc3N1ZTEwVGltZUtleQURTkVXX1NUQUtJTkdfU1RBUlQEDWlzc3VlMTBBbW91bnQJAGsDBQdJU1NVRTEwCQCWAwEJAMwIAgkAZQIFA25vdwUPbGFzdElzc3VlMTBUaW1lCQDMCAIAAAUDbmlsBQZEQVlfTVMEFm1hcmtldGluZ0lzc3VlMTBBbW91bnQJAGsDBQ1pc3N1ZTEwQW1vdW50BRFNQVJLRVRJTkcxMF9TSEFSRQUDTTZfBBF0ZWFtSXNzdWUxMEFtb3VudAkAawMFDWlzc3VlMTBBbW91bnQFDFRFQU0xMF9TSEFSRQUDTTZfBA51c2VyMTBJbnRlcnZhbAkAlgMBCQDMCAIJAGUCBQNub3cJAJYDAQkAzAgCBRFORVdfU1RBS0lOR19TVEFSVAkAzAgCBQxsYXN0VXNlclRpbWUFA25pbAkAzAgCAAAFA25pbAQKdXNlcjEwcGFydAMJAQIhPQIJAJEDAgUDZWZmBQppZHhUb3RhbEZQAAAJAGsDCQBrAwkAawMFB0lTU1VFMTAFDnVzZXIxMEludGVydmFsBQZEQVlfTVMJAJEDAgUDZWZmBQlpZHhVc2VyRlAJAJEDAgUDZWZmBQppZHhUb3RhbEZQBQ9QTEFZRVJTMTBfU0hBUkUFA002XwAABA5uZXdJc3N1ZTEwVGltZQkAlgMBCQDMCAIFEU5FV19TVEFLSU5HX1NUQVJUCQDMCAIFA25vdwUDbmlsCQDMCAIFDGlzc3VlZEFtb3VudAkAzAgCBQZ3bGdXbGcJAMwIAgkAawMFDXRvdGFsRnVuZHNVc2QFA004XwUMaXNzdWVkQW1vdW50CQDMCAIFDXRvdGFsRnVuZHNVc2QJAMwIAgUHcmVzdFVzZAkAzAgCBQlhY3JlczJVc2QJAMwIAgUGd2xnVXNkCQDMCAIFCXB1enpsZVVzZAkAzAgCBQlpc3N1ZVRpbWUJAMwIAgUMbGFzdFRlYW1UaW1lCQDMCAIFCXRlYW1Ub3RhbAkAzAgCBQ50ZWFtQW1vdW50TGVmdAkAzAgCBRZ0ZWFtQW1vdW50QXZhaWxhYmxlTm93CQDMCAIFCnRlYW1XbGdvbGQJAMwIAgUIYWN0VG90YWwJAMwIAgUNYWN0QW1vdW50TGVmdAkAzAgCBRVhY3RBbW91bnRBdmFpbGFibGVOb3cJAMwIAgUJYWN0V2xnb2xkCQDMCAIFCWN1clBlcmlvZAkAzAgCBQ9hbW91bnRMZWZ0VG90YWwJAMwIAgUVY3VyUGVyaW9kRGlzdHJpYnV0aW9uCQDMCAIFDGxhc3RVc2VyVGltZQkAzAgCBQ9pbnZlc3RGdW5kVG90YWwJAMwIAgUKdXNlckFtb3VudAkAzAgCBQpub3dMaW1pdGVkCQDMCAIFDWlzc3VlMTBBbW91bnQJAMwIAgUWbWFya2V0aW5nSXNzdWUxMEFtb3VudAkAzAgCBRF0ZWFtSXNzdWUxMEFtb3VudAkAzAgCBQp1c2VyMTBwYXJ0CQDMCAIFDm5ld0lzc3VlMTBUaW1lBQNuaWwBDndhbGxldEludGVybmFsAQ51c2VyQWRkcmVzc09wdAQEYWRkcgkApggBBQ51c2VyQWRkcmVzc09wdAQHYmFsYW5jZQMJAQlpc0RlZmluZWQBBQRhZGRyCQDvBwEJAQV2YWx1ZQEFBGFkZHIJAQ5CYWxhbmNlRGV0YWlscwQAAAAAAAAAAAQLdXNkdEJhbGFuY2UDCQEJaXNEZWZpbmVkAQUEYWRkcgkA8AcCCQEFdmFsdWUBBQRhZGRyBQt1c2R0QXNzZXRJZAAABA13bGdvbGRCYWxhbmNlAwkBCWlzRGVmaW5lZAEFBGFkZHIJAPAHAgkBBXZhbHVlAQUEYWRkcgUKd2xnQXNzZXRJZAAABApjdXN0b21OYW1lCQELdmFsdWVPckVsc2UCCQCdCAIFDmFjcmVzMkNvbnRyYWN0CQEWa2V5QWRkcmVzc1RvQ3VzdG9tTmFtZQEFDnVzZXJBZGRyZXNzT3B0BQ51c2VyQWRkcmVzc09wdAQIcmVmQnlLZXkJAQ9rZXlBZGRyZXNzUmVmQnkBBQ51c2VyQWRkcmVzc09wdAQFcmVmQnkJAJ0IAgUOYWNyZXMyQ29udHJhY3QFCHJlZkJ5S2V5BARyZWZzCQELdmFsdWVPckVsc2UCCQCdCAIFDmFjcmVzMkNvbnRyYWN0CQETa2V5QWRkcmVzc1JlZmVycmFscwEFDnVzZXJBZGRyZXNzT3B0AgAECGxhc3RUeElkCQELdmFsdWVPckVsc2UCCQCdCAIFDmFjcmVzMkNvbnRyYWN0CQERa2V5TGFzdFR4SWRCeVVzZXIBBQ51c2VyQWRkcmVzc09wdAIABAxhY3Jlc0JhbGFuY2UDCQEJaXNEZWZpbmVkAQUEYWRkcgkA8AcCCQEFdmFsdWUBBQRhZGRyBQxhY3Jlc0Fzc2V0SWQAAAQLc3Rha2VkQWNyZXMJAQt2YWx1ZU9yRWxzZQIJAJoIAgUOYWNyZXMyQ29udHJhY3QJARdrZXlBY3Jlc1N0YWtlZEFtdEJ5VXNlcgEFDnVzZXJBZGRyZXNzT3B0AAAEA2x2bAkBD2dldExldmVsQnlBY3JlcwEFC3N0YWtlZEFjcmVzBAJmcAkBEGdldEZhcm1pbmdQb3dlcnMCBQ51c2VyQWRkcmVzc09wdAUOYWNyZXMyQ29udHJhY3QEDmFjcmVzVG9OZXh0THZsAwkAZwIFA2x2bAkAkAMBBQpsZXZlbEFjcmVzAAAJAGUCCQBkAgkAkQMCBQpsZXZlbEFjcmVzBQNsdmwAAQULc3Rha2VkQWNyZXMJAMwIAgkArAICAhIlcyVzX19jdXN0b21OYW1lX18FCmN1c3RvbU5hbWUJAMwIAgkArAICAhIlcyVzX19yZWZlcnJlZEJ5X18JAQt2YWx1ZU9yRWxzZQIFBXJlZkJ5AgAJAMwIAgkArAICAhElcyVzX19yZWZlcnJhbHNfXwUEcmVmcwkAzAgCCQCsAgICECVzJXNfX2xhc3RUeElkX18FCGxhc3RUeElkCQDMCAIJAKwCAgIUJXMlZF9fd2F2ZXNCYWxhbmNlX18JAKQDAQgFB2JhbGFuY2UJYXZhaWxhYmxlCQDMCAIJAKwCAgITJXMlZF9fdXNkdEJhbGFuY2VfXwkApAMBBQt1c2R0QmFsYW5jZQkAzAgCCQCsAgICFSVzJWRfX3dsZ29sZEJhbGFuY2VfXwkApAMBBQ13bGdvbGRCYWxhbmNlCQDMCAIJAKwCAgIUJXMlZF9fYWNyZXNCYWxhbmNlX18JAKQDAQUMYWNyZXNCYWxhbmNlCQDMCAIJAKwCAgITJXMlZF9fc3Rha2VkQWNyZXNfXwkApAMBBQtzdGFrZWRBY3JlcwkAzAgCCQCsAgICEiVzJWRfX2N1cnJlbnRMdmxfXwkApAMBBQNsdmwJAMwIAgkArAICAhYlcyVkX19hY3Jlc1RvTmV4dEx2bF9fCQCkAwEFDmFjcmVzVG9OZXh0THZsCQDMCAIJAKwCAgIYJXMlZF9fdXNlckZhcm1pbmdQb3dlcl9fCQCkAwEJAJEDAgUCZnAFCWlkeFVzZXJGUAkAzAgCCQCsAgICGSVzJWRfX3RvdGFsRmFybWluZ1Bvd2VyX18JAKQDAQkAkQMCBQJmcAUKaWR4VG90YWxGUAUDbmlsBQFpAQ1jb25zdHJ1Y3RvclYxAQljb250cmFjdHMDCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAhJwZXJtaXNzaW9ucyBkZW5pZWQKAQpkZXNjcmlwdG9yAgNhY2MLaWdub3JlZEl0ZW0JAKwCAgUDYWNjAgIlcwQFZGVzY3IKAAIkbAUJY29udHJhY3RzCgACJHMJAJADAQUCJGwKAAUkYWNjMAIACgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQpkZXNjcmlwdG9yAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxMAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQprZXlSZXN0Q2ZnAAkAuQkCCQDMCAIFBWRlc2NyBQljb250cmFjdHMFA1NFUAkAzAgCCQELU3RyaW5nRW50cnkCCQEPa2V5UmVzdDJBZGRyZXNzAAkApQgBBQR0aGlzBQNuaWwBaQESd2FsbGV0SW5mb1JFQURPTkxZAQ51c2VyQWRkcmVzc09wdAkAlAoCBQNuaWwJAQ53YWxsZXRJbnRlcm5hbAEFDnVzZXJBZGRyZXNzT3B0AWkBFmNvbnZlcnNpb25JbmZvUkVBRE9OTFkBDnVzZXJBZGRyZXNzT3B0BA9vbGRBY3Jlc0FkZHJlc3MJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARFAZXh0ck5hdGl2ZSgxMDUzKQIFDmFjcmVzMkNvbnRyYWN0BRNvbGRBY3Jlc0NvbnRyYWN0S2V5BAskdDA0NTQyNDY2NAkBDGFzVHVwbGUySW50cwEJAPwHBAUPb2xkQWNyZXNBZGRyZXNzAhd1bnN0YWtlQWxsQWNyZXNSRUFET05MWQkAzAgCBQ51c2VyQWRkcmVzc09wdAUDbmlsBQNuaWwEDXVuc3Rha2VkQWNyZXMIBQskdDA0NTQyNDY2NAJfMQQMY2xhaW1lZEFjcmVzCAULJHQwNDU0MjQ2NjQCXzIECyR0MDQ2Njc0ODE2CQEMYXNUdXBsZTRJbnRzAQkA/AcEBQ5hY3JlczJDb250cmFjdAIUdW5zdGFrZUxhbmRzUkVBRE9OTFkJAMwIAgUOdXNlckFkZHJlc3NPcHQFA25pbAUDbmlsBA9hY3Jlc0Zyb21QaWVjZXMIBQskdDA0NjY3NDgxNgJfMQQMYWNyZXNGcm9tUmVzCAULJHQwNDY2NzQ4MTYCXzIEDGFjcmVzRnJvbU1hdAgFCyR0MDQ2Njc0ODE2Al8zBA1hY3Jlc0Zyb21Qcm9kCAULJHQwNDY2NzQ4MTYCXzQEEW9sZFN0YWtpbmdBZGRyZXNzCQERQGV4dHJOYXRpdmUoMTA2MikBBRVvbGRTdGFraW5nQ29udHJhY3RTdHIEC2R1Y2tBc3NldElkCQELdmFsdWVPckVsc2UCCQCdCAIFEW9sZFN0YWtpbmdBZGRyZXNzCQEUa2V5U3Rha2VkRHVja0J5T3duZXIBBQ51c2VyQWRkcmVzc09wdAIABAskdDA0OTk0NTIxNgMJAQIhPQIFC2R1Y2tBc3NldElkAgAJAQxhc1R1cGxlM0ludHMBCQD8BwQFEW9sZFN0YWtpbmdBZGRyZXNzAhN1bnN0YWtlRHVja1JFQURPTkxZCQDMCAIFC2R1Y2tBc3NldElkCQDMCAIFDnVzZXJBZGRyZXNzT3B0BQNuaWwFA25pbAkAlQoDAAAAAAAABBBhY3Jlc0Zyb21EdWNrUmVzCAULJHQwNDk5NDUyMTYCXzEEEGFjcmVzRnJvbUR1Y2tNYXQIBQskdDA0OTk0NTIxNgJfMgQRYWNyZXNGcm9tRHVja1Byb2QIBQskdDA0OTk0NTIxNgJfMwkAlAoCBQNuaWwJAMwIAgkArAICAhUlcyVkX191bnN0YWtlZEFjcmVzX18JAKQDAQUNdW5zdGFrZWRBY3JlcwkAzAgCCQCsAgICFCVzJWRfX2NsYWltZWRBY3Jlc19fCQCkAwEFDGNsYWltZWRBY3JlcwkAzAgCCQCsAgICFyVzJWRfX2FjcmVzRnJvbVBpZWNlc19fCQCkAwEFD2FjcmVzRnJvbVBpZWNlcwkAzAgCCQCsAgICFCVzJWRfX2FjcmVzRnJvbVJlc19fCQCkAwEFDGFjcmVzRnJvbVJlcwkAzAgCCQCsAgICFCVzJWRfX2FjcmVzRnJvbU1hdF9fCQCkAwEFDGFjcmVzRnJvbU1hdAkAzAgCCQCsAgICFSVzJWRfX2FjcmVzRnJvbVByb2RfXwkApAMBBQ1hY3Jlc0Zyb21Qcm9kCQDMCAIJAKwCAgIYJXMlZF9fYWNyZXNGcm9tRHVja1Jlc19fCQCkAwEFEGFjcmVzRnJvbUR1Y2tSZXMJAMwIAgkArAICAhglcyVkX19hY3Jlc0Zyb21EdWNrTWF0X18JAKQDAQUQYWNyZXNGcm9tRHVja01hdAkAzAgCCQCsAgICGSVzJWRfX2FjcmVzRnJvbUR1Y2tQcm9kX18JAKQDAQURYWNyZXNGcm9tRHVja1Byb2QFA25pbAFpARB3bGdTdGF0c1JFQURPTkxZAQt1c2VyQWRkck9wdAQIY3VyU3RhdHMJAQxnZXRXbGdTdGF0czIEBQt1c2VyQWRkck9wdAkAzAgCBQ1yZXN0MkNvbnRyYWN0CQDMCAIFDmFjcmVzMkNvbnRyYWN0CQDMCAIFC3dsZ0NvbnRyYWN0CQDMCAIFEnB1enpsZVBvb2xDb250cmFjdAkAzAgCBRJpbnZlc3RGdW5kQ29udHJhY3QFA25pbAULdXNkdEFzc2V0SWQAAAkAlAoCBQNuaWwJAMwIAgkArAICAhElcyVkX193bGdBbW91bnRfXwkApAMBCQCRAwIFCGN1clN0YXRzBQtpeFdsZ0Ftb3VudAkAzAgCCQCsAgICDiVzJWRfX3dsZ1dsZ19fCQCkAwEJAJEDAgUIY3VyU3RhdHMFCGl4V2xnV2xnCQDMCAIJAKwCAgIQJXMlZF9fd2xnUHJpY2VfXwkApAMBCQCRAwIFCGN1clN0YXRzBQppeFdsZ1ByaWNlCQDMCAIJAKwCAgIRJXMlZF9fdXNkdEZ1bmRzX18JAKQDAQkAkQMCBQhjdXJTdGF0cwUKaXhXbGdGdW5kcwkAzAgCCQCsAgICFCVzJWRfX3VzZHRBY3Rpdml0eV9fCQCkAwEJAJEDAgUIY3VyU3RhdHMFDWl4V2xnQWN0aXZpdHkJAMwIAgkArAICAhMlcyVkX191c2R0U3Rha2luZ19fCQCkAwEJAJEDAgUIY3VyU3RhdHMFC2l4V2xnQWNyZXMyCQDMCAIJAKwCAgIVJXMlZF9fdXNkdEFyYml0cmFnZV9fCQCkAwEJAJEDAgUIY3VyU3RhdHMFDml4V2xnQXJiaXRyYWdlCQDMCAIJAKwCAgIQJXMlZF9fdXNkdFBvb2xfXwkApAMBCQCRAwIFCGN1clN0YXRzBQlpeFdsZ1Bvb2wJAMwIAgkArAICAhQlcyVkX193bGdJc3N1ZVRpbWVfXwkApAMBCQCRAwIFCGN1clN0YXRzBQ5peFdsZ0lzc3VlVGltZQkAzAgCCQCsAgICGiVzJWRfX3dsZ0xhc3RUZWFtQWN0VGltZV9fCQCkAwEJAJEDAgUIY3VyU3RhdHMFFGl4V2xnTGFzdFRlYW1BY3RUaW1lCQDMCAIJAKwCAgIUJXMlZF9fd2xnVGVhbVRvdGFsX18JAKQDAQkAkQMCBQhjdXJTdGF0cwUOaXhXbGdUZWFtVG90YWwJAMwIAgkArAICAhUlcyVkX193bGdUZWFtQW1MZWZ0X18JAKQDAQkAkQMCBQhjdXJTdGF0cwUPaXhXbGdUZWFtQW1MZWZ0CQDMCAIJAKwCAgIZJXMlZF9fd2xnVGVhbUFtQXZhaWxOb3dfXwkApAMBCQCRAwIFCGN1clN0YXRzBRNpeFdsZ1RlYW1BbUF2YWlsTm93CQDMCAIJAKwCAgIVJXMlZF9fd2xnVGVhbVdsZ29sZF9fCQCkAwEJAJEDAgUIY3VyU3RhdHMFD2l4V2xnVGVhbVdsZ29sZAkAzAgCCQCsAgICEyVzJWRfX3dsZ0FjdFRvdGFsX18JAKQDAQkAkQMCBQhjdXJTdGF0cwUNaXhXbGdBY3RUb3RhbAkAzAgCCQCsAgICFCVzJWRfX3dsZ0FjdEFtTGVmdF9fCQCkAwEJAJEDAgUIY3VyU3RhdHMFDml4V2xnQWN0QW1MZWZ0CQDMCAIJAKwCAgIYJXMlZF9fd2xnQWN0QW1BdmFpbE5vd19fCQCkAwEJAJEDAgUIY3VyU3RhdHMFEml4V2xnQWN0QW1BdmFpbE5vdwkAzAgCCQCsAgICFCVzJWRfX3dsZ0FjdFdsZ29sZF9fCQCkAwEJAJEDAgUIY3VyU3RhdHMFDml4V2xnQWN0V2xnb2xkCQDMCAIJAKwCAgIUJXMlZF9fd2xnQ3VyUGVyaW9kX18JAKQDAQkAkQMCBQhjdXJTdGF0cwUOaXhXbGdDdXJQZXJpb2QJAMwIAgkArAICAhYlcyVkX193bGdBbUxlZnRUb3RhbF9fCQCkAwEJAJEDAgUIY3VyU3RhdHMFEGl4V2xnQW1MZWZ0VG90YWwJAMwIAgkArAICAiAlcyVkX193bGdDdXJQZXJpb2REaXN0cmlidXRpb25fXwkApAMBCQCRAwIFCGN1clN0YXRzBRppeFdsZ0N1clBlcmlvZERpc3RyaWJ1dGlvbgkAzAgCCQCsAgICFyVzJWRfX3dsZ0xhc3RVc2VyVGltZV9fCQCkAwEJAJEDAgUIY3VyU3RhdHMFEWl4V2xnTGFzdFVzZXJUaW1lCQDMCAIJAKwCAgIaJXMlZF9fd2xnSW52ZXN0RnVuZFRvdGFsX18JAKQDAQkAkQMCBQhjdXJTdGF0cwUVaXhXbGdJbnZlc3RGdW5kQW1vdW50CQDMCAIJAKwCAgIZJXMlZF9fd2xnVXNlckFtQXZhaWxOb3dfXwkApAMBCQCRAwIFCGN1clN0YXRzBRNpeFdsZ1VzZXJBbUF2YWlsTm93CQDMCAIJAKwCAgIWJXMlZF9fd2xnRWZmVXNlclRpbWVfXwkApAMBCQCRAwIFCGN1clN0YXRzBRBpeFdsZ0VmZlVzZXJUaW1lCQDMCAIJAKwCAgIaJXMlZF9fd2xnSXNzdWUxMEF2YWlsTm93X18JAKQDAQkAkQMCBQhjdXJTdGF0cwUSaXhXbGdJc3N1ZTEwQW1vdW50CQDMCAIJAKwCAgIjJXMlZF9fd2xnTWFya2V0aW5nSXNzdWUxMEF2YWlsTm93X18JAKQDAQkAkQMCBQhjdXJTdGF0cwUbaXhXbGdNYXJrZXRpbmdJc3N1ZTEwQW1vdW50CQDMCAIJAKwCAgIeJXMlZF9fd2xnVGVhbUlzc3VlMTBBdmFpbE5vd19fCQCkAwEJAJEDAgUIY3VyU3RhdHMFFml4V2xnVGVhbUlzc3VlMTBBbW91bnQJAMwIAgkArAICAh4lcyVkX193bGdVc2VySXNzdWUxMEF2YWlsTm93X18JAKQDAQkAkQMCBQhjdXJTdGF0cwUPaXhXbGdVc2VyMTBwYXJ0CQDMCAIJAKwCAgIaJXMlZF9fd2xnTGFzdElzc3VlMTBUaW1lX18JAKQDAQkAkQMCBQhjdXJTdGF0cwUQaXhXbGdJc3N1ZTEwVGltZQUDbmlsAWkBFGxvdHRlcnlTdGF0c1JFQURPTkxZAQt1c2VyQWRkck9wdAQFdG9kYXkJAGkCBQZoZWlnaHQFCkRBWV9CTE9DS1MJAJQKAgUDbmlsCQDMCAIJAKwCAgIUJXMlZF9fdG90YWxUaWNrZXRzX18JAKQDAQkBC3ZhbHVlT3JFbHNlAgkAmggCBQt3bGdDb250cmFjdAUPa2V5VG90YWxUaWNrZXRzAAAJAMwIAgkArAICAhMlcyVkX191c2VyVGlja2V0c19fCQCkAwEJAQt2YWx1ZU9yRWxzZQIJAJoIAgULd2xnQ29udHJhY3QJAQ5rZXlVc2VyVGlja2V0cwEFC3VzZXJBZGRyT3B0AAAJAMwIAgkArAICAhUlcyVkX19ibG9ja2NoYWluRGF5X18JAKQDAQUFdG9kYXkJAMwIAgkArAICAhglcyVkX19ibG9ja2NoYWluTWludXRlX18JAKQDAQkAagIFBmhlaWdodAUKREFZX0JMT0NLUwkAzAgCCQCsAgICFyVzJWRfX3dpbm5pbmdCZXRUb2RheV9fCQCkAwEJAQp3aW5uaW5nQmV0AQUFdG9kYXkFA25pbACsfbtK", "height": 3357318, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: FYK3Fp27r4ZKwRovrgG1AFJ6xnrU5rYAbzeCjK6HLKHi Next: 7LMZRREr7yDfXqPSogGPBNeH2dzM9zBRZD3Vs1gTVxMU Diff:
Old | New | Differences | |
---|---|---|---|
139 | 139 | ||
140 | 140 | let W = 86400000 | |
141 | 141 | ||
142 | - | let X = | |
142 | + | let X = 1440 | |
143 | 143 | ||
144 | - | let Y = | |
144 | + | let Y = 1000000000 | |
145 | 145 | ||
146 | - | let Z = | |
146 | + | let Z = 800000 | |
147 | 147 | ||
148 | 148 | let aa = 100000 | |
149 | 149 | ||
150 | - | let ab = | |
150 | + | let ab = 100000 | |
151 | 151 | ||
152 | - | let ac = | |
152 | + | let ac = 1727740800000 | |
153 | 153 | ||
154 | - | let ad = " | |
154 | + | let ad = "teamAddr" | |
155 | 155 | ||
156 | - | let ae = " | |
156 | + | let ae = "lastClaimedTime_team" | |
157 | 157 | ||
158 | - | let af = " | |
158 | + | let af = "teamAmountLeft" | |
159 | 159 | ||
160 | - | let ag = " | |
160 | + | let ag = "lastClaimedTime_activities" | |
161 | 161 | ||
162 | - | let ah = " | |
162 | + | let ah = "activitiesAmountLeft" | |
163 | 163 | ||
164 | - | func ai (B) = ("lastClaimedTimeUser_" + B) | |
164 | + | let ai = "stakersAmountLeft" | |
165 | + | ||
166 | + | func aj (B) = ("lastClaimedTimeUser_" + B) | |
165 | 167 | ||
166 | 168 | ||
167 | - | func | |
169 | + | func ak (al,am) = fraction(al, (U * (am + 1)), (6 * Q)) | |
168 | 170 | ||
169 | 171 | ||
170 | - | let | |
172 | + | let an = "wlg_issue10Time" | |
171 | 173 | ||
172 | - | let | |
174 | + | let ao = "wlg_issueTime" | |
173 | 175 | ||
174 | - | let | |
176 | + | let ap = "wlg_issuedAmount" | |
175 | 177 | ||
176 | - | let | |
178 | + | let aq = "zbill_issuedAmount" | |
177 | 179 | ||
178 | - | func | |
180 | + | func ar (B) = ("acresStakedAmountByUser_" + B) | |
179 | 181 | ||
180 | 182 | ||
181 | - | let | |
183 | + | let as = "totalFarmingPower" | |
182 | 184 | ||
183 | - | let | |
185 | + | let at = 0 | |
184 | 186 | ||
185 | - | let | |
187 | + | let au = 1 | |
186 | 188 | ||
187 | - | let | |
189 | + | let av = 2 | |
188 | 190 | ||
189 | - | let | |
191 | + | let aw = 3 | |
190 | 192 | ||
191 | - | let | |
193 | + | let ax = 4 | |
192 | 194 | ||
193 | - | let | |
195 | + | let ay = [0, 10, 20, 40, 80, 150, 250, 400, 700, 1000] | |
194 | 196 | ||
195 | - | func | |
196 | - | let | |
197 | - | func | |
198 | - | then | |
199 | - | else ( | |
197 | + | func az (aA) = { | |
198 | + | let aB = ((aA + 99999999) / R) | |
199 | + | func aC (aD,aE) = if ((aE >= aB)) | |
200 | + | then aD | |
201 | + | else (aD + 1) | |
200 | 202 | ||
201 | - | let | |
202 | - | let | |
203 | - | let | |
204 | - | func | |
205 | - | then | |
206 | - | else | |
203 | + | let aF = ay | |
204 | + | let aG = size(aF) | |
205 | + | let aH = 0 | |
206 | + | func aI (aJ,aK) = if ((aK >= aG)) | |
207 | + | then aJ | |
208 | + | else aC(aJ, aF[aK]) | |
207 | 209 | ||
208 | - | func | |
209 | - | then | |
210 | + | func aL (aJ,aK) = if ((aK >= aG)) | |
211 | + | then aJ | |
210 | 212 | else throw("List size exceeds 10") | |
211 | 213 | ||
212 | - | | |
214 | + | aL(aI(aI(aI(aI(aI(aI(aI(aI(aI(aI(aH, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10) | |
213 | 215 | } | |
214 | 216 | ||
215 | 217 | ||
216 | - | func | |
218 | + | func aM (aA) = ((aA * 20) * (az(aA) + 4)) | |
217 | 219 | ||
218 | 220 | ||
219 | - | func | |
220 | - | let | |
221 | - | let | |
222 | - | let | |
223 | - | [ | |
221 | + | func aN (aO,v) = { | |
222 | + | let aP = valueOrElse(getInteger(v, as), 0) | |
223 | + | let aQ = valueOrElse(getInteger(v, ar(aO)), 0) | |
224 | + | let aR = aM(aQ) | |
225 | + | [aP, aR] | |
224 | 226 | } | |
225 | 227 | ||
226 | 228 | ||
227 | - | ||
229 | + | func aS (B) = ("userTickets_" + B) | |
228 | 230 | ||
229 | - | let aS = 1 | |
230 | 231 | ||
231 | - | let aT = | |
232 | + | let aT = "totalTickets" | |
232 | 233 | ||
233 | - | ||
234 | + | func aU (aV) = (toInt(value(value(blockInfoByHeight((aV * X))).vrf)) % 4) | |
234 | 235 | ||
235 | - | let aV = 2 | |
236 | 236 | ||
237 | - | let aW = | |
237 | + | let aW = 0 | |
238 | 238 | ||
239 | - | let aX = | |
239 | + | let aX = 1 | |
240 | 240 | ||
241 | - | let aY = | |
241 | + | let aY = 0 | |
242 | 242 | ||
243 | - | let aZ = | |
243 | + | let aZ = 1 | |
244 | 244 | ||
245 | - | let ba = | |
245 | + | let ba = 2 | |
246 | 246 | ||
247 | - | let bb = | |
247 | + | let bb = 3 | |
248 | 248 | ||
249 | - | let bc = | |
249 | + | let bc = 4 | |
250 | 250 | ||
251 | - | let bd = | |
251 | + | let bd = 5 | |
252 | 252 | ||
253 | - | let be = | |
253 | + | let be = 6 | |
254 | 254 | ||
255 | - | let bf = | |
255 | + | let bf = 7 | |
256 | 256 | ||
257 | - | let bg = | |
257 | + | let bg = 8 | |
258 | 258 | ||
259 | - | let bh = | |
259 | + | let bh = 9 | |
260 | 260 | ||
261 | - | let bi = | |
261 | + | let bi = 10 | |
262 | 262 | ||
263 | - | let bj = | |
263 | + | let bj = 11 | |
264 | 264 | ||
265 | - | let bk = | |
265 | + | let bk = 12 | |
266 | 266 | ||
267 | - | let bl = | |
267 | + | let bl = 13 | |
268 | 268 | ||
269 | - | let bm = | |
269 | + | let bm = 14 | |
270 | 270 | ||
271 | - | let bn = | |
271 | + | let bn = 15 | |
272 | 272 | ||
273 | - | let bo = | |
273 | + | let bo = 16 | |
274 | 274 | ||
275 | - | let bp = | |
275 | + | let bp = 17 | |
276 | 276 | ||
277 | - | let bq = | |
277 | + | let bq = 18 | |
278 | 278 | ||
279 | - | let br = | |
279 | + | let br = 19 | |
280 | 280 | ||
281 | - | let bs = | |
281 | + | let bs = 20 | |
282 | 282 | ||
283 | - | let bt = | |
283 | + | let bt = 21 | |
284 | 284 | ||
285 | - | let bu = | |
285 | + | let bu = 22 | |
286 | 286 | ||
287 | - | let bv = | |
287 | + | let bv = 23 | |
288 | 288 | ||
289 | - | let bw = | |
289 | + | let bw = 24 | |
290 | 290 | ||
291 | - | func bx (by,bz,bA,bB) = { | |
292 | - | let ak = valueOrErrorMessage(getInteger(bz[au], ao), "WLGOLD is not issued yet") | |
293 | - | let bC = assetBalance(bz[as], bA) | |
294 | - | let bD = (assetBalance(bz[au], bA) - bB) | |
295 | - | let bE = assetBalance(bz[av], bA) | |
296 | - | let bF = assetBalance(bz[at], bA) | |
297 | - | let bG = bz[aw] | |
298 | - | let bH = (assetBalance(bG, bA) + valueOrElse(getInteger(bG, ap), 0)) | |
299 | - | let bI = ((bF + bD) + bH) | |
300 | - | let bJ = valueOrErrorMessage(getBinary(bz[au], "wlg_assetId"), "Not initialized yet") | |
301 | - | let bK = lastBlock.timestamp | |
302 | - | let bL = valueOrErrorMessage(getInteger(bz[au], an), "Not initialized") | |
303 | - | let bM = assetBalance(bz[au], bJ) | |
304 | - | let bN = fraction(ak, S, Q) | |
305 | - | let bO = valueOrElse(getInteger(bz[au], ae), bN) | |
306 | - | let bP = valueOrElse(getInteger(bz[au], ad), bL) | |
307 | - | let bQ = addressFromStringValue(value(getString(bz[au], ac))) | |
308 | - | let bR = min([fraction(bN, (bK - bP), (3 * V)), bO]) | |
309 | - | let bS = assetBalance(bQ, bJ) | |
310 | - | let bT = fraction(ak, T, Q) | |
311 | - | let bU = valueOrElse(getInteger(bz[au], ag), bT) | |
312 | - | let bV = valueOrElse(getInteger(bz[au], af), bL) | |
313 | - | let bW = min([fraction(bT, (bK - bV), (3 * V)), bU]) | |
314 | - | let bX = assetBalance(bz[as], bJ) | |
315 | - | let bY = valueOrElse(getInteger(bz[au], ai(by)), bL) | |
316 | - | let bZ = ((bY - bL) / V) | |
317 | - | let ca = min([bK, (bL + (3 * V))]) | |
318 | - | let cb = min([((bK - bL) / V), 2]) | |
319 | - | let cc = aM(by, bz[at]) | |
320 | - | let cd = aj(ak, cb) | |
321 | - | let ce = (bL + (V * cb)) | |
322 | - | let cf = (bL + (V * (cb - 1))) | |
323 | - | let cg = fraction(cd, (ca - bY), V) | |
324 | - | let ch = if ((bZ == cb)) | |
325 | - | then cg | |
326 | - | else if ((bZ == (cb - 1))) | |
291 | + | let bx = 25 | |
292 | + | ||
293 | + | let by = 26 | |
294 | + | ||
295 | + | let bz = 27 | |
296 | + | ||
297 | + | let bA = 28 | |
298 | + | ||
299 | + | let bB = 29 | |
300 | + | ||
301 | + | func bC (bD,bE,bF,bG) = { | |
302 | + | let al = valueOrErrorMessage(getInteger(bE[av], ap), "WLGOLD is not issued yet") | |
303 | + | let bH = assetBalance(bE[at], bF) | |
304 | + | let bI = (assetBalance(bE[av], bF) - bG) | |
305 | + | let bJ = assetBalance(bE[aw], bF) | |
306 | + | let bK = assetBalance(bE[au], bF) | |
307 | + | let bL = bE[ax] | |
308 | + | let bM = (assetBalance(bL, bF) + valueOrElse(getInteger(bL, aq), 0)) | |
309 | + | let bN = ((bK + bI) + bM) | |
310 | + | let bO = valueOrErrorMessage(getBinary(bE[av], "wlg_assetId"), "Not initialized yet") | |
311 | + | let bP = lastBlock.timestamp | |
312 | + | let bQ = valueOrErrorMessage(getInteger(bE[av], ao), "Not initialized") | |
313 | + | let bR = assetBalance(bE[av], bO) | |
314 | + | let bS = fraction(al, S, Q) | |
315 | + | let bT = valueOrElse(getInteger(bE[av], af), bS) | |
316 | + | let bU = valueOrElse(getInteger(bE[av], ae), bQ) | |
317 | + | let bV = addressFromStringValue(value(getString(bE[av], ad))) | |
318 | + | let bW = min([fraction(bS, (bP - bU), (3 * V)), bT]) | |
319 | + | let bX = assetBalance(bV, bO) | |
320 | + | let bY = fraction(al, T, Q) | |
321 | + | let bZ = valueOrElse(getInteger(bE[av], ah), bY) | |
322 | + | let ca = valueOrElse(getInteger(bE[av], ag), bQ) | |
323 | + | let cb = min([fraction(bY, (bP - ca), (3 * V)), bZ]) | |
324 | + | let cc = assetBalance(bE[at], bO) | |
325 | + | let cd = valueOrElse(getInteger(bE[av], aj(bD)), bQ) | |
326 | + | let ce = ((cd - bQ) / V) | |
327 | + | let cf = min([bP, (bQ + (3 * V))]) | |
328 | + | let cg = min([((bP - bQ) / V), 2]) | |
329 | + | let ch = aN(bD, bE[au]) | |
330 | + | let ci = ak(al, cg) | |
331 | + | let cj = (bQ + (V * cg)) | |
332 | + | let ck = (bQ + (V * (cg - 1))) | |
333 | + | let cl = fraction(ci, (cf - cd), V) | |
334 | + | let cm = if ((ce == cg)) | |
335 | + | then cl | |
336 | + | else if ((ce == (cg - 1))) | |
327 | 337 | then { | |
328 | - | let | |
329 | - | ( | |
338 | + | let cn = fraction(ak(al, (cg - 1)), (cj - cd), V) | |
339 | + | (cn + cl) | |
330 | 340 | } | |
331 | 341 | else { | |
332 | - | let | |
333 | - | let | |
334 | - | (( | |
342 | + | let co = fraction(ak(al, (cg - 2)), (ck - cd), V) | |
343 | + | let cn = ak(al, (cg - 1)) | |
344 | + | ((co + cn) + cl) | |
335 | 345 | } | |
336 | - | let | |
337 | - | let | |
338 | - | then fraction( | |
346 | + | let cp = valueOrElse(getInteger(bE[av], ai), 0) | |
347 | + | let cq = if ((ch[aW] != 0)) | |
348 | + | then fraction(cm, ch[aX], ch[aW]) | |
339 | 349 | else 0 | |
340 | - | let | |
341 | - | let | |
342 | - | let | |
343 | - | let | |
344 | - | let | |
345 | - | let | |
346 | - | then fraction(fraction(fraction( | |
350 | + | let cr = valueOrElse(getInteger(bE[av], an), ac) | |
351 | + | let cs = fraction(Y, max([(bP - cr), 0]), W) | |
352 | + | let ct = fraction(cs, aa, Q) | |
353 | + | let cu = fraction(cs, ab, Q) | |
354 | + | let cv = max([(bP - max([ac, cd])), 0]) | |
355 | + | let cw = if ((ch[aW] != 0)) | |
356 | + | then fraction(fraction(fraction(Y, cv, W), ch[aX], ch[aW]), Z, Q) | |
347 | 357 | else 0 | |
348 | - | let | |
349 | - | [ | |
358 | + | let cx = max([ac, bP]) | |
359 | + | [al, bR, fraction(bN, R, al), bN, bH, bK, bI, bJ, bQ, bU, bS, bT, bW, bX, bY, bZ, cb, cc, cg, cp, ci, cd, bM, cq, cf, cs, ct, cu, cw, cx] | |
350 | 360 | } | |
351 | 361 | ||
352 | 362 | ||
353 | - | func | |
354 | - | let B = addressFromString( | |
355 | - | let | |
363 | + | func cy (cz) = { | |
364 | + | let B = addressFromString(cz) | |
365 | + | let cA = if (isDefined(B)) | |
356 | 366 | then wavesBalance(value(B)) | |
357 | 367 | else BalanceDetails(0, 0, 0, 0) | |
358 | - | let | |
368 | + | let cB = if (isDefined(B)) | |
359 | 369 | then assetBalance(value(B), c) | |
360 | 370 | else 0 | |
361 | - | let | |
371 | + | let cC = if (isDefined(B)) | |
362 | 372 | then assetBalance(value(B), D) | |
363 | 373 | else 0 | |
364 | - | let | |
365 | - | let | |
366 | - | let | |
367 | - | let | |
368 | - | let | |
369 | - | let | |
374 | + | let cD = valueOrElse(getString(v, I(cz)), cz) | |
375 | + | let cE = J(cz) | |
376 | + | let cF = getString(v, cE) | |
377 | + | let cG = valueOrElse(getString(v, K(cz)), "") | |
378 | + | let cH = valueOrElse(getString(v, A(cz)), "") | |
379 | + | let cI = if (isDefined(B)) | |
370 | 380 | then assetBalance(value(B), F) | |
371 | 381 | else 0 | |
372 | - | let | |
373 | - | let | |
374 | - | let | |
375 | - | let | |
382 | + | let cJ = valueOrElse(getInteger(v, ar(cz)), 0) | |
383 | + | let cK = az(cJ) | |
384 | + | let cL = aN(cz, v) | |
385 | + | let cM = if ((cK >= size(ay))) | |
376 | 386 | then 0 | |
377 | - | else (( | |
378 | - | [("%s%s__customName__" + | |
387 | + | else ((ay[cK] + 1) - cJ) | |
388 | + | [("%s%s__customName__" + cD), ("%s%s__referredBy__" + valueOrElse(cF, "")), ("%s%s__referrals__" + cG), ("%s%s__lastTxId__" + cH), ("%s%d__wavesBalance__" + toString(cA.available)), ("%s%d__usdtBalance__" + toString(cB)), ("%s%d__wlgoldBalance__" + toString(cC)), ("%s%d__acresBalance__" + toString(cI)), ("%s%d__stakedAcres__" + toString(cJ)), ("%s%d__currentLvl__" + toString(cK)), ("%s%d__acresToNextLvl__" + toString(cM)), ("%s%d__userFarmingPower__" + toString(cL[aX])), ("%s%d__totalFarmingPower__" + toString(cL[aW]))] | |
379 | 389 | } | |
380 | 390 | ||
381 | 391 | ||
382 | - | @Callable( | |
383 | - | func constructorV1 ( | |
392 | + | @Callable(cN) | |
393 | + | func constructorV1 (bE) = if ((cN.caller != this)) | |
384 | 394 | then throw("permissions denied") | |
385 | 395 | else { | |
386 | - | func | |
396 | + | func cO (aD,cP) = (aD + "%s") | |
387 | 397 | ||
388 | - | let | |
389 | - | let | |
390 | - | let | |
391 | - | let | |
392 | - | func | |
393 | - | then | |
394 | - | else | |
398 | + | let cQ = { | |
399 | + | let aF = bE | |
400 | + | let aG = size(aF) | |
401 | + | let aH = "" | |
402 | + | func aI (aJ,aK) = if ((aK >= aG)) | |
403 | + | then aJ | |
404 | + | else cO(aJ, aF[aK]) | |
395 | 405 | ||
396 | - | func | |
397 | - | then | |
406 | + | func aL (aJ,aK) = if ((aK >= aG)) | |
407 | + | then aJ | |
398 | 408 | else throw("List size exceeds 10") | |
399 | 409 | ||
400 | - | | |
410 | + | aL(aI(aI(aI(aI(aI(aI(aI(aI(aI(aI(aH, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10) | |
401 | 411 | } | |
402 | - | [StringEntry(n(), makeString( | |
412 | + | [StringEntry(n(), makeString(cQ :: bE, a)), StringEntry(o(), toString(this))] | |
403 | 413 | } | |
404 | 414 | ||
405 | 415 | ||
406 | 416 | ||
407 | - | @Callable( | |
408 | - | func walletInfoREADONLY ( | |
417 | + | @Callable(cN) | |
418 | + | func walletInfoREADONLY (cz) = $Tuple2(nil, cy(cz)) | |
409 | 419 | ||
410 | 420 | ||
411 | 421 | ||
412 | - | @Callable( | |
413 | - | func conversionInfoREADONLY ( | |
414 | - | let | |
415 | - | let | |
416 | - | let | |
417 | - | let | |
418 | - | let | |
419 | - | let | |
420 | - | let | |
421 | - | let | |
422 | - | let | |
423 | - | let | |
424 | - | let | |
425 | - | let | |
426 | - | then O(invoke( | |
422 | + | @Callable(cN) | |
423 | + | func conversionInfoREADONLY (cz) = { | |
424 | + | let cR = addressFromStringValue(getStringValue(v, z)) | |
425 | + | let cS = P(invoke(cR, "unstakeAllAcresREADONLY", [cz], nil)) | |
426 | + | let cT = cS._1 | |
427 | + | let cU = cS._2 | |
428 | + | let cV = L(invoke(v, "unstakeLandsREADONLY", [cz], nil)) | |
429 | + | let cW = cV._1 | |
430 | + | let cX = cV._2 | |
431 | + | let cY = cV._3 | |
432 | + | let cZ = cV._4 | |
433 | + | let da = addressFromStringValue(f) | |
434 | + | let db = valueOrElse(getString(da, G(cz)), "") | |
435 | + | let dc = if ((db != "")) | |
436 | + | then O(invoke(da, "unstakeDuckREADONLY", [db, cz], nil)) | |
427 | 437 | else $Tuple3(0, 0, 0) | |
428 | - | let | |
429 | - | let | |
430 | - | let | |
431 | - | $Tuple2(nil, [("%s%d__unstakedAcres__" + toString( | |
438 | + | let dd = dc._1 | |
439 | + | let de = dc._2 | |
440 | + | let df = dc._3 | |
441 | + | $Tuple2(nil, [("%s%d__unstakedAcres__" + toString(cT)), ("%s%d__claimedAcres__" + toString(cU)), ("%s%d__acresFromPieces__" + toString(cW)), ("%s%d__acresFromRes__" + toString(cX)), ("%s%d__acresFromMat__" + toString(cY)), ("%s%d__acresFromProd__" + toString(cZ)), ("%s%d__acresFromDuckRes__" + toString(dd)), ("%s%d__acresFromDuckMat__" + toString(de)), ("%s%d__acresFromDuckProd__" + toString(df))]) | |
432 | 442 | } | |
433 | 443 | ||
434 | 444 | ||
435 | 445 | ||
436 | - | @Callable(cI) | |
437 | - | func wlgStatsREADONLY (by) = { | |
438 | - | let db = bx(by, [u, v, w, x, y], c, 0) | |
439 | - | $Tuple2(nil, [("%s%d__wlgAmount__" + toString(db[aT])), ("%s%d__wlgWlg__" + toString(db[aU])), ("%s%d__wlgPrice__" + toString(db[aV])), ("%s%d__usdtFunds__" + toString(db[aW])), ("%s%d__usdtActivity__" + toString(db[aX])), ("%s%d__usdtStaking__" + toString(db[aY])), ("%s%d__usdtArbitrage__" + toString(db[aZ])), ("%s%d__usdtPool__" + toString(db[ba])), ("%s%d__wlgIssueTime__" + toString(db[bb])), ("%s%d__wlgLastTeamActTime__" + toString(db[bc])), ("%s%d__wlgTeamTotal__" + toString(db[bd])), ("%s%d__wlgTeamAmLeft__" + toString(db[be])), ("%s%d__wlgTeamAmAvailNow__" + toString(db[bf])), ("%s%d__wlgTeamWlgold__" + toString(db[bg])), ("%s%d__wlgActTotal__" + toString(db[bh])), ("%s%d__wlgActAmLeft__" + toString(db[bi])), ("%s%d__wlgActAmAvailNow__" + toString(db[bj])), ("%s%d__wlgActWlgold__" + toString(db[bk])), ("%s%d__wlgCurPeriod__" + toString(db[bl])), ("%s%d__wlgAmLeftTotal__" + toString(db[bm])), ("%s%d__wlgCurPeriodDistribution__" + toString(db[bn])), ("%s%d__wlgLastUserTime__" + toString(db[bo])), ("%s%d__wlgInvestFundTotal__" + toString(db[bp])), ("%s%d__wlgUserAmAvailNow__" + toString(db[bq])), ("%s%d__wlgEffUserTime__" + toString(db[br])), ("%s%d__wlgIssue10AvailNow__" + toString(db[bs])), ("%s%d__wlgMarketingIssue10AvailNow__" + toString(db[bt])), ("%s%d__wlgTeamIssue10AvailNow__" + toString(db[bu])), ("%s%d__wlgUserIssue10AvailNow__" + toString(db[bv])), ("%s%d__wlgLastIssue10Time__" + toString(db[bw]))]) | |
446 | + | @Callable(cN) | |
447 | + | func wlgStatsREADONLY (bD) = { | |
448 | + | let dg = bC(bD, [u, v, w, x, y], c, 0) | |
449 | + | $Tuple2(nil, [("%s%d__wlgAmount__" + toString(dg[aY])), ("%s%d__wlgWlg__" + toString(dg[aZ])), ("%s%d__wlgPrice__" + toString(dg[ba])), ("%s%d__usdtFunds__" + toString(dg[bb])), ("%s%d__usdtActivity__" + toString(dg[bc])), ("%s%d__usdtStaking__" + toString(dg[bd])), ("%s%d__usdtArbitrage__" + toString(dg[be])), ("%s%d__usdtPool__" + toString(dg[bf])), ("%s%d__wlgIssueTime__" + toString(dg[bg])), ("%s%d__wlgLastTeamActTime__" + toString(dg[bh])), ("%s%d__wlgTeamTotal__" + toString(dg[bi])), ("%s%d__wlgTeamAmLeft__" + toString(dg[bj])), ("%s%d__wlgTeamAmAvailNow__" + toString(dg[bk])), ("%s%d__wlgTeamWlgold__" + toString(dg[bl])), ("%s%d__wlgActTotal__" + toString(dg[bm])), ("%s%d__wlgActAmLeft__" + toString(dg[bn])), ("%s%d__wlgActAmAvailNow__" + toString(dg[bo])), ("%s%d__wlgActWlgold__" + toString(dg[bp])), ("%s%d__wlgCurPeriod__" + toString(dg[bq])), ("%s%d__wlgAmLeftTotal__" + toString(dg[br])), ("%s%d__wlgCurPeriodDistribution__" + toString(dg[bs])), ("%s%d__wlgLastUserTime__" + toString(dg[bt])), ("%s%d__wlgInvestFundTotal__" + toString(dg[bu])), ("%s%d__wlgUserAmAvailNow__" + toString(dg[bv])), ("%s%d__wlgEffUserTime__" + toString(dg[bw])), ("%s%d__wlgIssue10AvailNow__" + toString(dg[bx])), ("%s%d__wlgMarketingIssue10AvailNow__" + toString(dg[by])), ("%s%d__wlgTeamIssue10AvailNow__" + toString(dg[bz])), ("%s%d__wlgUserIssue10AvailNow__" + toString(dg[bA])), ("%s%d__wlgLastIssue10Time__" + toString(dg[bB]))]) | |
450 | + | } | |
451 | + | ||
452 | + | ||
453 | + | ||
454 | + | @Callable(cN) | |
455 | + | func lotteryStatsREADONLY (bD) = { | |
456 | + | let dh = (height / X) | |
457 | + | $Tuple2(nil, [("%s%d__totalTickets__" + toString(valueOrElse(getInteger(w, aT), 0))), ("%s%d__userTickets__" + toString(valueOrElse(getInteger(w, aS(bD)), 0))), ("%s%d__blockchainDay__" + toString(dh)), ("%s%d__blockchainMinute__" + toString((height % X))), ("%s%d__winningBetToday__" + toString(aU(dh)))]) | |
440 | 458 | } | |
441 | 459 | ||
442 | 460 |
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 | 11 | then base58'9wc3LXNA4TEBsXyKtoLE9mrbDD7WMHXvXrCjZvabLAsi' | |
12 | 12 | else if ((base58'2T' == d)) | |
13 | 13 | then base58'6mWwf9mZBjVgkC54idpyaZLQfAosD914wT8fGf2iiY63' | |
14 | 14 | else throw("Unknown chain") | |
15 | 15 | } | |
16 | 16 | ||
17 | 17 | let e = { | |
18 | 18 | let d = b | |
19 | 19 | if ((base58'2W' == d)) | |
20 | 20 | then "3PFwYta8biEz31zpeFe5DJK8wE5trSpQVF8" | |
21 | 21 | else if ((base58'2T' == d)) | |
22 | 22 | then "3N7UuYar6264P58FBhVWKPQAh4Yua2hgngv" | |
23 | 23 | else throw("Unknown chain") | |
24 | 24 | } | |
25 | 25 | ||
26 | 26 | let f = { | |
27 | 27 | let d = b | |
28 | 28 | if ((base58'2W' == d)) | |
29 | 29 | then "3PLncXtS1U83D6cQbFD3H8rBHPLgzxSFKZ1" | |
30 | 30 | else if ((base58'2T' == d)) | |
31 | 31 | then "3NDCyBG5q85JuaRiigUeEtainyjCQT3XpZm" | |
32 | 32 | else throw("Unknown chain") | |
33 | 33 | } | |
34 | 34 | ||
35 | 35 | func g (h,i) = valueOrErrorMessage(getString(h, i), makeString(["mandatory ", toString(h), ".", i, " is not defined"], "")) | |
36 | 36 | ||
37 | 37 | ||
38 | 38 | let j = 1 | |
39 | 39 | ||
40 | 40 | let k = 2 | |
41 | 41 | ||
42 | 42 | let l = 4 | |
43 | 43 | ||
44 | 44 | let m = 5 | |
45 | 45 | ||
46 | 46 | func n () = "%s__restConfig" | |
47 | 47 | ||
48 | 48 | ||
49 | 49 | func o () = "%s__rest2Addr" | |
50 | 50 | ||
51 | 51 | ||
52 | 52 | func p (q) = split_4C(g(q, n()), a) | |
53 | 53 | ||
54 | 54 | ||
55 | 55 | func r (s,t) = valueOrErrorMessage(addressFromString(s[t]), ("Rest cfg doesn't contain address at index " + toString(t))) | |
56 | 56 | ||
57 | 57 | ||
58 | 58 | let u = addressFromStringValue(valueOrElse(getString(this, o()), e)) | |
59 | 59 | ||
60 | 60 | let s = p(u) | |
61 | 61 | ||
62 | 62 | let v = r(s, j) | |
63 | 63 | ||
64 | 64 | let w = r(s, k) | |
65 | 65 | ||
66 | 66 | let x = r(s, l) | |
67 | 67 | ||
68 | 68 | let y = r(s, m) | |
69 | 69 | ||
70 | 70 | let z = "oldAcresContract" | |
71 | 71 | ||
72 | 72 | func A (B) = ("lastTxIdByUser_" + B) | |
73 | 73 | ||
74 | 74 | ||
75 | 75 | let C = "wlg_assetId" | |
76 | 76 | ||
77 | 77 | let D = valueOrErrorMessage(getBinary(w, C), "WLGOLD is not issued yet") | |
78 | 78 | ||
79 | 79 | let E = "acresAssetId" | |
80 | 80 | ||
81 | 81 | let F = valueOrErrorMessage(getBinary(v, E), "ACRES is not issued yet") | |
82 | 82 | ||
83 | 83 | func G (H) = ("stakedDuckByOwner_" + H) | |
84 | 84 | ||
85 | 85 | ||
86 | 86 | func I (B) = ("accountCustomNameByAddr_" + B) | |
87 | 87 | ||
88 | 88 | ||
89 | 89 | func J (B) = ("accRefBy_" + B) | |
90 | 90 | ||
91 | 91 | ||
92 | 92 | func K (B) = ("accReferrals_" + B) | |
93 | 93 | ||
94 | 94 | ||
95 | 95 | func L (M) = { | |
96 | 96 | let d = M | |
97 | 97 | if ($isInstanceOf(d, "(Int, Int, Int, Int)")) | |
98 | 98 | then { | |
99 | 99 | let N = d | |
100 | 100 | N | |
101 | 101 | } | |
102 | 102 | else throw("fail to cast into (Int, Int, Int, Int)") | |
103 | 103 | } | |
104 | 104 | ||
105 | 105 | ||
106 | 106 | func O (M) = { | |
107 | 107 | let d = M | |
108 | 108 | if ($isInstanceOf(d, "(Int, Int, Int)")) | |
109 | 109 | then { | |
110 | 110 | let N = d | |
111 | 111 | N | |
112 | 112 | } | |
113 | 113 | else throw("fail to cast into (Int, Int, Int)") | |
114 | 114 | } | |
115 | 115 | ||
116 | 116 | ||
117 | 117 | func P (M) = { | |
118 | 118 | let d = M | |
119 | 119 | if ($isInstanceOf(d, "(Int, Int)")) | |
120 | 120 | then { | |
121 | 121 | let N = d | |
122 | 122 | N | |
123 | 123 | } | |
124 | 124 | else throw("fail to cast into (Int, Int)") | |
125 | 125 | } | |
126 | 126 | ||
127 | 127 | ||
128 | 128 | let Q = 1000000 | |
129 | 129 | ||
130 | 130 | let R = 100000000 | |
131 | 131 | ||
132 | 132 | let S = 200000 | |
133 | 133 | ||
134 | 134 | let T = 100000 | |
135 | 135 | ||
136 | 136 | let U = 400000 | |
137 | 137 | ||
138 | 138 | let V = 31557600000 | |
139 | 139 | ||
140 | 140 | let W = 86400000 | |
141 | 141 | ||
142 | - | let X = | |
142 | + | let X = 1440 | |
143 | 143 | ||
144 | - | let Y = | |
144 | + | let Y = 1000000000 | |
145 | 145 | ||
146 | - | let Z = | |
146 | + | let Z = 800000 | |
147 | 147 | ||
148 | 148 | let aa = 100000 | |
149 | 149 | ||
150 | - | let ab = | |
150 | + | let ab = 100000 | |
151 | 151 | ||
152 | - | let ac = | |
152 | + | let ac = 1727740800000 | |
153 | 153 | ||
154 | - | let ad = " | |
154 | + | let ad = "teamAddr" | |
155 | 155 | ||
156 | - | let ae = " | |
156 | + | let ae = "lastClaimedTime_team" | |
157 | 157 | ||
158 | - | let af = " | |
158 | + | let af = "teamAmountLeft" | |
159 | 159 | ||
160 | - | let ag = " | |
160 | + | let ag = "lastClaimedTime_activities" | |
161 | 161 | ||
162 | - | let ah = " | |
162 | + | let ah = "activitiesAmountLeft" | |
163 | 163 | ||
164 | - | func ai (B) = ("lastClaimedTimeUser_" + B) | |
164 | + | let ai = "stakersAmountLeft" | |
165 | + | ||
166 | + | func aj (B) = ("lastClaimedTimeUser_" + B) | |
165 | 167 | ||
166 | 168 | ||
167 | - | func | |
169 | + | func ak (al,am) = fraction(al, (U * (am + 1)), (6 * Q)) | |
168 | 170 | ||
169 | 171 | ||
170 | - | let | |
172 | + | let an = "wlg_issue10Time" | |
171 | 173 | ||
172 | - | let | |
174 | + | let ao = "wlg_issueTime" | |
173 | 175 | ||
174 | - | let | |
176 | + | let ap = "wlg_issuedAmount" | |
175 | 177 | ||
176 | - | let | |
178 | + | let aq = "zbill_issuedAmount" | |
177 | 179 | ||
178 | - | func | |
180 | + | func ar (B) = ("acresStakedAmountByUser_" + B) | |
179 | 181 | ||
180 | 182 | ||
181 | - | let | |
183 | + | let as = "totalFarmingPower" | |
182 | 184 | ||
183 | - | let | |
185 | + | let at = 0 | |
184 | 186 | ||
185 | - | let | |
187 | + | let au = 1 | |
186 | 188 | ||
187 | - | let | |
189 | + | let av = 2 | |
188 | 190 | ||
189 | - | let | |
191 | + | let aw = 3 | |
190 | 192 | ||
191 | - | let | |
193 | + | let ax = 4 | |
192 | 194 | ||
193 | - | let | |
195 | + | let ay = [0, 10, 20, 40, 80, 150, 250, 400, 700, 1000] | |
194 | 196 | ||
195 | - | func | |
196 | - | let | |
197 | - | func | |
198 | - | then | |
199 | - | else ( | |
197 | + | func az (aA) = { | |
198 | + | let aB = ((aA + 99999999) / R) | |
199 | + | func aC (aD,aE) = if ((aE >= aB)) | |
200 | + | then aD | |
201 | + | else (aD + 1) | |
200 | 202 | ||
201 | - | let | |
202 | - | let | |
203 | - | let | |
204 | - | func | |
205 | - | then | |
206 | - | else | |
203 | + | let aF = ay | |
204 | + | let aG = size(aF) | |
205 | + | let aH = 0 | |
206 | + | func aI (aJ,aK) = if ((aK >= aG)) | |
207 | + | then aJ | |
208 | + | else aC(aJ, aF[aK]) | |
207 | 209 | ||
208 | - | func | |
209 | - | then | |
210 | + | func aL (aJ,aK) = if ((aK >= aG)) | |
211 | + | then aJ | |
210 | 212 | else throw("List size exceeds 10") | |
211 | 213 | ||
212 | - | | |
214 | + | aL(aI(aI(aI(aI(aI(aI(aI(aI(aI(aI(aH, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10) | |
213 | 215 | } | |
214 | 216 | ||
215 | 217 | ||
216 | - | func | |
218 | + | func aM (aA) = ((aA * 20) * (az(aA) + 4)) | |
217 | 219 | ||
218 | 220 | ||
219 | - | func | |
220 | - | let | |
221 | - | let | |
222 | - | let | |
223 | - | [ | |
221 | + | func aN (aO,v) = { | |
222 | + | let aP = valueOrElse(getInteger(v, as), 0) | |
223 | + | let aQ = valueOrElse(getInteger(v, ar(aO)), 0) | |
224 | + | let aR = aM(aQ) | |
225 | + | [aP, aR] | |
224 | 226 | } | |
225 | 227 | ||
226 | 228 | ||
227 | - | ||
229 | + | func aS (B) = ("userTickets_" + B) | |
228 | 230 | ||
229 | - | let aS = 1 | |
230 | 231 | ||
231 | - | let aT = | |
232 | + | let aT = "totalTickets" | |
232 | 233 | ||
233 | - | ||
234 | + | func aU (aV) = (toInt(value(value(blockInfoByHeight((aV * X))).vrf)) % 4) | |
234 | 235 | ||
235 | - | let aV = 2 | |
236 | 236 | ||
237 | - | let aW = | |
237 | + | let aW = 0 | |
238 | 238 | ||
239 | - | let aX = | |
239 | + | let aX = 1 | |
240 | 240 | ||
241 | - | let aY = | |
241 | + | let aY = 0 | |
242 | 242 | ||
243 | - | let aZ = | |
243 | + | let aZ = 1 | |
244 | 244 | ||
245 | - | let ba = | |
245 | + | let ba = 2 | |
246 | 246 | ||
247 | - | let bb = | |
247 | + | let bb = 3 | |
248 | 248 | ||
249 | - | let bc = | |
249 | + | let bc = 4 | |
250 | 250 | ||
251 | - | let bd = | |
251 | + | let bd = 5 | |
252 | 252 | ||
253 | - | let be = | |
253 | + | let be = 6 | |
254 | 254 | ||
255 | - | let bf = | |
255 | + | let bf = 7 | |
256 | 256 | ||
257 | - | let bg = | |
257 | + | let bg = 8 | |
258 | 258 | ||
259 | - | let bh = | |
259 | + | let bh = 9 | |
260 | 260 | ||
261 | - | let bi = | |
261 | + | let bi = 10 | |
262 | 262 | ||
263 | - | let bj = | |
263 | + | let bj = 11 | |
264 | 264 | ||
265 | - | let bk = | |
265 | + | let bk = 12 | |
266 | 266 | ||
267 | - | let bl = | |
267 | + | let bl = 13 | |
268 | 268 | ||
269 | - | let bm = | |
269 | + | let bm = 14 | |
270 | 270 | ||
271 | - | let bn = | |
271 | + | let bn = 15 | |
272 | 272 | ||
273 | - | let bo = | |
273 | + | let bo = 16 | |
274 | 274 | ||
275 | - | let bp = | |
275 | + | let bp = 17 | |
276 | 276 | ||
277 | - | let bq = | |
277 | + | let bq = 18 | |
278 | 278 | ||
279 | - | let br = | |
279 | + | let br = 19 | |
280 | 280 | ||
281 | - | let bs = | |
281 | + | let bs = 20 | |
282 | 282 | ||
283 | - | let bt = | |
283 | + | let bt = 21 | |
284 | 284 | ||
285 | - | let bu = | |
285 | + | let bu = 22 | |
286 | 286 | ||
287 | - | let bv = | |
287 | + | let bv = 23 | |
288 | 288 | ||
289 | - | let bw = | |
289 | + | let bw = 24 | |
290 | 290 | ||
291 | - | func bx (by,bz,bA,bB) = { | |
292 | - | let ak = valueOrErrorMessage(getInteger(bz[au], ao), "WLGOLD is not issued yet") | |
293 | - | let bC = assetBalance(bz[as], bA) | |
294 | - | let bD = (assetBalance(bz[au], bA) - bB) | |
295 | - | let bE = assetBalance(bz[av], bA) | |
296 | - | let bF = assetBalance(bz[at], bA) | |
297 | - | let bG = bz[aw] | |
298 | - | let bH = (assetBalance(bG, bA) + valueOrElse(getInteger(bG, ap), 0)) | |
299 | - | let bI = ((bF + bD) + bH) | |
300 | - | let bJ = valueOrErrorMessage(getBinary(bz[au], "wlg_assetId"), "Not initialized yet") | |
301 | - | let bK = lastBlock.timestamp | |
302 | - | let bL = valueOrErrorMessage(getInteger(bz[au], an), "Not initialized") | |
303 | - | let bM = assetBalance(bz[au], bJ) | |
304 | - | let bN = fraction(ak, S, Q) | |
305 | - | let bO = valueOrElse(getInteger(bz[au], ae), bN) | |
306 | - | let bP = valueOrElse(getInteger(bz[au], ad), bL) | |
307 | - | let bQ = addressFromStringValue(value(getString(bz[au], ac))) | |
308 | - | let bR = min([fraction(bN, (bK - bP), (3 * V)), bO]) | |
309 | - | let bS = assetBalance(bQ, bJ) | |
310 | - | let bT = fraction(ak, T, Q) | |
311 | - | let bU = valueOrElse(getInteger(bz[au], ag), bT) | |
312 | - | let bV = valueOrElse(getInteger(bz[au], af), bL) | |
313 | - | let bW = min([fraction(bT, (bK - bV), (3 * V)), bU]) | |
314 | - | let bX = assetBalance(bz[as], bJ) | |
315 | - | let bY = valueOrElse(getInteger(bz[au], ai(by)), bL) | |
316 | - | let bZ = ((bY - bL) / V) | |
317 | - | let ca = min([bK, (bL + (3 * V))]) | |
318 | - | let cb = min([((bK - bL) / V), 2]) | |
319 | - | let cc = aM(by, bz[at]) | |
320 | - | let cd = aj(ak, cb) | |
321 | - | let ce = (bL + (V * cb)) | |
322 | - | let cf = (bL + (V * (cb - 1))) | |
323 | - | let cg = fraction(cd, (ca - bY), V) | |
324 | - | let ch = if ((bZ == cb)) | |
325 | - | then cg | |
326 | - | else if ((bZ == (cb - 1))) | |
291 | + | let bx = 25 | |
292 | + | ||
293 | + | let by = 26 | |
294 | + | ||
295 | + | let bz = 27 | |
296 | + | ||
297 | + | let bA = 28 | |
298 | + | ||
299 | + | let bB = 29 | |
300 | + | ||
301 | + | func bC (bD,bE,bF,bG) = { | |
302 | + | let al = valueOrErrorMessage(getInteger(bE[av], ap), "WLGOLD is not issued yet") | |
303 | + | let bH = assetBalance(bE[at], bF) | |
304 | + | let bI = (assetBalance(bE[av], bF) - bG) | |
305 | + | let bJ = assetBalance(bE[aw], bF) | |
306 | + | let bK = assetBalance(bE[au], bF) | |
307 | + | let bL = bE[ax] | |
308 | + | let bM = (assetBalance(bL, bF) + valueOrElse(getInteger(bL, aq), 0)) | |
309 | + | let bN = ((bK + bI) + bM) | |
310 | + | let bO = valueOrErrorMessage(getBinary(bE[av], "wlg_assetId"), "Not initialized yet") | |
311 | + | let bP = lastBlock.timestamp | |
312 | + | let bQ = valueOrErrorMessage(getInteger(bE[av], ao), "Not initialized") | |
313 | + | let bR = assetBalance(bE[av], bO) | |
314 | + | let bS = fraction(al, S, Q) | |
315 | + | let bT = valueOrElse(getInteger(bE[av], af), bS) | |
316 | + | let bU = valueOrElse(getInteger(bE[av], ae), bQ) | |
317 | + | let bV = addressFromStringValue(value(getString(bE[av], ad))) | |
318 | + | let bW = min([fraction(bS, (bP - bU), (3 * V)), bT]) | |
319 | + | let bX = assetBalance(bV, bO) | |
320 | + | let bY = fraction(al, T, Q) | |
321 | + | let bZ = valueOrElse(getInteger(bE[av], ah), bY) | |
322 | + | let ca = valueOrElse(getInteger(bE[av], ag), bQ) | |
323 | + | let cb = min([fraction(bY, (bP - ca), (3 * V)), bZ]) | |
324 | + | let cc = assetBalance(bE[at], bO) | |
325 | + | let cd = valueOrElse(getInteger(bE[av], aj(bD)), bQ) | |
326 | + | let ce = ((cd - bQ) / V) | |
327 | + | let cf = min([bP, (bQ + (3 * V))]) | |
328 | + | let cg = min([((bP - bQ) / V), 2]) | |
329 | + | let ch = aN(bD, bE[au]) | |
330 | + | let ci = ak(al, cg) | |
331 | + | let cj = (bQ + (V * cg)) | |
332 | + | let ck = (bQ + (V * (cg - 1))) | |
333 | + | let cl = fraction(ci, (cf - cd), V) | |
334 | + | let cm = if ((ce == cg)) | |
335 | + | then cl | |
336 | + | else if ((ce == (cg - 1))) | |
327 | 337 | then { | |
328 | - | let | |
329 | - | ( | |
338 | + | let cn = fraction(ak(al, (cg - 1)), (cj - cd), V) | |
339 | + | (cn + cl) | |
330 | 340 | } | |
331 | 341 | else { | |
332 | - | let | |
333 | - | let | |
334 | - | (( | |
342 | + | let co = fraction(ak(al, (cg - 2)), (ck - cd), V) | |
343 | + | let cn = ak(al, (cg - 1)) | |
344 | + | ((co + cn) + cl) | |
335 | 345 | } | |
336 | - | let | |
337 | - | let | |
338 | - | then fraction( | |
346 | + | let cp = valueOrElse(getInteger(bE[av], ai), 0) | |
347 | + | let cq = if ((ch[aW] != 0)) | |
348 | + | then fraction(cm, ch[aX], ch[aW]) | |
339 | 349 | else 0 | |
340 | - | let | |
341 | - | let | |
342 | - | let | |
343 | - | let | |
344 | - | let | |
345 | - | let | |
346 | - | then fraction(fraction(fraction( | |
350 | + | let cr = valueOrElse(getInteger(bE[av], an), ac) | |
351 | + | let cs = fraction(Y, max([(bP - cr), 0]), W) | |
352 | + | let ct = fraction(cs, aa, Q) | |
353 | + | let cu = fraction(cs, ab, Q) | |
354 | + | let cv = max([(bP - max([ac, cd])), 0]) | |
355 | + | let cw = if ((ch[aW] != 0)) | |
356 | + | then fraction(fraction(fraction(Y, cv, W), ch[aX], ch[aW]), Z, Q) | |
347 | 357 | else 0 | |
348 | - | let | |
349 | - | [ | |
358 | + | let cx = max([ac, bP]) | |
359 | + | [al, bR, fraction(bN, R, al), bN, bH, bK, bI, bJ, bQ, bU, bS, bT, bW, bX, bY, bZ, cb, cc, cg, cp, ci, cd, bM, cq, cf, cs, ct, cu, cw, cx] | |
350 | 360 | } | |
351 | 361 | ||
352 | 362 | ||
353 | - | func | |
354 | - | let B = addressFromString( | |
355 | - | let | |
363 | + | func cy (cz) = { | |
364 | + | let B = addressFromString(cz) | |
365 | + | let cA = if (isDefined(B)) | |
356 | 366 | then wavesBalance(value(B)) | |
357 | 367 | else BalanceDetails(0, 0, 0, 0) | |
358 | - | let | |
368 | + | let cB = if (isDefined(B)) | |
359 | 369 | then assetBalance(value(B), c) | |
360 | 370 | else 0 | |
361 | - | let | |
371 | + | let cC = if (isDefined(B)) | |
362 | 372 | then assetBalance(value(B), D) | |
363 | 373 | else 0 | |
364 | - | let | |
365 | - | let | |
366 | - | let | |
367 | - | let | |
368 | - | let | |
369 | - | let | |
374 | + | let cD = valueOrElse(getString(v, I(cz)), cz) | |
375 | + | let cE = J(cz) | |
376 | + | let cF = getString(v, cE) | |
377 | + | let cG = valueOrElse(getString(v, K(cz)), "") | |
378 | + | let cH = valueOrElse(getString(v, A(cz)), "") | |
379 | + | let cI = if (isDefined(B)) | |
370 | 380 | then assetBalance(value(B), F) | |
371 | 381 | else 0 | |
372 | - | let | |
373 | - | let | |
374 | - | let | |
375 | - | let | |
382 | + | let cJ = valueOrElse(getInteger(v, ar(cz)), 0) | |
383 | + | let cK = az(cJ) | |
384 | + | let cL = aN(cz, v) | |
385 | + | let cM = if ((cK >= size(ay))) | |
376 | 386 | then 0 | |
377 | - | else (( | |
378 | - | [("%s%s__customName__" + | |
387 | + | else ((ay[cK] + 1) - cJ) | |
388 | + | [("%s%s__customName__" + cD), ("%s%s__referredBy__" + valueOrElse(cF, "")), ("%s%s__referrals__" + cG), ("%s%s__lastTxId__" + cH), ("%s%d__wavesBalance__" + toString(cA.available)), ("%s%d__usdtBalance__" + toString(cB)), ("%s%d__wlgoldBalance__" + toString(cC)), ("%s%d__acresBalance__" + toString(cI)), ("%s%d__stakedAcres__" + toString(cJ)), ("%s%d__currentLvl__" + toString(cK)), ("%s%d__acresToNextLvl__" + toString(cM)), ("%s%d__userFarmingPower__" + toString(cL[aX])), ("%s%d__totalFarmingPower__" + toString(cL[aW]))] | |
379 | 389 | } | |
380 | 390 | ||
381 | 391 | ||
382 | - | @Callable( | |
383 | - | func constructorV1 ( | |
392 | + | @Callable(cN) | |
393 | + | func constructorV1 (bE) = if ((cN.caller != this)) | |
384 | 394 | then throw("permissions denied") | |
385 | 395 | else { | |
386 | - | func | |
396 | + | func cO (aD,cP) = (aD + "%s") | |
387 | 397 | ||
388 | - | let | |
389 | - | let | |
390 | - | let | |
391 | - | let | |
392 | - | func | |
393 | - | then | |
394 | - | else | |
398 | + | let cQ = { | |
399 | + | let aF = bE | |
400 | + | let aG = size(aF) | |
401 | + | let aH = "" | |
402 | + | func aI (aJ,aK) = if ((aK >= aG)) | |
403 | + | then aJ | |
404 | + | else cO(aJ, aF[aK]) | |
395 | 405 | ||
396 | - | func | |
397 | - | then | |
406 | + | func aL (aJ,aK) = if ((aK >= aG)) | |
407 | + | then aJ | |
398 | 408 | else throw("List size exceeds 10") | |
399 | 409 | ||
400 | - | | |
410 | + | aL(aI(aI(aI(aI(aI(aI(aI(aI(aI(aI(aH, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10) | |
401 | 411 | } | |
402 | - | [StringEntry(n(), makeString( | |
412 | + | [StringEntry(n(), makeString(cQ :: bE, a)), StringEntry(o(), toString(this))] | |
403 | 413 | } | |
404 | 414 | ||
405 | 415 | ||
406 | 416 | ||
407 | - | @Callable( | |
408 | - | func walletInfoREADONLY ( | |
417 | + | @Callable(cN) | |
418 | + | func walletInfoREADONLY (cz) = $Tuple2(nil, cy(cz)) | |
409 | 419 | ||
410 | 420 | ||
411 | 421 | ||
412 | - | @Callable( | |
413 | - | func conversionInfoREADONLY ( | |
414 | - | let | |
415 | - | let | |
416 | - | let | |
417 | - | let | |
418 | - | let | |
419 | - | let | |
420 | - | let | |
421 | - | let | |
422 | - | let | |
423 | - | let | |
424 | - | let | |
425 | - | let | |
426 | - | then O(invoke( | |
422 | + | @Callable(cN) | |
423 | + | func conversionInfoREADONLY (cz) = { | |
424 | + | let cR = addressFromStringValue(getStringValue(v, z)) | |
425 | + | let cS = P(invoke(cR, "unstakeAllAcresREADONLY", [cz], nil)) | |
426 | + | let cT = cS._1 | |
427 | + | let cU = cS._2 | |
428 | + | let cV = L(invoke(v, "unstakeLandsREADONLY", [cz], nil)) | |
429 | + | let cW = cV._1 | |
430 | + | let cX = cV._2 | |
431 | + | let cY = cV._3 | |
432 | + | let cZ = cV._4 | |
433 | + | let da = addressFromStringValue(f) | |
434 | + | let db = valueOrElse(getString(da, G(cz)), "") | |
435 | + | let dc = if ((db != "")) | |
436 | + | then O(invoke(da, "unstakeDuckREADONLY", [db, cz], nil)) | |
427 | 437 | else $Tuple3(0, 0, 0) | |
428 | - | let | |
429 | - | let | |
430 | - | let | |
431 | - | $Tuple2(nil, [("%s%d__unstakedAcres__" + toString( | |
438 | + | let dd = dc._1 | |
439 | + | let de = dc._2 | |
440 | + | let df = dc._3 | |
441 | + | $Tuple2(nil, [("%s%d__unstakedAcres__" + toString(cT)), ("%s%d__claimedAcres__" + toString(cU)), ("%s%d__acresFromPieces__" + toString(cW)), ("%s%d__acresFromRes__" + toString(cX)), ("%s%d__acresFromMat__" + toString(cY)), ("%s%d__acresFromProd__" + toString(cZ)), ("%s%d__acresFromDuckRes__" + toString(dd)), ("%s%d__acresFromDuckMat__" + toString(de)), ("%s%d__acresFromDuckProd__" + toString(df))]) | |
432 | 442 | } | |
433 | 443 | ||
434 | 444 | ||
435 | 445 | ||
436 | - | @Callable(cI) | |
437 | - | func wlgStatsREADONLY (by) = { | |
438 | - | let db = bx(by, [u, v, w, x, y], c, 0) | |
439 | - | $Tuple2(nil, [("%s%d__wlgAmount__" + toString(db[aT])), ("%s%d__wlgWlg__" + toString(db[aU])), ("%s%d__wlgPrice__" + toString(db[aV])), ("%s%d__usdtFunds__" + toString(db[aW])), ("%s%d__usdtActivity__" + toString(db[aX])), ("%s%d__usdtStaking__" + toString(db[aY])), ("%s%d__usdtArbitrage__" + toString(db[aZ])), ("%s%d__usdtPool__" + toString(db[ba])), ("%s%d__wlgIssueTime__" + toString(db[bb])), ("%s%d__wlgLastTeamActTime__" + toString(db[bc])), ("%s%d__wlgTeamTotal__" + toString(db[bd])), ("%s%d__wlgTeamAmLeft__" + toString(db[be])), ("%s%d__wlgTeamAmAvailNow__" + toString(db[bf])), ("%s%d__wlgTeamWlgold__" + toString(db[bg])), ("%s%d__wlgActTotal__" + toString(db[bh])), ("%s%d__wlgActAmLeft__" + toString(db[bi])), ("%s%d__wlgActAmAvailNow__" + toString(db[bj])), ("%s%d__wlgActWlgold__" + toString(db[bk])), ("%s%d__wlgCurPeriod__" + toString(db[bl])), ("%s%d__wlgAmLeftTotal__" + toString(db[bm])), ("%s%d__wlgCurPeriodDistribution__" + toString(db[bn])), ("%s%d__wlgLastUserTime__" + toString(db[bo])), ("%s%d__wlgInvestFundTotal__" + toString(db[bp])), ("%s%d__wlgUserAmAvailNow__" + toString(db[bq])), ("%s%d__wlgEffUserTime__" + toString(db[br])), ("%s%d__wlgIssue10AvailNow__" + toString(db[bs])), ("%s%d__wlgMarketingIssue10AvailNow__" + toString(db[bt])), ("%s%d__wlgTeamIssue10AvailNow__" + toString(db[bu])), ("%s%d__wlgUserIssue10AvailNow__" + toString(db[bv])), ("%s%d__wlgLastIssue10Time__" + toString(db[bw]))]) | |
446 | + | @Callable(cN) | |
447 | + | func wlgStatsREADONLY (bD) = { | |
448 | + | let dg = bC(bD, [u, v, w, x, y], c, 0) | |
449 | + | $Tuple2(nil, [("%s%d__wlgAmount__" + toString(dg[aY])), ("%s%d__wlgWlg__" + toString(dg[aZ])), ("%s%d__wlgPrice__" + toString(dg[ba])), ("%s%d__usdtFunds__" + toString(dg[bb])), ("%s%d__usdtActivity__" + toString(dg[bc])), ("%s%d__usdtStaking__" + toString(dg[bd])), ("%s%d__usdtArbitrage__" + toString(dg[be])), ("%s%d__usdtPool__" + toString(dg[bf])), ("%s%d__wlgIssueTime__" + toString(dg[bg])), ("%s%d__wlgLastTeamActTime__" + toString(dg[bh])), ("%s%d__wlgTeamTotal__" + toString(dg[bi])), ("%s%d__wlgTeamAmLeft__" + toString(dg[bj])), ("%s%d__wlgTeamAmAvailNow__" + toString(dg[bk])), ("%s%d__wlgTeamWlgold__" + toString(dg[bl])), ("%s%d__wlgActTotal__" + toString(dg[bm])), ("%s%d__wlgActAmLeft__" + toString(dg[bn])), ("%s%d__wlgActAmAvailNow__" + toString(dg[bo])), ("%s%d__wlgActWlgold__" + toString(dg[bp])), ("%s%d__wlgCurPeriod__" + toString(dg[bq])), ("%s%d__wlgAmLeftTotal__" + toString(dg[br])), ("%s%d__wlgCurPeriodDistribution__" + toString(dg[bs])), ("%s%d__wlgLastUserTime__" + toString(dg[bt])), ("%s%d__wlgInvestFundTotal__" + toString(dg[bu])), ("%s%d__wlgUserAmAvailNow__" + toString(dg[bv])), ("%s%d__wlgEffUserTime__" + toString(dg[bw])), ("%s%d__wlgIssue10AvailNow__" + toString(dg[bx])), ("%s%d__wlgMarketingIssue10AvailNow__" + toString(dg[by])), ("%s%d__wlgTeamIssue10AvailNow__" + toString(dg[bz])), ("%s%d__wlgUserIssue10AvailNow__" + toString(dg[bA])), ("%s%d__wlgLastIssue10Time__" + toString(dg[bB]))]) | |
450 | + | } | |
451 | + | ||
452 | + | ||
453 | + | ||
454 | + | @Callable(cN) | |
455 | + | func lotteryStatsREADONLY (bD) = { | |
456 | + | let dh = (height / X) | |
457 | + | $Tuple2(nil, [("%s%d__totalTickets__" + toString(valueOrElse(getInteger(w, aT), 0))), ("%s%d__userTickets__" + toString(valueOrElse(getInteger(w, aS(bD)), 0))), ("%s%d__blockchainDay__" + toString(dh)), ("%s%d__blockchainMinute__" + toString((height % X))), ("%s%d__winningBetToday__" + toString(aU(dh)))]) | |
440 | 458 | } | |
441 | 459 | ||
442 | 460 |
github/deemru/w8io/169f3d6 133.31 ms ◑![]()