tx · AB1w7qxR5aBXrTg5sf4HeaE6miUafxkLw7pmWFQoYZxw

3P2Tj3KgTYhSVe23XXeAmkwYB43YnZ5dENJ:  -0.01100000 Waves

2023.10.23 00:07 [3876195] smart account 3P2Tj3KgTYhSVe23XXeAmkwYB43YnZ5dENJ > SELF 0.00000000 Waves

{ "type": 13, "id": "AB1w7qxR5aBXrTg5sf4HeaE6miUafxkLw7pmWFQoYZxw", "fee": 1100000, "feeAssetId": null, "timestamp": 1698008904609, "version": 2, "chainId": 87, "sender": "3P2Tj3KgTYhSVe23XXeAmkwYB43YnZ5dENJ", "senderPublicKey": "ECg19w7L36EZDu4zprurC23FPVeaKGnobnwzbZH2Dgyd", "proofs": [ "4MbjtbCDoiEkayKjRHwh5rjnrdFeUxfhAV1Zv3iC4cFC9eVzwmNfxiMCYjFkAvHsDPnsZSV5Z7W6eQTS49K6CtML" ], "script": "base64:BgIYCAISABIAEgMKAQESABIAEgMKAQgSABIAGgAEUEVURQEg4W4pTkHcHIXuYikIATFxVuov8OITyH3BrthKEwuN9tYAElBldGVTdGFraW5nQWRkcmVzcwkBB0FkZHJlc3MBARoBV2qxSTJN3QE8WlTs6Heuf4HE06AyMEj07QALU3dhcEFkZHJlc3MJAQdBZGRyZXNzAQEaAVcuKjU1sQ238Xk+4bdG0J50Uk17MdCDrgYAC1RlYW1BZGRyZXNzCQEHQWRkcmVzcwEBGgFXrGfSWrEBpqNP6e7xdRI8GkyCe3sRTGA6AAlzZXBhcmF0b3ICAV8ADEpBQ0tQT1RfUEFSVAA8AAlURUFNX1BBUlQAHgAKQkVUX0FNT1VOVACQn9oDAARXNDIwAICU69wDAAtzdXBwbGllZEtleQIKcGV0ZV90b3RhbAAKamFja3BvdEtleQIMcGV0ZV9qYWNrcG90AA1wZXRlSW5Mb2NrS2V5AgxwZXRlX2luX2xvY2sAEHBldGVJblN0YWtpbmdLZXkCD3BldGVfaW5fc3Rha2luZwAJbGlkZXJzS2V5AgZsaWRlcnMADHRvdGFsU3BpbktleQIKc3Bpbl90b3RhbAELZ2V0Q291bnRLZXkBCmFkZHJlc3NTdHIJAKwCAgUKYWRkcmVzc1N0cgIEX2NudAAFblR4SWQAAAAHblJlc3VsdAABAAduSGVpZ2h0AAIACG5BZGRyZXNzAAMBBnJldmVhbAIEdHhpZAt0YXJnZXRCbG9jawMJAGcCBQZoZWlnaHQFC3RhcmdldEJsb2NrBAtyZXZlYWxCbG9jawkBBXZhbHVlAQkA7QcBBQt0YXJnZXRCbG9jawQDdnJmCQEFdmFsdWUBCAULcmV2ZWFsQmxvY2sDdnJmBAZyZXZlYWwJAPcDAQkAywECBQN2cmYJAJsDAQUEdHhpZAkAagIJALEJAQUGcmV2ZWFsAAoA////////////AQERY2hlY2tXaW5uZXJBbW91bnQBBnJlc3VsdAMJAAACBQZyZXN1bHQCAzc3NwkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQpqYWNrcG90S2V5AAADCQAAAgUGcmVzdWx0AgM0MjAFBFc0MjADCQAAAgUGcmVzdWx0AgMxMDAAgMLXLwMJAAACBQZyZXN1bHQCAzExMQCA77k0AwkAAAIFBnJlc3VsdAIDMjIyAICcnDkDCQAAAgUGcmVzdWx0AgMzMzMAgMn+PQMJAAACBQZyZXN1bHQCAzQ0NACA9uBCAwkAAAIFBnJlc3VsdAIDNTU1AICjw0cDCQAAAgUGcmVzdWx0AgM4ODgAgKrqVQMJAAACBQZyZXN1bHQCAzk5OQCA18xaAwkAAAIFBnJlc3VsdAIDNjY2AICa27oCAwkAAAIFBnJlc3VsdAIDMTM3AIDGho8BAAABCmpzb25SZXN1bHQBCmFkZHJlc3NTdHIDCQEBIQEJAQlpc0RlZmluZWQBCQCdCAIFBHRoaXMFCmFkZHJlc3NTdHICFHsic3RhdHVzIjoibm8gZ2FtZSJ9BARkYXRhCQC1CQIJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQR0aGlzBQphZGRyZXNzU3RyCQCsAgICGHVuYWJsZSB0byByZWFkIGRhdGEgZm9yIAUKYWRkcmVzc1N0cgUJc2VwYXJhdG9yBAR0eGlkCQCRAwIFBGRhdGEFBW5UeElkBAxjb21taXRIZWlnaHQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA6QcBCQDZBAEFBHR4aWQJAKwCAgUEdHhpZAIKIG5vdCBmb3VuZAQCcjEJAQZyZXZlYWwCBQR0eGlkCQBkAgUMY29tbWl0SGVpZ2h0AAEEAnIyCQEGcmV2ZWFsAgUEdHhpZAkAZAIFDGNvbW1pdEhlaWdodAACBAJyMwkBBnJldmVhbAIFBHR4aWQJAGQCBQxjb21taXRIZWlnaHQAAwQGcmVzdWx0CQCsAgIJAKwCAgkApAMBBQJyMQkApAMBBQJyMgkApAMBBQJyMwQMd2lubmVyQW1vdW50CQERY2hlY2tXaW5uZXJBbW91bnQBBQZyZXN1bHQEBGpzb24JAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAgF7AhMic3RhdHVzIjoiaW4gZ2FtZSIsAgEiAgVwcml6ZQIBIgIBOgkApAMBBQx3aW5uZXJBbW91bnQCASwCASICAnIxAgEiAgE6CQCkAwEFAnIxAgEsAgEiAgJyMgIBIgIBOgkApAMBBQJyMgIBLAIBIgICcjMCASICAToJAKQDAQUCcjMCAAIBfQUEanNvbgENcHJpdmF0ZVN1cHBseQEGYW1vdW50BAV0b3RhbAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQtzdXBwbGllZEtleQAABAdqYWNrcG90CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFCmphY2twb3RLZXkAAAQIbmV3VG90YWwJAGQCBQV0b3RhbAkAawMFBmFtb3VudAkAZQIAZAUMSkFDS1BPVF9QQVJUAGQECm5ld0phY2twb3QJAGQCBQdqYWNrcG90CQBrAwUGYW1vdW50BQxKQUNLUE9UX1BBUlQAZAkAzAgCCQEMSW50ZWdlckVudHJ5AgULc3VwcGxpZWRLZXkFCG5ld1RvdGFsCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQpqYWNrcG90S2V5BQpuZXdKYWNrcG90BQNuaWwBEnByaXZhdGVDaGVja0xpZGVycwIKYWRkcmVzc1N0cglzcGluQ291bnQECWxpZGVyc1N0cgkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzBQlsaWRlcnNLZXkCAAQGbGlkZXJzAwkBAiE9AgUJbGlkZXJzU3RyAgAJAL0JAgkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwUJbGlkZXJzS2V5BQlzZXBhcmF0b3IFA25pbAQDaWR4CQDPCAIFBmxpZGVycwUKYWRkcmVzc1N0cgQOZmlsdGVyZWRMaWRlcnMDCQEJaXNEZWZpbmVkAQUDaWR4CQDRCAIFBmxpZGVycwkBBXZhbHVlAQUDaWR4BQZsaWRlcnMECG1pbkNvdW50CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQtnZXRDb3VudEtleQEJAJEDAgUOZmlsdGVyZWRMaWRlcnMJAGUCCQCQAwEFDmZpbHRlcmVkTGlkZXJzAAEAAAQKbGlkZXJzU2l6ZQkAkAMBBQ5maWx0ZXJlZExpZGVycwoBCGZvbGRTb3J0AgVhY2N1bQdhZGRyZXNzBANjbnQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBC2dldENvdW50S2V5AQUHYWRkcmVzcwAABAlhY2N1bVNp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cHJpdmF0ZVNwaW4CCmFkZHJlc3NTdHIEdHhpZAQGbG9ja2VkCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFDXBldGVJbkxvY2tLZXkAAAQFdG90YWwJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwULc3VwcGxpZWRLZXkAAAQJdG90YWxTcGluCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFDHRvdGFsU3BpbktleQARBAxuZXdTcGluQ291bnQJAGQCCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQtnZXRDb3VudEtleQEFCmFkZHJlc3NTdHIAAAABAwkAZgIFBFc0MjAFBXRvdGFsCQACAQINbm8gcGV0ZSBpbiBzYwQDc3RyCQC5CQIJAMwIAgUEdHhpZAkAzAgCAgN4eHgJAMwIAgkApAMBBQZoZWlnaHQJAMwIAgUKYWRkcmVzc1N0cgUDbmlsBQlzZXBhcmF0b3IEBmxpZGVycwkBEnByaXZhdGVDaGVja0xpZGVycwIFCmFkZHJlc3NTdHIFDG5ld1NwaW5Db3VudAQDcmVzCQDMCAIJAQtTdHJpbmdFbnRyeQIFCmFkZHJlc3NTdHIFA3N0cgkAzAgCCQEMSW50ZWdlckVudHJ5AgUNcGV0ZUluTG9ja0tleQkAZAIFBmxvY2tlZAUEVzQyMAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBC2dldENvdW50S2V5AQUKYWRkcmVzc1N0cgUMbmV3U3BpbkNvdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCBQx0b3RhbFNwaW5LZXkJAGQCBQl0b3RhbFNwaW4AAQUDbmlsCQDOCAIFBmxpZGVycwUDcmVzCAFpAQZzdXBwbHkAAwkAAAIIBQFpBmNhbGxlcgUEdGhpcwkAAgECCXlvdSBjYW4ndAMDCQAAAgkAkAMBCAUBaQhwYXltZW50cwABCQAAAggJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkBQRQRVRFBwkBDXByaXZhdGVTdXBwbHkBCAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAkAAgECC2JhZCBwYXltZW50AWkBCXN0YWtlUGV0ZQADCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAgl5b3UgY2FuJ3QECnBldGVBbW91bnQJAPAHAgUEdGhpcwUEUEVURQQLcGV0ZUluU3Rha2UJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUQcGV0ZUluU3Rha2luZ0tleQAABANpbnYJAPwHBAUSUGV0ZVN0YWtpbmdBZGRyZXNzAgVzdGFrZQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQRQRVRFBQpwZXRlQW1vdW50BQNuaWwDCQAAAgUDaW52BQNpbnYJAMwIAgkBDEludGVnZXJFbnRyeQIFEHBldGVJblN0YWtpbmdLZXkJAGQCBQtwZXRlSW5TdGFrZQUKcGV0ZUFtb3VudAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBC3Vuc3Rha2VQZXRlAQZhbW91bnQDCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAgl5b3UgY2FuJ3QEC3BldGVJblN0YWtlCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUEdGhpcwUQcGV0ZUluU3Rha2luZ0tleQkArAICBRBwZXRlSW5TdGFraW5nS2V5Agogbm90IGZvdW5kBANpbnYJAPwHBAUSUGV0ZVN0YWtpbmdBZGRyZXNzAgd1bnN0YWtlCQDMCAIFBmFtb3VudAUDbmlsBQNuaWwDCQAAAgUDaW52BQNpbnYJAMwIAgkBDEludGVnZXJFbnRyeQIFEHBldGVJblN0YWtpbmdLZXkJAGUCBQtwZXRlSW5TdGFrZQUGYW1vdW50BQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEUY2xhaW1QZXRlRnJvbVN0YWtpbmcABBBwZXRlQW1vdW50QmVmb3JlCQDwBwIFBHRoaXMFBFBFVEUDCQAAAgUQcGV0ZUFtb3VudEJlZm9yZQUQcGV0ZUFtb3VudEJlZm9yZQQDaW52CQD8BwQFElBldGVTdGFraW5nQWRkcmVzcwIFY2xhaW0FA25pbAUDbmlsAwkAAAIFA2ludgUDaW52BA1wZXRlQW1vdW50TmV3CQBlAgkA8AcCBQR0aGlzBQRQRVRFBRBwZXRlQW1vdW50QmVmb3JlAwkAAAIFDXBldGVBbW91bnROZXcFDXBldGVBbW91bnROZXcDCQBmAgUNcGV0ZUFtb3VudE5ldwAABAZsaWRlcnMDCQEJaXNEZWZpbmVkAQkAnQgCBQR0aGlzBQlsaWRlcnNLZXkJAL0JAgkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwUJbGlkZXJzS2V5BQlzZXBhcmF0b3IFA25pbAQKbGlkZXJzU2l6ZQkAkAMBBQZsaWRlcnMEAnAxAwkAZwIFCmxpZGVyc1NpemUAAQkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQCRAwIFBmxpZGVycwAAAAAAAAQCcDIDCQBnAgUKbGlkZXJzU2l6ZQACCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAJEDAgUGbGlkZXJzAAEAAAAABAJwMwMJAGcCBQpsaWRlcnNTaXplAAMJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkAkQMCBQZsaWRlcnMAAgAAAAAEA3AxdwMJAGcCBQpsaWRlcnNTaXplAAEJAJEDAgUGbGlkZXJzAAACCm5vIGFkZHJlc3MEA3AydwMJAGcCBQpsaWRlcnNTaXplAAIJAJEDAgUGbGlkZXJzAAECCm5vIGFkZHJlc3MEA3AzdwMJAGcCBQpsaWRlcnNTaXplAAMJAJEDAgUGbGlkZXJzAAICCm5vIGFkZHJlc3MECnRvdGFsQ291bnQJAGQCCQBkAgUCcDEFAnAyBQJwMwQCcjMDCQBmAgUCcDMAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQERQGV4dHJOYXRpdmUoMTA2MikBBQNwM3cJAGsDBQ1wZXRlQW1vdW50TmV3BQJwMwUKdG90YWxDb3VudAUEUEVURQUDbmlsBQNuaWwEAnIyAwkAZgIFAnAyAAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBEUBleHRyTmF0aXZlKDEwNjIpAQUDcDJ3CQBrAwUNcGV0ZUFtb3VudE5ldwUCcDIFCnRvdGFsQ291bnQFBFBFVEUFA25pbAUDbmlsBAJyMQMJAGYCBQJwMQAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJARFAZXh0ck5hdGl2ZSgxMDYyKQEFA3AxdwkAawMFDXBldGVBbW91bnROZXcFAnAxBQp0b3RhbENvdW50BQRQRVRFBQNuaWwFA25pbAkAzggCCQDOCAIFAnIxBQJyMgUCcjMJAAIBAhFub3RoaW5nIGF2YWlsYWJsZQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQRzcGluAAMDAwkAAAIJAJADAQgFAWkIcGF5bWVudHMAAQkAAAIICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAUEdW5pdAcJAAACCAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAUKQkVUX0FNT1VOVAcEB2FkZHJlc3MJAKUIAQgFAWkGY2FsbGVyBAR0eGlkCQDYBAEIBQFpDXRyYW5zYWN0aW9uSWQDCQEJaXNEZWZpbmVkAQkAnQgCBQR0aGlzBQdhZGRyZXNzBANpbnYJAPwHBAUEdGhpcwIGcmVzdWx0CQDMCAIFB2FkZHJlc3MFA25pbAUDbmlsAwkAAAIFA2ludgUDaW52CQELcHJpdmF0ZVNwaW4CBQdhZGRyZXNzBQR0eGlkCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQELcHJpdmF0ZVNwaW4CBQdhZGRyZXNzBQR0eGlkCQACAQILYmFkIHBheW1lbnQBaQEGcmVzdWx0AQphZGRyZXNzU3RyBARkYXRhCQC1CQIJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQR0aGlzBQphZGRyZXNzU3RyCQCsAgICGHVuYWJsZSB0byByZWFkIGRhdGEgZm9yIAUKYWRkcmVzc1N0cgUJc2VwYXJhdG9yBAR0eGlkCQCRAwIFBGRhdGEFBW5UeElkBAtzdGFydEhlaWdodAkAkQMCBQRkYXRhBQduSGVpZ2h0BAxjb21taXRIZWlnaHQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA6QcBCQDZBAEFBHR4aWQJAKwCAgUEdHhpZAIKIG5vdCBmb3VuZAMJAGYCCQBkAgUMY29tbWl0SGVpZ2h0AAMFBmhlaWdodAkAAgEJAKwCAgkArAICAgV3YWl0IAkApAMBCQBlAgkAZAIFDGNvbW1pdEhlaWdodAADBQZoZWlnaHQCGyBibG9ja3MgdG8gcmV2ZWFsIHRoaXMgdHhpZAQCcjEJAQZyZXZlYWwCBQR0eGlkCQBkAgUMY29tbWl0SGVpZ2h0AAEEAnIyCQEGcmV2ZWFsAgUEdHhpZAkAZAIFDGNvbW1pdEhlaWdodAACBAJyMwkBBnJldmVhbAIFBHR4aWQJAGQCBQxjb21taXRIZWlnaHQAAwQGcmVzdWx0CQCsAgIJAKwCAgkApAMBBQJyMQkApAMBBQJyMgkApAMBBQJyMwQMd2lubmVyQW1vdW50CQERY2hlY2tXaW5uZXJBbW91bnQBBQZyZXN1bHQEA3N0cgkAuQkCCQDMCAIFBHR4aWQJAMwIAgUGcmVzdWx0CQDMCAIFC3N0YXJ0SGVpZ2h0CQDMCAIFCmFkZHJlc3NTdHIFA25pbAUJc2VwYXJhdG9yBAZsb2NrZWQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBQR0aGlzBQ1wZXRlSW5Mb2NrS2V5AhV1bmFibGUgdG8gcmVhZCBsb2NrZWQDCQBmAgUMd2lubmVyQW1vdW50AAAEA2ludgkA/AcEBQR0aGlzAgt1bnN0YWtlUGV0ZQkAzAgCBQx3aW5uZXJBbW91bnQFA25pbAUDbmlsAwkAAAIFA2ludgUDaW52BAV0b3RhbAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQtzdXBwbGllZEtleQAABANrZXkDCQAAAgUGcmVzdWx0AgM3NzcFCmphY2twb3RLZXkFC3N1cHBsaWVkS2V5BAN2YWwDCQAAAgUGcmVzdWx0AgM3NzcAAAkAZQIFBXRvdGFsBQx3aW5uZXJBbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQIFDXBldGVJbkxvY2tLZXkJAGUCBQZsb2NrZWQFBFc0MjAJAMwIAgkBDEludGVnZXJFbnRyeQIFA2tleQUDdmFsCQDMCAIJAQtTdHJpbmdFbnRyeQIFBHR4aWQFA3N0cgkAzAgCCQELRGVsZXRlRW50cnkBBQphZGRyZXNzU3RyCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJARFAZXh0ck5hdGl2ZSgxMDYyKQEFCmFkZHJlc3NTdHIFDHdpbm5lckFtb3VudAUEUEVURQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAwMDCQAAAgUCcjEFAnIzBgkAAAIFAnIxBQJyMgYJAAACBQJyMgUCcjMJAMwIAgkBDEludGVnZXJFbnRyeQIFDXBldGVJbkxvY2tLZXkJAGUCBQZsb2NrZWQFBFc0MjAJAMwIAgkBC1N0cmluZ0VudHJ5AgUEdHhpZAUDc3RyCQDMCAIJAQtEZWxldGVFbnRyeQEFCmFkZHJlc3NTdHIJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBEUBleHRyTmF0aXZlKDEwNjIpAQUKYWRkcmVzc1N0cgUKQkVUX0FNT1VOVAUEdW5pdAUDbmlsCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQ1wZXRlSW5Mb2NrS2V5CQBlAgUGbG9ja2VkBQRXNDIwCQDMCAIJAQtTdHJpbmdFbnRyeQIFBHR4aWQFA3N0cgkAzAgCCQELRGVsZXRlRW50cnkBBQphZGRyZXNzU3RyBQNuaWwBaQEGdG9QZXRlAAQLd2F2ZXNBbW91bnQJAGUCCAkA7wcBBQR0aGlzB3JlZ3VsYXIAgK3iBAQQcGV0ZUFtb3VudEJlZm9yZQkA8AcCBQR0aGlzBQRQRVRFAwkAAAIFEHBldGVBbW91bnRCZWZvcmUFEHBldGVBbW91bnRCZWZvcmUDCQBmAgCAwtcvBQt3YXZlc0Ftb3VudAkAAgECEmJhbGFuY2UgaXMgdG9vIGxvdwQPdGVhbVdhdmVzQW1vdW50CQBrAwULd2F2ZXNBbW91bnQFCVRFQU1fUEFSVABkBA9zd2FwV2F2ZXNBbW91bnQJAGUCCQBlAgULd2F2ZXNBbW91bnQFD3RlYW1XYXZlc0Ftb3VudACA2sQJBARzd2FwCQD8BwQFC1N3YXBBZGRyZXNzAgRzd2FwCQDMCAIAAQkAzAgCCQDYBAEFBFBFVEUJAMwIAgkApQgBBQR0aGlzBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFBHVuaXQFD3N3YXBXYXZlc0Ftb3VudAUDbmlsAwkAAAIFBHN3YXAFBHN3YXAEDXBldGVBbW91bnROZXcJAGUCCQDwBwIFBHRoaXMFBFBFVEUFEHBldGVBbW91bnRCZWZvcmUDCQAAAgUNcGV0ZUFtb3VudE5ldwUNcGV0ZUFtb3VudE5ldwQGc3VwcGx5CQENcHJpdmF0ZVN1cHBseQEFDXBldGVBbW91bnROZXcEA2ludgkA/AcEBQR0aGlzAglzdGFrZVBldGUFA25pbAUDbmlsAwkAAAIFA2ludgUDaW52CQDOCAIJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwULVGVhbUFkZHJlc3MFD3RlYW1XYXZlc0Ftb3VudAUEdW5pdAUDbmlsBQZzdXBwbHkJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEMcmVtb3ZlTGlkZXJzAAMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECCXlvdSBjYW4ndAkAzAgCCQELRGVsZXRlRW50cnkBBQlsaWRlcnNLZXkFA25pbAAro3eb", "height": 3876195, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 4sySkbQaEDQeTBy4Az6dDx6Zamam2ChuqPQPAWzcZ67r Next: CEQLHiFQmKdfJDFQDLcy8XyN35Ebn9iioiPzHBHvgGvj Diff:
OldNewDifferences
109109 let liders = if ((lidersStr != ""))
110110 then split_51C(getStringValue(this, lidersKey), separator)
111111 else nil
112- let minCount = valueOrElse(getInteger(this, getCountKey(liders[(size(liders) - 1)])), 0)
113112 let idx = indexOf(liders, addressStr)
114113 let filteredLiders = if (isDefined(idx))
115114 then removeByIndex(liders, value(idx))
116115 else liders
116+ let minCount = valueOrElse(getInteger(this, getCountKey(filteredLiders[(size(filteredLiders) - 1)])), 0)
117117 let lidersSize = size(filteredLiders)
118118 func foldSort (accum,address) = {
119119 let cnt = valueOrElse(getInteger(this, getCountKey(address)), 0)
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
112- let minCount = valueOrElse(getInteger(this, getCountKey(liders[(size(liders) - 1)])), 0)
113112 let idx = indexOf(liders, addressStr)
114113 let filteredLiders = if (isDefined(idx))
115114 then removeByIndex(liders, value(idx))
116115 else liders
116+ let minCount = valueOrElse(getInteger(this, getCountKey(filteredLiders[(size(filteredLiders) - 1)])), 0)
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
123123 else if (isDefined(indexOf(accum, addressStr)))
124124 then (accum :+ address)
125125 else if ((spinCount > cnt))
126126 then if ((accumSize == 99))
127127 then (accum :+ addressStr)
128128 else ((accum :+ addressStr) :+ address)
129129 else (accum :+ address)
130130 }
131131
132132 let newLiders = if ((lidersSize == 0))
133133 then [addressStr]
134134 else if (if ((100 > lidersSize))
135135 then (minCount >= spinCount)
136136 else false)
137137 then (filteredLiders :+ addressStr)
138138 else if ((minCount >= spinCount))
139139 then filteredLiders
140140 else {
141141 let list = {
142142 let $l = filteredLiders
143143 let $s = size($l)
144144 let $acc0 = nil
145145 func $f0_1 ($a,$i) = if (($i >= $s))
146146 then $a
147147 else foldSort($a, $l[$i])
148148
149149 func $f0_2 ($a,$i) = if (($i >= $s))
150150 then $a
151151 else throw("List size exceeds 100")
152152
153153 $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)
154154 }
155155 list
156156 }
157157 let newLidersStr = makeString_11C(newLiders, separator)
158158 let result = [StringEntry(lidersKey, newLidersStr)]
159159 result
160160 }
161161
162162
163163 func privateSpin (addressStr,txid) = {
164164 let locked = valueOrElse(getInteger(this, peteInLockKey), 0)
165165 let total = valueOrElse(getInteger(this, suppliedKey), 0)
166166 let totalSpin = valueOrElse(getInteger(this, totalSpinKey), 17)
167167 let newSpinCount = (valueOrElse(getInteger(this, getCountKey(addressStr)), 0) + 1)
168168 if ((W420 > total))
169169 then throw("no pete in sc")
170170 else {
171171 let str = makeString([txid, "xxx", toString(height), addressStr], separator)
172172 let liders = privateCheckLiders(addressStr, newSpinCount)
173173 let res = [StringEntry(addressStr, str), IntegerEntry(peteInLockKey, (locked + W420)), IntegerEntry(getCountKey(addressStr), newSpinCount), IntegerEntry(totalSpinKey, (totalSpin + 1))]
174174 (liders ++ res)
175175 }
176176 }
177177
178178
179179 @Callable(i)
180180 func supply () = if ((i.caller == this))
181181 then throw("you can't")
182182 else if (if ((size(i.payments) == 1))
183183 then (i.payments[0].assetId == PETE)
184184 else false)
185185 then privateSupply(i.payments[0].amount)
186186 else throw("bad payment")
187187
188188
189189
190190 @Callable(i)
191191 func stakePete () = if ((i.caller != this))
192192 then throw("you can't")
193193 else {
194194 let peteAmount = assetBalance(this, PETE)
195195 let peteInStake = valueOrElse(getInteger(this, peteInStakingKey), 0)
196196 let inv = invoke(PeteStakingAddress, "stake", nil, [AttachedPayment(PETE, peteAmount)])
197197 if ((inv == inv))
198198 then [IntegerEntry(peteInStakingKey, (peteInStake + peteAmount))]
199199 else throw("Strict value is not equal to itself.")
200200 }
201201
202202
203203
204204 @Callable(i)
205205 func unstakePete (amount) = if ((i.caller != this))
206206 then throw("you can't")
207207 else {
208208 let peteInStake = valueOrErrorMessage(getInteger(this, peteInStakingKey), (peteInStakingKey + " not found"))
209209 let inv = invoke(PeteStakingAddress, "unstake", [amount], nil)
210210 if ((inv == inv))
211211 then [IntegerEntry(peteInStakingKey, (peteInStake - amount))]
212212 else throw("Strict value is not equal to itself.")
213213 }
214214
215215
216216
217217 @Callable(i)
218218 func claimPeteFromStaking () = {
219219 let peteAmountBefore = assetBalance(this, PETE)
220220 if ((peteAmountBefore == peteAmountBefore))
221221 then {
222222 let inv = invoke(PeteStakingAddress, "claim", nil, nil)
223223 if ((inv == inv))
224224 then {
225225 let peteAmountNew = (assetBalance(this, PETE) - peteAmountBefore)
226226 if ((peteAmountNew == peteAmountNew))
227227 then if ((peteAmountNew > 0))
228228 then {
229229 let liders = if (isDefined(getString(this, lidersKey)))
230230 then split_51C(getStringValue(this, lidersKey), separator)
231231 else nil
232232 let lidersSize = size(liders)
233233 let p1 = if ((lidersSize >= 1))
234234 then valueOrElse(getInteger(this, liders[0]), 0)
235235 else 0
236236 let p2 = if ((lidersSize >= 2))
237237 then valueOrElse(getInteger(this, liders[1]), 0)
238238 else 0
239239 let p3 = if ((lidersSize >= 3))
240240 then valueOrElse(getInteger(this, liders[2]), 0)
241241 else 0
242242 let p1w = if ((lidersSize >= 1))
243243 then liders[0]
244244 else "no address"
245245 let p2w = if ((lidersSize >= 2))
246246 then liders[1]
247247 else "no address"
248248 let p3w = if ((lidersSize >= 3))
249249 then liders[2]
250250 else "no address"
251251 let totalCount = ((p1 + p2) + p3)
252252 let r3 = if ((p3 > 0))
253253 then [ScriptTransfer(addressFromStringValue(p3w), fraction(peteAmountNew, p3, totalCount), PETE)]
254254 else nil
255255 let r2 = if ((p2 > 0))
256256 then [ScriptTransfer(addressFromStringValue(p2w), fraction(peteAmountNew, p2, totalCount), PETE)]
257257 else nil
258258 let r1 = if ((p1 > 0))
259259 then [ScriptTransfer(addressFromStringValue(p1w), fraction(peteAmountNew, p1, totalCount), PETE)]
260260 else nil
261261 ((r1 ++ r2) ++ r3)
262262 }
263263 else throw("nothing available")
264264 else throw("Strict value is not equal to itself.")
265265 }
266266 else throw("Strict value is not equal to itself.")
267267 }
268268 else throw("Strict value is not equal to itself.")
269269 }
270270
271271
272272
273273 @Callable(i)
274274 func spin () = if (if (if ((size(i.payments) == 1))
275275 then (i.payments[0].assetId == unit)
276276 else false)
277277 then (i.payments[0].amount == BET_AMOUNT)
278278 else false)
279279 then {
280280 let address = toString(i.caller)
281281 let txid = toBase58String(i.transactionId)
282282 if (isDefined(getString(this, address)))
283283 then {
284284 let inv = invoke(this, "result", [address], nil)
285285 if ((inv == inv))
286286 then privateSpin(address, txid)
287287 else throw("Strict value is not equal to itself.")
288288 }
289289 else privateSpin(address, txid)
290290 }
291291 else throw("bad payment")
292292
293293
294294
295295 @Callable(i)
296296 func result (addressStr) = {
297297 let data = split(valueOrErrorMessage(getString(this, addressStr), ("unable to read data for " + addressStr)), separator)
298298 let txid = data[nTxId]
299299 let startHeight = data[nHeight]
300300 let commitHeight = valueOrErrorMessage(transactionHeightById(fromBase58String(txid)), (txid + " not found"))
301301 if (((commitHeight + 3) > height))
302302 then throw((("wait " + toString(((commitHeight + 3) - height))) + " blocks to reveal this txid"))
303303 else {
304304 let r1 = reveal(txid, (commitHeight + 1))
305305 let r2 = reveal(txid, (commitHeight + 2))
306306 let r3 = reveal(txid, (commitHeight + 3))
307307 let result = ((toString(r1) + toString(r2)) + toString(r3))
308308 let winnerAmount = checkWinnerAmount(result)
309309 let str = makeString([txid, result, startHeight, addressStr], separator)
310310 let locked = valueOrErrorMessage(getInteger(this, peteInLockKey), "unable to read locked")
311311 if ((winnerAmount > 0))
312312 then {
313313 let inv = invoke(this, "unstakePete", [winnerAmount], nil)
314314 if ((inv == inv))
315315 then {
316316 let total = valueOrElse(getInteger(this, suppliedKey), 0)
317317 let key = if ((result == "777"))
318318 then jackpotKey
319319 else suppliedKey
320320 let val = if ((result == "777"))
321321 then 0
322322 else (total - winnerAmount)
323323 [IntegerEntry(peteInLockKey, (locked - W420)), IntegerEntry(key, val), StringEntry(txid, str), DeleteEntry(addressStr), ScriptTransfer(addressFromStringValue(addressStr), winnerAmount, PETE)]
324324 }
325325 else throw("Strict value is not equal to itself.")
326326 }
327327 else if (if (if ((r1 == r3))
328328 then true
329329 else (r1 == r2))
330330 then true
331331 else (r2 == r3))
332332 then [IntegerEntry(peteInLockKey, (locked - W420)), StringEntry(txid, str), DeleteEntry(addressStr), ScriptTransfer(addressFromStringValue(addressStr), BET_AMOUNT, unit)]
333333 else [IntegerEntry(peteInLockKey, (locked - W420)), StringEntry(txid, str), DeleteEntry(addressStr)]
334334 }
335335 }
336336
337337
338338
339339 @Callable(i)
340340 func toPete () = {
341341 let wavesAmount = (wavesBalance(this).regular - 10000000)
342342 let peteAmountBefore = assetBalance(this, PETE)
343343 if ((peteAmountBefore == peteAmountBefore))
344344 then if ((100000000 > wavesAmount))
345345 then throw("balance is too low")
346346 else {
347347 let teamWavesAmount = fraction(wavesAmount, TEAM_PART, 100)
348348 let swapWavesAmount = ((wavesAmount - teamWavesAmount) - 20000000)
349349 let swap = invoke(SwapAddress, "swap", [1, toBase58String(PETE), toString(this)], [AttachedPayment(unit, swapWavesAmount)])
350350 if ((swap == swap))
351351 then {
352352 let peteAmountNew = (assetBalance(this, PETE) - peteAmountBefore)
353353 if ((peteAmountNew == peteAmountNew))
354354 then {
355355 let supply = privateSupply(peteAmountNew)
356356 let inv = invoke(this, "stakePete", nil, nil)
357357 if ((inv == inv))
358358 then ([ScriptTransfer(TeamAddress, teamWavesAmount, unit)] ++ supply)
359359 else throw("Strict value is not equal to itself.")
360360 }
361361 else throw("Strict value is not equal to itself.")
362362 }
363363 else throw("Strict value is not equal to itself.")
364364 }
365365 else throw("Strict value is not equal to itself.")
366366 }
367367
368368
369369
370370 @Callable(i)
371371 func removeLiders () = if ((i.caller != this))
372372 then throw("you can't")
373373 else [DeleteEntry(lidersKey)]
374374
375375

github/deemru/w8io/3ef1775 
79.03 ms