tx · 4sySkbQaEDQeTBy4Az6dDx6Zamam2ChuqPQPAWzcZ67r

3P2Tj3KgTYhSVe23XXeAmkwYB43YnZ5dENJ:  -0.01100000 Waves

2023.10.22 23:48 [3876178] smart account 3P2Tj3KgTYhSVe23XXeAmkwYB43YnZ5dENJ > SELF 0.00000000 Waves

{ "type": 13, "id": "4sySkbQaEDQeTBy4Az6dDx6Zamam2ChuqPQPAWzcZ67r", "fee": 1100000, "feeAssetId": null, "timestamp": 1698007728114, "version": 2, "chainId": 87, "sender": "3P2Tj3KgTYhSVe23XXeAmkwYB43YnZ5dENJ", "senderPublicKey": "ECg19w7L36EZDu4zprurC23FPVeaKGnobnwzbZH2Dgyd", "proofs": [ "2WjDpmdWxyaFuuCgb4jPEF2Wjm5yfUa2oBrbsmagZgcLktq39Nh3s7VjkXnD4BMSG6RM9BoU1mgdorfBLm3q3Zuk" ], "script": "base64:BgIYCAISABIAEgMKAQESABIAEgMKAQgSABIAGgAEUEVURQEg4W4pTkHcHIXuYikIATFxVuov8OITyH3BrthKEwuN9tYAElBldGVTdGFraW5nQWRkcmVzcwkBB0FkZHJlc3MBARoBV2qxSTJN3QE8WlTs6Heuf4HE06AyMEj07QALU3dhcEFkZHJlc3MJAQdBZGRyZXNzAQEaAVcuKjU1sQ238Xk+4bdG0J50Uk17MdCDrgYAC1RlYW1BZGRyZXNzCQEHQWRkcmVzcwEBGgFXrGfSWrEBpqNP6e7xdRI8GkyCe3sRTGA6AAlzZXBhcmF0b3ICAV8ADEpBQ0tQT1RfUEFSVAA8AAlURUFNX1BBUlQAHgAKQkVUX0FNT1VOVACQn9oDAARXNDIwAICU69wDAAtzdXBwbGllZEtleQIKcGV0ZV90b3RhbAAKamFja3BvdEtleQIMcGV0ZV9qYWNrcG90AA1wZXRlSW5Mb2NrS2V5AgxwZXRlX2luX2xvY2sAEHBldGVJblN0YWtpbmdLZXkCD3BldGVfaW5fc3Rha2luZwAJbGlkZXJzS2V5AgZsaWRlcnMADHRvdGFsU3BpbktleQIKc3Bpbl90b3RhbAELZ2V0Q291bnRLZXkBCmFkZHJlc3NTdHIJAKwCAgUKYWRkcmVzc1N0cgIEX2NudAAFblR4SWQAAAAHblJlc3VsdAABAAduSGVpZ2h0AAIACG5BZGRyZXNzAAMBBnJldmVhbAIEdHhpZAt0YXJnZXRCbG9jawMJAGcCBQZoZWlnaHQFC3RhcmdldEJsb2NrBAtyZXZlYWxCbG9jawkBBXZhbHVlAQkA7QcBBQt0YXJnZXRCbG9jawQDdnJmCQEFdmFsdWUBCAULcmV2ZWFsQmxvY2sDdnJmBAZyZXZlYWwJAPcDAQkAywECBQN2cmYJAJsDAQUEdHhpZAkAagIJALEJAQUGcmV2ZWFsAAoA////////////AQERY2hlY2tXaW5uZXJBbW91bnQBBnJlc3VsdAMJAAACBQZyZXN1bHQCAzc3NwkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQpqYWNrcG90S2V5AAADCQAAAgUGcmVzdWx0AgM0MjAFBFc0MjADCQAAAgUGcmVzdWx0AgMxMDAAgMLXLwMJAAACBQZyZXN1bHQCAzExMQCA77k0AwkAAAIFBnJlc3VsdAIDMjIyAICcnDkDCQAAAgUGcmVzdWx0AgMzMzMAgMn+PQMJAAACBQZyZXN1bHQCAzQ0NACA9uBCAwkAAAIFBnJlc3VsdAIDNTU1AICjw0cDCQAAAgUGcmVzdWx0AgM4ODgAgKrqVQMJAAACBQZyZXN1bHQCAzk5OQCA18xaAwkAAAIFBnJlc3VsdAIDNjY2AICa27oCAwkAAAIFBnJlc3VsdAIDMTM3AIDGho8BAAABCmpzb25SZXN1bHQBCmFkZHJlc3NTdHIDCQEBIQEJAQlpc0RlZmluZWQBCQCdCAIFBHRoaXMFCmFkZHJlc3NTdHICFHsic3RhdHVzIjoibm8gZ2FtZSJ9BARkYXRhCQC1CQIJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQR0aGlzBQphZGRyZXNzU3RyCQCsAgICGHVuYWJsZSB0byByZWFkIGRhdGEgZm9yIAUKYWRkcmVzc1N0cgUJc2VwYXJhdG9yBAR0eGlkCQCRAwIFBGRhdGEFBW5UeElkBAxjb21taXRIZWlnaHQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA6QcBCQDZBAEFBHR4aWQJAKwCAgUEdHhpZAIKIG5vdCBmb3VuZAQCcjEJAQZyZXZlYWwCBQR0eGlkCQBkAgUMY29tbWl0SGVpZ2h0AAEEAnIyCQEGcmV2ZWFsAgUEdHhpZAkAZAIFDGNvbW1pdEhlaWdodAACBAJyMwkBBnJldmVhbAIFBHR4aWQJAGQCBQxjb21taXRIZWlnaHQAAwQGcmVzdWx0CQCsAgIJAKwCAgkApAMBBQJyMQkApAMBBQJyMgkApAMBBQJyMwQMd2lubmVyQW1vdW50CQERY2hlY2tXaW5uZXJBbW91bnQBBQZyZXN1bHQEBGpzb24JAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAgF7AhMic3RhdHVzIjoiaW4gZ2FtZSIsAgEiAgVwcml6ZQIBIgIBOgkApAMBBQx3aW5uZXJBbW91bnQCASwCASICAnIxAgEiAgE6CQCkAwEFAnIxAgEsAgEiAgJyMgIBIgIBOgkApAMBBQJyMgIBLAIBIgICcjMCASICAToJAKQDAQUCcjMCAAIBfQUEanNvbgENcHJpdmF0ZVN1cHBseQEGYW1vdW50BAV0b3RhbAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQtzdXBwbGllZEtleQAABAdqYWNrcG90CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFCmphY2twb3RLZXkAAAQIbmV3VG90YWwJAGQCBQV0b3RhbAkAawMFBmFtb3VudAkAZQIAZAUMSkFDS1BPVF9QQVJUAGQECm5ld0phY2twb3QJAGQCBQdqYWNrcG90CQBrAwUGYW1vdW50BQxKQUNLUE9UX1BBUlQAZAkAzAgCCQEMSW50ZWdlckVudHJ5AgULc3VwcGxpZWRLZXkFCG5ld1RvdGFsCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQpqYWNrcG90S2V5BQpuZXdKYWNrcG90BQNuaWwBEnByaXZhdGVDaGVja0xpZGVycwIKYWRkcmVzc1N0cglzcGluQ291bnQECWxpZGVyc1N0cgkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzBQlsaWRlcnNLZXkCAAQGbGlkZXJzAwkBAiE9AgUJbGlkZXJzU3RyAgAJAL0JAgkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwUJbGlkZXJzS2V5BQlzZXBhcmF0b3IFA25pbAQIbWluQ291bnQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBC2dldENvdW50S2V5AQkAkQMCBQZsaWRlcnMJAGUCCQCQAwEFBmxpZGVycwABAAAEA2lkeAkAzwgCBQZsaWRlcnMFCmFkZHJlc3NTdHIEDmZpbHRlcmVkTGlkZXJzAwkBCWlzRGVmaW5lZAEFA2lkeAkA0QgCBQZsaWRlcnMJAQV2YWx1ZQEFA2lkeAUGbGlkZXJzBApsaWRlcnNTaXplCQCQAwEFDmZpbHRlcmVkTGlkZXJzCgEIZm9sZFNvcnQCBWFjY3VtB2FkZHJlc3MEA2NudAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQELZ2V0Q291bnRLZXkBBQdhZGRyZXNzAAAECWFjY3VtU2l6ZQkAkAMBBQVhY2N1bQMJ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cmVzc1N0cgR0eGlkBAZsb2NrZWQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUNcGV0ZUluTG9ja0tleQAABAV0b3RhbAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQtzdXBwbGllZEtleQAABAl0b3RhbFNwaW4JAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUMdG90YWxTcGluS2V5ABEEDG5ld1NwaW5Db3VudAkAZAIJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBC2dldENvdW50S2V5AQUKYWRkcmVzc1N0cgAAAAEDCQBmAgUEVzQyMAUFdG90YWwJAAIBAg1ubyBwZXRlIGluIHNjBANzdHIJALkJAgkAzAgCBQR0eGlkCQDMCAICA3h4eAkAzAgCCQCkAwEFBmhlaWdodAkAzAgCBQphZGRyZXNzU3RyBQNuaWwFCXNlcGFyYXRvcgQGbGlkZXJzCQEScHJpdmF0ZUNoZWNrTGlkZXJzAgUKYWRkcmVzc1N0cgUMbmV3U3BpbkNvdW50BANyZXMJAMwIAgkBC1N0cmluZ0VudHJ5AgUKYWRkcmVzc1N0cgUDc3RyCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQ1wZXRlSW5Mb2NrS2V5CQBkAgUGbG9ja2VkBQRXNDIwCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQELZ2V0Q291bnRLZXkBBQphZGRyZXNzU3RyBQxuZXdTcGluQ291bnQJAMwIAgkBDEludGVnZXJFbnRyeQIFDHRvdGFsU3BpbktleQkAZAIFCXRvdGFsU3BpbgABBQNuaWwJAM4IAgUGbGlkZXJzBQNyZXMIAWkBBnN1cHBseQADCQAAAggFAWkGY2FsbGVyBQR0aGlzCQACAQIJeW91IGNhbid0AwMJAAACCQCQAwEIBQFpCHBheW1lbnRzAAEJAAACCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQFBFBFVEUHCQENcHJpdmF0ZVN1cHBseQEICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50CQACAQILYmFkIHBheW1lbnQBaQEJc3Rha2VQZXRlAAMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECCXlvdSBjYW4ndAQKcGV0ZUFtb3VudAkA8AcCBQR0aGlzBQRQRVRFBAtwZXRlSW5TdGFrZQkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBRBwZXRlSW5TdGFraW5nS2V5AAAEA2ludgkA/AcEBRJQZXRlU3Rha2luZ0FkZHJlc3MCBXN0YWtlBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFBFBFVEUFCnBldGVBbW91bnQFA25pbAMJAAACBQNpbnYFA2ludgkAzAgCCQEMSW50ZWdlckVudHJ5AgUQcGV0ZUluU3Rha2luZ0tleQkAZAIFC3BldGVJblN0YWtlBQpwZXRlQW1vdW50BQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQELdW5zdGFrZVBldGUBBmFtb3VudAMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECCXlvdSBjYW4ndAQLcGV0ZUluU3Rha2UJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBQR0aGlzBRBwZXRlSW5TdGFraW5nS2V5CQCsAgIFEHBldGVJblN0YWtpbmdLZXkCCiBub3QgZm91bmQEA2ludgkA/AcEBRJQZXRlU3Rha2luZ0FkZHJlc3MCB3Vuc3Rha2UJAMwIAgUGYW1vdW50BQNuaWwFA25pbAMJAAACBQNpbnYFA2ludgkAzAgCCQEMSW50ZWdlckVudHJ5AgUQcGV0ZUluU3Rha2luZ0tleQkAZQIFC3BldGVJblN0YWtlBQZhbW91bnQFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARRjbGFpbVBldGVGcm9tU3Rha2luZwAEEHBldGVBbW91bnRCZWZvcmUJAPAHAgUEdGhpcwUEUEVURQMJAAACBRBwZXRlQW1vdW50QmVmb3JlBRBwZXRlQW1vdW50QmVmb3JlBANpbnYJAPwHBAUSUGV0ZVN0YWtpbmdBZGRyZXNzAgVjbGFpbQUDbmlsBQNuaWwDCQAAAgUDaW52BQNpbnYEDXBldGVBbW91bnROZXcJAGUCCQDwBwIFBHRoaXMFBFBFVEUFEHBldGVBbW91bnRCZWZvcmUDCQAAAgUNcGV0ZUFtb3VudE5ldwUNcGV0ZUFtb3VudE5ldwMJAGYCBQ1wZXRlQW1vdW50TmV3AAAEBmxpZGVycwMJAQlpc0RlZmluZWQBCQCdCAIFBHRoaXMFCWxpZGVyc0tleQkAvQkCCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzBQlsaWRlcnNLZXkFCXNlcGFyYXRvcgUDbmlsBApsaWRlcnNTaXplCQCQAwEFBmxpZGVycwQCcDEDCQBnAgUKbGlkZXJzU2l6ZQABCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAJEDAgUGbGlkZXJzAAAAAAAABAJwMgMJAGcCBQpsaWRlcnNTaXplAAIJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkAkQMCBQZsaWRlcnMAAQAAAAAEAnAzAwkAZwIFCmxpZGVyc1NpemUAAwkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQCRAwIFBmxpZGVycwACAAAAAAQDcDF3AwkAZwIFCmxpZGVyc1NpemUAAQkAkQMCBQZsaWRlcnMAAAIKbm8gYWRkcmVzcwQDcDJ3AwkAZwIFCmxpZGVyc1NpemUAAgkAkQMCBQZsaWRlcnMAAQIKbm8gYWRkcmVzcwQDcDN3AwkAZwIFCmxpZGVyc1NpemUAAwkAkQMCBQZsaWRlcnMAAgIKbm8gYWRkcmVzcwQKdG90YWxDb3VudAkAZAIJAGQCBQJwMQUCcDIFAnAzBAJyMwMJAGYCBQJwMwAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJARFAZXh0ck5hdGl2ZSgxMDYyKQEFA3AzdwkAawMFDXBldGVBbW91bnROZXcFAnAzBQp0b3RhbENvdW50BQRQRVRFBQNuaWwFA25pbAQCcjIDCQBmAgUCcDIAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQERQGV4dHJOYXRpdmUoMTA2MikBBQNwMncJAGsDBQ1wZXRlQW1vdW50TmV3BQJwMgUKdG90YWxDb3VudAUEUEVURQUDbmlsBQNuaWwEAnIxAwkAZgIFAnAxAAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBEUBleHRyTmF0aXZlKDEwNjIpAQUDcDF3CQBrAwUNcGV0ZUFtb3VudE5ldwUCcDEFCnRvdGFsQ291bnQFBFBFVEUFA25pbAUDbmlsCQDOCAIJAM4IAgUCcjEFAnIyBQJyMwkAAgECEW5vdGhpbmcgYXZhaWxhYmxlCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBBHNwaW4AAwMDCQAAAgkAkAMBCAUBaQhwYXltZW50cwABCQAAAggJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkBQR1bml0BwkAAAIICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50BQpCRVRfQU1PVU5UBwQHYWRkcmVzcwkApQgBCAUBaQZjYWxsZXIEBHR4aWQJANgEAQgFAWkNdHJhbnNhY3Rpb25JZAMJAQlpc0RlZmluZWQBCQCdCAIFBHRoaXMFB2FkZHJlc3MEA2ludgkA/AcEBQR0aGlzAgZyZXN1bHQJAMwIAgUHYWRkcmVzcwUDbmlsBQNuaWwDCQAAAgUDaW52BQNpbnYJAQtwcml2YXRlU3BpbgIFB2FkZHJlc3MFBHR4aWQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAQtwcml2YXRlU3BpbgIFB2FkZHJlc3MFBHR4aWQJAAIBAgtiYWQgcGF5bWVudAFpAQZyZXN1bHQBCmFkZHJlc3NTdHIEBGRhdGEJALUJAgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFBHRoaXMFCmFkZHJlc3NTdHIJAKwCAgIYdW5hYmxlIHRvIHJlYWQgZGF0YSBmb3IgBQphZGRyZXNzU3RyBQlzZXBhcmF0b3IEBHR4aWQJAJEDAgUEZGF0YQUFblR4SWQEC3N0YXJ0SGVpZ2h0CQCRAwIFBGRhdGEFB25IZWlnaHQEDGNvbW1pdEhlaWdodAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQDpBwEJANkEAQUEdHhpZAkArAICBQR0eGlkAgogbm90IGZvdW5kAwkAZgIJAGQCBQxjb21taXRIZWlnaHQAAwUGaGVpZ2h0CQACAQkArAICCQCsAgICBXdhaXQgCQCkAwEJAGUCCQBkAgUMY29tbWl0SGVpZ2h0AAMFBmhlaWdodAIbIGJsb2NrcyB0byByZXZlYWwgdGhpcyB0eGlkBAJyMQkBBnJldmVhbAIFBHR4aWQJAGQCBQxjb21taXRIZWlnaHQAAQQCcjIJAQZyZXZlYWwCBQR0eGlkCQBkAgUMY29tbWl0SGVpZ2h0AAIEAnIzCQEGcmV2ZWFsAgUEdHhpZAkAZAIFDGNvbW1pdEhlaWdodAADBAZyZXN1bHQJAKwCAgkArAICCQCkAwEFAnIxCQCkAwEFAnIyCQCkAwEFAnIzBAx3aW5uZXJBbW91bnQJARFjaGVja1dpbm5lckFtb3VudAEFBnJlc3VsdAQDc3RyCQC5CQIJAMwIAgUEdHhpZAkAzAgCBQZyZXN1bHQJAMwIAgULc3RhcnRIZWlnaHQJAMwIAgUKYWRkcmVzc1N0cgUDbmlsBQlzZXBhcmF0b3IEBmxvY2tlZAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFBHRoaXMFDXBldGVJbkxvY2tLZXkCFXVuYWJsZSB0byByZWFkIGxvY2tlZAMJAGYCBQx3aW5uZXJBbW91bnQAAAQDaW52CQD8BwQFBHRoaXMCC3Vuc3Rha2VQZXRlCQDMCAIFDHdpbm5lckFtb3VudAUDbmlsBQNuaWwDCQAAAgUDaW52BQNpbnYEBXRvdGFsCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFC3N1cHBsaWVkS2V5AAAEA2tleQMJAAACBQZyZXN1bHQCAzc3NwUKamFja3BvdEtleQULc3VwcGxpZWRLZXkEA3ZhbAMJAAACBQZyZXN1bHQCAzc3NwAACQBlAgUFdG90YWwFDHdpbm5lckFtb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgUNcGV0ZUluTG9ja0tleQkAZQIFBmxvY2tlZAUEVzQyMAkAzAgCCQEMSW50ZWdlckVudHJ5AgUDa2V5BQN2YWwJAMwIAgkBC1N0cmluZ0VudHJ5AgUEdHhpZAUDc3RyCQDMCAIJAQtEZWxldGVFbnRyeQEFCmFkZHJlc3NTdHIJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBEUBleHRyTmF0aXZlKDEwNjIpAQUKYWRkcmVzc1N0cgUMd2lubmVyQW1vdW50BQRQRVRFBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4DAwMJAAACBQJyMQUCcjMGCQAAAgUCcjEFAnIyBgkAAAIFAnIyBQJyMwkAzAgCCQEMSW50ZWdlckVudHJ5AgUNcGV0ZUluTG9ja0tleQkAZQIFBmxvY2tlZAUEVzQyMAkAzAgCCQELU3RyaW5nRW50cnkCBQR0eGlkBQNzdHIJAMwIAgkBC0RlbGV0ZUVudHJ5AQUKYWRkcmVzc1N0cgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQERQGV4dHJOYXRpdmUoMTA2MikBBQphZGRyZXNzU3RyBQpCRVRfQU1PVU5UBQR1bml0BQNuaWwJAMwIAgkBDEludGVnZXJFbnRyeQIFDXBldGVJbkxvY2tLZXkJAGUCBQZsb2NrZWQFBFc0MjAJAMwIAgkBC1N0cmluZ0VudHJ5AgUEdHhpZAUDc3RyCQDMCAIJAQtEZWxldGVFbnRyeQEFCmFkZHJlc3NTdHIFA25pbAFpAQZ0b1BldGUABAt3YXZlc0Ftb3VudAkAZQIICQDvBwEFBHRoaXMHcmVndWxhcgCAreIEBBBwZXRlQW1vdW50QmVmb3JlCQDwBwIFBHRoaXMFBFBFVEUDCQAAAgUQcGV0ZUFtb3VudEJlZm9yZQUQcGV0ZUFtb3VudEJlZm9yZQMJAGYCAIDC1y8FC3dhdmVzQW1vdW50CQACAQISYmFsYW5jZSBpcyB0b28gbG93BA90ZWFtV2F2ZXNBbW91bnQJAGsDBQt3YXZlc0Ftb3VudAUJVEVBTV9QQVJUAGQED3N3YXBXYXZlc0Ftb3VudAkAZQIJAGUCBQt3YXZlc0Ftb3VudAUPdGVhbVdhdmVzQW1vdW50AIDaxAkEBHN3YXAJAPwHBAULU3dhcEFkZHJlc3MCBHN3YXAJAMwIAgABCQDMCAIJANgEAQUEUEVURQkAzAgCCQClCAEFBHRoaXMFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUEdW5pdAUPc3dhcFdhdmVzQW1vdW50BQNuaWwDCQAAAgUEc3dhcAUEc3dhcAQNcGV0ZUFtb3VudE5ldwkAZQIJAPAHAgUEdGhpcwUEUEVURQUQcGV0ZUFtb3VudEJlZm9yZQMJAAACBQ1wZXRlQW1vdW50TmV3BQ1wZXRlQW1vdW50TmV3BAZzdXBwbHkJAQ1wcml2YXRlU3VwcGx5AQUNcGV0ZUFtb3VudE5ldwQDaW52CQD8BwQFBHRoaXMCCXN0YWtlUGV0ZQUDbmlsBQNuaWwDCQAAAgUDaW52BQNpbnYJAM4IAgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQtUZWFtQWRkcmVzcwUPdGVhbVdhdmVzQW1vdW50BQR1bml0BQNuaWwFBnN1cHBseQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQxyZW1vdmVMaWRlcnMAAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQIJeW91IGNhbid0CQDMCAIJAQtEZWxldGVFbnRyeQEFCWxpZGVyc0tleQUDbmlsAFupcZ4=", "height": 3876178, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 5oVXTor9UizPnHWdphuEMUGYEzFBARFZyBys6Ryb84kQ Next: AB1w7qxR5aBXrTg5sf4HeaE6miUafxkLw7pmWFQoYZxw Diff:
OldNewDifferences
120120 let accumSize = size(accum)
121121 if ((accumSize == 100))
122122 then accum
123- else if ((spinCount > cnt))
124- then if ((accumSize == 99))
125- then (accum :+ addressStr)
126- else ((accum :+ addressStr) :+ address)
127- else (accum :+ address)
123+ else if (isDefined(indexOf(accum, addressStr)))
124+ then (accum :+ address)
125+ else if ((spinCount > cnt))
126+ then if ((accumSize == 99))
127+ then (accum :+ addressStr)
128+ else ((accum :+ addressStr) :+ address)
129+ else (accum :+ address)
128130 }
129131
130132 let newLiders = if ((lidersSize == 0))
364366 }
365367
366368
369+
370+@Callable(i)
371+func removeLiders () = if ((i.caller != this))
372+ then throw("you can't")
373+ else [DeleteEntry(lidersKey)]
374+
375+
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let PETE = base58'GAzAEjApmjMYZKPzri2g2VUXNvTiQGF7KDYZFFsP3AEq'
55
66 let PeteStakingAddress = Address(base58'3PBf2jd3ZEPX7NHQvVarscTjLQ8bk43uAfn')
77
88 let SwapAddress = Address(base58'3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93')
99
1010 let TeamAddress = Address(base58'3PHeVKu6hS24p2LX7AdtHnZnpyuC8Q7q2MF')
1111
1212 let separator = "_"
1313
1414 let JACKPOT_PART = 60
1515
1616 let TEAM_PART = 30
1717
1818 let BET_AMOUNT = 7770000
1919
2020 let W420 = 1000000000
2121
2222 let suppliedKey = "pete_total"
2323
2424 let jackpotKey = "pete_jackpot"
2525
2626 let peteInLockKey = "pete_in_lock"
2727
2828 let peteInStakingKey = "pete_in_staking"
2929
3030 let lidersKey = "liders"
3131
3232 let totalSpinKey = "spin_total"
3333
3434 func getCountKey (addressStr) = (addressStr + "_cnt")
3535
3636
3737 let nTxId = 0
3838
3939 let nResult = 1
4040
4141 let nHeight = 2
4242
4343 let nAddress = 3
4444
4545 func reveal (txid,targetBlock) = if ((height >= targetBlock))
4646 then {
4747 let revealBlock = value(blockInfoByHeight(targetBlock))
4848 let vrf = value(revealBlock.vrf)
4949 let reveal = sha256((vrf + toBytes(txid)))
5050 (toInt(reveal) % 10)
5151 }
5252 else -1
5353
5454
5555 func checkWinnerAmount (result) = if ((result == "777"))
5656 then valueOrElse(getInteger(this, jackpotKey), 0)
5757 else if ((result == "420"))
5858 then W420
5959 else if ((result == "100"))
6060 then 100000000
6161 else if ((result == "111"))
6262 then 110000000
6363 else if ((result == "222"))
6464 then 120000000
6565 else if ((result == "333"))
6666 then 130000000
6767 else if ((result == "444"))
6868 then 140000000
6969 else if ((result == "555"))
7070 then 150000000
7171 else if ((result == "888"))
7272 then 180000000
7373 else if ((result == "999"))
7474 then 190000000
7575 else if ((result == "666"))
7676 then 660000000
7777 else if ((result == "137"))
7878 then 300000000
7979 else 0
8080
8181
8282 func jsonResult (addressStr) = if (!(isDefined(getString(this, addressStr))))
8383 then "{\"status\":\"no game\"}"
8484 else {
8585 let data = split(valueOrErrorMessage(getString(this, addressStr), ("unable to read data for " + addressStr)), separator)
8686 let txid = data[nTxId]
8787 let commitHeight = valueOrErrorMessage(transactionHeightById(fromBase58String(txid)), (txid + " not found"))
8888 let r1 = reveal(txid, (commitHeight + 1))
8989 let r2 = reveal(txid, (commitHeight + 2))
9090 let r3 = reveal(txid, (commitHeight + 3))
9191 let result = ((toString(r1) + toString(r2)) + toString(r3))
9292 let winnerAmount = checkWinnerAmount(result)
9393 let json = (((((((((((((((((((((((((("{" + "\"status\":\"in game\",") + "\"") + "prize") + "\"") + ":") + toString(winnerAmount)) + ",") + "\"") + "r1") + "\"") + ":") + toString(r1)) + ",") + "\"") + "r2") + "\"") + ":") + toString(r2)) + ",") + "\"") + "r3") + "\"") + ":") + toString(r3)) + "") + "}")
9494 json
9595 }
9696
9797
9898 func privateSupply (amount) = {
9999 let total = valueOrElse(getInteger(this, suppliedKey), 0)
100100 let jackpot = valueOrElse(getInteger(this, jackpotKey), 0)
101101 let newTotal = (total + fraction(amount, (100 - JACKPOT_PART), 100))
102102 let newJackpot = (jackpot + fraction(amount, JACKPOT_PART, 100))
103103 [IntegerEntry(suppliedKey, newTotal), IntegerEntry(jackpotKey, newJackpot)]
104104 }
105105
106106
107107 func privateCheckLiders (addressStr,spinCount) = {
108108 let lidersStr = valueOrElse(getString(this, lidersKey), "")
109109 let liders = if ((lidersStr != ""))
110110 then split_51C(getStringValue(this, lidersKey), separator)
111111 else nil
112112 let minCount = valueOrElse(getInteger(this, getCountKey(liders[(size(liders) - 1)])), 0)
113113 let idx = indexOf(liders, addressStr)
114114 let filteredLiders = if (isDefined(idx))
115115 then removeByIndex(liders, value(idx))
116116 else liders
117117 let lidersSize = size(filteredLiders)
118118 func foldSort (accum,address) = {
119119 let cnt = valueOrElse(getInteger(this, getCountKey(address)), 0)
120120 let accumSize = size(accum)
121121 if ((accumSize == 100))
122122 then accum
123- else if ((spinCount > cnt))
124- then if ((accumSize == 99))
125- then (accum :+ addressStr)
126- else ((accum :+ addressStr) :+ address)
127- else (accum :+ address)
123+ else if (isDefined(indexOf(accum, addressStr)))
124+ then (accum :+ address)
125+ else if ((spinCount > cnt))
126+ then if ((accumSize == 99))
127+ then (accum :+ addressStr)
128+ else ((accum :+ addressStr) :+ address)
129+ else (accum :+ address)
128130 }
129131
130132 let newLiders = if ((lidersSize == 0))
131133 then [addressStr]
132134 else if (if ((100 > lidersSize))
133135 then (minCount >= spinCount)
134136 else false)
135137 then (filteredLiders :+ addressStr)
136138 else if ((minCount >= spinCount))
137139 then filteredLiders
138140 else {
139141 let list = {
140142 let $l = filteredLiders
141143 let $s = size($l)
142144 let $acc0 = nil
143145 func $f0_1 ($a,$i) = if (($i >= $s))
144146 then $a
145147 else foldSort($a, $l[$i])
146148
147149 func $f0_2 ($a,$i) = if (($i >= $s))
148150 then $a
149151 else throw("List size exceeds 100")
150152
151153 $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)
152154 }
153155 list
154156 }
155157 let newLidersStr = makeString_11C(newLiders, separator)
156158 let result = [StringEntry(lidersKey, newLidersStr)]
157159 result
158160 }
159161
160162
161163 func privateSpin (addressStr,txid) = {
162164 let locked = valueOrElse(getInteger(this, peteInLockKey), 0)
163165 let total = valueOrElse(getInteger(this, suppliedKey), 0)
164166 let totalSpin = valueOrElse(getInteger(this, totalSpinKey), 17)
165167 let newSpinCount = (valueOrElse(getInteger(this, getCountKey(addressStr)), 0) + 1)
166168 if ((W420 > total))
167169 then throw("no pete in sc")
168170 else {
169171 let str = makeString([txid, "xxx", toString(height), addressStr], separator)
170172 let liders = privateCheckLiders(addressStr, newSpinCount)
171173 let res = [StringEntry(addressStr, str), IntegerEntry(peteInLockKey, (locked + W420)), IntegerEntry(getCountKey(addressStr), newSpinCount), IntegerEntry(totalSpinKey, (totalSpin + 1))]
172174 (liders ++ res)
173175 }
174176 }
175177
176178
177179 @Callable(i)
178180 func supply () = if ((i.caller == this))
179181 then throw("you can't")
180182 else if (if ((size(i.payments) == 1))
181183 then (i.payments[0].assetId == PETE)
182184 else false)
183185 then privateSupply(i.payments[0].amount)
184186 else throw("bad payment")
185187
186188
187189
188190 @Callable(i)
189191 func stakePete () = if ((i.caller != this))
190192 then throw("you can't")
191193 else {
192194 let peteAmount = assetBalance(this, PETE)
193195 let peteInStake = valueOrElse(getInteger(this, peteInStakingKey), 0)
194196 let inv = invoke(PeteStakingAddress, "stake", nil, [AttachedPayment(PETE, peteAmount)])
195197 if ((inv == inv))
196198 then [IntegerEntry(peteInStakingKey, (peteInStake + peteAmount))]
197199 else throw("Strict value is not equal to itself.")
198200 }
199201
200202
201203
202204 @Callable(i)
203205 func unstakePete (amount) = if ((i.caller != this))
204206 then throw("you can't")
205207 else {
206208 let peteInStake = valueOrErrorMessage(getInteger(this, peteInStakingKey), (peteInStakingKey + " not found"))
207209 let inv = invoke(PeteStakingAddress, "unstake", [amount], nil)
208210 if ((inv == inv))
209211 then [IntegerEntry(peteInStakingKey, (peteInStake - amount))]
210212 else throw("Strict value is not equal to itself.")
211213 }
212214
213215
214216
215217 @Callable(i)
216218 func claimPeteFromStaking () = {
217219 let peteAmountBefore = assetBalance(this, PETE)
218220 if ((peteAmountBefore == peteAmountBefore))
219221 then {
220222 let inv = invoke(PeteStakingAddress, "claim", nil, nil)
221223 if ((inv == inv))
222224 then {
223225 let peteAmountNew = (assetBalance(this, PETE) - peteAmountBefore)
224226 if ((peteAmountNew == peteAmountNew))
225227 then if ((peteAmountNew > 0))
226228 then {
227229 let liders = if (isDefined(getString(this, lidersKey)))
228230 then split_51C(getStringValue(this, lidersKey), separator)
229231 else nil
230232 let lidersSize = size(liders)
231233 let p1 = if ((lidersSize >= 1))
232234 then valueOrElse(getInteger(this, liders[0]), 0)
233235 else 0
234236 let p2 = if ((lidersSize >= 2))
235237 then valueOrElse(getInteger(this, liders[1]), 0)
236238 else 0
237239 let p3 = if ((lidersSize >= 3))
238240 then valueOrElse(getInteger(this, liders[2]), 0)
239241 else 0
240242 let p1w = if ((lidersSize >= 1))
241243 then liders[0]
242244 else "no address"
243245 let p2w = if ((lidersSize >= 2))
244246 then liders[1]
245247 else "no address"
246248 let p3w = if ((lidersSize >= 3))
247249 then liders[2]
248250 else "no address"
249251 let totalCount = ((p1 + p2) + p3)
250252 let r3 = if ((p3 > 0))
251253 then [ScriptTransfer(addressFromStringValue(p3w), fraction(peteAmountNew, p3, totalCount), PETE)]
252254 else nil
253255 let r2 = if ((p2 > 0))
254256 then [ScriptTransfer(addressFromStringValue(p2w), fraction(peteAmountNew, p2, totalCount), PETE)]
255257 else nil
256258 let r1 = if ((p1 > 0))
257259 then [ScriptTransfer(addressFromStringValue(p1w), fraction(peteAmountNew, p1, totalCount), PETE)]
258260 else nil
259261 ((r1 ++ r2) ++ r3)
260262 }
261263 else throw("nothing available")
262264 else throw("Strict value is not equal to itself.")
263265 }
264266 else throw("Strict value is not equal to itself.")
265267 }
266268 else throw("Strict value is not equal to itself.")
267269 }
268270
269271
270272
271273 @Callable(i)
272274 func spin () = if (if (if ((size(i.payments) == 1))
273275 then (i.payments[0].assetId == unit)
274276 else false)
275277 then (i.payments[0].amount == BET_AMOUNT)
276278 else false)
277279 then {
278280 let address = toString(i.caller)
279281 let txid = toBase58String(i.transactionId)
280282 if (isDefined(getString(this, address)))
281283 then {
282284 let inv = invoke(this, "result", [address], nil)
283285 if ((inv == inv))
284286 then privateSpin(address, txid)
285287 else throw("Strict value is not equal to itself.")
286288 }
287289 else privateSpin(address, txid)
288290 }
289291 else throw("bad payment")
290292
291293
292294
293295 @Callable(i)
294296 func result (addressStr) = {
295297 let data = split(valueOrErrorMessage(getString(this, addressStr), ("unable to read data for " + addressStr)), separator)
296298 let txid = data[nTxId]
297299 let startHeight = data[nHeight]
298300 let commitHeight = valueOrErrorMessage(transactionHeightById(fromBase58String(txid)), (txid + " not found"))
299301 if (((commitHeight + 3) > height))
300302 then throw((("wait " + toString(((commitHeight + 3) - height))) + " blocks to reveal this txid"))
301303 else {
302304 let r1 = reveal(txid, (commitHeight + 1))
303305 let r2 = reveal(txid, (commitHeight + 2))
304306 let r3 = reveal(txid, (commitHeight + 3))
305307 let result = ((toString(r1) + toString(r2)) + toString(r3))
306308 let winnerAmount = checkWinnerAmount(result)
307309 let str = makeString([txid, result, startHeight, addressStr], separator)
308310 let locked = valueOrErrorMessage(getInteger(this, peteInLockKey), "unable to read locked")
309311 if ((winnerAmount > 0))
310312 then {
311313 let inv = invoke(this, "unstakePete", [winnerAmount], nil)
312314 if ((inv == inv))
313315 then {
314316 let total = valueOrElse(getInteger(this, suppliedKey), 0)
315317 let key = if ((result == "777"))
316318 then jackpotKey
317319 else suppliedKey
318320 let val = if ((result == "777"))
319321 then 0
320322 else (total - winnerAmount)
321323 [IntegerEntry(peteInLockKey, (locked - W420)), IntegerEntry(key, val), StringEntry(txid, str), DeleteEntry(addressStr), ScriptTransfer(addressFromStringValue(addressStr), winnerAmount, PETE)]
322324 }
323325 else throw("Strict value is not equal to itself.")
324326 }
325327 else if (if (if ((r1 == r3))
326328 then true
327329 else (r1 == r2))
328330 then true
329331 else (r2 == r3))
330332 then [IntegerEntry(peteInLockKey, (locked - W420)), StringEntry(txid, str), DeleteEntry(addressStr), ScriptTransfer(addressFromStringValue(addressStr), BET_AMOUNT, unit)]
331333 else [IntegerEntry(peteInLockKey, (locked - W420)), StringEntry(txid, str), DeleteEntry(addressStr)]
332334 }
333335 }
334336
335337
336338
337339 @Callable(i)
338340 func toPete () = {
339341 let wavesAmount = (wavesBalance(this).regular - 10000000)
340342 let peteAmountBefore = assetBalance(this, PETE)
341343 if ((peteAmountBefore == peteAmountBefore))
342344 then if ((100000000 > wavesAmount))
343345 then throw("balance is too low")
344346 else {
345347 let teamWavesAmount = fraction(wavesAmount, TEAM_PART, 100)
346348 let swapWavesAmount = ((wavesAmount - teamWavesAmount) - 20000000)
347349 let swap = invoke(SwapAddress, "swap", [1, toBase58String(PETE), toString(this)], [AttachedPayment(unit, swapWavesAmount)])
348350 if ((swap == swap))
349351 then {
350352 let peteAmountNew = (assetBalance(this, PETE) - peteAmountBefore)
351353 if ((peteAmountNew == peteAmountNew))
352354 then {
353355 let supply = privateSupply(peteAmountNew)
354356 let inv = invoke(this, "stakePete", nil, nil)
355357 if ((inv == inv))
356358 then ([ScriptTransfer(TeamAddress, teamWavesAmount, unit)] ++ supply)
357359 else throw("Strict value is not equal to itself.")
358360 }
359361 else throw("Strict value is not equal to itself.")
360362 }
361363 else throw("Strict value is not equal to itself.")
362364 }
363365 else throw("Strict value is not equal to itself.")
364366 }
365367
366368
369+
370+@Callable(i)
371+func removeLiders () = if ((i.caller != this))
372+ then throw("you can't")
373+ else [DeleteEntry(lidersKey)]
374+
375+

github/deemru/w8io/3ef1775 
62.29 ms