tx · 6Rf2qELLRJHNH5KGNitsMPy6ifr71Qmk1XZKoBEtZQVC

3N6oB7VbceD3NoguGkfGnBMF4hcHZVbK8io:  -0.01900000 Waves

2024.11.01 19:23 [3352696] smart account 3N6oB7VbceD3NoguGkfGnBMF4hcHZVbK8io > SELF 0.00000000 Waves

{ "type": 13, "id": "6Rf2qELLRJHNH5KGNitsMPy6ifr71Qmk1XZKoBEtZQVC", "fee": 1900000, "feeAssetId": null, "timestamp": 1730478189674, "version": 2, "chainId": 84, "sender": "3N6oB7VbceD3NoguGkfGnBMF4hcHZVbK8io", "senderPublicKey": "2cUCdub81Us7Le3h97BRsS5HupDXo5sErj1dwyNHKNU2", "proofs": [ "3o5uWjYxbwbjw6dYM65M9N1prYwj8zwi18Lod5Df8AxR74Rq6x7sGEfz1JszaT1cRpSfi36Mr8kGWyvW6h8N9jUM" ], "script": "base64:BgIWCAISAwoBCBIDCgEIEgMKAQgSAwoBCDABFHRyeUdldFN0cmluZ0V4dGVybmFsAgdhZGRyZXNzA2tleQQHJG1hdGNoMAkAnQgCBQdhZGRyZXNzBQNrZXkDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFhBQckbWF0Y2gwBQFhAgABEXRyeUdldEludEV4dGVybmFsAgdhZGRyZXNzA2tleQQHJG1hdGNoMAkAmggCBQdhZGRyZXNzBQNrZXkDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhCQACAQIbUlRHSUU6IFNvbWV0aGluZyB3ZW50IHdyb25nAQlhc0Jvb2xlYW4BBXZhbHVlBAckbWF0Y2gwBQV2YWx1ZQMJAAECBQckbWF0Y2gwAgdCb29sZWFuBAdib29sZWFuBQckbWF0Y2gwBQdib29sZWFuCQACAQIiRkFCOiB3cm9uZyB0eXBlLCBleHBlY3RlZDogQm9vbGVhbgEMdHJ5R2V0U3RyaW5nAQNrZXkJARR0cnlHZXRTdHJpbmdFeHRlcm5hbAIFBHRoaXMFA2tleQAQZGVsYXlGb3JIYXRjaGluZwACARdzdGF0aWNLZXlfb3JhY2xlQWRkcmVzcwACFHN0YXRpY19vcmFjbGVBZGRyZXNzARRzdGF0aWNLZXlfZWdnQXNzZXRJZAACEXN0YXRpY19lZ2dBc3NldElkARpzdGF0aWNLZXlfaW5jdWJhdG9yQWRkcmVzcwACF3N0YXRpY19pbmN1YmF0b3JBZGRyZXNzARhzdGF0aWNLZXlfYnJlZWRlckFkZHJlc3MAAhVzdGF0aWNfYnJlZWRlckFkZHJlc3MBGHN0YXRpY0tleV9mYXJtaW5nQWRkcmVzcwACGHN0YXRpY19mYXJtaW5nQWRkcmVzc05ldwEZc3RhdGljS2V5X2JhYnlEdWNrQWRkcmVzcwACFnN0YXRpY19iYWJ5RHVja0FkZHJlc3MBGXN0YXRpY0tleV9nYW1lRGFwcEFkZHJlc3MAAhZzdGF0aWNfZ2FtZURhcHBBZGRyZXNzARZzdGF0aWNLZXlfaXRlbXNBZGRyZXNzAAITc3RhdGljX2l0ZW1zQWRkcmVzcwEYc3RhdGljS2V5X2NvdXBvbnNBZGRyZXNzAAIVc3RhdGljX2NvdXBvbnNBZGRyZXNzARVzdGF0aWNLZXlfaHVudEFkZHJlc3MAAhJzdGF0aWNfaHVudEFkZHJlc3MBFXN0YXRpY0tleV9idXJuQWRkcmVzcwACEnN0YXRpY19idXJuQWRkcmVzcwEcc3RhdGljS2V5X3JlZkNvbnRyYWN0QWRkcmVzcwACGXN0YXRpY19yZWZDb250cmFjdEFkZHJlc3MBEnN0YXRpY0tleV9leHRyYUZlZQACD3N0YXRpY19leHRyYUZlZQEXc3RhdGljS2V5X2ZlZUFnZ3JlZ2F0b3IAAhRzdGF0aWNfZmVlQWdncmVnYXRvcgEJZ2V0T3JhY2xlAAkBB0FkZHJlc3MBCQDZBAEJAQx0cnlHZXRTdHJpbmcBCQEXc3RhdGljS2V5X29yYWNsZUFkZHJlc3MAAQ1nZXRFZ2dBc3NldElkAAkA2QQBCQEUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwCCQEJZ2V0T3JhY2xlAAkBFHN0YXRpY0tleV9lZ2dBc3NldElkAAETZ2V0SW5jdWJhdG9yQWRkcmVzcwAJAQdBZGRyZXNzAQkA2QQBCQEUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwCCQEJZ2V0T3JhY2xlAAkBGnN0YXRpY0tleV9pbmN1YmF0b3JBZGRyZXNzAAERZ2V0QnJlZWRlckFkZHJlc3MACQEHQWRkcmVzcwEJANkEAQkBFHRyeUdldFN0cmluZ0V4dGVybmFsAgkBCWdldE9yYWNsZQAJARhzdGF0aWNLZXlfYnJlZWRlckFkZHJlc3MAARFnZXRGYXJtaW5nQWRkcmVzcwAJAQdBZGRyZXNzAQkA2QQBCQEUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwCCQEJZ2V0T3JhY2xlAAkBGHN0YXRpY0tleV9mYXJtaW5nQWRkcmVzcwABEmdldEJhYnlEdWNrQWRkcmVzcwAJAQdBZGRyZXNzAQkA2QQBCQEUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwCCQEJZ2V0T3JhY2xlAAkBGXN0YXRpY0tleV9iYWJ5RHVja0FkZHJlc3MAARJnZXRHYW1lRGFwcEFkZHJlc3MACQEHQWRkcmVzcwEJANkEAQkBFHRyeUdldFN0cmluZ0V4dGVybmFsAgkBCWdldE9yYWNsZQAJARlzdGF0aWNLZXlfZ2FtZURhcHBBZGRyZXNzAAEPZ2V0SXRlbXNBZGRyZXNzAAkBB0FkZHJlc3MBCQDZBAEJARR0cnlHZXRTdHJpbmdFeHRlcm5hbAIJAQlnZXRPcmFjbGUACQEWc3RhdGljS2V5X2l0ZW1zQWRkcmVzcwABEWdldENvdXBvbnNBZGRyZXNzAAkBB0FkZHJlc3MBCQDZBAEJARR0cnlHZXRTdHJpbmdFeHRlcm5hbAIJAQlnZXRPcmFjbGUACQEYc3RhdGljS2V5X2NvdXBvbnNBZGRyZXNzAAEOZ2V0SHVudEFkZHJlc3MACQEHQWRkcmVzcwEJANkEAQkBFHRyeUdldFN0cmluZ0V4dGVybmFsAgkBCWdldE9yYWNsZQAJARVzdGF0aWNLZXlfaHVudEFkZHJlc3MAAQ5nZXRCdXJuQWRkcmVzcwAJAQdBZGRyZXNzAQkA2QQBCQEUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwCCQEJZ2V0T3JhY2xlAAkBFXN0YXRpY0tleV9idXJuQWRkcmVzcwABFWdldFJlZkNvbnRyYWN0QWRkcmVzcwAJAQdBZGRyZXNzAQkA2QQBCQEUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwCCQEJZ2V0T3JhY2xlAAkBHHN0YXRpY0tleV9yZWZDb250cmFjdEFkZHJlc3MAARBnZXRGZWVBZ2dyZWdhdG9yAAkBB0FkZHJlc3MBCQDZBAEJARR0cnlHZXRTdHJpbmdFeHRlcm5hbAIJAQlnZXRPcmFjbGUACQEXc3RhdGljS2V5X2ZlZUFnZ3JlZ2F0b3IAARZjaGVja0FkZGl0aW9uYWxQYXltZW50AQdwYXltZW50AwkBCWlzRGVmaW5lZAEIBQdwYXltZW50B2Fzc2V0SWQJAAIBAhlSQ0FQOiBQbGVhc2UgYXR0YWNoIHdhdmVzBAlmZWVBbW91bnQJARFAZXh0ck5hdGl2ZSgxMDUwKQIJAQlnZXRPcmFjbGUACQESc3RhdGljS2V5X2V4dHJhRmVlAAMJAQIhPQIIBQdwYXltZW50BmFtb3VudAUJZmVlQW1vdW50CQACAQkArAICCQCsAgICHFJDQVA6IFBsZWFzZSBhdHRhY2ggZXhhY3RseSAJAKQDAQUJZmVlQW1vdW50AhMgYW1vdW50IG9mIHdhdmVsZXRzCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJARBnZXRGZWVBZ2dyZWdhdG9yAAUJZmVlQW1vdW50BQR1bml0BQNuaWwAElBIT0VOSVhCQVNFT1BUSU9OUwDoBwENdHJ5R2V0SW50ZWdlcgEDa2V5BAckbWF0Y2gwCQCaCAIFBHRoaXMFA2tleQMJAAECBQckbWF0Y2gwAgNJbnQEAWIFByRtYXRjaDAFAWIAAAEIYXNTdHJpbmcBBXZhbHVlBAckbWF0Y2gwBQV2YWx1ZQMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXMFByRtYXRjaDAFAXMDCQABAgUHJG1hdGNoMAIDSW50BAFzBQckbWF0Y2gwCQACAQImd3JvbmcgdHlwZSwgZXhwZWN0ZWQ6IFN0cmluZywgZ290OiBJbnQDCQABAgUHJG1hdGNoMAIEVW5pdAQBcwUHJG1hdGNoMAkAAgECJ3dyb25nIHR5cGUsIGV4cGVjdGVkOiBTdHJpbmcsIGdvdDogVW5pdAkAAgECHHdyb25nIHR5cGUsIGV4cGVjdGVkOiBTdHJpbmcACWZlZUFtb3VudAkBDXRyeUdldEludGVnZXIBAgxjdXJyZW50UHJpY2UBEGdldEFtb3VudE9yQ2xlYXIBBmFtb3VudAMJAQhjb250YWlucwIFBmFtb3VudAIBMAIABQZhbW91bnQBDmdldEFzc2V0T3JpZ2luAQpnZW5lcmF0aW9uAwkAAAIFCmdlbmVyYXRpb24CAUcJARNnZXRJbmN1YmF0b3JBZGRyZXNzAAkBEWdldEJyZWVkZXJBZGRyZXNzAAEOZ2V0QXNzZXRSYXJpdHkCCGdlbm90eXBlCmdlbmVyYXRpb24ECHF1YW50aXR5CQERQGV4dHJOYXRpdmUoMTA1MCkCCQEOZ2V0QXNzZXRPcmlnaW4BBQpnZW5lcmF0aW9uCQCsAgIJAKwCAgIGc3RhdHNfBQhnZW5vdHlwZQIJX3F1YW50aXR5BAVwb3dlcgkAbAYJAGkCAJBOBQhxdWFudGl0eQAEAAUAAQACBQVGTE9PUgMJAGYCBQVwb3dlcgAABQVwb3dlcgACARRnZXRBc3NldEZhcm1pbmdQb3dlcgEHYXNzZXRJZAMDCQAAAggJAQV2YWx1ZQEJAOwHAQUHYXNzZXRJZAZpc3N1ZXIJARFnZXRCcmVlZGVyQWRkcmVzcwAGCQAAAggJAQV2YWx1ZQEJAOwHAQUHYXNzZXRJZAZpc3N1ZXIJARNnZXRJbmN1YmF0b3JBZGRyZXNzAAQJYXNzZXROYW1lCAkBBXZhbHVlAQkA7AcBBQdhc3NldElkBG5hbWUECmdlbmVyYXRpb24JAK8CAgkAsgICBQlhc3NldE5hbWUAAgABBAdmYXJtR2VuCQEIYXNTdHJpbmcBCQD8BwQJARFnZXRCcmVlZGVyQWRkcmVzcwACDmdldEdlbkZyb21OYW1lCQDMCAIFCWFzc2V0TmFtZQUDbmlsBQNuaWwDCQAAAgUHZmFybUdlbgUHZmFybUdlbgkAlAoCBQdmYXJtR2VuCQEOZ2V0QXNzZXRSYXJpdHkCBQdmYXJtR2VuBQpnZW5lcmF0aW9uCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQINbm90IHZhbGlkIE5GVAEPZ2V0UmFuZG9tTnVtYmVyBAdvcHRpb25zBHR4SWQUaGF0Y2hpbmdGaW5pc2hIZWlnaHQGb2Zmc2V0BA9yYW5kb21TZWVkQmxvY2sJAQV2YWx1ZQEJAO0HAQkAZQIFFGhhdGNoaW5nRmluaXNoSGVpZ2h0AAEECnJhbmRvbUhhc2gJAPcDAQkAywECBQR0eElkCQEFdmFsdWUBCAUPcmFuZG9tU2VlZEJsb2NrA3ZyZgkAagIJALIJAgUKcmFuZG9tSGFzaAkAaAIFBm9mZnNldAAIBQdvcHRpb25zAQxnZXRSYW5kb21XaW4DAnR4DGZpbmlzaEhlaWdodAthc3NldFJhcml0eQQNamFja3BvdFJhbmRvbQkBD2dldFJhbmRvbU51bWJlcgQACgUCdHgFDGZpbmlzaEhlaWdodAABAwkAAAIFDWphY2twb3RSYW5kb20AAQIHcGhvZW5peAQBbgkBD2dldFJhbmRvbU51bWJlcgQA6AcFAnR4BQxmaW5pc2hIZWlnaHQAAAMJAGYCAAoFAW4CEWl0ZW0hQVJULUZSRUVHRU5FAwkAZgIAfgUBbgICYXIDCQBmAgC6AQUBbgIUaXRlbSFBUlQtRklSRV9BUk1PVVIDCQBmAgDOAQUBbgIOaXRlbSFBUlQtRkVFRDUDCQBmAgDiAQUBbgIPaXRlbSFBUlQtRkVFRDEwAwkAZgIA9gEFAW4CD2l0ZW0hQVJULUZFRUQxNQMJAGYCAIoCBQFuAg9pdGVtIUFSVC1GRUVEMjADCQBmAgCeAgUBbgIPaXRlbSFBUlQtRkVFRDI1AwkAZgIAqAIFAW4CD2l0ZW0hQVJULUZFRUQ1MAMJAGYCAKwCBQFuAhBpdGVtIUFSVC1GRUVEMTAwAwkAZgIAtgIFAW4CDml0ZW0hQVJULUNST1dOAwkAZgIA3gIFAW4CCWluY3ViYXRvcgMJAGYCAMwDBQFuAwkAZgIAMgULYXNzZXRSYXJpdHkCEml0ZW0hQVJULUJVSUxUQk9EWQITaXRlbSFBUlQtTVVUQVJJVU0tRAMJAGYCAOADBQFuAg5pdGVtIUFSVC1TTkFLRQMJAGYCAP4DBQFuAhFpdGVtIUFSVC1ST0JPRFVDSwMJAGYCANgEBQFuAg9pdGVtIUFSVC1LQVRBTkEDCQBmAgCKBQUBbgMJAGYCADIFC2Fzc2V0UmFyaXR5AhBpdGVtIUFSVC1TQ0VQVEVSAhNpdGVtIUFSVC1NVVRBUklVTS1EAwkAZgIAxgUFAW4CE2l0ZW0hQVJULU1VVEFSSVVNLUQDCQBmAgDQBQUBbgITaXRlbSFBUlQtTVVUQVJJVU0tRwMJAGYCAPoGBQFuAgtkdWNrbGluZ18xMAMJAGYCAMAHBQFuAgtkdWNrbGluZ18yMAILZHVja2xpbmdfNDABCWdldE9yaWdpbgEHYXNzZXRJZAQJYXNzZXROYW1lCAkBBXZhbHVlAQkA7AcBBQdhc3NldElkBG5hbWUECmdlbmVyYXRpb24JAK8CAgkAsgICBQlhc3NldE5hbWUAAgABAwMJAAACBQpnZW5lcmF0aW9uAgFHBgkAAAIFCmdlbmVyYXRpb24CAUoJARNnZXRJbmN1YmF0b3JBZGRyZXNzAAkBEWdldEJyZWVkZXJBZGRyZXNzAAEFYXNJbnQBBXZhbHVlBAckbWF0Y2gwBQV2YWx1ZQMJAAECBQckbWF0Y2gwAgNJbnQEA2ludAUHJG1hdGNoMAUDaW50AwkAAQIFByRtYXRjaDACBlN0cmluZwQGc3RyaW5nBQckbWF0Y2gwCQACAQkArAICAilSQUk6IHdyb25nIHR5cGUsIGV4cGVjdGVkOiBJbnQsIGJ1dCBnb3Q6IAUGc3RyaW5nCQACAQIeUkFJOiB3cm9uZyB0eXBlLCBleHBlY3RlZDogSW50AQdnZXRCb29sAQNrZXkEByRtYXRjaDAJAJsIAgUEdGhpcwUDa2V5AwkAAQIFByRtYXRjaDACB0Jvb2xlYW4EAWIFByRtYXRjaDAFAWIHAQlpc1Rlc3RFbnYACQEHZ2V0Qm9vbAECB1RFU1RFTlYBFWZpbmlzaFJlYmlydGhJbnRlcm5hbAQGaW5pdFR4B2FkZHJlc3MHcGF5bWVudAZkb3VibGUEC2ZpbmlzaEJsb2NrCQENdHJ5R2V0SW50ZWdlcgEJAKwCAgkArAICCQCsAgIJAKwCAgIIYWRkcmVzc18FB2FkZHJlc3MCCF9pbml0VHhfBQZpbml0VHgCDF9maW5pc2hCbG9jawQLYXNzZXRSYXJpdHkJAQ10cnlHZXRJbnRlZ2VyAQkArAICCQCsAgIJAKwCAgkArAICAghhZGRyZXNzXwUHYWRkcmVzcwIIX2luaXRUeF8FBmluaXRUeAIMX2Fzc2V0UmFyaXR5BAZzdGF0dXMJAQx0cnlHZXRTdHJpbmcBCQCsAgIJAKwCAgkArAICCQCsAgICCGFkZHJlc3NfBQdhZGRyZXNzAghfaW5pdFR4XwUGaW5pdFR4Agdfc3RhdHVzBAx2YWxpZFBheW1lbnQJARZjaGVja0FkZGl0aW9uYWxQYXltZW50AQUHcGF5bWVudAMJAAACBQx2YWxpZFBheW1lbnQFDHZhbGlkUGF5bWVudAQMcmVjb3JkQWN0aW9uCQD8BwQJARFnZXRDb3Vwb25zQWRkcmVzcwACDHJlY29yZEFjdGlvbgkAzAgCAgdSRUJJUlRIBQNuaWwFA25pbAMJAAACBQxyZWNvcmRBY3Rpb24FDHJlY29yZEFjdGlvbgoBFGdldEFjY2Vzc0l0ZW1Bc3NldElkAQdhZGRyZXNzCQDZBAEJARR0cnlHZXRTdHJpbmdFeHRlcm5hbAIFB2FkZHJlc3MCGHN0YXRpY19hY2Nlc3NJdGVtQXNzZXRJZAoBEmdldEFjY2Vzc0l0ZW1QcmljZQEHYWRkcmVzcwkBEXRyeUdldEludEV4dGVybmFsAgUHYWRkcmVzcwIWc3RhdGljX2FjY2Vzc0l0ZW1QcmljZQMJAQIhPQIFBnN0YXR1cwIEb3BlbgkAAgECH3JlYmlydGggaXMgZmluaXNoZWQgb3Igbm90IG9wZW4DCQBmAgULZmluaXNoQmxvY2sFBmhlaWdodAkAAgECHnlvdSBjYW5ub3QgZmluaXNoIHJlYmlydGgsIHlldAQDd2luCQEMZ2V0UmFuZG9tV2luAwkA2QQBBQZpbml0VHgFC2ZpbmlzaEJsb2NrBQthc3NldFJhcml0eQQEdHhJZAUGaW5pdFR4BAZyZXN1bHQDCQECIT0CCQCzCQIFA3dpbgIFcGVyY2gFBHVuaXQEBWNvbG9yCQCyAgIFA3dpbgABBAZyZXN1bHQDCQEBIQEFBmRvdWJsZQQFZmlyc3QJAPwHBAkBEWdldEZhcm1pbmdBZGRyZXNzAAIMYWRkRnJlZVBlcmNoCQDMCAIFB2FkZHJlc3MJAMwIAgUFY29sb3IJAMwIAgABBQNuaWwFA25pbAMJAAACBQVmaXJzdAUFZmlyc3QJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkArAICAghhZGRyZXNzXwUHYWRkcmVzcwIIX2luaXRUeF8FBmluaXRUeAIHX3Jlc3VsdAkBCGFzU3RyaW5nAQUFZmlyc3QFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgQFZmlyc3QJAPwHBAkBEWdldEZhcm1pbmdBZGRyZXNzAAIMYWRkRnJlZVBlcmNoCQDMCAIFB2FkZHJlc3MJAMwIAgUFY29sb3IJAMwIAgACBQNuaWwFA25pbAMJAAACBQVmaXJzdAUFZmlyc3QJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkArAICAghhZGRyZXNzXwUHYWRkcmVzcwIIX2luaXRUeF8FBmluaXRUeAIHX3Jlc3VsdAkBCGFzU3RyaW5nAQUFZmlyc3QJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkArAICAghhZGRyZXNzXwUHYWRkcmVzcwIIX2luaXRUeF8FBmluaXRUeAIIX3Jlc3VsdDEJAQhhc1N0cmluZwEFBWZpcnN0CQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIJAKwCAgIIYWRkcmVzc18FB2FkZHJlc3MCCF9pbml0VHhfBQZpbml0VHgCBV93aW4xBQN3aW4FA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgMJAAACBQZyZXN1bHQFBnJlc3VsdAUGcmVzdWx0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAwkAAAIFA3dpbgIJaW5jdWJhdG9yBAZyZXN1bHQDCQEBIQEFBmRvdWJsZQQFZmlyc3QJAPwHBAkBE2dldEluY3ViYXRvckFkZHJlc3MAAg1pc3N1ZUZyZWVEdWNrCQDMCAIFB2FkZHJlc3MJAMwIAgUEdHhJZAUDbmlsBQNuaWwDCQAAAgUFZmlyc3QFBWZpcnN0CQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIJAKwCAgIIYWRkcmVzc18FB2FkZHJlc3MCCF9pbml0VHhfBQZpbml0VHgCB19yZXN1bHQJAQhhc1N0cmluZwEFBWZpcnN0BQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4EBWZpcnN0CQD8BwQJARNnZXRJbmN1YmF0b3JBZGRyZXNzAAINaXNzdWVGcmVlRHVjawkAzAgCBQdhZGRyZXNzCQDMCAIFBHR4SWQFA25pbAUDbmlsAwkAAAIFBWZpcnN0BQVmaXJzdAQGc2Vjb25kCQD8BwQJARJnZXRCYWJ5RHVja0FkZHJlc3MAAhFpc3N1ZUZyZWVEdWNrbGluZwkAzAgCBQdhZGRyZXNzCQDMCAIFBHR4SWQJAMwIAgBkBQNuaWwFA25pbAMJAAACBQZzZWNvbmQFBnNlY29uZAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICCQCsAgICCGFkZHJlc3NfBQdhZGRyZXNzAghfaW5pdFR4XwUGaW5pdFR4AgdfcmVzdWx0CQEIYXNTdHJpbmcBBQVmaXJzdAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICCQCsAgICCGFkZHJlc3NfBQdhZGRyZXNzAghfaW5pdFR4XwUGaW5pdFR4AghfcmVzdWx0MQkBCGFzU3RyaW5nAQUGc2Vjb25kCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIJAKwCAgIIYWRkcmVzc18FB2FkZHJlc3MCCF9pbml0VHhfBQZpbml0VHgCBV93aW4xAgxkdWNrbGluZ18xMDAFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgMJAAACBQZyZXN1bHQFBnJlc3VsdAUGcmVzdWx0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAwkAAAIFA3dpbgICYXIEB2Fzc2V0SWQJARRnZXRBY2Nlc3NJdGVtQXNzZXRJZAEJAQ5nZXRIdW50QWRkcmVzcwAEBXByaWNlCQESZ2V0QWNjZXNzSXRlbVByaWNlAQkBDmdldEh1bnRBZGRyZXNzAAQEY2FsbAkA/AcECQEOZ2V0SHVudEFkZHJlc3MAAhJidXlBY2Nlc3NJdGVtT3RoZXIJAMwIAgUHYWRkcmVzcwUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQdhc3NldElkBQVwcmljZQUDbmlsAwkAAAIFBGNhbGwFBGNhbGwJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkArAICAghhZGRyZXNzXwUHYWRkcmVzcwIIX2luaXRUeF8FBmluaXRUeAIHX3Jlc3VsdAkBCGFzU3RyaW5nAQUEY2FsbAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAwkAAAIFA3dpbgIHcGhvZW5peAQEY2FsbAkA/AcECQETZ2V0SW5jdWJhdG9yQWRkcmVzcwACDGlzc3VlSmFja3BvdAkAzAgCBQdhZGRyZXNzCQDMCAIFBHR4SWQJAMwIAgIIV1dXV0hXVEYFA25pbAUDbmlsAwkAAAIFBGNhbGwFBGNhbGwJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkArAICAghhZGRyZXNzXwUHYWRkcmVzcwIIX2luaXRUeF8FBmluaXRUeAIHX3Jlc3VsdAkBCGFzU3RyaW5nAQUEY2FsbAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAwkBAiE9AgkAswkCBQN3aW4CCGR1Y2tsaW5nBQR1bml0BAVsZXZlbAkBDXBhcnNlSW50VmFsdWUBCQCRAwIJALUJAgUDd2luAgFfAAEECmxldmVsRmluYWwDBQZkb3VibGUJAGgCAAIFBWxldmVsBQVsZXZlbAQEY2FsbAkA/AcECQESZ2V0QmFieUR1Y2tBZGRyZXNzAAIRaXNzdWVGcmVlRHVja2xpbmcJAMwIAgUHYWRkcmVzcwkAzAgCBQR0eElkCQDMCAIFCmxldmVsRmluYWwFA25pbAUDbmlsAwkAAAIFBGNhbGwFBGNhbGwJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkArAICAghhZGRyZXNzXwUHYWRkcmVzcwIIX2luaXRUeF8FBmluaXRUeAIHX3Jlc3VsdAkBCGFzU3RyaW5nAQUEY2FsbAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAwkBAiE9AgkAswkCBQN3aW4CBGl0ZW0FBHVuaXQECGl0ZW1OYW1lCQCRAwIJALUJAgUDd2luAgEhAAEEBnJlc3VsdAMJAQEhAQUGZG91YmxlBAVmaXJzdAkA/AcECQEPZ2V0SXRlbXNBZGRyZXNzAAISaXNzdWVBcnRlZmFjdEluZGV4CQDMCAIFCGl0ZW1OYW1lCQDMCAIFB2FkZHJlc3MJAMwIAgAABQNuaWwFA25pbAMJAAACBQVmaXJzdAUFZmlyc3QJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkArAICAghhZGRyZXNzXwUHYWRkcmVzcwIIX2luaXRUeF8FBmluaXRUeAIHX3Jlc3VsdAkBCGFzU3RyaW5nAQUFZmlyc3QFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgQFZmlyc3QJAPwHBAkBD2dldEl0ZW1zQWRkcmVzcwACEmlzc3VlQXJ0ZWZhY3RJbmRleAkAzAgCBQhpdGVtTmFtZQkAzAgCBQdhZGRyZXNzCQDMCAIAAAUDbmlsBQNuaWwDCQAAAgUFZmlyc3QFBWZpcnN0BAZzZWNvbmQJAPwHBAkBD2dldEl0ZW1zQWRkcmVzcwACEmlzc3VlQXJ0ZWZhY3RJbmRleAkAzAgCBQhpdGVtTmFtZQkAzAgCBQdhZGRyZXNzCQDMCAIAAQUDbmlsBQNuaWwDCQAAAgUGc2Vjb25kBQZzZWNvbmQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkArAICAghhZGRyZXNzXwUHYWRkcmVzcwIIX2luaXRUeF8FBmluaXRUeAIHX3Jlc3VsdAkBCGFzU3RyaW5nAQUFZmlyc3QJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkArAICAghhZGRyZXNzXwUHYWRkcmVzcwIIX2luaXRUeF8FBmluaXRUeAIHX3Jlc3VsdAkBCGFzU3RyaW5nAQUGc2Vjb25kCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIJAKwCAgIIYWRkcmVzc18FB2FkZHJlc3MCCF9pbml0VHhfBQZpbml0VHgCBV93aW4xBQN3aW4FA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgMJAAACBQZyZXN1bHQFBnJlc3VsdAUGcmVzdWx0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIzUkZCOiBTb21lIGVycm9yIG9jY3VyZWQsIHBsZWFzZSBjb250YWN0IHRoZSBhZG1pbnMhCQDOCAIJAM4IAgUGcmVzdWx0CQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIJAKwCAgIIYWRkcmVzc18FB2FkZHJlc3MCCF9pbml0VHhfBQZpbml0VHgCBF93aW4FA3dpbgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICCQCsAgICCGFkZHJlc3NfBQdhZGRyZXNzAghfaW5pdFR4XwUGaW5pdFR4Agdfc3RhdHVzAgZmaW5pc2gFA25pbAUMdmFsaWRQYXltZW50CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuBAFpAQ9jb25maWd1cmVPcmFjbGUBBm9yYWNsZQMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECD1JDVTogYWRtaW4gb25seQkAzAgCCQELU3RyaW5nRW50cnkCAhRzdGF0aWNfb3JhY2xlQWRkcmVzcwUGb3JhY2xlBQNuaWwBaQELaW5pdFJlYmlydGgBDnJlZmVyZXJBZGRyZXNzBANwbXQJAJEDAggFAWkIcGF5bWVudHMAAAQHYXNzZXRJZAkBBXZhbHVlAQgFA3BtdAdhc3NldElkBAZpbml0VHgJANgEAQgFAWkNdHJhbnNhY3Rpb25JZAQHYWRkcmVzcwkApQgBCAUBaQZjYWxsZXIDCQECIT0CCAUDcG10BmFtb3VudAABCQACAQITTkZUIGlzIG5vdCBhdHRhY2hlZAQTYW1vdW50UGFpZEJ5Q291cG9ucwkBBWFzSW50AQkA/AcECQERZ2V0Q291cG9uc0FkZHJlc3MAAgp1c2VDb3Vwb25zCQDMCAIFCWZlZUFtb3VudAUDbmlsBQNuaWwDCQAAAgUTYW1vdW50UGFpZEJ5Q291cG9ucwUTYW1vdW50UGFpZEJ5Q291cG9ucwQJbGVmdFRvUGF5CQBlAgUJZmVlQW1vdW50BRNhbW91bnRQYWlkQnlDb3Vwb25zBAx2YWxpZFBheW1lbnQJARZjaGVja0FkZGl0aW9uYWxQYXltZW50AQkAkQMCCAUBaQhwYXltZW50cwABAwkAAAIFDHZhbGlkUGF5bWVudAUMdmFsaWRQYXltZW50BAdwYXltZW50AwkBAiE9AgUJbGVmdFRvUGF5AAAECmZlZVBheW1lbnQJAQV2YWx1ZQEJAJEDAggFAWkIcGF5bWVudHMAAgMJAQIhPQIIBQpmZWVQYXltZW50B2Fzc2V0SWQJAQ1nZXRFZ2dBc3NldElkAAkAAgECJFlvdSBuZWVkIHRvIGF0dGFjaCBFR0cgdG9rZW5zIGFzIGZlZQMJAGYCBQlsZWZ0VG9QYXkIBQpmZWVQYXltZW50BmFtb3VudAkAAgEJAKwCAgJAWW91IG5lZWQgdG8gYXR0YWNoIHRoZSBmb2xsb3dpbmcgYW1vdW50IG9mIEVHRyB0b2tlbnMgYXMgZmVlOiAwLgkApAMBBQlsZWZ0VG9QYXkEFXJlZmVyZXJSZXdhcmRGb3JQZXJjaAkAawMFCWxlZnRUb1BheQAFAGQEB3JlZkNhbGwJAQlhc0Jvb2xlYW4BCQD8BwQJARVnZXRSZWZDb250cmFjdEFkZHJlc3MAAgpyZWZQYXltZW50CQDMCAIFDnJlZmVyZXJBZGRyZXNzBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIJAQ1nZXRFZ2dBc3NldElkAAUVcmVmZXJlclJld2FyZEZvclBlcmNoBQNuaWwDCQAAAgUHcmVmQ2FsbAUHcmVmQ2FsbAQGdG9CdXJuAwUHcmVmQ2FsbAkAZQIFCWxlZnRUb1BheQUVcmVmZXJlclJld2FyZEZvclBlcmNoBQlsZWZ0VG9QYXkECGJ1cm5DYWxsCQD8BwQJAQ5nZXRCdXJuQWRkcmVzcwACFGJ1cm5BdHRhY2hlZFBheW1lbnRzBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIJAQ1nZXRFZ2dBc3NldElkAAUGdG9CdXJuBQNuaWwDCQAAAgUIYnVybkNhbGwFCGJ1cm5DYWxsBQlsZWZ0VG9QYXkJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AAAMJAAACBQdwYXltZW50BQdwYXltZW50BA0kdDAxMzgwOTEzODU4CQEUZ2V0QXNzZXRGYXJtaW5nUG93ZXIBBQdhc3NldElkBANnZW4IBQ0kdDAxMzgwOTEzODU4Al8xBAZyYXJpdHkIBQ0kdDAxMzgwOTEzODU4Al8yBARjYWxsCQD8BwQJAQlnZXRPcmlnaW4BBQdhc3NldElkAgxyZWR1Y2VSYXJpdHkJAMwIAgkA2AQBBQdhc3NldElkCQDMCAIFA2dlbgUDbmlsBQNuaWwDCQAAAgUEY2FsbAUEY2FsbAkAzggCCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgkArAICCQCsAgICCGFkZHJlc3NfBQdhZGRyZXNzAghfaW5pdFR4XwUGaW5pdFR4AgxfZmluaXNoQmxvY2sJAGQCBQZoZWlnaHQFEGRlbGF5Rm9ySGF0Y2hpbmcJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkArAICAghhZGRyZXNzXwUHYWRkcmVzcwIIX2luaXRUeF8FBmluaXRUeAIHX3N0YXR1cwIEb3BlbgkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICCQCsAgIJAKwCAgkArAICAghhZGRyZXNzXwUHYWRkcmVzcwIIX2luaXRUeF8FBmluaXRUeAIMX2Fzc2V0UmFyaXR5BQZyYXJpdHkJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkArAICAghhZGRyZXNzXwUHYWRkcmVzcwIIX2luaXRUeF8FBmluaXRUeAIIX2Fzc2V0SWQJANgEAQUHYXNzZXRJZAUDbmlsBQx2YWxpZFBheW1lbnQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQENZmluaXNoUmViaXJ0aAEGaW5pdFR4CQEVZmluaXNoUmViaXJ0aEludGVybmFsBAUGaW5pdFR4CQClCAEIBQFpBmNhbGxlcgkAkQMCCAUBaQhwYXltZW50cwAABwFpARNmaW5pc2hSZWJpcnRoRG91YmxlAQZpbml0VHgDCQEBIQEDCQAAAgkAkAMBCAUBaQhwYXltZW50cwACCQAAAggJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQAAQcJAAIBAg9JbnZhbGlkIHBheW1lbnQEB2Fzc2V0SWQJAQV2YWx1ZQEICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAQLYm9vc3RlclR5cGUJAQhhc1N0cmluZwEJAPwHBAkBD2dldEl0ZW1zQWRkcmVzcwACFGNoZWNrQXJ0ZWZhY3REZXRhaWxzCQDMCAIJANgEAQUHYXNzZXRJZAUDbmlsBQNuaWwDCQAAAgULYm9vc3RlclR5cGUFC2Jvb3N0ZXJUeXBlAwkAAAIFC2Jvb3N0ZXJUeXBlAg5BUlQtR0lGVF9ET1VCTAkAzggCCQDMCAIJAQRCdXJuAgUHYXNzZXRJZAABBQNuaWwJARVmaW5pc2hSZWJpcnRoSW50ZXJuYWwEBQZpbml0VHgJAKUIAQgFAWkGY2FsbGVyCQCRAwIIBQFpCHBheW1lbnRzAAEGCQACAQItRXJyb3IhIFdyb25nIGl0ZW0gYXR0YWNoZWQgdG8gZG91YmxlIHJld2FyZHMhCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJ0eAEGdmVyaWZ5AAMJAQlpc1Rlc3RFbnYACQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAACAUCdHgPc2VuZGVyUHVibGljS2V5BAlmaXJzdFVzZXIBIFEc5P1m/xJp0vFaFJ87suL0O3/By2gnojRebDjXV91tBApzZWNvbmRVc2VyASBccg5LrvEhT2bmGUX6aqKx7bE2KVlfGczMsOFNQYhqfQQJdGhpcmRVc2VyASCgr5HlLXlDYWEyEq2OufoYWVGdLVNJNsPQo/eoYBk7TgQPZmlyc3RVc2VyU2lnbmVkAwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAUJZmlyc3RVc2VyAAEDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwABBQlmaXJzdFVzZXIAAQMJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAIFCWZpcnN0VXNlcgABAAAEEHNlY29uZFVzZXJTaWduZWQDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAABQpzZWNvbmRVc2VyAAEDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwABBQpzZWNvbmRVc2VyAAEDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwACBQpzZWNvbmRVc2VyAAEAAAQPdGhpcmRVc2VyU2lnbmVkAwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAUJdGhpcmRVc2VyAAEDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwABBQl0aGlyZFVzZXIAAQMJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAIFCXRoaXJkVXNlcgABAAAED3NpZ25hdHVyZXNDb3VudAkAZAIJAGQCBQ9maXJzdFVzZXJTaWduZWQFEHNlY29uZFVzZXJTaWduZWQFD3RoaXJkVXNlclNpZ25lZAQHJG1hdGNoMAUCdHgJAGcCBQ9zaWduYXR1cmVzQ291bnQAAo677bE=", "height": 3352696, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: FYzWysancM3KwKfrn7Gp8EmyJVrLUhuooM2SJNsNaXKH Next: GKU2UhMYuSVNJUSFZV9jmYQBspiC5UjYpYxHwtxZGxbb Diff:
OldNewDifferences
1212 }
1313
1414
15-func f (c) = a(this, c)
15+func f (b,c) = {
16+ let d = getInteger(b, c)
17+ if ($isInstanceOf(d, "Int"))
18+ then {
19+ let e = d
20+ e
21+ }
22+ else throw("RTGIE: Something went wrong")
23+ }
1624
1725
18-func g () = "static_turtleRebirthAddress"
26+func g (h) = {
27+ let d = h
28+ if ($isInstanceOf(d, "Boolean"))
29+ then {
30+ let i = d
31+ i
32+ }
33+ else throw("FAB: wrong type, expected: Boolean")
34+ }
1935
2036
21-func h () = Address(fromBase58String(f("static_oracleAddress")))
37+func j (c) = a(this, c)
2238
2339
24-func i () = fromBase58String(a(h(), "static_eggAssetId"))
40+let k = 2
41+
42+func l () = "static_oracleAddress"
2543
2644
27-func j () = Address(fromBase58String(a(h(), "static_rebirthAddress")))
45+func m () = "static_eggAssetId"
2846
2947
30-func k () = Address(fromBase58String(a(h(), "static_babyDuckAddress")))
48+func n () = "static_incubatorAddress"
3149
3250
33-func l () = Address(fromBase58String(a(h(), "static_refContractAddress")))
51+func o () = "static_breederAddress"
3452
3553
36-func m () = Address(fromBase58String(a(h(), "static_couponsAddress")))
54+func p () = "static_farmingAddressNew"
3755
3856
39-func n () = Address(fromBase58String(a(h(), "static_burnAddress")))
57+func q () = "static_babyDuckAddress"
4058
4159
42-func o () = Address(fromBase58String(a(h(), g())))
60+func r () = "static_gameDappAddress"
4361
4462
45-let p = 2
63+func s () = "static_itemsAddress"
4664
47-let q = 10
4865
49-let r = 5
66+func t () = "static_couponsAddress"
5067
51-let s = "HATCHING_STARTED"
5268
53-let t = "HATCHING_FINISHED"
69+func u () = "static_huntAddress"
5470
55-func u () = {
56- let v = Address(base58'3PEPftf2kWZDmAaWBjs6BUJa9957kiA2PkU')
57- let d = getInteger(v, "egglock")
71+
72+func v () = "static_burnAddress"
73+
74+
75+func w () = "static_refContractAddress"
76+
77+
78+func x () = "static_extraFee"
79+
80+
81+func y () = "static_feeAggregator"
82+
83+
84+func z () = Address(fromBase58String(j(l())))
85+
86+
87+func A () = fromBase58String(a(z(), m()))
88+
89+
90+func B () = Address(fromBase58String(a(z(), n())))
91+
92+
93+func C () = Address(fromBase58String(a(z(), o())))
94+
95+
96+func D () = Address(fromBase58String(a(z(), p())))
97+
98+
99+func E () = Address(fromBase58String(a(z(), q())))
100+
101+
102+func F () = Address(fromBase58String(a(z(), r())))
103+
104+
105+func G () = Address(fromBase58String(a(z(), s())))
106+
107+
108+func H () = Address(fromBase58String(a(z(), t())))
109+
110+
111+func I () = Address(fromBase58String(a(z(), u())))
112+
113+
114+func J () = Address(fromBase58String(a(z(), v())))
115+
116+
117+func K () = Address(fromBase58String(a(z(), w())))
118+
119+
120+func L () = Address(fromBase58String(a(z(), y())))
121+
122+
123+func M (N) = if (isDefined(N.assetId))
124+ then throw("RCAP: Please attach waves")
125+ else {
126+ let O = getIntegerValue(z(), x())
127+ if ((N.amount != O))
128+ then throw((("RCAP: Please attach exactly " + toString(O)) + " amount of wavelets"))
129+ else [ScriptTransfer(L(), O, unit)]
130+ }
131+
132+
133+let P = 1000
134+
135+func Q (c) = {
136+ let d = getInteger(this, c)
58137 if ($isInstanceOf(d, "Int"))
59138 then {
60- let w = d
61- w
139+ let R = d
140+ R
62141 }
63142 else 0
64143 }
65144
66145
67-func x (b,y) = (((b + "_") + toBase58String(y)) + "_status")
68-
69-
70-func z (b,y) = (((b + "_") + toBase58String(y)) + "_fh")
71-
72-
73-func A (b,y) = (((b + "_") + toBase58String(y)) + "_di")
74-
75-
76-func B (C) = (("stats_" + C) + "_amount")
77-
78-
79-func D (c) = {
80- let E = {
81- let d = getInteger(this, c)
82- if ($isInstanceOf(d, "Int"))
146+func S (h) = {
147+ let d = h
148+ if ($isInstanceOf(d, "String"))
149+ then {
150+ let T = d
151+ T
152+ }
153+ else if ($isInstanceOf(d, "Int"))
83154 then {
84- let w = d
85- w
155+ let T = d
156+ throw("wrong type, expected: String, got: Int")
86157 }
87- else 0
88- }
89- E
158+ else if ($isInstanceOf(d, "Unit"))
159+ then {
160+ let T = d
161+ throw("wrong type, expected: String, got: Unit")
162+ }
163+ else throw("wrong type, expected: String")
90164 }
91165
92166
93-let F = D("discountCoefficient")
167+let O = Q("currentPrice")
94168
95-let G = D("saleCoefficient")
169+func U (V) = if (contains(V, "0"))
170+ then ""
171+ else V
96172
97-func H (I,y,J,K) = {
98- let L = value(blockInfoByHeight((J - 1)))
99- let M = sha256(((base58'incubator' + y) + value(L.vrf)))
100- (toInt(M, K) % I)
173+
174+func W (X) = if ((X == "G"))
175+ then B()
176+ else C()
177+
178+
179+func Y (Z,X) = {
180+ let aa = getIntegerValue(W(X), (("stats_" + Z) + "_quantity"))
181+ let ab = pow((10000 / aa), 4, 5, 1, 2, FLOOR)
182+ if ((ab > 0))
183+ then ab
184+ else 2
101185 }
102186
103187
104-func N (O) = D(B(O))
188+func ac (ad) = if (if ((value(assetInfo(ad)).issuer == C()))
189+ then true
190+ else (value(assetInfo(ad)).issuer == B()))
191+ then {
192+ let ae = value(assetInfo(ad)).name
193+ let X = take(takeRight(ae, 2), 1)
194+ let af = S(invoke(C(), "getGenFromName", [ae], nil))
195+ if ((af == af))
196+ then $Tuple2(af, Y(af, X))
197+ else throw("Strict value is not equal to itself.")
198+ }
199+ else throw("not valid NFT")
105200
106201
107-func P (y,J) = {
108- let Q = H(200, y, J, 4)
109- let R = IntegerEntry("last_jackpot_random", Q)
110- let S = H(4, y, J, 5)
111- let T = H(4, y, J, 6)
112- let U = if ((T == 0))
113- then "Y"
114- else if ((T == 1))
115- then "G"
116- else if ((T == 2))
117- then "B"
118- else "R"
119- if ((S == 0))
120- then $Tuple3(("DUCK-MMMMMMMM-G" + U), "8M-G", R)
121- else if ((S == 1))
122- then $Tuple3(("DUCK-NNNNNNNN-G" + U), "8N-G", R)
123- else if ((S == 2))
124- then $Tuple3(("DUCK-OOOOOOOO-G" + U), "8O-G", R)
125- else $Tuple3(("DUCK-PPPPPPPP-G" + U), "8P-G", R)
202+func ag (ah,ai,aj,ak) = {
203+ let al = value(blockInfoByHeight((aj - 1)))
204+ let am = sha256((ai + value(al.vrf)))
205+ (toInt(am, (ak * 8)) % ah)
126206 }
127207
128208
129-func V (W) = {
130- let X = W
131- let Y = F
132- let Z = G
133- let aa = q
134- let ab = pow((100 + ((X * Y) / (10 * aa))), 2, 5, 1, 2, DOWN)
135- if ((G == 0))
136- then (ab * 1000000)
137- else (((ab * 1000000) / 100) * (100 - G))
209+func an (ao,ap,aq) = {
210+ let ar = ag(10, ao, ap, 1)
211+ if ((ar == 1))
212+ then "phoenix"
213+ else {
214+ let as = ag(1000, ao, ap, 0)
215+ if ((10 > as))
216+ then "item!ART-FREEGENE"
217+ else if ((126 > as))
218+ then "ar"
219+ else if ((186 > as))
220+ then "item!ART-FIRE_ARMOUR"
221+ else if ((206 > as))
222+ then "item!ART-FEED5"
223+ else if ((226 > as))
224+ then "item!ART-FEED10"
225+ else if ((246 > as))
226+ then "item!ART-FEED15"
227+ else if ((266 > as))
228+ then "item!ART-FEED20"
229+ else if ((286 > as))
230+ then "item!ART-FEED25"
231+ else if ((296 > as))
232+ then "item!ART-FEED50"
233+ else if ((300 > as))
234+ then "item!ART-FEED100"
235+ else if ((310 > as))
236+ then "item!ART-CROWN"
237+ else if ((350 > as))
238+ then "incubator"
239+ else if ((460 > as))
240+ then if ((50 > aq))
241+ then "item!ART-BUILTBODY"
242+ else "item!ART-MUTARIUM-D"
243+ else if ((480 > as))
244+ then "item!ART-SNAKE"
245+ else if ((510 > as))
246+ then "item!ART-ROBODUCK"
247+ else if ((600 > as))
248+ then "item!ART-KATANA"
249+ else if ((650 > as))
250+ then if ((50 > aq))
251+ then "item!ART-SCEPTER"
252+ else "item!ART-MUTARIUM-D"
253+ else if ((710 > as))
254+ then "item!ART-MUTARIUM-D"
255+ else if ((720 > as))
256+ then "item!ART-MUTARIUM-G"
257+ else if ((890 > as))
258+ then "duckling_10"
259+ else if ((960 > as))
260+ then "duckling_20"
261+ else "duckling_40"
262+ }
138263 }
139264
140265
141-func ac (ad) = {
142- let d = ad
143- if ($isInstanceOf(d, "Int"))
144- then {
145- let ae = d
146- ae
147- }
148- else throw("IAI: wrong type, expected: Int")
266+func at (ad) = {
267+ let ae = value(assetInfo(ad)).name
268+ let X = take(takeRight(ae, 2), 1)
269+ if (if ((X == "G"))
270+ then true
271+ else (X == "J"))
272+ then B()
273+ else C()
149274 }
150275
151276
152-func af (ag,ah) = {
153- let y = fromBase58String(ag)
154- let ai = x(ah, y)
155- let aj = z(ah, y)
156- let ak = A(ah, y)
157- let al = {
158- let d = getBoolean((("hatching_" + ag) + "_babyDuck"))
159- if ($isInstanceOf(d, "Boolean"))
277+func au (h) = {
278+ let d = h
279+ if ($isInstanceOf(d, "Int"))
280+ then {
281+ let av = d
282+ av
283+ }
284+ else if ($isInstanceOf(d, "String"))
160285 then {
161- let aa = d
162- aa
286+ let aw = d
287+ throw(("RAI: wrong type, expected: Int, but got: " + aw))
163288 }
164- else false
165- }
166- let am = getStringValue(this, ai)
167- let J = getIntegerValue(this, aj)
168- if ((am == t))
169- then {
170- let an = getStringValue(this, A(ah, y))
171- throw(("IFDH: The duck was hatched and claimed already, here is the folowing: " + an))
172- }
173- else if ((J > height))
174- then throw((((("Hatching is not finished yet " + toString((J - height))) + " blocks remaining, it will take around ") + toString((J - height))) + " minutes"))
175- else {
176- let ao = P(y, J)
177- let ap = ao._1
178- let aq = ao._2
179- let ar = ao._3
180- let as = (("{\"genotype\": \"" + ap) + "\", \"crossbreeding\": true}")
181- let at = Issue(ap, as, 1, 0, false, unit, J)
182- let au = calculateAssetId(at)
183- let av = (D(B(ap)) + 1)
184-[StringEntry(ai, t), StringEntry(ak, toBase58String(au)), StringEntry(toBase58String(au), ak), BooleanEntry((("duck_" + toBase58String(au)) + "_grown"), al), IntegerEntry(B(ap), av), ar, IntegerEntry((("stats_" + aq) + "_quantity"), (D((("stats_" + aq) + "_quantity")) + 1)), at, ScriptTransfer(Address(fromBase58String(ah)), 1, au)]
185- }
289+ else throw("RAI: wrong type, expected: Int")
186290 }
187291
188292
189-func aw (c) = {
293+func ax (c) = {
190294 let d = getBoolean(this, c)
191295 if ($isInstanceOf(d, "Boolean"))
192296 then {
193- let w = d
194- w
297+ let R = d
298+ R
195299 }
196300 else false
197301 }
198302
199303
200-func ax () = aw("TESTENV")
304+func ay () = ax("TESTENV")
201305
202306
203-@Callable(ay)
204-func configureOracle (az) = if ((ay.caller != this))
205- then throw("ICU: admin only")
206- else [StringEntry("static_oracleAddress", az)]
307+func az (aA,b,N,aB) = {
308+ let aC = Q((((("address_" + b) + "_initTx_") + aA) + "_finishBlock"))
309+ let aq = Q((((("address_" + b) + "_initTx_") + aA) + "_assetRarity"))
310+ let aD = j((((("address_" + b) + "_initTx_") + aA) + "_status"))
311+ let aE = M(N)
312+ if ((aE == aE))
313+ then {
314+ let aF = invoke(H(), "recordAction", ["REBIRTH"], nil)
315+ if ((aF == aF))
316+ then {
317+ func aG (b) = fromBase58String(a(b, "static_accessItemAssetId"))
318+
319+ func aH (b) = f(b, "static_accessItemPrice")
320+
321+ if ((aD != "open"))
322+ then throw("rebirth is finished or not open")
323+ else if ((aC > height))
324+ then throw("you cannot finish rebirth, yet")
325+ else {
326+ let aI = an(fromBase58String(aA), aC, aq)
327+ let ai = aA
328+ let aJ = if ((indexOf(aI, "perch") != unit))
329+ then {
330+ let aK = takeRight(aI, 1)
331+ let aJ = if (!(aB))
332+ then {
333+ let aL = invoke(D(), "addFreePerch", [b, aK, 1], nil)
334+ if ((aL == aL))
335+ then [StringEntry((((("address_" + b) + "_initTx_") + aA) + "_result"), S(aL))]
336+ else throw("Strict value is not equal to itself.")
337+ }
338+ else {
339+ let aL = invoke(D(), "addFreePerch", [b, aK, 2], nil)
340+ if ((aL == aL))
341+ then [StringEntry((((("address_" + b) + "_initTx_") + aA) + "_result"), S(aL)), StringEntry((((("address_" + b) + "_initTx_") + aA) + "_result1"), S(aL)), StringEntry((((("address_" + b) + "_initTx_") + aA) + "_win1"), aI)]
342+ else throw("Strict value is not equal to itself.")
343+ }
344+ if ((aJ == aJ))
345+ then aJ
346+ else throw("Strict value is not equal to itself.")
347+ }
348+ else if ((aI == "incubator"))
349+ then {
350+ let aJ = if (!(aB))
351+ then {
352+ let aL = invoke(B(), "issueFreeDuck", [b, ai], nil)
353+ if ((aL == aL))
354+ then [StringEntry((((("address_" + b) + "_initTx_") + aA) + "_result"), S(aL))]
355+ else throw("Strict value is not equal to itself.")
356+ }
357+ else {
358+ let aL = invoke(B(), "issueFreeDuck", [b, ai], nil)
359+ if ((aL == aL))
360+ then {
361+ let aM = invoke(E(), "issueFreeDuckling", [b, ai, 100], nil)
362+ if ((aM == aM))
363+ then [StringEntry((((("address_" + b) + "_initTx_") + aA) + "_result"), S(aL)), StringEntry((((("address_" + b) + "_initTx_") + aA) + "_result1"), S(aM)), StringEntry((((("address_" + b) + "_initTx_") + aA) + "_win1"), "duckling_100")]
364+ else throw("Strict value is not equal to itself.")
365+ }
366+ else throw("Strict value is not equal to itself.")
367+ }
368+ if ((aJ == aJ))
369+ then aJ
370+ else throw("Strict value is not equal to itself.")
371+ }
372+ else if ((aI == "ar"))
373+ then {
374+ let ad = aG(I())
375+ let aN = aH(I())
376+ let aO = invoke(I(), "buyAccessItemOther", [b], [AttachedPayment(ad, aN)])
377+ if ((aO == aO))
378+ then [StringEntry((((("address_" + b) + "_initTx_") + aA) + "_result"), S(aO))]
379+ else throw("Strict value is not equal to itself.")
380+ }
381+ else if ((aI == "phoenix"))
382+ then {
383+ let aO = invoke(B(), "issueJackpot", [b, ai, "WWWWHWTF"], nil)
384+ if ((aO == aO))
385+ then [StringEntry((((("address_" + b) + "_initTx_") + aA) + "_result"), S(aO))]
386+ else throw("Strict value is not equal to itself.")
387+ }
388+ else if ((indexOf(aI, "duckling") != unit))
389+ then {
390+ let aP = parseIntValue(split(aI, "_")[1])
391+ let aQ = if (aB)
392+ then (2 * aP)
393+ else aP
394+ let aO = invoke(E(), "issueFreeDuckling", [b, ai, aQ], nil)
395+ if ((aO == aO))
396+ then [StringEntry((((("address_" + b) + "_initTx_") + aA) + "_result"), S(aO))]
397+ else throw("Strict value is not equal to itself.")
398+ }
399+ else if ((indexOf(aI, "item") != unit))
400+ then {
401+ let aR = split(aI, "!")[1]
402+ let aJ = if (!(aB))
403+ then {
404+ let aL = invoke(G(), "issueArtefactIndex", [aR, b, 0], nil)
405+ if ((aL == aL))
406+ then [StringEntry((((("address_" + b) + "_initTx_") + aA) + "_result"), S(aL))]
407+ else throw("Strict value is not equal to itself.")
408+ }
409+ else {
410+ let aL = invoke(G(), "issueArtefactIndex", [aR, b, 0], nil)
411+ if ((aL == aL))
412+ then {
413+ let aM = invoke(G(), "issueArtefactIndex", [aR, b, 1], nil)
414+ if ((aM == aM))
415+ then [StringEntry((((("address_" + b) + "_initTx_") + aA) + "_result"), S(aL)), StringEntry((((("address_" + b) + "_initTx_") + aA) + "_result"), S(aM)), StringEntry((((("address_" + b) + "_initTx_") + aA) + "_win1"), aI)]
416+ else throw("Strict value is not equal to itself.")
417+ }
418+ else throw("Strict value is not equal to itself.")
419+ }
420+ if ((aJ == aJ))
421+ then aJ
422+ else throw("Strict value is not equal to itself.")
423+ }
424+ else throw("RFB: Some error occured, please contact the admins!")
425+ ((aJ ++ [StringEntry((((("address_" + b) + "_initTx_") + aA) + "_win"), aI), StringEntry((((("address_" + b) + "_initTx_") + aA) + "_status"), "finish")]) ++ aE)
426+ }
427+ }
428+ else throw("Strict value is not equal to itself.")
429+ }
430+ else throw("Strict value is not equal to itself.")
431+ }
432+
433+
434+@Callable(aS)
435+func configureOracle (aT) = if ((aS.caller != this))
436+ then throw("RCU: admin only")
437+ else [StringEntry("static_oracleAddress", aT)]
207438
208439
209440
210-@Callable(ay)
211-func setDiscount (E) = if ((ay.caller != this))
212- then throw("ISD: admin_only")
213- else [IntegerEntry("discountCoefficient", E)]
214-
215-
216-
217-@Callable(ay)
218-func setSale (E) = if ((ay.caller != this))
219- then throw("ISS: admin_only")
220- else [IntegerEntry("saleCoefficient", E)]
221-
222-
223-
224-@Callable(ay)
225-func startDuckHatching (aA) = if ((k() != ay.caller))
226- then throw("ISDHFA: From now on this is only possible through ducklings!")
227- else if ((u() > 0))
228- then throw("ISDH: EGG operations are temporarily locked")
441+@Callable(aS)
442+func initRebirth (aU) = {
443+ let aV = aS.payments[0]
444+ let ad = value(aV.assetId)
445+ let aA = toBase58String(aS.transactionId)
446+ let b = toString(aS.caller)
447+ if ((aV.amount != 1))
448+ then throw("NFT is not attached")
229449 else {
230- let W = D("ducks_amount")
231- let aB = V(W)
232-[StringEntry(x(toString(ay.originCaller), ay.transactionId), s), IntegerEntry(z(toString(ay.originCaller), ay.transactionId), (height + p)), IntegerEntry("ducks_amount", (W + 1)), IntegerEntry("ducks_last_price", (aB / 1000000)), BooleanEntry((("hatching_" + toBase58String(ay.transactionId)) + "_babyDuck"), true)]
233- }
234-
235-
236-
237-@Callable(ay)
238-func startDuckHatchingForAddress (b) = if ((u() > 0))
239- then throw("ISDHFA: EGG operations are temporarily locked")
240- else if ((ay.caller != this))
241- then throw("ISDHFA: Permission denied")
242- else {
243- let W = D("ducks_amount")
244- let aB = V(W)
245-[StringEntry(x(b, ay.transactionId), s), IntegerEntry(z(b, ay.transactionId), (height + p)), IntegerEntry("ducks_amount", (W + 1)), IntegerEntry("ducks_last_price", (aB / 1000000)), BooleanEntry((("hatching_" + toBase58String(ay.transactionId)) + "_promo"), true)]
246- }
247-
248-
249-
250-@Callable(ay)
251-func finishDuckHatching (ag) = {
252- let ah = toString(ay.originCaller)
253- af(ag, ah)
254- }
255-
256-
257-
258-@Callable(ay)
259-func issueFreeDuck (b,ag) = if ((ay.caller != j()))
260- then throw("ISFD: rebirth only")
261- else {
262- let y = fromBase58String(ag)
263- let ai = x(b, y)
264- let aj = z(b, y)
265- let W = D("ducks_amount")
266- let aB = V(W)
267- let aC = P(y, (valueOrErrorMessage(transactionHeightById(y), ((ag + " not found ") + toBase58String(y))) + 1))
268- let ap = aC._1
269- let aq = aC._2
270- let ar = aC._3
271- let as = (("{\"genotype\": \"" + ap) + "\", \"crossbreeding\": true}")
272- let at = Issue(ap, as, 1, 0, false, unit, height)
273- let au = calculateAssetId(at)
274- let av = (D(B(ap)) + 1)
275- let ak = A(b, y)
276- $Tuple2([IntegerEntry(z(b, y), height), IntegerEntry("ducks_amount", (W + 1)), IntegerEntry("ducks_last_price", (aB / 1000000)), ar, StringEntry(ai, t), StringEntry(ak, toBase58String(au)), StringEntry(toBase58String(au), ak), IntegerEntry(B(ap), av), IntegerEntry((("stats_" + aq) + "_quantity"), (D((("stats_" + aq) + "_quantity")) + 1)), at, ScriptTransfer(value(addressFromString(b)), 1, au)], toBase58String(au))
277- }
278-
279-
280-
281-@Callable(ay)
282-func issueFreeDuckDefinedGenes (b,ag,aD) = if (if ((ay.caller != this))
283- then (ay.caller != o())
284- else false)
285- then throw("IIFDDG: Admin only!")
286- else {
287- let y = fromBase58String(ag)
288- let ai = x(b, y)
289- let aj = z(b, y)
290- let W = D("ducks_amount")
291- let aB = V(W)
292- let T = H(4, y, height, 6)
293- let U = if ((T == 0))
294- then "Y"
295- else if ((T == 1))
296- then "G"
297- else if ((T == 2))
298- then "B"
299- else "R"
300- let aE = $Tuple2(((("DUCK-" + aD) + "-G") + U), (("8" + take(aD, 1)) + "-G"))
301- let ap = aE._1
302- let aq = aE._2
303- let as = (("{\"genotype\": \"" + ap) + "\", \"crossbreeding\": true}")
304- let at = Issue(ap, as, 1, 0, false, unit, height)
305- let au = calculateAssetId(at)
306- let av = (D(B(ap)) + 1)
307- let ak = A(b, y)
308- $Tuple2([IntegerEntry(z(b, y), height), IntegerEntry("ducks_amount", (W + 1)), IntegerEntry("ducks_last_price", (aB / 1000000)), StringEntry(ai, t), StringEntry(ak, toBase58String(au)), StringEntry(toBase58String(au), ak), IntegerEntry(B(ap), av), IntegerEntry((("stats_" + aq) + "_quantity"), (D((("stats_" + aq) + "_quantity")) + 1)), at, ScriptTransfer(value(addressFromString(b)), 1, au)], toBase58String(au))
309- }
310-
311-
312-
313-@Callable(ay)
314-func issueJackpot (b,ag,O) = if (if ((ay.caller != j()))
315- then (ay.caller != this)
316- else false)
317- then throw("ISJ: admin or rebirth only")
318- else {
319- let y = fromBase58String(ag)
320- let ai = x(b, y)
321- let aj = z(b, y)
322- let W = D("ducks_amount")
323- let aB = V(W)
324- let aF = $Tuple2((("DUCK-" + O) + "-JU"), "8W-J")
325- let ap = aF._1
326- let aq = aF._2
327- let as = (("{\"genotype\": \"" + ap) + "\", \"crossbreeding\": true}")
328- let at = Issue(ap, as, 1, 0, false, unit, height)
329- let au = calculateAssetId(at)
330- let ak = A(b, y)
331- let aG = f(ak)
332- if ((aG != ""))
333- then throw((("ISJ: You will override following duckId :" + ak) + " make sure that your txId is unique!"))
334- else $Tuple2([IntegerEntry(z(b, y), height), IntegerEntry("ducks_amount", (W + 1)), IntegerEntry("ducks_last_price", (aB / 1000000)), StringEntry(ai, t), StringEntry(ak, toBase58String(au)), StringEntry(toBase58String(au), ak), IntegerEntry(B(ap), (D(B(ap)) + 1)), IntegerEntry((("stats_" + aq) + "_quantity"), (D((("stats_" + aq) + "_quantity")) + 1)), at, ScriptTransfer(value(addressFromString(b)), 1, au)], toBase58String(au))
335- }
336-
337-
338-
339-@Callable(ay)
340-func reduceRarity (au,aH) = {
341- let at = fromBase58String(au)
342- if (if ((ay.caller != j()))
343- then (ay.caller != this)
344- else false)
345- then throw("IRR: admin or rebirth only")
346- else {
347- let ap = value(assetInfo(at)).name
348- let aI = takeRight(take(ap, 6), 1)
349- let aq = (("8" + aI) + "-G")
350-[IntegerEntry(B(ap), (D(B(ap)) - 1)), IntegerEntry((("stats_" + aq) + "_quantity"), (D((("stats_" + aq) + "_quantity")) - 1))]
450+ let aW = au(invoke(H(), "useCoupons", [O], nil))
451+ if ((aW == aW))
452+ then {
453+ let aX = (O - aW)
454+ let aE = M(aS.payments[1])
455+ if ((aE == aE))
456+ then {
457+ let N = if ((aX != 0))
458+ then {
459+ let aY = value(aS.payments[2])
460+ if ((aY.assetId != A()))
461+ then throw("You need to attach EGG tokens as fee")
462+ else if ((aX > aY.amount))
463+ then throw(("You need to attach the following amount of EGG tokens as fee: 0." + toString(aX)))
464+ else {
465+ let aZ = fraction(aX, 5, 100)
466+ let ba = g(invoke(K(), "refPayment", [aU], [AttachedPayment(A(), aZ)]))
467+ if ((ba == ba))
468+ then {
469+ let bb = if (ba)
470+ then (aX - aZ)
471+ else aX
472+ let bc = invoke(J(), "burnAttachedPayments", nil, [AttachedPayment(A(), bb)])
473+ if ((bc == bc))
474+ then aX
475+ else throw("Strict value is not equal to itself.")
476+ }
477+ else throw("Strict value is not equal to itself.")
478+ }
479+ }
480+ else 0
481+ if ((N == N))
482+ then {
483+ let bd = ac(ad)
484+ let be = bd._1
485+ let bf = bd._2
486+ let aO = invoke(at(ad), "reduceRarity", [toBase58String(ad), be], nil)
487+ if ((aO == aO))
488+ then ([IntegerEntry((((("address_" + b) + "_initTx_") + aA) + "_finishBlock"), (height + k)), StringEntry((((("address_" + b) + "_initTx_") + aA) + "_status"), "open"), IntegerEntry((((("address_" + b) + "_initTx_") + aA) + "_assetRarity"), bf), StringEntry((((("address_" + b) + "_initTx_") + aA) + "_assetId"), toBase58String(ad))] ++ aE)
489+ else throw("Strict value is not equal to itself.")
490+ }
491+ else throw("Strict value is not equal to itself.")
492+ }
493+ else throw("Strict value is not equal to itself.")
494+ }
495+ else throw("Strict value is not equal to itself.")
351496 }
352497 }
353498
354499
355500
356-@Callable(ay)
357-func finishDuckHatchingAdmin (ag,ah) = if ((ay.caller != this))
358- then throw("IFDHA: Only admins can run this!")
359- else af(ag, ah)
501+@Callable(aS)
502+func finishRebirth (aA) = az(aA, toString(aS.caller), aS.payments[0], false)
360503
361504
362-@Verifier(aJ)
363-func aK () = if (ax())
364- then sigVerify(aJ.bodyBytes, aJ.proofs[0], aJ.senderPublicKey)
505+
506+@Callable(aS)
507+func finishRebirthDouble (aA) = if (!(if ((size(aS.payments) == 2))
508+ then (aS.payments[0].amount == 1)
509+ else false))
510+ then throw("Invalid payment")
365511 else {
366- let aL = base58'6TdaXEfhnjYquvPf3yV7MFxt2CbgFmaqsvGwkKfXtKi4'
367- let aM = base58'7DsP2WaMLocbHuUxux7pbXRjTrrZ1TFQPsi5QumS3gr8'
368- let aN = base58'BpFWP3p3JgYrrP45xfrKzeMcWMEXoinj4FVPPkUiA8D3'
369- let aO = if (sigVerify(aJ.bodyBytes, aJ.proofs[0], aL))
512+ let ad = value(aS.payments[0].assetId)
513+ let bg = S(invoke(G(), "checkArtefactDetails", [toBase58String(ad)], nil))
514+ if ((bg == bg))
515+ then if ((bg == "ART-GIFT_DOUBL"))
516+ then ([Burn(ad, 1)] ++ az(aA, toString(aS.caller), aS.payments[1], true))
517+ else throw("Error! Wrong item attached to double rewards!")
518+ else throw("Strict value is not equal to itself.")
519+ }
520+
521+
522+@Verifier(ao)
523+func bh () = if (ay())
524+ then sigVerify(ao.bodyBytes, ao.proofs[0], ao.senderPublicKey)
525+ else {
526+ let bi = base58'6TdaXEfhnjYquvPf3yV7MFxt2CbgFmaqsvGwkKfXtKi4'
527+ let bj = base58'7DsP2WaMLocbHuUxux7pbXRjTrrZ1TFQPsi5QumS3gr8'
528+ let bk = base58'BpFWP3p3JgYrrP45xfrKzeMcWMEXoinj4FVPPkUiA8D3'
529+ let bl = if (sigVerify(ao.bodyBytes, ao.proofs[0], bi))
370530 then 1
371- else if (sigVerify(aJ.bodyBytes, aJ.proofs[1], aL))
531+ else if (sigVerify(ao.bodyBytes, ao.proofs[1], bi))
372532 then 1
373- else if (sigVerify(aJ.bodyBytes, aJ.proofs[2], aL))
533+ else if (sigVerify(ao.bodyBytes, ao.proofs[2], bi))
374534 then 1
375535 else 0
376- let aP = if (sigVerify(aJ.bodyBytes, aJ.proofs[0], aM))
536+ let bm = if (sigVerify(ao.bodyBytes, ao.proofs[0], bj))
377537 then 1
378- else if (sigVerify(aJ.bodyBytes, aJ.proofs[1], aM))
538+ else if (sigVerify(ao.bodyBytes, ao.proofs[1], bj))
379539 then 1
380- else if (sigVerify(aJ.bodyBytes, aJ.proofs[2], aM))
540+ else if (sigVerify(ao.bodyBytes, ao.proofs[2], bj))
381541 then 1
382542 else 0
383- let aQ = if (sigVerify(aJ.bodyBytes, aJ.proofs[0], aN))
543+ let bn = if (sigVerify(ao.bodyBytes, ao.proofs[0], bk))
384544 then 1
385- else if (sigVerify(aJ.bodyBytes, aJ.proofs[1], aN))
545+ else if (sigVerify(ao.bodyBytes, ao.proofs[1], bk))
386546 then 1
387- else if (sigVerify(aJ.bodyBytes, aJ.proofs[2], aN))
547+ else if (sigVerify(ao.bodyBytes, ao.proofs[2], bk))
388548 then 1
389549 else 0
390- let aR = ((aO + aP) + aQ)
391- let d = aJ
392- (aR >= 2)
550+ let bo = ((bl + bm) + bn)
551+ let d = ao
552+ (bo >= 2)
393553 }
394554
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
15-func f (c) = a(this, c)
15+func f (b,c) = {
16+ let d = getInteger(b, c)
17+ if ($isInstanceOf(d, "Int"))
18+ then {
19+ let e = d
20+ e
21+ }
22+ else throw("RTGIE: Something went wrong")
23+ }
1624
1725
18-func g () = "static_turtleRebirthAddress"
26+func g (h) = {
27+ let d = h
28+ if ($isInstanceOf(d, "Boolean"))
29+ then {
30+ let i = d
31+ i
32+ }
33+ else throw("FAB: wrong type, expected: Boolean")
34+ }
1935
2036
21-func h () = Address(fromBase58String(f("static_oracleAddress")))
37+func j (c) = a(this, c)
2238
2339
24-func i () = fromBase58String(a(h(), "static_eggAssetId"))
40+let k = 2
41+
42+func l () = "static_oracleAddress"
2543
2644
27-func j () = Address(fromBase58String(a(h(), "static_rebirthAddress")))
45+func m () = "static_eggAssetId"
2846
2947
30-func k () = Address(fromBase58String(a(h(), "static_babyDuckAddress")))
48+func n () = "static_incubatorAddress"
3149
3250
33-func l () = Address(fromBase58String(a(h(), "static_refContractAddress")))
51+func o () = "static_breederAddress"
3452
3553
36-func m () = Address(fromBase58String(a(h(), "static_couponsAddress")))
54+func p () = "static_farmingAddressNew"
3755
3856
39-func n () = Address(fromBase58String(a(h(), "static_burnAddress")))
57+func q () = "static_babyDuckAddress"
4058
4159
42-func o () = Address(fromBase58String(a(h(), g())))
60+func r () = "static_gameDappAddress"
4361
4462
45-let p = 2
63+func s () = "static_itemsAddress"
4664
47-let q = 10
4865
49-let r = 5
66+func t () = "static_couponsAddress"
5067
51-let s = "HATCHING_STARTED"
5268
53-let t = "HATCHING_FINISHED"
69+func u () = "static_huntAddress"
5470
55-func u () = {
56- let v = Address(base58'3PEPftf2kWZDmAaWBjs6BUJa9957kiA2PkU')
57- let d = getInteger(v, "egglock")
71+
72+func v () = "static_burnAddress"
73+
74+
75+func w () = "static_refContractAddress"
76+
77+
78+func x () = "static_extraFee"
79+
80+
81+func y () = "static_feeAggregator"
82+
83+
84+func z () = Address(fromBase58String(j(l())))
85+
86+
87+func A () = fromBase58String(a(z(), m()))
88+
89+
90+func B () = Address(fromBase58String(a(z(), n())))
91+
92+
93+func C () = Address(fromBase58String(a(z(), o())))
94+
95+
96+func D () = Address(fromBase58String(a(z(), p())))
97+
98+
99+func E () = Address(fromBase58String(a(z(), q())))
100+
101+
102+func F () = Address(fromBase58String(a(z(), r())))
103+
104+
105+func G () = Address(fromBase58String(a(z(), s())))
106+
107+
108+func H () = Address(fromBase58String(a(z(), t())))
109+
110+
111+func I () = Address(fromBase58String(a(z(), u())))
112+
113+
114+func J () = Address(fromBase58String(a(z(), v())))
115+
116+
117+func K () = Address(fromBase58String(a(z(), w())))
118+
119+
120+func L () = Address(fromBase58String(a(z(), y())))
121+
122+
123+func M (N) = if (isDefined(N.assetId))
124+ then throw("RCAP: Please attach waves")
125+ else {
126+ let O = getIntegerValue(z(), x())
127+ if ((N.amount != O))
128+ then throw((("RCAP: Please attach exactly " + toString(O)) + " amount of wavelets"))
129+ else [ScriptTransfer(L(), O, unit)]
130+ }
131+
132+
133+let P = 1000
134+
135+func Q (c) = {
136+ let d = getInteger(this, c)
58137 if ($isInstanceOf(d, "Int"))
59138 then {
60- let w = d
61- w
139+ let R = d
140+ R
62141 }
63142 else 0
64143 }
65144
66145
67-func x (b,y) = (((b + "_") + toBase58String(y)) + "_status")
68-
69-
70-func z (b,y) = (((b + "_") + toBase58String(y)) + "_fh")
71-
72-
73-func A (b,y) = (((b + "_") + toBase58String(y)) + "_di")
74-
75-
76-func B (C) = (("stats_" + C) + "_amount")
77-
78-
79-func D (c) = {
80- let E = {
81- let d = getInteger(this, c)
82- if ($isInstanceOf(d, "Int"))
146+func S (h) = {
147+ let d = h
148+ if ($isInstanceOf(d, "String"))
149+ then {
150+ let T = d
151+ T
152+ }
153+ else if ($isInstanceOf(d, "Int"))
83154 then {
84- let w = d
85- w
155+ let T = d
156+ throw("wrong type, expected: String, got: Int")
86157 }
87- else 0
88- }
89- E
158+ else if ($isInstanceOf(d, "Unit"))
159+ then {
160+ let T = d
161+ throw("wrong type, expected: String, got: Unit")
162+ }
163+ else throw("wrong type, expected: String")
90164 }
91165
92166
93-let F = D("discountCoefficient")
167+let O = Q("currentPrice")
94168
95-let G = D("saleCoefficient")
169+func U (V) = if (contains(V, "0"))
170+ then ""
171+ else V
96172
97-func H (I,y,J,K) = {
98- let L = value(blockInfoByHeight((J - 1)))
99- let M = sha256(((base58'incubator' + y) + value(L.vrf)))
100- (toInt(M, K) % I)
173+
174+func W (X) = if ((X == "G"))
175+ then B()
176+ else C()
177+
178+
179+func Y (Z,X) = {
180+ let aa = getIntegerValue(W(X), (("stats_" + Z) + "_quantity"))
181+ let ab = pow((10000 / aa), 4, 5, 1, 2, FLOOR)
182+ if ((ab > 0))
183+ then ab
184+ else 2
101185 }
102186
103187
104-func N (O) = D(B(O))
188+func ac (ad) = if (if ((value(assetInfo(ad)).issuer == C()))
189+ then true
190+ else (value(assetInfo(ad)).issuer == B()))
191+ then {
192+ let ae = value(assetInfo(ad)).name
193+ let X = take(takeRight(ae, 2), 1)
194+ let af = S(invoke(C(), "getGenFromName", [ae], nil))
195+ if ((af == af))
196+ then $Tuple2(af, Y(af, X))
197+ else throw("Strict value is not equal to itself.")
198+ }
199+ else throw("not valid NFT")
105200
106201
107-func P (y,J) = {
108- let Q = H(200, y, J, 4)
109- let R = IntegerEntry("last_jackpot_random", Q)
110- let S = H(4, y, J, 5)
111- let T = H(4, y, J, 6)
112- let U = if ((T == 0))
113- then "Y"
114- else if ((T == 1))
115- then "G"
116- else if ((T == 2))
117- then "B"
118- else "R"
119- if ((S == 0))
120- then $Tuple3(("DUCK-MMMMMMMM-G" + U), "8M-G", R)
121- else if ((S == 1))
122- then $Tuple3(("DUCK-NNNNNNNN-G" + U), "8N-G", R)
123- else if ((S == 2))
124- then $Tuple3(("DUCK-OOOOOOOO-G" + U), "8O-G", R)
125- else $Tuple3(("DUCK-PPPPPPPP-G" + U), "8P-G", R)
202+func ag (ah,ai,aj,ak) = {
203+ let al = value(blockInfoByHeight((aj - 1)))
204+ let am = sha256((ai + value(al.vrf)))
205+ (toInt(am, (ak * 8)) % ah)
126206 }
127207
128208
129-func V (W) = {
130- let X = W
131- let Y = F
132- let Z = G
133- let aa = q
134- let ab = pow((100 + ((X * Y) / (10 * aa))), 2, 5, 1, 2, DOWN)
135- if ((G == 0))
136- then (ab * 1000000)
137- else (((ab * 1000000) / 100) * (100 - G))
209+func an (ao,ap,aq) = {
210+ let ar = ag(10, ao, ap, 1)
211+ if ((ar == 1))
212+ then "phoenix"
213+ else {
214+ let as = ag(1000, ao, ap, 0)
215+ if ((10 > as))
216+ then "item!ART-FREEGENE"
217+ else if ((126 > as))
218+ then "ar"
219+ else if ((186 > as))
220+ then "item!ART-FIRE_ARMOUR"
221+ else if ((206 > as))
222+ then "item!ART-FEED5"
223+ else if ((226 > as))
224+ then "item!ART-FEED10"
225+ else if ((246 > as))
226+ then "item!ART-FEED15"
227+ else if ((266 > as))
228+ then "item!ART-FEED20"
229+ else if ((286 > as))
230+ then "item!ART-FEED25"
231+ else if ((296 > as))
232+ then "item!ART-FEED50"
233+ else if ((300 > as))
234+ then "item!ART-FEED100"
235+ else if ((310 > as))
236+ then "item!ART-CROWN"
237+ else if ((350 > as))
238+ then "incubator"
239+ else if ((460 > as))
240+ then if ((50 > aq))
241+ then "item!ART-BUILTBODY"
242+ else "item!ART-MUTARIUM-D"
243+ else if ((480 > as))
244+ then "item!ART-SNAKE"
245+ else if ((510 > as))
246+ then "item!ART-ROBODUCK"
247+ else if ((600 > as))
248+ then "item!ART-KATANA"
249+ else if ((650 > as))
250+ then if ((50 > aq))
251+ then "item!ART-SCEPTER"
252+ else "item!ART-MUTARIUM-D"
253+ else if ((710 > as))
254+ then "item!ART-MUTARIUM-D"
255+ else if ((720 > as))
256+ then "item!ART-MUTARIUM-G"
257+ else if ((890 > as))
258+ then "duckling_10"
259+ else if ((960 > as))
260+ then "duckling_20"
261+ else "duckling_40"
262+ }
138263 }
139264
140265
141-func ac (ad) = {
142- let d = ad
143- if ($isInstanceOf(d, "Int"))
144- then {
145- let ae = d
146- ae
147- }
148- else throw("IAI: wrong type, expected: Int")
266+func at (ad) = {
267+ let ae = value(assetInfo(ad)).name
268+ let X = take(takeRight(ae, 2), 1)
269+ if (if ((X == "G"))
270+ then true
271+ else (X == "J"))
272+ then B()
273+ else C()
149274 }
150275
151276
152-func af (ag,ah) = {
153- let y = fromBase58String(ag)
154- let ai = x(ah, y)
155- let aj = z(ah, y)
156- let ak = A(ah, y)
157- let al = {
158- let d = getBoolean((("hatching_" + ag) + "_babyDuck"))
159- if ($isInstanceOf(d, "Boolean"))
277+func au (h) = {
278+ let d = h
279+ if ($isInstanceOf(d, "Int"))
280+ then {
281+ let av = d
282+ av
283+ }
284+ else if ($isInstanceOf(d, "String"))
160285 then {
161- let aa = d
162- aa
286+ let aw = d
287+ throw(("RAI: wrong type, expected: Int, but got: " + aw))
163288 }
164- else false
165- }
166- let am = getStringValue(this, ai)
167- let J = getIntegerValue(this, aj)
168- if ((am == t))
169- then {
170- let an = getStringValue(this, A(ah, y))
171- throw(("IFDH: The duck was hatched and claimed already, here is the folowing: " + an))
172- }
173- else if ((J > height))
174- then throw((((("Hatching is not finished yet " + toString((J - height))) + " blocks remaining, it will take around ") + toString((J - height))) + " minutes"))
175- else {
176- let ao = P(y, J)
177- let ap = ao._1
178- let aq = ao._2
179- let ar = ao._3
180- let as = (("{\"genotype\": \"" + ap) + "\", \"crossbreeding\": true}")
181- let at = Issue(ap, as, 1, 0, false, unit, J)
182- let au = calculateAssetId(at)
183- let av = (D(B(ap)) + 1)
184-[StringEntry(ai, t), StringEntry(ak, toBase58String(au)), StringEntry(toBase58String(au), ak), BooleanEntry((("duck_" + toBase58String(au)) + "_grown"), al), IntegerEntry(B(ap), av), ar, IntegerEntry((("stats_" + aq) + "_quantity"), (D((("stats_" + aq) + "_quantity")) + 1)), at, ScriptTransfer(Address(fromBase58String(ah)), 1, au)]
185- }
289+ else throw("RAI: wrong type, expected: Int")
186290 }
187291
188292
189-func aw (c) = {
293+func ax (c) = {
190294 let d = getBoolean(this, c)
191295 if ($isInstanceOf(d, "Boolean"))
192296 then {
193- let w = d
194- w
297+ let R = d
298+ R
195299 }
196300 else false
197301 }
198302
199303
200-func ax () = aw("TESTENV")
304+func ay () = ax("TESTENV")
201305
202306
203-@Callable(ay)
204-func configureOracle (az) = if ((ay.caller != this))
205- then throw("ICU: admin only")
206- else [StringEntry("static_oracleAddress", az)]
307+func az (aA,b,N,aB) = {
308+ let aC = Q((((("address_" + b) + "_initTx_") + aA) + "_finishBlock"))
309+ let aq = Q((((("address_" + b) + "_initTx_") + aA) + "_assetRarity"))
310+ let aD = j((((("address_" + b) + "_initTx_") + aA) + "_status"))
311+ let aE = M(N)
312+ if ((aE == aE))
313+ then {
314+ let aF = invoke(H(), "recordAction", ["REBIRTH"], nil)
315+ if ((aF == aF))
316+ then {
317+ func aG (b) = fromBase58String(a(b, "static_accessItemAssetId"))
318+
319+ func aH (b) = f(b, "static_accessItemPrice")
320+
321+ if ((aD != "open"))
322+ then throw("rebirth is finished or not open")
323+ else if ((aC > height))
324+ then throw("you cannot finish rebirth, yet")
325+ else {
326+ let aI = an(fromBase58String(aA), aC, aq)
327+ let ai = aA
328+ let aJ = if ((indexOf(aI, "perch") != unit))
329+ then {
330+ let aK = takeRight(aI, 1)
331+ let aJ = if (!(aB))
332+ then {
333+ let aL = invoke(D(), "addFreePerch", [b, aK, 1], nil)
334+ if ((aL == aL))
335+ then [StringEntry((((("address_" + b) + "_initTx_") + aA) + "_result"), S(aL))]
336+ else throw("Strict value is not equal to itself.")
337+ }
338+ else {
339+ let aL = invoke(D(), "addFreePerch", [b, aK, 2], nil)
340+ if ((aL == aL))
341+ then [StringEntry((((("address_" + b) + "_initTx_") + aA) + "_result"), S(aL)), StringEntry((((("address_" + b) + "_initTx_") + aA) + "_result1"), S(aL)), StringEntry((((("address_" + b) + "_initTx_") + aA) + "_win1"), aI)]
342+ else throw("Strict value is not equal to itself.")
343+ }
344+ if ((aJ == aJ))
345+ then aJ
346+ else throw("Strict value is not equal to itself.")
347+ }
348+ else if ((aI == "incubator"))
349+ then {
350+ let aJ = if (!(aB))
351+ then {
352+ let aL = invoke(B(), "issueFreeDuck", [b, ai], nil)
353+ if ((aL == aL))
354+ then [StringEntry((((("address_" + b) + "_initTx_") + aA) + "_result"), S(aL))]
355+ else throw("Strict value is not equal to itself.")
356+ }
357+ else {
358+ let aL = invoke(B(), "issueFreeDuck", [b, ai], nil)
359+ if ((aL == aL))
360+ then {
361+ let aM = invoke(E(), "issueFreeDuckling", [b, ai, 100], nil)
362+ if ((aM == aM))
363+ then [StringEntry((((("address_" + b) + "_initTx_") + aA) + "_result"), S(aL)), StringEntry((((("address_" + b) + "_initTx_") + aA) + "_result1"), S(aM)), StringEntry((((("address_" + b) + "_initTx_") + aA) + "_win1"), "duckling_100")]
364+ else throw("Strict value is not equal to itself.")
365+ }
366+ else throw("Strict value is not equal to itself.")
367+ }
368+ if ((aJ == aJ))
369+ then aJ
370+ else throw("Strict value is not equal to itself.")
371+ }
372+ else if ((aI == "ar"))
373+ then {
374+ let ad = aG(I())
375+ let aN = aH(I())
376+ let aO = invoke(I(), "buyAccessItemOther", [b], [AttachedPayment(ad, aN)])
377+ if ((aO == aO))
378+ then [StringEntry((((("address_" + b) + "_initTx_") + aA) + "_result"), S(aO))]
379+ else throw("Strict value is not equal to itself.")
380+ }
381+ else if ((aI == "phoenix"))
382+ then {
383+ let aO = invoke(B(), "issueJackpot", [b, ai, "WWWWHWTF"], nil)
384+ if ((aO == aO))
385+ then [StringEntry((((("address_" + b) + "_initTx_") + aA) + "_result"), S(aO))]
386+ else throw("Strict value is not equal to itself.")
387+ }
388+ else if ((indexOf(aI, "duckling") != unit))
389+ then {
390+ let aP = parseIntValue(split(aI, "_")[1])
391+ let aQ = if (aB)
392+ then (2 * aP)
393+ else aP
394+ let aO = invoke(E(), "issueFreeDuckling", [b, ai, aQ], nil)
395+ if ((aO == aO))
396+ then [StringEntry((((("address_" + b) + "_initTx_") + aA) + "_result"), S(aO))]
397+ else throw("Strict value is not equal to itself.")
398+ }
399+ else if ((indexOf(aI, "item") != unit))
400+ then {
401+ let aR = split(aI, "!")[1]
402+ let aJ = if (!(aB))
403+ then {
404+ let aL = invoke(G(), "issueArtefactIndex", [aR, b, 0], nil)
405+ if ((aL == aL))
406+ then [StringEntry((((("address_" + b) + "_initTx_") + aA) + "_result"), S(aL))]
407+ else throw("Strict value is not equal to itself.")
408+ }
409+ else {
410+ let aL = invoke(G(), "issueArtefactIndex", [aR, b, 0], nil)
411+ if ((aL == aL))
412+ then {
413+ let aM = invoke(G(), "issueArtefactIndex", [aR, b, 1], nil)
414+ if ((aM == aM))
415+ then [StringEntry((((("address_" + b) + "_initTx_") + aA) + "_result"), S(aL)), StringEntry((((("address_" + b) + "_initTx_") + aA) + "_result"), S(aM)), StringEntry((((("address_" + b) + "_initTx_") + aA) + "_win1"), aI)]
416+ else throw("Strict value is not equal to itself.")
417+ }
418+ else throw("Strict value is not equal to itself.")
419+ }
420+ if ((aJ == aJ))
421+ then aJ
422+ else throw("Strict value is not equal to itself.")
423+ }
424+ else throw("RFB: Some error occured, please contact the admins!")
425+ ((aJ ++ [StringEntry((((("address_" + b) + "_initTx_") + aA) + "_win"), aI), StringEntry((((("address_" + b) + "_initTx_") + aA) + "_status"), "finish")]) ++ aE)
426+ }
427+ }
428+ else throw("Strict value is not equal to itself.")
429+ }
430+ else throw("Strict value is not equal to itself.")
431+ }
432+
433+
434+@Callable(aS)
435+func configureOracle (aT) = if ((aS.caller != this))
436+ then throw("RCU: admin only")
437+ else [StringEntry("static_oracleAddress", aT)]
207438
208439
209440
210-@Callable(ay)
211-func setDiscount (E) = if ((ay.caller != this))
212- then throw("ISD: admin_only")
213- else [IntegerEntry("discountCoefficient", E)]
214-
215-
216-
217-@Callable(ay)
218-func setSale (E) = if ((ay.caller != this))
219- then throw("ISS: admin_only")
220- else [IntegerEntry("saleCoefficient", E)]
221-
222-
223-
224-@Callable(ay)
225-func startDuckHatching (aA) = if ((k() != ay.caller))
226- then throw("ISDHFA: From now on this is only possible through ducklings!")
227- else if ((u() > 0))
228- then throw("ISDH: EGG operations are temporarily locked")
441+@Callable(aS)
442+func initRebirth (aU) = {
443+ let aV = aS.payments[0]
444+ let ad = value(aV.assetId)
445+ let aA = toBase58String(aS.transactionId)
446+ let b = toString(aS.caller)
447+ if ((aV.amount != 1))
448+ then throw("NFT is not attached")
229449 else {
230- let W = D("ducks_amount")
231- let aB = V(W)
232-[StringEntry(x(toString(ay.originCaller), ay.transactionId), s), IntegerEntry(z(toString(ay.originCaller), ay.transactionId), (height + p)), IntegerEntry("ducks_amount", (W + 1)), IntegerEntry("ducks_last_price", (aB / 1000000)), BooleanEntry((("hatching_" + toBase58String(ay.transactionId)) + "_babyDuck"), true)]
233- }
234-
235-
236-
237-@Callable(ay)
238-func startDuckHatchingForAddress (b) = if ((u() > 0))
239- then throw("ISDHFA: EGG operations are temporarily locked")
240- else if ((ay.caller != this))
241- then throw("ISDHFA: Permission denied")
242- else {
243- let W = D("ducks_amount")
244- let aB = V(W)
245-[StringEntry(x(b, ay.transactionId), s), IntegerEntry(z(b, ay.transactionId), (height + p)), IntegerEntry("ducks_amount", (W + 1)), IntegerEntry("ducks_last_price", (aB / 1000000)), BooleanEntry((("hatching_" + toBase58String(ay.transactionId)) + "_promo"), true)]
246- }
247-
248-
249-
250-@Callable(ay)
251-func finishDuckHatching (ag) = {
252- let ah = toString(ay.originCaller)
253- af(ag, ah)
254- }
255-
256-
257-
258-@Callable(ay)
259-func issueFreeDuck (b,ag) = if ((ay.caller != j()))
260- then throw("ISFD: rebirth only")
261- else {
262- let y = fromBase58String(ag)
263- let ai = x(b, y)
264- let aj = z(b, y)
265- let W = D("ducks_amount")
266- let aB = V(W)
267- let aC = P(y, (valueOrErrorMessage(transactionHeightById(y), ((ag + " not found ") + toBase58String(y))) + 1))
268- let ap = aC._1
269- let aq = aC._2
270- let ar = aC._3
271- let as = (("{\"genotype\": \"" + ap) + "\", \"crossbreeding\": true}")
272- let at = Issue(ap, as, 1, 0, false, unit, height)
273- let au = calculateAssetId(at)
274- let av = (D(B(ap)) + 1)
275- let ak = A(b, y)
276- $Tuple2([IntegerEntry(z(b, y), height), IntegerEntry("ducks_amount", (W + 1)), IntegerEntry("ducks_last_price", (aB / 1000000)), ar, StringEntry(ai, t), StringEntry(ak, toBase58String(au)), StringEntry(toBase58String(au), ak), IntegerEntry(B(ap), av), IntegerEntry((("stats_" + aq) + "_quantity"), (D((("stats_" + aq) + "_quantity")) + 1)), at, ScriptTransfer(value(addressFromString(b)), 1, au)], toBase58String(au))
277- }
278-
279-
280-
281-@Callable(ay)
282-func issueFreeDuckDefinedGenes (b,ag,aD) = if (if ((ay.caller != this))
283- then (ay.caller != o())
284- else false)
285- then throw("IIFDDG: Admin only!")
286- else {
287- let y = fromBase58String(ag)
288- let ai = x(b, y)
289- let aj = z(b, y)
290- let W = D("ducks_amount")
291- let aB = V(W)
292- let T = H(4, y, height, 6)
293- let U = if ((T == 0))
294- then "Y"
295- else if ((T == 1))
296- then "G"
297- else if ((T == 2))
298- then "B"
299- else "R"
300- let aE = $Tuple2(((("DUCK-" + aD) + "-G") + U), (("8" + take(aD, 1)) + "-G"))
301- let ap = aE._1
302- let aq = aE._2
303- let as = (("{\"genotype\": \"" + ap) + "\", \"crossbreeding\": true}")
304- let at = Issue(ap, as, 1, 0, false, unit, height)
305- let au = calculateAssetId(at)
306- let av = (D(B(ap)) + 1)
307- let ak = A(b, y)
308- $Tuple2([IntegerEntry(z(b, y), height), IntegerEntry("ducks_amount", (W + 1)), IntegerEntry("ducks_last_price", (aB / 1000000)), StringEntry(ai, t), StringEntry(ak, toBase58String(au)), StringEntry(toBase58String(au), ak), IntegerEntry(B(ap), av), IntegerEntry((("stats_" + aq) + "_quantity"), (D((("stats_" + aq) + "_quantity")) + 1)), at, ScriptTransfer(value(addressFromString(b)), 1, au)], toBase58String(au))
309- }
310-
311-
312-
313-@Callable(ay)
314-func issueJackpot (b,ag,O) = if (if ((ay.caller != j()))
315- then (ay.caller != this)
316- else false)
317- then throw("ISJ: admin or rebirth only")
318- else {
319- let y = fromBase58String(ag)
320- let ai = x(b, y)
321- let aj = z(b, y)
322- let W = D("ducks_amount")
323- let aB = V(W)
324- let aF = $Tuple2((("DUCK-" + O) + "-JU"), "8W-J")
325- let ap = aF._1
326- let aq = aF._2
327- let as = (("{\"genotype\": \"" + ap) + "\", \"crossbreeding\": true}")
328- let at = Issue(ap, as, 1, 0, false, unit, height)
329- let au = calculateAssetId(at)
330- let ak = A(b, y)
331- let aG = f(ak)
332- if ((aG != ""))
333- then throw((("ISJ: You will override following duckId :" + ak) + " make sure that your txId is unique!"))
334- else $Tuple2([IntegerEntry(z(b, y), height), IntegerEntry("ducks_amount", (W + 1)), IntegerEntry("ducks_last_price", (aB / 1000000)), StringEntry(ai, t), StringEntry(ak, toBase58String(au)), StringEntry(toBase58String(au), ak), IntegerEntry(B(ap), (D(B(ap)) + 1)), IntegerEntry((("stats_" + aq) + "_quantity"), (D((("stats_" + aq) + "_quantity")) + 1)), at, ScriptTransfer(value(addressFromString(b)), 1, au)], toBase58String(au))
335- }
336-
337-
338-
339-@Callable(ay)
340-func reduceRarity (au,aH) = {
341- let at = fromBase58String(au)
342- if (if ((ay.caller != j()))
343- then (ay.caller != this)
344- else false)
345- then throw("IRR: admin or rebirth only")
346- else {
347- let ap = value(assetInfo(at)).name
348- let aI = takeRight(take(ap, 6), 1)
349- let aq = (("8" + aI) + "-G")
350-[IntegerEntry(B(ap), (D(B(ap)) - 1)), IntegerEntry((("stats_" + aq) + "_quantity"), (D((("stats_" + aq) + "_quantity")) - 1))]
450+ let aW = au(invoke(H(), "useCoupons", [O], nil))
451+ if ((aW == aW))
452+ then {
453+ let aX = (O - aW)
454+ let aE = M(aS.payments[1])
455+ if ((aE == aE))
456+ then {
457+ let N = if ((aX != 0))
458+ then {
459+ let aY = value(aS.payments[2])
460+ if ((aY.assetId != A()))
461+ then throw("You need to attach EGG tokens as fee")
462+ else if ((aX > aY.amount))
463+ then throw(("You need to attach the following amount of EGG tokens as fee: 0." + toString(aX)))
464+ else {
465+ let aZ = fraction(aX, 5, 100)
466+ let ba = g(invoke(K(), "refPayment", [aU], [AttachedPayment(A(), aZ)]))
467+ if ((ba == ba))
468+ then {
469+ let bb = if (ba)
470+ then (aX - aZ)
471+ else aX
472+ let bc = invoke(J(), "burnAttachedPayments", nil, [AttachedPayment(A(), bb)])
473+ if ((bc == bc))
474+ then aX
475+ else throw("Strict value is not equal to itself.")
476+ }
477+ else throw("Strict value is not equal to itself.")
478+ }
479+ }
480+ else 0
481+ if ((N == N))
482+ then {
483+ let bd = ac(ad)
484+ let be = bd._1
485+ let bf = bd._2
486+ let aO = invoke(at(ad), "reduceRarity", [toBase58String(ad), be], nil)
487+ if ((aO == aO))
488+ then ([IntegerEntry((((("address_" + b) + "_initTx_") + aA) + "_finishBlock"), (height + k)), StringEntry((((("address_" + b) + "_initTx_") + aA) + "_status"), "open"), IntegerEntry((((("address_" + b) + "_initTx_") + aA) + "_assetRarity"), bf), StringEntry((((("address_" + b) + "_initTx_") + aA) + "_assetId"), toBase58String(ad))] ++ aE)
489+ else throw("Strict value is not equal to itself.")
490+ }
491+ else throw("Strict value is not equal to itself.")
492+ }
493+ else throw("Strict value is not equal to itself.")
494+ }
495+ else throw("Strict value is not equal to itself.")
351496 }
352497 }
353498
354499
355500
356-@Callable(ay)
357-func finishDuckHatchingAdmin (ag,ah) = if ((ay.caller != this))
358- then throw("IFDHA: Only admins can run this!")
359- else af(ag, ah)
501+@Callable(aS)
502+func finishRebirth (aA) = az(aA, toString(aS.caller), aS.payments[0], false)
360503
361504
362-@Verifier(aJ)
363-func aK () = if (ax())
364- then sigVerify(aJ.bodyBytes, aJ.proofs[0], aJ.senderPublicKey)
505+
506+@Callable(aS)
507+func finishRebirthDouble (aA) = if (!(if ((size(aS.payments) == 2))
508+ then (aS.payments[0].amount == 1)
509+ else false))
510+ then throw("Invalid payment")
365511 else {
366- let aL = base58'6TdaXEfhnjYquvPf3yV7MFxt2CbgFmaqsvGwkKfXtKi4'
367- let aM = base58'7DsP2WaMLocbHuUxux7pbXRjTrrZ1TFQPsi5QumS3gr8'
368- let aN = base58'BpFWP3p3JgYrrP45xfrKzeMcWMEXoinj4FVPPkUiA8D3'
369- let aO = if (sigVerify(aJ.bodyBytes, aJ.proofs[0], aL))
512+ let ad = value(aS.payments[0].assetId)
513+ let bg = S(invoke(G(), "checkArtefactDetails", [toBase58String(ad)], nil))
514+ if ((bg == bg))
515+ then if ((bg == "ART-GIFT_DOUBL"))
516+ then ([Burn(ad, 1)] ++ az(aA, toString(aS.caller), aS.payments[1], true))
517+ else throw("Error! Wrong item attached to double rewards!")
518+ else throw("Strict value is not equal to itself.")
519+ }
520+
521+
522+@Verifier(ao)
523+func bh () = if (ay())
524+ then sigVerify(ao.bodyBytes, ao.proofs[0], ao.senderPublicKey)
525+ else {
526+ let bi = base58'6TdaXEfhnjYquvPf3yV7MFxt2CbgFmaqsvGwkKfXtKi4'
527+ let bj = base58'7DsP2WaMLocbHuUxux7pbXRjTrrZ1TFQPsi5QumS3gr8'
528+ let bk = base58'BpFWP3p3JgYrrP45xfrKzeMcWMEXoinj4FVPPkUiA8D3'
529+ let bl = if (sigVerify(ao.bodyBytes, ao.proofs[0], bi))
370530 then 1
371- else if (sigVerify(aJ.bodyBytes, aJ.proofs[1], aL))
531+ else if (sigVerify(ao.bodyBytes, ao.proofs[1], bi))
372532 then 1
373- else if (sigVerify(aJ.bodyBytes, aJ.proofs[2], aL))
533+ else if (sigVerify(ao.bodyBytes, ao.proofs[2], bi))
374534 then 1
375535 else 0
376- let aP = if (sigVerify(aJ.bodyBytes, aJ.proofs[0], aM))
536+ let bm = if (sigVerify(ao.bodyBytes, ao.proofs[0], bj))
377537 then 1
378- else if (sigVerify(aJ.bodyBytes, aJ.proofs[1], aM))
538+ else if (sigVerify(ao.bodyBytes, ao.proofs[1], bj))
379539 then 1
380- else if (sigVerify(aJ.bodyBytes, aJ.proofs[2], aM))
540+ else if (sigVerify(ao.bodyBytes, ao.proofs[2], bj))
381541 then 1
382542 else 0
383- let aQ = if (sigVerify(aJ.bodyBytes, aJ.proofs[0], aN))
543+ let bn = if (sigVerify(ao.bodyBytes, ao.proofs[0], bk))
384544 then 1
385- else if (sigVerify(aJ.bodyBytes, aJ.proofs[1], aN))
545+ else if (sigVerify(ao.bodyBytes, ao.proofs[1], bk))
386546 then 1
387- else if (sigVerify(aJ.bodyBytes, aJ.proofs[2], aN))
547+ else if (sigVerify(ao.bodyBytes, ao.proofs[2], bk))
388548 then 1
389549 else 0
390- let aR = ((aO + aP) + aQ)
391- let d = aJ
392- (aR >= 2)
550+ let bo = ((bl + bm) + bn)
551+ let d = ao
552+ (bo >= 2)
393553 }
394554

github/deemru/w8io/169f3d6 
107.84 ms