tx · BLzqe8hSLqqbkd7x2f4o6h9igZs7wooPtNRA1LeWCTjs

3PNaRW9FuMUWpAzZkjrdvHBpZxeX7kNrDoY:  -0.01500000 Waves

2024.03.07 21:53 [4073840] smart account 3PNaRW9FuMUWpAzZkjrdvHBpZxeX7kNrDoY > SELF 0.00000000 Waves

{ "type": 13, "id": "BLzqe8hSLqqbkd7x2f4o6h9igZs7wooPtNRA1LeWCTjs", "fee": 1500000, "feeAssetId": null, "timestamp": 1709837627255, "version": 2, "chainId": 87, "sender": "3PNaRW9FuMUWpAzZkjrdvHBpZxeX7kNrDoY", "senderPublicKey": "Gn265atnbhWaJv1XhND8yPDrhUYMogzgWXzLVTmM4jGj", "proofs": [ "2WCicxBGHwC7qHepx3kgTs75H1D99f4iRepnfihBACRqVHwvMZbd4TtTFgs3KnZ9VRP3wnHc6GFS2yfvFUqzmF2e" ], "script": "base64:BgIWCAISAwoBCBIDCgEIEgMKAQgSAwoBCC8BFHRyeUdldFN0cmluZ0V4dGVybmFsAgdhZGRyZXNzA2tleQQHJG1hdGNoMAkAnQgCBQdhZGRyZXNzBQNrZXkDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFhBQckbWF0Y2gwBQFhAgABDXRyeUdldEludGVnZXIBA2tleQQHJG1hdGNoMAkAmggCBQR0aGlzBQNrZXkDCQABAgUHJG1hdGNoMAIDSW50BAFiBQckbWF0Y2gwBQFiAAABDHRyeUdldFN0cmluZwEDa2V5CQEUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwCBQR0aGlzBQNrZXkBBWFzSW50AQV2YWx1ZQQHJG1hdGNoMAUFdmFsdWUDCQABAgUHJG1hdGNoMAIDSW50BANpbnQFByRtYXRjaDAFA2ludAMJAAECBQckbWF0Y2gwAgZTdHJpbmcEBnN0cmluZwUHJG1hdGNoMAkAAgEJAKwCAgIpUkFJOiB3cm9uZyB0eXBlLCBleHBlY3RlZDogSW50LCBidXQgZ290OiAFBnN0cmluZwkAAgECHlJBSTogd3JvbmcgdHlwZSwgZXhwZWN0ZWQ6IEludAEJYXNCb29sZWFuAQV2YWx1ZQQHJG1hdGNoMAUFdmFsdWUDCQABAgUHJG1hdGNoMAIHQm9vbGVhbgQHYm9vbGVhbgUHJG1hdGNoMAUHYm9vbGVhbgkAAgECIkZBQjogd3JvbmcgdHlwZSwgZXhwZWN0ZWQ6IEJvb2xlYW4BCGFzU3RyaW5nAQV2YWx1ZQQHJG1hdGNoMAUFdmFsdWUDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFzBQckbWF0Y2gwBQFzAwkAAQIFByRtYXRjaDACA0ludAQBcwUHJG1hdGNoMAkAAgECJndyb25nIHR5cGUsIGV4cGVjdGVkOiBTdHJpbmcsIGdvdDogSW50AwkAAQIFByRtYXRjaDACBFVuaXQEAXMFByRtYXRjaDAJAAIBAid3cm9uZyB0eXBlLCBleHBlY3RlZDogU3RyaW5nLCBnb3Q6IFVuaXQJAAIBAhx3cm9uZyB0eXBlLCBleHBlY3RlZDogU3RyaW5nARdzdGF0aWNLZXlfb3JhY2xlQWRkcmVzcwACFHN0YXRpY19vcmFjbGVBZGRyZXNzARRzdGF0aWNLZXlfZWdnQXNzZXRJZAACEXN0YXRpY19lZ2dBc3NldElkARVzdGF0aWNLZXlfYnVybkFkZHJlc3MAAhJzdGF0aWNfYnVybkFkZHJlc3MBEnN0YXRpY0tleV9leHRyYUZlZQACD3N0YXRpY19leHRyYUZlZQEXc3RhdGljS2V5X2ZlZUFnZ3JlZ2F0b3IAAhRzdGF0aWNfZmVlQWdncmVnYXRvcgEgc3RhdGljS2V5X3R1cnRsZUluY3ViYXRvckFkZHJlc3MAAh1zdGF0aWNfdHVydGxlSW5jdWJhdG9yQWRkcmVzcwEec3RhdGljS2V5X3R1cnRsZUJyZWVkZXJBZGRyZXNzAAIbc3RhdGljX3R1cnRsZUJyZWVkZXJBZGRyZXNzARZzdGF0aWNLZXlfc3BpY2VBc3NldElkAAITc3RhdGljX3NwaWNlQXNzZXRJZAEcc3RhdGljS2V5X3JlZkNvbnRyYWN0QWRkcmVzcwACGXN0YXRpY19yZWZDb250cmFjdEFkZHJlc3MBGHN0YXRpY0tleV9jb3Vwb25zQWRkcmVzcwACFXN0YXRpY19jb3Vwb25zQWRkcmVzcwEec3RhdGljS2V5X3R1cnRsZVN0YWtpbmdBZGRyZXNzAAIbc3RhdGljX3R1cnRsZVN0YWtpbmdBZGRyZXNzARxzdGF0aWNLZXlfZHVja1N0YWtpbmdBZGRyZXNzAAIYc3RhdGljX2Zhcm1pbmdBZGRyZXNzTmV3AR5zdGF0aWNLZXlfZHVja0luY3ViYXRvckFkZHJlc3MAAhdzdGF0aWNfaW5jdWJhdG9yQWRkcmVzcwEWc3RhdGljS2V5X2l0ZW1zQWRkcmVzcwACE3N0YXRpY19pdGVtc0FkZHJlc3MBIXN0YXRpY0tleV90dXJ0bGVTcGljZVJlYmlydGhQcmljZQACHnN0YXRpY190dXJ0bGVTcGljZVJlYmlydGhQcmljZQEhc3RhdGljS2V5X3R1cnRsZVdhdmVzUmViaXJ0aFByaWNlAAIec3RhdGljX3R1cnRsZVdhdmVzUmViaXJ0aFByaWNlAR9zdGF0aWNLZXlfdHVydGxlRWdnUmViaXJ0aFByaWNlAAIcc3RhdGljX3R1cnRsZUVnZ1JlYmlydGhQcmljZQEJZ2V0T3JhY2xlAAkBB0FkZHJlc3MBCQDZBAEJAQx0cnlHZXRTdHJpbmcBCQEXc3RhdGljS2V5X29yYWNsZUFkZHJlc3MAAQ1nZXRFZ2dBc3NldElkAAkA2QQBCQEUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwCCQEJZ2V0T3JhY2xlAAkBFHN0YXRpY0tleV9lZ2dBc3NldElkAAEOZ2V0QnVybkFkZHJlc3MACQEHQWRkcmVzcwEJANkEAQkBFHRyeUdldFN0cmluZ0V4dGVybmFsAgkBCWdldE9yYWNsZQAJARVzdGF0aWNLZXlfYnVybkFkZHJlc3MAARBnZXRGZWVBZ2dyZWdhdG9yAAkBB0FkZHJlc3MBCQDZBAEJARR0cnlHZXRTdHJpbmdFeHRlcm5hbAIJAQlnZXRPcmFjbGUACQEXc3RhdGljS2V5X2ZlZUFnZ3JlZ2F0b3IAARdnZXRUdXJ0bGVCcmVlZGVyQWRkcmVzcwAJAQdBZGRyZXNzAQkA2QQBCQEUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwCCQEJZ2V0T3JhY2xlAAkBHnN0YXRpY0tleV90dXJ0bGVCcmVlZGVyQWRkcmVzcwABGWdldFR1cnRsZUluY3ViYXRvckFkZHJlc3MACQEHQWRkcmVzcwEJANkEAQkBFHRyeUdldFN0cmluZ0V4dGVybmFsAgkBCWdldE9yYWNsZQAJASBzdGF0aWNLZXlfdHVydGxlSW5jdWJhdG9yQWRkcmVzcwABD2dldFNwaWNlQXNzZXRJZAAJANkEAQkBFHRyeUdldFN0cmluZ0V4dGVybmFsAgkBCWdldE9yYWNsZQAJARZzdGF0aWNLZXlfc3BpY2VBc3NldElkAAEVZ2V0UmVmQ29udHJhY3RBZGRyZXNzAAkBB0FkZHJlc3MBCQDZBAEJARR0cnlHZXRTdHJpbmdFeHRlcm5hbAIJAQlnZXRPcmFjbGUACQEcc3RhdGljS2V5X3JlZkNvbnRyYWN0QWRkcmVzcwABEWdldENvdXBvbnNBZGRyZXNzAAkBB0FkZHJlc3MBCQDZBAEJARR0cnlHZXRTdHJpbmdFeHRlcm5hbAIJAQlnZXRPcmFjbGUACQEYc3RhdGljS2V5X2NvdXBvbnNBZGRyZXNzAAEXZ2V0VHVydGxlU3Rha2luZ0FkZHJlc3MACQEHQWRkcmVzcwEJANkEAQkBFHRyeUdldFN0cmluZ0V4dGVybmFsAgkBCWdldE9yYWNsZQAJAR5zdGF0aWNLZXlfdHVydGxlU3Rha2luZ0FkZHJlc3MAARVnZXREdWNrU3Rha2luZ0FkZHJlc3MACQEHQWRkcmVzcwEJANkEAQkBFHRyeUdldFN0cmluZ0V4dGVybmFsAgkBCWdldE9yYWNsZQAJARxzdGF0aWNLZXlfZHVja1N0YWtpbmdBZGRyZXNzAAEXZ2V0RHVja0luY3ViYXRvckFkZHJlc3MACQEHQWRkcmVzcwEJANkEAQkBFHRyeUdldFN0cmluZ0V4dGVybmFsAgkBCWdldE9yYWNsZQAJAR5zdGF0aWNLZXlfZHVja0luY3ViYXRvckFkZHJlc3MAAQ9nZXRJdGVtc0FkZHJlc3MACQEHQWRkcmVzcwEJANkEAQkBFHRyeUdldFN0cmluZ0V4dGVybmFsAgkBCWdldE9yYWNsZQAJARZzdGF0aWNLZXlfaXRlbXNBZGRyZXNzAAEVdHJ5R2V0SW50ZWdlckV4dGVybmFsAgdhZGRyZXNzA2tleQQHJG1hdGNoMAkAmggCBQdhZGRyZXNzBQNrZXkDCQABAgUHJG1hdGNoMAIDSW50BAFiBQckbWF0Y2gwBQFiCQACAQIaVFI6IFZhbHVlIG5vdCBmb3VuZCBpbiBzYyEAC3NwaWNlQW1vdW50CQEVdHJ5R2V0SW50ZWdlckV4dGVybmFsAgkBCWdldE9yYWNsZQAJASFzdGF0aWNLZXlfdHVydGxlU3BpY2VSZWJpcnRoUHJpY2UAAAllZ2dBbW91bnQJARV0cnlHZXRJbnRlZ2VyRXh0ZXJuYWwCCQEJZ2V0T3JhY2xlAAkBH3N0YXRpY0tleV90dXJ0bGVFZ2dSZWJpcnRoUHJpY2UAAAt3YXZlc0Ftb3VudAkBFXRyeUdldEludGVnZXJFeHRlcm5hbAIJAQlnZXRPcmFjbGUACQEhc3RhdGljS2V5X3R1cnRsZVdhdmVzUmViaXJ0aFByaWNlAAAQZGVsYXlGb3JIYXRjaGluZwACAQ9jaGVja1JlYWxUdXJ0bGUBB2Fzc2V0SWQDAwkAAAIICQEFdmFsdWUBCQDsBwEFB2Fzc2V0SWQGaXNzdWVyCQEXZ2V0VHVydGxlQnJlZWRlckFkZHJlc3MABgkAAAIICQEFdmFsdWUBCQDsBwEFB2Fzc2V0SWQGaXNzdWVyCQEZZ2V0VHVydGxlSW5jdWJhdG9yQWRkcmVzcwAGCQACAQINbm90IHZhbGlkIE5GVAEWY2hlY2tBZGRpdGlvbmFsUGF5bWVudAEHcGF5bWVudAMJAQlpc0RlZmluZWQBCAUHcGF5bWVudAdhc3NldElkCQACAQIZUkNBUDogUGxlYXNlIGF0dGFjaCB3YXZlcwQJZmVlQW1vdW50CQERQGV4dHJOYXRpdmUoMTA1MCkCCQEJZ2V0T3JhY2xlAAkBEnN0YXRpY0tleV9leHRyYUZlZQADCQECIT0CCAUHcGF5bWVudAZhbW91bnQFCWZlZUFtb3VudAkAAgEJAKwCAgkArAICAhxSQ0FQOiBQbGVhc2UgYXR0YWNoIGV4YWN0bHkgCQCkAwEFCWZlZUFtb3VudAITIGFtb3VudCBvZiB3YXZlbGV0cwkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEQZ2V0RmVlQWdncmVnYXRvcgAFCWZlZUFtb3VudAUEdW5pdAUDbmlsAQ9nZXRSYW5kb21OdW1iZXIEB29wdGlvbnMEdHhJZBRoYXRjaGluZ0ZpbmlzaEhlaWdodAZvZmZzZXQED3JhbmRvbVNlZWRCbG9jawkBBXZhbHVlAQkA7QcBCQBlAgUUaGF0Y2hpbmdGaW5pc2hIZWlnaHQAAQQKcmFuZG9tSGFzaAkA9wMBCQDLAQIFBHR4SWQJAQV2YWx1ZQEIBQ9yYW5kb21TZWVkQmxvY2sDdnJmCQBqAgkAsgkCBQpyYW5kb21IYXNoCQBoAgUGb2Zmc2V0AAgFB29wdGlvbnMBDXRyeUdldEJvb2xlYW4BA2tleQQHJG1hdGNoMAkAoAgBBQNrZXkDCQABAgUHJG1hdGNoMAIHQm9vbGVhbgQBYgUHJG1hdGNoMAUBYgcBDGdldFJhbmRvbVdpbgICdHgMZmluaXNoSGVpZ2h0BA5qYWNrcG90RW5hYmxlZAkBDXRyeUdldEJvb2xlYW4BAg9KQUNLUE9UX0VOQUJMRUQEDWphY2twb3RSYW5kb20JAQ9nZXRSYW5kb21OdW1iZXIEAJYBBQJ0eAUMZmluaXNoSGVpZ2h0AAEDAwkAAAIFDWphY2twb3RSYW5kb20AAQUOamFja3BvdEVuYWJsZWQHCQCUCgIFDWphY2twb3RSYW5kb20CB2phY2twb3QEAW4JAQ9nZXRSYW5kb21OdW1iZXIEAOgHBQJ0eAUMZmluaXNoSGVpZ2h0AAAEBnJlc3VsdAMJAGYCACgFAW4CFGl0ZW0hQVJULUZJUkVfU0hJRUxEAwkAZgIAUAUBbgISaXRlbSFBUlQtRklSRV9UQUlMAwkAZgIAZAUBbgIRaXRlbSFBUlQtRlJFRUdFTkUDCQBmAgCqAQUBbgIHYmVhY2hfUgMJAGYCAPABBQFuAgdiZWFjaF9TAwkAZgIAtgIFAW4CB2JlYWNoX0cDCQBmAgD8AgUBbgIHYmVhY2hfRAMJAGYCAJADBQFuAg5pdGVtIUFSVC1GRUVENQMJAGYCANgEBQFuAg9pdGVtIUFSVC1GRUVEMTADCQBmAgDsBAUBbgIPaXRlbSFBUlQtRkVFRDE1AwkAZgIAgAUFAW4CD2l0ZW0hQVJULUZFRUQyMAMJAGYCAJQFBQFuAg9pdGVtIUFSVC1GRUVEMjUDCQBmAgCoBQUBbgIPaXRlbSFBUlQtRkVFRDUwAwkAZgIA+AUFAW4CEGl0ZW0hQVJULUZFRUQxMDADCQBmAgCWBgUBbgIHcGVyY2hfRwMJAGYCALQGBQFuAgdwZXJjaF9ZAwkAZgIA0gYFAW4CB3BlcmNoX1IDCQBmAgDwBgUBbgIHcGVyY2hfQgMJAGYCAKwHBQFuAglpbmN1YmF0b3ICDmR1Y2tfaW5jdWJhdG9yCQCUCgIFAW4FBnJlc3VsdAEVZmluaXNoUmViaXJ0aEludGVybmFsBAZpbml0VHgHYWRkcmVzcxFhZGRpdGlvbmFsUGF5bWVudAZkb3VibGUEC2ZpbmlzaEJsb2NrCQENdHJ5R2V0SW50ZWdlcgEJAKwCAgkArAICCQCsAgIJAKwCAgIIYWRkcmVzc18FB2FkZHJlc3MCCF9pbml0VHhfBQZpbml0VHgCDF9maW5pc2hCbG9jawQGc3RhdHVzCQEMdHJ5R2V0U3RyaW5nAQkArAICCQCsAgIJAKwCAgkArAICAghhZGRyZXNzXwUHYWRkcmVzcwIIX2luaXRUeF8FBmluaXRUeAIHX3N0YXR1cwQMdmFsaWRQYXltZW50CQEWY2hlY2tBZGRpdGlvbmFsUGF5bWVudAEFEWFkZGl0aW9uYWxQYXltZW50AwkAAAIFDHZhbGlkUGF5bWVudAUMdmFsaWRQYXltZW50BAxyZWNvcmRBY3Rpb24JAPwHBAkBEWdldENvdXBvbnNBZGRyZXNzAAIMcmVjb3JkQWN0aW9uCQDMCAICDVJFQklSVEhUVVJUTEUFA25pbAUDbmlsAwkAAAIFDHJlY29yZEFjdGlvbgUMcmVjb3JkQWN0aW9uAwkBAiE9AgUGc3RhdHVzAgRvcGVuCQACAQIfcmViaXJ0aCBpcyBmaW5pc2hlZCBvciBub3Qgb3BlbgMJAGYCBQtmaW5pc2hCbG9jawUGaGVpZ2h0CQACAQIeeW91IGNhbm5vdCBmaW5pc2ggcmViaXJ0aCwgeWV0BAZvdXRwdXQJAQxnZXRSYW5kb21XaW4CCQDZBAEFBmluaXRUeAULZmluaXNoQmxvY2sEA3dpbggFBm91dHB1dAJfMgQGcmFuZG9tCAUGb3V0cHV0Al8xBAR0eElkBQZpbml0VHgEBnJlc3VsdAMJAQIhPQIJALMJAgUDd2luAgVwZXJjaAUEdW5pdAQFY29sb3IJALICAgUDd2luAAEEBGNhbGwDCQEBIQEFBmRvdWJsZQQFZmlyc3QJAPwHBAkBFWdldER1Y2tTdGFraW5nQWRkcmVzcwACDGFkZEZyZWVQZXJjaAkAzAgCBQdhZGRyZXNzCQDMCAIFBWNvbG9yBQNuaWwFA25pbAMJAAACBQVmaXJzdAUFZmlyc3QJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkArAICAghhZGRyZXNzXwUHYWRkcmVzcwIIX2luaXRUeF8FBmluaXRUeAIHX3Jlc3VsdAkBCGFzU3RyaW5nAQUFZmlyc3QFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgQFZmlyc3QJAPwHBAkBFWdldER1Y2tTdGFraW5nQWRkcmVzcwACDGFkZEZyZWVQZXJjaAkAzAgCBQdhZGRyZXNzCQDMCAIFBWNvbG9yBQNuaWwFA25pbAMJAAACBQVmaXJzdAUFZmlyc3QEBnNlY29uZAkA/AcECQEVZ2V0RHVja1N0YWtpbmdBZGRyZXNzAAIMYWRkRnJlZVBlcmNoCQDMCAIFB2FkZHJlc3MJAMwIAgUFY29sb3IFA25pbAUDbmlsAwkAAAIFBnNlY29uZAUGc2Vjb25kCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIJAKwCAgIIYWRkcmVzc18FB2FkZHJlc3MCCF9pbml0VHhfBQZpbml0VHgCB19yZXN1bHQJAQhhc1N0cmluZwEFBWZpcnN0CQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIJAKwCAgIIYWRkcmVzc18FB2FkZHJlc3MCCF9pbml0VHhfBQZpbml0VHgCCF9yZXN1bHQxCQEIYXNTdHJpbmcBBQZzZWNvbmQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkArAICAghhZGRyZXNzXwUHYWRkcmVzcwIIX2luaXRUeF8FBmluaXRUeAIFX3dpbjEFA3dpbgUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAwkAAAIFBGNhbGwFBGNhbGwFBGNhbGwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4DCQECIT0CCQCzCQIFA3dpbgIFYmVhY2gFBHVuaXQEBWNvbG9yCQCyAgIFA3dpbgABBARjYWxsAwkBASEBBQZkb3VibGUEBWZpcnN0CQD8BwQJARdnZXRUdXJ0bGVTdGFraW5nQWRkcmVzcwACDGFkZEZyZWVCZWFjaAkAzAgCBQdhZGRyZXNzCQDMCAIFBWNvbG9yBQNuaWwFA25pbAMJAAACBQVmaXJzdAUFZmlyc3QJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkArAICAghhZGRyZXNzXwUHYWRkcmVzcwIIX2luaXRUeF8FBmluaXRUeAIHX3Jlc3VsdAkBCGFzU3RyaW5nAQUFZmlyc3QFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgQFZmlyc3QJAPwHBAkBF2dldFR1cnRsZVN0YWtpbmdBZGRyZXNzAAIMYWRkRnJlZUJlYWNoCQDMCAIFB2FkZHJlc3MJAMwIAgUFY29sb3IFA25pbAUDbmlsAwkAAAIFBWZpcnN0BQVmaXJzdAQGc2Vjb25kCQD8BwQJARdnZXRUdXJ0bGVTdGFraW5nQWRkcmVzcwACDGFkZEZyZWVCZWFjaAkAzAgCBQdhZGRyZXNzCQDMCAIFBWNvbG9yBQNuaWwFA25pbAMJAAACBQZzZWNvbmQFBnNlY29uZAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICCQCsAgICCGFkZHJlc3NfBQdhZGRyZXNzAghfaW5pdFR4XwUGaW5pdFR4AgdfcmVzdWx0CQEIYXNTdHJpbmcBBQVmaXJzdAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICCQCsAgICCGFkZHJlc3NfBQdhZGRyZXNzAghfaW5pdFR4XwUGaW5pdFR4AghfcmVzdWx0MQkBCGFzU3RyaW5nAQUGc2Vjb25kCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIJAKwCAgIIYWRkcmVzc18FB2FkZHJlc3MCCF9pbml0VHhfBQZpbml0VHgCBV93aW4xBQN3aW4FA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgMJAAACBQRjYWxsBQRjYWxsBQRjYWxsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAwkAAAIFA3dpbgIHamFja3BvdAQEY2FsbAkA/AcECQEZZ2V0VHVydGxlSW5jdWJhdG9yQWRkcmVzcwACDGlzc3VlSmFja3BvdAkAzAgCBQdhZGRyZXNzCQDMCAIFBHR4SWQJAMwIAgkBC3ZhbHVlT3JFbHNlAgkAoggBAgxKQUNLUE9UX05BTUUCCFdXV1dYTUFTBQNuaWwFA25pbAMJAAACBQRjYWxsBQRjYWxsCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIJAKwCAgIIYWRkcmVzc18FB2FkZHJlc3MCCF9pbml0VHhfBQZpbml0VHgCB19yZXN1bHQJAQhhc1N0cmluZwEFBGNhbGwFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgMJAAACBQN3aW4CCWluY3ViYXRvcgQEY2FsbAMJAQEhAQUGZG91YmxlBAVmaXJzdAkA/AcECQEZZ2V0VHVydGxlSW5jdWJhdG9yQWRkcmVzcwACD2lzc3VlRnJlZVR1cnRsZQkAzAgCBQdhZGRyZXNzCQDMCAIFBHR4SWQFA25pbAUDbmlsAwkAAAIFBWZpcnN0BQVmaXJzdAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICCQCsAgICCGFkZHJlc3NfBQdhZGRyZXNzAghfaW5pdFR4XwUGaW5pdFR4AgdfcmVzdWx0CQEIYXNTdHJpbmcBBQVmaXJzdAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuBAVmaXJzdAkA/AcECQEZZ2V0VHVydGxlSW5jdWJhdG9yQWRkcmVzcwACD2lzc3VlRnJlZVR1cnRsZQkAzAgCBQdhZGRyZXNzCQDMCAIFBHR4SWQFA25pbAUDbmlsAwkAAAIFBWZpcnN0BQVmaXJzdAQGc2Vjb25kCQD8BwQJARdnZXREdWNrSW5jdWJhdG9yQWRkcmVzcwACGWlzc3VlRnJlZUR1Y2tEZWZpbmVkR2VuZXMJAMwIAgUHYWRkcmVzcwkAzAgCBQR0eElkCQDMCAICCFpaWlpaWlpaBQNuaWwFA25pbAMJAAACBQZzZWNvbmQFBnNlY29uZAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICCQCsAgICCGFkZHJlc3NfBQdhZGRyZXNzAghfaW5pdFR4XwUGaW5pdFR4AgdfcmVzdWx0CQEIYXNTdHJpbmcBBQVmaXJzdAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICCQCsAgICCGFkZHJlc3NfBQdhZGRyZXNzAghfaW5pdFR4XwUGaW5pdFR4AghfcmVzdWx0MQkBCGFzU3RyaW5nAQUGc2Vjb25kCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIJAKwCAgIIYWRkcmVzc18FB2FkZHJlc3MCCF9pbml0VHhfBQZpbml0VHgCBV93aW4xAg5kdWNrX2luY3ViYXRvcgUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAwkAAAIFBGNhbGwFBGNhbGwFBGNhbGwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4DCQAAAgUDd2luAg5kdWNrX2luY3ViYXRvcgQEY2FsbAMJAQEhAQUGZG91YmxlBAVmaXJzdAkA/AcECQEXZ2V0RHVja0luY3ViYXRvckFkZHJlc3MAAhlpc3N1ZUZyZWVEdWNrRGVmaW5lZEdlbmVzCQDMCAIFB2FkZHJlc3MJAMwIAgUEdHhJZAkAzAgCAghaWlpaWlpaWgUDbmlsBQNuaWwDCQAAAgUFZmlyc3QFBWZpcnN0CQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIJAKwCAgIIYWRkcmVzc18FB2FkZHJlc3MCCF9pbml0VHhfBQZpbml0VHgCB19yZXN1bHQJAQhhc1N0cmluZwEFBWZpcnN0BQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4EBWZpcnN0CQD8BwQJARdnZXREdWNrSW5jdWJhdG9yQWRkcmVzcwACGWlzc3VlRnJlZUR1Y2tEZWZpbmVkR2VuZXMJAMwIAgUHYWRkcmVzcwkAzAgCBQR0eElkCQDMCAICCFpaWlpaWlpaBQNuaWwFA25pbAMJAAACBQVmaXJzdAUFZmlyc3QEBnNlY29uZAkA/AcECQEZZ2V0VHVydGxlSW5jdWJhdG9yQWRkcmVzcwACD2lzc3VlRnJlZVR1cnRsZQkAzAgCBQdhZGRyZXNzCQDMCAIFBHR4SWQFA25pbAUDbmlsAwkAAAIFBnNlY29uZAUGc2Vjb25kCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIJAKwCAgIIYWRkcmVzc18FB2FkZHJlc3MCCF9pbml0VHhfBQZpbml0VHgCB19yZXN1bHQJAQhhc1N0cmluZwEFBWZpcnN0CQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIJAKwCAgIIYWRkcmVzc18FB2FkZHJlc3MCCF9pbml0VHhfBQZpbml0VHgCCF9yZXN1bHQxCQEIYXNTdHJpbmcBBQZzZWNvbmQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkArAICAghhZGRyZXNzXwUHYWRkcmVzcwIIX2luaXRUeF8FBmluaXRUeAIFX3dpbjECCWluY3ViYXRvcgUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAwkAAAIFBGNhbGwFBGNhbGwFBGNhbGwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4DCQECIT0CCQCzCQIFA3dpbgIEaXRlbQUEdW5pdAQIaXRlbU5hbWUJAJEDAgkAtQkCBQN3aW4CASEAAQQEY2FsbAMJAQEhAQUGZG91YmxlBAVmaXJzdAkA/AcECQEPZ2V0SXRlbXNBZGRyZXNzAAISaXNzdWVBcnRlZmFjdEluZGV4CQDMCAIFCGl0ZW1OYW1lCQDMCAIFB2FkZHJlc3MJAMwIAgAABQNuaWwFA25pbAMJAAACBQVmaXJzdAUFZmlyc3QJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkArAICAghhZGRyZXNzXwUHYWRkcmVzcwIIX2luaXRUeF8FBmluaXRUeAIHX3Jlc3VsdAkBCGFzU3RyaW5nAQUFZmlyc3QFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgQFZmlyc3QJAPwHBAkBD2dldEl0ZW1zQWRkcmVzcwACEmlzc3VlQXJ0ZWZhY3RJbmRleAkAzAgCBQhpdGVtTmFtZQkAzAgCBQdhZGRyZXNzCQDMCAIAAAUDbmlsBQNuaWwDCQAAAgUFZmlyc3QFBWZpcnN0BAZzZWNvbmQJAPwHBAkBD2dldEl0ZW1zQWRkcmVzcwACEmlzc3VlQXJ0ZWZhY3RJbmRleAkAzAgCBQhpdGVtTmFtZQkAzAgCBQdhZGRyZXNzCQDMCAIAAQUDbmlsBQNuaWwDCQAAAgUGc2Vjb25kBQZzZWNvbmQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkArAICAghhZGRyZXNzXwUHYWRkcmVzcwIIX2luaXRUeF8FBmluaXRUeAIHX3Jlc3VsdAkBCGFzU3RyaW5nAQUFZmlyc3QJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkArAICAghhZGRyZXNzXwUHYWRkcmVzcwIIX2luaXRUeF8FBmluaXRUeAIIX3Jlc3VsdDEJAQhhc1N0cmluZwEFBnNlY29uZAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICCQCsAgICCGFkZHJlc3NfBQdhZGRyZXNzAghfaW5pdFR4XwUGaW5pdFR4AgVfd2luMQUDd2luBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4DCQAAAgUEY2FsbAUEY2FsbAUEY2FsbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECM1JGQjogU29tZSBlcnJvciBvY2N1cmVkLCBwbGVhc2UgY29udGFjdCB0aGUgYWRtaW5zIQkAzggCCQDOCAIFBnJlc3VsdAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICCQCsAgICCGFkZHJlc3NfBQdhZGRyZXNzAghfaW5pdFR4XwUGaW5pdFR4AgRfd2luBQN3aW4JAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkArAICAghhZGRyZXNzXwUHYWRkcmVzcwIIX2luaXRUeF8FBmluaXRUeAIHX3N0YXR1cwIGZmluaXNoCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgkArAICCQCsAgICCGFkZHJlc3NfBQdhZGRyZXNzAghfaW5pdFR4XwUGaW5pdFR4AgdfcmFuZG9tBQZyYW5kb20FA25pbAUMdmFsaWRQYXltZW50CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuBAFpAQ9jb25maWd1cmVPcmFjbGUBBm9yYWNsZQMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECD1JDVTogYWRtaW4gb25seQkAzAgCCQELU3RyaW5nRW50cnkCAhRzdGF0aWNfb3JhY2xlQWRkcmVzcwUGb3JhY2xlBQNuaWwBaQELaW5pdFJlYmlydGgBDnJlZmVyZXJBZGRyZXNzBAlwbXRUdXJ0bGUJAJEDAggFAWkIcGF5bWVudHMAAAQIcG10V2F2ZXMJAJEDAggFAWkIcGF5bWVudHMAAQQIcG10U3BpY2UJAJEDAggFAWkIcGF5bWVudHMAAgQHYXNzZXRJZAkBBXZhbHVlAQgFCXBtdFR1cnRsZQdhc3NldElkBAZpbml0VHgJANgEAQgFAWkNdHJhbnNhY3Rpb25JZAQHYWRkcmVzcwkApQgBCAUBaQZjYWxsZXIDCQECIT0CCAUJcG10VHVydGxlBmFtb3VudAABCQACAQITTkZUIGlzIG5vdCBhdHRhY2hlZAMDCQECIT0CCAUIcG10V2F2ZXMGYW1vdW50BQt3YXZlc0Ftb3VudAYJAQIhPQIIBQhwbXRXYXZlcwdhc3NldElkBQR1bml0CQACAQImV2F2ZXNwYXltZW50IGlzIG5vdCBhdHRhY2hlZCBvciB3cm9uZyEDAwkBAiE9AggFCHBtdFNwaWNlBmFtb3VudAULc3BpY2VBbW91bnQGCQECIT0CCAUIcG10U3BpY2UHYXNzZXRJZAkBD2dldFNwaWNlQXNzZXRJZAAJAAIBAiZTcGljZVBheW1lbnQgaXMgbm90IGF0dGFjaGVkIG9yIHdyb25nIQQTYW1vdW50UGFpZEJ5Q291cG9ucwkBBWFzSW50AQkA/AcECQERZ2V0Q291cG9uc0FkZHJlc3MAAgp1c2VDb3Vwb25zCQDMCAIFCWVnZ0Ftb3VudAUDbmlsBQNuaWwDCQAAAgUTYW1vdW50UGFpZEJ5Q291cG9ucwUTYW1vdW50UGFpZEJ5Q291cG9ucwQJbGVmdFRvUGF5CQBlAgUJZWdnQW1vdW50BRNhbW91bnRQYWlkQnlDb3Vwb25zBAV0b3B1cAkA/AcECQEXZ2V0VHVydGxlU3Rha2luZ0FkZHJlc3MAAgt0b3BVcFJld2FyZAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCCQEPZ2V0U3BpY2VBc3NldElkAAgFCHBtdFNwaWNlBmFtb3VudAUDbmlsAwkAAAIFBXRvcHVwBQV0b3B1cAQHcGF5bWVudAMJAQIhPQIFCWxlZnRUb1BheQAABAZwbXRFZ2cJAJEDAggFAWkIcGF5bWVudHMAAwQKZmVlUGF5bWVudAkBBXZhbHVlAQUGcG10RWdnAwkBAiE9AggFCmZlZVBheW1lbnQHYXNzZXRJZAkBDWdldEVnZ0Fzc2V0SWQACQACAQIkWW91IG5lZWQgdG8gYXR0YWNoIEVHRyB0b2tlbnMgYXMgZmVlAwkBAiE9AggFCmZlZVBheW1lbnQGYW1vdW50BQlsZWZ0VG9QYXkJAAIBCQCsAgICQFlvdSBuZWVkIHRvIGF0dGFjaCB0aGUgZm9sbG93aW5nIGFtb3VudCBvZiBFR0cgdG9rZW5zIGFzIGZlZTogMC4JAKQDAQUJbGVmdFRvUGF5BBVyZWZlcmVyUmV3YXJkRm9yUGVyY2gJAGsDBQlsZWZ0VG9QYXkABQBkBAdyZWZDYWxsCQEJYXNCb29sZWFuAQkA/AcECQEVZ2V0UmVmQ29udHJhY3RBZGRyZXNzAAIKcmVmUGF5bWVudAkAzAgCBQ5yZWZlcmVyQWRkcmVzcwUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCCQENZ2V0RWdnQXNzZXRJZAAFFXJlZmVyZXJSZXdhcmRGb3JQZXJjaAUDbmlsAwkAAAIFB3JlZkNhbGwFB3JlZkNhbGwEBnRvQnVybgMFB3JlZkNhbGwJAGUCBQlsZWZ0VG9QYXkFFXJlZmVyZXJSZXdhcmRGb3JQZXJjaAUJbGVmdFRvUGF5BAhidXJuQ2FsbAkA/AcECQEOZ2V0QnVybkFkZHJlc3MAAhRidXJuQXR0YWNoZWRQYXltZW50cwUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCCQENZ2V0RWdnQXNzZXRJZAAFBnRvQnVybgUDbmlsAwkAAAIFCGJ1cm5DYWxsBQhidXJuQ2FsbAUJbGVmdFRvUGF5CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAADCQAAAgUHcGF5bWVudAUHcGF5bWVudAQKcmVhbFR1cnRsZQkBD2NoZWNrUmVhbFR1cnRsZQEFB2Fzc2V0SWQDCQAAAgUKcmVhbFR1cnRsZQUKcmVhbFR1cnRsZQkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICCQCsAgIJAKwCAgkArAICAghhZGRyZXNzXwUHYWRkcmVzcwIIX2luaXRUeF8FBmluaXRUeAIMX2ZpbmlzaEJsb2NrCQBkAgUGaGVpZ2h0BRBkZWxheUZvckhhdGNoaW5nCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIJAKwCAgIIYWRkcmVzc18FB2FkZHJlc3MCCF9pbml0VHhfBQZpbml0VHgCB19zdGF0dXMCBG9wZW4JAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkArAICAghhZGRyZXNzXwUHYWRkcmVzcwIIX2luaXRUeF8FBmluaXRUeAIIX2Fzc2V0SWQJANgEAQUHYXNzZXRJZAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEQZ2V0RmVlQWdncmVnYXRvcgAIBQhwbXRXYXZlcwZhbW91bnQFBHVuaXQFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQ1maW5pc2hSZWJpcnRoAQZpbml0VHgJARVmaW5pc2hSZWJpcnRoSW50ZXJuYWwEBQZpbml0VHgJAKUIAQgFAWkGY2FsbGVyCQCRAwIIBQFpCHBheW1lbnRzAAAHAWkBE2ZpbmlzaFJlYmlydGhEb3VibGUBBmluaXRUeAMJAQEhAQMJAAACCQCQAwEIBQFpCHBheW1lbnRzAAIJAAACCAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAABBwkAAgECD0ludmFsaWQgcGF5bWVudAQHYXNzZXRJZAkBBXZhbHVlAQgJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkBAtib29zdGVyVHlwZQkBCGFzU3RyaW5nAQkA/AcECQEPZ2V0SXRlbXNBZGRyZXNzAAIUY2hlY2tBcnRlZmFjdERldGFpbHMJAMwIAgkA2AQBBQdhc3NldElkBQNuaWwFA25pbAMJAAACBQtib29zdGVyVHlwZQULYm9vc3RlclR5cGUDCQAAAgULYm9vc3RlclR5cGUCDkFSVC1HSUZUX0RPVUJMCQDOCAIJAMwIAgkBBEJ1cm4CBQdhc3NldElkAAEFA25pbAkBFWZpbmlzaFJlYmlydGhJbnRlcm5hbAQFBmluaXRUeAkApQgBCAUBaQZjYWxsZXIJAJEDAggFAWkIcGF5bWVudHMAAQYJAAIBAi1FcnJvciEgV3JvbmcgaXRlbSBhdHRhY2hlZCB0byBkb3VibGUgcmV3YXJkcyEJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AAQ+jeg==", "height": 4073840, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: DpMTUUjYn4JKiHuqrLWam9wEuZ19BEBZ7B3xgSzBtdVB Next: none Diff:
OldNewDifferences
1-{-# STDLIB_VERSION 5 #-}
1+{-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func tryGetStringExternal (address,key) = match getString(address, key) {
8383 func staticKey_turtleStakingAddress () = "static_turtleStakingAddress"
8484
8585
86-func staticKey_duckStakingAddress () = "static_farmingAddress"
86+func staticKey_duckStakingAddress () = "static_farmingAddressNew"
8787
8888
8989 func staticKey_duckIncubatorAddress () = "static_incubatorAddress"
190190
191191 func getRandomWin (tx,finishHeight) = {
192192 let jackpotEnabled = tryGetBoolean("JACKPOT_ENABLED")
193- let jackpotRandom = getRandomNumber(1000, tx, finishHeight, 1)
193+ let jackpotRandom = getRandomNumber(150, tx, finishHeight, 1)
194194 if (if ((jackpotRandom == 1))
195195 then jackpotEnabled
196196 else false)
197197 then $Tuple2(jackpotRandom, "jackpot")
198198 else {
199199 let n = getRandomNumber(1000, tx, finishHeight, 0)
200- let result = if ((1 > n))
201- then "incubator"
202- else if ((2 > n))
203- then "beach_R"
204- else if ((3 > n))
205- then "beach_S"
206- else if ((4 > n))
207- then "beach_G"
208- else if ((5 > n))
209- then "beach_D"
210- else if ((6 > n))
211- then "perch_G"
212- else if ((7 > n))
213- then "perch_Y"
214- else if ((8 > n))
215- then "perch_R"
216- else if ((9 > n))
217- then "perch_B"
218- else if ((999 > n))
219- then "duck_incubator"
220- else if ((11 > n))
221- then "item!ART-FREEGENE"
222- else if ((12 > n))
223- then "item!ART-FIRE_TAIL"
224- else if ((13 > n))
225- then "item!ART-FIRE_SHIELD"
226- else if ((15 > n))
227- then "item!ART-FEED10"
228- else "item!ART-FEED100"
200+ let result = if ((40 > n))
201+ then "item!ART-FIRE_SHIELD"
202+ else if ((80 > n))
203+ then "item!ART-FIRE_TAIL"
204+ else if ((100 > n))
205+ then "item!ART-FREEGENE"
206+ else if ((170 > n))
207+ then "beach_R"
208+ else if ((240 > n))
209+ then "beach_S"
210+ else if ((310 > n))
211+ then "beach_G"
212+ else if ((380 > n))
213+ then "beach_D"
214+ else if ((400 > n))
215+ then "item!ART-FEED5"
216+ else if ((600 > n))
217+ then "item!ART-FEED10"
218+ else if ((620 > n))
219+ then "item!ART-FEED15"
220+ else if ((640 > n))
221+ then "item!ART-FEED20"
222+ else if ((660 > n))
223+ then "item!ART-FEED25"
224+ else if ((680 > n))
225+ then "item!ART-FEED50"
226+ else if ((760 > n))
227+ then "item!ART-FEED100"
228+ else if ((790 > n))
229+ then "perch_G"
230+ else if ((820 > n))
231+ then "perch_Y"
232+ else if ((850 > n))
233+ then "perch_R"
234+ else if ((880 > n))
235+ then "perch_B"
236+ else if ((940 > n))
237+ then "incubator"
238+ else "duck_incubator"
229239 $Tuple2(n, result)
230240 }
231241 }
Full:
OldNewDifferences
1-{-# STDLIB_VERSION 5 #-}
1+{-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func tryGetStringExternal (address,key) = match getString(address, key) {
55 case a: String =>
66 a
77 case _ =>
88 ""
99 }
1010
1111
1212 func tryGetInteger (key) = match getInteger(this, key) {
1313 case b: Int =>
1414 b
1515 case _ =>
1616 0
1717 }
1818
1919
2020 func tryGetString (key) = tryGetStringExternal(this, key)
2121
2222
2323 func asInt (value) = match value {
2424 case int: Int =>
2525 int
2626 case string: String =>
2727 throw(("RAI: wrong type, expected: Int, but got: " + string))
2828 case _ =>
2929 throw("RAI: wrong type, expected: Int")
3030 }
3131
3232
3333 func asBoolean (value) = match value {
3434 case boolean: Boolean =>
3535 boolean
3636 case _ =>
3737 throw("FAB: wrong type, expected: Boolean")
3838 }
3939
4040
4141 func asString (value) = match value {
4242 case s: String =>
4343 s
4444 case s: Int =>
4545 throw("wrong type, expected: String, got: Int")
4646 case s: Unit =>
4747 throw("wrong type, expected: String, got: Unit")
4848 case _ =>
4949 throw("wrong type, expected: String")
5050 }
5151
5252
5353 func staticKey_oracleAddress () = "static_oracleAddress"
5454
5555
5656 func staticKey_eggAssetId () = "static_eggAssetId"
5757
5858
5959 func staticKey_burnAddress () = "static_burnAddress"
6060
6161
6262 func staticKey_extraFee () = "static_extraFee"
6363
6464
6565 func staticKey_feeAggregator () = "static_feeAggregator"
6666
6767
6868 func staticKey_turtleIncubatorAddress () = "static_turtleIncubatorAddress"
6969
7070
7171 func staticKey_turtleBreederAddress () = "static_turtleBreederAddress"
7272
7373
7474 func staticKey_spiceAssetId () = "static_spiceAssetId"
7575
7676
7777 func staticKey_refContractAddress () = "static_refContractAddress"
7878
7979
8080 func staticKey_couponsAddress () = "static_couponsAddress"
8181
8282
8383 func staticKey_turtleStakingAddress () = "static_turtleStakingAddress"
8484
8585
86-func staticKey_duckStakingAddress () = "static_farmingAddress"
86+func staticKey_duckStakingAddress () = "static_farmingAddressNew"
8787
8888
8989 func staticKey_duckIncubatorAddress () = "static_incubatorAddress"
9090
9191
9292 func staticKey_itemsAddress () = "static_itemsAddress"
9393
9494
9595 func staticKey_turtleSpiceRebirthPrice () = "static_turtleSpiceRebirthPrice"
9696
9797
9898 func staticKey_turtleWavesRebirthPrice () = "static_turtleWavesRebirthPrice"
9999
100100
101101 func staticKey_turtleEggRebirthPrice () = "static_turtleEggRebirthPrice"
102102
103103
104104 func getOracle () = Address(fromBase58String(tryGetString(staticKey_oracleAddress())))
105105
106106
107107 func getEggAssetId () = fromBase58String(tryGetStringExternal(getOracle(), staticKey_eggAssetId()))
108108
109109
110110 func getBurnAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_burnAddress())))
111111
112112
113113 func getFeeAggregator () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_feeAggregator())))
114114
115115
116116 func getTurtleBreederAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_turtleBreederAddress())))
117117
118118
119119 func getTurtleIncubatorAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_turtleIncubatorAddress())))
120120
121121
122122 func getSpiceAssetId () = fromBase58String(tryGetStringExternal(getOracle(), staticKey_spiceAssetId()))
123123
124124
125125 func getRefContractAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_refContractAddress())))
126126
127127
128128 func getCouponsAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_couponsAddress())))
129129
130130
131131 func getTurtleStakingAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_turtleStakingAddress())))
132132
133133
134134 func getDuckStakingAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_duckStakingAddress())))
135135
136136
137137 func getDuckIncubatorAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_duckIncubatorAddress())))
138138
139139
140140 func getItemsAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_itemsAddress())))
141141
142142
143143 func tryGetIntegerExternal (address,key) = match getInteger(address, key) {
144144 case b: Int =>
145145 b
146146 case _ =>
147147 throw("TR: Value not found in sc!")
148148 }
149149
150150
151151 let spiceAmount = tryGetIntegerExternal(getOracle(), staticKey_turtleSpiceRebirthPrice())
152152
153153 let eggAmount = tryGetIntegerExternal(getOracle(), staticKey_turtleEggRebirthPrice())
154154
155155 let wavesAmount = tryGetIntegerExternal(getOracle(), staticKey_turtleWavesRebirthPrice())
156156
157157 let delayForHatching = 2
158158
159159 func checkRealTurtle (assetId) = if (if ((value(assetInfo(assetId)).issuer == getTurtleBreederAddress()))
160160 then true
161161 else (value(assetInfo(assetId)).issuer == getTurtleIncubatorAddress()))
162162 then true
163163 else throw("not valid NFT")
164164
165165
166166 func checkAdditionalPayment (payment) = if (isDefined(payment.assetId))
167167 then throw("RCAP: Please attach waves")
168168 else {
169169 let feeAmount = getIntegerValue(getOracle(), staticKey_extraFee())
170170 if ((payment.amount != feeAmount))
171171 then throw((("RCAP: Please attach exactly " + toString(feeAmount)) + " amount of wavelets"))
172172 else [ScriptTransfer(getFeeAggregator(), feeAmount, unit)]
173173 }
174174
175175
176176 func getRandomNumber (options,txId,hatchingFinishHeight,offset) = {
177177 let randomSeedBlock = value(blockInfoByHeight((hatchingFinishHeight - 1)))
178178 let randomHash = sha256((txId + value(randomSeedBlock.vrf)))
179179 (toInt(randomHash, (offset * 8)) % options)
180180 }
181181
182182
183183 func tryGetBoolean (key) = match getBoolean(key) {
184184 case b: Boolean =>
185185 b
186186 case _ =>
187187 false
188188 }
189189
190190
191191 func getRandomWin (tx,finishHeight) = {
192192 let jackpotEnabled = tryGetBoolean("JACKPOT_ENABLED")
193- let jackpotRandom = getRandomNumber(1000, tx, finishHeight, 1)
193+ let jackpotRandom = getRandomNumber(150, tx, finishHeight, 1)
194194 if (if ((jackpotRandom == 1))
195195 then jackpotEnabled
196196 else false)
197197 then $Tuple2(jackpotRandom, "jackpot")
198198 else {
199199 let n = getRandomNumber(1000, tx, finishHeight, 0)
200- let result = if ((1 > n))
201- then "incubator"
202- else if ((2 > n))
203- then "beach_R"
204- else if ((3 > n))
205- then "beach_S"
206- else if ((4 > n))
207- then "beach_G"
208- else if ((5 > n))
209- then "beach_D"
210- else if ((6 > n))
211- then "perch_G"
212- else if ((7 > n))
213- then "perch_Y"
214- else if ((8 > n))
215- then "perch_R"
216- else if ((9 > n))
217- then "perch_B"
218- else if ((999 > n))
219- then "duck_incubator"
220- else if ((11 > n))
221- then "item!ART-FREEGENE"
222- else if ((12 > n))
223- then "item!ART-FIRE_TAIL"
224- else if ((13 > n))
225- then "item!ART-FIRE_SHIELD"
226- else if ((15 > n))
227- then "item!ART-FEED10"
228- else "item!ART-FEED100"
200+ let result = if ((40 > n))
201+ then "item!ART-FIRE_SHIELD"
202+ else if ((80 > n))
203+ then "item!ART-FIRE_TAIL"
204+ else if ((100 > n))
205+ then "item!ART-FREEGENE"
206+ else if ((170 > n))
207+ then "beach_R"
208+ else if ((240 > n))
209+ then "beach_S"
210+ else if ((310 > n))
211+ then "beach_G"
212+ else if ((380 > n))
213+ then "beach_D"
214+ else if ((400 > n))
215+ then "item!ART-FEED5"
216+ else if ((600 > n))
217+ then "item!ART-FEED10"
218+ else if ((620 > n))
219+ then "item!ART-FEED15"
220+ else if ((640 > n))
221+ then "item!ART-FEED20"
222+ else if ((660 > n))
223+ then "item!ART-FEED25"
224+ else if ((680 > n))
225+ then "item!ART-FEED50"
226+ else if ((760 > n))
227+ then "item!ART-FEED100"
228+ else if ((790 > n))
229+ then "perch_G"
230+ else if ((820 > n))
231+ then "perch_Y"
232+ else if ((850 > n))
233+ then "perch_R"
234+ else if ((880 > n))
235+ then "perch_B"
236+ else if ((940 > n))
237+ then "incubator"
238+ else "duck_incubator"
229239 $Tuple2(n, result)
230240 }
231241 }
232242
233243
234244 func finishRebirthInternal (initTx,address,additionalPayment,double) = {
235245 let finishBlock = tryGetInteger((((("address_" + address) + "_initTx_") + initTx) + "_finishBlock"))
236246 let status = tryGetString((((("address_" + address) + "_initTx_") + initTx) + "_status"))
237247 let validPayment = checkAdditionalPayment(additionalPayment)
238248 if ((validPayment == validPayment))
239249 then {
240250 let recordAction = invoke(getCouponsAddress(), "recordAction", ["REBIRTHTURTLE"], nil)
241251 if ((recordAction == recordAction))
242252 then if ((status != "open"))
243253 then throw("rebirth is finished or not open")
244254 else if ((finishBlock > height))
245255 then throw("you cannot finish rebirth, yet")
246256 else {
247257 let output = getRandomWin(fromBase58String(initTx), finishBlock)
248258 let win = output._2
249259 let random = output._1
250260 let txId = initTx
251261 let result = if ((indexOf(win, "perch") != unit))
252262 then {
253263 let color = takeRight(win, 1)
254264 let call = if (!(double))
255265 then {
256266 let first = invoke(getDuckStakingAddress(), "addFreePerch", [address, color], nil)
257267 if ((first == first))
258268 then [StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_result"), asString(first))]
259269 else throw("Strict value is not equal to itself.")
260270 }
261271 else {
262272 let first = invoke(getDuckStakingAddress(), "addFreePerch", [address, color], nil)
263273 if ((first == first))
264274 then {
265275 let second = invoke(getDuckStakingAddress(), "addFreePerch", [address, color], nil)
266276 if ((second == second))
267277 then [StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_result"), asString(first)), StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_result1"), asString(second)), StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_win1"), win)]
268278 else throw("Strict value is not equal to itself.")
269279 }
270280 else throw("Strict value is not equal to itself.")
271281 }
272282 if ((call == call))
273283 then call
274284 else throw("Strict value is not equal to itself.")
275285 }
276286 else if ((indexOf(win, "beach") != unit))
277287 then {
278288 let color = takeRight(win, 1)
279289 let call = if (!(double))
280290 then {
281291 let first = invoke(getTurtleStakingAddress(), "addFreeBeach", [address, color], nil)
282292 if ((first == first))
283293 then [StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_result"), asString(first))]
284294 else throw("Strict value is not equal to itself.")
285295 }
286296 else {
287297 let first = invoke(getTurtleStakingAddress(), "addFreeBeach", [address, color], nil)
288298 if ((first == first))
289299 then {
290300 let second = invoke(getTurtleStakingAddress(), "addFreeBeach", [address, color], nil)
291301 if ((second == second))
292302 then [StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_result"), asString(first)), StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_result1"), asString(second)), StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_win1"), win)]
293303 else throw("Strict value is not equal to itself.")
294304 }
295305 else throw("Strict value is not equal to itself.")
296306 }
297307 if ((call == call))
298308 then call
299309 else throw("Strict value is not equal to itself.")
300310 }
301311 else if ((win == "jackpot"))
302312 then {
303313 let call = invoke(getTurtleIncubatorAddress(), "issueJackpot", [address, txId, valueOrElse(getString("JACKPOT_NAME"), "WWWWXMAS")], nil)
304314 if ((call == call))
305315 then [StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_result"), asString(call))]
306316 else throw("Strict value is not equal to itself.")
307317 }
308318 else if ((win == "incubator"))
309319 then {
310320 let call = if (!(double))
311321 then {
312322 let first = invoke(getTurtleIncubatorAddress(), "issueFreeTurtle", [address, txId], nil)
313323 if ((first == first))
314324 then [StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_result"), asString(first))]
315325 else throw("Strict value is not equal to itself.")
316326 }
317327 else {
318328 let first = invoke(getTurtleIncubatorAddress(), "issueFreeTurtle", [address, txId], nil)
319329 if ((first == first))
320330 then {
321331 let second = invoke(getDuckIncubatorAddress(), "issueFreeDuckDefinedGenes", [address, txId, "ZZZZZZZZ"], nil)
322332 if ((second == second))
323333 then [StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_result"), asString(first)), StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_result1"), asString(second)), StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_win1"), "duck_incubator")]
324334 else throw("Strict value is not equal to itself.")
325335 }
326336 else throw("Strict value is not equal to itself.")
327337 }
328338 if ((call == call))
329339 then call
330340 else throw("Strict value is not equal to itself.")
331341 }
332342 else if ((win == "duck_incubator"))
333343 then {
334344 let call = if (!(double))
335345 then {
336346 let first = invoke(getDuckIncubatorAddress(), "issueFreeDuckDefinedGenes", [address, txId, "ZZZZZZZZ"], nil)
337347 if ((first == first))
338348 then [StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_result"), asString(first))]
339349 else throw("Strict value is not equal to itself.")
340350 }
341351 else {
342352 let first = invoke(getDuckIncubatorAddress(), "issueFreeDuckDefinedGenes", [address, txId, "ZZZZZZZZ"], nil)
343353 if ((first == first))
344354 then {
345355 let second = invoke(getTurtleIncubatorAddress(), "issueFreeTurtle", [address, txId], nil)
346356 if ((second == second))
347357 then [StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_result"), asString(first)), StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_result1"), asString(second)), StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_win1"), "incubator")]
348358 else throw("Strict value is not equal to itself.")
349359 }
350360 else throw("Strict value is not equal to itself.")
351361 }
352362 if ((call == call))
353363 then call
354364 else throw("Strict value is not equal to itself.")
355365 }
356366 else if ((indexOf(win, "item") != unit))
357367 then {
358368 let itemName = split(win, "!")[1]
359369 let call = if (!(double))
360370 then {
361371 let first = invoke(getItemsAddress(), "issueArtefactIndex", [itemName, address, 0], nil)
362372 if ((first == first))
363373 then [StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_result"), asString(first))]
364374 else throw("Strict value is not equal to itself.")
365375 }
366376 else {
367377 let first = invoke(getItemsAddress(), "issueArtefactIndex", [itemName, address, 0], nil)
368378 if ((first == first))
369379 then {
370380 let second = invoke(getItemsAddress(), "issueArtefactIndex", [itemName, address, 1], nil)
371381 if ((second == second))
372382 then [StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_result"), asString(first)), StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_result1"), asString(second)), StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_win1"), win)]
373383 else throw("Strict value is not equal to itself.")
374384 }
375385 else throw("Strict value is not equal to itself.")
376386 }
377387 if ((call == call))
378388 then call
379389 else throw("Strict value is not equal to itself.")
380390 }
381391 else throw("RFB: Some error occured, please contact the admins!")
382392 ((result ++ [StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_win"), win), StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_status"), "finish"), IntegerEntry((((("address_" + address) + "_initTx_") + initTx) + "_random"), random)]) ++ validPayment)
383393 }
384394 else throw("Strict value is not equal to itself.")
385395 }
386396 else throw("Strict value is not equal to itself.")
387397 }
388398
389399
390400 @Callable(i)
391401 func configureOracle (oracle) = if ((i.caller != this))
392402 then throw("RCU: admin only")
393403 else [StringEntry("static_oracleAddress", oracle)]
394404
395405
396406
397407 @Callable(i)
398408 func initRebirth (refererAddress) = {
399409 let pmtTurtle = i.payments[0]
400410 let pmtWaves = i.payments[1]
401411 let pmtSpice = i.payments[2]
402412 let assetId = value(pmtTurtle.assetId)
403413 let initTx = toBase58String(i.transactionId)
404414 let address = toString(i.caller)
405415 if ((pmtTurtle.amount != 1))
406416 then throw("NFT is not attached")
407417 else if (if ((pmtWaves.amount != wavesAmount))
408418 then true
409419 else (pmtWaves.assetId != unit))
410420 then throw("Wavespayment is not attached or wrong!")
411421 else if (if ((pmtSpice.amount != spiceAmount))
412422 then true
413423 else (pmtSpice.assetId != getSpiceAssetId()))
414424 then throw("SpicePayment is not attached or wrong!")
415425 else {
416426 let amountPaidByCoupons = asInt(invoke(getCouponsAddress(), "useCoupons", [eggAmount], nil))
417427 if ((amountPaidByCoupons == amountPaidByCoupons))
418428 then {
419429 let leftToPay = (eggAmount - amountPaidByCoupons)
420430 let topup = invoke(getTurtleStakingAddress(), "topUpReward", nil, [AttachedPayment(getSpiceAssetId(), pmtSpice.amount)])
421431 if ((topup == topup))
422432 then {
423433 let payment = if ((leftToPay != 0))
424434 then {
425435 let pmtEgg = i.payments[3]
426436 let feePayment = value(pmtEgg)
427437 if ((feePayment.assetId != getEggAssetId()))
428438 then throw("You need to attach EGG tokens as fee")
429439 else if ((feePayment.amount != leftToPay))
430440 then throw(("You need to attach the following amount of EGG tokens as fee: 0." + toString(leftToPay)))
431441 else {
432442 let refererRewardForPerch = fraction(leftToPay, 5, 100)
433443 let refCall = asBoolean(invoke(getRefContractAddress(), "refPayment", [refererAddress], [AttachedPayment(getEggAssetId(), refererRewardForPerch)]))
434444 if ((refCall == refCall))
435445 then {
436446 let toBurn = if (refCall)
437447 then (leftToPay - refererRewardForPerch)
438448 else leftToPay
439449 let burnCall = invoke(getBurnAddress(), "burnAttachedPayments", nil, [AttachedPayment(getEggAssetId(), toBurn)])
440450 if ((burnCall == burnCall))
441451 then leftToPay
442452 else throw("Strict value is not equal to itself.")
443453 }
444454 else throw("Strict value is not equal to itself.")
445455 }
446456 }
447457 else 0
448458 if ((payment == payment))
449459 then {
450460 let realTurtle = checkRealTurtle(assetId)
451461 if ((realTurtle == realTurtle))
452462 then [IntegerEntry((((("address_" + address) + "_initTx_") + initTx) + "_finishBlock"), (height + delayForHatching)), StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_status"), "open"), StringEntry((((("address_" + address) + "_initTx_") + initTx) + "_assetId"), toBase58String(assetId)), ScriptTransfer(getFeeAggregator(), pmtWaves.amount, unit)]
453463 else throw("Strict value is not equal to itself.")
454464 }
455465 else throw("Strict value is not equal to itself.")
456466 }
457467 else throw("Strict value is not equal to itself.")
458468 }
459469 else throw("Strict value is not equal to itself.")
460470 }
461471 }
462472
463473
464474
465475 @Callable(i)
466476 func finishRebirth (initTx) = finishRebirthInternal(initTx, toString(i.caller), i.payments[0], false)
467477
468478
469479
470480 @Callable(i)
471481 func finishRebirthDouble (initTx) = if (!(if ((size(i.payments) == 2))
472482 then (i.payments[0].amount == 1)
473483 else false))
474484 then throw("Invalid payment")
475485 else {
476486 let assetId = value(i.payments[0].assetId)
477487 let boosterType = asString(invoke(getItemsAddress(), "checkArtefactDetails", [toBase58String(assetId)], nil))
478488 if ((boosterType == boosterType))
479489 then if ((boosterType == "ART-GIFT_DOUBL"))
480490 then ([Burn(assetId, 1)] ++ finishRebirthInternal(initTx, toString(i.caller), i.payments[1], true))
481491 else throw("Error! Wrong item attached to double rewards!")
482492 else throw("Strict value is not equal to itself.")
483493 }
484494
485495

github/deemru/w8io/3ef1775 
71.11 ms