tx · 8cwDe9Vu9u7YkqFCeFHhKENuRwYFYqiM5V8tQfPNkJAR 3PKygHiLgLC16j5bNP1T3UUudmH98Pp2v8o: -0.01000000 Waves 2024.03.26 22:36 [4101356] smart account 3PKygHiLgLC16j5bNP1T3UUudmH98Pp2v8o > SELF 0.00000000 Waves
{ "type": 13, "id": "8cwDe9Vu9u7YkqFCeFHhKENuRwYFYqiM5V8tQfPNkJAR", "fee": 1000000, "feeAssetId": null, "timestamp": 1711481838399, "version": 2, "chainId": 87, "sender": "3PKygHiLgLC16j5bNP1T3UUudmH98Pp2v8o", "senderPublicKey": "EKWFwVJMAk6xj9i7a2PGBZx557V7M57jEhyaZHH3mAc1", "proofs": [ "3cMMKo4iEVvJsA1qAdzQhvonwtweCht5TCLAqTppNyuDNBwgo5chqyH28zCdGkSbgakM4QpZaTXQkE8PxpvFgUe7" ], "script": "base64:BgIPCAISAwoBCBIGCgQICAgBBwEPZ2V0UmFuZG9tTnVtYmVyBAh2YXJpYW50cwR0eElkFGhhdGNoaW5nRmluaXNoSGVpZ2h0Bm9mZnNldAQPcmFuZG9tU2VlZEJsb2NrCQEFdmFsdWUBCQDtBwEJAGUCBRRoYXRjaGluZ0ZpbmlzaEhlaWdodAABBApyYW5kb21IYXNoCQDUFgEJAMsBAgUEdHhJZAkBBXZhbHVlAQgFD3JhbmRvbVNlZWRCbG9jawN2cmYJAGoCCQCyCQIFCnJhbmRvbUhhc2gFBm9mZnNldAUIdmFyaWFudHMBDGdldFJhbmRvbUdlbgUEZ2VuMQRnZW4yBHN0ZXAEdHhJZBRoYXRjaGluZ0ZpbmlzaEhlaWdodAQJcmFuZG9tTnVtCQEPZ2V0UmFuZG9tTnVtYmVyBAACBQR0eElkBRRoYXRjaGluZ0ZpbmlzaEhlaWdodAUEc3RlcAQDZ2VuAwkAAAIFCXJhbmRvbU51bQAABQRnZW4xBQRnZW4yBQNnZW4BDXRyeUdldEludGVnZXIBA2tleQQDdmFsBAckbWF0Y2gwCQCaCAIFBHRoaXMFA2tleQMJAAECBQckbWF0Y2gwAgNJbnQEAWIFByRtYXRjaDAFAWIAAAUDdmFsAQhpc1N5bWJvbAIDYWNjA3N5bQMJAAACBQNzeW0IBQNhY2MCXzIJAJQKAgkAZAIIBQNhY2MCXzEAAQgFA2FjYwJfMgkAlAoCCQBkAggFA2FjYwJfMQAACAUDYWNjAl8yARBnZXRBbW91bnRPckNsZWFyAQZhbW91bnQDCQEIY29udGFpbnMCBQZhbW91bnQCATACAAUGYW1vdW50AQhjaGFyTGlzdAAJAMwIAgIBQQkAzAgCAgFCCQDMCAICAUMJAMwIAgIBRAkAzAgCAgFFCQDMCAICAUYJAMwIAgIBRwkAzAgCAgFICQDMCAICAUkJAMwIAgIBSgkAzAgCAgFLCQDMCAICAUwJAMwIAgIBTQkAzAgCAgFOCQDMCAICAU8JAMwIAgIBUAkAzAgCAgFRCQDMCAICAVIJAMwIAgIBUwkAzAgCAgFUCQDMCAICAVUJAMwIAgIBVgkAzAgCAgFXCQDMCAICAVgJAMwIAgIBWQkAzAgCAgFaBQNuaWwBDW5yT2ZUeXBlR2VuZXMBA2dlbgQIZ2Vub3R5cGUJALUJAgkAswICCQCwAgIFA2dlbgAFAAMCAAQGcGFydHMxCQCsAgIJAJEDAgUIZ2Vub3R5cGUAAAkAkQMCBQhnZW5vdHlwZQABBAZwYXJ0czIJAKwCAgkAkQMCBQhnZW5vdHlwZQACCQCRAwIFCGdlbm90eXBlAAMEBnBhcnRzMwkArAICCQCRAwIFCGdlbm90eXBlAAQJAJEDAgUIZ2Vub3R5cGUABQQGcGFydHM0CQCsAgIJAJEDAgUIZ2Vub3R5cGUABgkAkQMCBQhnZW5vdHlwZQAHBAZwYXJ0czUJAKwCAgkAkQMCBQhnZW5vdHlwZQAICQCRAwIFCGdlbm90eXBlAAkEBnBhcnRzNgkArAICCQCRAwIFCGdlbm90eXBlAAoJAJEDAgUIZ2Vub3R5cGUACwQGcGFydHM3CQCsAgIJAJEDAgUIZ2Vub3R5cGUADAkAkQMCBQhnZW5vdHlwZQANBAZwYXJ0czgJAKwCAgkAkQMCBQhnZW5vdHlwZQAOCQCRAwIFCGdlbm90eXBlAA8EBXBhcnRzCQDMCAIFBnBhcnRzMQkAzAgCBQZwYXJ0czIJAMwIAgUGcGFydHMzCQDMCAIFBnBhcnRzNAkAzAgCBQZwYXJ0czUJAMwIAgUGcGFydHM2CQDMCAIFBnBhcnRzNwkAzAgCBQZwYXJ0czgFA25pbAoBD3NvcnRQYXJ0c0J5VHlwZQIDYWNjBHBhcnQECnNwbGl0UGFydHMJALUJAgUEcGFydAIAAwkAAAIJAJEDAgUKc3BsaXRQYXJ0cwAAAgFUCQCWCgQJAM0IAggFA2FjYwJfMQkAkQMCBQpzcGxpdFBhcnRzAAEIBQNhY2MCXzIIBQNhY2MCXzMIBQNhY2MCXzQDCQAAAgkAkQMCBQpzcGxpdFBhcnRzAAACAUQJAJYKBAgFA2FjYwJfMQkAzQgCCAUDYWNjAl8yCQCRAwIFCnNwbGl0UGFydHMAAQgFA2FjYwJfMwgFA2FjYwJfNAMJAAACCQCRAwIFCnNwbGl0UGFydHMAAAIBQwkAlgoECAUDYWNjAl8xCAUDYWNjAl8yCQDNCAIIBQNhY2MCXzMJAJEDAgUKc3BsaXRQYXJ0cwABCAUDYWNjAl80AwkAAAIJAJEDAgUKc3BsaXRQYXJ0cwAAAgFICQCWCgQIBQNhY2MCXzEIBQNhY2MCXzIIBQNhY2MCXzMJAM0IAggFA2FjYwJfNAkAkQMCBQpzcGxpdFBhcnRzAAEJAAIBAgxVTktOT1dOIFRZUEUEBnJlc3VsdAoAAiRsBQVwYXJ0cwoAAiRzCQCQAwEFAiRsCgAFJGFjYzAJAJYKBAUDbmlsBQNuaWwFA25pbAUDbmlsCgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQ9zb3J0UGFydHNCeVR5cGUCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECE0xpc3Qgc2l6ZSBleGNlZWRzIDgJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAwkAAAIFBnJlc3VsdAUGcmVzdWx0CgETY29tcG9zZVN0cmluZ1R1cnRsZQIDYWNjBGNoYXIECWNoYXJDb3VudAoAAiRsCAUGcmVzdWx0Al8xCgACJHMJAJADAQUCJGwKAAUkYWNjMAkAlAoCAAAFBGNoYXIKAQUkZjFfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBCGlzU3ltYm9sAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYxXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhNMaXN0IHNpemUgZXhjZWVkcyA4CQEFJGYxXzICCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAkArAICBQNhY2MJARBnZXRBbW91bnRPckNsZWFyAQkArAICCQCkAwEIBQljaGFyQ291bnQCXzEFBGNoYXIKARFjb21wb3NlU3RyaW5nRHVjawIDYWNjBGNoYXIECWNoYXJDb3VudAoAAiRsCAUGcmVzdWx0Al8yCgACJHMJAJADAQUCJGwKAAUkYWNjMAkAlAoCAAAFBGNoYXIKAQUkZjFfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBCGlzU3ltYm9sAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYxXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhNMaXN0IHNpemUgZXhjZWVkcyA4CQEFJGYxXzICCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAkArAICBQNhY2MJARBnZXRBbW91bnRPckNsZWFyAQkArAICCQCkAwEIBQljaGFyQ291bnQCXzEFBGNoYXIKARBjb21wb3NlU3RyaW5nQ2F0AgNhY2MEY2hhcgQJY2hhckNvdW50CgACJGwIBQZyZXN1bHQCXzMKAAIkcwkAkAMBBQIkbAoABSRhY2MwCQCUCgIAAAUEY2hhcgoBBSRmMV8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEIaXNTeW1ib2wCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjFfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECE0xpc3Qgc2l6ZSBleGNlZWRzIDgJAQUkZjFfMgIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAICQCsAgIFA2FjYwkBEGdldEFtb3VudE9yQ2xlYXIBCQCsAgIJAKQDAQgFCWNoYXJDb3VudAJfMQUEY2hhcgoBEGNvbXBvc2VTdHJpbmdEb2cCA2FjYwRjaGFyBAljaGFyQ291bnQKAAIkbAgFBnJlc3VsdAJfNAoAAiRzCQCQAwEFAiRsCgAFJGFjYzAJAJQKAgAABQRjaGFyCgEFJGYxXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQhpc1N5bWJvbAIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMV8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQITTGlzdCBzaXplIGV4Y2VlZHMgOAkBBSRmMV8yAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgJAKwCAgUDYWNjCQEQZ2V0QW1vdW50T3JDbGVhcgEJAKwCAgkApAMBCAUJY2hhckNvdW50Al8xBQRjaGFyBAp0dXJ0bGVHZW5zCgACJGwJAQhjaGFyTGlzdAAKAAIkcwkAkAMBBQIkbAoABSRhY2MwAgAKAQUkZjFfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBE2NvbXBvc2VTdHJpbmdUdXJ0bGUCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjFfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDI2CQEFJGYxXzICCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMAA0ADgAPABAAEQASABMAFAAVABYAFwAYABkAGgQIZHVja0dlbnMKAAIkbAkBCGNoYXJMaXN0AAoAAiRzCQCQAwEFAiRsCgAFJGFjYzACAAoBBSRmMl8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQERY29tcG9zZVN0cmluZ0R1Y2sCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjJfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDI2CQEFJGYyXzICCQEFJGYyXzECCQEFJGYyXzECCQEFJGYyXzECCQEFJGYyXzECCQEFJGYyXzECCQEFJGYyXzECCQEFJGYyXzECCQEFJGYyXzECCQEFJGYyXzECCQEFJGYyXzECCQEFJGYyXzECCQEFJGYyXzECCQEFJGYyXzECCQEFJGYyXzECCQEFJGYyXzECCQEFJGYyXzECCQEFJGYyXzECCQEFJGYyXzECCQEFJGYyXzECCQEFJGYyXzECCQEFJGYyXzECCQEFJGYyXzECCQEFJGYyXzECCQEFJGYyXzECCQEFJGYyXzECCQEFJGYyXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMAA0ADgAPABAAEQASABMAFAAVABYAFwAYABkAGgQHY2F0R2VucwoAAiRsCQEIY2hhckxpc3QACgACJHMJAJADAQUCJGwKAAUkYWNjMAIACgEFJGYzXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJARBjb21wb3NlU3RyaW5nQ2F0AgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYzXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAyNgkBBSRmM18yAgkBBSRmM18xAgkBBSRmM18xAgkBBSRmM18xAgkBBSRmM18xAgkBBSRmM18xAgkBBSRmM18xAgkBBSRmM18xAgkBBSRmM18xAgkBBSRmM18xAgkBBSRmM18xAgkBBSRmM18xAgkBBSRmM18xAgkBBSRmM18xAgkBBSRmM18xAgkBBSRmM18xAgkBBSRmM18xAgkBBSRmM18xAgkBBSRmM18xAgkBBSRmM18xAgkBBSRmM18xAgkBBSRmM18xAgkBBSRmM18xAgkBBSRmM18xAgkBBSRmM18xAgkBBSRmM18xAgkBBSRmM18xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAEgATABQAFQAWABcAGAAZABoECGhvbmRHZW5zCgACJGwJAQhjaGFyTGlzdAAKAAIkcwkAkAMBBQIkbAoABSRhY2MwAgAKAQUkZjRfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBEGNvbXBvc2VTdHJpbmdEb2cCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjRfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDI2CQEFJGY0XzICCQEFJGY0XzECCQEFJGY0XzECCQEFJGY0XzECCQEFJGY0XzECCQEFJGY0XzECCQEFJGY0XzECCQEFJGY0XzECCQEFJGY0XzECCQEFJGY0XzECCQEFJGY0XzECCQEFJGY0XzECCQEFJGY0XzECCQEFJGY0XzECCQEFJGY0XzECCQEFJGY0XzECCQEFJGY0XzECCQEFJGY0XzECCQEFJGY0XzECCQEFJGY0XzECCQEFJGY0XzECCQEFJGY0XzECCQEFJGY0XzECCQEFJGY0XzECCQEFJGY0XzECCQEFJGY0XzECCQEFJGY0XzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMAA0ADgAPABAAEQASABMAFAAVABYAFwAYABkAGgkAlAoCCQDMCAIJAQtTdHJpbmdFbnRyeQICDERFQlVHX1RVUlRMRQUKdHVydGxlR2VucwkAzAgCCQELU3RyaW5nRW50cnkCAgpERUJVR19EVUNLBQhkdWNrR2VucwkAzAgCCQELU3RyaW5nRW50cnkCAglERUJVR19DQVQFB2NhdEdlbnMJAMwIAgkBC1N0cmluZ0VudHJ5AgIKREVCVUdfSE9ORAUIaG9uZEdlbnMFA25pbAkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAgJUOgUKdHVydGxlR2VucwIDX0Q6BQhkdWNrR2VucwIDX0M6BQdjYXRHZW5zAgNfSDoFCGhvbmRHZW5zCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAgFpAQNwb2MBCmFzc2V0SWRTdHIEBWFzc2V0CQDZBAEFCmFzc2V0SWRTdHIED3BhcnNlZEFzc2V0SW5mbwkBBXZhbHVlAQkA7AcBBQVhc3NldAQEYm9keQgFD3BhcnNlZEFzc2V0SW5mbwtkZXNjcmlwdGlvbgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgICBkRFQlVHXwUKYXNzZXRJZFN0cgUEYm9keQUDbmlsAWkBCnBvY05hbWVHZW4EBW5hbWUxBW5hbWUyBHR4SWQMZmluaXNoSGVpZ2h0BAtjb2xvclJhbmRvbQkBD2dldFJhbmRvbU51bWJlcgQABAkA2QQBBQR0eElkBQxmaW5pc2hIZWlnaHQACwQFY29sb3IDCQAAAgULY29sb3JSYW5kb20AAAIBUgMJAAACBQtjb2xvclJhbmRvbQABAgFEAwkAAAIFC2NvbG9yUmFuZG9tAAICAVMCAUcECnBhcmVudDFHZW4JALUJAgUFbmFtZTECAAQKcGFyZW50MkdlbgkAtQkCBQVuYW1lMgIABANnZW4JAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIFTVROVC0JAQxnZXRSYW5kb21HZW4FCQCsAgIJAJEDAgUKcGFyZW50MUdlbgAACQCRAwIFCnBhcmVudDFHZW4ABQkArAICCQCRAwIFCnBhcmVudDJHZW4AAAkAkQMCBQpwYXJlbnQyR2VuAAUAAAkA2QQBBQR0eElkBQxmaW5pc2hIZWlnaHQJAQxnZXRSYW5kb21HZW4FCQCsAgIJAJEDAgUKcGFyZW50MUdlbgAACQCRAwIFCnBhcmVudDFHZW4ABgkArAICCQCRAwIFCnBhcmVudDJHZW4AAAkAkQMCBQpwYXJlbnQyR2VuAAYAAQkA2QQBBQR0eElkBQxmaW5pc2hIZWlnaHQJAQxnZXRSYW5kb21HZW4FCQCsAgIJAJEDAgUKcGFyZW50MUdlbgAACQCRAwIFCnBhcmVudDFHZW4ABwkArAICCQCRAwIFCnBhcmVudDJHZW4AAAkAkQMCBQpwYXJlbnQyR2VuAAcAAgkA2QQBBQR0eElkBQxmaW5pc2hIZWlnaHQJAQxnZXRSYW5kb21HZW4FCQCsAgIJAJEDAgUKcGFyZW50MUdlbgAACQCRAwIFCnBhcmVudDFHZW4ACAkArAICCQCRAwIFCnBhcmVudDJHZW4AAAkAkQMCBQpwYXJlbnQyR2VuAAgAAwkA2QQBBQR0eElkBQxmaW5pc2hIZWlnaHQJAQxnZXRSYW5kb21HZW4FCQCsAgIJAJEDAgUKcGFyZW50MUdlbgAACQCRAwIFCnBhcmVudDFHZW4ACQkArAICCQCRAwIFCnBhcmVudDJHZW4AAAkAkQMCBQpwYXJlbnQyR2VuAAkABAkA2QQBBQR0eElkBQxmaW5pc2hIZWlnaHQJAQxnZXRSYW5kb21HZW4FCQCsAgIJAJEDAgUKcGFyZW50MUdlbgAACQCRAwIFCnBhcmVudDFHZW4ACgkArAICCQCRAwIFCnBhcmVudDJHZW4AAAkAkQMCBQpwYXJlbnQyR2VuAAoABQkA2QQBBQR0eElkBQxmaW5pc2hIZWlnaHQJAQxnZXRSYW5kb21HZW4FCQCsAgIJAJEDAgUKcGFyZW50MUdlbgAACQCRAwIFCnBhcmVudDFHZW4ACwkArAICCQCRAwIFCnBhcmVudDJHZW4AAAkAkQMCBQpwYXJlbnQyR2VuAAsABgkA2QQBBQR0eElkBQxmaW5pc2hIZWlnaHQJAQxnZXRSYW5kb21HZW4FCQCsAgIJAJEDAgUKcGFyZW50MUdlbgAACQCRAwIFCnBhcmVudDFHZW4ADAkArAICCQCRAwIFCnBhcmVudDJHZW4AAAkAkQMCBQpwYXJlbnQyR2VuAAwABwkA2QQBBQR0eElkBQxmaW5pc2hIZWlnaHQCAi1HBQVjb2xvcgQKcmFyaXR5Q2FsYwkBDW5yT2ZUeXBlR2VuZXMBBQNnZW4JAM4IAgkAzAgCCQEMSW50ZWdlckVudHJ5AgIMREVCVUdfYW1vdW50CQBkAgkBDXRyeUdldEludGVnZXIBAgxERUJVR19hbW91bnQAAQkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICAg1ERUJVR19yYXJpdHk6CAUKcmFyaXR5Q2FsYwJfMgkAZAIJAQ10cnlHZXRJbnRlZ2VyAQkArAICAg1ERUJVR19yYXJpdHk6CAUKcmFyaXR5Q2FsYwJfMgABCQDMCAIJAQtTdHJpbmdFbnRyeQICDURFQlVHX3BhcmVudDEFBW5hbWUxCQDMCAIJAQtTdHJpbmdFbnRyeQICDURFQlVHX3BhcmVudDIFBW5hbWUyCQDMCAIJAQtTdHJpbmdFbnRyeQICCkRFQlVHX25hbWUJAKwCAgIFTVROVC0JAKQDAQkAZAIJAQ10cnlHZXRJbnRlZ2VyAQIMREVCVUdfYW1vdW50AAEJAMwIAgkBC1N0cmluZ0VudHJ5AgIMREVCVUdfcmVzdWx0BQNnZW4FA25pbAgFCnJhcml0eUNhbGMCXzEATD7UjA==", "height": 4101356, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: GfuH9dz2dghs4hLpSZCpe8i2NT4pFpeXw9vm3SBRpBfJ Next: GEdnNxVmkmgJ8CRomYpDmttqGJ69Vz4e1PCvUz11e32Z Diff:
Old | New | Differences | |
---|---|---|---|
209 | 209 | ||
210 | 210 | $f4_2($f4_1($f4_1($f4_1($f4_1($f4_1($f4_1($f4_1($f4_1($f4_1($f4_1($f4_1($f4_1($f4_1($f4_1($f4_1($f4_1($f4_1($f4_1($f4_1($f4_1($f4_1($f4_1($f4_1($f4_1($f4_1($f4_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) | |
211 | 211 | } | |
212 | - | $Tuple2([StringEntry("DEBUG_TURTLE", turtleGens), StringEntry("DEBUG_DUCK", duckGens), StringEntry("DEBUG_CAT", catGens), StringEntry("DEBUG_HOND", hondGens)], ((((((turtleGens + "_") + duckGens) + "_") + catGens) + "_") + hondGens)) | |
212 | + | $Tuple2([StringEntry("DEBUG_TURTLE", turtleGens), StringEntry("DEBUG_DUCK", duckGens), StringEntry("DEBUG_CAT", catGens), StringEntry("DEBUG_HOND", hondGens)], ((((((("T:" + turtleGens) + "_D:") + duckGens) + "_C:") + catGens) + "_H:") + hondGens)) | |
213 | 213 | } | |
214 | 214 | else throw("Strict value is not equal to itself.") | |
215 | 215 | } |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 6 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | func getRandomNumber (variants,txId,hatchingFinishHeight,offset) = { | |
5 | 5 | let randomSeedBlock = value(blockInfoByHeight((hatchingFinishHeight - 1))) | |
6 | 6 | let randomHash = sha256_16Kb((txId + value(randomSeedBlock.vrf))) | |
7 | 7 | (toInt(randomHash, offset) % variants) | |
8 | 8 | } | |
9 | 9 | ||
10 | 10 | ||
11 | 11 | func getRandomGen (gen1,gen2,step,txId,hatchingFinishHeight) = { | |
12 | 12 | let randomNum = getRandomNumber(2, txId, hatchingFinishHeight, step) | |
13 | 13 | let gen = if ((randomNum == 0)) | |
14 | 14 | then gen1 | |
15 | 15 | else gen2 | |
16 | 16 | gen | |
17 | 17 | } | |
18 | 18 | ||
19 | 19 | ||
20 | 20 | func tryGetInteger (key) = { | |
21 | 21 | let val = match getInteger(this, key) { | |
22 | 22 | case b: Int => | |
23 | 23 | b | |
24 | 24 | case _ => | |
25 | 25 | 0 | |
26 | 26 | } | |
27 | 27 | val | |
28 | 28 | } | |
29 | 29 | ||
30 | 30 | ||
31 | 31 | func isSymbol (acc,sym) = if ((sym == acc._2)) | |
32 | 32 | then $Tuple2((acc._1 + 1), acc._2) | |
33 | 33 | else $Tuple2((acc._1 + 0), acc._2) | |
34 | 34 | ||
35 | 35 | ||
36 | 36 | func getAmountOrClear (amount) = if (contains(amount, "0")) | |
37 | 37 | then "" | |
38 | 38 | else amount | |
39 | 39 | ||
40 | 40 | ||
41 | 41 | func charList () = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"] | |
42 | 42 | ||
43 | 43 | ||
44 | 44 | func nrOfTypeGenes (gen) = { | |
45 | 45 | let genotype = split(dropRight(drop(gen, 5), 3), "") | |
46 | 46 | let parts1 = (genotype[0] + genotype[1]) | |
47 | 47 | let parts2 = (genotype[2] + genotype[3]) | |
48 | 48 | let parts3 = (genotype[4] + genotype[5]) | |
49 | 49 | let parts4 = (genotype[6] + genotype[7]) | |
50 | 50 | let parts5 = (genotype[8] + genotype[9]) | |
51 | 51 | let parts6 = (genotype[10] + genotype[11]) | |
52 | 52 | let parts7 = (genotype[12] + genotype[13]) | |
53 | 53 | let parts8 = (genotype[14] + genotype[15]) | |
54 | 54 | let parts = [parts1, parts2, parts3, parts4, parts5, parts6, parts7, parts8] | |
55 | 55 | func sortPartsByType (acc,part) = { | |
56 | 56 | let splitParts = split(part, "") | |
57 | 57 | if ((splitParts[0] == "T")) | |
58 | 58 | then $Tuple4((acc._1 :+ splitParts[1]), acc._2, acc._3, acc._4) | |
59 | 59 | else if ((splitParts[0] == "D")) | |
60 | 60 | then $Tuple4(acc._1, (acc._2 :+ splitParts[1]), acc._3, acc._4) | |
61 | 61 | else if ((splitParts[0] == "C")) | |
62 | 62 | then $Tuple4(acc._1, acc._2, (acc._3 :+ splitParts[1]), acc._4) | |
63 | 63 | else if ((splitParts[0] == "H")) | |
64 | 64 | then $Tuple4(acc._1, acc._2, acc._3, (acc._4 :+ splitParts[1])) | |
65 | 65 | else throw("UNKNOWN TYPE") | |
66 | 66 | } | |
67 | 67 | ||
68 | 68 | let result = { | |
69 | 69 | let $l = parts | |
70 | 70 | let $s = size($l) | |
71 | 71 | let $acc0 = $Tuple4(nil, nil, nil, nil) | |
72 | 72 | func $f0_1 ($a,$i) = if (($i >= $s)) | |
73 | 73 | then $a | |
74 | 74 | else sortPartsByType($a, $l[$i]) | |
75 | 75 | ||
76 | 76 | func $f0_2 ($a,$i) = if (($i >= $s)) | |
77 | 77 | then $a | |
78 | 78 | else throw("List size exceeds 8") | |
79 | 79 | ||
80 | 80 | $f0_2($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) | |
81 | 81 | } | |
82 | 82 | if ((result == result)) | |
83 | 83 | then { | |
84 | 84 | func composeStringTurtle (acc,char) = { | |
85 | 85 | let charCount = { | |
86 | 86 | let $l = result._1 | |
87 | 87 | let $s = size($l) | |
88 | 88 | let $acc0 = $Tuple2(0, char) | |
89 | 89 | func $f1_1 ($a,$i) = if (($i >= $s)) | |
90 | 90 | then $a | |
91 | 91 | else isSymbol($a, $l[$i]) | |
92 | 92 | ||
93 | 93 | func $f1_2 ($a,$i) = if (($i >= $s)) | |
94 | 94 | then $a | |
95 | 95 | else throw("List size exceeds 8") | |
96 | 96 | ||
97 | 97 | $f1_2($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) | |
98 | 98 | } | |
99 | 99 | (acc + getAmountOrClear((toString(charCount._1) + char))) | |
100 | 100 | } | |
101 | 101 | ||
102 | 102 | func composeStringDuck (acc,char) = { | |
103 | 103 | let charCount = { | |
104 | 104 | let $l = result._2 | |
105 | 105 | let $s = size($l) | |
106 | 106 | let $acc0 = $Tuple2(0, char) | |
107 | 107 | func $f1_1 ($a,$i) = if (($i >= $s)) | |
108 | 108 | then $a | |
109 | 109 | else isSymbol($a, $l[$i]) | |
110 | 110 | ||
111 | 111 | func $f1_2 ($a,$i) = if (($i >= $s)) | |
112 | 112 | then $a | |
113 | 113 | else throw("List size exceeds 8") | |
114 | 114 | ||
115 | 115 | $f1_2($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) | |
116 | 116 | } | |
117 | 117 | (acc + getAmountOrClear((toString(charCount._1) + char))) | |
118 | 118 | } | |
119 | 119 | ||
120 | 120 | func composeStringCat (acc,char) = { | |
121 | 121 | let charCount = { | |
122 | 122 | let $l = result._3 | |
123 | 123 | let $s = size($l) | |
124 | 124 | let $acc0 = $Tuple2(0, char) | |
125 | 125 | func $f1_1 ($a,$i) = if (($i >= $s)) | |
126 | 126 | then $a | |
127 | 127 | else isSymbol($a, $l[$i]) | |
128 | 128 | ||
129 | 129 | func $f1_2 ($a,$i) = if (($i >= $s)) | |
130 | 130 | then $a | |
131 | 131 | else throw("List size exceeds 8") | |
132 | 132 | ||
133 | 133 | $f1_2($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) | |
134 | 134 | } | |
135 | 135 | (acc + getAmountOrClear((toString(charCount._1) + char))) | |
136 | 136 | } | |
137 | 137 | ||
138 | 138 | func composeStringDog (acc,char) = { | |
139 | 139 | let charCount = { | |
140 | 140 | let $l = result._4 | |
141 | 141 | let $s = size($l) | |
142 | 142 | let $acc0 = $Tuple2(0, char) | |
143 | 143 | func $f1_1 ($a,$i) = if (($i >= $s)) | |
144 | 144 | then $a | |
145 | 145 | else isSymbol($a, $l[$i]) | |
146 | 146 | ||
147 | 147 | func $f1_2 ($a,$i) = if (($i >= $s)) | |
148 | 148 | then $a | |
149 | 149 | else throw("List size exceeds 8") | |
150 | 150 | ||
151 | 151 | $f1_2($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) | |
152 | 152 | } | |
153 | 153 | (acc + getAmountOrClear((toString(charCount._1) + char))) | |
154 | 154 | } | |
155 | 155 | ||
156 | 156 | let turtleGens = { | |
157 | 157 | let $l = charList() | |
158 | 158 | let $s = size($l) | |
159 | 159 | let $acc0 = "" | |
160 | 160 | func $f1_1 ($a,$i) = if (($i >= $s)) | |
161 | 161 | then $a | |
162 | 162 | else composeStringTurtle($a, $l[$i]) | |
163 | 163 | ||
164 | 164 | func $f1_2 ($a,$i) = if (($i >= $s)) | |
165 | 165 | then $a | |
166 | 166 | else throw("List size exceeds 26") | |
167 | 167 | ||
168 | 168 | $f1_2($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($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), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26) | |
169 | 169 | } | |
170 | 170 | let duckGens = { | |
171 | 171 | let $l = charList() | |
172 | 172 | let $s = size($l) | |
173 | 173 | let $acc0 = "" | |
174 | 174 | func $f2_1 ($a,$i) = if (($i >= $s)) | |
175 | 175 | then $a | |
176 | 176 | else composeStringDuck($a, $l[$i]) | |
177 | 177 | ||
178 | 178 | func $f2_2 ($a,$i) = if (($i >= $s)) | |
179 | 179 | then $a | |
180 | 180 | else throw("List size exceeds 26") | |
181 | 181 | ||
182 | 182 | $f2_2($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_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) | |
183 | 183 | } | |
184 | 184 | let catGens = { | |
185 | 185 | let $l = charList() | |
186 | 186 | let $s = size($l) | |
187 | 187 | let $acc0 = "" | |
188 | 188 | func $f3_1 ($a,$i) = if (($i >= $s)) | |
189 | 189 | then $a | |
190 | 190 | else composeStringCat($a, $l[$i]) | |
191 | 191 | ||
192 | 192 | func $f3_2 ($a,$i) = if (($i >= $s)) | |
193 | 193 | then $a | |
194 | 194 | else throw("List size exceeds 26") | |
195 | 195 | ||
196 | 196 | $f3_2($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_1($f3_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) | |
197 | 197 | } | |
198 | 198 | let hondGens = { | |
199 | 199 | let $l = charList() | |
200 | 200 | let $s = size($l) | |
201 | 201 | let $acc0 = "" | |
202 | 202 | func $f4_1 ($a,$i) = if (($i >= $s)) | |
203 | 203 | then $a | |
204 | 204 | else composeStringDog($a, $l[$i]) | |
205 | 205 | ||
206 | 206 | func $f4_2 ($a,$i) = if (($i >= $s)) | |
207 | 207 | then $a | |
208 | 208 | else throw("List size exceeds 26") | |
209 | 209 | ||
210 | 210 | $f4_2($f4_1($f4_1($f4_1($f4_1($f4_1($f4_1($f4_1($f4_1($f4_1($f4_1($f4_1($f4_1($f4_1($f4_1($f4_1($f4_1($f4_1($f4_1($f4_1($f4_1($f4_1($f4_1($f4_1($f4_1($f4_1($f4_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) | |
211 | 211 | } | |
212 | - | $Tuple2([StringEntry("DEBUG_TURTLE", turtleGens), StringEntry("DEBUG_DUCK", duckGens), StringEntry("DEBUG_CAT", catGens), StringEntry("DEBUG_HOND", hondGens)], ((((((turtleGens + "_") + duckGens) + "_") + catGens) + "_") + hondGens)) | |
212 | + | $Tuple2([StringEntry("DEBUG_TURTLE", turtleGens), StringEntry("DEBUG_DUCK", duckGens), StringEntry("DEBUG_CAT", catGens), StringEntry("DEBUG_HOND", hondGens)], ((((((("T:" + turtleGens) + "_D:") + duckGens) + "_C:") + catGens) + "_H:") + hondGens)) | |
213 | 213 | } | |
214 | 214 | else throw("Strict value is not equal to itself.") | |
215 | 215 | } | |
216 | 216 | ||
217 | 217 | ||
218 | 218 | @Callable(i) | |
219 | 219 | func poc (assetIdStr) = { | |
220 | 220 | let asset = fromBase58String(assetIdStr) | |
221 | 221 | let parsedAssetInfo = value(assetInfo(asset)) | |
222 | 222 | let body = parsedAssetInfo.description | |
223 | 223 | [StringEntry(("DEBUG_" + assetIdStr), body)] | |
224 | 224 | } | |
225 | 225 | ||
226 | 226 | ||
227 | 227 | ||
228 | 228 | @Callable(i) | |
229 | 229 | func pocNameGen (name1,name2,txId,finishHeight) = { | |
230 | 230 | let colorRandom = getRandomNumber(4, fromBase58String(txId), finishHeight, 11) | |
231 | 231 | let color = if ((colorRandom == 0)) | |
232 | 232 | then "R" | |
233 | 233 | else if ((colorRandom == 1)) | |
234 | 234 | then "D" | |
235 | 235 | else if ((colorRandom == 2)) | |
236 | 236 | then "S" | |
237 | 237 | else "G" | |
238 | 238 | let parent1Gen = split(name1, "") | |
239 | 239 | let parent2Gen = split(name2, "") | |
240 | 240 | let gen = (((((((((("MTNT-" + getRandomGen((parent1Gen[0] + parent1Gen[5]), (parent2Gen[0] + parent2Gen[5]), 0, fromBase58String(txId), finishHeight)) + getRandomGen((parent1Gen[0] + parent1Gen[6]), (parent2Gen[0] + parent2Gen[6]), 1, fromBase58String(txId), finishHeight)) + getRandomGen((parent1Gen[0] + parent1Gen[7]), (parent2Gen[0] + parent2Gen[7]), 2, fromBase58String(txId), finishHeight)) + getRandomGen((parent1Gen[0] + parent1Gen[8]), (parent2Gen[0] + parent2Gen[8]), 3, fromBase58String(txId), finishHeight)) + getRandomGen((parent1Gen[0] + parent1Gen[9]), (parent2Gen[0] + parent2Gen[9]), 4, fromBase58String(txId), finishHeight)) + getRandomGen((parent1Gen[0] + parent1Gen[10]), (parent2Gen[0] + parent2Gen[10]), 5, fromBase58String(txId), finishHeight)) + getRandomGen((parent1Gen[0] + parent1Gen[11]), (parent2Gen[0] + parent2Gen[11]), 6, fromBase58String(txId), finishHeight)) + getRandomGen((parent1Gen[0] + parent1Gen[12]), (parent2Gen[0] + parent2Gen[12]), 7, fromBase58String(txId), finishHeight)) + "-G") + color) | |
241 | 241 | let rarityCalc = nrOfTypeGenes(gen) | |
242 | 242 | ([IntegerEntry("DEBUG_amount", (tryGetInteger("DEBUG_amount") + 1)), IntegerEntry(("DEBUG_rarity:" + rarityCalc._2), (tryGetInteger(("DEBUG_rarity:" + rarityCalc._2)) + 1)), StringEntry("DEBUG_parent1", name1), StringEntry("DEBUG_parent2", name2), StringEntry("DEBUG_name", ("MTNT-" + toString((tryGetInteger("DEBUG_amount") + 1)))), StringEntry("DEBUG_result", gen)] ++ rarityCalc._1) | |
243 | 243 | } | |
244 | 244 | ||
245 | 245 |
github/deemru/w8io/6500d08 37.24 ms ◑