tx · BLbeS5hHnDSzBYHthNCAvRnD7WUageTojA7CyK19Y6cE

3Mw8EHDvHCbzm6VE777G6EJNQBEe6CeS335:  -0.01900000 Waves

2024.11.11 22:14 [3367194] smart account 3Mw8EHDvHCbzm6VE777G6EJNQBEe6CeS335 > SELF 0.00000000 Waves

{ "type": 13, "id": "BLbeS5hHnDSzBYHthNCAvRnD7WUageTojA7CyK19Y6cE", "fee": 1900000, "feeAssetId": null, "timestamp": 1731352485834, "version": 2, "chainId": 84, "sender": "3Mw8EHDvHCbzm6VE777G6EJNQBEe6CeS335", "senderPublicKey": "4f2Ggz6CqZhqr3FaW8dzR6KoddCudvULpuUfh7ew3Yne", "proofs": [ "3y9ATPrKQ3A1aJ8pC1pVQ8Q9v6DRRnKt9E8cyi32EqSztL2ggSLbfJZNTAYLmyYu2VdbgPcfNkToAZGrTa6EVHn6" ], "script": "base64:BgIZCAISAwoBCBIAEgMKAQgSAwoBCBIECgIICCoBFHRyeUdldFN0cmluZ0V4dGVybmFsAgdhZGRyZXNzA2tleQQHJG1hdGNoMAkAnQgCBQdhZGRyZXNzBQNrZXkDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFhBQckbWF0Y2gwBQFhAgABDXRyeUdldEludGVnZXIBA2tleQQHJG1hdGNoMAkAmggCBQR0aGlzBQNrZXkDCQABAgUHJG1hdGNoMAIDSW50BAFiBQckbWF0Y2gwBQFiAAABDHRyeUdldFN0cmluZwEDa2V5CQEUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwCBQR0aGlzBQNrZXkBBWFzSW50AQV2YWx1ZQQHJG1hdGNoMAUFdmFsdWUDCQABAgUHJG1hdGNoMAIDSW50BANpbnQFByRtYXRjaDAFA2ludAMJAAECBQckbWF0Y2gwAgZTdHJpbmcEBnN0cmluZwUHJG1hdGNoMAkAAgEJAKwCAgIpUkFJOiB3cm9uZyB0eXBlLCBleHBlY3RlZDogSW50LCBidXQgZ290OiAFBnN0cmluZwkAAgECHlJBSTogd3JvbmcgdHlwZSwgZXhwZWN0ZWQ6IEludAEJYXNCb29sZWFuAQV2YWx1ZQQHJG1hdGNoMAUFdmFsdWUDCQABAgUHJG1hdGNoMAIHQm9vbGVhbgQHYm9vbGVhbgUHJG1hdGNoMAUHYm9vbGVhbgkAAgECIkZBQjogd3JvbmcgdHlwZSwgZXhwZWN0ZWQ6IEJvb2xlYW4BB2dldEJvb2wBA2tleQQHJG1hdGNoMAkAmwgCBQR0aGlzBQNrZXkDCQABAgUHJG1hdGNoMAIHQm9vbGVhbgQBYgUHJG1hdGNoMAUBYgcBCGFzU3RyaW5nAQV2YWx1ZQQHJG1hdGNoMAUFdmFsdWUDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFzBQckbWF0Y2gwBQFzAwkAAQIFByRtYXRjaDACA0ludAQBcwUHJG1hdGNoMAkAAgECJndyb25nIHR5cGUsIGV4cGVjdGVkOiBTdHJpbmcsIGdvdDogSW50AwkAAQIFByRtYXRjaDACBFVuaXQEAXMFByRtYXRjaDAJAAIBAid3cm9uZyB0eXBlLCBleHBlY3RlZDogU3RyaW5nLCBnb3Q6IFVuaXQJAAIBAhx3cm9uZyB0eXBlLCBleHBlY3RlZDogU3RyaW5nAQlpc1Rlc3RFbnYACQEHZ2V0Qm9vbAECB1RFU1RFTlYBF3N0YXRpY0tleV9vcmFjbGVBZGRyZXNzAAIUc3RhdGljX29yYWNsZUFkZHJlc3MBEnN0YXRpY0tleV9leHRyYUZlZQACD3N0YXRpY19leHRyYUZlZQEXc3RhdGljS2V5X2ZlZUFnZ3JlZ2F0b3IAAhRzdGF0aWNfZmVlQWdncmVnYXRvcgEgc3RhdGljS2V5X2NhbmluZUluY3ViYXRvckFkZHJlc3MAAh1zdGF0aWNfY2FuaW5lSW5jdWJhdG9yQWRkcmVzcwEec3RhdGljS2V5X2NhbmluZUJyZWVkZXJBZGRyZXNzAAIbc3RhdGljX2NhbmluZUJyZWVkZXJBZGRyZXNzARhzdGF0aWNLZXlfY291cG9uc0FkZHJlc3MAAhVzdGF0aWNfY291cG9uc0FkZHJlc3MBHnN0YXRpY0tleV9jYW5pbmVTdGFraW5nQWRkcmVzcwACG3N0YXRpY19jYW5pbmVTdGFraW5nQWRkcmVzcwEcc3RhdGljS2V5X2R1Y2tTdGFraW5nQWRkcmVzcwACGHN0YXRpY19mYXJtaW5nQWRkcmVzc05ldwEec3RhdGljS2V5X2R1Y2tJbmN1YmF0b3JBZGRyZXNzAAIXc3RhdGljX2luY3ViYXRvckFkZHJlc3MBFnN0YXRpY0tleV9pdGVtc0FkZHJlc3MAAhNzdGF0aWNfaXRlbXNBZGRyZXNzASFzdGF0aWNLZXlfY2FuaW5lV2F2ZXNSZWJpcnRoUHJpY2UAAh5zdGF0aWNfY2FuaW5lV2F2ZXNSZWJpcnRoUHJpY2UBIHN0YXRpY0tleV90dXJ0bGVJbmN1YmF0b3JBZGRyZXNzAAIdc3RhdGljX3R1cnRsZUluY3ViYXRvckFkZHJlc3MBGXN0YXRpY0tleV9iYWJ5RHVja0FkZHJlc3MAAhZzdGF0aWNfYmFieUR1Y2tBZGRyZXNzAQlnZXRPcmFjbGUACQEHQWRkcmVzcwEJANkEAQkBDHRyeUdldFN0cmluZwEJARdzdGF0aWNLZXlfb3JhY2xlQWRkcmVzcwABEGdldEZlZUFnZ3JlZ2F0b3IACQEHQWRkcmVzcwEJANkEAQkBFHRyeUdldFN0cmluZ0V4dGVybmFsAgkBCWdldE9yYWNsZQAJARdzdGF0aWNLZXlfZmVlQWdncmVnYXRvcgABF2dldENhbmluZUJyZWVkZXJBZGRyZXNzAAkBB0FkZHJlc3MBCQDZBAEJARR0cnlHZXRTdHJpbmdFeHRlcm5hbAIJAQlnZXRPcmFjbGUACQEec3RhdGljS2V5X2NhbmluZUJyZWVkZXJBZGRyZXNzAAEZZ2V0Q2FuaW5lSW5jdWJhdG9yQWRkcmVzcwAJAQdBZGRyZXNzAQkA2QQBCQEUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwCCQEJZ2V0T3JhY2xlAAkBIHN0YXRpY0tleV9jYW5pbmVJbmN1YmF0b3JBZGRyZXNzAAERZ2V0Q291cG9uc0FkZHJlc3MACQEHQWRkcmVzcwEJANkEAQkBFHRyeUdldFN0cmluZ0V4dGVybmFsAgkBCWdldE9yYWNsZQAJARhzdGF0aWNLZXlfY291cG9uc0FkZHJlc3MAARdnZXRDYW5pbmVTdGFraW5nQWRkcmVzcwAJAQdBZGRyZXNzAQkA2QQBCQEUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwCCQEJZ2V0T3JhY2xlAAkBHnN0YXRpY0tleV9jYW5pbmVTdGFraW5nQWRkcmVzcwABFWdldER1Y2tTdGFraW5nQWRkcmVzcwAJAQdBZGRyZXNzAQkA2QQBCQEUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwCCQEJZ2V0T3JhY2xlAAkBHHN0YXRpY0tleV9kdWNrU3Rha2luZ0FkZHJlc3MAARdnZXREdWNrSW5jdWJhdG9yQWRkcmVzcwAJAQdBZGRyZXNzAQkA2QQBCQEUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwCCQEJZ2V0T3JhY2xlAAkBHnN0YXRpY0tleV9kdWNrSW5jdWJhdG9yQWRkcmVzcwABD2dldEl0ZW1zQWRkcmVzcwAJAQdBZGRyZXNzAQkA2QQBCQEUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwCCQEJZ2V0T3JhY2xlAAkBFnN0YXRpY0tleV9pdGVtc0FkZHJlc3MAARlnZXRUdXJ0bGVJbmN1YmF0b3JBZGRyZXNzAAkBB0FkZHJlc3MBCQDZBAEJARR0cnlHZXRTdHJpbmdFeHRlcm5hbAIJAQlnZXRPcmFjbGUACQEgc3RhdGljS2V5X3R1cnRsZUluY3ViYXRvckFkZHJlc3MAARJnZXRCYWJ5RHVja0FkZHJlc3MACQEHQWRkcmVzcwEJANkEAQkBFHRyeUdldFN0cmluZ0V4dGVybmFsAgkBCWdldE9yYWNsZQAJARlzdGF0aWNLZXlfYmFieUR1Y2tBZGRyZXNzAAEVdHJ5R2V0SW50ZWdlckV4dGVybmFsAgdhZGRyZXNzA2tleQQHJG1hdGNoMAkAmggCBQdhZGRyZXNzBQNrZXkDCQABAgUHJG1hdGNoMAIDSW50BAFiBQckbWF0Y2gwBQFiCQACAQIaVFI6IFZhbHVlIG5vdCBmb3VuZCBpbiBzYyEAC3dhdmVzQW1vdW50CQEVdHJ5R2V0SW50ZWdlckV4dGVybmFsAgkBCWdldE9yYWNsZQAJASFzdGF0aWNLZXlfY2FuaW5lV2F2ZXNSZWJpcnRoUHJpY2UAABBkZWxheUZvckhhdGNoaW5nAAIBCWNoZWNrUmVhbAEHYXNzZXRJZAMDCQAAAggJAQV2YWx1ZQEJAOwHAQUHYXNzZXRJZAZpc3N1ZXIJARdnZXRDYW5pbmVCcmVlZGVyQWRkcmVzcwAGCQAAAggJAQV2YWx1ZQEJAOwHAQUHYXNzZXRJZAZpc3N1ZXIJARlnZXRDYW5pbmVJbmN1YmF0b3JBZGRyZXNzAAgJAQV2YWx1ZQEJAOwHAQUHYXNzZXRJZAZpc3N1ZXIJAAIBAg1ub3QgdmFsaWQgTkZUARZjaGVja0FkZGl0aW9uYWxQYXltZW50AQdwYXltZW50AwkBCWlzRGVmaW5lZAEIBQdwYXltZW50B2Fzc2V0SWQJAAIBAhlSQ0FQOiBQbGVhc2UgYXR0YWNoIHdhdmVzBAlmZWVBbW91bnQJARFAZXh0ck5hdGl2ZSgxMDUwKQIJAQlnZXRPcmFjbGUACQESc3RhdGljS2V5X2V4dHJhRmVlAAMJAQIhPQIIBQdwYXltZW50BmFtb3VudAUJZmVlQW1vdW50CQACAQkArAICCQCsAgICHFJDQVA6IFBsZWFzZSBhdHRhY2ggZXhhY3RseSAJAKQDAQUJZmVlQW1vdW50AhMgYW1vdW50IG9mIHdhdmVsZXRzCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJARBnZXRGZWVBZ2dyZWdhdG9yAAUJZmVlQW1vdW50BQR1bml0BQNuaWwBD2dldFJhbmRvbU51bWJlcgQHb3B0aW9ucwR0eElkFGhhdGNoaW5nRmluaXNoSGVpZ2h0Bm9mZnNldAQPcmFuZG9tU2VlZEJsb2NrCQEFdmFsdWUBCQDtBwEJAGUCBRRoYXRjaGluZ0ZpbmlzaEhlaWdodAABBApyYW5kb21IYXNoCQD3AwEJAMsBAgUEdHhJZAkBBXZhbHVlAQgFD3JhbmRvbVNlZWRCbG9jawN2cmYJAGoCCQCyCQIFCnJhbmRvbUhhc2gJAGgCBQZvZmZzZXQACAUHb3B0aW9ucwENdHJ5R2V0Qm9vbGVhbgEDa2V5BAckbWF0Y2gwCQCgCAEFA2tleQMJAAECBQckbWF0Y2gwAgdCb29sZWFuBAFiBQckbWF0Y2gwBQFiBwEMZ2V0UmFuZG9tV2luAwJ0eAxmaW5pc2hIZWlnaHQNYmxhY2tsaXN0Q29kZQQNamFja3BvdFJhbmRvbQkBD2dldFJhbmRvbU51bWJlcgQAyAEFAnR4BQxmaW5pc2hIZWlnaHQAAQMJAAACBQ1qYWNrcG90UmFuZG9tAAEJAJQKAgUNamFja3BvdFJhbmRvbQIHamFja3BvdAQBbgkBD2dldFJhbmRvbU51bWJlcgQA6AcFAnR4BQxmaW5pc2hIZWlnaHQAAAQGcmVzdWx0AwMJAGYCAMgBBQFuCQECIT0CBQ1ibGFja2xpc3RDb2RlAglkb2NraW5nX0EHAglkb2NraW5nX0EDAwkAZgIAkAMFAW4JAQIhPQIFDWJsYWNrbGlzdENvZGUCCWRvY2tpbmdfQgcCCWRvY2tpbmdfQgMDCQBmAgDYBAUBbgkBAiE9AgUNYmxhY2tsaXN0Q29kZQIJZG9ja2luZ19DBwIJZG9ja2luZ19DAwMJAGYCAKAGBQFuCQECIT0CBQ1ibGFja2xpc3RDb2RlAhFpdGVtIUFSVC1GUkVFR0VORQcCEWl0ZW0hQVJULUZSRUVHRU5FAhBpdGVtIUFSVC1GSVhHRU5FCQCUCgIFAW4FBnJlc3VsdAEPZ2V0UmFuZG9tUmV0dXJuAgJ0eAxmaW5pc2hIZWlnaHQEAW4JAQ9nZXRSYW5kb21OdW1iZXIEAAIFAnR4BQxmaW5pc2hIZWlnaHQAAQMJAAACBQFuAAAGBwEVZmluaXNoUmViaXJ0aEludGVybmFsBgZpbml0VHgHYWRkcmVzcxFhZGRpdGlvbmFsUGF5bWVudAZkb3VibGUNYmxhY2tsaXN0Q29kZQZyZXNjdWUEC2ZpbmlzaEJsb2NrCQENdHJ5R2V0SW50ZWdlcgEJAKwCAgkArAICCQCsAgIJAKwCAgIIYWRkcmVzc18FB2FkZHJlc3MCCF9pbml0VHhfBQZpbml0VHgCDF9maW5pc2hCbG9jawQGc3RhdHVzCQEMdHJ5R2V0U3RyaW5nAQkArAICCQCsAgIJAKwCAgkArAICAghhZGRyZXNzXwUHYWRkcmVzcwIIX2luaXRUeF8FBmluaXRUeAIHX3N0YXR1cwQMdmFsaWRQYXltZW50CQEWY2hlY2tBZGRpdGlvbmFsUGF5bWVudAEFEWFkZGl0aW9uYWxQYXltZW50AwkAAAIFDHZhbGlkUGF5bWVudAUMdmFsaWRQYXltZW50AwkBAiE9AgUGc3RhdHVzAgRvcGVuCQACAQIfcmViaXJ0aCBpcyBmaW5pc2hlZCBvciBub3Qgb3BlbgMJAGYCBQtmaW5pc2hCbG9jawUGaGVpZ2h0CQACAQIeeW91IGNhbm5vdCBmaW5pc2ggcmViaXJ0aCwgeWV0BAZvdXRwdXQJAQxnZXRSYW5kb21XaW4DCQDZBAEFBmluaXRUeAULZmluaXNoQmxvY2sFDWJsYWNrbGlzdENvZGUEA3dpbggFBm91dHB1dAJfMgQGcmFuZG9tCAUGb3V0cHV0Al8xBAR0eElkBQZpbml0VHgEBnJlc3VsdAMJAQIhPQIJALMJAgUDd2luAgdkb2NraW5nBQR1bml0BAVjb2xvcgkAsgICBQN3aW4AAQQEY2FsbAMJAQEhAQUGZG91YmxlBAVmaXJzdAkA/AcECQEXZ2V0Q2FuaW5lU3Rha2luZ0FkZHJlc3MAAgxhZGRGcmVlUGVyY2gJAMwIAgUHYWRkcmVzcwkAzAgCBQVjb2xvcgkAzAgCAAEFA25pbAUDbmlsAwkAAAIFBWZpcnN0BQVmaXJzdAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICCQCsAgICCGFkZHJlc3NfBQdhZGRyZXNzAghfaW5pdFR4XwUGaW5pdFR4AgdfcmVzdWx0CQEIYXNTdHJpbmcBBQVmaXJzdAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuBAVmaXJzdAkA/AcECQEXZ2V0Q2FuaW5lU3Rha2luZ0FkZHJlc3MAAgxhZGRGcmVlUGVyY2gJAMwIAgUHYWRkcmVzcwkAzAgCBQVjb2xvcgkAzAgCAAIFA25pbAUDbmlsAwkAAAIFBWZpcnN0BQVmaXJzdAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICCQCsAgICCGFkZHJlc3NfBQdhZGRyZXNzAghfaW5pdFR4XwUGaW5pdFR4AgdfcmVzdWx0CQEIYXNTdHJpbmcBBQVmaXJzdAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICCQCsAgICCGFkZHJlc3NfBQdhZGRyZXNzAghfaW5pdFR4XwUGaW5pdFR4AghfcmVzdWx0MQkBCGFzU3RyaW5nAQUFZmlyc3QJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkArAICAghhZGRyZXNzXwUHYWRkcmVzcwIIX2luaXRUeF8FBmluaXRUeAIFX3dpbjEFA3dpbgUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAwkAAAIFBGNhbGwFBGNhbGwFBGNhbGwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4DCQAAAgUDd2luAgdqYWNrcG90BARjYWxsCQD8BwQJARlnZXRDYW5pbmVJbmN1YmF0b3JBZGRyZXNzAAIMaXNzdWVKYWNrcG90CQDMCAIFB2FkZHJlc3MJAMwIAgUEdHhJZAkAzAgCAghXV1dXSFdURgUDbmlsBQNuaWwDCQAAAgUEY2FsbAUEY2FsbAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICCQCsAgICCGFkZHJlc3NfBQdhZGRyZXNzAghfaW5pdFR4XwUGaW5pdFR4AgdfcmVzdWx0CQEIYXNTdHJpbmcBBQRjYWxsBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4DCQAAAgUDd2luAglpbmN1YmF0b3IEBGNhbGwDCQEBIQEFBmRvdWJsZQQFZmlyc3QJAPwHBAkBGWdldENhbmluZUluY3ViYXRvckFkZHJlc3MAAglpc3N1ZUZyZWUJAMwIAgUHYWRkcmVzcwkAzAgCBQR0eElkBQNuaWwFA25pbAMJAAACBQVmaXJzdAUFZmlyc3QJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkArAICAghhZGRyZXNzXwUHYWRkcmVzcwIIX2luaXRUeF8FBmluaXRUeAIHX3Jlc3VsdAkBCGFzU3RyaW5nAQUFZmlyc3QFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgQFZmlyc3QJAPwHBAkBGWdldENhbmluZUluY3ViYXRvckFkZHJlc3MAAglpc3N1ZUZyZWUJAMwIAgUHYWRkcmVzcwkAzAgCBQR0eElkBQNuaWwFA25pbAMJAAACBQVmaXJzdAUFZmlyc3QEBnNlY29uZAkA/AcECQEZZ2V0VHVydGxlSW5jdWJhdG9yQWRkcmVzcwACD2lzc3VlRnJlZVR1cnRsZQkAzAgCBQdhZGRyZXNzCQDMCAIFBHR4SWQFA25pbAUDbmlsAwkAAAIFBnNlY29uZAUGc2Vjb25kCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIJAKwCAgIIYWRkcmVzc18FB2FkZHJlc3MCCF9pbml0VHhfBQZpbml0VHgCB19yZXN1bHQJAQhhc1N0cmluZwEFBWZpcnN0CQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIJAKwCAgIIYWRkcmVzc18FB2FkZHJlc3MCCF9pbml0VHhfBQZpbml0VHgCCF9yZXN1bHQxCQEIYXNTdHJpbmcBBQZzZWNvbmQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkArAICAghhZGRyZXNzXwUHYWRkcmVzcwIIX2luaXRUeF8FBmluaXRUeAIFX3dpbjECCWluY3ViYXRvcgUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAwkAAAIFBGNhbGwFBGNhbGwFBGNhbGwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4DCQECIT0CCQCzCQIFA3dpbgIIZHVja2xpbmcFBHVuaXQEBWxldmVsCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgkAtQkCBQN3aW4CAV8AAQQKbGV2ZWxGaW5hbAMFBmRvdWJsZQkAaAIAAgUFbGV2ZWwFBWxldmVsBARjYWxsCQD8BwQJARJnZXRCYWJ5RHVja0FkZHJlc3MAAhFpc3N1ZUZyZWVEdWNrbGluZwkAzAgCBQdhZGRyZXNzCQDMCAIFBHR4SWQJAMwIAgUKbGV2ZWxGaW5hbAUDbmlsBQNuaWwDCQAAAgUEY2FsbAUEY2FsbAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICCQCsAgICCGFkZHJlc3NfBQdhZGRyZXNzAghfaW5pdFR4XwUGaW5pdFR4AgdfcmVzdWx0CQEIYXNTdHJpbmcBBQRjYWxsBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4DCQAAAgUDd2luAg50cnRsX2luY3ViYXRvcgQEY2FsbAMJAQEhAQUGZG91YmxlBAVmaXJzdAkA/AcECQEZZ2V0VHVydGxlSW5jdWJhdG9yQWRkcmVzcwACD2lzc3VlRnJlZVR1cnRsZQkAzAgCBQdhZGRyZXNzCQDMCAIFBHR4SWQFA25pbAUDbmlsAwkAAAIFBWZpcnN0BQVmaXJzdAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICCQCsAgICCGFkZHJlc3NfBQdhZGRyZXNzAghfaW5pdFR4XwUGaW5pdFR4AgdfcmVzdWx0CQEIYXNTdHJpbmcBBQVmaXJzdAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuBAVmaXJzdAkA/AcECQEZZ2V0VHVydGxlSW5jdWJhdG9yQWRkcmVzcwACD2lzc3VlRnJlZVR1cnRsZQkAzAgCBQdhZGRyZXNzCQDMCAIFBHR4SWQFA25pbAUDbmlsAwkAAAIFBWZpcnN0BQVmaXJzdAQGc2Vjb25kCQD8BwQJARlnZXRDYW5pbmVJbmN1YmF0b3JBZGRyZXNzAAIJaXNzdWVGcmVlCQDMCAIFB2FkZHJlc3MJAMwIAgUEdHhJZAUDbmlsBQNuaWwDCQAAAgUGc2Vjb25kBQZzZWNvbmQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkArAICAghhZGRyZXNzXwUHYWRkcmVzcwIIX2luaXRUeF8FBmluaXRUeAIHX3Jlc3VsdAkBCGFzU3RyaW5nAQUFZmlyc3QJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkArAICAghhZGRyZXNzXwUHYWRkcmVzcwIIX2luaXRUeF8FBmluaXRUeAIIX3Jlc3VsdDEJAQhhc1N0cmluZwEFBnNlY29uZAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICCQCsAgICCGFkZHJlc3NfBQdhZGRyZXNzAghfaW5pdFR4XwUGaW5pdFR4AgVfd2luMQIOdHJ0bF9pbmN1YmF0b3IFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgMJAAACBQRjYWxsBQRjYWxsBQRjYWxsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAwkBAiE9AgkAswkCBQN3aW4CBGl0ZW0FBHVuaXQECGl0ZW1OYW1lCQCRAwIJALUJAgUDd2luAgEhAAEEBGNhbGwDCQEBIQEFBmRvdWJsZQQFZmlyc3QJAPwHBAkBD2dldEl0ZW1zQWRkcmVzcwACEmlzc3VlQXJ0ZWZhY3RJbmRleAkAzAgCBQhpdGVtTmFtZQkAzAgCBQdhZGRyZXNzCQDMCAIAAAUDbmlsBQNuaWwDCQAAAgUFZmlyc3QFBWZpcnN0CQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIJAKwCAgIIYWRkcmVzc18FB2FkZHJlc3MCCF9pbml0VHhfBQZpbml0VHgCB19yZXN1bHQJAQhhc1N0cmluZwEFBWZpcnN0BQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4EBWZpcnN0CQD8BwQJAQ9nZXRJdGVtc0FkZHJlc3MAAhJpc3N1ZUFydGVmYWN0SW5kZXgJAMwIAgUIaXRlbU5hbWUJAMwIAgUHYWRkcmVzcwkAzAgCAAAFA25pbAUDbmlsAwkAAAIFBWZpcnN0BQVmaXJzdAQGc2Vjb25kCQD8BwQJAQ9nZXRJdGVtc0FkZHJlc3MAAhJpc3N1ZUFydGVmYWN0SW5kZXgJAMwIAgUIaXRlbU5hbWUJAMwIAgUHYWRkcmVzcwkAzAgCAAEFA25pbAUDbmlsAwkAAAIFBnNlY29uZAUGc2Vjb25kCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIJAKwCAgIIYWRkcmVzc18FB2FkZHJlc3MCCF9pbml0VHhfBQZpbml0VHgCB19yZXN1bHQJAQhhc1N0cmluZwEFBWZpcnN0CQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIJAKwCAgIIYWRkcmVzc18FB2FkZHJlc3MCCF9pbml0VHhfBQZpbml0VHgCCF9yZXN1bHQxCQEIYXNTdHJpbmcBBQZzZWNvbmQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkArAICAghhZGRyZXNzXwUHYWRkcmVzcwIIX2luaXRUeF8FBmluaXRUeAIFX3dpbjEFA3dpbgUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAwkAAAIFBGNhbGwFBGNhbGwFBGNhbGwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBCQCsAgICNFJGQjogU29tZSBlcnJvciBvY2N1cmVkLCBwbGVhc2UgY29udGFjdCB0aGUgYWRtaW5zISAFA3dpbgMJAAACBQZyZXN1bHQFBnJlc3VsdAQOcmV0dXJuVG9TZW5kZXIDBQZyZXNjdWUJAQ9nZXRSYW5kb21SZXR1cm4CCQDZBAEFBmluaXRUeAULZmluaXNoQmxvY2sHBA1yZXR1cm5QYXlsb2FkAwUOcmV0dXJuVG9TZW5kZXIEB2Fzc2V0SWQJANkEAQkBEUBleHRyTmF0aXZlKDEwNTgpAQkArAICCQCsAgIJAKwCAgkArAICAghhZGRyZXNzXwUHYWRkcmVzcwIIX2luaXRUeF8FBmluaXRUeAIIX2Fzc2V0SWQEBmlzc3VlcgkBCWNoZWNrUmVhbAEFB2Fzc2V0SWQEA2dlbgkBCGFzU3RyaW5nAQkA/AcECQEXZ2V0Q2FuaW5lQnJlZWRlckFkZHJlc3MAAg5nZXRHZW5Gcm9tTmFtZQkAzAgCCAkBBXZhbHVlAQkA7AcBBQdhc3NldElkBG5hbWUFA25pbAUDbmlsAwkAAAIFA2dlbgUDZ2VuBARjYWxsCQD8BwQFBmlzc3VlcgIOaW5jcmVhc2VSYXJpdHkJAMwIAgkA2AQBBQdhc3NldElkCQDMCAIFA2dlbgUDbmlsBQNuaWwDCQAAAgUEY2FsbAUEY2FsbAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQERQGV4dHJOYXRpdmUoMTA2MikBBQdhZGRyZXNzAAEFB2Fzc2V0SWQFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgUDbmlsCQDOCAIJAM4IAgkAzggCBQZyZXN1bHQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkArAICAghhZGRyZXNzXwUHYWRkcmVzcwIIX2luaXRUeF8FBmluaXRUeAIEX3dpbgUDd2luCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIJAKwCAgIIYWRkcmVzc18FB2FkZHJlc3MCCF9pbml0VHhfBQZpbml0VHgCB19zdGF0dXMCBmZpbmlzaAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICCQCsAgIJAKwCAgkArAICAghhZGRyZXNzXwUHYWRkcmVzcwIIX2luaXRUeF8FBmluaXRUeAIHX3JhbmRvbQUGcmFuZG9tBQNuaWwFDHZhbGlkUGF5bWVudAUNcmV0dXJuUGF5bG9hZAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgUBaQEPY29uZmlndXJlT3JhY2xlAQZvcmFjbGUDCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAg9SQ1U6IGFkbWluIG9ubHkJAMwIAgkBC1N0cmluZ0VudHJ5AgIUc3RhdGljX29yYWNsZUFkZHJlc3MFBm9yYWNsZQUDbmlsAWkBC2luaXRSZWJpcnRoAAQJcG10Q2FuaW5lCQCRAwIIBQFpCHBheW1lbnRzAAAECHBtdFdhdmVzCQCRAwIIBQFpCHBheW1lbnRzAAEEB2Fzc2V0SWQJAQV2YWx1ZQEIBQlwbXRDYW5pbmUHYXNzZXRJZAQGaW5pdFR4CQDYBAEIBQFpDXRyYW5zYWN0aW9uSWQEB2FkZHJlc3MJAKUIAQgFAWkGY2FsbGVyAwkBAiE9AggFCXBtdENhbmluZQZhbW91bnQAAQkAAgECE05GVCBpcyBub3QgYXR0YWNoZWQDAwkBAiE9AggFCHBtdFdhdmVzBmFtb3VudAULd2F2ZXNBbW91bnQGCQECIT0CCAUIcG10V2F2ZXMHYXNzZXRJZAUEdW5pdAkAAgECJldhdmVzcGF5bWVudCBpcyBub3QgYXR0YWNoZWQgb3Igd3JvbmchBBBzZW5kVG9BZ2dyZUdhdG9yCQBpAggFCHBtdFdhdmVzBmFtb3VudAAEBAV0b3B1cAkAZQIIBQhwbXRXYXZlcwZhbW91bnQFEHNlbmRUb0FnZ3JlR2F0b3IEB2FkZE1vcmUJAPwHBAkBF2dldENhbmluZVN0YWtpbmdBZGRyZXNzAAIUYWRkV2F2ZXNBbmRTdGFrZU1vcmUFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUEdW5pdAUFdG9wdXAFA25pbAMJAAACBQdhZGRNb3JlBQdhZGRNb3JlBAZpc3N1ZXIJAQljaGVja1JlYWwBBQdhc3NldElkBANnZW4JAQhhc1N0cmluZwEJAPwHBAkBF2dldENhbmluZUJyZWVkZXJBZGRyZXNzAAIOZ2V0R2VuRnJvbU5hbWUJAMwIAggJAQV2YWx1ZQEJAOwHAQUHYXNzZXRJZARuYW1lBQNuaWwFA25pbAMJAAACBQNnZW4FA2dlbgQEY2FsbAkA/AcEBQZpc3N1ZXICDHJlZHVjZVJhcml0eQkAzAgCCQDYBAEFB2Fzc2V0SWQJAMwIAgUDZ2VuBQNuaWwFA25pbAMJAAACBQRjYWxsBQRjYWxsCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgkArAICCQCsAgICCGFkZHJlc3NfBQdhZGRyZXNzAghfaW5pdFR4XwUGaW5pdFR4AgxfZmluaXNoQmxvY2sJAGQCBQZoZWlnaHQFEGRlbGF5Rm9ySGF0Y2hpbmcJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkArAICAghhZGRyZXNzXwUHYWRkcmVzcwIIX2luaXRUeF8FBmluaXRUeAIHX3N0YXR1cwIEb3BlbgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICCQCsAgICCGFkZHJlc3NfBQdhZGRyZXNzAghfaW5pdFR4XwUGaW5pdFR4AghfYXNzZXRJZAkA2AQBBQdhc3NldElkCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJARBnZXRGZWVBZ2dyZWdhdG9yAAUQc2VuZFRvQWdncmVHYXRvcgUEdW5pdAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBDWZpbmlzaFJlYmlydGgBBmluaXRUeAkBFWZpbmlzaFJlYmlydGhJbnRlcm5hbAYFBmluaXRUeAkApQgBCAUBaQZjYWxsZXIJAJEDAggFAWkIcGF5bWVudHMAAAcCAAcBaQETZmluaXNoUmViaXJ0aERvdWJsZQEGaW5pdFR4AwkBASEBAwkAAAIJAJADAQgFAWkIcGF5bWVudHMAAgkAAAIICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50AAEHCQACAQIPSW52YWxpZCBwYXltZW50BAdhc3NldElkCQEFdmFsdWUBCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQEC2Jvb3N0ZXJUeXBlCQEIYXNTdHJpbmcBCQD8BwQJAQ9nZXRJdGVtc0FkZHJlc3MAAhRjaGVja0FydGVmYWN0RGV0YWlscwkAzAgCCQDYBAEFB2Fzc2V0SWQFA25pbAUDbmlsAwkAAAIFC2Jvb3N0ZXJUeXBlBQtib29zdGVyVHlwZQMJAAACBQtib29zdGVyVHlwZQIOQVJULUdJRlRfRE9VQkwJAM4IAgkAzAgCCQEEQnVybgIFB2Fzc2V0SWQAAQUDbmlsCQEVZmluaXNoUmViaXJ0aEludGVybmFsBgUGaW5pdFR4CQClCAEIBQFpBmNhbGxlcgkAkQMCCAUBaQhwYXltZW50cwABBgIABwkAAgECLUVycm9yISBXcm9uZyBpdGVtIGF0dGFjaGVkIHRvIGRvdWJsZSByZXdhcmRzIQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARFmaW5pc2hSZWJpcnRoSXRlbQIGaW5pdFR4CGl0ZW1Db2RlAwMJAAACCQCQAwEIBQFpCHBheW1lbnRzAAIJAAACCAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAABBwQHYXNzZXRJZAkBBXZhbHVlAQgJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkBAtib29zdGVyVHlwZQkBCGFzU3RyaW5nAQkA/AcECQEPZ2V0SXRlbXNBZGRyZXNzAAIUY2hlY2tBcnRlZmFjdERldGFpbHMJAMwIAgkA2AQBBQdhc3NldElkBQNuaWwFA25pbAMJAAACBQtib29zdGVyVHlwZQULYm9vc3RlclR5cGUDCQAAAgULYm9vc3RlclR5cGUCC0FSVC1IV0VSQVNFCQDOCAIJAMwIAgkBBEJ1cm4CBQdhc3NldElkAAEFA25pbAkBFWZpbmlzaFJlYmlydGhJbnRlcm5hbAYFBmluaXRUeAkApQgBCAUBaQZjYWxsZXIJAJEDAggFAWkIcGF5bWVudHMAAQcFCGl0ZW1Db2RlBwMJAAACBQtib29zdGVyVHlwZQIMQVJULUhXUkVTQ1VFCQDOCAIJAMwIAgkBBEJ1cm4CBQdhc3NldElkAAEFA25pbAkBFWZpbmlzaFJlYmlydGhJbnRlcm5hbAYFBmluaXRUeAkApQgBCAUBaQZjYWxsZXIJAJEDAggFAWkIcGF5bWVudHMAAQcCAAYDCQAAAgULYm9vc3RlclR5cGUCDkFSVC1HSUZUX0RPVUJMCQDOCAIJAMwIAgkBBEJ1cm4CBQdhc3NldElkAAEFA25pbAkBFWZpbmlzaFJlYmlydGhJbnRlcm5hbAYFBmluaXRUeAkApQgBCAUBaQZjYWxsZXIJAJEDAggFAWkIcGF5bWVudHMAAQYCAAcJAAIBAhtFcnJvciEgV3JvbmcgaXRlbSBhdHRhY2hlZCAJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4DCQAAAgkAkAMBCAUBaQhwYXltZW50cwABCQEVZmluaXNoUmViaXJ0aEludGVybmFsBgUGaW5pdFR4CQClCAEIBQFpBmNhbGxlcgkAkQMCCAUBaQhwYXltZW50cwAABwIABwkAAgECEEludmFsaWQgcGF5bWVudHMBAnR4AQZ2ZXJpZnkAAwkBCWlzVGVzdEVudgAJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAIBQJ0eA9zZW5kZXJQdWJsaWNLZXkECWZpcnN0VXNlcgEgURzk/Wb/EmnS8VoUnzuy4vQ7f8HLaCeiNF5sONdX3W0ECnNlY29uZFVzZXIBIFxyDkuu8SFPZuYZRfpqorHtsTYpWV8ZzMyw4U1BiGp9BAl0aGlyZFVzZXIBIKCvkeUteUNhYTISrY65+hhZUZ0tU0k2w9Cj96hgGTtOBA9maXJzdFVzZXJTaWduZWQDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAABQlmaXJzdFVzZXIAAQMJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAEFCWZpcnN0VXNlcgABAwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAgUJZmlyc3RVc2VyAAEAAAQQc2Vjb25kVXNlclNpZ25lZAMJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAFCnNlY29uZFVzZXIAAQMJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAEFCnNlY29uZFVzZXIAAQMJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAIFCnNlY29uZFVzZXIAAQAABA90aGlyZFVzZXJTaWduZWQDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAABQl0aGlyZFVzZXIAAQMJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAEFCXRoaXJkVXNlcgABAwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAgUJdGhpcmRVc2VyAAEAAAQPc2lnbmF0dXJlc0NvdW50CQBkAgkAZAIFD2ZpcnN0VXNlclNpZ25lZAUQc2Vjb25kVXNlclNpZ25lZAUPdGhpcmRVc2VyU2lnbmVkBAckbWF0Y2gwBQJ0eAkAZwIFD3NpZ25hdHVyZXNDb3VudAACoAr5Vw==", "height": 3367194, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 9rEo2Ko8AAZ84wQDg6NR2WCmBk2UvvxmJafFsAfRGvtg Next: 7sNCiVPqP94QYCPtbLXWj45rECzLvTRjr7gf8jk4XrXL Diff:
OldNewDifferences
5353 }
5454
5555
56-func o (j) = {
56+func o (c) = {
57+ let d = getBoolean(this, c)
58+ if ($isInstanceOf(d, "Boolean"))
59+ then {
60+ let g = d
61+ g
62+ }
63+ else false
64+ }
65+
66+
67+func p (j) = {
5768 let d = j
5869 if ($isInstanceOf(d, "String"))
5970 then {
60- let p = d
61- p
71+ let q = d
72+ q
6273 }
6374 else if ($isInstanceOf(d, "Int"))
6475 then {
65- let p = d
76+ let q = d
6677 throw("wrong type, expected: String, got: Int")
6778 }
6879 else if ($isInstanceOf(d, "Unit"))
6980 then {
70- let p = d
81+ let q = d
7182 throw("wrong type, expected: String, got: Unit")
7283 }
7384 else throw("wrong type, expected: String")
7485 }
7586
7687
77-func q () = "static_oracleAddress"
88+func r () = o("TESTENV")
7889
7990
80-func r () = "static_extraFee"
91+func s () = "static_oracleAddress"
8192
8293
83-func s () = "static_feeAggregator"
94+func t () = "static_extraFee"
8495
8596
86-func t () = "static_canineIncubatorAddress"
97+func u () = "static_feeAggregator"
8798
8899
89-func u () = "static_canineBreederAddress"
100+func v () = "static_canineIncubatorAddress"
90101
91102
92-func v () = "static_couponsAddress"
103+func w () = "static_canineBreederAddress"
93104
94105
95-func w () = "static_canineStakingAddress"
106+func x () = "static_couponsAddress"
96107
97108
98-func x () = "static_farmingAddressNew"
109+func y () = "static_canineStakingAddress"
99110
100111
101-func y () = "static_incubatorAddress"
112+func z () = "static_farmingAddressNew"
102113
103114
104-func z () = "static_itemsAddress"
115+func A () = "static_incubatorAddress"
105116
106117
107-func A () = "static_canineWavesRebirthPrice"
118+func B () = "static_itemsAddress"
108119
109120
110-func B () = "static_turtleIncubatorAddress"
121+func C () = "static_canineWavesRebirthPrice"
111122
112123
113-func C () = "static_babyDuckAddress"
124+func D () = "static_turtleIncubatorAddress"
114125
115126
116-func D () = Address(fromBase58String(h(q())))
127+func E () = "static_babyDuckAddress"
117128
118129
119-func E () = Address(fromBase58String(a(D(), s())))
130+func F () = Address(fromBase58String(h(s())))
120131
121132
122-func F () = Address(fromBase58String(a(D(), u())))
133+func G () = Address(fromBase58String(a(F(), u())))
123134
124135
125-func G () = Address(fromBase58String(a(D(), t())))
136+func H () = Address(fromBase58String(a(F(), w())))
126137
127138
128-func H () = Address(fromBase58String(a(D(), v())))
139+func I () = Address(fromBase58String(a(F(), v())))
129140
130141
131-func I () = Address(fromBase58String(a(D(), w())))
142+func J () = Address(fromBase58String(a(F(), x())))
132143
133144
134-func J () = Address(fromBase58String(a(D(), x())))
145+func K () = Address(fromBase58String(a(F(), y())))
135146
136147
137-func K () = Address(fromBase58String(a(D(), y())))
148+func L () = Address(fromBase58String(a(F(), z())))
138149
139150
140-func L () = Address(fromBase58String(a(D(), z())))
151+func M () = Address(fromBase58String(a(F(), A())))
141152
142153
143-func M () = Address(fromBase58String(a(D(), B())))
154+func N () = Address(fromBase58String(a(F(), B())))
144155
145156
146-func N () = Address(fromBase58String(a(D(), C())))
157+func O () = Address(fromBase58String(a(F(), D())))
147158
148159
149-func O (b,c) = {
160+func P () = Address(fromBase58String(a(F(), E())))
161+
162+
163+func Q (b,c) = {
150164 let d = getInteger(b, c)
151165 if ($isInstanceOf(d, "Int"))
152166 then {
157171 }
158172
159173
160-let P = O(D(), A())
174+let R = Q(F(), C())
161175
162-let Q = 2
176+let S = 2
163177
164-func R (S) = if (if ((value(assetInfo(S)).issuer == F()))
178+func T (U) = if (if ((value(assetInfo(U)).issuer == H()))
165179 then true
166- else (value(assetInfo(S)).issuer == G()))
167- then value(assetInfo(S)).issuer
180+ else (value(assetInfo(U)).issuer == I()))
181+ then value(assetInfo(U)).issuer
168182 else throw("not valid NFT")
169183
170184
171-func T (U) = if (isDefined(U.assetId))
185+func V (W) = if (isDefined(W.assetId))
172186 then throw("RCAP: Please attach waves")
173187 else {
174- let V = getIntegerValue(D(), r())
175- if ((U.amount != V))
176- then throw((("RCAP: Please attach exactly " + toString(V)) + " amount of wavelets"))
177- else [ScriptTransfer(E(), V, unit)]
188+ let X = getIntegerValue(F(), t())
189+ if ((W.amount != X))
190+ then throw((("RCAP: Please attach exactly " + toString(X)) + " amount of wavelets"))
191+ else [ScriptTransfer(G(), X, unit)]
178192 }
179193
180194
181-func W (X,Y,Z,aa) = {
182- let ab = value(blockInfoByHeight((Z - 1)))
183- let ac = sha256((Y + value(ab.vrf)))
184- (toInt(ac, (aa * 8)) % X)
195+func Y (Z,aa,ab,ac) = {
196+ let ad = value(blockInfoByHeight((ab - 1)))
197+ let ae = sha256((aa + value(ad.vrf)))
198+ (toInt(ae, (ac * 8)) % Z)
185199 }
186200
187201
188-func ad (c) = {
202+func af (c) = {
189203 let d = getBoolean(c)
190204 if ($isInstanceOf(d, "Boolean"))
191205 then {
196210 }
197211
198212
199-func ae (af,ag,ah) = {
200- let ai = W(200, af, ag, 1)
201- if ((ai == 1))
202- then $Tuple2(ai, "jackpot")
213+func ag (ah,ai,aj) = {
214+ let ak = Y(200, ah, ai, 1)
215+ if ((ak == 1))
216+ then $Tuple2(ak, "jackpot")
203217 else {
204- let aj = W(1000, af, ag, 0)
205- let ak = if (if ((450 > aj))
206- then (ah != "incubator")
218+ let al = Y(1000, ah, ai, 0)
219+ let am = if (if ((200 > al))
220+ then (aj != "docking_A")
207221 else false)
208- then "incubator"
209- else "trtl_incubator"
210- $Tuple2(aj, ak)
222+ then "docking_A"
223+ else if (if ((400 > al))
224+ then (aj != "docking_B")
225+ else false)
226+ then "docking_B"
227+ else if (if ((600 > al))
228+ then (aj != "docking_C")
229+ else false)
230+ then "docking_C"
231+ else if (if ((800 > al))
232+ then (aj != "item!ART-FREEGENE")
233+ else false)
234+ then "item!ART-FREEGENE"
235+ else "item!ART-FIXGENE"
236+ $Tuple2(al, am)
211237 }
212238 }
213239
214240
215-func al (af,ag) = {
216- let aj = W(2, af, ag, 1)
217- if ((aj == 0))
241+func an (ah,ai) = {
242+ let al = Y(2, ah, ai, 1)
243+ if ((al == 0))
218244 then true
219245 else false
220246 }
221247
222248
223-func am (an,b,ao,ap,ah,aq) = {
224- let ar = f((((("address_" + b) + "_initTx_") + an) + "_finishBlock"))
225- let as = h((((("address_" + b) + "_initTx_") + an) + "_status"))
226- let at = T(ao)
227- if ((at == at))
228- then if ((as != "open"))
249+func ao (ap,b,aq,ar,aj,as) = {
250+ let at = f((((("address_" + b) + "_initTx_") + ap) + "_finishBlock"))
251+ let au = h((((("address_" + b) + "_initTx_") + ap) + "_status"))
252+ let av = V(aq)
253+ if ((av == av))
254+ then if ((au != "open"))
229255 then throw("rebirth is finished or not open")
230- else if ((ar > height))
256+ else if ((at > height))
231257 then throw("you cannot finish rebirth, yet")
232258 else {
233- let au = ae(fromBase58String(an), ar, ah)
234- let av = au._2
235- let aw = au._1
236- let Y = an
237- let ak = if ((indexOf(av, "docking") != unit))
259+ let aw = ag(fromBase58String(ap), at, aj)
260+ let ax = aw._2
261+ let ay = aw._1
262+ let aa = ap
263+ let am = if ((indexOf(ax, "docking") != unit))
238264 then {
239- let ax = takeRight(av, 1)
240- let ay = if (!(ap))
265+ let az = takeRight(ax, 1)
266+ let aA = if (!(ar))
241267 then {
242- let az = invoke(I(), "addFreePerch", [b, ax, 1], nil)
243- if ((az == az))
244- then [StringEntry((((("address_" + b) + "_initTx_") + an) + "_result"), o(az))]
268+ let aB = invoke(K(), "addFreePerch", [b, az, 1], nil)
269+ if ((aB == aB))
270+ then [StringEntry((((("address_" + b) + "_initTx_") + ap) + "_result"), p(aB))]
245271 else throw("Strict value is not equal to itself.")
246272 }
247273 else {
248- let az = invoke(I(), "addFreePerch", [b, ax, 2], nil)
249- if ((az == az))
250- then [StringEntry((((("address_" + b) + "_initTx_") + an) + "_result"), o(az)), StringEntry((((("address_" + b) + "_initTx_") + an) + "_result1"), o(az)), StringEntry((((("address_" + b) + "_initTx_") + an) + "_win1"), av)]
274+ let aB = invoke(K(), "addFreePerch", [b, az, 2], nil)
275+ if ((aB == aB))
276+ then [StringEntry((((("address_" + b) + "_initTx_") + ap) + "_result"), p(aB)), StringEntry((((("address_" + b) + "_initTx_") + ap) + "_result1"), p(aB)), StringEntry((((("address_" + b) + "_initTx_") + ap) + "_win1"), ax)]
251277 else throw("Strict value is not equal to itself.")
252278 }
253- if ((ay == ay))
254- then ay
279+ if ((aA == aA))
280+ then aA
255281 else throw("Strict value is not equal to itself.")
256282 }
257- else if ((av == "jackpot"))
283+ else if ((ax == "jackpot"))
258284 then {
259- let ay = invoke(G(), "issueJackpot", [b, Y, "WWWWHWTF"], nil)
260- if ((ay == ay))
261- then [StringEntry((((("address_" + b) + "_initTx_") + an) + "_result"), o(ay))]
285+ let aA = invoke(I(), "issueJackpot", [b, aa, "WWWWHWTF"], nil)
286+ if ((aA == aA))
287+ then [StringEntry((((("address_" + b) + "_initTx_") + ap) + "_result"), p(aA))]
262288 else throw("Strict value is not equal to itself.")
263289 }
264- else if ((av == "incubator"))
290+ else if ((ax == "incubator"))
265291 then {
266- let ay = if (!(ap))
292+ let aA = if (!(ar))
267293 then {
268- let az = invoke(G(), "issueFree", [b, Y], nil)
269- if ((az == az))
270- then [StringEntry((((("address_" + b) + "_initTx_") + an) + "_result"), o(az))]
294+ let aB = invoke(I(), "issueFree", [b, aa], nil)
295+ if ((aB == aB))
296+ then [StringEntry((((("address_" + b) + "_initTx_") + ap) + "_result"), p(aB))]
271297 else throw("Strict value is not equal to itself.")
272298 }
273299 else {
274- let az = invoke(G(), "issueFree", [b, Y], nil)
275- if ((az == az))
300+ let aB = invoke(I(), "issueFree", [b, aa], nil)
301+ if ((aB == aB))
276302 then {
277- let aA = invoke(M(), "issueFreeTurtle", [b, Y], nil)
278- if ((aA == aA))
279- then [StringEntry((((("address_" + b) + "_initTx_") + an) + "_result"), o(az)), StringEntry((((("address_" + b) + "_initTx_") + an) + "_result1"), o(aA)), StringEntry((((("address_" + b) + "_initTx_") + an) + "_win1"), "incubator")]
303+ let aC = invoke(O(), "issueFreeTurtle", [b, aa], nil)
304+ if ((aC == aC))
305+ then [StringEntry((((("address_" + b) + "_initTx_") + ap) + "_result"), p(aB)), StringEntry((((("address_" + b) + "_initTx_") + ap) + "_result1"), p(aC)), StringEntry((((("address_" + b) + "_initTx_") + ap) + "_win1"), "incubator")]
280306 else throw("Strict value is not equal to itself.")
281307 }
282308 else throw("Strict value is not equal to itself.")
283309 }
284- if ((ay == ay))
285- then ay
310+ if ((aA == aA))
311+ then aA
286312 else throw("Strict value is not equal to itself.")
287313 }
288- else if ((indexOf(av, "duckling") != unit))
314+ else if ((indexOf(ax, "duckling") != unit))
289315 then {
290- let aB = parseIntValue(split(av, "_")[1])
291- let aC = if (ap)
292- then (2 * aB)
293- else aB
294- let ay = invoke(N(), "issueFreeDuckling", [b, Y, aC], nil)
295- if ((ay == ay))
296- then [StringEntry((((("address_" + b) + "_initTx_") + an) + "_result"), o(ay))]
316+ let aD = parseIntValue(split(ax, "_")[1])
317+ let aE = if (ar)
318+ then (2 * aD)
319+ else aD
320+ let aA = invoke(P(), "issueFreeDuckling", [b, aa, aE], nil)
321+ if ((aA == aA))
322+ then [StringEntry((((("address_" + b) + "_initTx_") + ap) + "_result"), p(aA))]
297323 else throw("Strict value is not equal to itself.")
298324 }
299- else if ((av == "trtl_incubator"))
325+ else if ((ax == "trtl_incubator"))
300326 then {
301- let ay = if (!(ap))
327+ let aA = if (!(ar))
302328 then {
303- let az = invoke(M(), "issueFreeTurtle", [b, Y], nil)
304- if ((az == az))
305- then [StringEntry((((("address_" + b) + "_initTx_") + an) + "_result"), o(az))]
329+ let aB = invoke(O(), "issueFreeTurtle", [b, aa], nil)
330+ if ((aB == aB))
331+ then [StringEntry((((("address_" + b) + "_initTx_") + ap) + "_result"), p(aB))]
306332 else throw("Strict value is not equal to itself.")
307333 }
308334 else {
309- let az = invoke(M(), "issueFreeTurtle", [b, Y], nil)
310- if ((az == az))
335+ let aB = invoke(O(), "issueFreeTurtle", [b, aa], nil)
336+ if ((aB == aB))
311337 then {
312- let aA = invoke(G(), "issueFree", [b, Y], nil)
313- if ((aA == aA))
314- then [StringEntry((((("address_" + b) + "_initTx_") + an) + "_result"), o(az)), StringEntry((((("address_" + b) + "_initTx_") + an) + "_result1"), o(aA)), StringEntry((((("address_" + b) + "_initTx_") + an) + "_win1"), "trtl_incubator")]
338+ let aC = invoke(I(), "issueFree", [b, aa], nil)
339+ if ((aC == aC))
340+ then [StringEntry((((("address_" + b) + "_initTx_") + ap) + "_result"), p(aB)), StringEntry((((("address_" + b) + "_initTx_") + ap) + "_result1"), p(aC)), StringEntry((((("address_" + b) + "_initTx_") + ap) + "_win1"), "trtl_incubator")]
315341 else throw("Strict value is not equal to itself.")
316342 }
317343 else throw("Strict value is not equal to itself.")
318344 }
319- if ((ay == ay))
320- then ay
345+ if ((aA == aA))
346+ then aA
321347 else throw("Strict value is not equal to itself.")
322348 }
323- else if ((indexOf(av, "item") != unit))
349+ else if ((indexOf(ax, "item") != unit))
324350 then {
325- let aD = split(av, "!")[1]
326- let ay = if (!(ap))
351+ let aF = split(ax, "!")[1]
352+ let aA = if (!(ar))
327353 then {
328- let az = invoke(L(), "issueArtefactIndex", [aD, b, 0], nil)
329- if ((az == az))
330- then [StringEntry((((("address_" + b) + "_initTx_") + an) + "_result"), o(az))]
354+ let aB = invoke(N(), "issueArtefactIndex", [aF, b, 0], nil)
355+ if ((aB == aB))
356+ then [StringEntry((((("address_" + b) + "_initTx_") + ap) + "_result"), p(aB))]
331357 else throw("Strict value is not equal to itself.")
332358 }
333359 else {
334- let az = invoke(L(), "issueArtefactIndex", [aD, b, 0], nil)
335- if ((az == az))
360+ let aB = invoke(N(), "issueArtefactIndex", [aF, b, 0], nil)
361+ if ((aB == aB))
336362 then {
337- let aA = invoke(L(), "issueArtefactIndex", [aD, b, 1], nil)
338- if ((aA == aA))
339- then [StringEntry((((("address_" + b) + "_initTx_") + an) + "_result"), o(az)), StringEntry((((("address_" + b) + "_initTx_") + an) + "_result1"), o(aA)), StringEntry((((("address_" + b) + "_initTx_") + an) + "_win1"), av)]
363+ let aC = invoke(N(), "issueArtefactIndex", [aF, b, 1], nil)
364+ if ((aC == aC))
365+ then [StringEntry((((("address_" + b) + "_initTx_") + ap) + "_result"), p(aB)), StringEntry((((("address_" + b) + "_initTx_") + ap) + "_result1"), p(aC)), StringEntry((((("address_" + b) + "_initTx_") + ap) + "_win1"), ax)]
340366 else throw("Strict value is not equal to itself.")
341367 }
342368 else throw("Strict value is not equal to itself.")
343369 }
344- if ((ay == ay))
345- then ay
370+ if ((aA == aA))
371+ then aA
346372 else throw("Strict value is not equal to itself.")
347373 }
348- else throw(("RFB: Some error occured, please contact the admins! " + av))
349- if ((ak == ak))
374+ else throw(("RFB: Some error occured, please contact the admins! " + ax))
375+ if ((am == am))
350376 then {
351- let aE = if (aq)
352- then al(fromBase58String(an), ar)
377+ let aG = if (as)
378+ then an(fromBase58String(ap), at)
353379 else false
354- let aF = if (aE)
380+ let aH = if (aG)
355381 then {
356- let S = fromBase58String(getStringValue((((("address_" + b) + "_initTx_") + an) + "_assetId")))
357- let aG = R(S)
358- let aH = o(invoke(F(), "getGenFromName", [value(assetInfo(S)).name], nil))
359- if ((aH == aH))
382+ let U = fromBase58String(getStringValue((((("address_" + b) + "_initTx_") + ap) + "_assetId")))
383+ let aI = T(U)
384+ let aJ = p(invoke(H(), "getGenFromName", [value(assetInfo(U)).name], nil))
385+ if ((aJ == aJ))
360386 then {
361- let ay = invoke(aG, "increaseRarity", [toBase58String(S), aH], nil)
362- if ((ay == ay))
363- then [ScriptTransfer(addressFromStringValue(b), 1, S)]
387+ let aA = invoke(aI, "increaseRarity", [toBase58String(U), aJ], nil)
388+ if ((aA == aA))
389+ then [ScriptTransfer(addressFromStringValue(b), 1, U)]
364390 else throw("Strict value is not equal to itself.")
365391 }
366392 else throw("Strict value is not equal to itself.")
367393 }
368394 else nil
369- (((ak ++ [StringEntry((((("address_" + b) + "_initTx_") + an) + "_win"), av), StringEntry((((("address_" + b) + "_initTx_") + an) + "_status"), "finish"), IntegerEntry((((("address_" + b) + "_initTx_") + an) + "_random"), aw)]) ++ at) ++ aF)
395+ (((am ++ [StringEntry((((("address_" + b) + "_initTx_") + ap) + "_win"), ax), StringEntry((((("address_" + b) + "_initTx_") + ap) + "_status"), "finish"), IntegerEntry((((("address_" + b) + "_initTx_") + ap) + "_random"), ay)]) ++ av) ++ aH)
370396 }
371397 else throw("Strict value is not equal to itself.")
372398 }
374400 }
375401
376402
377-@Callable(aI)
378-func configureOracle (aJ) = if ((aI.caller != this))
403+@Callable(aK)
404+func configureOracle (aL) = if ((aK.caller != this))
379405 then throw("RCU: admin only")
380- else [StringEntry("static_oracleAddress", aJ)]
406+ else [StringEntry("static_oracleAddress", aL)]
381407
382408
383409
384-@Callable(aI)
410+@Callable(aK)
385411 func initRebirth () = {
386- let aK = aI.payments[0]
387- let aL = aI.payments[1]
388- let S = value(aK.assetId)
389- let an = toBase58String(aI.transactionId)
390- let b = toString(aI.caller)
391- if ((aK.amount != 1))
412+ let aM = aK.payments[0]
413+ let aN = aK.payments[1]
414+ let U = value(aM.assetId)
415+ let ap = toBase58String(aK.transactionId)
416+ let b = toString(aK.caller)
417+ if ((aM.amount != 1))
392418 then throw("NFT is not attached")
393- else if (if ((aL.amount != P))
419+ else if (if ((aN.amount != R))
394420 then true
395- else (aL.assetId != unit))
421+ else (aN.assetId != unit))
396422 then throw("Wavespayment is not attached or wrong!")
397423 else {
398- let aM = (aL.amount / 4)
399- let aN = (aL.amount - aM)
400- let aO = invoke(I(), "addWavesAndStakeMore", nil, [AttachedPayment(unit, aN)])
401- if ((aO == aO))
424+ let aO = (aN.amount / 4)
425+ let aP = (aN.amount - aO)
426+ let aQ = invoke(K(), "addWavesAndStakeMore", nil, [AttachedPayment(unit, aP)])
427+ if ((aQ == aQ))
402428 then {
403- let aG = R(S)
404- let aH = o(invoke(F(), "getGenFromName", [value(assetInfo(S)).name], nil))
405- if ((aH == aH))
429+ let aI = T(U)
430+ let aJ = p(invoke(H(), "getGenFromName", [value(assetInfo(U)).name], nil))
431+ if ((aJ == aJ))
406432 then {
407- let ay = invoke(aG, "reduceRarity", [toBase58String(S), aH], nil)
408- if ((ay == ay))
409- then [IntegerEntry((((("address_" + b) + "_initTx_") + an) + "_finishBlock"), (height + Q)), StringEntry((((("address_" + b) + "_initTx_") + an) + "_status"), "open"), StringEntry((((("address_" + b) + "_initTx_") + an) + "_assetId"), toBase58String(S)), ScriptTransfer(E(), aM, unit)]
433+ let aA = invoke(aI, "reduceRarity", [toBase58String(U), aJ], nil)
434+ if ((aA == aA))
435+ then [IntegerEntry((((("address_" + b) + "_initTx_") + ap) + "_finishBlock"), (height + S)), StringEntry((((("address_" + b) + "_initTx_") + ap) + "_status"), "open"), StringEntry((((("address_" + b) + "_initTx_") + ap) + "_assetId"), toBase58String(U)), ScriptTransfer(G(), aO, unit)]
410436 else throw("Strict value is not equal to itself.")
411437 }
412438 else throw("Strict value is not equal to itself.")
417443
418444
419445
420-@Callable(aI)
421-func finishRebirth (an) = am(an, toString(aI.caller), aI.payments[0], false, "", false)
446+@Callable(aK)
447+func finishRebirth (ap) = ao(ap, toString(aK.caller), aK.payments[0], false, "", false)
422448
423449
424450
425-@Callable(aI)
426-func finishRebirthDouble (an) = if (!(if ((size(aI.payments) == 2))
427- then (aI.payments[0].amount == 1)
451+@Callable(aK)
452+func finishRebirthDouble (ap) = if (!(if ((size(aK.payments) == 2))
453+ then (aK.payments[0].amount == 1)
428454 else false))
429455 then throw("Invalid payment")
430456 else {
431- let S = value(aI.payments[0].assetId)
432- let aP = o(invoke(L(), "checkArtefactDetails", [toBase58String(S)], nil))
433- if ((aP == aP))
434- then if ((aP == "ART-GIFT_DOUBL"))
435- then ([Burn(S, 1)] ++ am(an, toString(aI.caller), aI.payments[1], true, "", false))
457+ let U = value(aK.payments[0].assetId)
458+ let aR = p(invoke(N(), "checkArtefactDetails", [toBase58String(U)], nil))
459+ if ((aR == aR))
460+ then if ((aR == "ART-GIFT_DOUBL"))
461+ then ([Burn(U, 1)] ++ ao(ap, toString(aK.caller), aK.payments[1], true, "", false))
436462 else throw("Error! Wrong item attached to double rewards!")
437463 else throw("Strict value is not equal to itself.")
438464 }
439465
440466
441467
442-@Callable(aI)
443-func finishRebirthItem (an,aQ) = if (if ((size(aI.payments) == 2))
444- then (aI.payments[0].amount == 1)
468+@Callable(aK)
469+func finishRebirthItem (ap,aS) = if (if ((size(aK.payments) == 2))
470+ then (aK.payments[0].amount == 1)
445471 else false)
446472 then {
447- let S = value(aI.payments[0].assetId)
448- let aP = o(invoke(L(), "checkArtefactDetails", [toBase58String(S)], nil))
449- if ((aP == aP))
450- then if ((aP == "ART-HWERASE"))
451- then ([Burn(S, 1)] ++ am(an, toString(aI.caller), aI.payments[1], false, aQ, false))
452- else if ((aP == "ART-HWRESCUE"))
453- then ([Burn(S, 1)] ++ am(an, toString(aI.caller), aI.payments[1], false, "", true))
454- else if ((aP == "ART-GIFT_DOUBL"))
455- then ([Burn(S, 1)] ++ am(an, toString(aI.caller), aI.payments[1], true, "", false))
473+ let U = value(aK.payments[0].assetId)
474+ let aR = p(invoke(N(), "checkArtefactDetails", [toBase58String(U)], nil))
475+ if ((aR == aR))
476+ then if ((aR == "ART-HWERASE"))
477+ then ([Burn(U, 1)] ++ ao(ap, toString(aK.caller), aK.payments[1], false, aS, false))
478+ else if ((aR == "ART-HWRESCUE"))
479+ then ([Burn(U, 1)] ++ ao(ap, toString(aK.caller), aK.payments[1], false, "", true))
480+ else if ((aR == "ART-GIFT_DOUBL"))
481+ then ([Burn(U, 1)] ++ ao(ap, toString(aK.caller), aK.payments[1], true, "", false))
456482 else throw("Error! Wrong item attached ")
457483 else throw("Strict value is not equal to itself.")
458484 }
459- else if ((size(aI.payments) == 1))
460- then am(an, toString(aI.caller), aI.payments[0], false, "", false)
485+ else if ((size(aK.payments) == 1))
486+ then ao(ap, toString(aK.caller), aK.payments[0], false, "", false)
461487 else throw("Invalid payments")
462488
489+
490+@Verifier(ah)
491+func aT () = if (r())
492+ then sigVerify(ah.bodyBytes, ah.proofs[0], ah.senderPublicKey)
493+ else {
494+ let aU = base58'6TdaXEfhnjYquvPf3yV7MFxt2CbgFmaqsvGwkKfXtKi4'
495+ let aV = base58'7DsP2WaMLocbHuUxux7pbXRjTrrZ1TFQPsi5QumS3gr8'
496+ let aW = base58'BpFWP3p3JgYrrP45xfrKzeMcWMEXoinj4FVPPkUiA8D3'
497+ let aX = if (sigVerify(ah.bodyBytes, ah.proofs[0], aU))
498+ then 1
499+ else if (sigVerify(ah.bodyBytes, ah.proofs[1], aU))
500+ then 1
501+ else if (sigVerify(ah.bodyBytes, ah.proofs[2], aU))
502+ then 1
503+ else 0
504+ let aY = if (sigVerify(ah.bodyBytes, ah.proofs[0], aV))
505+ then 1
506+ else if (sigVerify(ah.bodyBytes, ah.proofs[1], aV))
507+ then 1
508+ else if (sigVerify(ah.bodyBytes, ah.proofs[2], aV))
509+ then 1
510+ else 0
511+ let aZ = if (sigVerify(ah.bodyBytes, ah.proofs[0], aW))
512+ then 1
513+ else if (sigVerify(ah.bodyBytes, ah.proofs[1], aW))
514+ then 1
515+ else if (sigVerify(ah.bodyBytes, ah.proofs[2], aW))
516+ then 1
517+ else 0
518+ let ba = ((aX + aY) + aZ)
519+ let d = ah
520+ (ba >= 2)
521+ }
463522
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func a (b,c) = {
55 let d = getString(b, c)
66 if ($isInstanceOf(d, "String"))
77 then {
88 let e = d
99 e
1010 }
1111 else ""
1212 }
1313
1414
1515 func f (c) = {
1616 let d = getInteger(this, c)
1717 if ($isInstanceOf(d, "Int"))
1818 then {
1919 let g = d
2020 g
2121 }
2222 else 0
2323 }
2424
2525
2626 func h (c) = a(this, c)
2727
2828
2929 func i (j) = {
3030 let d = j
3131 if ($isInstanceOf(d, "Int"))
3232 then {
3333 let k = d
3434 k
3535 }
3636 else if ($isInstanceOf(d, "String"))
3737 then {
3838 let l = d
3939 throw(("RAI: wrong type, expected: Int, but got: " + l))
4040 }
4141 else throw("RAI: wrong type, expected: Int")
4242 }
4343
4444
4545 func m (j) = {
4646 let d = j
4747 if ($isInstanceOf(d, "Boolean"))
4848 then {
4949 let n = d
5050 n
5151 }
5252 else throw("FAB: wrong type, expected: Boolean")
5353 }
5454
5555
56-func o (j) = {
56+func o (c) = {
57+ let d = getBoolean(this, c)
58+ if ($isInstanceOf(d, "Boolean"))
59+ then {
60+ let g = d
61+ g
62+ }
63+ else false
64+ }
65+
66+
67+func p (j) = {
5768 let d = j
5869 if ($isInstanceOf(d, "String"))
5970 then {
60- let p = d
61- p
71+ let q = d
72+ q
6273 }
6374 else if ($isInstanceOf(d, "Int"))
6475 then {
65- let p = d
76+ let q = d
6677 throw("wrong type, expected: String, got: Int")
6778 }
6879 else if ($isInstanceOf(d, "Unit"))
6980 then {
70- let p = d
81+ let q = d
7182 throw("wrong type, expected: String, got: Unit")
7283 }
7384 else throw("wrong type, expected: String")
7485 }
7586
7687
77-func q () = "static_oracleAddress"
88+func r () = o("TESTENV")
7889
7990
80-func r () = "static_extraFee"
91+func s () = "static_oracleAddress"
8192
8293
83-func s () = "static_feeAggregator"
94+func t () = "static_extraFee"
8495
8596
86-func t () = "static_canineIncubatorAddress"
97+func u () = "static_feeAggregator"
8798
8899
89-func u () = "static_canineBreederAddress"
100+func v () = "static_canineIncubatorAddress"
90101
91102
92-func v () = "static_couponsAddress"
103+func w () = "static_canineBreederAddress"
93104
94105
95-func w () = "static_canineStakingAddress"
106+func x () = "static_couponsAddress"
96107
97108
98-func x () = "static_farmingAddressNew"
109+func y () = "static_canineStakingAddress"
99110
100111
101-func y () = "static_incubatorAddress"
112+func z () = "static_farmingAddressNew"
102113
103114
104-func z () = "static_itemsAddress"
115+func A () = "static_incubatorAddress"
105116
106117
107-func A () = "static_canineWavesRebirthPrice"
118+func B () = "static_itemsAddress"
108119
109120
110-func B () = "static_turtleIncubatorAddress"
121+func C () = "static_canineWavesRebirthPrice"
111122
112123
113-func C () = "static_babyDuckAddress"
124+func D () = "static_turtleIncubatorAddress"
114125
115126
116-func D () = Address(fromBase58String(h(q())))
127+func E () = "static_babyDuckAddress"
117128
118129
119-func E () = Address(fromBase58String(a(D(), s())))
130+func F () = Address(fromBase58String(h(s())))
120131
121132
122-func F () = Address(fromBase58String(a(D(), u())))
133+func G () = Address(fromBase58String(a(F(), u())))
123134
124135
125-func G () = Address(fromBase58String(a(D(), t())))
136+func H () = Address(fromBase58String(a(F(), w())))
126137
127138
128-func H () = Address(fromBase58String(a(D(), v())))
139+func I () = Address(fromBase58String(a(F(), v())))
129140
130141
131-func I () = Address(fromBase58String(a(D(), w())))
142+func J () = Address(fromBase58String(a(F(), x())))
132143
133144
134-func J () = Address(fromBase58String(a(D(), x())))
145+func K () = Address(fromBase58String(a(F(), y())))
135146
136147
137-func K () = Address(fromBase58String(a(D(), y())))
148+func L () = Address(fromBase58String(a(F(), z())))
138149
139150
140-func L () = Address(fromBase58String(a(D(), z())))
151+func M () = Address(fromBase58String(a(F(), A())))
141152
142153
143-func M () = Address(fromBase58String(a(D(), B())))
154+func N () = Address(fromBase58String(a(F(), B())))
144155
145156
146-func N () = Address(fromBase58String(a(D(), C())))
157+func O () = Address(fromBase58String(a(F(), D())))
147158
148159
149-func O (b,c) = {
160+func P () = Address(fromBase58String(a(F(), E())))
161+
162+
163+func Q (b,c) = {
150164 let d = getInteger(b, c)
151165 if ($isInstanceOf(d, "Int"))
152166 then {
153167 let g = d
154168 g
155169 }
156170 else throw("TR: Value not found in sc!")
157171 }
158172
159173
160-let P = O(D(), A())
174+let R = Q(F(), C())
161175
162-let Q = 2
176+let S = 2
163177
164-func R (S) = if (if ((value(assetInfo(S)).issuer == F()))
178+func T (U) = if (if ((value(assetInfo(U)).issuer == H()))
165179 then true
166- else (value(assetInfo(S)).issuer == G()))
167- then value(assetInfo(S)).issuer
180+ else (value(assetInfo(U)).issuer == I()))
181+ then value(assetInfo(U)).issuer
168182 else throw("not valid NFT")
169183
170184
171-func T (U) = if (isDefined(U.assetId))
185+func V (W) = if (isDefined(W.assetId))
172186 then throw("RCAP: Please attach waves")
173187 else {
174- let V = getIntegerValue(D(), r())
175- if ((U.amount != V))
176- then throw((("RCAP: Please attach exactly " + toString(V)) + " amount of wavelets"))
177- else [ScriptTransfer(E(), V, unit)]
188+ let X = getIntegerValue(F(), t())
189+ if ((W.amount != X))
190+ then throw((("RCAP: Please attach exactly " + toString(X)) + " amount of wavelets"))
191+ else [ScriptTransfer(G(), X, unit)]
178192 }
179193
180194
181-func W (X,Y,Z,aa) = {
182- let ab = value(blockInfoByHeight((Z - 1)))
183- let ac = sha256((Y + value(ab.vrf)))
184- (toInt(ac, (aa * 8)) % X)
195+func Y (Z,aa,ab,ac) = {
196+ let ad = value(blockInfoByHeight((ab - 1)))
197+ let ae = sha256((aa + value(ad.vrf)))
198+ (toInt(ae, (ac * 8)) % Z)
185199 }
186200
187201
188-func ad (c) = {
202+func af (c) = {
189203 let d = getBoolean(c)
190204 if ($isInstanceOf(d, "Boolean"))
191205 then {
192206 let g = d
193207 g
194208 }
195209 else false
196210 }
197211
198212
199-func ae (af,ag,ah) = {
200- let ai = W(200, af, ag, 1)
201- if ((ai == 1))
202- then $Tuple2(ai, "jackpot")
213+func ag (ah,ai,aj) = {
214+ let ak = Y(200, ah, ai, 1)
215+ if ((ak == 1))
216+ then $Tuple2(ak, "jackpot")
203217 else {
204- let aj = W(1000, af, ag, 0)
205- let ak = if (if ((450 > aj))
206- then (ah != "incubator")
218+ let al = Y(1000, ah, ai, 0)
219+ let am = if (if ((200 > al))
220+ then (aj != "docking_A")
207221 else false)
208- then "incubator"
209- else "trtl_incubator"
210- $Tuple2(aj, ak)
222+ then "docking_A"
223+ else if (if ((400 > al))
224+ then (aj != "docking_B")
225+ else false)
226+ then "docking_B"
227+ else if (if ((600 > al))
228+ then (aj != "docking_C")
229+ else false)
230+ then "docking_C"
231+ else if (if ((800 > al))
232+ then (aj != "item!ART-FREEGENE")
233+ else false)
234+ then "item!ART-FREEGENE"
235+ else "item!ART-FIXGENE"
236+ $Tuple2(al, am)
211237 }
212238 }
213239
214240
215-func al (af,ag) = {
216- let aj = W(2, af, ag, 1)
217- if ((aj == 0))
241+func an (ah,ai) = {
242+ let al = Y(2, ah, ai, 1)
243+ if ((al == 0))
218244 then true
219245 else false
220246 }
221247
222248
223-func am (an,b,ao,ap,ah,aq) = {
224- let ar = f((((("address_" + b) + "_initTx_") + an) + "_finishBlock"))
225- let as = h((((("address_" + b) + "_initTx_") + an) + "_status"))
226- let at = T(ao)
227- if ((at == at))
228- then if ((as != "open"))
249+func ao (ap,b,aq,ar,aj,as) = {
250+ let at = f((((("address_" + b) + "_initTx_") + ap) + "_finishBlock"))
251+ let au = h((((("address_" + b) + "_initTx_") + ap) + "_status"))
252+ let av = V(aq)
253+ if ((av == av))
254+ then if ((au != "open"))
229255 then throw("rebirth is finished or not open")
230- else if ((ar > height))
256+ else if ((at > height))
231257 then throw("you cannot finish rebirth, yet")
232258 else {
233- let au = ae(fromBase58String(an), ar, ah)
234- let av = au._2
235- let aw = au._1
236- let Y = an
237- let ak = if ((indexOf(av, "docking") != unit))
259+ let aw = ag(fromBase58String(ap), at, aj)
260+ let ax = aw._2
261+ let ay = aw._1
262+ let aa = ap
263+ let am = if ((indexOf(ax, "docking") != unit))
238264 then {
239- let ax = takeRight(av, 1)
240- let ay = if (!(ap))
265+ let az = takeRight(ax, 1)
266+ let aA = if (!(ar))
241267 then {
242- let az = invoke(I(), "addFreePerch", [b, ax, 1], nil)
243- if ((az == az))
244- then [StringEntry((((("address_" + b) + "_initTx_") + an) + "_result"), o(az))]
268+ let aB = invoke(K(), "addFreePerch", [b, az, 1], nil)
269+ if ((aB == aB))
270+ then [StringEntry((((("address_" + b) + "_initTx_") + ap) + "_result"), p(aB))]
245271 else throw("Strict value is not equal to itself.")
246272 }
247273 else {
248- let az = invoke(I(), "addFreePerch", [b, ax, 2], nil)
249- if ((az == az))
250- then [StringEntry((((("address_" + b) + "_initTx_") + an) + "_result"), o(az)), StringEntry((((("address_" + b) + "_initTx_") + an) + "_result1"), o(az)), StringEntry((((("address_" + b) + "_initTx_") + an) + "_win1"), av)]
274+ let aB = invoke(K(), "addFreePerch", [b, az, 2], nil)
275+ if ((aB == aB))
276+ then [StringEntry((((("address_" + b) + "_initTx_") + ap) + "_result"), p(aB)), StringEntry((((("address_" + b) + "_initTx_") + ap) + "_result1"), p(aB)), StringEntry((((("address_" + b) + "_initTx_") + ap) + "_win1"), ax)]
251277 else throw("Strict value is not equal to itself.")
252278 }
253- if ((ay == ay))
254- then ay
279+ if ((aA == aA))
280+ then aA
255281 else throw("Strict value is not equal to itself.")
256282 }
257- else if ((av == "jackpot"))
283+ else if ((ax == "jackpot"))
258284 then {
259- let ay = invoke(G(), "issueJackpot", [b, Y, "WWWWHWTF"], nil)
260- if ((ay == ay))
261- then [StringEntry((((("address_" + b) + "_initTx_") + an) + "_result"), o(ay))]
285+ let aA = invoke(I(), "issueJackpot", [b, aa, "WWWWHWTF"], nil)
286+ if ((aA == aA))
287+ then [StringEntry((((("address_" + b) + "_initTx_") + ap) + "_result"), p(aA))]
262288 else throw("Strict value is not equal to itself.")
263289 }
264- else if ((av == "incubator"))
290+ else if ((ax == "incubator"))
265291 then {
266- let ay = if (!(ap))
292+ let aA = if (!(ar))
267293 then {
268- let az = invoke(G(), "issueFree", [b, Y], nil)
269- if ((az == az))
270- then [StringEntry((((("address_" + b) + "_initTx_") + an) + "_result"), o(az))]
294+ let aB = invoke(I(), "issueFree", [b, aa], nil)
295+ if ((aB == aB))
296+ then [StringEntry((((("address_" + b) + "_initTx_") + ap) + "_result"), p(aB))]
271297 else throw("Strict value is not equal to itself.")
272298 }
273299 else {
274- let az = invoke(G(), "issueFree", [b, Y], nil)
275- if ((az == az))
300+ let aB = invoke(I(), "issueFree", [b, aa], nil)
301+ if ((aB == aB))
276302 then {
277- let aA = invoke(M(), "issueFreeTurtle", [b, Y], nil)
278- if ((aA == aA))
279- then [StringEntry((((("address_" + b) + "_initTx_") + an) + "_result"), o(az)), StringEntry((((("address_" + b) + "_initTx_") + an) + "_result1"), o(aA)), StringEntry((((("address_" + b) + "_initTx_") + an) + "_win1"), "incubator")]
303+ let aC = invoke(O(), "issueFreeTurtle", [b, aa], nil)
304+ if ((aC == aC))
305+ then [StringEntry((((("address_" + b) + "_initTx_") + ap) + "_result"), p(aB)), StringEntry((((("address_" + b) + "_initTx_") + ap) + "_result1"), p(aC)), StringEntry((((("address_" + b) + "_initTx_") + ap) + "_win1"), "incubator")]
280306 else throw("Strict value is not equal to itself.")
281307 }
282308 else throw("Strict value is not equal to itself.")
283309 }
284- if ((ay == ay))
285- then ay
310+ if ((aA == aA))
311+ then aA
286312 else throw("Strict value is not equal to itself.")
287313 }
288- else if ((indexOf(av, "duckling") != unit))
314+ else if ((indexOf(ax, "duckling") != unit))
289315 then {
290- let aB = parseIntValue(split(av, "_")[1])
291- let aC = if (ap)
292- then (2 * aB)
293- else aB
294- let ay = invoke(N(), "issueFreeDuckling", [b, Y, aC], nil)
295- if ((ay == ay))
296- then [StringEntry((((("address_" + b) + "_initTx_") + an) + "_result"), o(ay))]
316+ let aD = parseIntValue(split(ax, "_")[1])
317+ let aE = if (ar)
318+ then (2 * aD)
319+ else aD
320+ let aA = invoke(P(), "issueFreeDuckling", [b, aa, aE], nil)
321+ if ((aA == aA))
322+ then [StringEntry((((("address_" + b) + "_initTx_") + ap) + "_result"), p(aA))]
297323 else throw("Strict value is not equal to itself.")
298324 }
299- else if ((av == "trtl_incubator"))
325+ else if ((ax == "trtl_incubator"))
300326 then {
301- let ay = if (!(ap))
327+ let aA = if (!(ar))
302328 then {
303- let az = invoke(M(), "issueFreeTurtle", [b, Y], nil)
304- if ((az == az))
305- then [StringEntry((((("address_" + b) + "_initTx_") + an) + "_result"), o(az))]
329+ let aB = invoke(O(), "issueFreeTurtle", [b, aa], nil)
330+ if ((aB == aB))
331+ then [StringEntry((((("address_" + b) + "_initTx_") + ap) + "_result"), p(aB))]
306332 else throw("Strict value is not equal to itself.")
307333 }
308334 else {
309- let az = invoke(M(), "issueFreeTurtle", [b, Y], nil)
310- if ((az == az))
335+ let aB = invoke(O(), "issueFreeTurtle", [b, aa], nil)
336+ if ((aB == aB))
311337 then {
312- let aA = invoke(G(), "issueFree", [b, Y], nil)
313- if ((aA == aA))
314- then [StringEntry((((("address_" + b) + "_initTx_") + an) + "_result"), o(az)), StringEntry((((("address_" + b) + "_initTx_") + an) + "_result1"), o(aA)), StringEntry((((("address_" + b) + "_initTx_") + an) + "_win1"), "trtl_incubator")]
338+ let aC = invoke(I(), "issueFree", [b, aa], nil)
339+ if ((aC == aC))
340+ then [StringEntry((((("address_" + b) + "_initTx_") + ap) + "_result"), p(aB)), StringEntry((((("address_" + b) + "_initTx_") + ap) + "_result1"), p(aC)), StringEntry((((("address_" + b) + "_initTx_") + ap) + "_win1"), "trtl_incubator")]
315341 else throw("Strict value is not equal to itself.")
316342 }
317343 else throw("Strict value is not equal to itself.")
318344 }
319- if ((ay == ay))
320- then ay
345+ if ((aA == aA))
346+ then aA
321347 else throw("Strict value is not equal to itself.")
322348 }
323- else if ((indexOf(av, "item") != unit))
349+ else if ((indexOf(ax, "item") != unit))
324350 then {
325- let aD = split(av, "!")[1]
326- let ay = if (!(ap))
351+ let aF = split(ax, "!")[1]
352+ let aA = if (!(ar))
327353 then {
328- let az = invoke(L(), "issueArtefactIndex", [aD, b, 0], nil)
329- if ((az == az))
330- then [StringEntry((((("address_" + b) + "_initTx_") + an) + "_result"), o(az))]
354+ let aB = invoke(N(), "issueArtefactIndex", [aF, b, 0], nil)
355+ if ((aB == aB))
356+ then [StringEntry((((("address_" + b) + "_initTx_") + ap) + "_result"), p(aB))]
331357 else throw("Strict value is not equal to itself.")
332358 }
333359 else {
334- let az = invoke(L(), "issueArtefactIndex", [aD, b, 0], nil)
335- if ((az == az))
360+ let aB = invoke(N(), "issueArtefactIndex", [aF, b, 0], nil)
361+ if ((aB == aB))
336362 then {
337- let aA = invoke(L(), "issueArtefactIndex", [aD, b, 1], nil)
338- if ((aA == aA))
339- then [StringEntry((((("address_" + b) + "_initTx_") + an) + "_result"), o(az)), StringEntry((((("address_" + b) + "_initTx_") + an) + "_result1"), o(aA)), StringEntry((((("address_" + b) + "_initTx_") + an) + "_win1"), av)]
363+ let aC = invoke(N(), "issueArtefactIndex", [aF, b, 1], nil)
364+ if ((aC == aC))
365+ then [StringEntry((((("address_" + b) + "_initTx_") + ap) + "_result"), p(aB)), StringEntry((((("address_" + b) + "_initTx_") + ap) + "_result1"), p(aC)), StringEntry((((("address_" + b) + "_initTx_") + ap) + "_win1"), ax)]
340366 else throw("Strict value is not equal to itself.")
341367 }
342368 else throw("Strict value is not equal to itself.")
343369 }
344- if ((ay == ay))
345- then ay
370+ if ((aA == aA))
371+ then aA
346372 else throw("Strict value is not equal to itself.")
347373 }
348- else throw(("RFB: Some error occured, please contact the admins! " + av))
349- if ((ak == ak))
374+ else throw(("RFB: Some error occured, please contact the admins! " + ax))
375+ if ((am == am))
350376 then {
351- let aE = if (aq)
352- then al(fromBase58String(an), ar)
377+ let aG = if (as)
378+ then an(fromBase58String(ap), at)
353379 else false
354- let aF = if (aE)
380+ let aH = if (aG)
355381 then {
356- let S = fromBase58String(getStringValue((((("address_" + b) + "_initTx_") + an) + "_assetId")))
357- let aG = R(S)
358- let aH = o(invoke(F(), "getGenFromName", [value(assetInfo(S)).name], nil))
359- if ((aH == aH))
382+ let U = fromBase58String(getStringValue((((("address_" + b) + "_initTx_") + ap) + "_assetId")))
383+ let aI = T(U)
384+ let aJ = p(invoke(H(), "getGenFromName", [value(assetInfo(U)).name], nil))
385+ if ((aJ == aJ))
360386 then {
361- let ay = invoke(aG, "increaseRarity", [toBase58String(S), aH], nil)
362- if ((ay == ay))
363- then [ScriptTransfer(addressFromStringValue(b), 1, S)]
387+ let aA = invoke(aI, "increaseRarity", [toBase58String(U), aJ], nil)
388+ if ((aA == aA))
389+ then [ScriptTransfer(addressFromStringValue(b), 1, U)]
364390 else throw("Strict value is not equal to itself.")
365391 }
366392 else throw("Strict value is not equal to itself.")
367393 }
368394 else nil
369- (((ak ++ [StringEntry((((("address_" + b) + "_initTx_") + an) + "_win"), av), StringEntry((((("address_" + b) + "_initTx_") + an) + "_status"), "finish"), IntegerEntry((((("address_" + b) + "_initTx_") + an) + "_random"), aw)]) ++ at) ++ aF)
395+ (((am ++ [StringEntry((((("address_" + b) + "_initTx_") + ap) + "_win"), ax), StringEntry((((("address_" + b) + "_initTx_") + ap) + "_status"), "finish"), IntegerEntry((((("address_" + b) + "_initTx_") + ap) + "_random"), ay)]) ++ av) ++ aH)
370396 }
371397 else throw("Strict value is not equal to itself.")
372398 }
373399 else throw("Strict value is not equal to itself.")
374400 }
375401
376402
377-@Callable(aI)
378-func configureOracle (aJ) = if ((aI.caller != this))
403+@Callable(aK)
404+func configureOracle (aL) = if ((aK.caller != this))
379405 then throw("RCU: admin only")
380- else [StringEntry("static_oracleAddress", aJ)]
406+ else [StringEntry("static_oracleAddress", aL)]
381407
382408
383409
384-@Callable(aI)
410+@Callable(aK)
385411 func initRebirth () = {
386- let aK = aI.payments[0]
387- let aL = aI.payments[1]
388- let S = value(aK.assetId)
389- let an = toBase58String(aI.transactionId)
390- let b = toString(aI.caller)
391- if ((aK.amount != 1))
412+ let aM = aK.payments[0]
413+ let aN = aK.payments[1]
414+ let U = value(aM.assetId)
415+ let ap = toBase58String(aK.transactionId)
416+ let b = toString(aK.caller)
417+ if ((aM.amount != 1))
392418 then throw("NFT is not attached")
393- else if (if ((aL.amount != P))
419+ else if (if ((aN.amount != R))
394420 then true
395- else (aL.assetId != unit))
421+ else (aN.assetId != unit))
396422 then throw("Wavespayment is not attached or wrong!")
397423 else {
398- let aM = (aL.amount / 4)
399- let aN = (aL.amount - aM)
400- let aO = invoke(I(), "addWavesAndStakeMore", nil, [AttachedPayment(unit, aN)])
401- if ((aO == aO))
424+ let aO = (aN.amount / 4)
425+ let aP = (aN.amount - aO)
426+ let aQ = invoke(K(), "addWavesAndStakeMore", nil, [AttachedPayment(unit, aP)])
427+ if ((aQ == aQ))
402428 then {
403- let aG = R(S)
404- let aH = o(invoke(F(), "getGenFromName", [value(assetInfo(S)).name], nil))
405- if ((aH == aH))
429+ let aI = T(U)
430+ let aJ = p(invoke(H(), "getGenFromName", [value(assetInfo(U)).name], nil))
431+ if ((aJ == aJ))
406432 then {
407- let ay = invoke(aG, "reduceRarity", [toBase58String(S), aH], nil)
408- if ((ay == ay))
409- then [IntegerEntry((((("address_" + b) + "_initTx_") + an) + "_finishBlock"), (height + Q)), StringEntry((((("address_" + b) + "_initTx_") + an) + "_status"), "open"), StringEntry((((("address_" + b) + "_initTx_") + an) + "_assetId"), toBase58String(S)), ScriptTransfer(E(), aM, unit)]
433+ let aA = invoke(aI, "reduceRarity", [toBase58String(U), aJ], nil)
434+ if ((aA == aA))
435+ then [IntegerEntry((((("address_" + b) + "_initTx_") + ap) + "_finishBlock"), (height + S)), StringEntry((((("address_" + b) + "_initTx_") + ap) + "_status"), "open"), StringEntry((((("address_" + b) + "_initTx_") + ap) + "_assetId"), toBase58String(U)), ScriptTransfer(G(), aO, unit)]
410436 else throw("Strict value is not equal to itself.")
411437 }
412438 else throw("Strict value is not equal to itself.")
413439 }
414440 else throw("Strict value is not equal to itself.")
415441 }
416442 }
417443
418444
419445
420-@Callable(aI)
421-func finishRebirth (an) = am(an, toString(aI.caller), aI.payments[0], false, "", false)
446+@Callable(aK)
447+func finishRebirth (ap) = ao(ap, toString(aK.caller), aK.payments[0], false, "", false)
422448
423449
424450
425-@Callable(aI)
426-func finishRebirthDouble (an) = if (!(if ((size(aI.payments) == 2))
427- then (aI.payments[0].amount == 1)
451+@Callable(aK)
452+func finishRebirthDouble (ap) = if (!(if ((size(aK.payments) == 2))
453+ then (aK.payments[0].amount == 1)
428454 else false))
429455 then throw("Invalid payment")
430456 else {
431- let S = value(aI.payments[0].assetId)
432- let aP = o(invoke(L(), "checkArtefactDetails", [toBase58String(S)], nil))
433- if ((aP == aP))
434- then if ((aP == "ART-GIFT_DOUBL"))
435- then ([Burn(S, 1)] ++ am(an, toString(aI.caller), aI.payments[1], true, "", false))
457+ let U = value(aK.payments[0].assetId)
458+ let aR = p(invoke(N(), "checkArtefactDetails", [toBase58String(U)], nil))
459+ if ((aR == aR))
460+ then if ((aR == "ART-GIFT_DOUBL"))
461+ then ([Burn(U, 1)] ++ ao(ap, toString(aK.caller), aK.payments[1], true, "", false))
436462 else throw("Error! Wrong item attached to double rewards!")
437463 else throw("Strict value is not equal to itself.")
438464 }
439465
440466
441467
442-@Callable(aI)
443-func finishRebirthItem (an,aQ) = if (if ((size(aI.payments) == 2))
444- then (aI.payments[0].amount == 1)
468+@Callable(aK)
469+func finishRebirthItem (ap,aS) = if (if ((size(aK.payments) == 2))
470+ then (aK.payments[0].amount == 1)
445471 else false)
446472 then {
447- let S = value(aI.payments[0].assetId)
448- let aP = o(invoke(L(), "checkArtefactDetails", [toBase58String(S)], nil))
449- if ((aP == aP))
450- then if ((aP == "ART-HWERASE"))
451- then ([Burn(S, 1)] ++ am(an, toString(aI.caller), aI.payments[1], false, aQ, false))
452- else if ((aP == "ART-HWRESCUE"))
453- then ([Burn(S, 1)] ++ am(an, toString(aI.caller), aI.payments[1], false, "", true))
454- else if ((aP == "ART-GIFT_DOUBL"))
455- then ([Burn(S, 1)] ++ am(an, toString(aI.caller), aI.payments[1], true, "", false))
473+ let U = value(aK.payments[0].assetId)
474+ let aR = p(invoke(N(), "checkArtefactDetails", [toBase58String(U)], nil))
475+ if ((aR == aR))
476+ then if ((aR == "ART-HWERASE"))
477+ then ([Burn(U, 1)] ++ ao(ap, toString(aK.caller), aK.payments[1], false, aS, false))
478+ else if ((aR == "ART-HWRESCUE"))
479+ then ([Burn(U, 1)] ++ ao(ap, toString(aK.caller), aK.payments[1], false, "", true))
480+ else if ((aR == "ART-GIFT_DOUBL"))
481+ then ([Burn(U, 1)] ++ ao(ap, toString(aK.caller), aK.payments[1], true, "", false))
456482 else throw("Error! Wrong item attached ")
457483 else throw("Strict value is not equal to itself.")
458484 }
459- else if ((size(aI.payments) == 1))
460- then am(an, toString(aI.caller), aI.payments[0], false, "", false)
485+ else if ((size(aK.payments) == 1))
486+ then ao(ap, toString(aK.caller), aK.payments[0], false, "", false)
461487 else throw("Invalid payments")
462488
489+
490+@Verifier(ah)
491+func aT () = if (r())
492+ then sigVerify(ah.bodyBytes, ah.proofs[0], ah.senderPublicKey)
493+ else {
494+ let aU = base58'6TdaXEfhnjYquvPf3yV7MFxt2CbgFmaqsvGwkKfXtKi4'
495+ let aV = base58'7DsP2WaMLocbHuUxux7pbXRjTrrZ1TFQPsi5QumS3gr8'
496+ let aW = base58'BpFWP3p3JgYrrP45xfrKzeMcWMEXoinj4FVPPkUiA8D3'
497+ let aX = if (sigVerify(ah.bodyBytes, ah.proofs[0], aU))
498+ then 1
499+ else if (sigVerify(ah.bodyBytes, ah.proofs[1], aU))
500+ then 1
501+ else if (sigVerify(ah.bodyBytes, ah.proofs[2], aU))
502+ then 1
503+ else 0
504+ let aY = if (sigVerify(ah.bodyBytes, ah.proofs[0], aV))
505+ then 1
506+ else if (sigVerify(ah.bodyBytes, ah.proofs[1], aV))
507+ then 1
508+ else if (sigVerify(ah.bodyBytes, ah.proofs[2], aV))
509+ then 1
510+ else 0
511+ let aZ = if (sigVerify(ah.bodyBytes, ah.proofs[0], aW))
512+ then 1
513+ else if (sigVerify(ah.bodyBytes, ah.proofs[1], aW))
514+ then 1
515+ else if (sigVerify(ah.bodyBytes, ah.proofs[2], aW))
516+ then 1
517+ else 0
518+ let ba = ((aX + aY) + aZ)
519+ let d = ah
520+ (ba >= 2)
521+ }
463522

github/deemru/w8io/169f3d6 
183.65 ms