tx · AMidN9DMzPGBuZnBsfkgFLxPYRQ1mycgQu1FMiAYcdTk

3N7UuYar6264P58FBhVWKPQAh4Yua2hgngv:  -0.02000000 Waves

2024.12.08 19:05 [3405869] smart account 3N7UuYar6264P58FBhVWKPQAh4Yua2hgngv > SELF 0.00000000 Waves

{ "type": 13, "id": "AMidN9DMzPGBuZnBsfkgFLxPYRQ1mycgQu1FMiAYcdTk", "fee": 2000000, "feeAssetId": null, "timestamp": 1733673915330, "version": 2, "chainId": 84, "sender": "3N7UuYar6264P58FBhVWKPQAh4Yua2hgngv", "senderPublicKey": "2fNSk5gmWbXBDTkSYSKd66xSgVvAYzrJnP9YSAFNvTwC", "proofs": [ "3mPgje8zEARSdqUqPDVo8pkBc2SWyGNceQ25mxAkSCvneg4FBcCDTVhKFpZRpaFcnxViiwhwLPnHSbEq7nGxjr7i" ], "script": "base64:BgIlCAISAwoBGBIDCgEIEgMKAQgSAwoBCBIDCgEIEgMKAQgSAwoBCIIBAANTRVACAl9fAAVjaGFpbgkAyQECCQDKAQIIBQR0aGlzBWJ5dGVzAAEAAQAKREFZX0JMT0NLUwQHJG1hdGNoMAUFY2hhaW4DCQAAAgEBVwUHJG1hdGNoMACgCwMJAAACAQFUBQckbWF0Y2gwADwJAAIBAg1Vbmtub3duIGNoYWluAAtXRUVLX0JMT0NLUwQHJG1hdGNoMAUFY2hhaW4DCQAAAgEBVwUHJG1hdGNoMADgTgMJAAACAQFUBQckbWF0Y2gwALQBCQACAQINVW5rbm93biBjaGFpbgAKVlJGX09GRlNFVAQHJG1hdGNoMAUFY2hhaW4DCQAAAgEBVwUHJG1hdGNoMAAAAwkAAAIBAVQFByRtYXRjaDAAkPlFCQACAQINVW5rbm93biBjaGFpbgALdXNkdEFzc2V0SWQEByRtYXRjaDAFBWNoYWluAwkAAAIBAVcFByRtYXRjaDABIITaerIIAz9O0bvKju6Lk7zJgt0LXfoHlqjUI/moD/+5AwkAAAIBAVQFByRtYXRjaDABIFWx2J9yh4Lv5eNbjawFq2XemkOhLxa7BfMat4el8cUYCQACAQINVW5rbm93biBjaGFpbgAWZGVmYXVsdFJlc3QyQWRkcmVzc1N0cgQHJG1hdGNoMAUFY2hhaW4DCQAAAgEBVwUHJG1hdGNoMAIjM1BGd1l0YThiaUV6MzF6cGVGZTVESks4d0U1dHJTcFFWRjgDCQAAAgEBVAUHJG1hdGNoMAIjM043VXVZYXI2MjY0UDU4RkJoVldLUFFBaDRZdWEyaGduZ3YJAAIBAg1Vbmtub3duIGNoYWluABVvbGRTdGFraW5nQ29udHJhY3RTdHIEByRtYXRjaDAFBWNoYWluAwkAAAIBAVcFByRtYXRjaDACIzNQTG5jWHRTMVU4M0Q2Y1FiRkQzSDhyQkhQTGd6eFNGS1oxAwkAAAIBAVQFByRtYXRjaDACIzNOREN5Qkc1cTg1SnVhUmlpZ1VlRXRhaW55akNRVDNYcFptCQACAQINVW5rbm93biBjaGFpbgEPZ2V0U3RyaW5nT3JGYWlsAgdhZGRyZXNzA2tleQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFB2FkZHJlc3MFA2tleQkAuQkCCQDMCAICCm1hbmRhdG9yeSAJAMwIAgkApQgBBQdhZGRyZXNzCQDMCAICAS4JAMwIAgUDa2V5CQDMCAICDyBpcyBub3QgZGVmaW5lZAUDbmlsAgAAEElkeENmZ0FjcmVzMkRhcHAAAQANSWR4Q2ZnV2xnRGFwcAACABRJZHhDZmdQdXp6bGVQb29sRGFwcAAEABRJZHhDZmdJbnZlc3RGdW5kRGFwcAAFABBJZHhDZmdNYXJrZXREYXBwAAYBCmtleVJlc3RDZmcAAg4lc19fcmVzdENvbmZpZwEPa2V5UmVzdDJBZGRyZXNzAAINJXNfX3Jlc3QyQWRkcgERcmVhZFJlc3RDZmdPckZhaWwBBHJlc3QJALwJAgkBD2dldFN0cmluZ09yRmFpbAIFBHJlc3QJAQprZXlSZXN0Q2ZnAAUDU0VQARhnZXRDb250cmFjdEFkZHJlc3NPckZhaWwCCHJlc3QyQ2ZnA2lkeAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJAJEDAgUIcmVzdDJDZmcFA2lkeAkArAICAipSZXN0IGNmZyBkb2Vzbid0IGNvbnRhaW4gYWRkcmVzcyBhdCBpbmRleCAJAKQDAQUDaWR4AA1yZXN0MkNvbnRyYWN0CQERQGV4dHJOYXRpdmUoMTA2MikBCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMJAQ9rZXlSZXN0MkFkZHJlc3MABRZkZWZhdWx0UmVzdDJBZGRyZXNzU3RyAAhyZXN0MkNmZwkBEXJlYWRSZXN0Q2ZnT3JGYWlsAQUNcmVzdDJDb250cmFjdAAOYWNyZXMyQ29udHJhY3QJARhnZXRDb250cmFjdEFkZHJlc3NPckZhaWwCBQhyZXN0MkNmZwUQSWR4Q2ZnQWNyZXMyRGFwcAALd2xnQ29udHJhY3QJARhnZXRDb250cmFjdEFkZHJlc3NPckZhaWwCBQhyZXN0MkNmZwUNSWR4Q2ZnV2xnRGFwcAAScHV6emxlUG9vbENvbnRyYWN0CQEYZ2V0Q29udHJhY3RBZGRyZXNzT3JGYWlsAgUIcmVzdDJDZmcFFElkeENmZ1B1enpsZVBvb2xEYXBwABJpbnZlc3RGdW5kQ29udHJhY3QJARhnZXRDb250cmFjdEFkZHJlc3NPckZhaWwCBQhyZXN0MkNmZwUUSWR4Q2ZnSW52ZXN0RnVuZERhcHAADm1hcmtldENvbnRyYWN0CQEYZ2V0Q29udHJhY3RBZGRyZXNzT3JGYWlsAgUIcmVzdDJDZmcFEElkeENmZ01hcmtldERhcHAAE29sZEFjcmVzQ29udHJhY3RLZXkCEG9sZEFjcmVzQ29udHJhY3QBFWtleUxhc3RXZWVrVHhJZEJ5VXNlcgEEYWRkcgkArAICAhNsYXN0V2Vla1R4SWRCeVVzZXJfBQRhZGRyARRrZXlDdXJXZWVrVHhJZEJ5VXNlcgEEYWRkcgkArAICAhJjdXJXZWVrVHhJZEJ5VXNlcl8FBGFkZHIADXdsZ0Fzc2V0SWRLZXkCC3dsZ19hc3NldElkAAp3bGdBc3NldElkCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJwIAgULd2xnQ29udHJhY3QFDXdsZ0Fzc2V0SWRLZXkCGFdMR09MRCBpcyBub3QgaXNzdWVkIHlldAAPYWNyZXNBc3NldElkS2V5AgxhY3Jlc0Fzc2V0SWQADGFjcmVzQXNzZXRJZAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCcCAIFDmFjcmVzMkNvbnRyYWN0BQ9hY3Jlc0Fzc2V0SWRLZXkCF0FDUkVTIGlzIG5vdCBpc3N1ZWQgeWV0ARRrZXlTdGFrZWREdWNrQnlPd25lcgEJb3duZXJBZGRyCQCsAgICEnN0YWtlZER1Y2tCeU93bmVyXwUJb3duZXJBZGRyARRrZXlTdGFrZWRORlRzQnlPd25lcgEJb3duZXJBZGRyCQCsAgICEnN0YWtlZE5GVHNCeU93bmVyXwUJb3duZXJBZGRyARZrZXlBZGRyZXNzVG9DdXN0b21OYW1lAQRhZGRyCQCsAgICGGFjY291bnRDdXN0b21OYW1lQnlBZGRyXwUEYWRkcgEPa2V5QWRkcmVzc1JlZkJ5AQRhZGRyCQCsAgICCWFjY1JlZkJ5XwUEYWRkcgETa2V5QWRkcmVzc1JlZmVycmFscwEEYWRkcgkArAICAg1hY2NSZWZlcnJhbHNfBQRhZGRyAQprZXlVc2VyQmV0AQRhZGRyCQCsAgICCHVzZXJCZXRfBQRhZGRyARJrZXlVc2VyV2Vla1RpY2tldHMCBGFkZHIEd2VlawkArAICCQCsAgIJAKwCAgIQdXNlcldlZWtUaWNrZXRzXwUEYWRkcgIBXwkApAMBBQR3ZWVrARNrZXlUb3RhbFdlZWtUaWNrZXRzAQR3ZWVrCQCsAgICEXRvdGFsV2Vla1RpY2tldHNfCQCkAwEFBHdlZWsBCndpbm5pbmdCZXQBA2RheQQBYgkAaAIFA2RheQUKREFZX0JMT0NLUwQBaAMJAGYCBQFiBQpWUkZfT0ZGU0VUBQFiCQBkAgUBYgUKVlJGX09GRlNFVAkAagIJALEJAQkBBXZhbHVlAQgJAQV2YWx1ZQEJAO0HAQUBaAN2cmYABAESa2V5U2VsbGVyQnlBc3NldElkAQdhc3NldElkCQCsAgICB3NlbGxlcl8FB2Fzc2V0SWQBEWtleVByaWNlQnlBc3NldElkAQdhc3NldElkCQCsAgICBnByaWNlXwUHYXNzZXRJZAETa2V5QXNzZXRJZHNCeVNlbGxlcgEEYWRkcgkArAICAglhc3NldElkc18FBGFkZHIAC2l4V2xnQW1vdW50AAAACGl4V2xnV2xnAAEACml4V2xnUHJpY2UAAgAKaXhXbGdGdW5kcwADAA1peFdsZ0FjdGl2aXR5AAQAC2l4V2xnQWNyZXMyAAUADml4V2xnQXJiaXRyYWdlAAYACWl4V2xnUG9vbAAHAA5peFdsZ0lzc3VlVGltZQAIABRpeFdsZ0xhc3RUZWFtQWN0VGltZQAJAA5peFdsZ1RlYW1Ub3RhbAAKAA9peFdsZ1RlYW1BbUxlZnQACwATaXhXbGdUZWFtQW1BdmFpbE5vdwAMAA9peFdsZ1RlYW1XbGdvbGQADQANaXhXbGdBY3RUb3RhbAAOAA5peFdsZ0FjdEFtTGVmdAAPABJpeFdsZ0FjdEFtQXZhaWxOb3cAEAAOaXhXbGdBY3RXbGdvbGQAEQAOaXhXbGdDdXJQZXJpb2QAEgAQaXhXbGdBbUxlZnRUb3RhbAATABppeFdsZ0N1clBlcmlvZERpc3RyaWJ1dGlvbgAUABFpeFdsZ0xhc3RVc2VyVGltZQAVABVpeFdsZ0ludmVzdEZ1bmRBbW91bnQAFgATaXhXbGdVc2VyQW1BdmFpbE5vdwAXABBpeFdsZ0VmZlVzZXJUaW1lABgAEml4V2xnSXNzdWUxMEFtb3VudAAZABtpeFdsZ01hcmtldGluZ0lzc3VlMTBBbW91bnQAGgAWaXhXbGdUZWFtSXNzdWUxMEFtb3VudAAbAA9peFdsZ1VzZXIxMHBhcnQAHAAQaXhXbGdJc3N1ZTEwVGltZQAdABZpeFdsZ1RvdGFsRmFybWluZ1Bvd2VyAB4AFWl4V2xnQWNyZXNTdGFrZWRUb3RhbAAfABNpeFdsZ05mdFRvdGFsSXNzdWVkACAAE2l4V2xnTmZ0VG90YWxCdXJuZWQAIQAVaXhXbGdXbE5mdFRvdGFsU3Rha2VkACIAFGl4V2xnV2xOZnRVc2VyU3Rha2VkACMBDGFzVHVwbGU0SW50cwEDdmFsBAckbWF0Y2gwBQN2YWwDCQABAgUHJG1hdGNoMAIUKEludCwgSW50LCBJbnQsIEludCkEAXQFByRtYXRjaDAFAXQJAAIBAiZmYWlsIHRvIGNhc3QgaW50byAoSW50LCBJbnQsIEludCwgSW50KQEMYXNUdXBsZTNJbnRzAQN2YWwEByRtYXRjaDAFA3ZhbAMJAAECBQckbWF0Y2gwAg8oSW50LCBJbnQsIEludCkEAXQFByRtYXRjaDAFAXQJAAIBAiFmYWlsIHRvIGNhc3QgaW50byAoSW50LCBJbnQsIEludCkBDGFzVHVwbGUySW50cwEDdmFsBAckbWF0Y2gwBQN2YWwDCQABAgUHJG1hdGNoMAIKKEludCwgSW50KQQBdAUHJG1hdGNoMAUBdAkAAgECHGZhaWwgdG8gY2FzdCBpbnRvIChJbnQsIEludCkAA002XwDAhD0AA004XwCAwtcvAApURUFNX1NIQVJFAMCaDAAOQUNUSVZJVFlfU0hBUkUAoI0GAAxQTEFZRVJfU0hBUkUAgLUYAAtZRUFSX01JTExJUwCAhuvHdQAGREFZX01TAIC4mSkAB0lTU1VFMTAAgJTr3AMAD1BMQVlFUlMxMF9TSEFSRQCA6jAAEU1BUktFVElORzEwX1NIQVJFAKCNBgAMVEVBTTEwX1NIQVJFAKCNBgARTkVXX1NUQUtJTkdfU1RBUlQAgPO4wrEyAAp0ZWFtQWRyS2V5Agh0ZWFtQWRkcgAObGFzdFRlYW1UaW1LZXkCFGxhc3RDbGFpbWVkVGltZV90ZWFtAA50ZWFtQW10TGVmdEtleQIOdGVhbUFtb3VudExlZnQAFGxhc3RBY3Rpdml0aWVzVGltS2V5AhpsYXN0Q2xhaW1lZFRpbWVfYWN0aXZpdGllcwANYWN0QW10TGVmdEtleQIUYWN0aXZpdGllc0Ftb3VudExlZnQAEXN0YWtlcnNBbXRMZWZ0S2V5AhFzdGFrZXJzQW1vdW50TGVmdAEWa2V5TGFzdENsYWltVGltZUJ5VXNlcgEEYWRkcgkArAICAhRsYXN0Q2xhaW1lZFRpbWVVc2VyXwUEYWRkcgENZGlzdHJCeVBlcmlvZAIMaXNzdWVkQW1vdW50BnBlcmlvZAkAawMFDGlzc3VlZEFtb3VudAkAaAIFDFBMQVlFUl9TSEFSRQkAZAIFBnBlcmlvZAABCQBoAgAGBQNNNl8AEXdsZ0lzc3VlMTBUaW1lS2V5Ag93bGdfaXNzdWUxMFRpbWUADndsZ0lzc3VlVGltS2V5Ag13bGdfaXNzdWVUaW1lAA93bGdJc3N1ZWRBbXRLZXkCEHdsZ19pc3N1ZWRBbW91bnQADnpiSXNzdWVkQW10S2V5AhJ6YmlsbF9pc3N1ZWRBbW91bnQBF2tleUFjcmVzU3Rha2VkQW10QnlVc2VyAQRhZGRyCQCsAgICGGFjcmVzU3Rha2VkQW1vdW50QnlVc2VyXwUEYWRkcgASYWNyZXNTdGFrZFRvdGFsS2V5AhZhY3Jlc1N0YWtlZEFtb3VudFRvdGFsABR0b3RhbEZhcm1pbmdQb3dlcktleQIRdG90YWxGYXJtaW5nUG93ZXIACWRhcHAyUmVzdAAAAAxkYXBwMlN0YWtpbmcAAQAIZGFwcDJXbGcAAgALZGFwcDJQdXp6bGUAAwAPZGFwcDJJbnZlc3RGdW5kAAQAEWtleU5mdFRvdGFsSXNzdWVkAg5uZnRUb3RhbElzc3VlZAARa2V5TmZ0VG90YWxCdXJuZWQCDm5mdFRvdGFsQnVybmVkABNrZXlXbE5mdFRvdGFsU3Rha2VkAhBXbE5mdFRvdGFsU3Rha2VkARJrZXlVc2VyV2xOZnROdW1iZXIBBGFkZHIJAKwCAgIQdXNlcldsTmZ0TnVtYmVyXwUEYWRkcgEQa2V5VXNlckZ1bGxCb251cwEEYWRkcgkArAICAg51c2VyRnVsbEJvbnVzXwUEYWRkcgAKbGV2ZWxBY3JlcwkAzAgCAAAJAMwIAgAKCQDMCAIAFAkAzAgCACgJAMwIAgBQCQDMCAIAlgEJAMwIAgD6AQkAzAgCAJADCQDMCAIAvAUJAMwIAgDoBwUDbmlsAQ9nZXRMZXZlbEJ5QWNyZXMBBWFjcmVzBANhY3IJAGkCCQBkAgUFYWNyZXMA/8HXLwUDTThfCgEHY2hlY2tlcgIDYWNjBGl0ZW0DCQBnAgUEaXRlbQUDYWNyBQNhY2MJAGQCBQNhY2MAAQoAAiRsBQpsZXZlbEFjcmVzCgACJHMJAJADAQUCJGwKAAUkYWNjMAAACgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQdjaGVja2VyAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxMAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKARZnZXRGYXJtaW5nUG93ZXJCeUFjcmVzAQVhY3JlcwkAaAIJAGgCBQVhY3JlcwAUCQBkAgkBD2dldExldmVsQnlBY3JlcwEFBWFjcmVzAAQBHmdldEZhcm1pbmdQb3dlckJ5QWNyZXNBbmRCb251cwIFYWNyZXMGYm9udXM2BApub3RCb251c2VkCQEWZ2V0RmFybWluZ1Bvd2VyQnlBY3JlcwEFBWFjcmVzCQCUCgIJAGsDBQpub3RCb251c2VkCQBkAgUDTTZfBQZib251czYFA002XwUKbm90Qm9udXNlZAEQZ2V0RmFybWluZ1Bvd2VycwISdXNlckFkZHJTdHJPckVtcHR5DmFjcmVzMkNvbnRyYWN0BAd0b3RhbEZQCQELdmFsdWVPckVsc2UCCQCaCAIFDmFjcmVzMkNvbnRyYWN0BRR0b3RhbEZhcm1pbmdQb3dlcktleQAABAl1c2VyQWNyZXMJAQt2YWx1ZU9yRWxzZQIJAJoIAgUOYWNyZXMyQ29udHJhY3QJARdrZXlBY3Jlc1N0YWtlZEFtdEJ5VXNlcgEFEnVzZXJBZGRyU3RyT3JFbXB0eQAABAl1c2VyQm9udXMJAQt2YWx1ZU9yRWxzZQIJAJoIAgUOYWNyZXMyQ29udHJhY3QJARBrZXlVc2VyRnVsbEJvbnVzAQUSdXNlckFkZHJTdHJPckVtcHR5AAAECCR0MDc5MTE5CQEeZ2V0RmFybWluZ1Bvd2VyQnlBY3Jlc0FuZEJvbnVzAgUJdXNlckFjcmVzBQl1c2VyQm9udXMEDXVzZXJGUGJvbnVzZWQIBQgkdDA3OTExOQJfMQQQdXNlckZQbm90Qm9udXNlZAgFCCR0MDc5MTE5Al8yCQDMCAIFB3RvdGFsRlAJAMwIAgUNdXNlckZQYm9udXNlZAkAzAgCBRB1c2VyRlBub3RCb251c2VkCQDMCAIFCXVzZXJCb251cwUDbmlsAAppZHhUb3RhbEZQAAAAEGlkeFVzZXJGUGJvbnVzZWQAAQATaWR4VXNlckZQbm90Qm9udXNlZAACAQxnZXRXbGdTdGF0czIEC3VzZXJBZGRyT3B0CWNvbnRyYWN0cwZ1c2R0SWQVdXNkdEJhbGFuY2VDb3JyZWN0aW9uBAxpc3N1ZWRBbW91bnQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCCQCRAwIFCWNvbnRyYWN0cwUIZGFwcDJXbGcFD3dsZ0lzc3VlZEFtdEtleQIYV0xHT0xEIGlzIG5vdCBpc3N1ZWQgeWV0BAdyZXN0VXNkCQDwBwIJAJEDAgUJY29udHJhY3RzBQlkYXBwMlJlc3QFBnVzZHRJZAQGd2xnVXNkCQBlAgkA8AcCCQCRAwIFCWNvbnRyYWN0cwUIZGFwcDJXbGcFBnVzZHRJZAUVdXNkdEJhbGFuY2VDb3JyZWN0aW9uBAlwdXp6bGVVc2QJAPAHAgkAkQMCBQljb250cmFjdHMFC2RhcHAyUHV6emxlBQZ1c2R0SWQECWFjcmVzMlVzZAkA8AcCCQCRAwIFCWNvbnRyYWN0cwUMZGFwcDJTdGFraW5nBQZ1c2R0SWQEEWludmVzdEZuZENvbnRyYWN0CQCRAwIFCWNvbnRyYWN0cwUPZGFwcDJJbnZlc3RGdW5kBA9pbnZlc3RGdW5kVG90YWwJAGQCCQDwBwIFEWludmVzdEZuZENvbnRyYWN0BQZ1c2R0SWQJAQt2YWx1ZU9yRWxzZQIJAJoIAgURaW52ZXN0Rm5kQ29udHJhY3QFDnpiSXNzdWVkQW10S2V5AAAEDXRvdGFsRnVuZHNVc2QJAGQCCQBkAgUJYWNyZXMyVXNkBQZ3bGdVc2QFD2ludmVzdEZ1bmRUb3RhbAQFd2xnSWQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnAgCCQCRAwIFCWNvbnRyYWN0cwUIZGFwcDJXbGcCC3dsZ19hc3NldElkAhNOb3QgaW5pdGlhbGl6ZWQgeWV0BANub3cIBQlsYXN0QmxvY2sJdGltZXN0YW1wBAlpc3N1ZVRpbWUJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCCQCRAwIFCWNvbnRyYWN0cwUIZGFwcDJXbGcFDndsZ0lzc3VlVGltS2V5Ag9Ob3QgaW5pdGlhbGl6ZWQEBndsZ1dsZwkA8AcCCQCRAwIFCWNvbnRyYWN0cwUIZGFwcDJXbGcFBXdsZ0lkBAl0ZWFtVG90YWwJAGsDBQxpc3N1ZWRBbW91bnQFClRFQU1fU0hBUkUFA002XwQOdGVhbUFtb3VudExlZnQJAQt2YWx1ZU9yRWxzZQIJAJoIAgkAkQMCBQljb250cmFjdHMFCGRhcHAyV2xnBQ50ZWFtQW10TGVmdEtleQUJdGVhbVRvdGFsBAxsYXN0VGVhbVRpbWUJAQt2YWx1ZU9yRWxzZQIJAJoIAgkAkQMCBQljb250cmFjdHMFCGRhcHAyV2xnBQ5sYXN0VGVhbVRpbUtleQUJaXNzdWVUaW1lBAh0ZWFtQWRkcgkBEUBleHRyTmF0aXZlKDEwNjIpAQkBBXZhbHVlAQkAnQgCCQCRAwIFCWNvbnRyYWN0cwUIZGFwcDJXbGcFCnRlYW1BZHJLZXkEFnRlYW1BbW91bnRBdmFpbGFibGVOb3cJAJcDAQkAzAgCCQBrAwUJdGVhbVRvdGFsCQBlAgUDbm93BQxsYXN0VGVhbVRpbWUJAGgCAAMFC1lFQVJfTUlMTElTCQDMCAIFDnRlYW1BbW91bnRMZWZ0BQNuaWwECnRlYW1XbGdvbGQJAPAHAgUIdGVhbUFkZHIFBXdsZ0lkBAhhY3RUb3RhbAkAawMFDGlzc3VlZEFtb3VudAUOQUNUSVZJVFlfU0hBUkUFA002XwQNYWN0QW1vdW50TGVmdAkBC3ZhbHVlT3JFbHNlAgkAmggCCQCRAwIFCWNvbnRyYWN0cwUIZGFwcDJXbGcFDWFjdEFtdExlZnRLZXkFCGFjdFRvdGFsBBJsYXN0QWN0aXZpdGllc1RpbWUJAQt2YWx1ZU9yRWxzZQIJAJoIAgkAkQMCBQljb250cmFjdHMFCGRhcHAyV2xnBRRsYXN0QWN0aXZpdGllc1RpbUtleQUJaXNzdWVUaW1lBBVhY3RBbW91bnRBdmFpbGFibGVOb3cJAJcDAQkAzAgCCQBrAwUIYWN0VG90YWwJAGUCBQNub3cFEmxhc3RBY3Rpdml0aWVzVGltZQkAaAIAAwULWUVBUl9NSUxMSVMJAMwIAgUNYWN0QW1vdW50TGVmdAUDbmlsBAlhY3RXbGdvbGQJAPAHAgkAkQMCBQljb250cmFjdHMFCWRhcHAyUmVzdAUFd2xnSWQEDGxhc3RVc2VyVGltZQkBC3ZhbHVlT3JFbHNlAgkAmggCCQCRAwIFCWNvbnRyYWN0cwUIZGFwcDJXbGcJARZrZXlMYXN0Q2xhaW1UaW1lQnlVc2VyAQULdXNlckFkZHJPcHQFCWlzc3VlVGltZQQObGFzdFVzZXJQZXJpb2QJAGkCCQBlAgUMbGFzdFVzZXJUaW1lBQlpc3N1ZVRpbWUFC1lFQVJfTUlMTElTBApub3dMaW1pdGVkCQCXAwEJAMwIAgUDbm93CQDMCAIJAGQCBQlpc3N1ZVRpbWUJAGgCAAMFC1lFQVJfTUlMTElTBQNuaWwECWN1clBlcmlvZAkAlwMBCQDMCAIJAGkCCQBlAgUDbm93BQlpc3N1ZVRpbWUFC1lFQVJfTUlMTElTCQDMCAIAAgUDbmlsBANlZmYJARBnZXRGYXJtaW5nUG93ZXJzAgULdXNlckFkZHJPcHQJAJEDAgUJY29udHJhY3RzBQxkYXBwMlN0YWtpbmcEFWN1clBlcmlvZERpc3RyaWJ1dGlvbgkBDWRpc3RyQnlQZXJpb2QCBQxpc3N1ZWRBbW91bnQFCWN1clBlcmlvZAQNcHJldlBlcmlvZEVuZAkAZAIFCWlzc3VlVGltZQkAaAIFC1lFQVJfTUlMTElTBQljdXJQZXJpb2QEEXByZXZQcmV2UGVyaW9kRW5kCQBkAgUJaXNzdWVUaW1lCQBoAgULWUVBUl9NSUxMSVMJAGUCBQljdXJQZXJpb2QAAQQCYTAJAGsDBRVjdXJQZXJpb2REaXN0cmlidXRpb24JAGUCBQpub3dMaW1pdGVkBQxsYXN0VXNlclRpbWUFC1lFQVJfTUlMTElTBA11c2VyQXZhaWxhYmxlAwkAAAIFDmxhc3RVc2VyUGVyaW9kBQljdXJQZXJpb2QFAmEwAwkAAAIFDmxhc3RVc2VyUGVyaW9kCQBlAgUJY3VyUGVyaW9kAAEEAmExCQBrAwkBDWRpc3RyQnlQZXJpb2QCBQxpc3N1ZWRBbW91bnQJAGUCBQljdXJQZXJpb2QAAQkAZQIFDXByZXZQZXJpb2RFbmQFDGxhc3RVc2VyVGltZQULWUVBUl9NSUxMSVMJAGQCBQJhMQUCYTAEAmEyCQBrAwkBDWRpc3RyQnlQZXJpb2QCBQxpc3N1ZWRBbW91bnQJAGUCBQljdXJQZXJpb2QAAgkAZQIFEXByZXZQcmV2UGVyaW9kRW5kBQxsYXN0VXNlclRpbWUFC1lFQVJfTUlMTElTBAJhMQkBDWRpc3RyQnlQZXJpb2QCBQxpc3N1ZWRBbW91bnQJAGUCBQljdXJQZXJpb2QAAQkAZAIJAGQCBQJhMgUCYTEFAmEwBA9hbW91bnRMZWZ0VG90YWwJAQt2YWx1ZU9yRWxzZQIJAJoIAgkAkQMCBQljb250cmFjdHMFCGRhcHAyV2xnBRFzdGFrZXJzQW10TGVmdEtleQAABAp1c2VyQW1vdW50AwkBAiE9AgkAkQMCBQNlZmYFCmlkeFRvdGFsRlAAAAkAawMFDXVzZXJBdmFpbGFibGUJAJEDAgUDZWZmBRBpZHhVc2VyRlBib251c2VkCQCRAwIFA2VmZgUKaWR4VG90YWxGUAAABA9sYXN0SXNzdWUxMFRpbWUJAQt2YWx1ZU9yRWxzZQIJAJoIAgkAkQMCBQljb250cmFjdHMFCGRhcHAyV2xnBRF3bGdJc3N1ZTEwVGltZUtleQURTkVXX1NUQUtJTkdfU1RBUlQEDWlzc3VlMTBBbW91bnQJAGsDBQdJU1NVRTEwCQCWAwEJAMwIAgkAZQIFA25vdwUPbGFzdElzc3VlMTBUaW1lCQDMCAIAAAUDbmlsBQZEQVlfTVMEFm1hcmtldGluZ0lzc3VlMTBBbW91bnQJAGsDBQ1pc3N1ZTEwQW1vdW50BRFNQVJLRVRJTkcxMF9TSEFSRQUDTTZfBBF0ZWFtSXNzdWUxMEFtb3VudAkAawMFDWlzc3VlMTBBbW91bnQFDFRFQU0xMF9TSEFSRQUDTTZfBA51c2VyMTBJbnRlcnZhbAkAlgMBCQDMCAIJAGUCBQNub3cJAJYDAQkAzAgCBRFORVdfU1RBS0lOR19TVEFSVAkAzAgCBQxsYXN0VXNlclRpbWUFA25pbAkAzAgCAAAFA25pbAQKdXNlcjEwcGFydAMJAQIhPQIJAJEDAgUDZWZmBQppZHhUb3RhbEZQAAAJAGsDCQBrAwkAawMFB0lTU1VFMTAFDnVzZXIxMEludGVydmFsBQZEQVlfTVMJAJEDAgUDZWZmBRBpZHhVc2VyRlBib251c2VkCQCRAwIFA2VmZgUKaWR4VG90YWxGUAUPUExBWUVSUzEwX1NIQVJFBQNNNl8AAAQObmV3SXNzdWUxMFRpbWUJAJYDAQkAzAgCBRFORVdfU1RBS0lOR19TVEFSVAkAzAgCBQNub3cFA25pbAQQYWNyZXNTdGFrZWRUb3RhbAkBC3ZhbHVlT3JFbHNlAgkAmggCCQCRAwIFCWNvbnRyYWN0cwUMZGFwcDJTdGFraW5nBRJhY3Jlc1N0YWtkVG90YWxLZXkAAAQObmZ0VG90YWxJc3N1ZWQJAQt2YWx1ZU9yRWxzZQIJAJoIAgkAkQMCBQljb250cmFjdHMFDGRhcHAyU3Rha2luZwURa2V5TmZ0VG90YWxJc3N1ZWQAAAQObmZ0VG90YWxCdXJuZWQJAQt2YWx1ZU9yRWxzZQIJAJoIAgkAkQMCBQljb250cmFjdHMFDGRhcHAyU3Rha2luZwURa2V5TmZ0VG90YWxCdXJuZWQAAAQQd2xOZnRUb3RhbFN0YWtlZAkBC3ZhbHVlT3JFbHNlAgkAmggCCQCRAwIFCWNvbnRyYWN0cwUMZGFwcDJTdGFraW5nBRNrZXlXbE5mdFRvdGFsU3Rha2VkAAAED3dsTmZ0VXNlclN0YWtlZAkBC3ZhbHVlT3JFbHNlAgkAmggCCQCRAwIFCWNvbnRyYWN0cwUMZGFwcDJTdGFraW5nCQESa2V5VXNlcldsTmZ0TnVtYmVyAQkBC3ZhbHVlT3JFbHNlAgULdXNlckFkZHJPcHQCAAAACQDMCAIFDGlzc3VlZEFtb3VudAkAzAgCBQZ3bGdXbGcJAMwIAgkAawMFDXRvdGFsRnVuZHNVc2QFA004XwUMaXNzdWVkQW1vdW50CQDMCAIFDXRvdGFsRnVuZHNVc2QJAMwIAgUHcmVzdFVzZAkAzAgCBQlhY3JlczJVc2QJAMwIAgUGd2xnVXNkCQDMCAIFCXB1enpsZVVzZAkAzAgCBQlpc3N1ZVRpbWUJAMwIAgUMbGFzdFRlYW1UaW1lCQDMCAIFCXRlYW1Ub3RhbAkAzAgCBQ50ZWFtQW1vdW50TGVmdAkAzAgCBRZ0ZWFtQW1vdW50QXZhaWxhYmxlTm93CQDMCAIFCnRlYW1XbGdvbGQJAMwIAgUIYWN0VG90YWwJAMwIAgUNYWN0QW1vdW50TGVmdAkAzAgCBRVhY3RBbW91bnRBdmFpbGFibGVOb3cJAMwIAgUJYWN0V2xnb2xkCQDMCAIFCWN1clBlcmlvZAkAzAgCBQ9hbW91bnRMZWZ0VG90YWwJAMwIAgUVY3VyUGVyaW9kRGlzdHJpYnV0aW9uCQDMCAIFDGxhc3RVc2VyVGltZQkAzAgCBQ9pbnZlc3RGdW5kVG90YWwJAMwIAgUKdXNlckFtb3VudAkAzAgCBQpub3dMaW1pdGVkCQDMCAIFDWlzc3VlMTBBbW91bnQJAMwIAgUWbWFya2V0aW5nSXNzdWUxMEFtb3VudAkAzAgCBRF0ZWFtSXNzdWUxMEFtb3VudAkAzAgCBQp1c2VyMTBwYXJ0CQDMCAIFDm5ld0lzc3VlMTBUaW1lCQDMCAIJAJEDAgUDZWZmBQppZHhUb3RhbEZQCQDMCAIFEGFjcmVzU3Rha2VkVG90YWwJAMwIAgUObmZ0VG90YWxJc3N1ZWQJAMwIAgUObmZ0VG90YWxCdXJuZWQJAMwIAgUQd2xOZnRUb3RhbFN0YWtlZAkAzAgCBQ93bE5mdFVzZXJTdGFrZWQFA25pbAEOd2FsbGV0SW50ZXJuYWwBDnVzZXJBZGRyZXNzT3B0BARhZGRyCQCmCAEFDnVzZXJBZGRyZXNzT3B0BAdiYWxhbmNlAwkBCWlzRGVmaW5lZAEFBGFkZHIJAO8HAQkBBXZhbHVlAQUEYWRkcgkBDkJhbGFuY2VEZXRhaWxzBAAAAAAAAAAABAt1c2R0QmFsYW5jZQMJAQlpc0RlZmluZWQBBQRhZGRyCQDwBwIJAQV2YWx1ZQEFBGFkZHIFC3VzZHRBc3NldElkAAAEDXdsZ29sZEJhbGFuY2UDCQEJaXNEZWZpbmVkAQUEYWRkcgkA8AcCCQEFdmFsdWUBBQRhZGRyBQp3bGdBc3NldElkAAAECmN1c3RvbU5hbWUJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUOYWNyZXMyQ29udHJhY3QJARZrZXlBZGRyZXNzVG9DdXN0b21OYW1lAQUOdXNlckFkZHJlc3NPcHQFDnVzZXJBZGRyZXNzT3B0BAhyZWZCeUtleQkBD2tleUFkZHJlc3NSZWZCeQEFDnVzZXJBZGRyZXNzT3B0BAVyZWZCeQkAnQgCBQ5hY3JlczJDb250cmFjdAUIcmVmQnlLZXkEBHJlZnMJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUOYWNyZXMyQ29udHJhY3QJARNrZXlBZGRyZXNzUmVmZXJyYWxzAQUOdXNlckFkZHJlc3NPcHQCAAQIbGFzdFR4SWQJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUOYWNyZXMyQ29udHJhY3QJARVrZXlMYXN0V2Vla1R4SWRCeVVzZXIBBQ51c2VyQWRkcmVzc09wdAIABAdjdXJUeElkCQELdmFsdWVPckVsc2UCCQCdCAIFDmFjcmVzMkNvbnRyYWN0CQEUa2V5Q3VyV2Vla1R4SWRCeVVzZXIBBQ51c2VyQWRkcmVzc09wdAIABAxhY3Jlc0JhbGFuY2UDCQEJaXNEZWZpbmVkAQUEYWRkcgkA8AcCCQEFdmFsdWUBBQRhZGRyBQxhY3Jlc0Fzc2V0SWQAAAQLc3Rha2VkQWNyZXMJAQt2YWx1ZU9yRWxzZQIJAJoIAgUOYWNyZXMyQ29udHJhY3QJARdrZXlBY3Jlc1N0YWtlZEFtdEJ5VXNlcgEFDnVzZXJBZGRyZXNzT3B0AAAEA2x2bAkBD2dldExldmVsQnlBY3JlcwEFC3N0YWtlZEFjcmVzBAJmcAkBEGdldEZhcm1pbmdQb3dlcnMCBQ51c2VyQWRkcmVzc09wdAUOYWNyZXMyQ29udHJhY3QEDmFjcmVzVG9OZXh0THZsAwkAZwIFA2x2bAkAkAMBBQpsZXZlbEFjcmVzAAAJAGUCCQBkAgkAaAIJAJEDAgUKbGV2ZWxBY3JlcwUDbHZsBQNNOF8AAQULc3Rha2VkQWNyZXMEBG5mdHMJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUOYWNyZXMyQ29udHJhY3QJARRrZXlTdGFrZWRORlRzQnlPd25lcgEFDnVzZXJBZGRyZXNzT3B0AgAEBWJvbnVzCQELdmFsdWVPckVsc2UCCQCaCAIFDmFjcmVzMkNvbnRyYWN0CQEQa2V5VXNlckZ1bGxCb251cwEFDnVzZXJBZGRyZXNzT3B0AAAJAMwIAgkArAICAhIlcyVzX19jdXN0b21OYW1lX18FCmN1c3RvbU5hbWUJAMwIAgkArAICAhIlcyVzX19yZWZlcnJlZEJ5X18JAQt2YWx1ZU9yRWxzZQIFBXJlZkJ5AgAJAMwIAgkArAICAhElcyVzX19yZWZlcnJhbHNfXwUEcmVmcwkAzAgCCQCsAgICFCVzJXNfX2xhc3RXZWVrVHhJZF9fBQhsYXN0VHhJZAkAzAgCCQCsAgICEyVzJXNfX2N1cldlZWtUeElkX18FCGxhc3RUeElkCQDMCAIJAKwCAgIUJXMlZF9fd2F2ZXNCYWxhbmNlX18JAKQDAQgFB2JhbGFuY2UJYXZhaWxhYmxlCQDMCAIJAKwCAgITJXMlZF9fdXNkdEJhbGFuY2VfXwkApAMBBQt1c2R0QmFsYW5jZQkAzAgCCQCsAgICFSVzJWRfX3dsZ29sZEJhbGFuY2VfXwkApAMBBQ13bGdvbGRCYWxhbmNlCQDMCAIJAKwCAgIUJXMlZF9fYWNyZXNCYWxhbmNlX18JAKQDAQUMYWNyZXNCYWxhbmNlCQDMCAIJAKwCAgITJXMlZF9fc3Rha2VkQWNyZXNfXwkApAMBBQtzdGFrZWRBY3JlcwkAzAgCCQCsAgICEiVzJWRfX2N1cnJlbnRMdmxfXwkApAMBBQNsdmwJAMwIAgkArAICAhYlcyVkX19hY3Jlc1RvTmV4dEx2bF9fCQCkAwEFDmFjcmVzVG9OZXh0THZsCQDMCAIJAKwCAgIQJXMlc19fdXNlck5GVHNfXwUEbmZ0cwkAzAgCCQCsAgICESVzJWRfX3VzZXJCb251c19fCQCkAwEFBWJvbnVzCQDMCAIJAKwCAgIcJXMlZF9fdXNlckJhc2VGYXJtaW5nUG93ZXJfXwkApAMBCQCRAwIFAmZwBRNpZHhVc2VyRlBub3RCb251c2VkCQDMCAIJAKwCAgIYJXMlZF9fdXNlckZhcm1pbmdQb3dlcl9fCQCkAwEJAJEDAgUCZnAFEGlkeFVzZXJGUGJvbnVzZWQJAMwIAgkArAICAhklcyVkX190b3RhbEZhcm1pbmdQb3dlcl9fCQCkAwEJAJEDAgUCZnAFCmlkeFRvdGFsRlAFA25pbAcBaQENY29uc3RydWN0b3JWMQEJY29udHJhY3RzAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQIScGVybWlzc2lvbnMgZGVuaWVkCgEKZGVzY3JpcHRvcgIDYWNjC2lnbm9yZWRJdGVtCQCsAgIFA2FjYwICJXMEBWRlc2NyCgACJGwFCWNvbnRyYWN0cwoAAiRzCQCQAwEFAiRsCgAFJGFjYzACAAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEKZGVzY3JpcHRvcgIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMTAJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgkAzAgCCQELU3RyaW5nRW50cnkCCQEKa2V5UmVzdENmZwAJALkJAgkAzAgCBQVkZXNjcgUJY29udHJhY3RzBQNTRVAJAMwIAgkBC1N0cmluZ0VudHJ5AgkBD2tleVJlc3QyQWRkcmVzcwAJAKUIAQUEdGhpcwUDbmlsAWkBEndhbGxldEluZm9SRUFET05MWQEOdXNlckFkZHJlc3NPcHQJAJQKAgUDbmlsCQEOd2FsbGV0SW50ZXJuYWwBBQ51c2VyQWRkcmVzc09wdAFpARZjb252ZXJzaW9uSW5mb1JFQURPTkxZAQ51c2VyQWRkcmVzc09wdAQPb2xkQWNyZXNBZGRyZXNzCQERQGV4dHJOYXRpdmUoMTA2MikBCQERQGV4dHJOYXRpdmUoMTA1MykCBQ5hY3JlczJDb250cmFjdAUTb2xkQWNyZXNDb250cmFjdEtleQQLJHQwNTA1MTUxNzMJAQxhc1R1cGxlMkludHMBCQD8BwQFD29sZEFjcmVzQWRkcmVzcwIXdW5zdGFrZUFsbEFjcmVzUkVBRE9OTFkJAMwIAgUOdXNlckFkZHJlc3NPcHQFA25pbAUDbmlsBA11bnN0YWtlZEFjcmVzCAULJHQwNTA1MTUxNzMCXzEEDGNsYWltZWRBY3JlcwgFCyR0MDUwNTE1MTczAl8yBAskdDA1MTc2NTMyNQkBDGFzVHVwbGU0SW50cwEJAPwHBAUOYWNyZXMyQ29udHJhY3QCFHVuc3Rha2VMYW5kc1JFQURPTkxZCQDMCAIFDnVzZXJBZGRyZXNzT3B0BQNuaWwFA25pbAQPYWNyZXNGcm9tUGllY2VzCAULJHQwNTE3NjUzMjUCXzEEDGFjcmVzRnJvbVJlcwgFCyR0MDUxNzY1MzI1Al8yBAxhY3Jlc0Zyb21NYXQIBQskdDA1MTc2NTMyNQJfMwQNYWNyZXNGcm9tUHJvZAgFCyR0MDUxNzY1MzI1Al80BBFvbGRTdGFraW5nQWRkcmVzcwkBEUBleHRyTmF0aXZlKDEwNjIpAQUVb2xkU3Rha2luZ0NvbnRyYWN0U3RyBAtkdWNrQXNzZXRJZAkBC3ZhbHVlT3JFbHNlAgkAnQgCBRFvbGRTdGFraW5nQWRkcmVzcwkBFGtleVN0YWtlZER1Y2tCeU93bmVyAQUOdXNlckFkZHJlc3NPcHQCAAQLJHQwNTUwMzU3MjUDCQECIT0CBQtkdWNrQXNzZXRJZAIACQEMYXNUdXBsZTNJbnRzAQkA/AcEBRFvbGRTdGFraW5nQWRkcmVzcwITdW5zdGFrZUR1Y2tSRUFET05MWQkAzAgCBQtkdWNrQXNzZXRJZAkAzAgCBQ51c2VyQWRkcmVzc09wdAUDbmlsBQNuaWwJAJUKAwAAAAAAAAQQYWNyZXNGcm9tRHVja1JlcwgFCyR0MDU1MDM1NzI1Al8xBBBhY3Jlc0Zyb21EdWNrTWF0CAULJHQwNTUwMzU3MjUCXzIEEWFjcmVzRnJvbUR1Y2tQcm9kCAULJHQwNTUwMzU3MjUCXzMJAJQKAgUDbmlsCQDMCAIJAKwCAgIVJXMlZF9fdW5zdGFrZWRBY3Jlc19fCQCkAwEFDXVuc3Rha2VkQWNyZXMJAMwIAgkArAICAhQlcyVkX19jbGFpbWVkQWNyZXNfXwkApAMBBQxjbGFpbWVkQWNyZXMJAMwIAgkArAICAhclcyVkX19hY3Jlc0Zyb21QaWVjZXNfXwkApAMBBQ9hY3Jlc0Zyb21QaWVjZXMJAMwIAgkArAICAhQlcyVkX19hY3Jlc0Zyb21SZXNfXwkApAMBBQxhY3Jlc0Zyb21SZXMJAMwIAgkArAICAhQlcyVkX19hY3Jlc0Zyb21NYXRfXwkApAMBBQxhY3Jlc0Zyb21NYXQJAMwIAgkArAICAhUlcyVkX19hY3Jlc0Zyb21Qcm9kX18JAKQDAQUNYWNyZXNGcm9tUHJvZAkAzAgCCQCsAgICGCVzJWRfX2FjcmVzRnJvbUR1Y2tSZXNfXwkApAMBBRBhY3Jlc0Zyb21EdWNrUmVzCQDMCAIJAKwCAgIYJXMlZF9fYWNyZXNGcm9tRHVja01hdF9fCQCkAwEFEGFjcmVzRnJvbUR1Y2tNYXQJAMwIAgkArAICAhklcyVkX19hY3Jlc0Zyb21EdWNrUHJvZF9fCQCkAwEFEWFjcmVzRnJvbUR1Y2tQcm9kBQNuaWwBaQEQd2xnU3RhdHNSRUFET05MWQELdXNlckFkZHJPcHQECGN1clN0YXRzCQEMZ2V0V2xnU3RhdHMyBAULdXNlckFkZHJPcHQJAMwIAgUNcmVzdDJDb250cmFjdAkAzAgCBQ5hY3JlczJDb250cmFjdAkAzAgCBQt3bGdDb250cmFjdAkAzAgCBRJwdXp6bGVQb29sQ29udHJhY3QJAMwIAgUSaW52ZXN0RnVuZENvbnRyYWN0BQNuaWwFC3VzZHRBc3NldElkAAAJAJQKAgUDbmlsCQDMCAIJAKwCAgIRJXMlZF9fd2xnQW1vdW50X18JAKQDAQkAkQMCBQhjdXJTdGF0cwULaXhXbGdBbW91bnQJAMwIAgkArAICAg4lcyVkX193bGdXbGdfXwkApAMBCQCRAwIFCGN1clN0YXRzBQhpeFdsZ1dsZwkAzAgCCQCsAgICECVzJWRfX3dsZ1ByaWNlX18JAKQDAQkAkQMCBQhjdXJTdGF0cwUKaXhXbGdQcmljZQkAzAgCCQCsAgICESVzJWRfX3VzZHRGdW5kc19fCQCkAwEJAJEDAgUIY3VyU3RhdHMFCml4V2xnRnVuZHMJAMwIAgkArAICAhQlcyVkX191c2R0QWN0aXZpdHlfXwkApAMBCQCRAwIFCGN1clN0YXRzBQ1peFdsZ0FjdGl2aXR5CQDMCAIJAKwCAgITJXMlZF9fdXNkdFN0YWtpbmdfXwkApAMBCQCRAwIFCGN1clN0YXRzBQtpeFdsZ0FjcmVzMgkAzAgCCQCsAgICFSVzJWRfX3VzZHRBcmJpdHJhZ2VfXwkApAMBCQCRAwIFCGN1clN0YXRzBQ5peFdsZ0FyYml0cmFnZQkAzAgCCQCsAgICECVzJWRfX3VzZHRQb29sX18JAKQDAQkAkQMCBQhjdXJTdGF0cwUJaXhXbGdQb29sCQDMCAIJAKwCAgIUJXMlZF9fd2xnSXNzdWVUaW1lX18JAKQDAQkAkQMCBQhjdXJTdGF0cwUOaXhXbGdJc3N1ZVRpbWUJAMwIAgkArAICAholcyVkX193bGdMYXN0VGVhbUFjdFRpbWVfXwkApAMBCQCRAwIFCGN1clN0YXRzBRRpeFdsZ0xhc3RUZWFtQWN0VGltZQkAzAgCCQCsAgICFCVzJWRfX3dsZ1RlYW1Ub3RhbF9fCQCkAwEJAJEDAgUIY3VyU3RhdHMFDml4V2xnVGVhbVRvdGFsCQDMCAIJAKwCAgIVJXMlZF9fd2xnVGVhbUFtTGVmdF9fCQCkAwEJAJEDAgUIY3VyU3RhdHMFD2l4V2xnVGVhbUFtTGVmdAkAzAgCCQCsAgICGSVzJWRfX3dsZ1RlYW1BbUF2YWlsTm93X18JAKQDAQkAkQMCBQhjdXJTdGF0cwUTaXhXbGdUZWFtQW1BdmFpbE5vdwkAzAgCCQCsAgICFSVzJWRfX3dsZ1RlYW1XbGdvbGRfXwkApAMBCQCRAwIFCGN1clN0YXRzBQ9peFdsZ1RlYW1XbGdvbGQJAMwIAgkArAICAhMlcyVkX193bGdBY3RUb3RhbF9fCQCkAwEJAJEDAgUIY3VyU3RhdHMFDWl4V2xnQWN0VG90YWwJAMwIAgkArAICAhQlcyVkX193bGdBY3RBbUxlZnRfXwkApAMBCQCRAwIFCGN1clN0YXRzBQ5peFdsZ0FjdEFtTGVmdAkAzAgCCQCsAgICGCVzJWRfX3dsZ0FjdEFtQXZhaWxOb3dfXwkApAMBCQCRAwIFCGN1clN0YXRzBRJpeFdsZ0FjdEFtQXZhaWxOb3cJAMwIAgkArAICAhQlcyVkX193bGdBY3RXbGdvbGRfXwkApAMBCQCRAwIFCGN1clN0YXRzBQ5peFdsZ0FjdFdsZ29sZAkAzAgCCQCsAgICFCVzJWRfX3dsZ0N1clBlcmlvZF9fCQCkAwEJAJEDAgUIY3VyU3RhdHMFDml4V2xnQ3VyUGVyaW9kCQDMCAIJAKwCAgIWJXMlZF9fd2xnQW1MZWZ0VG90YWxfXwkApAMBCQCRAwIFCGN1clN0YXRzBRBpeFdsZ0FtTGVmdFRvdGFsCQDMCAIJAKwCAgIgJXMlZF9fd2xnQ3VyUGVyaW9kRGlzdHJpYnV0aW9uX18JAKQDAQkAkQMCBQhjdXJTdGF0cwUaaXhXbGdDdXJQZXJpb2REaXN0cmlidXRpb24JAMwIAgkArAICAhclcyVkX193bGdMYXN0VXNlclRpbWVfXwkApAMBCQCRAwIFCGN1clN0YXRzBRFpeFdsZ0xhc3RVc2VyVGltZQkAzAgCCQCsAgICGiVzJWRfX3dsZ0ludmVzdEZ1bmRUb3RhbF9fCQCkAwEJAJEDAgUIY3VyU3RhdHMFFWl4V2xnSW52ZXN0RnVuZEFtb3VudAkAzAgCCQCsAgICGSVzJWRfX3dsZ1VzZXJBbUF2YWlsTm93X18JAKQDAQkAkQMCBQhjdXJTdGF0cwUTaXhXbGdVc2VyQW1BdmFpbE5vdwkAzAgCCQCsAgICFiVzJWRfX3dsZ0VmZlVzZXJUaW1lX18JAKQDAQkAkQMCBQhjdXJTdGF0cwUQaXhXbGdFZmZVc2VyVGltZQkAzAgCCQCsAgICGiVzJWRfX3dsZ0lzc3VlMTBBdmFpbE5vd19fCQCkAwEJAJEDAgUIY3VyU3RhdHMFEml4V2xnSXNzdWUxMEFtb3VudAkAzAgCCQCsAgICIyVzJWRfX3dsZ01hcmtldGluZ0lzc3VlMTBBdmFpbE5vd19fCQCkAwEJAJEDAgUIY3VyU3RhdHMFG2l4V2xnTWFya2V0aW5nSXNzdWUxMEFtb3VudAkAzAgCCQCsAgICHiVzJWRfX3dsZ1RlYW1Jc3N1ZTEwQXZhaWxOb3dfXwkApAMBCQCRAwIFCGN1clN0YXRzBRZpeFdsZ1RlYW1Jc3N1ZTEwQW1vdW50CQDMCAIJAKwCAgIeJXMlZF9fd2xnVXNlcklzc3VlMTBBdmFpbE5vd19fCQCkAwEJAJEDAgUIY3VyU3RhdHMFD2l4V2xnVXNlcjEwcGFydAkAzAgCCQCsAgICGiVzJWRfX3dsZ0xhc3RJc3N1ZTEwVGltZV9fCQCkAwEJAJEDAgUIY3VyU3RhdHMFEGl4V2xnSXNzdWUxMFRpbWUJAMwIAgkArAICAhwlcyVkX193bGdUb3RhbEZhcm1pbmdQb3dlcl9fCQCkAwEJAJEDAgUIY3VyU3RhdHMFFml4V2xnVG90YWxGYXJtaW5nUG93ZXIJAMwIAgkArAICAhslcyVkX193bGdBY3Jlc1N0YWtlZFRvdGFsX18JAKQDAQkAkQMCBQhjdXJTdGF0cwUVaXhXbGdBY3Jlc1N0YWtlZFRvdGFsCQDMCAIJAKwCAgIWJXMlZF9fbmZ0VG90YWxJc3N1ZWRfXwkApAMBCQCRAwIFCGN1clN0YXRzBRNpeFdsZ05mdFRvdGFsSXNzdWVkCQDMCAIJAKwCAgIWJXMlZF9fbmZ0VG90YWxCdXJuZWRfXwkApAMBCQCRAwIFCGN1clN0YXRzBRNpeFdsZ05mdFRvdGFsQnVybmVkCQDMCAIJAKwCAgIYJXMlZF9fd2xOZnRUb3RhbFN0YWtlZF9fCQCkAwEJAJEDAgUIY3VyU3RhdHMFFWl4V2xnV2xOZnRUb3RhbFN0YWtlZAkAzAgCCQCsAgICFyVzJWRfX3dsTmZ0VXNlclN0YWtlZF9fCQCkAwEJAJEDAgUIY3VyU3RhdHMFFGl4V2xnV2xOZnRVc2VyU3Rha2VkBQNuaWwBaQEUbG90dGVyeVN0YXRzUkVBRE9OTFkBC3VzZXJBZGRyT3B0BAV0b2RheQkAaQIFBmhlaWdodAUKREFZX0JMT0NLUwQEd2VlawkAaQIFBmhlaWdodAULV0VFS19CTE9DS1MECGxhc3RXZWVrCQBlAgUEd2VlawABBA5jdXJXZWVrVGlja2V0cwkBC3ZhbHVlT3JFbHNlAgkAmggCBQt3bGdDb250cmFjdAkBEmtleVVzZXJXZWVrVGlja2V0cwIFC3VzZXJBZGRyT3B0BQR3ZWVrAAAED2xhc3RXZWVrVGlja2V0cwkBC3ZhbHVlT3JFbHNlAgkAmggCBQt3bGdDb250cmFjdAkBEmtleVVzZXJXZWVrVGlja2V0cwIFC3VzZXJBZGRyT3B0BQhsYXN0V2VlawAABBNjdXJXZWVrVG90YWxUaWNrZXRzCQELdmFsdWVPckVsc2UCCQCaCAIFC3dsZ0NvbnRyYWN0CQETa2V5VG90YWxXZWVrVGlja2V0cwEFBHdlZWsAAAQUbGFzdFdlZWtUb3RhbFRpY2tldHMJAQt2YWx1ZU9yRWxzZQIJAJoIAgULd2xnQ29udHJhY3QJARNrZXlUb3RhbFdlZWtUaWNrZXRzAQUIbGFzdFdlZWsAAAQIdXNlcnNCZXQJAQt2YWx1ZU9yRWxzZQIJAJ0IAgULd2xnQ29udHJhY3QJAQprZXlVc2VyQmV0AQULdXNlckFkZHJPcHQCAAkAlAoCBQNuaWwJAMwIAgkArAICCQCsAgIJAKwCAgIWJXMlZCVkX190b3RhbFRpY2tldHNfXwkApAMBBRRsYXN0V2Vla1RvdGFsVGlja2V0cwUDU0VQCQCkAwEFE2N1cldlZWtUb3RhbFRpY2tldHMJAMwIAgkArAICCQCsAgIJAKwCAgIVJXMlZCVkX191c2VyVGlja2V0c19fCQCkAwEFD2xhc3RXZWVrVGlja2V0cwUDU0VQCQCkAwEFDmN1cldlZWtUaWNrZXRzCQDMCAIJAKwCAgIWJXMlZF9fYmxvY2tjaGFpbldlZWtfXwkApAMBBQR3ZWVrCQDMCAIJAKwCAgIVJXMlZF9fYmxvY2tjaGFpbkRheV9fCQCkAwEFBXRvZGF5CQDMCAIJAKwCAgIYJXMlZF9fYmxvY2tjaGFpbk1pbnV0ZV9fCQCkAwEJAGoCBQZoZWlnaHQFCkRBWV9CTE9DS1MJAMwIAgkArAICAhclcyVkX193aW5uaW5nQmV0VG9kYXlfXwkApAMBCQEKd2lubmluZ0JldAEFBXRvZGF5CQDMCAIJAKwCAgIQJXMlc19fdXNlcnNCZXRfXwUIdXNlcnNCZXQFA25pbAFpARJ1c2VyT3JkZXJzUkVBRE9OTFkBC3VzZXJBZGRyT3B0BAduZnRzS2V5CQETa2V5QXNzZXRJZHNCeVNlbGxlcgEFC3VzZXJBZGRyT3B0BAduZnRzU3RyCQELdmFsdWVPckVsc2UCCQCdCAIFDm1hcmtldENvbnRyYWN0BQduZnRzS2V5AgAJAJQKAgUDbmlsCQDMCAIJAKwCAgIUJXMlc19fdXNlclNhbGVOZnRzX18FB25mdHNTdHIFA25pbAFpARFvcmRlckluZm9SRUFET05MWQEKYXNzZXRJZE9wdAQFcHJpY2UJAQt2YWx1ZU9yRWxzZQIJAJoIAgUObWFya2V0Q29udHJhY3QJARFrZXlQcmljZUJ5QXNzZXRJZAEFCmFzc2V0SWRPcHQAAAQGc2VsbGVyCQELdmFsdWVPckVsc2UCCQCdCAIFDm1hcmtldENvbnRyYWN0CQESa2V5U2VsbGVyQnlBc3NldElkAQUKYXNzZXRJZE9wdAIACQCUCgIFA25pbAkAzAgCCQCsAgICFiVzJWRfX21hcmtldE5mdFByaWNlX18JAKQDAQUFcHJpY2UJAMwIAgkArAICAhclcyVzX19tYXJrZXROZnRTZWxsZXJfXwUGc2VsbGVyBQNuaWwAo/VdlQ==", "height": 3405869, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: F5d59R2TiRxKNPrNtvWPi9ku8jADqj96cPAzWV3cGE96 Next: 3rBv2z3y9iSRqhnrDMAapfFXkXdUZS2ov4Ptpgyzbtmz Diff:
OldNewDifferences
7070
7171 let p = 5
7272
73-func q () = "%s__restConfig"
73+let q = 6
74+
75+func r () = "%s__restConfig"
7476
7577
76-func r () = "%s__rest2Addr"
78+func s () = "%s__rest2Addr"
7779
7880
79-func s (t) = split_4C(j(t, q()), a)
81+func t (u) = split_4C(j(u, r()), a)
8082
8183
82-func u (v,w) = valueOrErrorMessage(addressFromString(v[w]), ("Rest cfg doesn't contain address at index " + toString(w)))
84+func v (w,x) = valueOrErrorMessage(addressFromString(w[x]), ("Rest cfg doesn't contain address at index " + toString(x)))
8385
8486
85-let x = addressFromStringValue(valueOrElse(getString(this, r()), h))
87+let y = addressFromStringValue(valueOrElse(getString(this, s()), h))
8688
87-let v = s(x)
89+let w = t(y)
8890
89-let y = u(v, m)
91+let z = v(w, m)
9092
91-let z = u(v, n)
93+let A = v(w, n)
9294
93-let A = u(v, o)
95+let B = v(w, o)
9496
95-let B = u(v, p)
97+let C = v(w, p)
9698
97-let C = "oldAcresContract"
99+let D = v(w, q)
98100
99-func D (E) = ("lastWeekTxIdByUser_" + E)
101+let E = "oldAcresContract"
102+
103+func F (G) = ("lastWeekTxIdByUser_" + G)
100104
101105
102-func F (E) = ("curWeekTxIdByUser_" + E)
106+func H (G) = ("curWeekTxIdByUser_" + G)
103107
104108
105-let G = "wlg_assetId"
109+let I = "wlg_assetId"
106110
107-let H = valueOrErrorMessage(getBinary(z, G), "WLGOLD is not issued yet")
111+let J = valueOrErrorMessage(getBinary(A, I), "WLGOLD is not issued yet")
108112
109-let I = "acresAssetId"
113+let K = "acresAssetId"
110114
111-let J = valueOrErrorMessage(getBinary(y, I), "ACRES is not issued yet")
115+let L = valueOrErrorMessage(getBinary(z, K), "ACRES is not issued yet")
112116
113-func K (L) = ("stakedDuckByOwner_" + L)
117+func M (N) = ("stakedDuckByOwner_" + N)
114118
115119
116-func M (L) = ("stakedNFTsByOwner_" + L)
120+func O (N) = ("stakedNFTsByOwner_" + N)
117121
118122
119-func N (E) = ("accountCustomNameByAddr_" + E)
123+func P (G) = ("accountCustomNameByAddr_" + G)
120124
121125
122-func O (E) = ("accRefBy_" + E)
126+func Q (G) = ("accRefBy_" + G)
123127
124128
125-func P (E) = ("accReferrals_" + E)
129+func R (G) = ("accReferrals_" + G)
126130
127131
128-func Q (E) = ("userBet_" + E)
132+func S (G) = ("userBet_" + G)
129133
130134
131-func R (E,S) = ((("userWeekTickets_" + E) + "_") + toString(S))
135+func T (G,U) = ((("userWeekTickets_" + G) + "_") + toString(U))
132136
133137
134-func T (S) = ("totalWeekTickets_" + toString(S))
138+func V (U) = ("totalWeekTickets_" + toString(U))
135139
136140
137-func U (V) = {
138- let W = (V * c)
139- let X = if ((W > f))
140- then W
141- else (W + f)
142- (toInt(value(value(blockInfoByHeight(X)).vrf)) % 4)
141+func W (X) = {
142+ let Y = (X * c)
143+ let Z = if ((Y > f))
144+ then Y
145+ else (Y + f)
146+ (toInt(value(value(blockInfoByHeight(Z)).vrf)) % 4)
143147 }
144148
145149
146-func Y (E) = ("assetIds_" + E)
150+func aa (ab) = ("seller_" + ab)
147151
148152
149-let Z = 0
153+func ac (ab) = ("price_" + ab)
150154
151-let aa = 1
152155
153-let ab = 2
156+func ad (G) = ("assetIds_" + G)
154157
155-let ac = 3
156158
157-let ad = 4
159+let ae = 0
158160
159-let ae = 5
161+let af = 1
160162
161-let af = 6
163+let ag = 2
162164
163-let ag = 7
165+let ah = 3
164166
165-let ah = 8
167+let ai = 4
166168
167-let ai = 9
169+let aj = 5
168170
169-let aj = 10
171+let ak = 6
170172
171-let ak = 11
173+let al = 7
172174
173-let al = 12
175+let am = 8
174176
175-let am = 13
177+let an = 9
176178
177-let an = 14
179+let ao = 10
178180
179-let ao = 15
181+let ap = 11
180182
181-let ap = 16
183+let aq = 12
182184
183-let aq = 17
185+let ar = 13
184186
185-let ar = 18
187+let as = 14
186188
187-let as = 19
189+let at = 15
188190
189-let at = 20
191+let au = 16
190192
191-let au = 21
193+let av = 17
192194
193-let av = 22
195+let aw = 18
194196
195-let aw = 23
197+let ax = 19
196198
197-let ax = 24
199+let ay = 20
198200
199-let ay = 25
201+let az = 21
200202
201-let az = 26
203+let aA = 22
202204
203-let aA = 27
205+let aB = 23
204206
205-let aB = 28
207+let aC = 24
206208
207-let aC = 29
209+let aD = 25
208210
209-let aD = 30
211+let aE = 26
210212
211-let aE = 31
213+let aF = 27
212214
213-let aF = 32
215+let aG = 28
214216
215-let aG = 33
217+let aH = 29
216218
217-let aH = 34
219+let aI = 30
218220
219-let aI = 35
221+let aJ = 31
220222
221-func aJ (aK) = {
222- let d = aK
223+let aK = 32
224+
225+let aL = 33
226+
227+let aM = 34
228+
229+let aN = 35
230+
231+func aO (aP) = {
232+ let d = aP
223233 if ($isInstanceOf(d, "(Int, Int, Int, Int)"))
224234 then {
225- let aL = d
226- aL
235+ let aQ = d
236+ aQ
227237 }
228238 else throw("fail to cast into (Int, Int, Int, Int)")
229239 }
230240
231241
232-func aM (aK) = {
233- let d = aK
242+func aR (aP) = {
243+ let d = aP
234244 if ($isInstanceOf(d, "(Int, Int, Int)"))
235245 then {
236- let aL = d
237- aL
246+ let aQ = d
247+ aQ
238248 }
239249 else throw("fail to cast into (Int, Int, Int)")
240250 }
241251
242252
243-func aN (aK) = {
244- let d = aK
253+func aS (aP) = {
254+ let d = aP
245255 if ($isInstanceOf(d, "(Int, Int)"))
246256 then {
247- let aL = d
248- aL
257+ let aQ = d
258+ aQ
249259 }
250260 else throw("fail to cast into (Int, Int)")
251261 }
252262
253263
254-let aO = 1000000
264+let aT = 1000000
255265
256-let aP = 100000000
266+let aU = 100000000
257267
258-let aQ = 200000
268+let aV = 200000
259269
260-let aR = 100000
270+let aW = 100000
261271
262-let aS = 400000
272+let aX = 400000
263273
264-let aT = 31557600000
274+let aY = 31557600000
265275
266-let aU = 86400000
276+let aZ = 86400000
267277
268-let aV = 1000000000
278+let ba = 1000000000
269279
270-let aW = 800000
280+let bb = 800000
271281
272-let aX = 100000
282+let bc = 100000
273283
274-let aY = 100000
284+let bd = 100000
275285
276-let aZ = 1731279600000
286+let be = 1731279600000
277287
278-let ba = "teamAddr"
288+let bf = "teamAddr"
279289
280-let bb = "lastClaimedTime_team"
290+let bg = "lastClaimedTime_team"
281291
282-let bc = "teamAmountLeft"
292+let bh = "teamAmountLeft"
283293
284-let bd = "lastClaimedTime_activities"
294+let bi = "lastClaimedTime_activities"
285295
286-let be = "activitiesAmountLeft"
296+let bj = "activitiesAmountLeft"
287297
288-let bf = "stakersAmountLeft"
298+let bk = "stakersAmountLeft"
289299
290-func bg (E) = ("lastClaimedTimeUser_" + E)
300+func bl (G) = ("lastClaimedTimeUser_" + G)
291301
292302
293-func bh (bi,bj) = fraction(bi, (aS * (bj + 1)), (6 * aO))
303+func bm (bn,bo) = fraction(bn, (aX * (bo + 1)), (6 * aT))
294304
295305
296-let bk = "wlg_issue10Time"
306+let bp = "wlg_issue10Time"
297307
298-let bl = "wlg_issueTime"
308+let bq = "wlg_issueTime"
299309
300-let bm = "wlg_issuedAmount"
310+let br = "wlg_issuedAmount"
301311
302-let bn = "zbill_issuedAmount"
312+let bs = "zbill_issuedAmount"
303313
304-func bo (E) = ("acresStakedAmountByUser_" + E)
314+func bt (G) = ("acresStakedAmountByUser_" + G)
305315
306316
307-let bp = "acresStakedAmountTotal"
317+let bu = "acresStakedAmountTotal"
308318
309-let bq = "totalFarmingPower"
319+let bv = "totalFarmingPower"
310320
311-let br = 0
321+let bw = 0
312322
313-let bs = 1
323+let bx = 1
314324
315-let bt = 2
325+let by = 2
316326
317-let bu = 3
327+let bz = 3
318328
319-let bv = 4
329+let bA = 4
320330
321-let bw = "nftTotalIssued"
331+let bB = "nftTotalIssued"
322332
323-let bx = "nftTotalBurned"
333+let bC = "nftTotalBurned"
324334
325-let by = "WlNftTotalStaked"
335+let bD = "WlNftTotalStaked"
326336
327-func bz (E) = ("userWlNftNumber_" + E)
337+func bE (G) = ("userWlNftNumber_" + G)
328338
329339
330-func bA (E) = ("userFullBonus_" + E)
340+func bF (G) = ("userFullBonus_" + G)
331341
332342
333-let bB = [0, 10, 20, 40, 80, 150, 250, 400, 700, 1000]
343+let bG = [0, 10, 20, 40, 80, 150, 250, 400, 700, 1000]
334344
335-func bC (bD) = {
336- let bE = ((bD + 99999999) / aP)
337- func bF (bG,bH) = if ((bH >= bE))
338- then bG
339- else (bG + 1)
345+func bH (bI) = {
346+ let bJ = ((bI + 99999999) / aU)
347+ func bK (bL,bM) = if ((bM >= bJ))
348+ then bL
349+ else (bL + 1)
340350
341- let bI = bB
342- let bJ = size(bI)
343- let bK = 0
344- func bL (bM,bN) = if ((bN >= bJ))
345- then bM
346- else bF(bM, bI[bN])
351+ let bN = bG
352+ let bO = size(bN)
353+ let bP = 0
354+ func bQ (bR,bS) = if ((bS >= bO))
355+ then bR
356+ else bK(bR, bN[bS])
347357
348- func bO (bM,bN) = if ((bN >= bJ))
349- then bM
358+ func bT (bR,bS) = if ((bS >= bO))
359+ then bR
350360 else throw("List size exceeds 10")
351361
352- bO(bL(bL(bL(bL(bL(bL(bL(bL(bL(bL(bK, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
362+ bT(bQ(bQ(bQ(bQ(bQ(bQ(bQ(bQ(bQ(bQ(bP, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
353363 }
354364
355365
356-func bP (bD) = ((bD * 20) * (bC(bD) + 4))
366+func bU (bI) = ((bI * 20) * (bH(bI) + 4))
357367
358368
359-func bQ (bD,bR) = {
360- let bS = bP(bD)
361- $Tuple2(fraction(bS, (aO + bR), aO), bS)
369+func bV (bI,bW) = {
370+ let bX = bU(bI)
371+ $Tuple2(fraction(bX, (aT + bW), aT), bX)
362372 }
363373
364374
365-func bT (bU,y) = {
366- let bV = valueOrElse(getInteger(y, bq), 0)
367- let bW = valueOrElse(getInteger(y, bo(bU)), 0)
368- let bX = valueOrElse(getInteger(y, bA(bU)), 0)
369- let bY = bQ(bW, bX)
370- let bZ = bY._1
371- let ca = bY._2
372-[bV, bZ, ca, bX]
375+func bY (bZ,z) = {
376+ let ca = valueOrElse(getInteger(z, bv), 0)
377+ let cb = valueOrElse(getInteger(z, bt(bZ)), 0)
378+ let cc = valueOrElse(getInteger(z, bF(bZ)), 0)
379+ let cd = bV(cb, cc)
380+ let ce = cd._1
381+ let cf = cd._2
382+[ca, ce, cf, cc]
373383 }
374384
375385
376-let cb = 0
386+let cg = 0
377387
378-let cc = 1
388+let ch = 1
379389
380-let cd = 2
390+let ci = 2
381391
382-func ce (cf,cg,ch,ci) = {
383- let bi = valueOrErrorMessage(getInteger(cg[bt], bm), "WLGOLD is not issued yet")
384- let cj = assetBalance(cg[br], ch)
385- let ck = (assetBalance(cg[bt], ch) - ci)
386- let cl = assetBalance(cg[bu], ch)
387- let cm = assetBalance(cg[bs], ch)
388- let cn = cg[bv]
389- let co = (assetBalance(cn, ch) + valueOrElse(getInteger(cn, bn), 0))
390- let cp = ((cm + ck) + co)
391- let cq = valueOrErrorMessage(getBinary(cg[bt], "wlg_assetId"), "Not initialized yet")
392- let cr = lastBlock.timestamp
393- let cs = valueOrErrorMessage(getInteger(cg[bt], bl), "Not initialized")
394- let ct = assetBalance(cg[bt], cq)
395- let cu = fraction(bi, aQ, aO)
396- let cv = valueOrElse(getInteger(cg[bt], bc), cu)
397- let cw = valueOrElse(getInteger(cg[bt], bb), cs)
398- let cx = addressFromStringValue(value(getString(cg[bt], ba)))
399- let cy = min([fraction(cu, (cr - cw), (3 * aT)), cv])
400- let cz = assetBalance(cx, cq)
401- let cA = fraction(bi, aR, aO)
402- let cB = valueOrElse(getInteger(cg[bt], be), cA)
403- let cC = valueOrElse(getInteger(cg[bt], bd), cs)
404- let cD = min([fraction(cA, (cr - cC), (3 * aT)), cB])
405- let cE = assetBalance(cg[br], cq)
406- let cF = valueOrElse(getInteger(cg[bt], bg(cf)), cs)
407- let cG = ((cF - cs) / aT)
408- let cH = min([cr, (cs + (3 * aT))])
409- let cI = min([((cr - cs) / aT), 2])
410- let cJ = bT(cf, cg[bs])
411- let cK = bh(bi, cI)
412- let cL = (cs + (aT * cI))
413- let cM = (cs + (aT * (cI - 1)))
414- let cN = fraction(cK, (cH - cF), aT)
415- let cO = if ((cG == cI))
416- then cN
417- else if ((cG == (cI - 1)))
392+func cj (ck,cl,cm,cn) = {
393+ let bn = valueOrErrorMessage(getInteger(cl[by], br), "WLGOLD is not issued yet")
394+ let co = assetBalance(cl[bw], cm)
395+ let cp = (assetBalance(cl[by], cm) - cn)
396+ let cq = assetBalance(cl[bz], cm)
397+ let cr = assetBalance(cl[bx], cm)
398+ let cs = cl[bA]
399+ let ct = (assetBalance(cs, cm) + valueOrElse(getInteger(cs, bs), 0))
400+ let cu = ((cr + cp) + ct)
401+ let cv = valueOrErrorMessage(getBinary(cl[by], "wlg_assetId"), "Not initialized yet")
402+ let cw = lastBlock.timestamp
403+ let cx = valueOrErrorMessage(getInteger(cl[by], bq), "Not initialized")
404+ let cy = assetBalance(cl[by], cv)
405+ let cz = fraction(bn, aV, aT)
406+ let cA = valueOrElse(getInteger(cl[by], bh), cz)
407+ let cB = valueOrElse(getInteger(cl[by], bg), cx)
408+ let cC = addressFromStringValue(value(getString(cl[by], bf)))
409+ let cD = min([fraction(cz, (cw - cB), (3 * aY)), cA])
410+ let cE = assetBalance(cC, cv)
411+ let cF = fraction(bn, aW, aT)
412+ let cG = valueOrElse(getInteger(cl[by], bj), cF)
413+ let cH = valueOrElse(getInteger(cl[by], bi), cx)
414+ let cI = min([fraction(cF, (cw - cH), (3 * aY)), cG])
415+ let cJ = assetBalance(cl[bw], cv)
416+ let cK = valueOrElse(getInteger(cl[by], bl(ck)), cx)
417+ let cL = ((cK - cx) / aY)
418+ let cM = min([cw, (cx + (3 * aY))])
419+ let cN = min([((cw - cx) / aY), 2])
420+ let cO = bY(ck, cl[bx])
421+ let cP = bm(bn, cN)
422+ let cQ = (cx + (aY * cN))
423+ let cR = (cx + (aY * (cN - 1)))
424+ let cS = fraction(cP, (cM - cK), aY)
425+ let cT = if ((cL == cN))
426+ then cS
427+ else if ((cL == (cN - 1)))
418428 then {
419- let cP = fraction(bh(bi, (cI - 1)), (cL - cF), aT)
420- (cP + cN)
429+ let cU = fraction(bm(bn, (cN - 1)), (cQ - cK), aY)
430+ (cU + cS)
421431 }
422432 else {
423- let cQ = fraction(bh(bi, (cI - 2)), (cM - cF), aT)
424- let cP = bh(bi, (cI - 1))
425- ((cQ + cP) + cN)
433+ let cV = fraction(bm(bn, (cN - 2)), (cR - cK), aY)
434+ let cU = bm(bn, (cN - 1))
435+ ((cV + cU) + cS)
426436 }
427- let cR = valueOrElse(getInteger(cg[bt], bf), 0)
428- let cS = if ((cJ[cb] != 0))
429- then fraction(cO, cJ[cc], cJ[cb])
437+ let cW = valueOrElse(getInteger(cl[by], bk), 0)
438+ let cX = if ((cO[cg] != 0))
439+ then fraction(cT, cO[ch], cO[cg])
430440 else 0
431- let cT = valueOrElse(getInteger(cg[bt], bk), aZ)
432- let cU = fraction(aV, max([(cr - cT), 0]), aU)
433- let cV = fraction(cU, aX, aO)
434- let cW = fraction(cU, aY, aO)
435- let cX = max([(cr - max([aZ, cF])), 0])
436- let cY = if ((cJ[cb] != 0))
437- then fraction(fraction(fraction(aV, cX, aU), cJ[cc], cJ[cb]), aW, aO)
441+ let cY = valueOrElse(getInteger(cl[by], bp), be)
442+ let cZ = fraction(ba, max([(cw - cY), 0]), aZ)
443+ let da = fraction(cZ, bc, aT)
444+ let db = fraction(cZ, bd, aT)
445+ let dc = max([(cw - max([be, cK])), 0])
446+ let dd = if ((cO[cg] != 0))
447+ then fraction(fraction(fraction(ba, dc, aZ), cO[ch], cO[cg]), bb, aT)
438448 else 0
439- let cZ = max([aZ, cr])
440- let da = valueOrElse(getInteger(cg[bs], bp), 0)
441- let db = valueOrElse(getInteger(cg[bs], bw), 0)
442- let dc = valueOrElse(getInteger(cg[bs], bx), 0)
443- let dd = valueOrElse(getInteger(cg[bs], by), 0)
444- let de = valueOrElse(getInteger(cg[bs], bz(valueOrElse(cf, ""))), 0)
445-[bi, ct, fraction(cp, aP, bi), cp, cj, cm, ck, cl, cs, cw, cu, cv, cy, cz, cA, cB, cD, cE, cI, cR, cK, cF, co, cS, cH, cU, cV, cW, cY, cZ, cJ[cb], da, db, dc, dd, de]
449+ let de = max([be, cw])
450+ let df = valueOrElse(getInteger(cl[bx], bu), 0)
451+ let dg = valueOrElse(getInteger(cl[bx], bB), 0)
452+ let dh = valueOrElse(getInteger(cl[bx], bC), 0)
453+ let di = valueOrElse(getInteger(cl[bx], bD), 0)
454+ let dj = valueOrElse(getInteger(cl[bx], bE(valueOrElse(ck, ""))), 0)
455+[bn, cy, fraction(cu, aU, bn), cu, co, cr, cp, cq, cx, cB, cz, cA, cD, cE, cF, cG, cI, cJ, cN, cW, cP, cK, ct, cX, cM, cZ, da, db, dd, de, cO[cg], df, dg, dh, di, dj]
446456 }
447457
448458
449-func df (dg) = {
450- let E = addressFromString(dg)
451- let dh = if (isDefined(E))
452- then wavesBalance(value(E))
459+func dk (dl) = {
460+ let G = addressFromString(dl)
461+ let dm = if (isDefined(G))
462+ then wavesBalance(value(G))
453463 else BalanceDetails(0, 0, 0, 0)
454- let di = if (isDefined(E))
455- then assetBalance(value(E), g)
464+ let dn = if (isDefined(G))
465+ then assetBalance(value(G), g)
456466 else 0
457- let dj = if (isDefined(E))
458- then assetBalance(value(E), H)
467+ let do = if (isDefined(G))
468+ then assetBalance(value(G), J)
459469 else 0
460- let dk = valueOrElse(getString(y, N(dg)), dg)
461- let dl = O(dg)
462- let dm = getString(y, dl)
463- let dn = valueOrElse(getString(y, P(dg)), "")
464- let do = valueOrElse(getString(y, D(dg)), "")
465- let dp = valueOrElse(getString(y, F(dg)), "")
466- let dq = if (isDefined(E))
467- then assetBalance(value(E), J)
470+ let dp = valueOrElse(getString(z, P(dl)), dl)
471+ let dq = Q(dl)
472+ let dr = getString(z, dq)
473+ let ds = valueOrElse(getString(z, R(dl)), "")
474+ let dt = valueOrElse(getString(z, F(dl)), "")
475+ let du = valueOrElse(getString(z, H(dl)), "")
476+ let dv = if (isDefined(G))
477+ then assetBalance(value(G), L)
468478 else 0
469- let dr = valueOrElse(getInteger(y, bo(dg)), 0)
470- let ds = bC(dr)
471- let dt = bT(dg, y)
472- let du = if ((ds >= size(bB)))
479+ let dw = valueOrElse(getInteger(z, bt(dl)), 0)
480+ let dx = bH(dw)
481+ let dy = bY(dl, z)
482+ let dz = if ((dx >= size(bG)))
473483 then 0
474- else (((bB[ds] * aP) + 1) - dr)
475- let dv = valueOrElse(getString(y, M(dg)), "")
476- let dw = valueOrElse(getInteger(y, bA(dg)), 0)
477-[("%s%s__customName__" + dk), ("%s%s__referredBy__" + valueOrElse(dm, "")), ("%s%s__referrals__" + dn), ("%s%s__lastWeekTxId__" + do), ("%s%s__curWeekTxId__" + do), ("%s%d__wavesBalance__" + toString(dh.available)), ("%s%d__usdtBalance__" + toString(di)), ("%s%d__wlgoldBalance__" + toString(dj)), ("%s%d__acresBalance__" + toString(dq)), ("%s%d__stakedAcres__" + toString(dr)), ("%s%d__currentLvl__" + toString(ds)), ("%s%d__acresToNextLvl__" + toString(du)), ("%s%s__userNFTs__" + dv), ("%s%d__userBonus__" + toString(dw)), ("%s%d__userBaseFarmingPower__" + toString(dt[cd])), ("%s%d__userFarmingPower__" + toString(dt[cc])), ("%s%d__totalFarmingPower__" + toString(dt[cb]))]
484+ else (((bG[dx] * aU) + 1) - dw)
485+ let dA = valueOrElse(getString(z, O(dl)), "")
486+ let dB = valueOrElse(getInteger(z, bF(dl)), 0)
487+[("%s%s__customName__" + dp), ("%s%s__referredBy__" + valueOrElse(dr, "")), ("%s%s__referrals__" + ds), ("%s%s__lastWeekTxId__" + dt), ("%s%s__curWeekTxId__" + dt), ("%s%d__wavesBalance__" + toString(dm.available)), ("%s%d__usdtBalance__" + toString(dn)), ("%s%d__wlgoldBalance__" + toString(do)), ("%s%d__acresBalance__" + toString(dv)), ("%s%d__stakedAcres__" + toString(dw)), ("%s%d__currentLvl__" + toString(dx)), ("%s%d__acresToNextLvl__" + toString(dz)), ("%s%s__userNFTs__" + dA), ("%s%d__userBonus__" + toString(dB)), ("%s%d__userBaseFarmingPower__" + toString(dy[ci])), ("%s%d__userFarmingPower__" + toString(dy[ch])), ("%s%d__totalFarmingPower__" + toString(dy[cg]))]
478488 }
479489
480490
481-@Callable(dx)
482-func constructorV1 (cg) = if ((dx.caller != this))
491+@Callable(dC)
492+func constructorV1 (cl) = if ((dC.caller != this))
483493 then throw("permissions denied")
484494 else {
485- func dy (bG,dz) = (bG + "%s")
495+ func dD (bL,dE) = (bL + "%s")
486496
487- let dA = {
488- let bI = cg
489- let bJ = size(bI)
490- let bK = ""
491- func bL (bM,bN) = if ((bN >= bJ))
492- then bM
493- else dy(bM, bI[bN])
497+ let dF = {
498+ let bN = cl
499+ let bO = size(bN)
500+ let bP = ""
501+ func bQ (bR,bS) = if ((bS >= bO))
502+ then bR
503+ else dD(bR, bN[bS])
494504
495- func bO (bM,bN) = if ((bN >= bJ))
496- then bM
505+ func bT (bR,bS) = if ((bS >= bO))
506+ then bR
497507 else throw("List size exceeds 10")
498508
499- bO(bL(bL(bL(bL(bL(bL(bL(bL(bL(bL(bK, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
509+ bT(bQ(bQ(bQ(bQ(bQ(bQ(bQ(bQ(bQ(bQ(bP, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
500510 }
501-[StringEntry(q(), makeString(dA :: cg, a)), StringEntry(r(), toString(this))]
511+[StringEntry(r(), makeString(dF :: cl, a)), StringEntry(s(), toString(this))]
502512 }
503513
504514
505515
506-@Callable(dx)
507-func walletInfoREADONLY (dg) = $Tuple2(nil, df(dg))
516+@Callable(dC)
517+func walletInfoREADONLY (dl) = $Tuple2(nil, dk(dl))
508518
509519
510520
511-@Callable(dx)
512-func conversionInfoREADONLY (dg) = {
513- let dB = addressFromStringValue(getStringValue(y, C))
514- let dC = aN(invoke(dB, "unstakeAllAcresREADONLY", [dg], nil))
515- let dD = dC._1
516- let dE = dC._2
517- let dF = aJ(invoke(y, "unstakeLandsREADONLY", [dg], nil))
518- let dG = dF._1
519- let dH = dF._2
520- let dI = dF._3
521- let dJ = dF._4
522- let dK = addressFromStringValue(i)
523- let dL = valueOrElse(getString(dK, K(dg)), "")
524- let dM = if ((dL != ""))
525- then aM(invoke(dK, "unstakeDuckREADONLY", [dL, dg], nil))
521+@Callable(dC)
522+func conversionInfoREADONLY (dl) = {
523+ let dG = addressFromStringValue(getStringValue(z, E))
524+ let dH = aS(invoke(dG, "unstakeAllAcresREADONLY", [dl], nil))
525+ let dI = dH._1
526+ let dJ = dH._2
527+ let dK = aO(invoke(z, "unstakeLandsREADONLY", [dl], nil))
528+ let dL = dK._1
529+ let dM = dK._2
530+ let dN = dK._3
531+ let dO = dK._4
532+ let dP = addressFromStringValue(i)
533+ let dQ = valueOrElse(getString(dP, M(dl)), "")
534+ let dR = if ((dQ != ""))
535+ then aR(invoke(dP, "unstakeDuckREADONLY", [dQ, dl], nil))
526536 else $Tuple3(0, 0, 0)
527- let dN = dM._1
528- let dO = dM._2
529- let dP = dM._3
530- $Tuple2(nil, [("%s%d__unstakedAcres__" + toString(dD)), ("%s%d__claimedAcres__" + toString(dE)), ("%s%d__acresFromPieces__" + toString(dG)), ("%s%d__acresFromRes__" + toString(dH)), ("%s%d__acresFromMat__" + toString(dI)), ("%s%d__acresFromProd__" + toString(dJ)), ("%s%d__acresFromDuckRes__" + toString(dN)), ("%s%d__acresFromDuckMat__" + toString(dO)), ("%s%d__acresFromDuckProd__" + toString(dP))])
537+ let dS = dR._1
538+ let dT = dR._2
539+ let dU = dR._3
540+ $Tuple2(nil, [("%s%d__unstakedAcres__" + toString(dI)), ("%s%d__claimedAcres__" + toString(dJ)), ("%s%d__acresFromPieces__" + toString(dL)), ("%s%d__acresFromRes__" + toString(dM)), ("%s%d__acresFromMat__" + toString(dN)), ("%s%d__acresFromProd__" + toString(dO)), ("%s%d__acresFromDuckRes__" + toString(dS)), ("%s%d__acresFromDuckMat__" + toString(dT)), ("%s%d__acresFromDuckProd__" + toString(dU))])
531541 }
532542
533543
534544
535-@Callable(dx)
536-func wlgStatsREADONLY (cf) = {
537- let dQ = ce(cf, [x, y, z, A, B], g, 0)
538- $Tuple2(nil, [("%s%d__wlgAmount__" + toString(dQ[Z])), ("%s%d__wlgWlg__" + toString(dQ[aa])), ("%s%d__wlgPrice__" + toString(dQ[ab])), ("%s%d__usdtFunds__" + toString(dQ[ac])), ("%s%d__usdtActivity__" + toString(dQ[ad])), ("%s%d__usdtStaking__" + toString(dQ[ae])), ("%s%d__usdtArbitrage__" + toString(dQ[af])), ("%s%d__usdtPool__" + toString(dQ[ag])), ("%s%d__wlgIssueTime__" + toString(dQ[ah])), ("%s%d__wlgLastTeamActTime__" + toString(dQ[ai])), ("%s%d__wlgTeamTotal__" + toString(dQ[aj])), ("%s%d__wlgTeamAmLeft__" + toString(dQ[ak])), ("%s%d__wlgTeamAmAvailNow__" + toString(dQ[al])), ("%s%d__wlgTeamWlgold__" + toString(dQ[am])), ("%s%d__wlgActTotal__" + toString(dQ[an])), ("%s%d__wlgActAmLeft__" + toString(dQ[ao])), ("%s%d__wlgActAmAvailNow__" + toString(dQ[ap])), ("%s%d__wlgActWlgold__" + toString(dQ[aq])), ("%s%d__wlgCurPeriod__" + toString(dQ[ar])), ("%s%d__wlgAmLeftTotal__" + toString(dQ[as])), ("%s%d__wlgCurPeriodDistribution__" + toString(dQ[at])), ("%s%d__wlgLastUserTime__" + toString(dQ[au])), ("%s%d__wlgInvestFundTotal__" + toString(dQ[av])), ("%s%d__wlgUserAmAvailNow__" + toString(dQ[aw])), ("%s%d__wlgEffUserTime__" + toString(dQ[ax])), ("%s%d__wlgIssue10AvailNow__" + toString(dQ[ay])), ("%s%d__wlgMarketingIssue10AvailNow__" + toString(dQ[az])), ("%s%d__wlgTeamIssue10AvailNow__" + toString(dQ[aA])), ("%s%d__wlgUserIssue10AvailNow__" + toString(dQ[aB])), ("%s%d__wlgLastIssue10Time__" + toString(dQ[aC])), ("%s%d__wlgTotalFarmingPower__" + toString(dQ[aD])), ("%s%d__wlgAcresStakedTotal__" + toString(dQ[aE])), ("%s%d__nftTotalIssued__" + toString(dQ[aF])), ("%s%d__nftTotalBurned__" + toString(dQ[aG])), ("%s%d__wlNftTotalStaked__" + toString(dQ[aH])), ("%s%d__wlNftUserStaked__" + toString(dQ[aI]))])
545+@Callable(dC)
546+func wlgStatsREADONLY (ck) = {
547+ let dV = cj(ck, [y, z, A, B, C], g, 0)
548+ $Tuple2(nil, [("%s%d__wlgAmount__" + toString(dV[ae])), ("%s%d__wlgWlg__" + toString(dV[af])), ("%s%d__wlgPrice__" + toString(dV[ag])), ("%s%d__usdtFunds__" + toString(dV[ah])), ("%s%d__usdtActivity__" + toString(dV[ai])), ("%s%d__usdtStaking__" + toString(dV[aj])), ("%s%d__usdtArbitrage__" + toString(dV[ak])), ("%s%d__usdtPool__" + toString(dV[al])), ("%s%d__wlgIssueTime__" + toString(dV[am])), ("%s%d__wlgLastTeamActTime__" + toString(dV[an])), ("%s%d__wlgTeamTotal__" + toString(dV[ao])), ("%s%d__wlgTeamAmLeft__" + toString(dV[ap])), ("%s%d__wlgTeamAmAvailNow__" + toString(dV[aq])), ("%s%d__wlgTeamWlgold__" + toString(dV[ar])), ("%s%d__wlgActTotal__" + toString(dV[as])), ("%s%d__wlgActAmLeft__" + toString(dV[at])), ("%s%d__wlgActAmAvailNow__" + toString(dV[au])), ("%s%d__wlgActWlgold__" + toString(dV[av])), ("%s%d__wlgCurPeriod__" + toString(dV[aw])), ("%s%d__wlgAmLeftTotal__" + toString(dV[ax])), ("%s%d__wlgCurPeriodDistribution__" + toString(dV[ay])), ("%s%d__wlgLastUserTime__" + toString(dV[az])), ("%s%d__wlgInvestFundTotal__" + toString(dV[aA])), ("%s%d__wlgUserAmAvailNow__" + toString(dV[aB])), ("%s%d__wlgEffUserTime__" + toString(dV[aC])), ("%s%d__wlgIssue10AvailNow__" + toString(dV[aD])), ("%s%d__wlgMarketingIssue10AvailNow__" + toString(dV[aE])), ("%s%d__wlgTeamIssue10AvailNow__" + toString(dV[aF])), ("%s%d__wlgUserIssue10AvailNow__" + toString(dV[aG])), ("%s%d__wlgLastIssue10Time__" + toString(dV[aH])), ("%s%d__wlgTotalFarmingPower__" + toString(dV[aI])), ("%s%d__wlgAcresStakedTotal__" + toString(dV[aJ])), ("%s%d__nftTotalIssued__" + toString(dV[aK])), ("%s%d__nftTotalBurned__" + toString(dV[aL])), ("%s%d__wlNftTotalStaked__" + toString(dV[aM])), ("%s%d__wlNftUserStaked__" + toString(dV[aN]))])
539549 }
540550
541551
542552
543-@Callable(dx)
544-func lotteryStatsREADONLY (cf) = {
545- let dR = (height / c)
546- let S = (height / e)
547- let dS = (S - 1)
548- let dT = valueOrElse(getInteger(z, R(cf, S)), 0)
549- let dU = valueOrElse(getInteger(z, R(cf, dS)), 0)
550- let dV = valueOrElse(getInteger(z, T(S)), 0)
551- let dW = valueOrElse(getInteger(z, T(dS)), 0)
552- let dX = valueOrElse(getString(z, Q(cf)), "")
553- $Tuple2(nil, [((("%s%d%d__totalTickets__" + toString(dW)) + a) + toString(dV)), ((("%s%d%d__userTickets__" + toString(dU)) + a) + toString(dT)), ("%s%d__blockchainWeek__" + toString(S)), ("%s%d__blockchainDay__" + toString(dR)), ("%s%d__blockchainMinute__" + toString((height % c))), ("%s%d__winningBetToday__" + toString(U(dR))), ("%s%s__usersBet__" + dX)])
553+@Callable(dC)
554+func lotteryStatsREADONLY (ck) = {
555+ let dW = (height / c)
556+ let U = (height / e)
557+ let dX = (U - 1)
558+ let dY = valueOrElse(getInteger(A, T(ck, U)), 0)
559+ let dZ = valueOrElse(getInteger(A, T(ck, dX)), 0)
560+ let ea = valueOrElse(getInteger(A, V(U)), 0)
561+ let eb = valueOrElse(getInteger(A, V(dX)), 0)
562+ let ec = valueOrElse(getString(A, S(ck)), "")
563+ $Tuple2(nil, [((("%s%d%d__totalTickets__" + toString(eb)) + a) + toString(ea)), ((("%s%d%d__userTickets__" + toString(dZ)) + a) + toString(dY)), ("%s%d__blockchainWeek__" + toString(U)), ("%s%d__blockchainDay__" + toString(dW)), ("%s%d__blockchainMinute__" + toString((height % c))), ("%s%d__winningBetToday__" + toString(W(dW))), ("%s%s__usersBet__" + ec)])
554564 }
555565
556566
557567
558-@Callable(dx)
559-func userOrdersREADONLY (cf) = {
560- let dY = Y(cf)
561- let dZ = valueOrElse(getString(dY), "")
562- $Tuple2(nil, [("%s%s__userSaleNfts__" + dZ)])
568+@Callable(dC)
569+func userOrdersREADONLY (ck) = {
570+ let ed = ad(ck)
571+ let ee = valueOrElse(getString(D, ed), "")
572+ $Tuple2(nil, [("%s%s__userSaleNfts__" + ee)])
573+ }
574+
575+
576+
577+@Callable(dC)
578+func orderInfoREADONLY (ef) = {
579+ let eg = valueOrElse(getInteger(D, ac(ef)), 0)
580+ let eh = valueOrElse(getString(D, aa(ef)), "")
581+ $Tuple2(nil, [("%s%d__marketNftPrice__" + toString(eg)), ("%s%s__marketNftSeller__" + eh)])
563582 }
564583
565584
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "__"
55
66 let b = take(drop(this.bytes, 1), 1)
77
88 let c = {
99 let d = b
1010 if ((base58'2W' == d))
1111 then 1440
1212 else if ((base58'2T' == d))
1313 then 60
1414 else throw("Unknown chain")
1515 }
1616
1717 let e = {
1818 let d = b
1919 if ((base58'2W' == d))
2020 then 10080
2121 else if ((base58'2T' == d))
2222 then 180
2323 else throw("Unknown chain")
2424 }
2525
2626 let f = {
2727 let d = b
2828 if ((base58'2W' == d))
2929 then 0
3030 else if ((base58'2T' == d))
3131 then 1146000
3232 else throw("Unknown chain")
3333 }
3434
3535 let g = {
3636 let d = b
3737 if ((base58'2W' == d))
3838 then base58'9wc3LXNA4TEBsXyKtoLE9mrbDD7WMHXvXrCjZvabLAsi'
3939 else if ((base58'2T' == d))
4040 then base58'6mWwf9mZBjVgkC54idpyaZLQfAosD914wT8fGf2iiY63'
4141 else throw("Unknown chain")
4242 }
4343
4444 let h = {
4545 let d = b
4646 if ((base58'2W' == d))
4747 then "3PFwYta8biEz31zpeFe5DJK8wE5trSpQVF8"
4848 else if ((base58'2T' == d))
4949 then "3N7UuYar6264P58FBhVWKPQAh4Yua2hgngv"
5050 else throw("Unknown chain")
5151 }
5252
5353 let i = {
5454 let d = b
5555 if ((base58'2W' == d))
5656 then "3PLncXtS1U83D6cQbFD3H8rBHPLgzxSFKZ1"
5757 else if ((base58'2T' == d))
5858 then "3NDCyBG5q85JuaRiigUeEtainyjCQT3XpZm"
5959 else throw("Unknown chain")
6060 }
6161
6262 func j (k,l) = valueOrErrorMessage(getString(k, l), makeString(["mandatory ", toString(k), ".", l, " is not defined"], ""))
6363
6464
6565 let m = 1
6666
6767 let n = 2
6868
6969 let o = 4
7070
7171 let p = 5
7272
73-func q () = "%s__restConfig"
73+let q = 6
74+
75+func r () = "%s__restConfig"
7476
7577
76-func r () = "%s__rest2Addr"
78+func s () = "%s__rest2Addr"
7779
7880
79-func s (t) = split_4C(j(t, q()), a)
81+func t (u) = split_4C(j(u, r()), a)
8082
8183
82-func u (v,w) = valueOrErrorMessage(addressFromString(v[w]), ("Rest cfg doesn't contain address at index " + toString(w)))
84+func v (w,x) = valueOrErrorMessage(addressFromString(w[x]), ("Rest cfg doesn't contain address at index " + toString(x)))
8385
8486
85-let x = addressFromStringValue(valueOrElse(getString(this, r()), h))
87+let y = addressFromStringValue(valueOrElse(getString(this, s()), h))
8688
87-let v = s(x)
89+let w = t(y)
8890
89-let y = u(v, m)
91+let z = v(w, m)
9092
91-let z = u(v, n)
93+let A = v(w, n)
9294
93-let A = u(v, o)
95+let B = v(w, o)
9496
95-let B = u(v, p)
97+let C = v(w, p)
9698
97-let C = "oldAcresContract"
99+let D = v(w, q)
98100
99-func D (E) = ("lastWeekTxIdByUser_" + E)
101+let E = "oldAcresContract"
102+
103+func F (G) = ("lastWeekTxIdByUser_" + G)
100104
101105
102-func F (E) = ("curWeekTxIdByUser_" + E)
106+func H (G) = ("curWeekTxIdByUser_" + G)
103107
104108
105-let G = "wlg_assetId"
109+let I = "wlg_assetId"
106110
107-let H = valueOrErrorMessage(getBinary(z, G), "WLGOLD is not issued yet")
111+let J = valueOrErrorMessage(getBinary(A, I), "WLGOLD is not issued yet")
108112
109-let I = "acresAssetId"
113+let K = "acresAssetId"
110114
111-let J = valueOrErrorMessage(getBinary(y, I), "ACRES is not issued yet")
115+let L = valueOrErrorMessage(getBinary(z, K), "ACRES is not issued yet")
112116
113-func K (L) = ("stakedDuckByOwner_" + L)
117+func M (N) = ("stakedDuckByOwner_" + N)
114118
115119
116-func M (L) = ("stakedNFTsByOwner_" + L)
120+func O (N) = ("stakedNFTsByOwner_" + N)
117121
118122
119-func N (E) = ("accountCustomNameByAddr_" + E)
123+func P (G) = ("accountCustomNameByAddr_" + G)
120124
121125
122-func O (E) = ("accRefBy_" + E)
126+func Q (G) = ("accRefBy_" + G)
123127
124128
125-func P (E) = ("accReferrals_" + E)
129+func R (G) = ("accReferrals_" + G)
126130
127131
128-func Q (E) = ("userBet_" + E)
132+func S (G) = ("userBet_" + G)
129133
130134
131-func R (E,S) = ((("userWeekTickets_" + E) + "_") + toString(S))
135+func T (G,U) = ((("userWeekTickets_" + G) + "_") + toString(U))
132136
133137
134-func T (S) = ("totalWeekTickets_" + toString(S))
138+func V (U) = ("totalWeekTickets_" + toString(U))
135139
136140
137-func U (V) = {
138- let W = (V * c)
139- let X = if ((W > f))
140- then W
141- else (W + f)
142- (toInt(value(value(blockInfoByHeight(X)).vrf)) % 4)
141+func W (X) = {
142+ let Y = (X * c)
143+ let Z = if ((Y > f))
144+ then Y
145+ else (Y + f)
146+ (toInt(value(value(blockInfoByHeight(Z)).vrf)) % 4)
143147 }
144148
145149
146-func Y (E) = ("assetIds_" + E)
150+func aa (ab) = ("seller_" + ab)
147151
148152
149-let Z = 0
153+func ac (ab) = ("price_" + ab)
150154
151-let aa = 1
152155
153-let ab = 2
156+func ad (G) = ("assetIds_" + G)
154157
155-let ac = 3
156158
157-let ad = 4
159+let ae = 0
158160
159-let ae = 5
161+let af = 1
160162
161-let af = 6
163+let ag = 2
162164
163-let ag = 7
165+let ah = 3
164166
165-let ah = 8
167+let ai = 4
166168
167-let ai = 9
169+let aj = 5
168170
169-let aj = 10
171+let ak = 6
170172
171-let ak = 11
173+let al = 7
172174
173-let al = 12
175+let am = 8
174176
175-let am = 13
177+let an = 9
176178
177-let an = 14
179+let ao = 10
178180
179-let ao = 15
181+let ap = 11
180182
181-let ap = 16
183+let aq = 12
182184
183-let aq = 17
185+let ar = 13
184186
185-let ar = 18
187+let as = 14
186188
187-let as = 19
189+let at = 15
188190
189-let at = 20
191+let au = 16
190192
191-let au = 21
193+let av = 17
192194
193-let av = 22
195+let aw = 18
194196
195-let aw = 23
197+let ax = 19
196198
197-let ax = 24
199+let ay = 20
198200
199-let ay = 25
201+let az = 21
200202
201-let az = 26
203+let aA = 22
202204
203-let aA = 27
205+let aB = 23
204206
205-let aB = 28
207+let aC = 24
206208
207-let aC = 29
209+let aD = 25
208210
209-let aD = 30
211+let aE = 26
210212
211-let aE = 31
213+let aF = 27
212214
213-let aF = 32
215+let aG = 28
214216
215-let aG = 33
217+let aH = 29
216218
217-let aH = 34
219+let aI = 30
218220
219-let aI = 35
221+let aJ = 31
220222
221-func aJ (aK) = {
222- let d = aK
223+let aK = 32
224+
225+let aL = 33
226+
227+let aM = 34
228+
229+let aN = 35
230+
231+func aO (aP) = {
232+ let d = aP
223233 if ($isInstanceOf(d, "(Int, Int, Int, Int)"))
224234 then {
225- let aL = d
226- aL
235+ let aQ = d
236+ aQ
227237 }
228238 else throw("fail to cast into (Int, Int, Int, Int)")
229239 }
230240
231241
232-func aM (aK) = {
233- let d = aK
242+func aR (aP) = {
243+ let d = aP
234244 if ($isInstanceOf(d, "(Int, Int, Int)"))
235245 then {
236- let aL = d
237- aL
246+ let aQ = d
247+ aQ
238248 }
239249 else throw("fail to cast into (Int, Int, Int)")
240250 }
241251
242252
243-func aN (aK) = {
244- let d = aK
253+func aS (aP) = {
254+ let d = aP
245255 if ($isInstanceOf(d, "(Int, Int)"))
246256 then {
247- let aL = d
248- aL
257+ let aQ = d
258+ aQ
249259 }
250260 else throw("fail to cast into (Int, Int)")
251261 }
252262
253263
254-let aO = 1000000
264+let aT = 1000000
255265
256-let aP = 100000000
266+let aU = 100000000
257267
258-let aQ = 200000
268+let aV = 200000
259269
260-let aR = 100000
270+let aW = 100000
261271
262-let aS = 400000
272+let aX = 400000
263273
264-let aT = 31557600000
274+let aY = 31557600000
265275
266-let aU = 86400000
276+let aZ = 86400000
267277
268-let aV = 1000000000
278+let ba = 1000000000
269279
270-let aW = 800000
280+let bb = 800000
271281
272-let aX = 100000
282+let bc = 100000
273283
274-let aY = 100000
284+let bd = 100000
275285
276-let aZ = 1731279600000
286+let be = 1731279600000
277287
278-let ba = "teamAddr"
288+let bf = "teamAddr"
279289
280-let bb = "lastClaimedTime_team"
290+let bg = "lastClaimedTime_team"
281291
282-let bc = "teamAmountLeft"
292+let bh = "teamAmountLeft"
283293
284-let bd = "lastClaimedTime_activities"
294+let bi = "lastClaimedTime_activities"
285295
286-let be = "activitiesAmountLeft"
296+let bj = "activitiesAmountLeft"
287297
288-let bf = "stakersAmountLeft"
298+let bk = "stakersAmountLeft"
289299
290-func bg (E) = ("lastClaimedTimeUser_" + E)
300+func bl (G) = ("lastClaimedTimeUser_" + G)
291301
292302
293-func bh (bi,bj) = fraction(bi, (aS * (bj + 1)), (6 * aO))
303+func bm (bn,bo) = fraction(bn, (aX * (bo + 1)), (6 * aT))
294304
295305
296-let bk = "wlg_issue10Time"
306+let bp = "wlg_issue10Time"
297307
298-let bl = "wlg_issueTime"
308+let bq = "wlg_issueTime"
299309
300-let bm = "wlg_issuedAmount"
310+let br = "wlg_issuedAmount"
301311
302-let bn = "zbill_issuedAmount"
312+let bs = "zbill_issuedAmount"
303313
304-func bo (E) = ("acresStakedAmountByUser_" + E)
314+func bt (G) = ("acresStakedAmountByUser_" + G)
305315
306316
307-let bp = "acresStakedAmountTotal"
317+let bu = "acresStakedAmountTotal"
308318
309-let bq = "totalFarmingPower"
319+let bv = "totalFarmingPower"
310320
311-let br = 0
321+let bw = 0
312322
313-let bs = 1
323+let bx = 1
314324
315-let bt = 2
325+let by = 2
316326
317-let bu = 3
327+let bz = 3
318328
319-let bv = 4
329+let bA = 4
320330
321-let bw = "nftTotalIssued"
331+let bB = "nftTotalIssued"
322332
323-let bx = "nftTotalBurned"
333+let bC = "nftTotalBurned"
324334
325-let by = "WlNftTotalStaked"
335+let bD = "WlNftTotalStaked"
326336
327-func bz (E) = ("userWlNftNumber_" + E)
337+func bE (G) = ("userWlNftNumber_" + G)
328338
329339
330-func bA (E) = ("userFullBonus_" + E)
340+func bF (G) = ("userFullBonus_" + G)
331341
332342
333-let bB = [0, 10, 20, 40, 80, 150, 250, 400, 700, 1000]
343+let bG = [0, 10, 20, 40, 80, 150, 250, 400, 700, 1000]
334344
335-func bC (bD) = {
336- let bE = ((bD + 99999999) / aP)
337- func bF (bG,bH) = if ((bH >= bE))
338- then bG
339- else (bG + 1)
345+func bH (bI) = {
346+ let bJ = ((bI + 99999999) / aU)
347+ func bK (bL,bM) = if ((bM >= bJ))
348+ then bL
349+ else (bL + 1)
340350
341- let bI = bB
342- let bJ = size(bI)
343- let bK = 0
344- func bL (bM,bN) = if ((bN >= bJ))
345- then bM
346- else bF(bM, bI[bN])
351+ let bN = bG
352+ let bO = size(bN)
353+ let bP = 0
354+ func bQ (bR,bS) = if ((bS >= bO))
355+ then bR
356+ else bK(bR, bN[bS])
347357
348- func bO (bM,bN) = if ((bN >= bJ))
349- then bM
358+ func bT (bR,bS) = if ((bS >= bO))
359+ then bR
350360 else throw("List size exceeds 10")
351361
352- bO(bL(bL(bL(bL(bL(bL(bL(bL(bL(bL(bK, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
362+ bT(bQ(bQ(bQ(bQ(bQ(bQ(bQ(bQ(bQ(bQ(bP, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
353363 }
354364
355365
356-func bP (bD) = ((bD * 20) * (bC(bD) + 4))
366+func bU (bI) = ((bI * 20) * (bH(bI) + 4))
357367
358368
359-func bQ (bD,bR) = {
360- let bS = bP(bD)
361- $Tuple2(fraction(bS, (aO + bR), aO), bS)
369+func bV (bI,bW) = {
370+ let bX = bU(bI)
371+ $Tuple2(fraction(bX, (aT + bW), aT), bX)
362372 }
363373
364374
365-func bT (bU,y) = {
366- let bV = valueOrElse(getInteger(y, bq), 0)
367- let bW = valueOrElse(getInteger(y, bo(bU)), 0)
368- let bX = valueOrElse(getInteger(y, bA(bU)), 0)
369- let bY = bQ(bW, bX)
370- let bZ = bY._1
371- let ca = bY._2
372-[bV, bZ, ca, bX]
375+func bY (bZ,z) = {
376+ let ca = valueOrElse(getInteger(z, bv), 0)
377+ let cb = valueOrElse(getInteger(z, bt(bZ)), 0)
378+ let cc = valueOrElse(getInteger(z, bF(bZ)), 0)
379+ let cd = bV(cb, cc)
380+ let ce = cd._1
381+ let cf = cd._2
382+[ca, ce, cf, cc]
373383 }
374384
375385
376-let cb = 0
386+let cg = 0
377387
378-let cc = 1
388+let ch = 1
379389
380-let cd = 2
390+let ci = 2
381391
382-func ce (cf,cg,ch,ci) = {
383- let bi = valueOrErrorMessage(getInteger(cg[bt], bm), "WLGOLD is not issued yet")
384- let cj = assetBalance(cg[br], ch)
385- let ck = (assetBalance(cg[bt], ch) - ci)
386- let cl = assetBalance(cg[bu], ch)
387- let cm = assetBalance(cg[bs], ch)
388- let cn = cg[bv]
389- let co = (assetBalance(cn, ch) + valueOrElse(getInteger(cn, bn), 0))
390- let cp = ((cm + ck) + co)
391- let cq = valueOrErrorMessage(getBinary(cg[bt], "wlg_assetId"), "Not initialized yet")
392- let cr = lastBlock.timestamp
393- let cs = valueOrErrorMessage(getInteger(cg[bt], bl), "Not initialized")
394- let ct = assetBalance(cg[bt], cq)
395- let cu = fraction(bi, aQ, aO)
396- let cv = valueOrElse(getInteger(cg[bt], bc), cu)
397- let cw = valueOrElse(getInteger(cg[bt], bb), cs)
398- let cx = addressFromStringValue(value(getString(cg[bt], ba)))
399- let cy = min([fraction(cu, (cr - cw), (3 * aT)), cv])
400- let cz = assetBalance(cx, cq)
401- let cA = fraction(bi, aR, aO)
402- let cB = valueOrElse(getInteger(cg[bt], be), cA)
403- let cC = valueOrElse(getInteger(cg[bt], bd), cs)
404- let cD = min([fraction(cA, (cr - cC), (3 * aT)), cB])
405- let cE = assetBalance(cg[br], cq)
406- let cF = valueOrElse(getInteger(cg[bt], bg(cf)), cs)
407- let cG = ((cF - cs) / aT)
408- let cH = min([cr, (cs + (3 * aT))])
409- let cI = min([((cr - cs) / aT), 2])
410- let cJ = bT(cf, cg[bs])
411- let cK = bh(bi, cI)
412- let cL = (cs + (aT * cI))
413- let cM = (cs + (aT * (cI - 1)))
414- let cN = fraction(cK, (cH - cF), aT)
415- let cO = if ((cG == cI))
416- then cN
417- else if ((cG == (cI - 1)))
392+func cj (ck,cl,cm,cn) = {
393+ let bn = valueOrErrorMessage(getInteger(cl[by], br), "WLGOLD is not issued yet")
394+ let co = assetBalance(cl[bw], cm)
395+ let cp = (assetBalance(cl[by], cm) - cn)
396+ let cq = assetBalance(cl[bz], cm)
397+ let cr = assetBalance(cl[bx], cm)
398+ let cs = cl[bA]
399+ let ct = (assetBalance(cs, cm) + valueOrElse(getInteger(cs, bs), 0))
400+ let cu = ((cr + cp) + ct)
401+ let cv = valueOrErrorMessage(getBinary(cl[by], "wlg_assetId"), "Not initialized yet")
402+ let cw = lastBlock.timestamp
403+ let cx = valueOrErrorMessage(getInteger(cl[by], bq), "Not initialized")
404+ let cy = assetBalance(cl[by], cv)
405+ let cz = fraction(bn, aV, aT)
406+ let cA = valueOrElse(getInteger(cl[by], bh), cz)
407+ let cB = valueOrElse(getInteger(cl[by], bg), cx)
408+ let cC = addressFromStringValue(value(getString(cl[by], bf)))
409+ let cD = min([fraction(cz, (cw - cB), (3 * aY)), cA])
410+ let cE = assetBalance(cC, cv)
411+ let cF = fraction(bn, aW, aT)
412+ let cG = valueOrElse(getInteger(cl[by], bj), cF)
413+ let cH = valueOrElse(getInteger(cl[by], bi), cx)
414+ let cI = min([fraction(cF, (cw - cH), (3 * aY)), cG])
415+ let cJ = assetBalance(cl[bw], cv)
416+ let cK = valueOrElse(getInteger(cl[by], bl(ck)), cx)
417+ let cL = ((cK - cx) / aY)
418+ let cM = min([cw, (cx + (3 * aY))])
419+ let cN = min([((cw - cx) / aY), 2])
420+ let cO = bY(ck, cl[bx])
421+ let cP = bm(bn, cN)
422+ let cQ = (cx + (aY * cN))
423+ let cR = (cx + (aY * (cN - 1)))
424+ let cS = fraction(cP, (cM - cK), aY)
425+ let cT = if ((cL == cN))
426+ then cS
427+ else if ((cL == (cN - 1)))
418428 then {
419- let cP = fraction(bh(bi, (cI - 1)), (cL - cF), aT)
420- (cP + cN)
429+ let cU = fraction(bm(bn, (cN - 1)), (cQ - cK), aY)
430+ (cU + cS)
421431 }
422432 else {
423- let cQ = fraction(bh(bi, (cI - 2)), (cM - cF), aT)
424- let cP = bh(bi, (cI - 1))
425- ((cQ + cP) + cN)
433+ let cV = fraction(bm(bn, (cN - 2)), (cR - cK), aY)
434+ let cU = bm(bn, (cN - 1))
435+ ((cV + cU) + cS)
426436 }
427- let cR = valueOrElse(getInteger(cg[bt], bf), 0)
428- let cS = if ((cJ[cb] != 0))
429- then fraction(cO, cJ[cc], cJ[cb])
437+ let cW = valueOrElse(getInteger(cl[by], bk), 0)
438+ let cX = if ((cO[cg] != 0))
439+ then fraction(cT, cO[ch], cO[cg])
430440 else 0
431- let cT = valueOrElse(getInteger(cg[bt], bk), aZ)
432- let cU = fraction(aV, max([(cr - cT), 0]), aU)
433- let cV = fraction(cU, aX, aO)
434- let cW = fraction(cU, aY, aO)
435- let cX = max([(cr - max([aZ, cF])), 0])
436- let cY = if ((cJ[cb] != 0))
437- then fraction(fraction(fraction(aV, cX, aU), cJ[cc], cJ[cb]), aW, aO)
441+ let cY = valueOrElse(getInteger(cl[by], bp), be)
442+ let cZ = fraction(ba, max([(cw - cY), 0]), aZ)
443+ let da = fraction(cZ, bc, aT)
444+ let db = fraction(cZ, bd, aT)
445+ let dc = max([(cw - max([be, cK])), 0])
446+ let dd = if ((cO[cg] != 0))
447+ then fraction(fraction(fraction(ba, dc, aZ), cO[ch], cO[cg]), bb, aT)
438448 else 0
439- let cZ = max([aZ, cr])
440- let da = valueOrElse(getInteger(cg[bs], bp), 0)
441- let db = valueOrElse(getInteger(cg[bs], bw), 0)
442- let dc = valueOrElse(getInteger(cg[bs], bx), 0)
443- let dd = valueOrElse(getInteger(cg[bs], by), 0)
444- let de = valueOrElse(getInteger(cg[bs], bz(valueOrElse(cf, ""))), 0)
445-[bi, ct, fraction(cp, aP, bi), cp, cj, cm, ck, cl, cs, cw, cu, cv, cy, cz, cA, cB, cD, cE, cI, cR, cK, cF, co, cS, cH, cU, cV, cW, cY, cZ, cJ[cb], da, db, dc, dd, de]
449+ let de = max([be, cw])
450+ let df = valueOrElse(getInteger(cl[bx], bu), 0)
451+ let dg = valueOrElse(getInteger(cl[bx], bB), 0)
452+ let dh = valueOrElse(getInteger(cl[bx], bC), 0)
453+ let di = valueOrElse(getInteger(cl[bx], bD), 0)
454+ let dj = valueOrElse(getInteger(cl[bx], bE(valueOrElse(ck, ""))), 0)
455+[bn, cy, fraction(cu, aU, bn), cu, co, cr, cp, cq, cx, cB, cz, cA, cD, cE, cF, cG, cI, cJ, cN, cW, cP, cK, ct, cX, cM, cZ, da, db, dd, de, cO[cg], df, dg, dh, di, dj]
446456 }
447457
448458
449-func df (dg) = {
450- let E = addressFromString(dg)
451- let dh = if (isDefined(E))
452- then wavesBalance(value(E))
459+func dk (dl) = {
460+ let G = addressFromString(dl)
461+ let dm = if (isDefined(G))
462+ then wavesBalance(value(G))
453463 else BalanceDetails(0, 0, 0, 0)
454- let di = if (isDefined(E))
455- then assetBalance(value(E), g)
464+ let dn = if (isDefined(G))
465+ then assetBalance(value(G), g)
456466 else 0
457- let dj = if (isDefined(E))
458- then assetBalance(value(E), H)
467+ let do = if (isDefined(G))
468+ then assetBalance(value(G), J)
459469 else 0
460- let dk = valueOrElse(getString(y, N(dg)), dg)
461- let dl = O(dg)
462- let dm = getString(y, dl)
463- let dn = valueOrElse(getString(y, P(dg)), "")
464- let do = valueOrElse(getString(y, D(dg)), "")
465- let dp = valueOrElse(getString(y, F(dg)), "")
466- let dq = if (isDefined(E))
467- then assetBalance(value(E), J)
470+ let dp = valueOrElse(getString(z, P(dl)), dl)
471+ let dq = Q(dl)
472+ let dr = getString(z, dq)
473+ let ds = valueOrElse(getString(z, R(dl)), "")
474+ let dt = valueOrElse(getString(z, F(dl)), "")
475+ let du = valueOrElse(getString(z, H(dl)), "")
476+ let dv = if (isDefined(G))
477+ then assetBalance(value(G), L)
468478 else 0
469- let dr = valueOrElse(getInteger(y, bo(dg)), 0)
470- let ds = bC(dr)
471- let dt = bT(dg, y)
472- let du = if ((ds >= size(bB)))
479+ let dw = valueOrElse(getInteger(z, bt(dl)), 0)
480+ let dx = bH(dw)
481+ let dy = bY(dl, z)
482+ let dz = if ((dx >= size(bG)))
473483 then 0
474- else (((bB[ds] * aP) + 1) - dr)
475- let dv = valueOrElse(getString(y, M(dg)), "")
476- let dw = valueOrElse(getInteger(y, bA(dg)), 0)
477-[("%s%s__customName__" + dk), ("%s%s__referredBy__" + valueOrElse(dm, "")), ("%s%s__referrals__" + dn), ("%s%s__lastWeekTxId__" + do), ("%s%s__curWeekTxId__" + do), ("%s%d__wavesBalance__" + toString(dh.available)), ("%s%d__usdtBalance__" + toString(di)), ("%s%d__wlgoldBalance__" + toString(dj)), ("%s%d__acresBalance__" + toString(dq)), ("%s%d__stakedAcres__" + toString(dr)), ("%s%d__currentLvl__" + toString(ds)), ("%s%d__acresToNextLvl__" + toString(du)), ("%s%s__userNFTs__" + dv), ("%s%d__userBonus__" + toString(dw)), ("%s%d__userBaseFarmingPower__" + toString(dt[cd])), ("%s%d__userFarmingPower__" + toString(dt[cc])), ("%s%d__totalFarmingPower__" + toString(dt[cb]))]
484+ else (((bG[dx] * aU) + 1) - dw)
485+ let dA = valueOrElse(getString(z, O(dl)), "")
486+ let dB = valueOrElse(getInteger(z, bF(dl)), 0)
487+[("%s%s__customName__" + dp), ("%s%s__referredBy__" + valueOrElse(dr, "")), ("%s%s__referrals__" + ds), ("%s%s__lastWeekTxId__" + dt), ("%s%s__curWeekTxId__" + dt), ("%s%d__wavesBalance__" + toString(dm.available)), ("%s%d__usdtBalance__" + toString(dn)), ("%s%d__wlgoldBalance__" + toString(do)), ("%s%d__acresBalance__" + toString(dv)), ("%s%d__stakedAcres__" + toString(dw)), ("%s%d__currentLvl__" + toString(dx)), ("%s%d__acresToNextLvl__" + toString(dz)), ("%s%s__userNFTs__" + dA), ("%s%d__userBonus__" + toString(dB)), ("%s%d__userBaseFarmingPower__" + toString(dy[ci])), ("%s%d__userFarmingPower__" + toString(dy[ch])), ("%s%d__totalFarmingPower__" + toString(dy[cg]))]
478488 }
479489
480490
481-@Callable(dx)
482-func constructorV1 (cg) = if ((dx.caller != this))
491+@Callable(dC)
492+func constructorV1 (cl) = if ((dC.caller != this))
483493 then throw("permissions denied")
484494 else {
485- func dy (bG,dz) = (bG + "%s")
495+ func dD (bL,dE) = (bL + "%s")
486496
487- let dA = {
488- let bI = cg
489- let bJ = size(bI)
490- let bK = ""
491- func bL (bM,bN) = if ((bN >= bJ))
492- then bM
493- else dy(bM, bI[bN])
497+ let dF = {
498+ let bN = cl
499+ let bO = size(bN)
500+ let bP = ""
501+ func bQ (bR,bS) = if ((bS >= bO))
502+ then bR
503+ else dD(bR, bN[bS])
494504
495- func bO (bM,bN) = if ((bN >= bJ))
496- then bM
505+ func bT (bR,bS) = if ((bS >= bO))
506+ then bR
497507 else throw("List size exceeds 10")
498508
499- bO(bL(bL(bL(bL(bL(bL(bL(bL(bL(bL(bK, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
509+ bT(bQ(bQ(bQ(bQ(bQ(bQ(bQ(bQ(bQ(bQ(bP, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
500510 }
501-[StringEntry(q(), makeString(dA :: cg, a)), StringEntry(r(), toString(this))]
511+[StringEntry(r(), makeString(dF :: cl, a)), StringEntry(s(), toString(this))]
502512 }
503513
504514
505515
506-@Callable(dx)
507-func walletInfoREADONLY (dg) = $Tuple2(nil, df(dg))
516+@Callable(dC)
517+func walletInfoREADONLY (dl) = $Tuple2(nil, dk(dl))
508518
509519
510520
511-@Callable(dx)
512-func conversionInfoREADONLY (dg) = {
513- let dB = addressFromStringValue(getStringValue(y, C))
514- let dC = aN(invoke(dB, "unstakeAllAcresREADONLY", [dg], nil))
515- let dD = dC._1
516- let dE = dC._2
517- let dF = aJ(invoke(y, "unstakeLandsREADONLY", [dg], nil))
518- let dG = dF._1
519- let dH = dF._2
520- let dI = dF._3
521- let dJ = dF._4
522- let dK = addressFromStringValue(i)
523- let dL = valueOrElse(getString(dK, K(dg)), "")
524- let dM = if ((dL != ""))
525- then aM(invoke(dK, "unstakeDuckREADONLY", [dL, dg], nil))
521+@Callable(dC)
522+func conversionInfoREADONLY (dl) = {
523+ let dG = addressFromStringValue(getStringValue(z, E))
524+ let dH = aS(invoke(dG, "unstakeAllAcresREADONLY", [dl], nil))
525+ let dI = dH._1
526+ let dJ = dH._2
527+ let dK = aO(invoke(z, "unstakeLandsREADONLY", [dl], nil))
528+ let dL = dK._1
529+ let dM = dK._2
530+ let dN = dK._3
531+ let dO = dK._4
532+ let dP = addressFromStringValue(i)
533+ let dQ = valueOrElse(getString(dP, M(dl)), "")
534+ let dR = if ((dQ != ""))
535+ then aR(invoke(dP, "unstakeDuckREADONLY", [dQ, dl], nil))
526536 else $Tuple3(0, 0, 0)
527- let dN = dM._1
528- let dO = dM._2
529- let dP = dM._3
530- $Tuple2(nil, [("%s%d__unstakedAcres__" + toString(dD)), ("%s%d__claimedAcres__" + toString(dE)), ("%s%d__acresFromPieces__" + toString(dG)), ("%s%d__acresFromRes__" + toString(dH)), ("%s%d__acresFromMat__" + toString(dI)), ("%s%d__acresFromProd__" + toString(dJ)), ("%s%d__acresFromDuckRes__" + toString(dN)), ("%s%d__acresFromDuckMat__" + toString(dO)), ("%s%d__acresFromDuckProd__" + toString(dP))])
537+ let dS = dR._1
538+ let dT = dR._2
539+ let dU = dR._3
540+ $Tuple2(nil, [("%s%d__unstakedAcres__" + toString(dI)), ("%s%d__claimedAcres__" + toString(dJ)), ("%s%d__acresFromPieces__" + toString(dL)), ("%s%d__acresFromRes__" + toString(dM)), ("%s%d__acresFromMat__" + toString(dN)), ("%s%d__acresFromProd__" + toString(dO)), ("%s%d__acresFromDuckRes__" + toString(dS)), ("%s%d__acresFromDuckMat__" + toString(dT)), ("%s%d__acresFromDuckProd__" + toString(dU))])
531541 }
532542
533543
534544
535-@Callable(dx)
536-func wlgStatsREADONLY (cf) = {
537- let dQ = ce(cf, [x, y, z, A, B], g, 0)
538- $Tuple2(nil, [("%s%d__wlgAmount__" + toString(dQ[Z])), ("%s%d__wlgWlg__" + toString(dQ[aa])), ("%s%d__wlgPrice__" + toString(dQ[ab])), ("%s%d__usdtFunds__" + toString(dQ[ac])), ("%s%d__usdtActivity__" + toString(dQ[ad])), ("%s%d__usdtStaking__" + toString(dQ[ae])), ("%s%d__usdtArbitrage__" + toString(dQ[af])), ("%s%d__usdtPool__" + toString(dQ[ag])), ("%s%d__wlgIssueTime__" + toString(dQ[ah])), ("%s%d__wlgLastTeamActTime__" + toString(dQ[ai])), ("%s%d__wlgTeamTotal__" + toString(dQ[aj])), ("%s%d__wlgTeamAmLeft__" + toString(dQ[ak])), ("%s%d__wlgTeamAmAvailNow__" + toString(dQ[al])), ("%s%d__wlgTeamWlgold__" + toString(dQ[am])), ("%s%d__wlgActTotal__" + toString(dQ[an])), ("%s%d__wlgActAmLeft__" + toString(dQ[ao])), ("%s%d__wlgActAmAvailNow__" + toString(dQ[ap])), ("%s%d__wlgActWlgold__" + toString(dQ[aq])), ("%s%d__wlgCurPeriod__" + toString(dQ[ar])), ("%s%d__wlgAmLeftTotal__" + toString(dQ[as])), ("%s%d__wlgCurPeriodDistribution__" + toString(dQ[at])), ("%s%d__wlgLastUserTime__" + toString(dQ[au])), ("%s%d__wlgInvestFundTotal__" + toString(dQ[av])), ("%s%d__wlgUserAmAvailNow__" + toString(dQ[aw])), ("%s%d__wlgEffUserTime__" + toString(dQ[ax])), ("%s%d__wlgIssue10AvailNow__" + toString(dQ[ay])), ("%s%d__wlgMarketingIssue10AvailNow__" + toString(dQ[az])), ("%s%d__wlgTeamIssue10AvailNow__" + toString(dQ[aA])), ("%s%d__wlgUserIssue10AvailNow__" + toString(dQ[aB])), ("%s%d__wlgLastIssue10Time__" + toString(dQ[aC])), ("%s%d__wlgTotalFarmingPower__" + toString(dQ[aD])), ("%s%d__wlgAcresStakedTotal__" + toString(dQ[aE])), ("%s%d__nftTotalIssued__" + toString(dQ[aF])), ("%s%d__nftTotalBurned__" + toString(dQ[aG])), ("%s%d__wlNftTotalStaked__" + toString(dQ[aH])), ("%s%d__wlNftUserStaked__" + toString(dQ[aI]))])
545+@Callable(dC)
546+func wlgStatsREADONLY (ck) = {
547+ let dV = cj(ck, [y, z, A, B, C], g, 0)
548+ $Tuple2(nil, [("%s%d__wlgAmount__" + toString(dV[ae])), ("%s%d__wlgWlg__" + toString(dV[af])), ("%s%d__wlgPrice__" + toString(dV[ag])), ("%s%d__usdtFunds__" + toString(dV[ah])), ("%s%d__usdtActivity__" + toString(dV[ai])), ("%s%d__usdtStaking__" + toString(dV[aj])), ("%s%d__usdtArbitrage__" + toString(dV[ak])), ("%s%d__usdtPool__" + toString(dV[al])), ("%s%d__wlgIssueTime__" + toString(dV[am])), ("%s%d__wlgLastTeamActTime__" + toString(dV[an])), ("%s%d__wlgTeamTotal__" + toString(dV[ao])), ("%s%d__wlgTeamAmLeft__" + toString(dV[ap])), ("%s%d__wlgTeamAmAvailNow__" + toString(dV[aq])), ("%s%d__wlgTeamWlgold__" + toString(dV[ar])), ("%s%d__wlgActTotal__" + toString(dV[as])), ("%s%d__wlgActAmLeft__" + toString(dV[at])), ("%s%d__wlgActAmAvailNow__" + toString(dV[au])), ("%s%d__wlgActWlgold__" + toString(dV[av])), ("%s%d__wlgCurPeriod__" + toString(dV[aw])), ("%s%d__wlgAmLeftTotal__" + toString(dV[ax])), ("%s%d__wlgCurPeriodDistribution__" + toString(dV[ay])), ("%s%d__wlgLastUserTime__" + toString(dV[az])), ("%s%d__wlgInvestFundTotal__" + toString(dV[aA])), ("%s%d__wlgUserAmAvailNow__" + toString(dV[aB])), ("%s%d__wlgEffUserTime__" + toString(dV[aC])), ("%s%d__wlgIssue10AvailNow__" + toString(dV[aD])), ("%s%d__wlgMarketingIssue10AvailNow__" + toString(dV[aE])), ("%s%d__wlgTeamIssue10AvailNow__" + toString(dV[aF])), ("%s%d__wlgUserIssue10AvailNow__" + toString(dV[aG])), ("%s%d__wlgLastIssue10Time__" + toString(dV[aH])), ("%s%d__wlgTotalFarmingPower__" + toString(dV[aI])), ("%s%d__wlgAcresStakedTotal__" + toString(dV[aJ])), ("%s%d__nftTotalIssued__" + toString(dV[aK])), ("%s%d__nftTotalBurned__" + toString(dV[aL])), ("%s%d__wlNftTotalStaked__" + toString(dV[aM])), ("%s%d__wlNftUserStaked__" + toString(dV[aN]))])
539549 }
540550
541551
542552
543-@Callable(dx)
544-func lotteryStatsREADONLY (cf) = {
545- let dR = (height / c)
546- let S = (height / e)
547- let dS = (S - 1)
548- let dT = valueOrElse(getInteger(z, R(cf, S)), 0)
549- let dU = valueOrElse(getInteger(z, R(cf, dS)), 0)
550- let dV = valueOrElse(getInteger(z, T(S)), 0)
551- let dW = valueOrElse(getInteger(z, T(dS)), 0)
552- let dX = valueOrElse(getString(z, Q(cf)), "")
553- $Tuple2(nil, [((("%s%d%d__totalTickets__" + toString(dW)) + a) + toString(dV)), ((("%s%d%d__userTickets__" + toString(dU)) + a) + toString(dT)), ("%s%d__blockchainWeek__" + toString(S)), ("%s%d__blockchainDay__" + toString(dR)), ("%s%d__blockchainMinute__" + toString((height % c))), ("%s%d__winningBetToday__" + toString(U(dR))), ("%s%s__usersBet__" + dX)])
553+@Callable(dC)
554+func lotteryStatsREADONLY (ck) = {
555+ let dW = (height / c)
556+ let U = (height / e)
557+ let dX = (U - 1)
558+ let dY = valueOrElse(getInteger(A, T(ck, U)), 0)
559+ let dZ = valueOrElse(getInteger(A, T(ck, dX)), 0)
560+ let ea = valueOrElse(getInteger(A, V(U)), 0)
561+ let eb = valueOrElse(getInteger(A, V(dX)), 0)
562+ let ec = valueOrElse(getString(A, S(ck)), "")
563+ $Tuple2(nil, [((("%s%d%d__totalTickets__" + toString(eb)) + a) + toString(ea)), ((("%s%d%d__userTickets__" + toString(dZ)) + a) + toString(dY)), ("%s%d__blockchainWeek__" + toString(U)), ("%s%d__blockchainDay__" + toString(dW)), ("%s%d__blockchainMinute__" + toString((height % c))), ("%s%d__winningBetToday__" + toString(W(dW))), ("%s%s__usersBet__" + ec)])
554564 }
555565
556566
557567
558-@Callable(dx)
559-func userOrdersREADONLY (cf) = {
560- let dY = Y(cf)
561- let dZ = valueOrElse(getString(dY), "")
562- $Tuple2(nil, [("%s%s__userSaleNfts__" + dZ)])
568+@Callable(dC)
569+func userOrdersREADONLY (ck) = {
570+ let ed = ad(ck)
571+ let ee = valueOrElse(getString(D, ed), "")
572+ $Tuple2(nil, [("%s%s__userSaleNfts__" + ee)])
573+ }
574+
575+
576+
577+@Callable(dC)
578+func orderInfoREADONLY (ef) = {
579+ let eg = valueOrElse(getInteger(D, ac(ef)), 0)
580+ let eh = valueOrElse(getString(D, aa(ef)), "")
581+ $Tuple2(nil, [("%s%d__marketNftPrice__" + toString(eg)), ("%s%s__marketNftSeller__" + eh)])
563582 }
564583
565584

github/deemru/w8io/169f3d6 
404.35 ms