tx · B7mXXdprvczmQyEEm9yfKnx7vkRgJ4bhhteTWCSVCCpD

3MtrXLq2YFHNLqTBXr488vaQVQpsHdmbg7C:  -0.01900000 Waves

2024.11.01 19:39 [3352711] smart account 3MtrXLq2YFHNLqTBXr488vaQVQpsHdmbg7C > SELF 0.00000000 Waves

{ "type": 13, "id": "B7mXXdprvczmQyEEm9yfKnx7vkRgJ4bhhteTWCSVCCpD", "fee": 1900000, "feeAssetId": null, "timestamp": 1730479187009, "version": 2, "chainId": 84, "sender": "3MtrXLq2YFHNLqTBXr488vaQVQpsHdmbg7C", "senderPublicKey": "ESRi59hjHAnDxmeFyTaaXNvzeEW323BvzYJYyKjpEsC1", "proofs": [ "4qorX7cgtgke8sVpwfSWnHacpMUJkhZwgfboRRQo8AhB2wtJGQaDXVeNnqgc8dfgyitutuaqkfoCvGkXZSzaAydk" ], "script": "base64:AAIFAAAAAAAAAC8IAhIECgIICBIECgIICBIDCgEIEgUKAwgICBIECgIICBIDCgEBEgMKAQgSAwoBCAAAACIBAAAAB2dldEJvb2wAAAABAAAAA2tleQQAAAAHJG1hdGNoMAkABBsAAAACBQAAAAR0aGlzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAB0Jvb2xlYW4EAAAAAWIFAAAAByRtYXRjaDAFAAAAAWIHAQAAAAlpc1Rlc3RFbnYAAAAACQEAAAAHZ2V0Qm9vbAAAAAECAAAAB1RFU1RFTlYBAAAAFHRyeUdldFN0cmluZ0V4dGVybmFsAAAAAgAAAAdhZGRyZXNzAAAAA2tleQQAAAAHJG1hdGNoMAkABB0AAAACBQAAAAdhZGRyZXNzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQIAAAAAAQAAAAx0cnlHZXRTdHJpbmcAAAABAAAAA2tleQkBAAAAFHRyeUdldFN0cmluZ0V4dGVybmFsAAAAAgUAAAAEdGhpcwUAAAADa2V5AQAAABdzdGF0aWNLZXlfb3JhY2xlQWRkcmVzcwAAAAACAAAAFHN0YXRpY19vcmFjbGVBZGRyZXNzAQAAABJzdGF0aWNLZXlfZXh0cmFGZWUAAAAAAgAAAA9zdGF0aWNfZXh0cmFGZWUBAAAAF3N0YXRpY0tleV9mZWVBZ2dyZWdhdG9yAAAAAAIAAAAUc3RhdGljX2ZlZUFnZ3JlZ2F0b3IBAAAAHHN0YXRpY0tleV9yZWZDb250cmFjdEFkZHJlc3MAAAAAAgAAABlzdGF0aWNfcmVmQ29udHJhY3RBZGRyZXNzAQAAABxzdGF0aWNLZXlfY2FuaVJlYmlydGhBZGRyZXNzAAAAAAIAAAAbc3RhdGljX2NhbmluZVJlYmlydGhBZGRyZXNzAQAAABxzdGF0aWNLZXlfY2FuaUZhcm1pbmdBZGRyZXNzAAAAAAIAAAAbc3RhdGljX2NhbmluZVN0YWtpbmdBZGRyZXNzAQAAAAlnZXRPcmFjbGUAAAAACQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQkBAAAADHRyeUdldFN0cmluZwAAAAEJAQAAABdzdGF0aWNLZXlfb3JhY2xlQWRkcmVzcwAAAAABAAAAEGdldEZlZUFnZ3JlZ2F0b3IAAAAACQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQkBAAAAFHRyeUdldFN0cmluZ0V4dGVybmFsAAAAAgkBAAAACWdldE9yYWNsZQAAAAAJAQAAABdzdGF0aWNLZXlfZmVlQWdncmVnYXRvcgAAAAABAAAADmdldE1pbnRBc3NldElkAAAAAAUAAAAEdW5pdAEAAAAOZ2V0QnVybkFkZHJlc3MAAAAACQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQkBAAAAFHRyeUdldFN0cmluZ0V4dGVybmFsAAAAAgkBAAAACWdldE9yYWNsZQAAAAACAAAAEnN0YXRpY19idXJuQWRkcmVzcwEAAAAVZ2V0UmVmQ29udHJhY3RBZGRyZXNzAAAAAAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIJAQAAAAlnZXRPcmFjbGUAAAAACQEAAAAcc3RhdGljS2V5X3JlZkNvbnRyYWN0QWRkcmVzcwAAAAABAAAAFWdldENhbmlSZWJpcnRoQWRkcmVzcwAAAAAJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABCQEAAAAUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwAAAACCQEAAAAJZ2V0T3JhY2xlAAAAAAkBAAAAHHN0YXRpY0tleV9jYW5pUmViaXJ0aEFkZHJlc3MAAAAAAQAAABVnZXRDYW5pRmFybWluZ0FkZHJlc3MAAAAACQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQkBAAAAFHRyeUdldFN0cmluZ0V4dGVybmFsAAAAAgkBAAAACWdldE9yYWNsZQAAAAAJAQAAABxzdGF0aWNLZXlfY2FuaUZhcm1pbmdBZGRyZXNzAAAAAAEAAAAWY2hlY2tBZGRpdGlvbmFsUGF5bWVudAAAAAEAAAAHcGF5bWVudAMJAQAAAAlpc0RlZmluZWQAAAABCAUAAAAHcGF5bWVudAAAAAdhc3NldElkCQAAAgAAAAECAAAAGkJEQ0FQOiBQbGVhc2UgYXR0YWNoIHdhdmVzBAAAAAlmZWVBbW91bnQJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIJAQAAAAlnZXRP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AAAAD2dldENBTklTdGF0c0tleQAAAAEFAAAAB2R1Y2tHZW4JAABkAAAAAgkBAAAADXRyeUdldEludGVnZXIAAAABCQEAAAAPZ2V0Q0FOSVN0YXRzS2V5AAAAAQUAAAAHZHVja0dlbgAAAAAAAAAAAQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAICAAAABnN0YXRzXwUAAAAHZmFybUdlbgIAAAAJX3F1YW50aXR5CQAAZAAAAAIJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQkAASwAAAACCQABLAAAAAICAAAABnN0YXRzXwUAAAAHZmFybUdlbgIAAAAJX3F1YW50aXR5AAAAAAAAAAABCQAETAAAAAIFAAAABWFzc2V0CQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAAAV2YWx1ZQAAAAEJAAQmAAAAAQUAAAAHYWRkcmVzcwAAAAAAAAAAAQUAAAAHYXNzZXRJZAUAAAADbmlsCQACWAAAAAEFAAAAB2Fzc2V0SWQAAAABaQEAAAAJaXNzdWVGcmVlAAAAAgAAAAdhZGRyZXNzAAAAB3R4SWRTdHIDCQEAAAACIT0AAAACCAUAAAABaQAAAAZjYWxsZXIJAQAAABVnZXRDYW5pUmViaXJ0aEFkZHJlc3MAAAAACQAAAgAAAAECAAAAEUNJRjogcmViaXJ0aCBvbmx5BAAAAAR0eElkCQACWQAAAAEFAAAAB3R4SWRTdHIEAAAAEWhhdGNoaW5nU3RhdHVzS2V5CQEAAAAUZ2V0SGF0Y2hpbmdTdGF0dXNLZXkAAAACBQAAAAdhZGRyZXNzBQAAAAR0eElkBAAAAA9maW5pc2hIZWlnaHRLZXkJAQAAABpnZXRIYXRjaGluZ0ZpbmlzaEhlaWdodEtleQAAAAIFAAAAB2FkZHJlc3MFAAAABHR4SWQEAAAAEHRvdGFsRHVja3NBbW91bnQJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQIAAAALY2FuaV9hbW91bnQEAAAACmVnZ3NOZWVkZWQJAQAAABVjb3VudEVnZ3NOZWVkZWRBbW91bnQAAAABBQAAABB0b3RhbER1Y2tzQW1vdW50BAAAAAskdDA4MTg4ODMzNgkBAAAADWdldFJhbmRvbU5hbWUA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JUVHRyBvcGVyYXRpb25zIGFyZSB0ZW1wb3JhcmlseSBsb2NrZWQEAAAAD3RvdGFsQ2FuaUFtb3VudAkBAAAADXRyeUdldEludGVnZXIAAAABAgAAAAtjYW5pX2Ftb3VudAQAAAAKZWdnc05lZWRlZAkBAAAAFWNvdW50RWdnc05lZWRlZEFtb3VudAAAAAEFAAAAD3RvdGFsQ2FuaUFtb3VudAQAAAAHcmVzdWx0cwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAUZ2V0SGF0Y2hpbmdTdGF0dXNLZXkAAAACCQAEJQAAAAEIBQAAAAFpAAAADG9yaWdpbkNhbGxlcggFAAAAAWkAAAANdHJhbnNhY3Rpb25JZAUAAAAPSGF0Y2hpbmdTdGFydGVkCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAaZ2V0SGF0Y2hpbmdGaW5pc2hIZWlnaHRLZXkAAAACCQAEJQAAAAEIBQAAAAFpAAAADG9yaWdpbkNhbGxlcggFAAAAAWkAAAANdHJhbnNhY3Rpb25JZAkAAGQAAAACBQAAAAZoZWlnaHQFAAAAEGRlbGF5Rm9ySGF0Y2hpbmcJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAC2NhbmlfYW1vdW50CQAAZAAAAAIFAAAAD3RvdGFsQ2FuaUFtb3VudAAAAAAAAAAAAQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAPY2FuaV9sYXN0X3ByaWNlCQAAaQAAAAIFAAAACmVnZ3NOZWVkZWQAAAAAAAAW42AFAAAAA25pbAQAAAAJbGVmdFRvUGF5BQAAAAplZ2dzTmVlZGVkBAAAAAxmaXJzdFBheW1lbnQJAQAAAAV2YWx1ZQAAAAEJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAEDCQEAAAACIT0AAAACCAUAAAAMZmlyc3RQYXltZW50AAAAB2Fzc2V0SWQJAQAAAA5nZXRNaW50QXNzZXRJZAAAAAAJAAACAAAAAQIAAAAdVEI6IFlvdSBjYW4gYXR0YWNoIG9ubHkgV0FWRVMDCQAAZgAAAAIFAAAACWxlZnRUb1BheQgFAAAADGZpcnN0UGF5bWVudAAAAAZhbW91bnQJAAACAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAA1VEI6IFRvIGJyZWVkIGEgQ2FuaW5lIHlvdSBmb2xsb3dpbmcgYW1vdW50IG9mIFdBVkVTOiAJAAGkAAAAAQUAAAAJbGVmdFRvUGF5AgAAAAEgCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgQAAAAHYWRkTW9yZQkAA/wAAAAECQEAAAAVZ2V0Q2FuaUZhcm1pbmdBZGRyZXNzAAAAAAIAAAAUYWRkV2F2ZXNBbmRTdGFrZU1vcmUFAAAAA25pbAkABEwAAAACCQEAAAAPQXR0YWNoZWRQYXltZW50AAAAAgUAAAAEdW5pdAUAAAAJbGVmdFRvUGF5BQAAAANuaWwDCQAAAAAAAAIFAAAAB2FkZE1vcmUFAAAAB2FkZE1vcmUEAAAABnJlZnVuZAMJAAAAAAAAAgkAAZAAAAABCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAgkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIJAABlAAAAAggJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAEAAAAGYW1vdW50BQAAAAlsZWZ0VG9QYXkJAQAAAA5nZXRNaW50QXNzZXRJZAAAAAAFAAAAA25pbAUAAAADbmlsCQAETgAAAAIJAAROAAAAAgUAAAAHcmVzdWx0cwUAAAAGcmVmdW5kBQAAAAtmZWVWYWxpZGF0ZQkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAAAAWkBAAAADmZpbmlzaEhhdGNoaW5nAAAAAQAAAAd0eElkU3RyBAAAAAtmZWVWYWxpZGF0ZQkBAAAAFmNoZWNrQWRkaXRpb25hbFBheW1lbnQAAAABCQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAAAwkAAAAAAAACBQAAAAtmZWVWYWxpZGF0ZQUAAAALZmVlVmFsaWRhdGUEAAAABHR4SWQJAAJZAAAAAQUAAAAHdHhJZFN0cgQAAAARaGF0Y2hpbmdTdGF0dXNLZXkJAQAAABRnZXRIYXRjaGluZ1N0YXR1c0tleQAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBQAAAAR0eElkBAAAAA9maW5pc2hIZWlnaHRLZXkJAQAAABpnZXRIYXRjaGluZ0ZpbmlzaEhlaWdodEtleQAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBQAAAAR0eElkBAAAAAlDQU5JSWRLZXkJAQAAAAxnZXRDQU5JSWRLZXkAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAAEdHhJZAQAAAAQaGF0Y2hpbmdUeFN0YXR1cwkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgUAAAAEdGhpcwUAAAARaGF0Y2hpbmdTdGF0dXNLZXkEAAAAFGhhdGNoaW5nRmluaXNoSGVpZ2h0CQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzBQAAAA9maW5pc2hIZWlnaHRLZXkDCQAAAAAAAAIFAAAAEGhhdGNoaW5nVHhTdGF0dXMFAAAAEEhhdGNoaW5nRmluaXNoZWQEAAAABkNBTklJZAkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgUAAAAEdGhpcwkBAAAADGdldENBTklJZEtleQAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBQAAAAR0eElkCQAAAgAAAAEJAAEsAAAAAgIAAABAVGhlIENhbmkgd2FzIGhhdGNoZWQgYW5kIGNsYWltZWQgYWxyZWFkeSwgaGVyZSBpcyB0aGUgZm9sb3dpbmc6IAUAAAAGQ0FOSUlkAwkAAGYAAAACBQAAABRoYXRjaGluZ0ZpbmlzaEhlaWdodAUAAAAGaGVpZ2h0CQAAAgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAdSGF0Y2hpbmcgaXMgbm90IGZpbmlzaGVkIHlldCAJAAGkAAAAAQkAAGUAAAACBQAAABRoYXRjaGluZ0ZpbmlzaEhlaWdodAUAAAAGaGVpZ2h0AgAAACcgYmxvY2tzIHJlbWFpbmluZywgaXQgd2lsbCB0YWtlIGFyb3VuZCAJAAGkAAAAAQkAAGUAAAACBQAAABRoYXRjaGluZ0ZpbmlzaEhlaWdodAUAAAAGaGVpZ2h0AgAAAAggbWludXRlcwQAAAANJHQwMTE4OTMxMTk2NgkBAAAADWdldFJhbmRvbU5hbWUAAAADBQAAAAR0eElkBQAAABRoYXRjaGluZ0ZpbmlzaEhlaWdodAcEAAAAB0NBTklHZW4IBQAAAA0kdDAxMTg5MzExOTY2AAAAAl8xBAAAAAdmYXJtR2VuCAUAAAANJHQwMTE4OTMxMTk2NgAAAAJfMgQAAAALZGVzY3JpcHRpb24JAAEsAAAAAgkAASwAAAACAgAAAA57Imdlbm90eXBlIjogIgUAAAAHQ0FOSUdlbgIAAAAZIiwgImNyb3NzYnJlZWRpbmciOiB0cnVlfQQAAAAFYXNzZXQJAARDAAAABwUAAAAHQ0FOSUdlbgUAAAALZGVzY3JpcHRpb24AAAAAAAAAAAEAAAAAAAAAAAAHBQAAAAR1bml0BQAAABRoYXRjaGluZ0ZpbmlzaEhlaWdodAQAAAAHYXNzZXRJZAkABDgAAAABBQAAAAVhc3NldAQAAAAGYW1vdW50CQAAZAAAAAIJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQkBAAAAD2dldENBTklTdGF0c0tleQAAAAEFAAAAB0NBTklHZW4AAAAAAAAAAAEJAAROAAAAAgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAABFoYXRjaGluZ1N0YXR1c0tleQUAAAAQSGF0Y2hpbmdGaW5pc2hlZAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAAAlDQU5JSWRLZXkJAAJYAAAAAQUAAAAHYXNzZXRJZAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQACWAAAAAEFAAAAB2Fzc2V0SWQFAAAACUNBTklJZEtleQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAD2dldENBTklTdGF0c0tleQAAAAEFAAAAB0NBTklHZW4FAAAABmFtb3VudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAICAAAABnN0YXRzXwUAAAAHZmFybUdlbgIAAAAJX3F1YW50aXR5CQAAZAAAAAIJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQkAASwAAAACCQABLAAAAAICAAAABnN0YXRzXwUAAAAHZmFybUdlbgIAAAAJX3F1YW50aXR5AAAAAAAAAAABCQAETAAAAAIFAAAABWFzc2V0CQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgAAAAAAAAAAAQUAAAAHYXNzZXRJZAUAAAADbmlsBQAAAAtmZWVWYWxpZGF0ZQkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AAAABAAAAAnR4AQAAAAZ2ZXJpZnkAAAAAAwkBAAAACWlzVGVzdEVudgAAAAAJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAACAUAAAACdHgAAAAPc2VuZGVyUHVibGljS2V5BAAAAAlmaXJzdFVzZXIBAAAAIFEc5P1m/xJp0vFaFJ87suL0O3/By2gnojRebDjXV91tBAAAAApzZWNvbmRVc2VyAQAAACBccg5LrvEhT2bmGUX6aqKx7bE2KVlfGczMsOFNQYhqfQQAAAAJdGhpcmRVc2VyAQAAACCgr5HlLXlDYWEyEq2OufoYWVGdLVNJNsPQo/eoYBk7TgQAAAAPZmlyc3RVc2VyU2lnbmVkAwkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAFAAAACWZpcnN0VXNlcgAAAAAAAAAAAQMJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAABBQAAAAlmaXJzdFVzZXIAAAAAAAAAAAEDCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAgUAAAAJZmlyc3RVc2VyAAAAAAAAAAABAAAAAAAAAAAABAAAABBzZWNvbmRVc2VyU2lnbmVkAwkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAFAAAACnNlY29uZFVzZXIAAAAAAAAAAAEDCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAQUAAAAKc2Vjb25kVXNlcgAAAAAAAAAAAQMJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAACBQAAAApzZWNvbmRVc2VyAAAAAAAAAAABAAAAAAAAAAAABAAAAA90aGlyZFVzZXJTaWduZWQDCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAUAAAAJdGhpcmRVc2VyAAAAAAAAAAABAwkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAEFAAAACXRoaXJkVXNlcgAAAAAAAAAAAQMJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAACBQAAAAl0aGlyZFVzZXIAAAAAAAAAAAEAAAAAAAAAAAAEAAAAD3NpZ25hdHVyZXNDb3VudAkAAGQAAAACCQAAZAAAAAIFAAAAD2ZpcnN0VXNlclNpZ25lZAUAAAAQc2Vjb25kVXNlclNpZ25lZAUAAAAPdGhpcmRVc2VyU2lnbmVkBAAAAAckbWF0Y2gwBQAAAAJ0eAkAAGcAAAACBQAAAA9zaWduYXR1cmVzQ291bnQAAAAAAAAAAALTPnfz", "height": 3352711, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: BBxGEaZ5BaLv1FKrLM3bXDQziSuNRAcKYURP7nAc11Tz Next: none Full:
OldNewDifferences
1-{-# STDLIB_VERSION 6 #-}
1+{-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-func a (b,c) = {
5- let d = getString(b, c)
6- if ($isInstanceOf(d, "String"))
4+func a (b) = {
5+ let c = getBoolean(this, b)
6+ if ($isInstanceOf(c, "Boolean"))
77 then {
8- let e = d
9- e
8+ let d = c
9+ d
10+ }
11+ else false
12+ }
13+
14+
15+func e () = a("TESTENV")
16+
17+
18+func f (g,b) = {
19+ let c = getString(g, b)
20+ if ($isInstanceOf(c, "String"))
21+ then {
22+ let h = c
23+ h
1024 }
1125 else ""
1226 }
1327
1428
15-func f (c) = {
16- let d = getInteger(this, c)
17- if ($isInstanceOf(d, "Int"))
29+func i (b) = f(this, b)
30+
31+
32+func j () = "static_oracleAddress"
33+
34+
35+func k () = "static_extraFee"
36+
37+
38+func l () = "static_feeAggregator"
39+
40+
41+func m () = "static_refContractAddress"
42+
43+
44+func n () = "static_canineRebirthAddress"
45+
46+
47+func o () = "static_canineStakingAddress"
48+
49+
50+func p () = Address(fromBase58String(i(j())))
51+
52+
53+func q () = Address(fromBase58String(f(p(), l())))
54+
55+
56+func r () = unit
57+
58+
59+func s () = Address(fromBase58String(f(p(), "static_burnAddress")))
60+
61+
62+func t () = Address(fromBase58String(f(p(), m())))
63+
64+
65+func u () = Address(fromBase58String(f(p(), n())))
66+
67+
68+func v () = Address(fromBase58String(f(p(), o())))
69+
70+
71+func w (x) = if (isDefined(x.assetId))
72+ then throw("BDCAP: Please attach waves")
73+ else {
74+ let y = getIntegerValue(p(), k())
75+ if ((x.amount != y))
76+ then throw((("BDCAP: Please attach exactly " + toString(y)) + " amount of wavelets"))
77+ else [ScriptTransfer(q(), y, unit)]
78+ }
79+
80+
81+let z = 2
82+
83+let A = "HATCHING_STARTED"
84+
85+let B = "HATCHING_FINISHED"
86+
87+func C () = {
88+ let D = Address(base58'3PEPftf2kWZDmAaWBjs6BUJa9957kiA2PkU')
89+ let c = getInteger(D, "egglock")
90+ if ($isInstanceOf(c, "Int"))
1891 then {
19- let g = d
20- g
92+ let d = c
93+ d
2194 }
2295 else 0
2396 }
2497
2598
26-func h (c) = a(this, c)
99+func E (g,F) = (((g + "_") + toBase58String(F)) + "_status")
27100
28101
29-func i (j) = {
30- let d = j
31- if ($isInstanceOf(d, "Int"))
32- then {
33- let k = d
34- k
35- }
36- else if ($isInstanceOf(d, "String"))
102+func G (g,F) = (((g + "_") + toBase58String(F)) + "_fh")
103+
104+
105+func H (g,F) = (((g + "_") + toBase58String(F)) + "_di")
106+
107+
108+func I (J) = (("stats_" + J) + "_amount")
109+
110+
111+func K (b) = {
112+ let L = {
113+ let c = getInteger(this, b)
114+ if ($isInstanceOf(c, "Int"))
37115 then {
38- let l = d
39- throw(("RAI: wrong type, expected: Int, but got: " + l))
116+ let d = c
117+ d
40118 }
41- else throw("RAI: wrong type, expected: Int")
119+ else 0
120+ }
121+ L
42122 }
43123
44124
45-func m (j) = {
46- let d = j
47- if ($isInstanceOf(d, "Boolean"))
48- then {
49- let n = d
50- n
51- }
52- else throw("FAB: wrong type, expected: Boolean")
125+let M = K("discountCoefficient")
126+
127+func N (O,F,P,Q) = {
128+ let R = value(blockInfoByHeight((P - 1)))
129+ let S = sha256((F + value(R.vrf)))
130+ (toInt(S, (Q * 8)) % O)
53131 }
54132
55133
56-func o (j) = {
57- let d = j
58- if ($isInstanceOf(d, "String"))
59- then {
60- let p = d
61- p
62- }
63- else if ($isInstanceOf(d, "Int"))
64- then {
65- let p = d
66- throw("wrong type, expected: String, got: Int")
67- }
68- else if ($isInstanceOf(d, "Unit"))
69- then {
70- let p = d
71- throw("wrong type, expected: String, got: Unit")
72- }
73- else throw("wrong type, expected: String")
134+func T (U) = {
135+ let V = [$Tuple2(("CANI-AAAAAAAA-G" + U), "8A-G")]
136+ let W = [$Tuple2(("CANI-BBBBBBBB-G" + U), "8B-G"), $Tuple2(("CANI-CCCCCCCC-G" + U), "8C-G"), $Tuple2(("CANI-DDDDDDDD-G" + U), "8D-G"), $Tuple2(("CANI-EEEEEEEE-G" + U), "8E-G")]
137+ $Tuple2((V ++ W), W)
74138 }
75139
76140
77-func q () = "static_oracleAddress"
78-
79-
80-func r () = "static_extraFee"
81-
82-
83-func s () = "static_feeAggregator"
84-
85-
86-func t () = "static_canineIncubatorAddress"
87-
88-
89-func u () = "static_canineBreederAddress"
90-
91-
92-func v () = "static_couponsAddress"
93-
94-
95-func w () = "static_canineStakingAddress"
96-
97-
98-func x () = "static_farmingAddressNew"
99-
100-
101-func y () = "static_incubatorAddress"
102-
103-
104-func z () = "static_itemsAddress"
105-
106-
107-func A () = "static_canineWavesRebirthPrice"
108-
109-
110-func B () = "static_turtleIncubatorAddress"
111-
112-
113-func C () = "static_babyDuckAddress"
114-
115-
116-func D () = Address(fromBase58String(h(q())))
117-
118-
119-func E () = Address(fromBase58String(a(D(), s())))
120-
121-
122-func F () = Address(fromBase58String(a(D(), u())))
123-
124-
125-func G () = Address(fromBase58String(a(D(), t())))
126-
127-
128-func H () = Address(fromBase58String(a(D(), v())))
129-
130-
131-func I () = Address(fromBase58String(a(D(), w())))
132-
133-
134-func J () = Address(fromBase58String(a(D(), x())))
135-
136-
137-func K () = Address(fromBase58String(a(D(), y())))
138-
139-
140-func L () = Address(fromBase58String(a(D(), z())))
141-
142-
143-func M () = Address(fromBase58String(a(D(), B())))
144-
145-
146-func N () = Address(fromBase58String(a(D(), C())))
147-
148-
149-func O (b,c) = {
150- let d = getInteger(b, c)
151- if ($isInstanceOf(d, "Int"))
152- then {
153- let g = d
154- g
155- }
156- else throw("TR: Value not found in sc!")
141+func X (F,P,Y) = {
142+ let Z = N(4, F, P, 1)
143+ let U = ["A", "B", "C", "D"][Z]
144+ let aa = T(U)
145+ let ab = if (Y)
146+ then aa._1
147+ else aa._2
148+ let ac = N(size(ab), F, P, 0)
149+ab[ac]
157150 }
158151
159152
160-let P = O(D(), A())
153+let ad = (size(T("R")._2) - 1)
161154
162-let Q = 2
163-
164-func R (S) = if (if ((value(assetInfo(S)).issuer == F()))
165- then true
166- else (value(assetInfo(S)).issuer == G()))
167- then value(assetInfo(S)).issuer
168- else throw("not valid NFT")
169-
170-
171-func T (U) = if (isDefined(U.assetId))
172- then throw("RCAP: Please attach waves")
173- else {
174- let V = getIntegerValue(D(), r())
175- if ((U.amount != V))
176- then throw((("RCAP: Please attach exactly " + toString(V)) + " amount of wavelets"))
177- else [ScriptTransfer(E(), V, unit)]
178- }
179-
180-
181-func W (X,Y,Z,aa) = {
182- let ab = value(blockInfoByHeight((Z - 1)))
183- let ac = sha256((Y + value(ab.vrf)))
184- (toInt(ac, (aa * 8)) % X)
155+func ae (af) = {
156+ let ag = af
157+ let ah = M
158+ let ai = ad
159+ let aj = (pow((100 + ((ag * ah) / (10 * ai))), 2, 5, 1, 2, DOWN) + 55)
160+ (aj * 1500000)
185161 }
186162
187163
188-func ad (c) = {
189- let d = getBoolean(c)
190- if ($isInstanceOf(d, "Boolean"))
164+func ak (al) = {
165+ let c = al
166+ if ($isInstanceOf(c, "Boolean"))
191167 then {
192- let g = d
193- g
168+ let am = c
169+ am
194170 }
195- else false
171+ else throw("TI: wrong type, expected: Boolean")
196172 }
197173
198174
199-func ae (af,ag,ah) = {
200- let ai = W(10, af, ag, 1)
201- if ((ai == 1))
202- then $Tuple2(ai, "jackpot")
175+@Callable(an)
176+func reduceRarity (ao,ap) = {
177+ let aq = fromBase58String(ao)
178+ if (if ((an.caller != u()))
179+ then (an.caller != this)
180+ else false)
181+ then throw("IRR: admin or rebirth only")
203182 else {
204- let aj = W(1000, af, ag, 0)
205- let ak = if (if ((100 > aj))
206- then (ah != "docking_A")
207- else false)
208- then "docking_A"
209- else if (if ((200 > aj))
210- then (ah != "docking_B")
211- else false)
212- then "docking_B"
213- else if (if ((300 > aj))
214- then (ah != "docking_C")
215- else false)
216- then "docking_C"
217- else if (if ((400 > aj))
218- then (ah != "docking_D")
219- else false)
220- then "docking_D"
221- else if (if ((450 > aj))
222- then (ah != "incubator")
223- else false)
224- then "incubator"
225- else if (if ((490 > aj))
226- then (ah != "duckling_40")
227- else false)
228- then "duckling_40"
229- else if (if ((540 > aj))
230- then (ah != "duckling_20")
231- else false)
232- then "duckling_20"
233- else if (if ((640 > aj))
234- then (ah != "item!ART-FEED5")
235- else false)
236- then "item!ART-FEED5"
237- else if (if ((710 > aj))
238- then (ah != "item!ART-FEED10")
239- else false)
240- then "item!ART-FEED10"
241- else if (if ((740 > aj))
242- then (ah != "item!ART-FEED15")
243- else false)
244- then "item!ART-FEED15"
245- else if (if ((770 > aj))
246- then (ah != "item!ART-FEED20")
247- else false)
248- then "item!ART-FEED20"
249- else if (if ((790 > aj))
250- then (ah != "item!ART-FEED25")
251- else false)
252- then "item!ART-FEED25"
253- else if (if ((810 > aj))
254- then (ah != "item!ART-FEED50")
255- else false)
256- then "item!ART-FEED50"
257- else if (if ((830 > aj))
258- then (ah != "item!ART-FEED100")
259- else false)
260- then "item!ART-FEED100"
261- else if (if ((860 > aj))
262- then (ah != "item!ART-MUTARIUM-G")
263- else false)
264- then "item!ART-MUTARIUM-G"
265- else if (if ((890 > aj))
266- then (ah != "item!ART-MUTARIUM-D")
267- else false)
268- then "item!ART-MUTARIUM-D"
269- else if (if ((910 > aj))
270- then (ah != "item!ART-FREEGENE")
271- else false)
272- then "item!ART-FREEGENE"
273- else if (if ((930 > aj))
274- then (ah != "item!ART-FIXGENE")
275- else false)
276- then "item!ART-FIXGENE"
277- else if (if ((980 > aj))
278- then (ah != "trtl_incubator")
279- else false)
280- then "trtl_incubator"
281- else "item!ART-POTION"
282- $Tuple2(aj, ak)
183+ let ar = value(assetInfo(aq)).name
184+ let as = takeRight(take(ar, 6), 1)
185+ let at = (("8" + as) + "-G")
186+[IntegerEntry(I(ar), (K(I(ar)) - 1)), IntegerEntry((("stats_" + at) + "_quantity"), (K((("stats_" + at) + "_quantity")) - 1))]
283187 }
284188 }
285189
286190
287-func al (af,ag) = {
288- let aj = W(2, af, ag, 1)
289- if ((aj == 0))
290- then true
291- else false
191+
192+@Callable(an)
193+func increaseRarity (ao,ap) = {
194+ let aq = fromBase58String(ao)
195+ if (if ((an.caller != u()))
196+ then (an.caller != this)
197+ else false)
198+ then throw("IRR: admin or rebirth only")
199+ else {
200+ let ar = value(assetInfo(aq)).name
201+ let as = takeRight(take(ar, 6), 1)
202+ let at = (("8" + as) + "-G")
203+[IntegerEntry(I(ar), (K(I(ar)) + 1)), IntegerEntry((("stats_" + at) + "_quantity"), (K((("stats_" + at) + "_quantity")) + 1))]
204+ }
292205 }
293206
294207
295-func am (an,b,ao,ap,ah,aq) = {
296- let ar = f((((("address_" + b) + "_initTx_") + an) + "_finishBlock"))
297- let as = h((((("address_" + b) + "_initTx_") + an) + "_status"))
298- let at = T(ao)
299- if ((at == at))
300- then if ((as != "open"))
301- then throw("rebirth is finished or not open")
302- else if ((ar > height))
303- then throw("you cannot finish rebirth, yet")
304- else {
305- let au = ae(fromBase58String(an), ar, ah)
306- let av = au._2
307- let aw = au._1
308- let Y = an
309- let ak = if ((indexOf(av, "docking") != unit))
310- then {
311- let ax = takeRight(av, 1)
312- let ay = if (!(ap))
208+
209+@Callable(an)
210+func configureOracle (au) = if ((an.caller != this))
211+ then throw("ICU: admin only")
212+ else [StringEntry("static_oracleAddress", au)]
213+
214+
215+
216+@Callable(an)
217+func issueJackpot (g,av,aw) = if (if ((an.caller != u()))
218+ then (an.caller != this)
219+ else false)
220+ then throw("ISJ: admin or rebirth only")
221+ else {
222+ let F = fromBase58String(av)
223+ let ax = E(g, F)
224+ let ay = G(g, F)
225+ let az = K("cani_amount")
226+ let aA = ae(az)
227+ let aB = $Tuple2((("CANI-" + aw) + "-JU"), "8W-J")
228+ let ar = aB._1
229+ let at = aB._2
230+ let aC = (("{\"genotype\": \"" + ar) + "\", \"crossbreeding\": true}")
231+ let aq = Issue(ar, aC, 1, 0, false, unit, height)
232+ let ao = calculateAssetId(aq)
233+ let aD = H(g, F)
234+ let aE = i(aD)
235+ if ((aE != ""))
236+ then throw((("ISJ: You will override following duckId :" + aD) + " make sure that your txId is unique!"))
237+ else $Tuple2([IntegerEntry(G(g, F), height), IntegerEntry("cani_amount", (az + 1)), IntegerEntry("cani_last_price", (aA / 1500000)), StringEntry(ax, B), StringEntry(aD, toBase58String(ao)), StringEntry(toBase58String(ao), aD), IntegerEntry(I(ar), (K(I(ar)) + 1)), IntegerEntry((("stats_" + at) + "_quantity"), (K((("stats_" + at) + "_quantity")) + 1)), aq, ScriptTransfer(value(addressFromString(g)), 1, ao)], toBase58String(ao))
238+ }
239+
240+
241+
242+@Callable(an)
243+func issueFree (g,av) = if ((an.caller != u()))
244+ then throw("CIF: rebirth only")
245+ else {
246+ let F = fromBase58String(av)
247+ let ax = E(g, F)
248+ let ay = G(g, F)
249+ let az = K("cani_amount")
250+ let aA = ae(az)
251+ let aF = X(F, (valueOrErrorMessage(transactionHeightById(F), ((av + " not found ") + toBase58String(F))) + 1), true)
252+ let aG = aF._1
253+ let at = aF._2
254+ let aC = (("{\"genotype\": \"" + aG) + "\", \"crossbreeding\": true}")
255+ let aq = Issue(aG, aC, 1, 0, false, unit, height)
256+ let ao = calculateAssetId(aq)
257+ let aH = (K(I(aG)) + 1)
258+ let aD = H(g, F)
259+ $Tuple2([IntegerEntry(G(g, F), height), IntegerEntry("cani_amount", (az + 1)), IntegerEntry("cani_last_price", (aA / 1500000)), StringEntry(ax, B), StringEntry(aD, toBase58String(ao)), StringEntry(toBase58String(ao), aD), IntegerEntry(I(aG), aH), IntegerEntry((("stats_" + at) + "_quantity"), (K((("stats_" + at) + "_quantity")) + 1)), aq, ScriptTransfer(value(addressFromString(g)), 1, ao)], toBase58String(ao))
260+ }
261+
262+
263+
264+@Callable(an)
265+func setDiscount (L) = if ((an.caller != this))
266+ then throw("admin_only")
267+ else [IntegerEntry("discountCoefficient", L)]
268+
269+
270+
271+@Callable(an)
272+func startHatching (aI) = {
273+ let aJ = w(an.payments[0])
274+ if ((aJ == aJ))
275+ then if ((C() > 0))
276+ then throw("EGG operations are temporarily locked")
277+ else {
278+ let aK = K("cani_amount")
279+ let aA = ae(aK)
280+ let aL = [StringEntry(E(toString(an.originCaller), an.transactionId), A), IntegerEntry(G(toString(an.originCaller), an.transactionId), (height + z)), IntegerEntry("cani_amount", (aK + 1)), IntegerEntry("cani_last_price", (aA / 1500000))]
281+ let aM = aA
282+ let aN = value(an.payments[1])
283+ if ((aN.assetId != r()))
284+ then throw("TB: You can attach only WAVES")
285+ else if ((aM > aN.amount))
286+ then throw(((("TB: To breed a Canine you following amount of WAVES: " + toString(aM)) + " ") + toString(an.caller)))
287+ else {
288+ let aO = invoke(v(), "addWavesAndStakeMore", nil, [AttachedPayment(unit, aM)])
289+ if ((aO == aO))
313290 then {
314- let az = invoke(I(), "addFreePerch", [b, ax, 1], nil)
315- if ((az == az))
316- then [StringEntry((((("address_" + b) + "_initTx_") + an) + "_result"), o(az))]
317- else throw("Strict value is not equal to itself.")
291+ let aP = if ((size(an.payments) == 2))
292+ then [ScriptTransfer(an.caller, (an.payments[1].amount - aM), r())]
293+ else nil
294+ ((aL ++ aP) ++ aJ)
318295 }
319- else {
320- let az = invoke(I(), "addFreePerch", [b, ax, 2], nil)
321- if ((az == az))
322- then [StringEntry((((("address_" + b) + "_initTx_") + an) + "_result"), o(az)), StringEntry((((("address_" + b) + "_initTx_") + an) + "_result1"), o(az)), StringEntry((((("address_" + b) + "_initTx_") + an) + "_win1"), av)]
323- else throw("Strict value is not equal to itself.")
324- }
325- if ((ay == ay))
326- then ay
327296 else throw("Strict value is not equal to itself.")
328297 }
329- else if ((av == "jackpot"))
330- then {
331- let ay = invoke(G(), "issueJackpot", [b, Y, "WWWWHWTF"], nil)
332- if ((ay == ay))
333- then [StringEntry((((("address_" + b) + "_initTx_") + an) + "_result"), o(ay))]
334- else throw("Strict value is not equal to itself.")
335- }
336- else if ((av == "incubator"))
337- then {
338- let ay = if (!(ap))
339- then {
340- let az = invoke(G(), "issueFree", [b, Y], nil)
341- if ((az == az))
342- then [StringEntry((((("address_" + b) + "_initTx_") + an) + "_result"), o(az))]
343- else throw("Strict value is not equal to itself.")
344- }
345- else {
346- let az = invoke(G(), "issueFree", [b, Y], nil)
347- if ((az == az))
348- then {
349- let aA = invoke(M(), "issueFreeTurtle", [b, Y], nil)
350- if ((aA == aA))
351- then [StringEntry((((("address_" + b) + "_initTx_") + an) + "_result"), o(az)), StringEntry((((("address_" + b) + "_initTx_") + an) + "_result1"), o(aA)), StringEntry((((("address_" + b) + "_initTx_") + an) + "_win1"), "incubator")]
352- else throw("Strict value is not equal to itself.")
353- }
354- else throw("Strict value is not equal to itself.")
355- }
356- if ((ay == ay))
357- then ay
358- else throw("Strict value is not equal to itself.")
359- }
360- else if ((indexOf(av, "duckling") != unit))
361- then {
362- let aB = parseIntValue(split(av, "_")[1])
363- let aC = if (ap)
364- then (2 * aB)
365- else aB
366- let ay = invoke(N(), "issueFreeDuckling", [b, Y, aC], nil)
367- if ((ay == ay))
368- then [StringEntry((((("address_" + b) + "_initTx_") + an) + "_result"), o(ay))]
369- else throw("Strict value is not equal to itself.")
370- }
371- else if ((av == "trtl_incubator"))
372- then {
373- let ay = if (!(ap))
374- then {
375- let az = invoke(M(), "issueFreeTurtle", [b, Y], nil)
376- if ((az == az))
377- then [StringEntry((((("address_" + b) + "_initTx_") + an) + "_result"), o(az))]
378- else throw("Strict value is not equal to itself.")
379- }
380- else {
381- let az = invoke(M(), "issueFreeTurtle", [b, Y], nil)
382- if ((az == az))
383- then {
384- let aA = invoke(G(), "issueFree", [b, Y], nil)
385- if ((aA == aA))
386- then [StringEntry((((("address_" + b) + "_initTx_") + an) + "_result"), o(az)), StringEntry((((("address_" + b) + "_initTx_") + an) + "_result1"), o(aA)), StringEntry((((("address_" + b) + "_initTx_") + an) + "_win1"), "trtl_incubator")]
387- else throw("Strict value is not equal to itself.")
388- }
389- else throw("Strict value is not equal to itself.")
390- }
391- if ((ay == ay))
392- then ay
393- else throw("Strict value is not equal to itself.")
394- }
395- else if ((indexOf(av, "item") != unit))
396- then {
397- let aD = split(av, "!")[1]
398- let ay = if (!(ap))
399- then {
400- let az = invoke(L(), "issueArtefactIndex", [aD, b, 0], nil)
401- if ((az == az))
402- then [StringEntry((((("address_" + b) + "_initTx_") + an) + "_result"), o(az))]
403- else throw("Strict value is not equal to itself.")
404- }
405- else {
406- let az = invoke(L(), "issueArtefactIndex", [aD, b, 0], nil)
407- if ((az == az))
408- then {
409- let aA = invoke(L(), "issueArtefactIndex", [aD, b, 1], nil)
410- if ((aA == aA))
411- then [StringEntry((((("address_" + b) + "_initTx_") + an) + "_result"), o(az)), StringEntry((((("address_" + b) + "_initTx_") + an) + "_result1"), o(aA)), StringEntry((((("address_" + b) + "_initTx_") + an) + "_win1"), av)]
412- else throw("Strict value is not equal to itself.")
413- }
414- else throw("Strict value is not equal to itself.")
415- }
416- if ((ay == ay))
417- then ay
418- else throw("Strict value is not equal to itself.")
419- }
420- else throw(("RFB: Some error occured, please contact the admins! " + av))
421- if ((ak == ak))
422- then {
423- let aE = if (aq)
424- then al(fromBase58String(an), ar)
425- else false
426- let aF = if (aE)
427- then {
428- let S = fromBase58String(getStringValue((((("address_" + b) + "_initTx_") + an) + "_assetId")))
429- let aG = R(S)
430- let aH = o(invoke(F(), "getGenFromName", [value(assetInfo(S)).name], nil))
431- if ((aH == aH))
432- then {
433- let ay = invoke(aG, "increaseRarity", [toBase58String(S), aH], nil)
434- if ((ay == ay))
435- then [ScriptTransfer(addressFromStringValue(b), 1, S)]
436- else throw("Strict value is not equal to itself.")
437- }
438- else throw("Strict value is not equal to itself.")
439- }
440- else nil
441- (((ak ++ [StringEntry((((("address_" + b) + "_initTx_") + an) + "_win"), av), StringEntry((((("address_" + b) + "_initTx_") + an) + "_status"), "finish"), IntegerEntry((((("address_" + b) + "_initTx_") + an) + "_random"), aw)]) ++ at) ++ aF)
442- }
443- else throw("Strict value is not equal to itself.")
444- }
298+ }
445299 else throw("Strict value is not equal to itself.")
446300 }
447301
448302
449-@Callable(aI)
450-func configureOracle (aJ) = if ((aI.caller != this))
451- then throw("RCU: admin only")
452- else [StringEntry("static_oracleAddress", aJ)]
453303
454-
455-
456-@Callable(aI)
457-func initRebirth () = {
458- let aK = aI.payments[0]
459- let aL = aI.payments[1]
460- let S = value(aK.assetId)
461- let an = toBase58String(aI.transactionId)
462- let b = toString(aI.caller)
463- if ((aK.amount != 1))
464- then throw("NFT is not attached")
465- else if (if ((aL.amount != P))
466- then true
467- else (aL.assetId != unit))
468- then throw("Wavespayment is not attached or wrong!")
469- else {
470- let aM = (aL.amount / 4)
471- let aN = (aL.amount - aM)
472- let aO = invoke(I(), "addWavesAndStakeMore", nil, [AttachedPayment(unit, aN)])
473- if ((aO == aO))
474- then {
475- let aG = R(S)
476- let aH = o(invoke(F(), "getGenFromName", [value(assetInfo(S)).name], nil))
477- if ((aH == aH))
478- then {
479- let ay = invoke(aG, "reduceRarity", [toBase58String(S), aH], nil)
480- if ((ay == ay))
481- then [IntegerEntry((((("address_" + b) + "_initTx_") + an) + "_finishBlock"), (height + Q)), StringEntry((((("address_" + b) + "_initTx_") + an) + "_status"), "open"), StringEntry((((("address_" + b) + "_initTx_") + an) + "_assetId"), toBase58String(S)), ScriptTransfer(E(), aM, unit)]
482- else throw("Strict value is not equal to itself.")
483- }
484- else throw("Strict value is not equal to itself.")
304+@Callable(an)
305+func finishHatching (av) = {
306+ let aJ = w(an.payments[0])
307+ if ((aJ == aJ))
308+ then {
309+ let F = fromBase58String(av)
310+ let ax = E(toString(an.caller), F)
311+ let ay = G(toString(an.caller), F)
312+ let aQ = H(toString(an.caller), F)
313+ let aR = getStringValue(this, ax)
314+ let P = getIntegerValue(this, ay)
315+ if ((aR == B))
316+ then {
317+ let aS = getStringValue(this, H(toString(an.caller), F))
318+ throw(("The Cani was hatched and claimed already, here is the folowing: " + aS))
319+ }
320+ else if ((P > height))
321+ then throw((((("Hatching is not finished yet " + toString((P - height))) + " blocks remaining, it will take around ") + toString((P - height))) + " minutes"))
322+ else {
323+ let aT = X(F, P, false)
324+ let aG = aT._1
325+ let at = aT._2
326+ let aC = (("{\"genotype\": \"" + aG) + "\", \"crossbreeding\": true}")
327+ let aq = Issue(aG, aC, 1, 0, false, unit, P)
328+ let ao = calculateAssetId(aq)
329+ let aH = (K(I(aG)) + 1)
330+ ([StringEntry(ax, B), StringEntry(aQ, toBase58String(ao)), StringEntry(toBase58String(ao), aQ), IntegerEntry(I(aG), aH), IntegerEntry((("stats_" + at) + "_quantity"), (K((("stats_" + at) + "_quantity")) + 1)), aq, ScriptTransfer(an.caller, 1, ao)] ++ aJ)
485331 }
486- else throw("Strict value is not equal to itself.")
487- }
332+ }
333+ else throw("Strict value is not equal to itself.")
488334 }
489335
490336
491-
492-@Callable(aI)
493-func finishRebirth (an) = am(an, toString(aI.caller), aI.payments[0], false, "", false)
494-
495-
496-
497-@Callable(aI)
498-func finishRebirthDouble (an) = if (!(if ((size(aI.payments) == 2))
499- then (aI.payments[0].amount == 1)
500- else false))
501- then throw("Invalid payment")
337+@Verifier(aU)
338+func aV () = if (e())
339+ then sigVerify(aU.bodyBytes, aU.proofs[0], aU.senderPublicKey)
502340 else {
503- let S = value(aI.payments[0].assetId)
504- let aP = o(invoke(L(), "checkArtefactDetails", [toBase58String(S)], nil))
505- if ((aP == aP))
506- then if ((aP == "ART-GIFT_DOUBL"))
507- then ([Burn(S, 1)] ++ am(an, toString(aI.caller), aI.payments[1], true, "", false))
508- else throw("Error! Wrong item attached to double rewards!")
509- else throw("Strict value is not equal to itself.")
341+ let aW = base58'6TdaXEfhnjYquvPf3yV7MFxt2CbgFmaqsvGwkKfXtKi4'
342+ let aX = base58'7DsP2WaMLocbHuUxux7pbXRjTrrZ1TFQPsi5QumS3gr8'
343+ let aY = base58'BpFWP3p3JgYrrP45xfrKzeMcWMEXoinj4FVPPkUiA8D3'
344+ let aZ = if (sigVerify(aU.bodyBytes, aU.proofs[0], aW))
345+ then 1
346+ else if (sigVerify(aU.bodyBytes, aU.proofs[1], aW))
347+ then 1
348+ else if (sigVerify(aU.bodyBytes, aU.proofs[2], aW))
349+ then 1
350+ else 0
351+ let ba = if (sigVerify(aU.bodyBytes, aU.proofs[0], aX))
352+ then 1
353+ else if (sigVerify(aU.bodyBytes, aU.proofs[1], aX))
354+ then 1
355+ else if (sigVerify(aU.bodyBytes, aU.proofs[2], aX))
356+ then 1
357+ else 0
358+ let bb = if (sigVerify(aU.bodyBytes, aU.proofs[0], aY))
359+ then 1
360+ else if (sigVerify(aU.bodyBytes, aU.proofs[1], aY))
361+ then 1
362+ else if (sigVerify(aU.bodyBytes, aU.proofs[2], aY))
363+ then 1
364+ else 0
365+ let bc = ((aZ + ba) + bb)
366+ let c = aU
367+ (bc >= 2)
510368 }
511-
512-
513-
514-@Callable(aI)
515-func finishRebirthItem (an,aQ) = if (if ((size(aI.payments) == 2))
516- then (aI.payments[0].amount == 1)
517- else false)
518- then {
519- let S = value(aI.payments[0].assetId)
520- let aP = o(invoke(L(), "checkArtefactDetails", [toBase58String(S)], nil))
521- if ((aP == aP))
522- then if ((aP == "ART-HWERASE"))
523- then ([Burn(S, 1)] ++ am(an, toString(aI.caller), aI.payments[1], false, aQ, false))
524- else if ((aP == "ART-HWRESCUE"))
525- then ([Burn(S, 1)] ++ am(an, toString(aI.caller), aI.payments[1], false, "", true))
526- else if ((aP == "ART-GIFT_DOUBL"))
527- then ([Burn(S, 1)] ++ am(an, toString(aI.caller), aI.payments[1], true, "", false))
528- else throw("Error! Wrong item attached ")
529- else throw("Strict value is not equal to itself.")
530- }
531- else if ((size(aI.payments) == 1))
532- then am(an, toString(aI.caller), aI.payments[0], false, "", false)
533- else throw("Invalid payments")
534-
535369

github/deemru/w8io/026f985 
66.23 ms