tx · 6gdV21rFTiRGt36w9dgXkHpKS3j6FqVvTMHfCkYwvbqp

3PEktVux2RhchSN63DsDo4b4mz4QqzKSeDv:  -0.03100000 Waves

2023.09.21 19:54 [3831214] smart account 3PEktVux2RhchSN63DsDo4b4mz4QqzKSeDv > SELF 0.00000000 Waves

{ "type": 13, "id": "6gdV21rFTiRGt36w9dgXkHpKS3j6FqVvTMHfCkYwvbqp", "fee": 3100000, "feeAssetId": null, "timestamp": 1695315266315, "version": 2, "chainId": 87, "sender": "3PEktVux2RhchSN63DsDo4b4mz4QqzKSeDv", "senderPublicKey": "EBHsV7TQYm4qS2V7iZXEXwcbUdEYQyCSLEdY2AMvLPns", "proofs": [ "2RSPehKdKzuukw76UdikuU5wAur7X5RM4RiLNQgmjFWDTXtESV6feXqmUoPKntJTXZuKgkZc5Y4rtLHvxX3Sr71y", "2Qmn89kdCorj1gxajeUqvsToAkAtB87KeL6Peyg36BJSD8PyevYb1Aq2bZGSefjGK9oEVbS5gLotEe9bqxLYbigA" ], "script": "base64:BgJACAISAwoBCBIDCgEBEgMKAQESAwoBCBIDCgEIEgMKAQgSBAoCCAgSBQoDCAgIEgUKAwgICBIECgIICBIECgIICCABFHRyeUdldFN0cmluZ0V4dGVybmFsAgdhZGRyZXNzA2tleQQHJG1hdGNoMAkAnQgCBQdhZGRyZXNzBQNrZXkDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFhBQckbWF0Y2gwBQFhAgABDHRyeUdldFN0cmluZwEDa2V5CQEUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwCBQR0aGlzBQNrZXkBHnN0YXRpY0tleV90dXJ0bGVSZWJpcnRoQWRkcmVzcwACG3N0YXRpY190dXJ0bGVSZWJpcnRoQWRkcmVzcwEJZ2V0T3JhY2xlAAkBB0FkZHJlc3MBCQDZBAEJAQx0cnlHZXRTdHJpbmcBAhRzdGF0aWNfb3JhY2xlQWRkcmVzcwENZ2V0RWdnQXNzZXRJZAAJANkEAQkBFHRyeUdldFN0cmluZ0V4dGVybmFsAgkBCWdldE9yYWNsZQACEXN0YXRpY19lZ2dBc3NldElkARFnZXRSZWJpcnRoQWRkcmVzcwAJAQdBZGRyZXNzAQkA2QQBCQEUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwCCQEJZ2V0T3JhY2xlAAIVc3RhdGljX3JlYmlydGhBZGRyZXNzARJnZXRCYWJ5RHVja0FkZHJlc3MACQEHQWRkcmVzcwEJANkEAQkBFHRyeUdldFN0cmluZ0V4dGVybmFsAgkBCWdldE9yYWNsZQACFnN0YXRpY19iYWJ5RHVja0FkZHJlc3MBFWdldFJlZkNvbnRyYWN0QWRkcmVzcwAJAQdBZGRyZXNzAQkA2QQBCQEUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwCCQEJZ2V0T3JhY2xlAAIZc3RhdGljX3JlZkNvbnRyYWN0QWRkcmVzcwERZ2V0Q291cG9uc0FkZHJlc3MACQEHQWRkcmVzcwEJANkEAQkBFHRyeUdldFN0cmluZ0V4dGVybmFsAgkBCWdldE9yYWNsZQACFXN0YXRpY19jb3Vwb25zQWRkcmVzcwEOZ2V0QnVybkFkZHJlc3MACQEHQWRkcmVzcwEJANkEAQkBFHRyeUdldFN0cmluZ0V4dGVybmFsAgkBCWdldE9yYWNsZQACEnN0YXRpY19idXJuQWRkcmVzcwEXZ2V0VHVydGxlUmViaXJ0aEFkZHJlc3MACQEHQWRkcmVzcwEJANkEAQkBFHRyeUdldFN0cmluZ0V4dGVybmFsAgkBCWdldE9yYWNsZQAJAR5zdGF0aWNLZXlfdHVydGxlUmViaXJ0aEFkZHJlc3MAABBkZWxheUZvckhhdGNoaW5nAAIAC3R5cGVzQW1vdW50AAoADVJlZmVyZXJSZXdhcmQABQAPSGF0Y2hpbmdTdGFydGVkAhBIQVRDSElOR19TVEFSVEVEABBIYXRjaGluZ0ZpbmlzaGVkAhFIQVRDSElOR19GSU5JU0hFRAEIaXNMb2NrZWQABA1tYXN0ZXJBZGRyZXNzCQEHQWRkcmVzcwEBGgFXiLIGIfCAykGiMgAjHv+piSJIOd1wFskJBAckbWF0Y2gwCQCaCAIFDW1hc3RlckFkZHJlc3MCB2VnZ2xvY2sDCQABAgUHJG1hdGNoMAIDSW50BAFiBQckbWF0Y2gwBQFiAAABFGdldEhhdGNoaW5nU3RhdHVzS2V5AgdhZGRyZXNzBHR4SWQJAKwCAgkArAICCQCsAgIFB2FkZHJlc3MCAV8JANgEAQUEdHhJZAIHX3N0YXR1cwEaZ2V0SGF0Y2hpbmdGaW5pc2hIZWlnaHRLZXkCB2FkZHJlc3MEdHhJZAkArAICCQCsAgIJAKwCAgUHYWRkcmVzcwIBXwkA2AQBBQR0eElkAgNfZmgBDGdldER1Y2tJZEtleQIHYWRkcmVzcwR0eElkCQCsAgIJAKwCAgkArAICBQdhZGRyZXNzAgFfCQDYBAEFBHR4SWQCA19kaQEPZ2V0RHVja1N0YXRzS2V5AQlnZW5TdHJpbmcJAKwCAgkArAICAgZzdGF0c18FCWdlblN0cmluZwIHX2Ftb3VudAENdHJ5R2V0SW50ZWdlcgEDa2V5BAN2YWwEByRtYXRjaDAJAJoIAgUEdGhpcwUDa2V5AwkAAQIFByRtYXRjaDACA0ludAQBYgUHJG1hdGNoMAUBYgAABQN2YWwAE2Rpc2NvdW50Q29lZmZpY2llbnQJAQ10cnlHZXRJbnRlZ2VyAQITZGlzY291bnRDb2VmZmljaWVudAAPc2FsZUNvZWZmaWNpZW50CQENdHJ5R2V0SW50ZWdlcgECD3NhbGVDb2VmZmljaWVudAEPZ2V0UmFuZG9tTnVtYmVyBAh2YXJpYW50cwR0eElkFGhhdGNoaW5nRmluaXNoSGVpZ2h0Bm9mZnNldAQPcmFuZG9tU2VlZEJsb2NrCQEFdmFsdWUBCQDtBwEJAGUCBRRoYXRjaGluZ0ZpbmlzaEhlaWdodAABBApyYW5kb21IYXNoCQD3AwEJAMsBAgkAywECAQcTAv2Md8TRBQR0eElkCQEFdmFsdWUBCAUPcmFuZG9tU2VlZEJsb2NrA3ZyZgkAagIJALIJAgUKcmFuZG9tSGFzaAUGb2Zmc2V0BQh2YXJpYW50cwENd2FzVW5pcXVlQm9ybgEDZ2VuCQENdHJ5R2V0SW50ZWdlcgEJAQ9nZXREdWNrU3RhdHNLZXkBBQNnZW4BDWdldFJhbmRvbU5hbWUCBHR4SWQUaGF0Y2hpbmdGaW5pc2hIZWlnaHQEDWphY2twb3RSYW5kb20JAQ9nZXRSYW5kb21OdW1iZXIEAGQFBHR4SWQFFGhhdGNoaW5nRmluaXNoSGVpZ2h0AAQEBWVudHJ5CQEMSW50ZWdlckVudHJ5AgITbGFzdF9qYWNrcG90X3JhbmRvbQUNamFja3BvdFJhbmRvbQMDCQAAAgUNamFja3BvdFJhbmRvbQAzCQAAAgkBDXdhc1VuaXF1ZUJvcm4BAhBEVUNLLVdXV1dJTkFMLUpVAAAHCQCVCgMCEERVQ0stV1dXV0lOQUwtSlUCDDFBMUkxTDFONFctSgUFZW50cnkDAwkAAAIFDWphY2twb3RSYW5kb20AEwkAAAIJAQ13YXNVbmlxdWVCb3JuAQIQRFVDSy1XV1dDTE9XTi1KVQAABwkAlQoDAhBEVUNLLVdXV0NMT1dOLUpVAgwxQzFMMU4xTzRXLUoFBWVudHJ5AwMJAAACBQ1qYWNrcG90UmFuZG9tAB0JAAACCQENd2FzVW5pcXVlQm9ybgECEERVQ0stV1dERVRFQ1QtSlUAAAcJAJUKAwIQRFVDSy1XV0RFVEVDVC1KVQIMMUMxRDJFMlQyVy1KBQVlbnRyeQMDCQAAAgUNamFja3BvdFJhbmRvbQAnCQAAAgkBDXdhc1VuaXF1ZUJvcm4BAhBEVUNLLVdXV0FETUlOLUpVAAAHCQCVCgMCEERVQ0stV1dXQURNSU4tSlUCDjFBMUQxSTFNMU4zVy1KBQVlbnRyeQMDCQAAAgUNamFja3BvdFJhbmRvbQAJCQAAAgkBDXdhc1VuaXF1ZUJvcm4BAhBEVUNLLVdXV1dGQVJNLUpVAAAHCQCVCgMCEERVQ0stV1dXV0ZBUk0tSlUCDDFBMUYxTTFSNFctSgUFZW50cnkECnR5cGVSYW5kb20JAQ9nZXRSYW5kb21OdW1iZXIEAAQFBHR4SWQFFGhhdGNoaW5nRmluaXNoSGVpZ2h0AAUEC2NvbG9yUmFuZG9tCQEPZ2V0UmFuZG9tTnVtYmVyBAAEBQR0eElkBRRoYXRjaGluZ0ZpbmlzaEhlaWdodAAGBAVjb2xvcgMJAAACBQtjb2xvclJhbmRvbQAAAgFZAwkAAAIFC2NvbG9yUmFuZG9tAAECAUcDCQAAAgULY29sb3JSYW5kb20AAgIBQgIBUgMJAAACBQp0eXBlUmFuZG9tAAAJAJUKAwkArAICAg9EVUNLLUxMTExMTExMLUcFBWNvbG9yAgQ4TC1HBQVlbnRyeQMJAAACBQp0eXBlUmFuZG9tAAEJAJUKAwkArAICAg9EVUNLLU1NTU1NTU1NLUcFBWNvbG9yAgQ4TS1HBQVlbnRyeQMJAAACBQp0eXBlUmFuZG9tAAIJAJUKAwkArAICAg9EVUNLLU5OTk5OTk5OLUcFBWNvbG9yAgQ4Ti1HBQVlbnRyeQkAlQoDCQCsAgICD0RVQ0stT09PT09PT08tRwUFY29sb3ICBDhPLUcFBWVudHJ5ARVjb3VudEVnZ3NOZWVkZWRBbW91bnQBEHRvdGFsRHVja3NBbW91bnQEAW4FEHRvdGFsRHVja3NBbW91bnQEAWcFE2Rpc2NvdW50Q29lZmZpY2llbnQEAXMFD3NhbGVDb2VmZmljaWVudAQBdAULdHlwZXNBbW91bnQEBXByaWNlCQBsBgkAZAIAZAkAaQIJAGgCBQFuBQFnCQBoAgAKBQF0AAIABQABAAIFBERPV04DCQAAAgUPc2FsZUNvZWZmaWNpZW50AAAJAGgCBQVwcmljZQDAhD0JAGgCCQBpAgkAaAIFBXByaWNlAMCEPQBkCQBlAgBkBQ9zYWxlQ29lZmZpY2llbnQBBWFzSW50AQV2YWx1ZQQHJG1hdGNoMAUFdmFsdWUDCQABAgUHJG1hdGNoMAIDSW50BANpbnQFByRtYXRjaDAFA2ludAkAAgECHklBSTogd3JvbmcgdHlwZSwgZXhwZWN0ZWQ6IEludAEWZmluaXNoSGF0Y2hpbmdJbnRlcm5hbAIHdHhJZFN0cgVvd25lcgQEdHhJZAkA2QQBBQd0eElkU3RyBBFoYXRjaGluZ1N0YXR1c0tleQkBFGdldEhhdGNoaW5nU3RhdHVzS2V5AgUFb3duZXIFBHR4SWQED2ZpbmlzaEhlaWdodEtleQkBGmdldEhhdGNoaW5nRmluaXNoSGVpZ2h0S2V5AgUFb3duZXIFBHR4SWQECWR1Y2tJZEtleQkBDGdldER1Y2tJZEtleQIFBW93bmVyBQR0eElkBAxkdWNrRnJvbUJhYnkEByRtYXRjaDAJAKAIAQkArAICCQCsAgICCWhhdGNoaW5nXwUHdHhJZFN0cgIJX2JhYnlEdWNrAwkAAQIFByRtYXRjaDACB0Jvb2xlYW4EAXQFByRtYXRjaDAFAXQHBBBoYXRjaGluZ1R4U3RhdHVzCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzBRFoYXRjaGluZ1N0YXR1c0tleQQUaGF0Y2hpbmdGaW5pc2hIZWlnaHQJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMFD2ZpbmlzaEhlaWdodEtleQMJAAACBRBoYXRjaGluZ1R4U3RhdHVzBRBIYXRjaGluZ0ZpbmlzaGVkBAZkdWNrSWQJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMJAQxnZXREdWNrSWRLZXkCBQVvd25lcgUEdHhJZAkAAgEJAKwCAgJGSUZESDogVGhlIGR1Y2sgd2FzIGhhdGNoZWQgYW5kIGNsYWltZWQgYWxyZWFkeSwgaGVyZSBpcyB0aGUgZm9sb3dpbmc6IAUGZHVja0lkAwkAZgIFFGhhdGNoaW5nRmluaXNoSGVpZ2h0BQZoZWlnaHQJAAIBCQCsAgIJAKwCAgkArAICCQCsAgICHUhhdGNoaW5nIGlzIG5vdCBmaW5pc2hlZCB5ZXQgCQCkAwEJAGUCBRRoYXRjaGluZ0ZpbmlzaEhlaWdodAUGaGVpZ2h0AicgYmxvY2tzIHJlbWFpbmluZywgaXQgd2lsbCB0YWtlIGFyb3VuZCAJAKQDAQkAZQIFFGhhdGNoaW5nRmluaXNoSGVpZ2h0BQZoZWlnaHQCCCBtaW51dGVzBAskdDA2MDYzNjE0OQkBDWdldFJhbmRvbU5hbWUCBQR0eElkBRRoYXRjaGluZ0ZpbmlzaEhlaWdodAQHZHVja0dlbggFCyR0MDYwNjM2MTQ5Al8xBAdmYXJtR2VuCAULJHQwNjA2MzYxNDkCXzIEEmphY2twb3RSYW5kb21FbnRyeQgFCyR0MDYwNjM2MTQ5Al8zBAtkZXNjcmlwdGlvbgkArAICCQCsAgICDnsiZ2Vub3R5cGUiOiAiBQdkdWNrR2VuAhkiLCAiY3Jvc3NicmVlZGluZyI6IHRydWV9BAVhc3NldAkAwwgHBQdkdWNrR2VuBQtkZXNjcmlwdGlvbgABAAAHBQR1bml0BRRoYXRjaGluZ0ZpbmlzaEhlaWdodAQHYXNzZXRJZAkAuAgBBQVhc3NldAQGYW1vdW50CQBkAgkBDXRyeUdldEludGVnZXIBCQEPZ2V0RHVja1N0YXRzS2V5AQUHZHVja0dlbgABCQDMCAIJAQtTdHJpbmdFbnRyeQIFEWhhdGNoaW5nU3RhdHVzS2V5BRBIYXRjaGluZ0ZpbmlzaGVkCQDMCAIJAQtTdHJpbmdFbnRyeQIFCWR1Y2tJZEtleQkA2AQBBQdhc3NldElkCQDMCAIJAQtTdHJpbmdFbnRyeQIJANgEAQUHYXNzZXRJZAUJZHVja0lkS2V5CQDMCAIJAQxCb29sZWFuRW50cnkCCQCsAgIJAKwCAgIFZHVja18JANgEAQUHYXNzZXRJZAIGX2dyb3duBQxkdWNrRnJvbUJhYnkJAMwIAgkBDEludGVnZXJFbnRyeQIJAQ9nZXREdWNrU3RhdHNLZXkBBQdkdWNrR2VuBQZhbW91bnQJAMwIAgUSamFja3BvdFJhbmRvbUVudHJ5CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgIGc3RhdHNfBQdmYXJtR2VuAglfcXVhbnRpdHkJAGQCCQENdHJ5R2V0SW50ZWdlcgEJAKwCAgkArAICAgZzdGF0c18FB2Zhcm1HZW4CCV9xdWFudGl0eQABCQDMCAIFBWFzc2V0CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBBQVvd25lcgABBQdhc3NldElkBQNuaWwBB2dldEJvb2wBA2tleQQHJG1hdGNoMAkAmwgCBQR0aGlzBQNrZXkDCQABAgUHJG1hdGNoMAIHQm9vbGVhbgQBYgUHJG1hdGNoMAUBYgcBCWlzVGVzdEVudgAJAQdnZXRCb29sAQIHVEVTVEVOVgsBaQEPY29uZmlndXJlT3JhY2xlAQZvcmFjbGUDCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAg9JQ1U6IGFkbWluIG9ubHkJAMwIAgkBC1N0cmluZ0VudHJ5AgIUc3RhdGljX29yYWNsZUFkZHJlc3MFBm9yYWNsZQUDbmlsAWkBC3NldERpc2NvdW50AQN2YWwDCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAg9JU0Q6IGFkbWluX29ubHkJAMwIAgkBDEludGVnZXJFbnRyeQICE2Rpc2NvdW50Q29lZmZpY2llbnQFA3ZhbAUDbmlsAWkBB3NldFNhbGUBA3ZhbAMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECD0lTUzogYWRtaW5fb25seQkAzAgCCQEMSW50ZWdlckVudHJ5AgIPc2FsZUNvZWZmaWNpZW50BQN2YWwFA25pbAFpARFzdGFydER1Y2tIYXRjaGluZwEOcmVmZXJlckFkZHJlc3MDCQECIT0CCQESZ2V0QmFieUR1Y2tBZGRyZXNzAAgFAWkGY2FsbGVyCQACAQI8SVNESEZBOiBGcm9tIG5vdyBvbiB0aGlzIGlzIG9ubHkgcG9zc2libGUgdGhyb3VnaCBkdWNrbGluZ3MhAwkAZgIJAQhpc0xvY2tlZAAAAAkAAgECK0lTREg6IEVHRyBvcGVyYXRpb25zIGFyZSB0ZW1wb3JhcmlseSBsb2NrZWQEEHRvdGFsRHVja3NBbW91bnQJAQ10cnlHZXRJbnRlZ2VyAQIMZHVja3NfYW1vdW50BAplZ2dzTmVlZGVkCQEVY291bnRFZ2dzTmVlZGVkQW1vdW50AQUQdG90YWxEdWNrc0Ftb3VudAkAzAgCCQELU3RyaW5nRW50cnkCCQEUZ2V0SGF0Y2hpbmdTdGF0dXNLZXkCCQClCAEIBQFpDG9yaWdpbkNhbGxlcggFAWkNdHJhbnNhY3Rpb25JZAUPSGF0Y2hpbmdTdGFydGVkCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEaZ2V0SGF0Y2hpbmdGaW5pc2hIZWlnaHRLZXkCCQClCAEIBQFpDG9yaWdpbkNhbGxlcggFAWkNdHJhbnNhY3Rpb25JZAkAZAIFBmhlaWdodAUQZGVsYXlGb3JIYXRjaGluZwkAzAgCCQEMSW50ZWdlckVudHJ5AgIMZHVja3NfYW1vdW50CQBkAgUQdG90YWxEdWNrc0Ftb3VudAABCQDMCAIJAQxJbnRlZ2VyRW50cnkCAhBkdWNrc19sYXN0X3ByaWNlCQBpAgUKZWdnc05lZWRlZADAhD0JAMwIAgkBDEJvb2xlYW5FbnRyeQIJAKwCAgkArAICAgloYXRjaGluZ18JANgEAQgFAWkNdHJhbnNhY3Rpb25JZAIJX2JhYnlEdWNrBgUDbmlsAWkBG3N0YXJ0RHVja0hhdGNoaW5nRm9yQWRkcmVzcwEHYWRkcmVzcwMJAGYCCQEIaXNMb2NrZWQAAAAJAAIBAi1JU0RIRkE6IEVHRyBvcGVyYXRpb25zIGFyZSB0ZW1wb3JhcmlseSBsb2NrZWQDCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAhlJU0RIRkE6IFBlcm1pc3Npb24gZGVuaWVkBBB0b3RhbER1Y2tzQW1vdW50CQENdHJ5R2V0SW50ZWdlcgECDGR1Y2tzX2Ftb3VudAQKZWdnc05lZWRlZAkBFWNvdW50RWdnc05lZWRlZEFtb3VudAEFEHRvdGFsRHVja3NBbW91bnQJAMwIAgkBC1N0cmluZ0VudHJ5AgkBFGdldEhhdGNoaW5nU3RhdHVzS2V5AgUHYWRkcmVzcwgFAWkNdHJhbnNhY3Rpb25JZAUPSGF0Y2hpbmdTdGFydGVkCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEaZ2V0SGF0Y2hpbmdGaW5pc2hIZWlnaHRLZXkCBQdhZGRyZXNzCAUBaQ10cmFuc2FjdGlvbklkCQBkAgUGaGVpZ2h0BRBkZWxheUZvckhhdGNoaW5nCQDMCAIJAQxJbnRlZ2VyRW50cnkCAgxkdWNrc19hbW91bnQJAGQCBRB0b3RhbER1Y2tzQW1vdW50AAEJAMwIAgkBDEludGVnZXJFbnRyeQICEGR1Y2tzX2xhc3RfcHJpY2UJAGkCBQplZ2dzTmVlZGVkAMCEPQkAzAgCCQEMQm9vbGVhbkVudHJ5AgkArAICCQCsAgICCWhhdGNoaW5nXwkA2AQBCAUBaQ10cmFuc2FjdGlvbklkAgZfcHJvbW8GBQNuaWwBaQESZmluaXNoRHVja0hhdGNoaW5nAQd0eElkU3RyBAVvd25lcgkApQgBCAUBaQxvcmlnaW5DYWxsZXIJARZmaW5pc2hIYXRjaGluZ0ludGVybmFsAgUHdHhJZFN0cgUFb3duZXIBaQENaXNzdWVGcmVlRHVjawIHYWRkcmVzcwd0eElkU3RyAwkBAiE9AggFAWkGY2FsbGVyCQERZ2V0UmViaXJ0aEFkZHJlc3MACQACAQISSVNGRDogcmViaXJ0aCBvbmx5BAR0eElkCQDZBAEFB3R4SWRTdHIEEWhhdGNoaW5nU3RhdHVzS2V5CQEUZ2V0SGF0Y2hpbmdTdGF0dXNLZXkCBQdhZGRyZXNzBQR0eElkBA9maW5pc2hIZWlnaHRLZXkJARpnZXRIYXRjaGluZ0ZpbmlzaEhlaWdodEtleQIFB2FkZHJlc3MFBHR4SWQEEHRvdGFsRHVja3NBbW91bnQJAQ10cnlHZXRJbnRlZ2VyAQIMZHVja3NfYW1vdW50BAplZ2dzTmVlZGVkCQEVY291bnRFZ2dzTmVlZGVkQW1vdW50AQUQdG90YWxEdWNrc0Ftb3VudAQMJHQwOTg5NTEwMDU3CQENZ2V0UmFuZG9tTmFtZQIFBHR4SWQJAGQCCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOkHAQUEdHhJZAkArAICCQCsAgIFB3R4SWRTdHICCyBub3QgZm91bmQgCQDYBAEFBHR4SWQAAQQHZHVja0dlbggFDCR0MDk4OTUxMDA1NwJfMQQHZmFybUdlbggFDCR0MDk4OTUxMDA1NwJfMgQSamFja3BvdFJhbmRvbUVudHJ5CAUMJHQwOTg5NTEwMDU3Al8zBAtkZXNjcmlwdGlvbgkArAICCQCsAgICDnsiZ2Vub3R5cGUiOiAiBQdkdWNrR2VuAhkiLCAiY3Jvc3NicmVlZGluZyI6IHRydWV9BAVhc3NldAkAwwgHBQdkdWNrR2VuBQtkZXNjcmlwdGlvbgABAAAHBQR1bml0BQZoZWlnaHQEB2Fzc2V0SWQJALgIAQUFYXNzZXQEBmFtb3VudAkAZAIJAQ10cnlHZXRJbnRlZ2VyAQkBD2dldER1Y2tTdGF0c0tleQEFB2R1Y2tHZW4AAQQJZHVja0lkS2V5CQEMZ2V0RHVja0lkS2V5AgUHYWRkcmVzcwUEdHhJZAkAlAoCCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEaZ2V0SGF0Y2hpbmdGaW5pc2hIZWlnaHRLZXkCBQdhZGRyZXNzBQR0eElkBQZoZWlnaHQJAMwIAgkBDEludGVnZXJFbnRyeQICDGR1Y2tzX2Ftb3VudAkAZAIFEHRvdGFsRHVja3NBbW91bnQAAQkAzAgCCQEMSW50ZWdlckVudHJ5AgIQZHVja3NfbGFzdF9wcmljZQkAaQIFCmVnZ3NOZWVkZWQAwIQ9CQDMCAIFEmphY2twb3RSYW5kb21FbnRyeQkAzAgCCQELU3RyaW5nRW50cnkCBRFoYXRjaGluZ1N0YXR1c0tleQUQSGF0Y2hpbmdGaW5pc2hlZAkAzAgCCQELU3RyaW5nRW50cnkCBQlkdWNrSWRLZXkJANgEAQUHYXNzZXRJZAkAzAgCCQELU3RyaW5nRW50cnkCCQDYBAEFB2Fzc2V0SWQFCWR1Y2tJZEtleQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBD2dldER1Y2tTdGF0c0tleQEFB2R1Y2tHZW4FBmFtb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICCQCsAgICBnN0YXRzXwUHZmFybUdlbgIJX3F1YW50aXR5CQBkAgkBDXRyeUdldEludGVnZXIBCQCsAgIJAKwCAgIGc3RhdHNfBQdmYXJtR2VuAglfcXVhbnRpdHkAAQkAzAgCBQVhc3NldAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEFdmFsdWUBCQCmCAEFB2FkZHJlc3MAAQUHYXNzZXRJZAUDbmlsCQDYBAEFB2Fzc2V0SWQBaQEZaXNzdWVGcmVlRHVja0RlZmluZWRHZW5lcwMHYWRkcmVzcwd0eElkU3RyBWdlbmVzAwMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkBAiE9AggFAWkGY2FsbGVyCQEXZ2V0VHVydGxlUmViaXJ0aEFkZHJlc3MABwkAAgECE0lJRkRERzogQWRtaW4gb25seSEEBHR4SWQJANkEAQUHdHhJZFN0cgQRaGF0Y2hpbmdTdGF0dXNLZXkJARRnZXRIYXRjaGluZ1N0YXR1c0tleQIFB2FkZHJlc3MFBHR4SWQED2ZpbmlzaEhlaWdodEtleQkBGmdldEhhdGNoaW5nRmluaXNoSGVpZ2h0S2V5AgUHYWRkcmVzcwUEdHhJZAQQdG90YWxEdWNrc0Ftb3VudAkBDXRyeUdldEludGVnZXIBAgxkdWNrc19hbW91bnQECmVnZ3NOZWVkZWQJARVjb3VudEVnZ3NOZWVkZWRBbW91bnQBBRB0b3RhbER1Y2tzQW1vdW50BAtjb2xvclJhbmRvbQkBD2dldFJhbmRvbU51bWJlcgQABAUEdHhJZAUGaGVpZ2h0AAYEBWNvbG9yAwkAAAIFC2NvbG9yUmFuZG9tAAACAVkDCQAAAgULY29sb3JSYW5kb20AAQIBRwMJAAACBQtjb2xvclJhbmRvbQACAgFCAgFSBA0kdDAxMTc1NDExODMxCQCUCgIJAKwCAgkArAICCQCsAgICBURVQ0stBQVnZW5lcwICLUcFBWNvbG9yCQCsAgIJAKwCAgIBOAkArwICBQVnZW5lcwABAgItRwQHZHVja0dlbggFDSR0MDExNzU0MTE4MzECXzEEB2Zhcm1HZW4IBQ0kdDAxMTc1NDExODMxAl8yBAtkZXNjcmlwdGlvbgkArAICCQCsAgICDnsiZ2Vub3R5cGUiOiAiBQdkdWNrR2VuAhkiLCAiY3Jvc3NicmVlZGluZyI6IHRydWV9BAVhc3NldAkAwwgHBQdkdWNrR2VuBQtkZXNjcmlwdGlvbgABAAAHBQR1bml0BQZoZWlnaHQEB2Fzc2V0SWQJALgIAQUFYXNzZXQEBmFtb3VudAkAZAIJAQ10cnlHZXRJbnRlZ2VyAQkBD2dldER1Y2tTdGF0c0tleQEFB2R1Y2tHZW4AAQQJZHVja0lkS2V5CQEMZ2V0RHVja0lkS2V5AgUHYWRkcmVzcwUEdHhJZAkAlAoCCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEaZ2V0SGF0Y2hpbmdGaW5pc2hIZWlnaHRLZXkCBQdhZGRyZXNzBQR0eElkBQZoZWlnaHQJAMwIAgkBDEludGVnZXJFbnRyeQICDGR1Y2tzX2Ftb3VudAkAZAIFEHRvdGFsRHVja3NBbW91bnQAAQkAzAgCCQEMSW50ZWdlckVudHJ5AgIQZHVja3NfbGFzdF9wcmljZQkAaQIFCmVnZ3NOZWVkZWQAwIQ9CQDMCAIJAQtTdHJpbmdFbnRyeQIFEWhhdGNoaW5nU3RhdHVzS2V5BRBIYXRjaGluZ0ZpbmlzaGVkCQDMCAIJAQtTdHJpbmdFbnRyeQIFCWR1Y2tJZEtleQkA2AQBBQdhc3NldElkCQDMCAIJAQtTdHJpbmdFbnRyeQIJANgEAQUHYXNzZXRJZAUJZHVja0lkS2V5CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEPZ2V0RHVja1N0YXRzS2V5AQUHZHVja0dlbgUGYW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgIGc3RhdHNfBQdmYXJtR2VuAglfcXVhbnRpdHkJAGQCCQENdHJ5R2V0SW50ZWdlcgEJAKwCAgkArAICAgZzdGF0c18FB2Zhcm1HZW4CCV9xdWFudGl0eQABCQDMCAIFBWFzc2V0CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQV2YWx1ZQEJAKYIAQUHYWRkcmVzcwABBQdhc3NldElkBQNuaWwJANgEAQUHYXNzZXRJZAFpAQxpc3N1ZUphY2twb3QDB2FkZHJlc3MHdHhJZFN0cgNnZW4DAwkBAiE9AggFAWkGY2FsbGVyCQERZ2V0UmViaXJ0aEFkZHJlc3MACQECIT0CCAUBaQZjYWxsZXIFBHRoaXMHCQACAQIaSVNKOiBhZG1pbiBvciByZWJpcnRoIG9ubHkEBHR4SWQJANkEAQUHdHhJZFN0cgQRaGF0Y2hpbmdTdGF0dXNLZXkJARRnZXRIYXRjaGluZ1N0YXR1c0tleQIFB2FkZHJlc3MFBHR4SWQED2ZpbmlzaEhlaWdodEtleQkBGmdldEhhdGNoaW5nRmluaXNoSGVpZ2h0S2V5AgUHYWRkcmVzcwUEdHhJZAQQdG90YWxEdWNrc0Ftb3VudAkBDXRyeUdldEludGVnZXIBAgxkdWNrc19hbW91bnQECmVnZ3NOZWVkZWQJARVjb3VudEVnZ3NOZWVkZWRBbW91bnQBBRB0b3RhbER1Y2tzQW1vdW50BA0kdDAxMzI4MDEzMzMyCQCUCgIJAKwCAgkArAICAgVEVUNLLQUDZ2VuAgMtSlUCBDhXLUoEB2R1Y2tHZW4IBQ0kdDAxMzI4MDEzMzMyAl8xBAdmYXJtR2VuCAUNJHQwMTMyODAxMzMzMgJfMgQLZGVzY3JpcHRpb24JAKwCAgkArAICAg57Imdlbm90eXBlIjogIgUHZHVja0dlbgIZIiwgImNyb3NzYnJlZWRpbmciOiB0cnVlfQQFYXNzZXQJAMMIBwUHZHVja0dlbgULZGVzY3JpcHRpb24AAQAABwUEdW5pdAUGaGVpZ2h0BAdhc3NldElkCQC4CAEFBWFzc2V0BAlkdWNrSWRLZXkJAQxnZXREdWNrSWRLZXkCBQdhZGRyZXNzBQR0eElkBBN2YWx1ZUR1Y2tJZEtleUV4aXRzCQEMdHJ5R2V0U3RyaW5nAQUJZHVja0lkS2V5AwkBAiE9AgUTdmFsdWVEdWNrSWRLZXlFeGl0cwIACQACAQkArAICCQCsAgICKUlTSjogWW91IHdpbGwgb3ZlcnJpZGUgZm9sbG93aW5nIGR1Y2tJZCA6BQlkdWNrSWRLZXkCJCBtYWtlIHN1cmUgdGhhdCB5b3VyIHR4SWQgaXMgdW5pcXVlIQkAlAoCCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEaZ2V0SGF0Y2hpbmdGaW5pc2hIZWlnaHRLZXkCBQdhZGRyZXNzBQR0eElkBQZoZWlnaHQJAMwIAgkBDEludGVnZXJFbnRyeQICDGR1Y2tzX2Ftb3VudAkAZAIFEHRvdGFsRHVja3NBbW91bnQAAQkAzAgCCQEMSW50ZWdlckVudHJ5AgIQZHVja3NfbGFzdF9wcmljZQkAaQIFCmVnZ3NOZWVkZWQAwIQ9CQDMCAIJAQtTdHJpbmdFbnRyeQIFEWhhdGNoaW5nU3RhdHVzS2V5BRBIYXRjaGluZ0ZpbmlzaGVkCQDMCAIJAQtTdHJpbmdFbnRyeQIFCWR1Y2tJZEtleQkA2AQBBQdhc3NldElkCQDMCAIJAQtTdHJpbmdFbnRyeQIJANgEAQUHYXNzZXRJZAUJZHVja0lkS2V5CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEPZ2V0RHVja1N0YXRzS2V5AQUHZHVja0dlbgkAZAIJAQ10cnlHZXRJbnRlZ2VyAQkBD2dldER1Y2tTdGF0c0tleQEFB2R1Y2tHZW4AAQkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICCQCsAgICBnN0YXRzXwUHZmFybUdlbgIJX3F1YW50aXR5CQBkAgkBDXRyeUdldEludGVnZXIBCQCsAgIJAKwCAgIGc3RhdHNfBQdmYXJtR2VuAglfcXVhbnRpdHkAAQkAzAgCBQVhc3NldAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEFdmFsdWUBCQCmCAEFB2FkZHJlc3MAAQUHYXNzZXRJZAUDbmlsCQDYBAEFB2Fzc2V0SWQBaQEMcmVkdWNlUmFyaXR5Agdhc3NldElkBGZHZW4EBWFzc2V0CQDZBAEFB2Fzc2V0SWQDAwkBAiE9AggFAWkGY2FsbGVyCQERZ2V0UmViaXJ0aEFkZHJlc3MACQECIT0CCAUBaQZjYWxsZXIFBHRoaXMHCQACAQIaSVJSOiBhZG1pbiBvciByZWJpcnRoIG9ubHkEB2R1Y2tHZW4ICQEFdmFsdWUBCQDsBwEFBWFzc2V0BG5hbWUEBmxldHRlcgkAsgICCQCvAgIFB2R1Y2tHZW4ABgABBAdmYXJtR2VuCQCsAgIJAKwCAgIBOAUGbGV0dGVyAgItRwkAzAgCCQEMSW50ZWdlckVudHJ5AgkBD2dldER1Y2tTdGF0c0tleQEFB2R1Y2tHZW4JAGUCCQENdHJ5R2V0SW50ZWdlcgEJAQ9nZXREdWNrU3RhdHNLZXkBBQdkdWNrR2VuAAEJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICAgZzdGF0c18FB2Zhcm1HZW4CCV9xdWFudGl0eQkAZQIJAQ10cnlHZXRJbnRlZ2VyAQkArAICCQCsAgICBnN0YXRzXwUHZmFybUdlbgIJX3F1YW50aXR5AAEFA25pbAFpARdmaW5pc2hEdWNrSGF0Y2hpbmdBZG1pbgIHdHhJZFN0cgVvd25lcgMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECIElGREhBOiBPbmx5IGFkbWlucyBjYW4gcnVuIHRoaXMhCQEWZmluaXNoSGF0Y2hpbmdJbnRlcm5hbAIFB3R4SWRTdHIFBW93bmVyAQJ0eAEGdmVyaWZ5AAMJAQlpc1Rlc3RFbnYACQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAACAUCdHgPc2VuZGVyUHVibGljS2V5BAlmaXJzdFVzZXIBIFEc5P1m/xJp0vFaFJ87suL0O3/By2gnojRebDjXV91tBApzZWNvbmRVc2VyASDBbN+O7dONc4+Lovn6iQ/0dc1EG1RyUqO0nNJWpC3gdQQJdGhpcmRVc2VyASDnW/SOqtL5SZ5uhCa4+X4f3GeofdwruNTqe83yaArBJQQPZmlyc3RVc2VyU2lnbmVkAwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAUJZmlyc3RVc2VyAAEDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwABBQlmaXJzdFVzZXIAAQMJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAIFCWZpcnN0VXNlcgABAAAEEHNlY29uZFVzZXJTaWduZWQDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAABQpzZWNvbmRVc2VyAAEDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwABBQpzZWNvbmRVc2VyAAEDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwACBQpzZWNvbmRVc2VyAAEAAAQPdGhpcmRVc2VyU2lnbmVkAwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAUJdGhpcmRVc2VyAAEDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwABBQl0aGlyZFVzZXIAAQMJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAIFCXRoaXJkVXNlcgABAAAED3NpZ25hdHVyZXNDb3VudAkAZAIJAGQCBQ9maXJzdFVzZXJTaWduZWQFEHNlY29uZFVzZXJTaWduZWQFD3RoaXJkVXNlclNpZ25lZAQHJG1hdGNoMAUCdHgJAGcCBQ9zaWduYXR1cmVzQ291bnQAAoRB5UQ=", "height": 3831214, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: D1QdQg268z6pKTFUZYPkNwXciHXjipJtYTz2EFbTsAyA Next: AGXcXCBkJwTPi6ejez89CcjVwaXNW2xASfGkBpgejzQ7 Diff:
OldNewDifferences
1515 func f (c) = a(this, c)
1616
1717
18-func g () = Address(fromBase58String(f("static_oracleAddress")))
18+func g () = "static_turtleRebirthAddress"
1919
2020
21-func h () = fromBase58String(a(g(), "static_eggAssetId"))
21+func h () = Address(fromBase58String(f("static_oracleAddress")))
2222
2323
24-func i () = Address(fromBase58String(a(g(), "static_rebirthAddress")))
24+func i () = fromBase58String(a(h(), "static_eggAssetId"))
2525
2626
27-func j () = Address(fromBase58String(a(g(), "static_swopPromoAddress")))
27+func j () = Address(fromBase58String(a(h(), "static_rebirthAddress")))
2828
2929
30-func k () = Address(fromBase58String(a(g(), "static_babyDuckAddress")))
30+func k () = Address(fromBase58String(a(h(), "static_babyDuckAddress")))
3131
3232
33-func l () = Address(fromBase58String(a(g(), "static_refContractAddress")))
33+func l () = Address(fromBase58String(a(h(), "static_refContractAddress")))
3434
3535
36-func m () = Address(fromBase58String(a(g(), "static_couponsAddress")))
36+func m () = Address(fromBase58String(a(h(), "static_couponsAddress")))
3737
3838
39-func n () = Address(fromBase58String(a(g(), "static_burnAddress")))
39+func n () = Address(fromBase58String(a(h(), "static_burnAddress")))
4040
4141
42-let o = 2
42+func o () = Address(fromBase58String(a(h(), g())))
4343
44-let p = 10
4544
46-let q = 5
45+let p = 2
4746
48-let r = "HATCHING_STARTED"
47+let q = 10
4948
50-let s = "HATCHING_FINISHED"
49+let r = 5
5150
52-func t () = {
53- let u = Address(base58'3PEPftf2kWZDmAaWBjs6BUJa9957kiA2PkU')
54- let d = getInteger(u, "egglock")
51+let s = "HATCHING_STARTED"
52+
53+let t = "HATCHING_FINISHED"
54+
55+func u () = {
56+ let v = Address(base58'3PEPftf2kWZDmAaWBjs6BUJa9957kiA2PkU')
57+ let d = getInteger(v, "egglock")
5558 if ($isInstanceOf(d, "Int"))
5659 then {
57- let v = d
58- v
60+ let w = d
61+ w
5962 }
6063 else 0
6164 }
6265
6366
64-func w (b,x) = (((b + "_") + toBase58String(x)) + "_status")
67+func x (b,y) = (((b + "_") + toBase58String(y)) + "_status")
6568
6669
67-func y (b,x) = (((b + "_") + toBase58String(x)) + "_fh")
70+func z (b,y) = (((b + "_") + toBase58String(y)) + "_fh")
6871
6972
70-func z (b,x) = (((b + "_") + toBase58String(x)) + "_di")
73+func A (b,y) = (((b + "_") + toBase58String(y)) + "_di")
7174
7275
73-func A (B) = (("stats_" + B) + "_amount")
76+func B (C) = (("stats_" + C) + "_amount")
7477
7578
76-func C (c) = {
77- let D = {
79+func D (c) = {
80+ let E = {
7881 let d = getInteger(this, c)
7982 if ($isInstanceOf(d, "Int"))
8083 then {
81- let v = d
82- v
84+ let w = d
85+ w
8386 }
8487 else 0
8588 }
86- D
89+ E
8790 }
8891
8992
90-let E = C("discountCoefficient")
93+let F = D("discountCoefficient")
9194
92-let F = C("saleCoefficient")
95+let G = D("saleCoefficient")
9396
94-func G (H,x,I,J) = {
95- let K = value(blockInfoByHeight((I - 1)))
96- let L = sha256(((base58'incubator' + x) + value(K.vrf)))
97- (toInt(L, J) % H)
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)
98101 }
99102
100103
101-func M (N) = C(A(N))
104+func N (O) = D(B(O))
102105
103106
104-func O (x,I) = {
105- let P = G(100, x, I, 4)
106- let Q = IntegerEntry("last_jackpot_random", P)
107- if (if ((P == 51))
108- then (M("DUCK-WWWWINAL-JU") == 0)
107+func P (y,J) = {
108+ let Q = H(100, y, J, 4)
109+ let R = IntegerEntry("last_jackpot_random", Q)
110+ if (if ((Q == 51))
111+ then (N("DUCK-WWWWINAL-JU") == 0)
109112 else false)
110- then $Tuple3("DUCK-WWWWINAL-JU", "1A1I1L1N4W-J", Q)
111- else if (if ((P == 19))
112- then (M("DUCK-WWWCLOWN-JU") == 0)
113+ then $Tuple3("DUCK-WWWWINAL-JU", "1A1I1L1N4W-J", R)
114+ else if (if ((Q == 19))
115+ then (N("DUCK-WWWCLOWN-JU") == 0)
113116 else false)
114- then $Tuple3("DUCK-WWWCLOWN-JU", "1C1L1N1O4W-J", Q)
115- else if (if ((P == 29))
116- then (M("DUCK-WWDETECT-JU") == 0)
117+ then $Tuple3("DUCK-WWWCLOWN-JU", "1C1L1N1O4W-J", R)
118+ else if (if ((Q == 29))
119+ then (N("DUCK-WWDETECT-JU") == 0)
117120 else false)
118- then $Tuple3("DUCK-WWDETECT-JU", "1C1D2E2T2W-J", Q)
119- else if (if ((P == 39))
120- then (M("DUCK-WWWADMIN-JU") == 0)
121+ then $Tuple3("DUCK-WWDETECT-JU", "1C1D2E2T2W-J", R)
122+ else if (if ((Q == 39))
123+ then (N("DUCK-WWWADMIN-JU") == 0)
121124 else false)
122- then $Tuple3("DUCK-WWWADMIN-JU", "1A1D1I1M1N3W-J", Q)
123- else if (if ((P == 9))
124- then (M("DUCK-WWWWFARM-JU") == 0)
125+ then $Tuple3("DUCK-WWWADMIN-JU", "1A1D1I1M1N3W-J", R)
126+ else if (if ((Q == 9))
127+ then (N("DUCK-WWWWFARM-JU") == 0)
125128 else false)
126- then $Tuple3("DUCK-WWWWFARM-JU", "1A1F1M1R4W-J", Q)
129+ then $Tuple3("DUCK-WWWWFARM-JU", "1A1F1M1R4W-J", R)
127130 else {
128- let R = G(4, x, I, 5)
129- let S = G(4, x, I, 6)
130- let T = if ((S == 0))
131+ let S = H(4, y, J, 5)
132+ let T = H(4, y, J, 6)
133+ let U = if ((T == 0))
131134 then "Y"
132- else if ((S == 1))
135+ else if ((T == 1))
133136 then "G"
134- else if ((S == 2))
137+ else if ((T == 2))
135138 then "B"
136139 else "R"
137- if ((R == 0))
138- then $Tuple3(("DUCK-LLLLLLLL-G" + T), "8L-G", Q)
139- else if ((R == 1))
140- then $Tuple3(("DUCK-MMMMMMMM-G" + T), "8M-G", Q)
141- else if ((R == 2))
142- then $Tuple3(("DUCK-NNNNNNNN-G" + T), "8N-G", Q)
143- else $Tuple3(("DUCK-OOOOOOOO-G" + T), "8O-G", Q)
140+ if ((S == 0))
141+ then $Tuple3(("DUCK-LLLLLLLL-G" + U), "8L-G", R)
142+ else if ((S == 1))
143+ then $Tuple3(("DUCK-MMMMMMMM-G" + U), "8M-G", R)
144+ else if ((S == 2))
145+ then $Tuple3(("DUCK-NNNNNNNN-G" + U), "8N-G", R)
146+ else $Tuple3(("DUCK-OOOOOOOO-G" + U), "8O-G", R)
144147 }
145148 }
146149
147150
148-func U (V) = {
149- let W = V
150- let X = E
151+func V (W) = {
152+ let X = W
151153 let Y = F
152- let Z = p
153- let aa = pow((100 + ((W * X) / (10 * Z))), 2, 5, 1, 2, DOWN)
154- if ((F == 0))
155- then (aa * 1000000)
156- else (((aa * 1000000) / 100) * (100 - F))
154+ let Z = G
155+ let aa = q
156+ let ab = pow((100 + ((X * Y) / (10 * aa))), 2, 5, 1, 2, DOWN)
157+ if ((G == 0))
158+ then (ab * 1000000)
159+ else (((ab * 1000000) / 100) * (100 - G))
157160 }
158161
159162
160-func ab (ac) = {
161- let d = ac
163+func ac (ad) = {
164+ let d = ad
162165 if ($isInstanceOf(d, "Int"))
163166 then {
164- let ad = d
165- ad
167+ let ae = d
168+ ae
166169 }
167170 else throw("IAI: wrong type, expected: Int")
168171 }
169172
170173
171-func ae (af,ag) = {
172- let x = fromBase58String(af)
173- let ah = w(ag, x)
174- let ai = y(ag, x)
175- let aj = z(ag, x)
176- let ak = {
177- let d = getBoolean((("hatching_" + af) + "_babyDuck"))
174+func af (ag,ah) = {
175+ let y = fromBase58String(ag)
176+ let ai = x(ah, y)
177+ let aj = z(ah, y)
178+ let ak = A(ah, y)
179+ let al = {
180+ let d = getBoolean((("hatching_" + ag) + "_babyDuck"))
178181 if ($isInstanceOf(d, "Boolean"))
179182 then {
180- let Z = d
181- Z
183+ let aa = d
184+ aa
182185 }
183186 else false
184187 }
185- let al = getStringValue(this, ah)
186- let I = getIntegerValue(this, ai)
187- if ((al == s))
188+ let am = getStringValue(this, ai)
189+ let J = getIntegerValue(this, aj)
190+ if ((am == t))
188191 then {
189- let am = getStringValue(this, z(ag, x))
190- throw(("IFDH: The duck was hatched and claimed already, here is the folowing: " + am))
192+ let an = getStringValue(this, A(ah, y))
193+ throw(("IFDH: The duck was hatched and claimed already, here is the folowing: " + an))
191194 }
192- else if ((I > height))
193- then throw((((("Hatching is not finished yet " + toString((I - height))) + " blocks remaining, it will take around ") + toString((I - height))) + " minutes"))
195+ else if ((J > height))
196+ then throw((((("Hatching is not finished yet " + toString((J - height))) + " blocks remaining, it will take around ") + toString((J - height))) + " minutes"))
194197 else {
195- let an = O(x, I)
196- let ao = an._1
197- let ap = an._2
198- let aq = an._3
199- let ar = (("{\"genotype\": \"" + ao) + "\", \"crossbreeding\": true}")
200- let as = Issue(ao, ar, 1, 0, false, unit, I)
201- let at = calculateAssetId(as)
202- let au = (C(A(ao)) + 1)
203-[StringEntry(ah, s), StringEntry(aj, toBase58String(at)), StringEntry(toBase58String(at), aj), BooleanEntry((("duck_" + toBase58String(at)) + "_grown"), ak), IntegerEntry(A(ao), au), aq, IntegerEntry((("stats_" + ap) + "_quantity"), (C((("stats_" + ap) + "_quantity")) + 1)), as, ScriptTransfer(Address(fromBase58String(ag)), 1, at)]
198+ let ao = P(y, J)
199+ let ap = ao._1
200+ let aq = ao._2
201+ let ar = ao._3
202+ let as = (("{\"genotype\": \"" + ap) + "\", \"crossbreeding\": true}")
203+ let at = Issue(ap, as, 1, 0, false, unit, J)
204+ let au = calculateAssetId(at)
205+ let av = (D(B(ap)) + 1)
206+[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)]
204207 }
205208 }
206209
207210
208-func av (c) = {
211+func aw (c) = {
209212 let d = getBoolean(this, c)
210213 if ($isInstanceOf(d, "Boolean"))
211214 then {
212- let v = d
213- v
215+ let w = d
216+ w
214217 }
215218 else false
216219 }
217220
218221
219-func aw () = av("TESTENV")
222+func ax () = aw("TESTENV")
220223
221224
222-@Callable(ax)
223-func configureOracle (ay) = if ((ax.caller != this))
225+@Callable(ay)
226+func configureOracle (az) = if ((ay.caller != this))
224227 then throw("ICU: admin only")
225- else [StringEntry("static_oracleAddress", ay)]
228+ else [StringEntry("static_oracleAddress", az)]
226229
227230
228231
229-@Callable(ax)
230-func setDiscount (D) = if ((ax.caller != this))
232+@Callable(ay)
233+func setDiscount (E) = if ((ay.caller != this))
231234 then throw("ISD: admin_only")
232- else [IntegerEntry("discountCoefficient", D)]
235+ else [IntegerEntry("discountCoefficient", E)]
233236
234237
235238
236-@Callable(ax)
237-func setSale (D) = if ((ax.caller != this))
239+@Callable(ay)
240+func setSale (E) = if ((ay.caller != this))
238241 then throw("ISS: admin_only")
239- else [IntegerEntry("saleCoefficient", D)]
242+ else [IntegerEntry("saleCoefficient", E)]
240243
241244
242245
243-@Callable(ax)
244-func startDuckHatching (az) = if ((k() != ax.caller))
246+@Callable(ay)
247+func startDuckHatching (aA) = if ((k() != ay.caller))
245248 then throw("ISDHFA: From now on this is only possible through ducklings!")
246- else if ((t() > 0))
249+ else if ((u() > 0))
247250 then throw("ISDH: EGG operations are temporarily locked")
248251 else {
249- let V = C("ducks_amount")
250- let aA = U(V)
251-[StringEntry(w(toString(ax.originCaller), ax.transactionId), r), IntegerEntry(y(toString(ax.originCaller), ax.transactionId), (height + o)), IntegerEntry("ducks_amount", (V + 1)), IntegerEntry("ducks_last_price", (aA / 1000000)), BooleanEntry((("hatching_" + toBase58String(ax.transactionId)) + "_babyDuck"), true)]
252+ let W = D("ducks_amount")
253+ let aB = V(W)
254+[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)]
252255 }
253256
254257
255258
256-@Callable(ax)
257-func startDuckHatchingForAddress (b) = if ((t() > 0))
259+@Callable(ay)
260+func startDuckHatchingForAddress (b) = if ((u() > 0))
258261 then throw("ISDHFA: EGG operations are temporarily locked")
259- else if (if ((ax.caller != j()))
260- then (ax.caller != this)
261- else false)
262+ else if ((ay.caller != this))
262263 then throw("ISDHFA: Permission denied")
263264 else {
264- let V = C("ducks_amount")
265- let aA = U(V)
266-[StringEntry(w(b, ax.transactionId), r), IntegerEntry(y(b, ax.transactionId), (height + o)), IntegerEntry("ducks_amount", (V + 1)), IntegerEntry("ducks_last_price", (aA / 1000000)), BooleanEntry((("hatching_" + toBase58String(ax.transactionId)) + "_promo"), true)]
265+ let W = D("ducks_amount")
266+ let aB = V(W)
267+[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)]
267268 }
268269
269270
270271
271-@Callable(ax)
272-func finishDuckHatching (af) = {
273- let ag = toString(ax.originCaller)
274- ae(af, ag)
272+@Callable(ay)
273+func finishDuckHatching (ag) = {
274+ let ah = toString(ay.originCaller)
275+ af(ag, ah)
275276 }
276277
277278
278279
279-@Callable(ax)
280-func issueFreeDuck (b,af) = if ((ax.caller != i()))
280+@Callable(ay)
281+func issueFreeDuck (b,ag) = if ((ay.caller != j()))
281282 then throw("ISFD: rebirth only")
282283 else {
283- let x = fromBase58String(af)
284- let ah = w(b, x)
285- let ai = y(b, x)
286- let V = C("ducks_amount")
287- let aA = U(V)
288- let aB = O(x, (valueOrErrorMessage(transactionHeightById(x), ((af + " not found ") + toBase58String(x))) + 1))
289- let ao = aB._1
290- let ap = aB._2
291- let aq = aB._3
292- let ar = (("{\"genotype\": \"" + ao) + "\", \"crossbreeding\": true}")
293- let as = Issue(ao, ar, 1, 0, false, unit, height)
294- let at = calculateAssetId(as)
295- let au = (C(A(ao)) + 1)
296- let aj = z(b, x)
297- $Tuple2([IntegerEntry(y(b, x), height), IntegerEntry("ducks_amount", (V + 1)), IntegerEntry("ducks_last_price", (aA / 1000000)), aq, StringEntry(ah, s), StringEntry(aj, toBase58String(at)), StringEntry(toBase58String(at), aj), IntegerEntry(A(ao), au), IntegerEntry((("stats_" + ap) + "_quantity"), (C((("stats_" + ap) + "_quantity")) + 1)), as, ScriptTransfer(value(addressFromString(b)), 1, at)], toBase58String(at))
284+ let y = fromBase58String(ag)
285+ let ai = x(b, y)
286+ let aj = z(b, y)
287+ let W = D("ducks_amount")
288+ let aB = V(W)
289+ let aC = P(y, (valueOrErrorMessage(transactionHeightById(y), ((ag + " not found ") + toBase58String(y))) + 1))
290+ let ap = aC._1
291+ let aq = aC._2
292+ let ar = aC._3
293+ let as = (("{\"genotype\": \"" + ap) + "\", \"crossbreeding\": true}")
294+ let at = Issue(ap, as, 1, 0, false, unit, height)
295+ let au = calculateAssetId(at)
296+ let av = (D(B(ap)) + 1)
297+ let ak = A(b, y)
298+ $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))
298299 }
299300
300301
301302
302-@Callable(ax)
303-func issueFreeDuckDefinedGenes (b,af,aC) = if ((ax.caller != this))
303+@Callable(ay)
304+func issueFreeDuckDefinedGenes (b,ag,aD) = if (if ((ay.caller != this))
305+ then (ay.caller != o())
306+ else false)
304307 then throw("IIFDDG: Admin only!")
305308 else {
306- let x = fromBase58String(af)
307- let ah = w(b, x)
308- let ai = y(b, x)
309- let V = C("ducks_amount")
310- let aA = U(V)
311- let S = G(4, x, height, 6)
312- let T = if ((S == 0))
309+ let y = fromBase58String(ag)
310+ let ai = x(b, y)
311+ let aj = z(b, y)
312+ let W = D("ducks_amount")
313+ let aB = V(W)
314+ let T = H(4, y, height, 6)
315+ let U = if ((T == 0))
313316 then "Y"
314- else if ((S == 1))
317+ else if ((T == 1))
315318 then "G"
316- else if ((S == 2))
319+ else if ((T == 2))
317320 then "B"
318321 else "R"
319- let aD = $Tuple2(((("DUCK-" + aC) + "-G") + T), (("8" + take(aC, 1)) + "-G"))
320- let ao = aD._1
321- let ap = aD._2
322- let ar = (("{\"genotype\": \"" + ao) + "\", \"crossbreeding\": true}")
323- let as = Issue(ao, ar, 1, 0, false, unit, height)
324- let at = calculateAssetId(as)
325- let au = (C(A(ao)) + 1)
326- let aj = z(b, x)
327- $Tuple2([IntegerEntry(y(b, x), height), IntegerEntry("ducks_amount", (V + 1)), IntegerEntry("ducks_last_price", (aA / 1000000)), StringEntry(ah, s), StringEntry(aj, toBase58String(at)), StringEntry(toBase58String(at), aj), IntegerEntry(A(ao), au), IntegerEntry((("stats_" + ap) + "_quantity"), (C((("stats_" + ap) + "_quantity")) + 1)), as, ScriptTransfer(value(addressFromString(b)), 1, at)], toBase58String(at))
322+ let aE = $Tuple2(((("DUCK-" + aD) + "-G") + U), (("8" + take(aD, 1)) + "-G"))
323+ let ap = aE._1
324+ let aq = aE._2
325+ let as = (("{\"genotype\": \"" + ap) + "\", \"crossbreeding\": true}")
326+ let at = Issue(ap, as, 1, 0, false, unit, height)
327+ let au = calculateAssetId(at)
328+ let av = (D(B(ap)) + 1)
329+ let ak = A(b, y)
330+ $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))
328331 }
329332
330333
331334
332-@Callable(ax)
333-func issueJackpot (b,af,N) = if (if ((ax.caller != i()))
334- then (ax.caller != this)
335+@Callable(ay)
336+func issueJackpot (b,ag,O) = if (if ((ay.caller != j()))
337+ then (ay.caller != this)
335338 else false)
336339 then throw("ISJ: admin or rebirth only")
337340 else {
338- let x = fromBase58String(af)
339- let ah = w(b, x)
340- let ai = y(b, x)
341- let V = C("ducks_amount")
342- let aA = U(V)
343- let aE = $Tuple2((("DUCK-" + N) + "-JU"), "8W-J")
344- let ao = aE._1
345- let ap = aE._2
346- let ar = (("{\"genotype\": \"" + ao) + "\", \"crossbreeding\": true}")
347- let as = Issue(ao, ar, 1, 0, false, unit, height)
348- let at = calculateAssetId(as)
349- let aj = z(b, x)
350- let aF = f(aj)
351- if ((aF != ""))
352- then throw((("ISJ: You will override following duckId :" + aj) + " make sure that your txId is unique!"))
353- else $Tuple2([IntegerEntry(y(b, x), height), IntegerEntry("ducks_amount", (V + 1)), IntegerEntry("ducks_last_price", (aA / 1000000)), StringEntry(ah, s), StringEntry(aj, toBase58String(at)), StringEntry(toBase58String(at), aj), IntegerEntry(A(ao), (C(A(ao)) + 1)), IntegerEntry((("stats_" + ap) + "_quantity"), (C((("stats_" + ap) + "_quantity")) + 1)), as, ScriptTransfer(value(addressFromString(b)), 1, at)], toBase58String(at))
341+ let y = fromBase58String(ag)
342+ let ai = x(b, y)
343+ let aj = z(b, y)
344+ let W = D("ducks_amount")
345+ let aB = V(W)
346+ let aF = $Tuple2((("DUCK-" + O) + "-JU"), "8W-J")
347+ let ap = aF._1
348+ let aq = aF._2
349+ let as = (("{\"genotype\": \"" + ap) + "\", \"crossbreeding\": true}")
350+ let at = Issue(ap, as, 1, 0, false, unit, height)
351+ let au = calculateAssetId(at)
352+ let ak = A(b, y)
353+ let aG = f(ak)
354+ if ((aG != ""))
355+ then throw((("ISJ: You will override following duckId :" + ak) + " make sure that your txId is unique!"))
356+ 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))
354357 }
355358
356359
357360
358-@Callable(ax)
359-func reduceRarity (at,aG) = {
360- let as = fromBase58String(at)
361- if (if ((ax.caller != i()))
362- then (ax.caller != this)
361+@Callable(ay)
362+func reduceRarity (au,aH) = {
363+ let at = fromBase58String(au)
364+ if (if ((ay.caller != j()))
365+ then (ay.caller != this)
363366 else false)
364367 then throw("IRR: admin or rebirth only")
365368 else {
366- let ao = value(assetInfo(as)).name
367- let aH = takeRight(take(ao, 6), 1)
368- let ap = (("8" + aH) + "-G")
369-[IntegerEntry(A(ao), (C(A(ao)) - 1)), IntegerEntry((("stats_" + ap) + "_quantity"), (C((("stats_" + ap) + "_quantity")) - 1))]
369+ let ap = value(assetInfo(at)).name
370+ let aI = takeRight(take(ap, 6), 1)
371+ let aq = (("8" + aI) + "-G")
372+[IntegerEntry(B(ap), (D(B(ap)) - 1)), IntegerEntry((("stats_" + aq) + "_quantity"), (D((("stats_" + aq) + "_quantity")) - 1))]
370373 }
371374 }
372375
373376
374377
375-@Callable(ax)
376-func finishDuckHatchingAdmin (af,ag) = if ((ax.caller != this))
378+@Callable(ay)
379+func finishDuckHatchingAdmin (ag,ah) = if ((ay.caller != this))
377380 then throw("IFDHA: Only admins can run this!")
378- else ae(af, ag)
381+ else af(ag, ah)
379382
380383
381-@Verifier(aI)
382-func aJ () = if (aw())
383- then sigVerify(aI.bodyBytes, aI.proofs[0], aI.senderPublicKey)
384+@Verifier(aJ)
385+func aK () = if (ax())
386+ then sigVerify(aJ.bodyBytes, aJ.proofs[0], aJ.senderPublicKey)
384387 else {
385- let aK = base58'FzsTVRXqD46KW5yj6qGNVrsouvWjpCQvD1446A96iGt4'
386- let aL = base58'E23yUg8eun5nXB1nZRDf7RTyRADKxQhGNXdpTYonEvtU'
387- let aM = base58'Ga8WEBTPXbHuoXRD355mQ6ms8PsM2RFYKeA1mEP32CFe'
388- let aN = if (sigVerify(aI.bodyBytes, aI.proofs[0], aK))
388+ let aL = base58'6TdaXEfhnjYquvPf3yV7MFxt2CbgFmaqsvGwkKfXtKi4'
389+ let aM = base58'E23yUg8eun5nXB1nZRDf7RTyRADKxQhGNXdpTYonEvtU'
390+ let aN = base58'Ga8WEBTPXbHuoXRD355mQ6ms8PsM2RFYKeA1mEP32CFe'
391+ let aO = if (sigVerify(aJ.bodyBytes, aJ.proofs[0], aL))
389392 then 1
390- else if (sigVerify(aI.bodyBytes, aI.proofs[1], aK))
393+ else if (sigVerify(aJ.bodyBytes, aJ.proofs[1], aL))
391394 then 1
392- else if (sigVerify(aI.bodyBytes, aI.proofs[2], aK))
395+ else if (sigVerify(aJ.bodyBytes, aJ.proofs[2], aL))
393396 then 1
394397 else 0
395- let aO = if (sigVerify(aI.bodyBytes, aI.proofs[0], aL))
398+ let aP = if (sigVerify(aJ.bodyBytes, aJ.proofs[0], aM))
396399 then 1
397- else if (sigVerify(aI.bodyBytes, aI.proofs[1], aL))
400+ else if (sigVerify(aJ.bodyBytes, aJ.proofs[1], aM))
398401 then 1
399- else if (sigVerify(aI.bodyBytes, aI.proofs[2], aL))
402+ else if (sigVerify(aJ.bodyBytes, aJ.proofs[2], aM))
400403 then 1
401404 else 0
402- let aP = if (sigVerify(aI.bodyBytes, aI.proofs[0], aM))
405+ let aQ = if (sigVerify(aJ.bodyBytes, aJ.proofs[0], aN))
403406 then 1
404- else if (sigVerify(aI.bodyBytes, aI.proofs[1], aM))
407+ else if (sigVerify(aJ.bodyBytes, aJ.proofs[1], aN))
405408 then 1
406- else if (sigVerify(aI.bodyBytes, aI.proofs[2], aM))
409+ else if (sigVerify(aJ.bodyBytes, aJ.proofs[2], aN))
407410 then 1
408411 else 0
409- let aQ = ((aN + aO) + aP)
410- let d = aI
411- (aQ >= 2)
412+ let aR = ((aO + aP) + aQ)
413+ let d = aJ
414+ (aR >= 2)
412415 }
413416
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) = a(this, c)
1616
1717
18-func g () = Address(fromBase58String(f("static_oracleAddress")))
18+func g () = "static_turtleRebirthAddress"
1919
2020
21-func h () = fromBase58String(a(g(), "static_eggAssetId"))
21+func h () = Address(fromBase58String(f("static_oracleAddress")))
2222
2323
24-func i () = Address(fromBase58String(a(g(), "static_rebirthAddress")))
24+func i () = fromBase58String(a(h(), "static_eggAssetId"))
2525
2626
27-func j () = Address(fromBase58String(a(g(), "static_swopPromoAddress")))
27+func j () = Address(fromBase58String(a(h(), "static_rebirthAddress")))
2828
2929
30-func k () = Address(fromBase58String(a(g(), "static_babyDuckAddress")))
30+func k () = Address(fromBase58String(a(h(), "static_babyDuckAddress")))
3131
3232
33-func l () = Address(fromBase58String(a(g(), "static_refContractAddress")))
33+func l () = Address(fromBase58String(a(h(), "static_refContractAddress")))
3434
3535
36-func m () = Address(fromBase58String(a(g(), "static_couponsAddress")))
36+func m () = Address(fromBase58String(a(h(), "static_couponsAddress")))
3737
3838
39-func n () = Address(fromBase58String(a(g(), "static_burnAddress")))
39+func n () = Address(fromBase58String(a(h(), "static_burnAddress")))
4040
4141
42-let o = 2
42+func o () = Address(fromBase58String(a(h(), g())))
4343
44-let p = 10
4544
46-let q = 5
45+let p = 2
4746
48-let r = "HATCHING_STARTED"
47+let q = 10
4948
50-let s = "HATCHING_FINISHED"
49+let r = 5
5150
52-func t () = {
53- let u = Address(base58'3PEPftf2kWZDmAaWBjs6BUJa9957kiA2PkU')
54- let d = getInteger(u, "egglock")
51+let s = "HATCHING_STARTED"
52+
53+let t = "HATCHING_FINISHED"
54+
55+func u () = {
56+ let v = Address(base58'3PEPftf2kWZDmAaWBjs6BUJa9957kiA2PkU')
57+ let d = getInteger(v, "egglock")
5558 if ($isInstanceOf(d, "Int"))
5659 then {
57- let v = d
58- v
60+ let w = d
61+ w
5962 }
6063 else 0
6164 }
6265
6366
64-func w (b,x) = (((b + "_") + toBase58String(x)) + "_status")
67+func x (b,y) = (((b + "_") + toBase58String(y)) + "_status")
6568
6669
67-func y (b,x) = (((b + "_") + toBase58String(x)) + "_fh")
70+func z (b,y) = (((b + "_") + toBase58String(y)) + "_fh")
6871
6972
70-func z (b,x) = (((b + "_") + toBase58String(x)) + "_di")
73+func A (b,y) = (((b + "_") + toBase58String(y)) + "_di")
7174
7275
73-func A (B) = (("stats_" + B) + "_amount")
76+func B (C) = (("stats_" + C) + "_amount")
7477
7578
76-func C (c) = {
77- let D = {
79+func D (c) = {
80+ let E = {
7881 let d = getInteger(this, c)
7982 if ($isInstanceOf(d, "Int"))
8083 then {
81- let v = d
82- v
84+ let w = d
85+ w
8386 }
8487 else 0
8588 }
86- D
89+ E
8790 }
8891
8992
90-let E = C("discountCoefficient")
93+let F = D("discountCoefficient")
9194
92-let F = C("saleCoefficient")
95+let G = D("saleCoefficient")
9396
94-func G (H,x,I,J) = {
95- let K = value(blockInfoByHeight((I - 1)))
96- let L = sha256(((base58'incubator' + x) + value(K.vrf)))
97- (toInt(L, J) % H)
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)
98101 }
99102
100103
101-func M (N) = C(A(N))
104+func N (O) = D(B(O))
102105
103106
104-func O (x,I) = {
105- let P = G(100, x, I, 4)
106- let Q = IntegerEntry("last_jackpot_random", P)
107- if (if ((P == 51))
108- then (M("DUCK-WWWWINAL-JU") == 0)
107+func P (y,J) = {
108+ let Q = H(100, y, J, 4)
109+ let R = IntegerEntry("last_jackpot_random", Q)
110+ if (if ((Q == 51))
111+ then (N("DUCK-WWWWINAL-JU") == 0)
109112 else false)
110- then $Tuple3("DUCK-WWWWINAL-JU", "1A1I1L1N4W-J", Q)
111- else if (if ((P == 19))
112- then (M("DUCK-WWWCLOWN-JU") == 0)
113+ then $Tuple3("DUCK-WWWWINAL-JU", "1A1I1L1N4W-J", R)
114+ else if (if ((Q == 19))
115+ then (N("DUCK-WWWCLOWN-JU") == 0)
113116 else false)
114- then $Tuple3("DUCK-WWWCLOWN-JU", "1C1L1N1O4W-J", Q)
115- else if (if ((P == 29))
116- then (M("DUCK-WWDETECT-JU") == 0)
117+ then $Tuple3("DUCK-WWWCLOWN-JU", "1C1L1N1O4W-J", R)
118+ else if (if ((Q == 29))
119+ then (N("DUCK-WWDETECT-JU") == 0)
117120 else false)
118- then $Tuple3("DUCK-WWDETECT-JU", "1C1D2E2T2W-J", Q)
119- else if (if ((P == 39))
120- then (M("DUCK-WWWADMIN-JU") == 0)
121+ then $Tuple3("DUCK-WWDETECT-JU", "1C1D2E2T2W-J", R)
122+ else if (if ((Q == 39))
123+ then (N("DUCK-WWWADMIN-JU") == 0)
121124 else false)
122- then $Tuple3("DUCK-WWWADMIN-JU", "1A1D1I1M1N3W-J", Q)
123- else if (if ((P == 9))
124- then (M("DUCK-WWWWFARM-JU") == 0)
125+ then $Tuple3("DUCK-WWWADMIN-JU", "1A1D1I1M1N3W-J", R)
126+ else if (if ((Q == 9))
127+ then (N("DUCK-WWWWFARM-JU") == 0)
125128 else false)
126- then $Tuple3("DUCK-WWWWFARM-JU", "1A1F1M1R4W-J", Q)
129+ then $Tuple3("DUCK-WWWWFARM-JU", "1A1F1M1R4W-J", R)
127130 else {
128- let R = G(4, x, I, 5)
129- let S = G(4, x, I, 6)
130- let T = if ((S == 0))
131+ let S = H(4, y, J, 5)
132+ let T = H(4, y, J, 6)
133+ let U = if ((T == 0))
131134 then "Y"
132- else if ((S == 1))
135+ else if ((T == 1))
133136 then "G"
134- else if ((S == 2))
137+ else if ((T == 2))
135138 then "B"
136139 else "R"
137- if ((R == 0))
138- then $Tuple3(("DUCK-LLLLLLLL-G" + T), "8L-G", Q)
139- else if ((R == 1))
140- then $Tuple3(("DUCK-MMMMMMMM-G" + T), "8M-G", Q)
141- else if ((R == 2))
142- then $Tuple3(("DUCK-NNNNNNNN-G" + T), "8N-G", Q)
143- else $Tuple3(("DUCK-OOOOOOOO-G" + T), "8O-G", Q)
140+ if ((S == 0))
141+ then $Tuple3(("DUCK-LLLLLLLL-G" + U), "8L-G", R)
142+ else if ((S == 1))
143+ then $Tuple3(("DUCK-MMMMMMMM-G" + U), "8M-G", R)
144+ else if ((S == 2))
145+ then $Tuple3(("DUCK-NNNNNNNN-G" + U), "8N-G", R)
146+ else $Tuple3(("DUCK-OOOOOOOO-G" + U), "8O-G", R)
144147 }
145148 }
146149
147150
148-func U (V) = {
149- let W = V
150- let X = E
151+func V (W) = {
152+ let X = W
151153 let Y = F
152- let Z = p
153- let aa = pow((100 + ((W * X) / (10 * Z))), 2, 5, 1, 2, DOWN)
154- if ((F == 0))
155- then (aa * 1000000)
156- else (((aa * 1000000) / 100) * (100 - F))
154+ let Z = G
155+ let aa = q
156+ let ab = pow((100 + ((X * Y) / (10 * aa))), 2, 5, 1, 2, DOWN)
157+ if ((G == 0))
158+ then (ab * 1000000)
159+ else (((ab * 1000000) / 100) * (100 - G))
157160 }
158161
159162
160-func ab (ac) = {
161- let d = ac
163+func ac (ad) = {
164+ let d = ad
162165 if ($isInstanceOf(d, "Int"))
163166 then {
164- let ad = d
165- ad
167+ let ae = d
168+ ae
166169 }
167170 else throw("IAI: wrong type, expected: Int")
168171 }
169172
170173
171-func ae (af,ag) = {
172- let x = fromBase58String(af)
173- let ah = w(ag, x)
174- let ai = y(ag, x)
175- let aj = z(ag, x)
176- let ak = {
177- let d = getBoolean((("hatching_" + af) + "_babyDuck"))
174+func af (ag,ah) = {
175+ let y = fromBase58String(ag)
176+ let ai = x(ah, y)
177+ let aj = z(ah, y)
178+ let ak = A(ah, y)
179+ let al = {
180+ let d = getBoolean((("hatching_" + ag) + "_babyDuck"))
178181 if ($isInstanceOf(d, "Boolean"))
179182 then {
180- let Z = d
181- Z
183+ let aa = d
184+ aa
182185 }
183186 else false
184187 }
185- let al = getStringValue(this, ah)
186- let I = getIntegerValue(this, ai)
187- if ((al == s))
188+ let am = getStringValue(this, ai)
189+ let J = getIntegerValue(this, aj)
190+ if ((am == t))
188191 then {
189- let am = getStringValue(this, z(ag, x))
190- throw(("IFDH: The duck was hatched and claimed already, here is the folowing: " + am))
192+ let an = getStringValue(this, A(ah, y))
193+ throw(("IFDH: The duck was hatched and claimed already, here is the folowing: " + an))
191194 }
192- else if ((I > height))
193- then throw((((("Hatching is not finished yet " + toString((I - height))) + " blocks remaining, it will take around ") + toString((I - height))) + " minutes"))
195+ else if ((J > height))
196+ then throw((((("Hatching is not finished yet " + toString((J - height))) + " blocks remaining, it will take around ") + toString((J - height))) + " minutes"))
194197 else {
195- let an = O(x, I)
196- let ao = an._1
197- let ap = an._2
198- let aq = an._3
199- let ar = (("{\"genotype\": \"" + ao) + "\", \"crossbreeding\": true}")
200- let as = Issue(ao, ar, 1, 0, false, unit, I)
201- let at = calculateAssetId(as)
202- let au = (C(A(ao)) + 1)
203-[StringEntry(ah, s), StringEntry(aj, toBase58String(at)), StringEntry(toBase58String(at), aj), BooleanEntry((("duck_" + toBase58String(at)) + "_grown"), ak), IntegerEntry(A(ao), au), aq, IntegerEntry((("stats_" + ap) + "_quantity"), (C((("stats_" + ap) + "_quantity")) + 1)), as, ScriptTransfer(Address(fromBase58String(ag)), 1, at)]
198+ let ao = P(y, J)
199+ let ap = ao._1
200+ let aq = ao._2
201+ let ar = ao._3
202+ let as = (("{\"genotype\": \"" + ap) + "\", \"crossbreeding\": true}")
203+ let at = Issue(ap, as, 1, 0, false, unit, J)
204+ let au = calculateAssetId(at)
205+ let av = (D(B(ap)) + 1)
206+[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)]
204207 }
205208 }
206209
207210
208-func av (c) = {
211+func aw (c) = {
209212 let d = getBoolean(this, c)
210213 if ($isInstanceOf(d, "Boolean"))
211214 then {
212- let v = d
213- v
215+ let w = d
216+ w
214217 }
215218 else false
216219 }
217220
218221
219-func aw () = av("TESTENV")
222+func ax () = aw("TESTENV")
220223
221224
222-@Callable(ax)
223-func configureOracle (ay) = if ((ax.caller != this))
225+@Callable(ay)
226+func configureOracle (az) = if ((ay.caller != this))
224227 then throw("ICU: admin only")
225- else [StringEntry("static_oracleAddress", ay)]
228+ else [StringEntry("static_oracleAddress", az)]
226229
227230
228231
229-@Callable(ax)
230-func setDiscount (D) = if ((ax.caller != this))
232+@Callable(ay)
233+func setDiscount (E) = if ((ay.caller != this))
231234 then throw("ISD: admin_only")
232- else [IntegerEntry("discountCoefficient", D)]
235+ else [IntegerEntry("discountCoefficient", E)]
233236
234237
235238
236-@Callable(ax)
237-func setSale (D) = if ((ax.caller != this))
239+@Callable(ay)
240+func setSale (E) = if ((ay.caller != this))
238241 then throw("ISS: admin_only")
239- else [IntegerEntry("saleCoefficient", D)]
242+ else [IntegerEntry("saleCoefficient", E)]
240243
241244
242245
243-@Callable(ax)
244-func startDuckHatching (az) = if ((k() != ax.caller))
246+@Callable(ay)
247+func startDuckHatching (aA) = if ((k() != ay.caller))
245248 then throw("ISDHFA: From now on this is only possible through ducklings!")
246- else if ((t() > 0))
249+ else if ((u() > 0))
247250 then throw("ISDH: EGG operations are temporarily locked")
248251 else {
249- let V = C("ducks_amount")
250- let aA = U(V)
251-[StringEntry(w(toString(ax.originCaller), ax.transactionId), r), IntegerEntry(y(toString(ax.originCaller), ax.transactionId), (height + o)), IntegerEntry("ducks_amount", (V + 1)), IntegerEntry("ducks_last_price", (aA / 1000000)), BooleanEntry((("hatching_" + toBase58String(ax.transactionId)) + "_babyDuck"), true)]
252+ let W = D("ducks_amount")
253+ let aB = V(W)
254+[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)]
252255 }
253256
254257
255258
256-@Callable(ax)
257-func startDuckHatchingForAddress (b) = if ((t() > 0))
259+@Callable(ay)
260+func startDuckHatchingForAddress (b) = if ((u() > 0))
258261 then throw("ISDHFA: EGG operations are temporarily locked")
259- else if (if ((ax.caller != j()))
260- then (ax.caller != this)
261- else false)
262+ else if ((ay.caller != this))
262263 then throw("ISDHFA: Permission denied")
263264 else {
264- let V = C("ducks_amount")
265- let aA = U(V)
266-[StringEntry(w(b, ax.transactionId), r), IntegerEntry(y(b, ax.transactionId), (height + o)), IntegerEntry("ducks_amount", (V + 1)), IntegerEntry("ducks_last_price", (aA / 1000000)), BooleanEntry((("hatching_" + toBase58String(ax.transactionId)) + "_promo"), true)]
265+ let W = D("ducks_amount")
266+ let aB = V(W)
267+[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)]
267268 }
268269
269270
270271
271-@Callable(ax)
272-func finishDuckHatching (af) = {
273- let ag = toString(ax.originCaller)
274- ae(af, ag)
272+@Callable(ay)
273+func finishDuckHatching (ag) = {
274+ let ah = toString(ay.originCaller)
275+ af(ag, ah)
275276 }
276277
277278
278279
279-@Callable(ax)
280-func issueFreeDuck (b,af) = if ((ax.caller != i()))
280+@Callable(ay)
281+func issueFreeDuck (b,ag) = if ((ay.caller != j()))
281282 then throw("ISFD: rebirth only")
282283 else {
283- let x = fromBase58String(af)
284- let ah = w(b, x)
285- let ai = y(b, x)
286- let V = C("ducks_amount")
287- let aA = U(V)
288- let aB = O(x, (valueOrErrorMessage(transactionHeightById(x), ((af + " not found ") + toBase58String(x))) + 1))
289- let ao = aB._1
290- let ap = aB._2
291- let aq = aB._3
292- let ar = (("{\"genotype\": \"" + ao) + "\", \"crossbreeding\": true}")
293- let as = Issue(ao, ar, 1, 0, false, unit, height)
294- let at = calculateAssetId(as)
295- let au = (C(A(ao)) + 1)
296- let aj = z(b, x)
297- $Tuple2([IntegerEntry(y(b, x), height), IntegerEntry("ducks_amount", (V + 1)), IntegerEntry("ducks_last_price", (aA / 1000000)), aq, StringEntry(ah, s), StringEntry(aj, toBase58String(at)), StringEntry(toBase58String(at), aj), IntegerEntry(A(ao), au), IntegerEntry((("stats_" + ap) + "_quantity"), (C((("stats_" + ap) + "_quantity")) + 1)), as, ScriptTransfer(value(addressFromString(b)), 1, at)], toBase58String(at))
284+ let y = fromBase58String(ag)
285+ let ai = x(b, y)
286+ let aj = z(b, y)
287+ let W = D("ducks_amount")
288+ let aB = V(W)
289+ let aC = P(y, (valueOrErrorMessage(transactionHeightById(y), ((ag + " not found ") + toBase58String(y))) + 1))
290+ let ap = aC._1
291+ let aq = aC._2
292+ let ar = aC._3
293+ let as = (("{\"genotype\": \"" + ap) + "\", \"crossbreeding\": true}")
294+ let at = Issue(ap, as, 1, 0, false, unit, height)
295+ let au = calculateAssetId(at)
296+ let av = (D(B(ap)) + 1)
297+ let ak = A(b, y)
298+ $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))
298299 }
299300
300301
301302
302-@Callable(ax)
303-func issueFreeDuckDefinedGenes (b,af,aC) = if ((ax.caller != this))
303+@Callable(ay)
304+func issueFreeDuckDefinedGenes (b,ag,aD) = if (if ((ay.caller != this))
305+ then (ay.caller != o())
306+ else false)
304307 then throw("IIFDDG: Admin only!")
305308 else {
306- let x = fromBase58String(af)
307- let ah = w(b, x)
308- let ai = y(b, x)
309- let V = C("ducks_amount")
310- let aA = U(V)
311- let S = G(4, x, height, 6)
312- let T = if ((S == 0))
309+ let y = fromBase58String(ag)
310+ let ai = x(b, y)
311+ let aj = z(b, y)
312+ let W = D("ducks_amount")
313+ let aB = V(W)
314+ let T = H(4, y, height, 6)
315+ let U = if ((T == 0))
313316 then "Y"
314- else if ((S == 1))
317+ else if ((T == 1))
315318 then "G"
316- else if ((S == 2))
319+ else if ((T == 2))
317320 then "B"
318321 else "R"
319- let aD = $Tuple2(((("DUCK-" + aC) + "-G") + T), (("8" + take(aC, 1)) + "-G"))
320- let ao = aD._1
321- let ap = aD._2
322- let ar = (("{\"genotype\": \"" + ao) + "\", \"crossbreeding\": true}")
323- let as = Issue(ao, ar, 1, 0, false, unit, height)
324- let at = calculateAssetId(as)
325- let au = (C(A(ao)) + 1)
326- let aj = z(b, x)
327- $Tuple2([IntegerEntry(y(b, x), height), IntegerEntry("ducks_amount", (V + 1)), IntegerEntry("ducks_last_price", (aA / 1000000)), StringEntry(ah, s), StringEntry(aj, toBase58String(at)), StringEntry(toBase58String(at), aj), IntegerEntry(A(ao), au), IntegerEntry((("stats_" + ap) + "_quantity"), (C((("stats_" + ap) + "_quantity")) + 1)), as, ScriptTransfer(value(addressFromString(b)), 1, at)], toBase58String(at))
322+ let aE = $Tuple2(((("DUCK-" + aD) + "-G") + U), (("8" + take(aD, 1)) + "-G"))
323+ let ap = aE._1
324+ let aq = aE._2
325+ let as = (("{\"genotype\": \"" + ap) + "\", \"crossbreeding\": true}")
326+ let at = Issue(ap, as, 1, 0, false, unit, height)
327+ let au = calculateAssetId(at)
328+ let av = (D(B(ap)) + 1)
329+ let ak = A(b, y)
330+ $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))
328331 }
329332
330333
331334
332-@Callable(ax)
333-func issueJackpot (b,af,N) = if (if ((ax.caller != i()))
334- then (ax.caller != this)
335+@Callable(ay)
336+func issueJackpot (b,ag,O) = if (if ((ay.caller != j()))
337+ then (ay.caller != this)
335338 else false)
336339 then throw("ISJ: admin or rebirth only")
337340 else {
338- let x = fromBase58String(af)
339- let ah = w(b, x)
340- let ai = y(b, x)
341- let V = C("ducks_amount")
342- let aA = U(V)
343- let aE = $Tuple2((("DUCK-" + N) + "-JU"), "8W-J")
344- let ao = aE._1
345- let ap = aE._2
346- let ar = (("{\"genotype\": \"" + ao) + "\", \"crossbreeding\": true}")
347- let as = Issue(ao, ar, 1, 0, false, unit, height)
348- let at = calculateAssetId(as)
349- let aj = z(b, x)
350- let aF = f(aj)
351- if ((aF != ""))
352- then throw((("ISJ: You will override following duckId :" + aj) + " make sure that your txId is unique!"))
353- else $Tuple2([IntegerEntry(y(b, x), height), IntegerEntry("ducks_amount", (V + 1)), IntegerEntry("ducks_last_price", (aA / 1000000)), StringEntry(ah, s), StringEntry(aj, toBase58String(at)), StringEntry(toBase58String(at), aj), IntegerEntry(A(ao), (C(A(ao)) + 1)), IntegerEntry((("stats_" + ap) + "_quantity"), (C((("stats_" + ap) + "_quantity")) + 1)), as, ScriptTransfer(value(addressFromString(b)), 1, at)], toBase58String(at))
341+ let y = fromBase58String(ag)
342+ let ai = x(b, y)
343+ let aj = z(b, y)
344+ let W = D("ducks_amount")
345+ let aB = V(W)
346+ let aF = $Tuple2((("DUCK-" + O) + "-JU"), "8W-J")
347+ let ap = aF._1
348+ let aq = aF._2
349+ let as = (("{\"genotype\": \"" + ap) + "\", \"crossbreeding\": true}")
350+ let at = Issue(ap, as, 1, 0, false, unit, height)
351+ let au = calculateAssetId(at)
352+ let ak = A(b, y)
353+ let aG = f(ak)
354+ if ((aG != ""))
355+ then throw((("ISJ: You will override following duckId :" + ak) + " make sure that your txId is unique!"))
356+ 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))
354357 }
355358
356359
357360
358-@Callable(ax)
359-func reduceRarity (at,aG) = {
360- let as = fromBase58String(at)
361- if (if ((ax.caller != i()))
362- then (ax.caller != this)
361+@Callable(ay)
362+func reduceRarity (au,aH) = {
363+ let at = fromBase58String(au)
364+ if (if ((ay.caller != j()))
365+ then (ay.caller != this)
363366 else false)
364367 then throw("IRR: admin or rebirth only")
365368 else {
366- let ao = value(assetInfo(as)).name
367- let aH = takeRight(take(ao, 6), 1)
368- let ap = (("8" + aH) + "-G")
369-[IntegerEntry(A(ao), (C(A(ao)) - 1)), IntegerEntry((("stats_" + ap) + "_quantity"), (C((("stats_" + ap) + "_quantity")) - 1))]
369+ let ap = value(assetInfo(at)).name
370+ let aI = takeRight(take(ap, 6), 1)
371+ let aq = (("8" + aI) + "-G")
372+[IntegerEntry(B(ap), (D(B(ap)) - 1)), IntegerEntry((("stats_" + aq) + "_quantity"), (D((("stats_" + aq) + "_quantity")) - 1))]
370373 }
371374 }
372375
373376
374377
375-@Callable(ax)
376-func finishDuckHatchingAdmin (af,ag) = if ((ax.caller != this))
378+@Callable(ay)
379+func finishDuckHatchingAdmin (ag,ah) = if ((ay.caller != this))
377380 then throw("IFDHA: Only admins can run this!")
378- else ae(af, ag)
381+ else af(ag, ah)
379382
380383
381-@Verifier(aI)
382-func aJ () = if (aw())
383- then sigVerify(aI.bodyBytes, aI.proofs[0], aI.senderPublicKey)
384+@Verifier(aJ)
385+func aK () = if (ax())
386+ then sigVerify(aJ.bodyBytes, aJ.proofs[0], aJ.senderPublicKey)
384387 else {
385- let aK = base58'FzsTVRXqD46KW5yj6qGNVrsouvWjpCQvD1446A96iGt4'
386- let aL = base58'E23yUg8eun5nXB1nZRDf7RTyRADKxQhGNXdpTYonEvtU'
387- let aM = base58'Ga8WEBTPXbHuoXRD355mQ6ms8PsM2RFYKeA1mEP32CFe'
388- let aN = if (sigVerify(aI.bodyBytes, aI.proofs[0], aK))
388+ let aL = base58'6TdaXEfhnjYquvPf3yV7MFxt2CbgFmaqsvGwkKfXtKi4'
389+ let aM = base58'E23yUg8eun5nXB1nZRDf7RTyRADKxQhGNXdpTYonEvtU'
390+ let aN = base58'Ga8WEBTPXbHuoXRD355mQ6ms8PsM2RFYKeA1mEP32CFe'
391+ let aO = if (sigVerify(aJ.bodyBytes, aJ.proofs[0], aL))
389392 then 1
390- else if (sigVerify(aI.bodyBytes, aI.proofs[1], aK))
393+ else if (sigVerify(aJ.bodyBytes, aJ.proofs[1], aL))
391394 then 1
392- else if (sigVerify(aI.bodyBytes, aI.proofs[2], aK))
395+ else if (sigVerify(aJ.bodyBytes, aJ.proofs[2], aL))
393396 then 1
394397 else 0
395- let aO = if (sigVerify(aI.bodyBytes, aI.proofs[0], aL))
398+ let aP = if (sigVerify(aJ.bodyBytes, aJ.proofs[0], aM))
396399 then 1
397- else if (sigVerify(aI.bodyBytes, aI.proofs[1], aL))
400+ else if (sigVerify(aJ.bodyBytes, aJ.proofs[1], aM))
398401 then 1
399- else if (sigVerify(aI.bodyBytes, aI.proofs[2], aL))
402+ else if (sigVerify(aJ.bodyBytes, aJ.proofs[2], aM))
400403 then 1
401404 else 0
402- let aP = if (sigVerify(aI.bodyBytes, aI.proofs[0], aM))
405+ let aQ = if (sigVerify(aJ.bodyBytes, aJ.proofs[0], aN))
403406 then 1
404- else if (sigVerify(aI.bodyBytes, aI.proofs[1], aM))
407+ else if (sigVerify(aJ.bodyBytes, aJ.proofs[1], aN))
405408 then 1
406- else if (sigVerify(aI.bodyBytes, aI.proofs[2], aM))
409+ else if (sigVerify(aJ.bodyBytes, aJ.proofs[2], aN))
407410 then 1
408411 else 0
409- let aQ = ((aN + aO) + aP)
410- let d = aI
411- (aQ >= 2)
412+ let aR = ((aO + aP) + aQ)
413+ let d = aJ
414+ (aR >= 2)
412415 }
413416

github/deemru/w8io/3ef1775 
158.13 ms