tx · 99RPjSw6t7wYwwUeZTCSnBFii99xDpE6Q5si4stjhkh8

3PCxF4JryswYYp9mpUtE725wjTgvpBmp3M9:  -0.01200000 Waves

2024.01.10 13:26 [3991100] smart account 3PCxF4JryswYYp9mpUtE725wjTgvpBmp3M9 > SELF 0.00000000 Waves

{ "type": 13, "id": "99RPjSw6t7wYwwUeZTCSnBFii99xDpE6Q5si4stjhkh8", "fee": 1200000, "feeAssetId": null, "timestamp": 1704882401373, "version": 2, "chainId": 87, "sender": "3PCxF4JryswYYp9mpUtE725wjTgvpBmp3M9", "senderPublicKey": "ABaPDrNzForWeg3KKG9KFKPWxuihEJxK9fjZ9nDfvE26", "proofs": [ "BiNZuYiFren9JfftQQZ8TtPCoddFygQHPKYzdfLnx8gCDNomfjL5DkhNwSEZzEGGo4UnCa4cptB1LPocvhPjQK3" ], "script": "base64:BgIgCAISABIAEgMKAQgSABIDCgEIEgASAwoBCBIAEgMKAQgVAQ10cnlHZXRJbnRlZ2VyAgdhZGRyZXNzA2tleQQHJG1hdGNoMAkAmggCBQdhZGRyZXNzBQNrZXkDCQABAgUHJG1hdGNoMAIDSW50BAFiBQckbWF0Y2gwBQFiAAABDHRyeUdldFN0cmluZwIHYWRkcmVzcwNrZXkEByRtYXRjaDAJAJ0IAgUHYWRkcmVzcwUDa2V5AwkAAQIFByRtYXRjaDACBlN0cmluZwQBYgUHJG1hdGNoMAUBYgIAAAJkOACAwtcvAAdwb29sQkJCARoBV1Luk1YUTX4HjNKFD+Z+XFc3fhyf7zyCHQAGQkJCc3RyCQDYBAEFB3Bvb2xCQkIADXB1enpsZVN0YWtpbmcJAQdBZGRyZXNzAQEaAVeUaIz57qK5qp/W9Y68qY9nGpwG9BYpibsAB2J1cm54dG4BICRPdXlqfjM5uPsM/4SpcVxeyi3eM6DEXWn56kQR7ExUAAV3YXZlcwEEE6vZMwAJd2hpcmxwb29sASBZ443cwrUjukoU3MTQrxQJ5mTmBL4lBgsmTuVQbZdZxwAGcHV6emxlASDxGv4l/vaZOPRpKsTf4RLWR7LGyg66Nwmvd20fjqLlYwAEcm9tZQEgi1+UAYTDZcEkNI7/G/xwkTFIaskx6qjLk/P5nzRECM8AFmtleUFkZHJlc3Nlc1JlZ2lzdGVyZWQCFEFkZHJlc3NlcyByZWdpc3RlcmVkAAlhZGRyZXNzZXMJALMCAgkBDHRyeUdldFN0cmluZwIFBHRoaXMFFmtleUFkZHJlc3Nlc1JlZ2lzdGVyZWQAAQAQa2V5QnVybnh0bkFtb3VudAIWQlVSTi1YVE4gdG90YWwgcmV3YXJkcwANa2V5Um9tZUFtb3VudAISUk9NRSB0b3RhbCByZXdhcmRzAA9rZXlQdXp6bGVBbW91bnQCFFBVWlpMRSB0b3RhbCByZXdhcmRzAA5rZXlXYXZlc0Ftb3VudAITV0FWRVMgdG90YWwgcmV3YXJkcwASa2V5V2hpcmxwb29sQW1vdW50AhdXSElSTFBPT0wgdG90YWwgcmV3YXJkcwAQa2V5VG90YWxORlRwb3dlcgIPVG90YWwgTkZUIHBvd2VyAAdXRlNsaXN0CQDMCAICLEducHk1blZhalBQM1hRUVZ4ckhib01Bc1h0am55V0F4eWJNRGRLcmJyOHNECQDMCAICLEJUOVE0bVFkUVFtZWkycjVZTk1CTWFzWkJRajdteU5haXo2UUhiYTVjUFhTCQDMCAICLEJNdmt5RnRQVm1GYXRwRlI5UVZGS1I1TVlUY1pWVFkyVlV3RloyNXZyQUFjBQNuaWwAB0JCQmxpc3QJAMwIAgIsQ3VCWWhqRmE4alZIalJ4VEpaa1RTSEVVRDhKMlZOYmNkSlhwMzlINHpCTlQFA25pbAkBaQERY2xhaW1JbnZlc3RQdXp6bGUAAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQIcYWNjZXNzIG9ubHkgYnkgcHJvamVjdCBvd25lcgQTcHV6emxlQmFsYW5jZUJlZm9yZQkA8AcCBQR0aGlzBQZwdXp6bGUDCQAAAgUTcHV6emxlQmFsYW5jZUJlZm9yZQUTcHV6emxlQmFsYW5jZUJlZm9yZQQRcm9tZUJhbGFuY2VCZWZvcmUJAPAHAgUEdGhpcwUEcm9tZQMJAAACBRFyb21lQmFsYW5jZUJlZm9yZQURcm9tZUJhbGFuY2VCZWZvcmUEEmNsYWltUHV6emxlU3Rha2luZwkA/AcEBQ1wdXp6bGVTdGFraW5nAgtjbGFpbVJld2FyZAUDbmlsBQNuaWwDCQAAAgUSY2xhaW1QdXp6bGVTdGFraW5nBRJjbGFpbVB1enpsZVN0YWtpbmcED3Bvb2xPbmVUb2tlbkludgkA/AcECQEHQWRkcmVzcwEBGgFX/SXDvU5hlEHvul4SY4/FOW9JtYg69eltAiFnZW5lcmF0ZUluZGV4V2l0aE9uZVRva2VuQW5kU3Rha2UJAMwIAgUGQkJCc3RyBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFBnB1enpsZQkA8AcCBQR0aGlzBQZwdXp6bGUFA25pbAMJAAACBQ9wb29sT25lVG9rZW5JbnYFD3Bvb2xPbmVUb2tlbkludgQScHV6emxlQmFsYW5jZUFmdGVyCQDwBwIFBHRoaXMFBnB1enpsZQQQcm9tZUJhbGFuY2VBZnRlcgkA8AcCBQR0aGlzBQRyb21lCQDMCAIJAQxJbnRlZ2VyRW50cnkCAhVBY3RpdmF0ZWQgYmxvY2toZWlnaHQFBmhlaWdodAkAzAgCCQEMSW50ZWdlckVudHJ5AgUQa2V5QnVybnh0bkFtb3VudAkA8AcCBQR0aGlzBQdidXJueHRuCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQ1rZXlSb21lQW1vdW50CQBlAgUQcm9tZUJhbGFuY2VBZnRlcgURcm9tZUJhbGFuY2VCZWZvcmUJAMwIAgkBDEludGVnZXJFbnRyeQIFDmtleVdhdmVzQW1vdW50CQBlAgkA8AcCBQR0aGlzBQV3YXZlcwUCZDgJAMwIAgkBDEludGVnZXJFbnRyeQIFEmtleVdoaXJscG9vbEFtb3VudAkA8AcCBQR0aGlzBQl3aGlybHBvb2wFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQdpbnZva2VyAAMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECHGFjY2VzcyBvbmx5IGJ5IHByb2plY3Qgb3duZXIEBGxpc3QJALwJAgkBDHRyeUdldFN0cmluZwIFBHRoaXMFCWFkZHJlc3NlcwIBLAoBAXICBWFjY3VtB2FkZHJlc3MJAPwHBAUEdGhpcwIRZGlzdHJpYnV0ZVJld2FyZHMJAMwIAgUHYWRkcmVzcwUDbmlsBQNuaWwEB2ludm9rZXIKAAIkbAUEbGlzdAoAAiRzCQCQAwEFAiRsCgAFJGFjYzAFA25pbAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEBcgIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIVTGlzdCBzaXplIGV4Y2VlZHMgMTAwCQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMAA0ADgAPABAAEQASABMAFAAVABYAFwAYABkAGgAbABwAHQAeAB8AIAAhACIAIwAkACUAJgAnACgAKQAqACsALAAtAC4ALwAwADEAMgAzADQANQA2ADcAOAA5ADoAOwA8AD0APgA/AEAAQQBCAEMARABFAEYARwBIAEkASgBLAEwATQBOAE8AUABRAFIAUwBUAFUAVgBXAFgAWQBaAFsAXABdAF4AXwBgAGEAYgBjAGQDCQAAAgUHaW52b2tlcgUHaW52b2tlcgUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBEWRpc3RyaWJ1dGVSZXdhcmRzAQdhZGRyZXNzAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQIcYWNjZXNzIG9ubHkgYnkgcHJvamVjdCBvd25lcgoBCGZvbGRGdW5jAgNhY2MDV0ZTCQBkAgUDYWNjCQDwBwIJARFAZXh0ck5hdGl2ZSgxMDYyKQEFB2FkZHJlc3MJANkEAQUDV0ZTBAhzaGFyZVdGUwoAAiRsBQdXRlNsaXN0CgACJHMJAJADAQUCJGwKAAUkYWNjMAAACgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQhmb2xkRnVuYwIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMTAJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgoBCWZvbGRGdW5jQgIDYWNjA0JCQgkAZAIFA2FjYwkA8AcCCQERQGV4dHJOYXRpdmUoMTA2MikBBQdhZGRyZXNzCQDZBAEFA0JCQgQIc2hhcmVCQkIKAAIkbAUHQkJCbGlzdAoAAiRzCQCQAwEFAiRsCgAFJGFjYzAAAAoBBSRmMV8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEJZm9sZEZ1bmNCAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYxXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxMAkBBSRmMV8yAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKAwkAAAIJAGQCBQhzaGFyZVdGUwUIc2hhcmVCQkIAAAQEbGlzdAkAvAkCCQEMdHJ5R2V0U3RyaW5nAgUEdGhpcwUJYWRkcmVzc2VzAgEsBApub05GVGluZGV4CQEFdmFsdWUBCQDPCAIFBGxpc3QFB2FkZHJlc3MEDmxpc3RNaW51c05vTkZUCQDRCAIFBGxpc3QFCm5vTkZUaW5kZXgEDW1pbnVzTm9ORlRzdHIJALkJAgUObGlzdE1pbnVzTm9ORlQCASwJAMwIAgkBC1N0cmluZ0VudHJ5AgUWa2V5QWRkcmVzc2VzUmVnaXN0ZXJlZAUNbWludXNOb05GVHN0cgUDbmlsBA1hbW91bnRCdXJueHRuCQBrAwkBDXRyeUdldEludGVnZXICBQR0aGlzBRBrZXlCdXJueHRuQW1vdW50CQBkAgUIc2hhcmVXRlMJAGgCBQhzaGFyZUJCQgAKCQENdHJ5R2V0SW50ZWdlcgIFBHRoaXMFEGtleVRvdGFsTkZUcG93ZXIED2Ftb3VudFdoaXJscG9vbAkAawMJAQ10cnlHZXRJbnRlZ2VyAgUEdGhpcwUSa2V5V2hpcmxwb29sQW1vdW50CQBkAgUIc2hhcmVXRlMJAGgCBQhzaGFyZUJCQgAKCQENdHJ5R2V0SW50ZWdlcgIFBHRoaXMFEGtleVRvdGFsTkZUcG93ZXIEC2Ftb3VudFdhdmVzCQBrAwkBDXRyeUdldEludGVnZXICBQR0aGlzBQ5rZXlXYXZlc0Ftb3VudAkAZAIFCHNoYXJlV0ZTCQBoAgUIc2hhcmVCQkIACgkBDXRyeUdldEludGVnZXICBQR0aGlzBRBrZXlUb3RhbE5GVHBvd2VyBAphbW91bnRSb21lCQBrAwkBDXRyeUdldEludGVnZXICBQR0aGlzBQ1rZXlSb21lQW1vdW50CQBkAgUIc2hhcmVXRlMJAGgCBQhzaGFyZUJCQgAKCQENdHJ5R2V0SW50ZWdlcgIFBHRoaXMFEGtleVRvdGFsTkZUcG93ZXIJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBEUBleHRyTmF0aXZlKDEwNjIpAQUHYWRkcmVzcwUNYW1vdW50QnVybnh0bgUHYnVybnh0bgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQERQGV4dHJOYXRpdmUoMTA2MikBBQdhZGRyZXNzBQ9hbW91bnRXaGlybHBvb2wFCXdoaXJscG9vbAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQERQGV4dHJOYXRpdmUoMTA2MikBBQdhZGRyZXNzBQthbW91bnRXYXZlcwUFd2F2ZXMJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBEUBleHRyTmF0aXZlKDEwNjIpAQUHYWRkcmVzcwUKYW1vdW50Um9tZQUEcm9tZQUDbmlsAWkBCHJlZ2lzdGVyAAMJAQhjb250YWlucwIJAQx0cnlHZXRTdHJpbmcCBQR0aGlzBRZrZXlBZGRyZXNzZXNSZWdpc3RlcmVkCQClCAEIBQFpBmNhbGxlcgkAAgECEmFscmVhZHkgcmVnaXN0ZXJlZAkAzAgCCQELU3RyaW5nRW50cnkCBRZrZXlBZGRyZXNzZXNSZWdpc3RlcmVkCQCsAgIJAKwCAgkBDHRyeUdldFN0cmluZwIFBHRoaXMFFmtleUFkZHJlc3Nlc1JlZ2lzdGVyZWQJAKUIAQgFAWkGY2FsbGVyAgEsBQNuaWwBaQEQcmVnaXN0ZXJNYW51YWxseQEHYWRkcmVzcwMJAQhjb250YWlucwIJAQx0cnlHZXRTdHJpbmcCBQR0aGlzBRZrZXlBZGRyZXNzZXNSZWdpc3RlcmVkBQdhZGRyZXNzCQACAQISYWxyZWFkeSByZWdpc3RlcmVkAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQIcYWNjZXNzIG9ubHkgYnkgcHJvamVjdCBvd25lcgkAzAgCCQELU3RyaW5nRW50cnkCBRZrZXlBZGRyZXNzZXNSZWdpc3RlcmVkCQCsAgIJAKwCAgkBDHRyeUdldFN0cmluZwIFBHRoaXMFFmtleUFkZHJlc3Nlc1JlZ2lzdGVyZWQFB2FkZHJlc3MCASwFA25pbAFpAQhpbnZva2VyMgAEBGxpc3QJALwJAgkBDHRyeUdldFN0cmluZwIFBHRoaXMFCWFkZHJlc3NlcwIBLAoBAXICBWFjY3VtB2FkZHJlc3MJAPwHBAUEdGhp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BRFyb21lQmFsYW5jZUJlZm9yZQURcm9tZUJhbGFuY2VCZWZvcmUEEmNsYWltUHV6emxlU3Rha2luZwkA/AcEBQ1wdXp6bGVTdGFraW5nAgtjbGFpbVJld2FyZAUDbmlsBQNuaWwDCQAAAgUSY2xhaW1QdXp6bGVTdGFraW5nBRJjbGFpbVB1enpsZVN0YWtpbmcECGNsYWltSW52CQD8BwQJAQdBZGRyZXNzAQUHcG9vbEJCQgIRY2xhaW1JbmRleFJld2FyZHMFA25pbAUDbmlsAwkAAAIFCGNsYWltSW52BQhjbGFpbUludgQScHV6emxlQmFsYW5jZUFmdGVyCQDwBwIFBHRoaXMFBnB1enpsZQQQcm9tZUJhbGFuY2VBZnRlcgkA8AcCBQR0aGlzBQRyb21lCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRBrZXlCdXJueHRuQW1vdW50CQDwBwIFBHRoaXMFB2J1cm54dG4JAMwIAgkBDEludGVnZXJFbnRyeQIFDWtleVJvbWVBbW91bnQJAGUCBRByb21lQmFsYW5jZUFmdGVyBRFyb21lQmFsYW5jZUJlZm9yZQkAzAgCCQEMSW50ZWdlckVudHJ5AgUPa2V5UHV6emxlQW1vdW50CQBlAgUScHV6emxlQmFsYW5jZUFmdGVyBRNwdXp6bGVCYWxhbmNlQmVmb3JlCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQ5rZXlXYXZlc0Ftb3VudAkAZQIJAPAHAgUEdGhpcwUFd2F2ZXMFAmQ4CQDMCAIJAQxJbnRlZ2VyRW50cnkCBRJrZXlXaGlybHBvb2xBbW91bnQJAPAHAgUEdGhpcwUJd2hpcmxwb29sBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEaZGlzdHJpYnV0ZVJld2FyZHNCeUFueWJvZHkBB2FkZHJlc3MDCQBmAgkAZAIJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMCFUFjdGl2YXRlZCBibG9ja2hlaWdodAkAaAIAHgCgCwUGaGVpZ2h0CQACAQkArAICAhZXYWl0IHRpbGwgYmxvY2toZWlnaHQ6CQCkAwEJAGQCCQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzAhVBY3RpdmF0ZWQgYmxvY2toZWlnaHQJAGgCAB4AoAsKAQhmb2xkRnVuYwIDYWNjA1dGUwkAZAIFA2FjYwkA8AcCCQERQGV4dHJOYXRpdmUoMTA2MikBBQdhZGRyZXNzCQDZBAEFA1dGUwQIc2hhcmVXRlMKAAIkbAUHV0ZTbGlzdAoAAiRzCQCQAwEFAiRsCgAFJGFjYzAAAAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEIZm9sZEZ1bmMCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDEwCQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoKAQlmb2xkRnVuY0ICA2FjYwNCQkIJAGQCBQNhY2MJAPAHAgkBEUBleHRyTmF0aXZlKDEwNjIpAQUHYWRkcmVzcwkA2QQBBQNCQkIECHNoYXJlQkJCCgACJGwFB0JCQmxpc3QKAAIkcwkAkAMBBQIkbAoABSRhY2MwAAAKAQUkZjFfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBCWZvbGRGdW5jQgIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMV8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMTAJAQUkZjFfMgIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgMJAAACCQBkAgUIc2hhcmVXRlMFCHNoYXJlQkJCAAAEBGxpc3QJALwJAgkBDHRyeUdldFN0cmluZwIFBHRoaXMFCWFkZHJlc3NlcwIBLAQKbm9ORlRpbmRleAkBBXZhbHVlAQkAzwgCBQRsaXN0BQdhZGRyZXNzBA5saXN0TWludXNOb05GVAkA0QgCBQRsaXN0BQpub05GVGluZGV4BA1taW51c05vTkZUc3RyCQC5CQIFDmxpc3RNaW51c05vTkZUAgEsCQDMCAIJAQtTdHJpbmdFbnRyeQIFFmtleUFkZHJlc3Nlc1JlZ2lzdGVyZWQFDW1pbnVzTm9ORlRzdHIFA25pbAQNYW1vdW50QnVybnh0bgkAawMJAQ10cnlHZXRJbnRlZ2VyAgUEdGhpcwUQa2V5QnVybnh0bkFtb3VudAkAZAIFCHNoYXJlV0ZTCQBoAgUIc2hhcmVCQkIACgkBDXRyeUdldEludGVnZXICBQR0aGlzBRBrZXlUb3RhbE5GVHBvd2VyBA9hbW91bnRXaGlybHBvb2wJAGsDCQENdHJ5R2V0SW50ZWdlcgIFBHRoaXMFEmtleVdoaXJscG9vbEFtb3VudAkAZAIFCHNoYXJlV0ZTCQBoAgUIc2hhcmVCQkIACgkBDXRyeUdldEludGVnZXICBQR0aGlzBRBrZXlUb3RhbE5GVHBvd2VyBAthbW91bnRXYXZlcwkAawMJAQ10cnlHZXRJbnRlZ2VyAgUEdGhpcwUOa2V5V2F2ZXNBbW91bnQJAGQCBQhzaGFyZVdGUwkAaAIFCHNoYXJlQkJCAAoJAQ10cnlHZXRJbnRlZ2VyAgUEdGhpcwUQa2V5VG90YWxORlRwb3dlcgQKYW1vdW50Um9tZQkAawMJAQ10cnlHZXRJbnRlZ2VyAgUEdGhpcwUNa2V5Um9tZUFtb3VudAkAZAIFCHNoYXJlV0ZTCQBoAgUIc2hhcmVCQkIACgkBDXRyeUdldEludGVnZXICBQR0aGlzBRBrZXlUb3RhbE5GVHBvd2VyBAxhbW91bnRQdXp6bGUJAGsDCQENdHJ5R2V0SW50ZWdlcgIFBHRoaXMFD2tleVB1enpsZUFtb3VudAkAZAIFCHNoYXJlV0ZTCQBoAgUIc2hhcmVCQkIACgkBDXRyeUdldEludGVnZXICBQR0aGlzBRBrZXlUb3RhbE5GVHBvd2VyCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJARFAZXh0ck5hdGl2ZSgxMDYyKQEFB2FkZHJlc3MFDWFtb3VudEJ1cm54dG4FB2J1cm54dG4JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBEUBleHRyTmF0aXZlKDEwNjIpAQUHYWRkcmVzcwUPYW1vdW50V2hpcmxwb29sBQl3aGlybHBvb2wJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBEUBleHRyTmF0aXZlKDEwNjIpAQUHYWRkcmVzcwULYW1vdW50V2F2ZXMFBXdhdmVzCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJARFAZXh0ck5hdGl2ZSgxMDYyKQEFB2FkZHJlc3MFCmFtb3VudFJvbWUFBHJvbWUJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBEUBleHRyTmF0aXZlKDEwNjIpAQUHYWRkcmVzcwUMYW1vdW50UHV6emxlBQZwdXp6bGUFA25pbAAsvuJJ", "height": 3991100, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: AMnaw4TnFZYS9QytAvdHn535TsyVGsTJmSxZh6bLot4n Next: 8yJhF9Enckqu4ie7wDNFyPLp5hNeLknkLhRAhgtwQVCJ Diff:
OldNewDifferences
3636 let rome = base58'AP4Cb5xLYGH6ZigHreCZHoXpQTWDkPsG2BHqfDUx6taJ'
3737
3838 let keyAddressesRegistered = "Addresses registered"
39+
40+let addresses = dropRight(tryGetString(this, keyAddressesRegistered), 1)
3941
4042 let keyBurnxtnAmount = "BURN-XTN total rewards"
4143
8890 func invoker () = if ((i.caller != this))
8991 then throw("access only by project owner")
9092 else {
91- let list = split_4C(tryGetString(this, keyAddressesRegistered), ",")
93+ let list = split_4C(tryGetString(this, addresses), ",")
9294 func r (accum,address) = invoke(this, "distributeRewards", [address], nil)
9395
9496 let invoker = {
148150
149151 $f1_2($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
150152 }
151- let amountBurnxtn = fraction(tryGetInteger(this, keyBurnxtnAmount), (shareWFS + (shareBBB * 10)), tryGetInteger(this, keyTotalNFTpower))
152- let amountWhirlpool = fraction(tryGetInteger(this, keyWhirlpoolAmount), (shareWFS + (shareBBB * 10)), tryGetInteger(this, keyTotalNFTpower))
153- let amountWaves = fraction(tryGetInteger(this, keyWavesAmount), (shareWFS + (shareBBB * 10)), tryGetInteger(this, keyTotalNFTpower))
154- let amountRome = fraction(tryGetInteger(this, keyRomeAmount), (shareWFS + (shareBBB * 10)), tryGetInteger(this, keyTotalNFTpower))
153+ if (((shareWFS + shareBBB) == 0))
154+ then {
155+ let list = split_4C(tryGetString(this, addresses), ",")
156+ let noNFTindex = value(indexOf(list, address))
157+ let listMinusNoNFT = removeByIndex(list, noNFTindex)
158+ let minusNoNFTstr = makeString(listMinusNoNFT, ",")
159+[StringEntry(keyAddressesRegistered, minusNoNFTstr)]
160+ }
161+ else {
162+ let amountBurnxtn = fraction(tryGetInteger(this, keyBurnxtnAmount), (shareWFS + (shareBBB * 10)), tryGetInteger(this, keyTotalNFTpower))
163+ let amountWhirlpool = fraction(tryGetInteger(this, keyWhirlpoolAmount), (shareWFS + (shareBBB * 10)), tryGetInteger(this, keyTotalNFTpower))
164+ let amountWaves = fraction(tryGetInteger(this, keyWavesAmount), (shareWFS + (shareBBB * 10)), tryGetInteger(this, keyTotalNFTpower))
165+ let amountRome = fraction(tryGetInteger(this, keyRomeAmount), (shareWFS + (shareBBB * 10)), tryGetInteger(this, keyTotalNFTpower))
155166 [ScriptTransfer(addressFromStringValue(address), amountBurnxtn, burnxtn), ScriptTransfer(addressFromStringValue(address), amountWhirlpool, whirlpool), ScriptTransfer(addressFromStringValue(address), amountWaves, waves), ScriptTransfer(addressFromStringValue(address), amountRome, rome)]
167+ }
156168 }
157169
158170
175187
176188 @Callable(i)
177189 func invoker2 () = {
178- let list = split_4C(tryGetString(this, keyAddressesRegistered), ",")
190+ let list = split_4C(tryGetString(this, addresses), ",")
179191 func r (accum,address) = invoke(this, "countNFTpower", [address], nil)
180192
181193 let invoker = {
305317
306318 $f1_2($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
307319 }
308- let amountBurnxtn = fraction(tryGetInteger(this, keyBurnxtnAmount), (shareWFS + (shareBBB * 10)), tryGetInteger(this, keyTotalNFTpower))
309- let amountWhirlpool = fraction(tryGetInteger(this, keyWhirlpoolAmount), (shareWFS + (shareBBB * 10)), tryGetInteger(this, keyTotalNFTpower))
310- let amountWaves = fraction(tryGetInteger(this, keyWavesAmount), (shareWFS + (shareBBB * 10)), tryGetInteger(this, keyTotalNFTpower))
311- let amountRome = fraction(tryGetInteger(this, keyRomeAmount), (shareWFS + (shareBBB * 10)), tryGetInteger(this, keyTotalNFTpower))
312- let amountPuzzle = fraction(tryGetInteger(this, keyPuzzleAmount), (shareWFS + (shareBBB * 10)), tryGetInteger(this, keyTotalNFTpower))
320+ if (((shareWFS + shareBBB) == 0))
321+ then {
322+ let list = split_4C(tryGetString(this, addresses), ",")
323+ let noNFTindex = value(indexOf(list, address))
324+ let listMinusNoNFT = removeByIndex(list, noNFTindex)
325+ let minusNoNFTstr = makeString(listMinusNoNFT, ",")
326+[StringEntry(keyAddressesRegistered, minusNoNFTstr)]
327+ }
328+ else {
329+ let amountBurnxtn = fraction(tryGetInteger(this, keyBurnxtnAmount), (shareWFS + (shareBBB * 10)), tryGetInteger(this, keyTotalNFTpower))
330+ let amountWhirlpool = fraction(tryGetInteger(this, keyWhirlpoolAmount), (shareWFS + (shareBBB * 10)), tryGetInteger(this, keyTotalNFTpower))
331+ let amountWaves = fraction(tryGetInteger(this, keyWavesAmount), (shareWFS + (shareBBB * 10)), tryGetInteger(this, keyTotalNFTpower))
332+ let amountRome = fraction(tryGetInteger(this, keyRomeAmount), (shareWFS + (shareBBB * 10)), tryGetInteger(this, keyTotalNFTpower))
333+ let amountPuzzle = fraction(tryGetInteger(this, keyPuzzleAmount), (shareWFS + (shareBBB * 10)), tryGetInteger(this, keyTotalNFTpower))
313334 [ScriptTransfer(addressFromStringValue(address), amountBurnxtn, burnxtn), ScriptTransfer(addressFromStringValue(address), amountWhirlpool, whirlpool), ScriptTransfer(addressFromStringValue(address), amountWaves, waves), ScriptTransfer(addressFromStringValue(address), amountRome, rome), ScriptTransfer(addressFromStringValue(address), amountPuzzle, puzzle)]
335+ }
314336 }
315337
316338
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func tryGetInteger (address,key) = match getInteger(address, key) {
55 case b: Int =>
66 b
77 case _ =>
88 0
99 }
1010
1111
1212 func tryGetString (address,key) = match getString(address, key) {
1313 case b: String =>
1414 b
1515 case _ =>
1616 ""
1717 }
1818
1919
2020 let d8 = 100000000
2121
2222 let poolBBB = base58'3P9VPwVfNj3dDevQZt1Z951A4K57cmQmCgk'
2323
2424 let BBBstr = toBase58String(poolBBB)
2525
2626 let puzzleStaking = Address(base58'3PFTbywqxtFfukX3HyT881g4iW5K4QL3FAS')
2727
2828 let burnxtn = base58'3SjxA2YLdfF9fTRbzLm9xFn27C6MW34W1YsdJ6Axefns'
2929
3030 let waves = base58'WAVES'
3131
3232 let whirlpool = base58'73tY3E6Gd5AWYmsuq8m8Kek7KnJNAYyS3GoveTbc6jCi'
3333
3434 let puzzle = base58'HEB8Qaw9xrWpWs8tHsiATYGBWDBtP2S7kcPALrMu43AS'
3535
3636 let rome = base58'AP4Cb5xLYGH6ZigHreCZHoXpQTWDkPsG2BHqfDUx6taJ'
3737
3838 let keyAddressesRegistered = "Addresses registered"
39+
40+let addresses = dropRight(tryGetString(this, keyAddressesRegistered), 1)
3941
4042 let keyBurnxtnAmount = "BURN-XTN total rewards"
4143
4244 let keyRomeAmount = "ROME total rewards"
4345
4446 let keyPuzzleAmount = "PUZZLE total rewards"
4547
4648 let keyWavesAmount = "WAVES total rewards"
4749
4850 let keyWhirlpoolAmount = "WHIRLPOOL total rewards"
4951
5052 let keyTotalNFTpower = "Total NFT power"
5153
5254 let WFSlist = ["Gnpy5nVajPP3XQQVxrHboMAsXtjnyWAxybMDdKrbr8sD", "BT9Q4mQdQQmei2r5YNMBMasZBQj7myNaiz6QHba5cPXS", "BMvkyFtPVmFatpFR9QVFKR5MYTcZVTY2VUwFZ25vrAAc"]
5355
5456 let BBBlist = ["CuBYhjFa8jVHjRxTJZkTSHEUD8J2VNbcdJXp39H4zBNT"]
5557
5658 @Callable(i)
5759 func claimInvestPuzzle () = if ((i.caller != this))
5860 then throw("access only by project owner")
5961 else {
6062 let puzzleBalanceBefore = assetBalance(this, puzzle)
6163 if ((puzzleBalanceBefore == puzzleBalanceBefore))
6264 then {
6365 let romeBalanceBefore = assetBalance(this, rome)
6466 if ((romeBalanceBefore == romeBalanceBefore))
6567 then {
6668 let claimPuzzleStaking = invoke(puzzleStaking, "claimReward", nil, nil)
6769 if ((claimPuzzleStaking == claimPuzzleStaking))
6870 then {
6971 let poolOneTokenInv = invoke(Address(base58'3PR1Qvi9mHT35SwWEkLSqqE2L8thiPLdVWU'), "generateIndexWithOneTokenAndStake", [BBBstr], [AttachedPayment(puzzle, assetBalance(this, puzzle))])
7072 if ((poolOneTokenInv == poolOneTokenInv))
7173 then {
7274 let puzzleBalanceAfter = assetBalance(this, puzzle)
7375 let romeBalanceAfter = assetBalance(this, rome)
7476 [IntegerEntry("Activated blockheight", height), IntegerEntry(keyBurnxtnAmount, assetBalance(this, burnxtn)), IntegerEntry(keyRomeAmount, (romeBalanceAfter - romeBalanceBefore)), IntegerEntry(keyWavesAmount, (assetBalance(this, waves) - d8)), IntegerEntry(keyWhirlpoolAmount, assetBalance(this, whirlpool))]
7577 }
7678 else throw("Strict value is not equal to itself.")
7779 }
7880 else throw("Strict value is not equal to itself.")
7981 }
8082 else throw("Strict value is not equal to itself.")
8183 }
8284 else throw("Strict value is not equal to itself.")
8385 }
8486
8587
8688
8789 @Callable(i)
8890 func invoker () = if ((i.caller != this))
8991 then throw("access only by project owner")
9092 else {
91- let list = split_4C(tryGetString(this, keyAddressesRegistered), ",")
93+ let list = split_4C(tryGetString(this, addresses), ",")
9294 func r (accum,address) = invoke(this, "distributeRewards", [address], nil)
9395
9496 let invoker = {
9597 let $l = list
9698 let $s = size($l)
9799 let $acc0 = nil
98100 func $f0_1 ($a,$i) = if (($i >= $s))
99101 then $a
100102 else r($a, $l[$i])
101103
102104 func $f0_2 ($a,$i) = if (($i >= $s))
103105 then $a
104106 else throw("List size exceeds 100")
105107
106108 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100)
107109 }
108110 if ((invoker == invoker))
109111 then nil
110112 else throw("Strict value is not equal to itself.")
111113 }
112114
113115
114116
115117 @Callable(i)
116118 func distributeRewards (address) = if ((i.caller != this))
117119 then throw("access only by project owner")
118120 else {
119121 func foldFunc (acc,WFS) = (acc + assetBalance(addressFromStringValue(address), fromBase58String(WFS)))
120122
121123 let shareWFS = {
122124 let $l = WFSlist
123125 let $s = size($l)
124126 let $acc0 = 0
125127 func $f0_1 ($a,$i) = if (($i >= $s))
126128 then $a
127129 else foldFunc($a, $l[$i])
128130
129131 func $f0_2 ($a,$i) = if (($i >= $s))
130132 then $a
131133 else throw("List size exceeds 10")
132134
133135 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
134136 }
135137 func foldFuncB (acc,BBB) = (acc + assetBalance(addressFromStringValue(address), fromBase58String(BBB)))
136138
137139 let shareBBB = {
138140 let $l = BBBlist
139141 let $s = size($l)
140142 let $acc0 = 0
141143 func $f1_1 ($a,$i) = if (($i >= $s))
142144 then $a
143145 else foldFuncB($a, $l[$i])
144146
145147 func $f1_2 ($a,$i) = if (($i >= $s))
146148 then $a
147149 else throw("List size exceeds 10")
148150
149151 $f1_2($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
150152 }
151- let amountBurnxtn = fraction(tryGetInteger(this, keyBurnxtnAmount), (shareWFS + (shareBBB * 10)), tryGetInteger(this, keyTotalNFTpower))
152- let amountWhirlpool = fraction(tryGetInteger(this, keyWhirlpoolAmount), (shareWFS + (shareBBB * 10)), tryGetInteger(this, keyTotalNFTpower))
153- let amountWaves = fraction(tryGetInteger(this, keyWavesAmount), (shareWFS + (shareBBB * 10)), tryGetInteger(this, keyTotalNFTpower))
154- let amountRome = fraction(tryGetInteger(this, keyRomeAmount), (shareWFS + (shareBBB * 10)), tryGetInteger(this, keyTotalNFTpower))
153+ if (((shareWFS + shareBBB) == 0))
154+ then {
155+ let list = split_4C(tryGetString(this, addresses), ",")
156+ let noNFTindex = value(indexOf(list, address))
157+ let listMinusNoNFT = removeByIndex(list, noNFTindex)
158+ let minusNoNFTstr = makeString(listMinusNoNFT, ",")
159+[StringEntry(keyAddressesRegistered, minusNoNFTstr)]
160+ }
161+ else {
162+ let amountBurnxtn = fraction(tryGetInteger(this, keyBurnxtnAmount), (shareWFS + (shareBBB * 10)), tryGetInteger(this, keyTotalNFTpower))
163+ let amountWhirlpool = fraction(tryGetInteger(this, keyWhirlpoolAmount), (shareWFS + (shareBBB * 10)), tryGetInteger(this, keyTotalNFTpower))
164+ let amountWaves = fraction(tryGetInteger(this, keyWavesAmount), (shareWFS + (shareBBB * 10)), tryGetInteger(this, keyTotalNFTpower))
165+ let amountRome = fraction(tryGetInteger(this, keyRomeAmount), (shareWFS + (shareBBB * 10)), tryGetInteger(this, keyTotalNFTpower))
155166 [ScriptTransfer(addressFromStringValue(address), amountBurnxtn, burnxtn), ScriptTransfer(addressFromStringValue(address), amountWhirlpool, whirlpool), ScriptTransfer(addressFromStringValue(address), amountWaves, waves), ScriptTransfer(addressFromStringValue(address), amountRome, rome)]
167+ }
156168 }
157169
158170
159171
160172 @Callable(i)
161173 func register () = if (contains(tryGetString(this, keyAddressesRegistered), toString(i.caller)))
162174 then throw("already registered")
163175 else [StringEntry(keyAddressesRegistered, ((tryGetString(this, keyAddressesRegistered) + toString(i.caller)) + ","))]
164176
165177
166178
167179 @Callable(i)
168180 func registerManually (address) = if (contains(tryGetString(this, keyAddressesRegistered), address))
169181 then throw("already registered")
170182 else if ((i.caller != this))
171183 then throw("access only by project owner")
172184 else [StringEntry(keyAddressesRegistered, ((tryGetString(this, keyAddressesRegistered) + address) + ","))]
173185
174186
175187
176188 @Callable(i)
177189 func invoker2 () = {
178- let list = split_4C(tryGetString(this, keyAddressesRegistered), ",")
190+ let list = split_4C(tryGetString(this, addresses), ",")
179191 func r (accum,address) = invoke(this, "countNFTpower", [address], nil)
180192
181193 let invoker = {
182194 let $l = list
183195 let $s = size($l)
184196 let $acc0 = nil
185197 func $f0_1 ($a,$i) = if (($i >= $s))
186198 then $a
187199 else r($a, $l[$i])
188200
189201 func $f0_2 ($a,$i) = if (($i >= $s))
190202 then $a
191203 else throw("List size exceeds 100")
192204
193205 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100)
194206 }
195207 if ((invoker == invoker))
196208 then nil
197209 else throw("Strict value is not equal to itself.")
198210 }
199211
200212
201213
202214 @Callable(i)
203215 func countNFTpower (address) = {
204216 func foldFunc (acc,WFS) = (acc + assetBalance(addressFromStringValue(address), fromBase58String(WFS)))
205217
206218 let shareWFS = {
207219 let $l = WFSlist
208220 let $s = size($l)
209221 let $acc0 = 0
210222 func $f0_1 ($a,$i) = if (($i >= $s))
211223 then $a
212224 else foldFunc($a, $l[$i])
213225
214226 func $f0_2 ($a,$i) = if (($i >= $s))
215227 then $a
216228 else throw("List size exceeds 10")
217229
218230 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
219231 }
220232 func foldFuncB (acc,BBB) = (acc + assetBalance(addressFromStringValue(address), fromBase58String(BBB)))
221233
222234 let shareBBB = {
223235 let $l = BBBlist
224236 let $s = size($l)
225237 let $acc0 = 0
226238 func $f1_1 ($a,$i) = if (($i >= $s))
227239 then $a
228240 else foldFuncB($a, $l[$i])
229241
230242 func $f1_2 ($a,$i) = if (($i >= $s))
231243 then $a
232244 else throw("List size exceeds 10")
233245
234246 $f1_2($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
235247 }
236248 [IntegerEntry((address + "_WFS"), shareWFS), IntegerEntry((address + "_BBB"), (shareBBB * 10)), IntegerEntry(keyTotalNFTpower, (tryGetInteger(this, keyTotalNFTpower) + (shareWFS + (shareBBB * 10))))]
237249 }
238250
239251
240252
241253 @Callable(i)
242254 func byAnybody () = if (((getIntegerValue(this, "Activated blockheight") + (30 * 1440)) > height))
243255 then throw(("Wait till blockheight:" + toString((getIntegerValue(this, "Activated blockheight") + (30 * 1440)))))
244256 else {
245257 let puzzleBalanceBefore = assetBalance(this, puzzle)
246258 if ((puzzleBalanceBefore == puzzleBalanceBefore))
247259 then {
248260 let romeBalanceBefore = assetBalance(this, rome)
249261 if ((romeBalanceBefore == romeBalanceBefore))
250262 then {
251263 let claimPuzzleStaking = invoke(puzzleStaking, "claimReward", nil, nil)
252264 if ((claimPuzzleStaking == claimPuzzleStaking))
253265 then {
254266 let claimInv = invoke(Address(poolBBB), "claimIndexRewards", nil, nil)
255267 if ((claimInv == claimInv))
256268 then {
257269 let puzzleBalanceAfter = assetBalance(this, puzzle)
258270 let romeBalanceAfter = assetBalance(this, rome)
259271 [IntegerEntry(keyBurnxtnAmount, assetBalance(this, burnxtn)), IntegerEntry(keyRomeAmount, (romeBalanceAfter - romeBalanceBefore)), IntegerEntry(keyPuzzleAmount, (puzzleBalanceAfter - puzzleBalanceBefore)), IntegerEntry(keyWavesAmount, (assetBalance(this, waves) - d8)), IntegerEntry(keyWhirlpoolAmount, assetBalance(this, whirlpool))]
260272 }
261273 else throw("Strict value is not equal to itself.")
262274 }
263275 else throw("Strict value is not equal to itself.")
264276 }
265277 else throw("Strict value is not equal to itself.")
266278 }
267279 else throw("Strict value is not equal to itself.")
268280 }
269281
270282
271283
272284 @Callable(i)
273285 func distributeRewardsByAnybody (address) = if (((getIntegerValue(this, "Activated blockheight") + (30 * 1440)) > height))
274286 then throw(("Wait till blockheight:" + toString((getIntegerValue(this, "Activated blockheight") + (30 * 1440)))))
275287 else {
276288 func foldFunc (acc,WFS) = (acc + assetBalance(addressFromStringValue(address), fromBase58String(WFS)))
277289
278290 let shareWFS = {
279291 let $l = WFSlist
280292 let $s = size($l)
281293 let $acc0 = 0
282294 func $f0_1 ($a,$i) = if (($i >= $s))
283295 then $a
284296 else foldFunc($a, $l[$i])
285297
286298 func $f0_2 ($a,$i) = if (($i >= $s))
287299 then $a
288300 else throw("List size exceeds 10")
289301
290302 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
291303 }
292304 func foldFuncB (acc,BBB) = (acc + assetBalance(addressFromStringValue(address), fromBase58String(BBB)))
293305
294306 let shareBBB = {
295307 let $l = BBBlist
296308 let $s = size($l)
297309 let $acc0 = 0
298310 func $f1_1 ($a,$i) = if (($i >= $s))
299311 then $a
300312 else foldFuncB($a, $l[$i])
301313
302314 func $f1_2 ($a,$i) = if (($i >= $s))
303315 then $a
304316 else throw("List size exceeds 10")
305317
306318 $f1_2($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
307319 }
308- let amountBurnxtn = fraction(tryGetInteger(this, keyBurnxtnAmount), (shareWFS + (shareBBB * 10)), tryGetInteger(this, keyTotalNFTpower))
309- let amountWhirlpool = fraction(tryGetInteger(this, keyWhirlpoolAmount), (shareWFS + (shareBBB * 10)), tryGetInteger(this, keyTotalNFTpower))
310- let amountWaves = fraction(tryGetInteger(this, keyWavesAmount), (shareWFS + (shareBBB * 10)), tryGetInteger(this, keyTotalNFTpower))
311- let amountRome = fraction(tryGetInteger(this, keyRomeAmount), (shareWFS + (shareBBB * 10)), tryGetInteger(this, keyTotalNFTpower))
312- let amountPuzzle = fraction(tryGetInteger(this, keyPuzzleAmount), (shareWFS + (shareBBB * 10)), tryGetInteger(this, keyTotalNFTpower))
320+ if (((shareWFS + shareBBB) == 0))
321+ then {
322+ let list = split_4C(tryGetString(this, addresses), ",")
323+ let noNFTindex = value(indexOf(list, address))
324+ let listMinusNoNFT = removeByIndex(list, noNFTindex)
325+ let minusNoNFTstr = makeString(listMinusNoNFT, ",")
326+[StringEntry(keyAddressesRegistered, minusNoNFTstr)]
327+ }
328+ else {
329+ let amountBurnxtn = fraction(tryGetInteger(this, keyBurnxtnAmount), (shareWFS + (shareBBB * 10)), tryGetInteger(this, keyTotalNFTpower))
330+ let amountWhirlpool = fraction(tryGetInteger(this, keyWhirlpoolAmount), (shareWFS + (shareBBB * 10)), tryGetInteger(this, keyTotalNFTpower))
331+ let amountWaves = fraction(tryGetInteger(this, keyWavesAmount), (shareWFS + (shareBBB * 10)), tryGetInteger(this, keyTotalNFTpower))
332+ let amountRome = fraction(tryGetInteger(this, keyRomeAmount), (shareWFS + (shareBBB * 10)), tryGetInteger(this, keyTotalNFTpower))
333+ let amountPuzzle = fraction(tryGetInteger(this, keyPuzzleAmount), (shareWFS + (shareBBB * 10)), tryGetInteger(this, keyTotalNFTpower))
313334 [ScriptTransfer(addressFromStringValue(address), amountBurnxtn, burnxtn), ScriptTransfer(addressFromStringValue(address), amountWhirlpool, whirlpool), ScriptTransfer(addressFromStringValue(address), amountWaves, waves), ScriptTransfer(addressFromStringValue(address), amountRome, rome), ScriptTransfer(addressFromStringValue(address), amountPuzzle, puzzle)]
335+ }
314336 }
315337
316338

github/deemru/w8io/3ef1775 
65.96 ms